diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php index 575b8c8d9ea..da7e9d6b2aa 100644 --- a/apps/files/ajax/delete.php +++ b/apps/files/ajax/delete.php @@ -12,10 +12,12 @@ $files = isset($_POST["file"]) ? stripslashes($_POST["file"]) : stripslashes($_P $files = json_decode($files); $filesWithError = ''; + $success = true; + //Now delete foreach ($files as $file) { - if (!OC_Files::delete($dir, $file)) { + if (($dir === '' && $file === 'Shared') || !\OC\Files\Filesystem::unlink($dir . '/' . $file)) { $filesWithError .= $file . "\n"; $success = false; } diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php index cade7e872b3..878e4cb2159 100644 --- a/apps/files/ajax/list.php +++ b/apps/files/ajax/list.php @@ -32,7 +32,7 @@ if($doBreadcrumb) { // make filelist $files = array(); -foreach( OC_Files::getdirectorycontent( $dir ) as $i ) { +foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $i ) { $i["date"] = OCP\Util::formatDate($i["mtime"] ); $files[] = $i; } diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php index 74374c57b8b..78ed218c136 100644 --- a/apps/files/ajax/move.php +++ b/apps/files/ajax/move.php @@ -11,15 +11,19 @@ $dir = stripslashes($_POST["dir"]); $file = stripslashes($_POST["file"]); $target = stripslashes(rawurldecode($_POST["target"])); -$l=OC_L10N::get('files'); - -if(OC_Filesystem::file_exists($target . '/' . $file)) { - OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s - File with this name already exists", array($file)) ))); +if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) { + OCP\JSON::error(array("data" => array( "message" => "Could not move $file - File with this name already exists" ))); exit; } -if(OC_Files::move($dir, $file, $target, $file)) { - OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); -} else { - OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); +if ($dir != '' || $file != 'Shared') { + $targetFile = \OC\Files\Filesystem::normalizePath($target . '/' . $file); + $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); + if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { + OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); + } else { + OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); + } +}else{ + OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); } diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 2bac9bb20ba..38714f34a63 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -63,13 +63,12 @@ if($source) { $ctx = stream_context_create(null, array('notification' =>'progress')); $sourceStream=fopen($source, 'rb', false, $ctx); $target=$dir.'/'.$filename; - $result=OC_Filesystem::file_put_contents($target, $sourceStream); + $result=\OC\Files\Filesystem::file_put_contents($target, $sourceStream); if($result) { - $target = OC_Filesystem::normalizePath($target); - $meta = OC_FileCache::get($target); + $meta = \OC\Files\Filesystem::getFileInfo($target); $mime=$meta['mimetype']; - $id = OC_FileCache::getId($target); - $eventSource->send('success', array('mime'=>$mime, 'size'=>OC_Filesystem::filesize($target), 'id' => $id)); + $id = $meta['fileid']; + $eventSource->send('success', array('mime'=>$mime, 'size'=>\OC\Files\Filesystem::filesize($target), 'id' => $id)); } else { $eventSource->send('error', "Error while downloading ".$source. ' to '.$target); } @@ -77,15 +76,15 @@ if($source) { exit(); } else { if($content) { - if(OC_Filesystem::file_put_contents($dir.'/'.$filename, $content)) { - $meta = OC_FileCache::get($dir.'/'.$filename); - $id = OC_FileCache::getId($dir.'/'.$filename); + 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::newFile($dir, $filename, 'file')) { - $meta = OC_FileCache::get($dir.'/'.$filename); - $id = OC_FileCache::getId($dir.'/'.$filename); + }elseif(\OC\Files\Filesystem::touch($dir . '/' . $filename)) { + $meta = \OC\Files\Filesystem::getFileInfo($dir.'/'.$filename); + $id = $meta['fileid']; OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id))); exit(); } diff --git a/apps/files/ajax/newfolder.php b/apps/files/ajax/newfolder.php index 0f1f2f14eb0..e26e1238bc6 100644 --- a/apps/files/ajax/newfolder.php +++ b/apps/files/ajax/newfolder.php @@ -19,13 +19,14 @@ if(strpos($foldername, '/')!==false) { exit(); } -if(OC_Files::newFile($dir, stripslashes($foldername), 'dir')) { +if(\OC\Files\Filesystem::mkdir($dir . '/' . stripslashes($foldername))) { if ( $dir != '/') { $path = $dir.'/'.$foldername; } else { $path = '/'.$foldername; } - $id = OC_FileCache::getId($path); + $meta = \OC\Files\Filesystem::getFileInfo($path); + $id = $meta['fileid']; OCP\JSON::success(array("data" => array('id'=>$id))); exit(); } diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php index e0aa0bdac52..1cd2944483c 100644 --- a/apps/files/ajax/rawlist.php +++ b/apps/files/ajax/rawlist.php @@ -15,7 +15,7 @@ $mimetype = isset($_GET['mimetype']) ? $_GET['mimetype'] : ''; // make filelist $files = array(); -foreach( OC_Files::getdirectorycontent( $dir, $mimetype ) as $i ) { +foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) { $i["date"] = OCP\Util::formatDate($i["mtime"] ); $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']); $files[] = $i; diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 89b4d4bba73..970aaa638da 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -11,10 +11,14 @@ $dir = stripslashes($_GET["dir"]); $file = stripslashes($_GET["file"]); $newname = stripslashes($_GET["newname"]); -// Delete -if( $newname !== '.' and OC_Files::move( $dir, $file, $dir, $newname )) { - OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); -} else { - $l=OC_L10N::get('files'); - OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); +if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') { + $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); + $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); + if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { + OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); + } else { + OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); + } +}else{ + OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); } diff --git a/apps/files/ajax/scan.php b/apps/files/ajax/scan.php index a819578e309..391b98608bd 100644 --- a/apps/files/ajax/scan.php +++ b/apps/files/ajax/scan.php @@ -1,44 +1,71 @@ getAbsolutePath($dir); + +$mountPoints = \OC\Files\Filesystem::getMountPoints($absolutePath); +$mountPoints[] = \OC\Files\Filesystem::getMountPoint($absolutePath); +$mountPoints = array_reverse($mountPoints); //start with the mount point of $dir + +foreach ($mountPoints as $mountPoint) { + $storage = \OC\Files\Filesystem::getStorage($mountPoint); + if ($storage) { + ScanListener::$mountPoints[$storage->getId()] = $mountPoint; + $scanner = $storage->getScanner(); + if ($force) { + $scanner->scan(''); + } else { + $scanner->backgroundScan(); } - - OC_FileCache::scan($dir, $eventSource); - OC_FileCache::clean(); - OCP\DB::commit(); - $eventSource->send('success', true); - } else { - OCP\JSON::success(array('data'=>array('done'=>true))); - exit; - } -} else { - if($checkOnly) { - OCP\JSON::success(array('data'=>array('done'=>false))); - exit; - } - if(isset($eventSource)) { - $eventSource->send('success', false); - } else { - exit; } } + +$eventSource->send('done', ScanListener::$fileCount); $eventSource->close(); + +class ScanListener { + + static public $fileCount = 0; + static public $lastCount = 0; + + /** + * @var \OC\Files\View $view + */ + static public $view; + + /** + * @var array $mountPoints map storage ids to mountpoints + */ + static public $mountPoints = array(); + + /** + * @var \OC_EventSource event source to pass events to + */ + static public $eventSource; + + static function folder($params) { + $internalPath = $params['path']; + $mountPoint = self::$mountPoints[$params['storage']]; + $path = self::$view->getRelativePath($mountPoint . $internalPath); + self::$eventSource->send('folder', $path); + } + + static function file() { + self::$fileCount++; + if (self::$fileCount > self::$lastCount + 20) { //send a count update every 20 files + self::$lastCount = self::$fileCount; + self::$eventSource->send('count', self::$fileCount); + } + } +} diff --git a/apps/files/ajax/upgrade.php b/apps/files/ajax/upgrade.php new file mode 100644 index 00000000000..7237b02c0b0 --- /dev/null +++ b/apps/files/ajax/upgrade.php @@ -0,0 +1,44 @@ +hasItems()) { + OC_Hook::connect('\OC\Files\Cache\Upgrade', 'migrate_path', $listener, 'upgradePath'); + + OC_DB::beginTransaction(); + $upgrade = new \OC\Files\Cache\Upgrade($legacy); + $count = $legacy->getCount(); + $eventSource->send('total', $count); + $upgrade->upgradePath('/' . $user . '/files'); + OC_DB::commit(); +} +\OC\Files\Cache\Upgrade::upgradeDone($user); +$eventSource->send('done', true); +$eventSource->close(); + +class UpgradeListener { + /** + * @var OC_EventSource $eventSource + */ + private $eventSource; + + private $count = 0; + private $lastSend = 0; + + public function __construct($eventSource) { + $this->eventSource = $eventSource; + } + + public function upgradePath($path) { + $this->count++; + if ($this->count > ($this->lastSend + 5)) { + $this->lastSend = $this->count; + $this->eventSource->send('count', $this->count); + } + } +} diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 415524be629..676612c0e42 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -10,6 +10,8 @@ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); $l = OC_L10N::get('files'); + +$dir = $_POST['dir']; // get array with current storage stats (e.g. max file size) $storageStats = \OCA\files\lib\Helper::buildFileStorageStatistics($dir); @@ -21,13 +23,13 @@ if (!isset($_FILES['files'])) { foreach ($_FILES['files']['error'] as $error) { if ($error != 0) { $errors = array( - UPLOAD_ERR_OK => $l->t('There is no error, the file uploaded with success'), - UPLOAD_ERR_INI_SIZE => $l->t('The uploaded file exceeds the upload_max_filesize directive in php.ini: ') + UPLOAD_ERR_OK => $l->t('There is no error, the file uploaded with success'), + UPLOAD_ERR_INI_SIZE => $l->t('The uploaded file exceeds the upload_max_filesize directive in php.ini: ') . ini_get('upload_max_filesize'), - UPLOAD_ERR_FORM_SIZE => $l->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified' + UPLOAD_ERR_FORM_SIZE => $l->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified' . ' in the HTML form'), - UPLOAD_ERR_PARTIAL => $l->t('The uploaded file was only partially uploaded'), - UPLOAD_ERR_NO_FILE => $l->t('No file was uploaded'), + UPLOAD_ERR_PARTIAL => $l->t('The uploaded file was only partially uploaded'), + UPLOAD_ERR_NO_FILE => $l->t('No file was uploaded'), UPLOAD_ERR_NO_TMP_DIR => $l->t('Missing a temporary folder'), UPLOAD_ERR_CANT_WRITE => $l->t('Failed to write to disk'), ); @@ -37,15 +39,19 @@ foreach ($_FILES['files']['error'] as $error) { } $files = $_FILES['files']; -$dir = $_POST['dir']; $error = ''; +$maxUploadFilesize = OCP\Util::maxUploadFilesize($dir); +$maxHumanFilesize = OCP\Util::humanFileSize($maxUploadFilesize); + $totalSize = 0; foreach ($files['size'] as $size) { $totalSize += $size; } -if ($totalSize > OC_Filesystem::free_space($dir)) { - OCP\JSON::error(array('data' => array_merge(array('message' => $l->t('Not enough storage available')), $storageStats))); +if ($totalSize > \OC\Files\Filesystem::free_space($dir)) { + OCP\JSON::error(array('data' => array('message' => $l->t('Not enough space available'), + 'uploadMaxFilesize' => $maxUploadFilesize, + 'maxHumanFilesize' => $maxHumanFilesize))); exit(); } @@ -55,19 +61,19 @@ if (strpos($dir, '..') === false) { for ($i = 0; $i < $fileCount; $i++) { $target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]); // $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder - $target = OC_Filesystem::normalizePath($target); - if (is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) { - $meta = OC_FileCache::get($target); - $id = OC_FileCache::getId($target); - + $target = \OC\Files\Filesystem::normalizePath($target); + if (is_uploaded_file($files['tmp_name'][$i]) and \OC\Files\Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) { + $meta = \OC\Files\Filesystem::getFileInfo($target); // updated max file size after upload $storageStats = \OCA\files\lib\Helper::buildFileStorageStatistics($dir); - $result[] = array_merge(array('status' => 'success', - 'mime' => $meta['mimetype'], - 'size' => $meta['size'], - 'id' => $id, - 'name' => basename($target)), $storageStats + $result[] = array('status' => 'success', + 'mime' => $meta['mimetype'], + 'size' => $meta['size'], + 'id' => $meta['fileid'], + 'name' => basename($target), + 'uploadMaxFilesize' => $maxUploadFilesize, + 'maxHumanFilesize' => $maxHumanFilesize ); } } diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php index 108f02930e2..da17a7f2ccd 100644 --- a/apps/files/appinfo/app.php +++ b/apps/files/appinfo/app.php @@ -1,12 +1,12 @@ "files_index", "order" => 0, "href" => OCP\Util::linkTo( "files", "index.php" ), - "icon" => OCP\Util::imagePath( "core", "places/home.svg" ), + "icon" => OCP\Util::imagePath( "core", "places/files.svg" ), "name" => $l->t("Files") )); OC_Search::registerProvider('OC_Search_Provider_File'); diff --git a/apps/files/appinfo/filesync.php b/apps/files/appinfo/filesync.php index cbed56a6de5..47884a4f15e 100644 --- a/apps/files/appinfo/filesync.php +++ b/apps/files/appinfo/filesync.php @@ -43,7 +43,7 @@ if ($type != 'oc_chunked') { die; } -if (!OC_Filesystem::is_file($file)) { +if (!\OC\Files\Filesystem::is_file($file)) { OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND); die; } @@ -51,7 +51,7 @@ if (!OC_Filesystem::is_file($file)) { switch($_SERVER['REQUEST_METHOD']) { case 'PUT': $input = fopen("php://input", "r"); - $org_file = OC_Filesystem::fopen($file, 'rb'); + $org_file = \OC\Files\Filesystem::fopen($file, 'rb'); $info = array( 'name' => basename($file), ); diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index 0a1b196b06f..7c82c839dab 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -5,7 +5,7 @@ File Management AGPL Robin Appelman - 4.9 + 4.91 true diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php index 6a78a1e0d75..6c92cc80b69 100644 --- a/apps/files/appinfo/remote.php +++ b/apps/files/appinfo/remote.php @@ -32,12 +32,14 @@ OC_Util::obEnd(); // Backends $authBackend = new OC_Connector_Sabre_Auth(); $lockBackend = new OC_Connector_Sabre_Locks(); +$requestBackend = new OC_Connector_Sabre_Request(); // Create ownCloud Dir $publicDir = new OC_Connector_Sabre_Directory(''); // Fire up server $server = new Sabre_DAV_Server($publicDir); +$server->httpRequest = $requestBackend; $server->setBaseUri($baseuri); // Load plugins diff --git a/apps/files/appinfo/version b/apps/files/appinfo/version index 0664a8fd291..2bf1ca5f549 100644 --- a/apps/files/appinfo/version +++ b/apps/files/appinfo/version @@ -1 +1 @@ -1.1.6 +1.1.7 diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 9ff550189db..661a2e827a4 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -23,7 +23,9 @@ #new>ul>li>p { cursor:pointer; } #new>ul>li>form>input { padding:0.3em; margin:-0.3em; } -#upload { +#trash { height:17px; margin:0 0 0 1em; z-index:1010; position:absolute; right:13.5em; } + +#upload { height:27px; padding:0; margin-left:0.2em; overflow:hidden; } #upload a { @@ -109,15 +111,13 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } } #fileList .fileactions a.action img { position:relative; top:.2em; } #fileList a.action { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; } +#fileList img.move2trash { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; float:right; } a.action.delete { float:right; } a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; } .selectedActions { display:none; float:right; } .selectedActions a { display:inline; margin:-.5em 0; padding:.5em !important; } .selectedActions a img { position:relative; top:.3em; } -/* add breadcrumb divider to the File item in navigation panel */ -#navigation>ul>li:first-child { background:url('%webroot%/core/img/breadcrumb-start.svg') no-repeat 12.5em 0px; width:12.5em; padding-right:1em; position:fixed; } -#navigation>ul>li:first-child+li { padding-top:2.9em; } #scanning-message{ top:40%; left:40%; position:absolute; display:none; } @@ -132,4 +132,12 @@ table.dragshadow td.filename { } table.dragshadow td.size { padding-right:8px; -} \ No newline at end of file +} +#upgrade { + width: 400px; + position: absolute; + top: 200px; + left: 50%; + text-align: center; + margin-left: -200px; +} diff --git a/apps/files/download.php b/apps/files/download.php index 1b70b1e38f8..e3fe24e45d7 100644 --- a/apps/files/download.php +++ b/apps/files/download.php @@ -26,7 +26,7 @@ OCP\User::checkLoggedIn(); $filename = $_GET["file"]; -if(!OC_Filesystem::file_exists($filename)) { +if(!\OC\Files\Filesystem::file_exists($filename)) { header("HTTP/1.0 404 Not Found"); $tmpl = new OCP\Template( '', '404', 'guest' ); $tmpl->assign('file', $filename); @@ -34,7 +34,7 @@ if(!OC_Filesystem::file_exists($filename)) { exit; } -$ftype=OC_Filesystem::getMimeType( $filename ); +$ftype=\OC\Files\Filesystem::getMimeType( $filename ); header('Content-Type:'.$ftype); if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) { @@ -44,7 +44,7 @@ if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) { . '; filename="' . rawurlencode( basename($filename) ) . '"' ); } OCP\Response::disableCaching(); -header('Content-Length: '.OC_Filesystem::filesize($filename)); +header('Content-Length: '.\OC\Files\Filesystem::filesize($filename)); OC_Util::obEnd(); -OC_Filesystem::readfile( $filename ); +\OC\Files\Filesystem::readfile( $filename ); diff --git a/apps/files/index.php b/apps/files/index.php index e3197b9e3c0..104cf1a55d3 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -29,22 +29,39 @@ OCP\Util::addStyle('files', 'files'); OCP\Util::addscript('files', 'jquery.iframe-transport'); OCP\Util::addscript('files', 'jquery.fileupload'); OCP\Util::addscript('files', 'jquery-visibility'); -OCP\Util::addscript('files', 'files'); OCP\Util::addscript('files', 'filelist'); -OCP\Util::addscript('files', 'fileactions'); -OCP\Util::addscript('files', 'keyboardshortcuts'); OCP\App::setActiveNavigationEntry('files_index'); // Load the files $dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : ''; // Redirect if directory does not exist -if (!OC_Filesystem::is_dir($dir . '/')) { - header('Location: ' . $_SERVER['SCRIPT_NAME'] . ''); +if (!\OC\Files\Filesystem::is_dir($dir . '/')) { + header('Location: ' . OCP\Util::getScriptName() . ''); exit(); } +function fileCmp($a, $b) { + if ($a['type'] == 'dir' and $b['type'] != 'dir') { + return -1; + } elseif ($a['type'] != 'dir' and $b['type'] == 'dir') { + return 1; + } else { + return strnatcasecmp($a['name'], $b['name']); + } +} + $files = array(); -foreach (OC_Files::getdirectorycontent($dir) as $i) { +$user = OC_User::getUser(); +if (\OC\Files\Cache\Upgrade::needUpgrade($user)) { //dont load anything if we need to upgrade the cache + $content = array(); + $needUpgrade = true; + $freeSpace = 0; +} else { + $content = \OC\Files\Filesystem::getDirectoryContent($dir); + $freeSpace = \OC\Files\Filesystem::free_space($dir); + $needUpgrade = false; +} +foreach ($content as $i) { $i['date'] = OCP\Util::formatDate($i['mtime']); if ($i['type'] == 'file') { $fileinfo = pathinfo($i['name']); @@ -55,12 +72,12 @@ foreach (OC_Files::getdirectorycontent($dir) as $i) { $i['extension'] = ''; } } - if ($i['directory'] == '/') { - $i['directory'] = ''; - } + $i['directory'] = $dir; $files[] = $i; } +usort($files, "fileCmp"); + // Make breadcrumb $breadcrumb = array(); $pathtohere = ''; @@ -81,34 +98,43 @@ $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); $breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false); -$maxUploadFilesize=OCP\Util::maxUploadFilesize($dir); - $permissions = OCP\PERMISSION_READ; -if (OC_Filesystem::isCreatable($dir . '/')) { +if (\OC\Files\Filesystem::isCreatable($dir . '/')) { $permissions |= OCP\PERMISSION_CREATE; } -if (OC_Filesystem::isUpdatable($dir . '/')) { +if (\OC\Files\Filesystem::isUpdatable($dir . '/')) { $permissions |= OCP\PERMISSION_UPDATE; } -if (OC_Filesystem::isDeletable($dir . '/')) { +if (\OC\Files\Filesystem::isDeletable($dir . '/')) { $permissions |= OCP\PERMISSION_DELETE; } -if (OC_Filesystem::isSharable($dir . '/')) { +if (\OC\Files\Filesystem::isSharable($dir . '/')) { $permissions |= OCP\PERMISSION_SHARE; } -// information about storage capacities -$storageInfo=OC_Helper::getStorageInfo(); +if ($needUpgrade) { + OCP\Util::addscript('files', 'upgrade'); + $tmpl = new OCP\Template('files', 'upgrade', 'user'); + $tmpl->printPage(); +} else { + // information about storage capacities + $storageInfo=OC_Helper::getStorageInfo(); + $maxUploadFilesize=OCP\Util::maxUploadFilesize($dir); -$tmpl = new OCP\Template('files', 'index', 'user'); -$tmpl->assign('fileList', $list->fetchPage(), false); -$tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); -$tmpl->assign('dir', OC_Filesystem::normalizePath($dir)); -$tmpl->assign('isCreatable', OC_Filesystem::isCreatable($dir . '/')); -$tmpl->assign('permissions', $permissions); -$tmpl->assign('files', $files); -$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize); -$tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); -$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); -$tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']); -$tmpl->printPage(); + OCP\Util::addscript('files', 'fileactions'); + OCP\Util::addscript('files', 'files'); + OCP\Util::addscript('files', 'keyboardshortcuts'); + $tmpl = new OCP\Template('files', 'index', 'user'); + $tmpl->assign('fileList', $list->fetchPage(), false); + $tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); + $tmpl->assign('dir', \OC\Files\Filesystem::normalizePath($dir)); + $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('uploadMaxFilesize', $maxUploadFilesize); + $tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); + $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']); + $tmpl->printPage(); +} \ No newline at end of file diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index f5ee363a4c8..c30f1bcddd8 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -147,15 +147,19 @@ $(document).ready(function () { } else { var downloadScope = 'file'; } - FileActions.register(downloadScope, 'Download', OC.PERMISSION_READ, function () { - return OC.imagePath('core', 'actions/download'); - }, function (filename) { - window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val()); - }); - + + if (typeof disableDownloadActions == 'undefined' || !disableDownloadActions) { + FileActions.register(downloadScope, 'Download', OC.PERMISSION_READ, function () { + return OC.imagePath('core', 'actions/download'); + }, function (filename) { + window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val()); + }); + } + $('#fileList tr').each(function(){ FileActions.display($(this).children('td.filename')); }); + }); FileActions.register('all', 'Delete', OC.PERMISSION_DELETE, function () { @@ -185,6 +189,7 @@ FileActions.register('all', 'Rename', OC.PERMISSION_UPDATE, function () { FileList.rename(filename); }); + FileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename) { window.location = OC.linkTo('files', 'index.php') + '?dir=' + encodeURIComponent($('#dir').val()).replace(/%2F/g, '/') + '/' + encodeURIComponent(filename); }); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 04b7d92e2c3..72b353b48c2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -271,71 +271,45 @@ var FileList={ } }, do_delete:function(files){ + if(files.substr){ + files=[files]; + } + for (var i in files) { + var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date").children(".action.delete"); + var oldHTML = deleteAction[0].outerHTML; + var newHTML = ''; + deleteAction[0].outerHTML = newHTML; + } // Finish any existing actions if (FileList.lastAction) { FileList.lastAction(); } - FileList.prepareDeletion(files); - - if (!FileList.useUndo) { - FileList.lastAction(); - } else { - // NOTE: Temporary fix to change the text to unshared for files in root of Shared folder - if ($('#dir').val() == '/Shared') { - OC.Notification.showHtml(t('files', 'unshared {files}', {'files': escapeHTML(files)})+''+t('files', 'undo')+''); - } else { - OC.Notification.showHtml(t('files', 'deleted {files}', {'files': escapeHTML(files)})+''+t('files', 'undo')+''); - } - } - }, - finishDelete:function(ready,sync){ - if(!FileList.deleteCanceled && FileList.deleteFiles){ - var fileNames=JSON.stringify(FileList.deleteFiles); - $.ajax({ - url: OC.filePath('files', 'ajax', 'delete.php'), - async:!sync, - type:'post', - data: {dir:$('#dir').val(),files:fileNames}, - complete: function(data){ - boolOperationFinished(data, function(){ - OC.Notification.hide(); - $.each(FileList.deleteFiles,function(index,file){ - FileList.remove(file); + var fileNames = JSON.stringify(files); + $.post(OC.filePath('files', 'ajax', 'delete.php'), + {dir:$('#dir').val(),files:fileNames}, + function(result){ + if (result.status == 'success') { + $.each(files,function(index,file){ + var files = $('tr').filterAttr('data-file',file); + files.hide(); + files.find('input[type="checkbox"]').removeAttr('checked'); + files.removeClass('selected'); }); - FileList.deleteCanceled=true; - FileList.deleteFiles=null; - FileList.lastAction = null; - if(ready){ - ready(); - } - }); - } - }); - } - }, - prepareDeletion:function(files){ - if(files.substr){ - files=[files]; - } - $.each(files,function(index,file){ - var files = $('tr').filterAttr('data-file',file); - files.hide(); - files.find('input[type="checkbox"]').removeAttr('checked'); - files.removeClass('selected'); - }); - procesSelection(); - FileList.deleteCanceled=false; - FileList.deleteFiles=files; - FileList.lastAction = function() { - FileList.finishDelete(null, true); - }; + procesSelection(); + } else { + $.each(files,function(index,file) { + var deleteAction = $('tr').filterAttr('data-file',file).children("td.date").children(".move2trash"); + deleteAction[0].outerHTML = oldHTML; + }); + } + }); } }; $(document).ready(function(){ $('#notification').hide(); - $('#notification .undo').live('click', function(){ + $('#notification').on('click', '.undo', function(){ if (FileList.deleteFiles) { $.each(FileList.deleteFiles,function(index,file){ $('tr').filterAttr('data-file',file).show(); @@ -361,16 +335,16 @@ $(document).ready(function(){ FileList.lastAction = null; OC.Notification.hide(); }); - $('#notification .replace').live('click', function() { + $('#notification').on('click', '.replace', function() { OC.Notification.hide(function() { FileList.replace($('#notification').data('oldName'), $('#notification').data('newName'), $('#notification').data('isNewFile')); }); }); - $('#notification .suggest').live('click', function() { + $('#notification').on('click', '.suggest', function() { $('tr').filterAttr('data-file', $('#notification').data('oldName')).show(); OC.Notification.hide(); }); - $('#notification .cancel').live('click', function() { + $('#notification').on('click', '.cancel', function() { if ($('#notification').data('isNewFile')) { FileList.deleteCanceled = false; FileList.deleteFiles = [$('#notification').data('oldName')]; diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 13367b33628..7c377afc620 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -110,15 +110,20 @@ $(document).ready(function() { } // Triggers invisible file input - $('#upload a').live('click', function() { + $('#upload a').on('click', function() { $(this).parent().children('#file_upload_start').trigger('click'); return false; }); + + // Show trash bin + $('#trash a').live('click', function() { + window.location=OC.filePath('files_trashbin', '', 'index.php'); + }); var lastChecked; // Sets the file link behaviour : - $('td.filename a').live('click',function(event) { + $('#fileList').on('click','td.filename a',function(event) { if (event.ctrlKey || event.shiftKey) { event.preventDefault(); if (event.shiftKey) { @@ -184,7 +189,7 @@ $(document).ready(function() { procesSelection(); }); - $('td.filename input:checkbox').live('change',function(event) { + $('#fileList').on('change', 'td.filename input:checkbox',function(event) { if (event.shiftKey) { var last = $(lastChecked).parent().parent().prevAll().length; var first = $(this).parent().parent().prevAll().length; @@ -670,12 +675,8 @@ $(document).ready(function() { }); }); - //check if we need to scan the filesystem - $.get(OC.filePath('files','ajax','scan.php'),{checkonly:'true'}, function(response) { - if(response.data.done){ - scanFiles(); - } - }, "json"); + //do a background scan if needed + scanFiles(); var lastWidth = 0; var breadcrumbs = []; @@ -774,27 +775,27 @@ $(document).ready(function() { } }); -function scanFiles(force,dir){ - if(!dir){ - dir=''; +function scanFiles(force, dir){ + if (!OC.currentUser) { + return; } - force=!!force; //cast to bool - scanFiles.scanning=true; - $('#scanning-message').show(); - $('#fileList').remove(); - var scannerEventSource=new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force:force,dir:dir}); - scanFiles.cancel=scannerEventSource.close.bind(scannerEventSource); - scannerEventSource.listen('scanning',function(data){ - $('#scan-count').text(t('files', '{count} files scanned', {count: data.count})); - $('#scan-current').text(data.file+'/'); + + if(!dir){ + dir = ''; + } + force = !!force; //cast to bool + scanFiles.scanning = true; + var scannerEventSource = new OC.EventSource(OC.filePath('files','ajax','scan.php'),{force:force,dir:dir}); + scanFiles.cancel = scannerEventSource.close.bind(scannerEventSource); + scannerEventSource.listen('count',function(count){ + console.log(count + 'files scanned') }); - scannerEventSource.listen('success',function(success){ + scannerEventSource.listen('folder',function(path){ + console.log('now scanning ' + path) + }); + scannerEventSource.listen('done',function(count){ scanFiles.scanning=false; - if(success){ - window.location.reload(); - }else{ - alert(t('files', 'error while scanning')); - } + console.log('done after ' + count + 'files'); }); } scanFiles.scanning=false; diff --git a/apps/files/js/upgrade.js b/apps/files/js/upgrade.js new file mode 100644 index 00000000000..02d57fc9e6c --- /dev/null +++ b/apps/files/js/upgrade.js @@ -0,0 +1,17 @@ +$(document).ready(function () { + var eventSource, total, bar = $('#progressbar'); + console.log('start'); + bar.progressbar({value: 0}); + eventSource = new OC.EventSource(OC.filePath('files', 'ajax', 'upgrade.php')); + eventSource.listen('total', function (count) { + total = count; + console.log(count + ' files needed to be migrated'); + }); + eventSource.listen('count', function (count) { + bar.progressbar({value: (count / total) * 100}); + console.log(count); + }); + eventSource.listen('done', function () { + document.location.reload(); + }); +}); diff --git a/apps/files/js/upload.js b/apps/files/js/upload.js new file mode 100644 index 00000000000..9d9f61f600e --- /dev/null +++ b/apps/files/js/upload.js @@ -0,0 +1,8 @@ +function Upload(fileSelector) { + if ($.support.xhrFileUpload) { + return new XHRUpload(fileSelector.target.files); + } else { + return new FormUpload(fileSelector); + } +} +Upload.target = OC.filePath('files', 'ajax', 'upload.php'); diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php index d59463bb7a0..3d676810c7c 100644 --- a/apps/files/l10n/bn_BD.php +++ b/apps/files/l10n/bn_BD.php @@ -1,7 +1,4 @@ "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", -"Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", -"Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না", "No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।", "There is no error, the file uploaded with success" => "কোন সমস্যা নেই, ফাইল আপলোড সুসম্পন্ন হয়েছে", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", @@ -10,6 +7,7 @@ "No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", "Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে", "Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", +"Not enough space available" => "যথেষ্ঠ পরিমাণ স্থান নেই", "Invalid directory." => "ভুল ডিরেক্টরি", "Files" => "ফাইল", "Unshare" => "ভাগাভাগি বাতিল ", @@ -22,8 +20,6 @@ "replaced {new_name}" => "{new_name} প্রতিস্থাপন করা হয়েছে", "undo" => "ক্রিয়া প্রত্যাহার", "replaced {new_name} with {old_name}" => "{new_name} কে {old_name} নামে প্রতিস্থাপন করা হয়েছে", -"unshared {files}" => "{files} ভাগাভাগি বাতিল কর", -"deleted {files}" => "{files} মুছে ফেলা হয়েছে", "'.' is an invalid file name." => "টি একটি অননুমোদিত নাম।", "File name cannot be empty." => "ফাইলের নামটি ফাঁকা রাখা যাবে না।", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।", @@ -37,8 +33,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।", "URL cannot be empty." => "URL ফাঁকা রাখা যাবে না।", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।", -"{count} files scanned" => "{count} টি ফাইল স্ক্যান করা হয়েছে", -"error while scanning" => "স্ক্যান করার সময় সমস্যা দেখা দিয়েছে", "Name" => "নাম", "Size" => "আকার", "Modified" => "পরিবর্তিত", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index ceec0264788..22b684fcfd7 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -1,7 +1,4 @@ "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", -"Could not move %s" => " No s'ha pogut moure %s", -"Unable to rename file" => "No es pot canviar el nom del fitxer", "No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut", "There is no error, the file uploaded with success" => "El fitxer s'ha pujat correctament", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "El fitxer no s'ha pujat", "Missing a temporary folder" => "S'ha perdut un fitxer temporal", "Failed to write to disk" => "Ha fallat en escriure al disc", -"Not enough storage available" => "No hi ha prou espai disponible", +"Not enough space available" => "No hi ha prou espai disponible", "Invalid directory." => "Directori no vàlid.", "Files" => "Fitxers", "Unshare" => "Deixa de compartir", @@ -23,8 +20,7 @@ "replaced {new_name}" => "s'ha substituït {new_name}", "undo" => "desfés", "replaced {new_name} with {old_name}" => "s'ha substituït {old_name} per {new_name}", -"unshared {files}" => "no compartits {files}", -"deleted {files}" => "eliminats {files}", +"perform delete operation" => "executa d'operació d'esborrar", "'.' is an invalid file name." => "'.' és un nom no vàlid per un fitxer.", "File name cannot be empty." => "El nom del fitxer no pot ser buit.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "URL cannot be empty." => "La URL no pot ser buida", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nom de carpeta no vàlid. L'ús de 'Shared' està reservat per Owncloud", -"{count} files scanned" => "{count} fitxers escannejats", -"error while scanning" => "error durant l'escaneig", "Name" => "Nom", "Size" => "Mida", "Modified" => "Modificat", @@ -63,11 +57,13 @@ "Text file" => "Fitxer de text", "Folder" => "Carpeta", "From link" => "Des d'enllaç", +"Trash" => "Esborra", "Cancel upload" => "Cancel·la la pujada", "Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!", "Download" => "Baixa", "Upload too large" => "La pujada és massa gran", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor", "Files are being scanned, please wait." => "S'estan escanejant els fitxers, espereu", -"Current scanning" => "Actualment escanejant" +"Current scanning" => "Actualment escanejant", +"Upgrading filesystem cache..." => "Actualitzant la memòria de cau del sistema de fitxers..." ); diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index 86b254ca8cb..f0beda9f55c 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -1,7 +1,4 @@ "Nelze přesunout %s - existuje soubor se stejným názvem", -"Could not move %s" => "Nelze přesunout %s", -"Unable to rename file" => "Nelze přejmenovat soubor", "No file was uploaded. Unknown error" => "Soubor nebyl odeslán. Neznámá chyba", "There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Žádný soubor nebyl odeslán", "Missing a temporary folder" => "Chybí adresář pro dočasné soubory", "Failed to write to disk" => "Zápis na disk selhal", -"Not enough storage available" => "Nedostatek dostupného úložného prostoru", +"Not enough space available" => "Nedostatek dostupného místa", "Invalid directory." => "Neplatný adresář", "Files" => "Soubory", "Unshare" => "Zrušit sdílení", @@ -23,8 +20,7 @@ "replaced {new_name}" => "nahrazeno {new_name}", "undo" => "zpět", "replaced {new_name} with {old_name}" => "nahrazeno {new_name} s {old_name}", -"unshared {files}" => "sdílení zrušeno pro {files}", -"deleted {files}" => "smazáno {files}", +"perform delete operation" => "provést smazání", "'.' is an invalid file name." => "'.' je neplatným názvem souboru.", "File name cannot be empty." => "Název souboru nemůže být prázdný řetězec.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání.", "URL cannot be empty." => "URL nemůže být prázdná", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatný název složky. Použití 'Shared' je rezervováno pro vnitřní potřeby Owncloud", -"{count} files scanned" => "prozkoumáno {count} souborů", -"error while scanning" => "chyba při prohledávání", "Name" => "Název", "Size" => "Velikost", "Modified" => "Změněno", @@ -63,11 +57,13 @@ "Text file" => "Textový soubor", "Folder" => "Složka", "From link" => "Z odkazu", +"Trash" => "Koš", "Cancel upload" => "Zrušit odesílání", "Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.", "Download" => "Stáhnout", "Upload too large" => "Odeslaný soubor je příliš velký", "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í" +"Current scanning" => "Aktuální prohledávání", +"Upgrading filesystem cache..." => "Aktualizuji mezipaměť souborového systému..." ); diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index 2f9ae8fbb8d..71a5a56de57 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -1,7 +1,4 @@ "Kunne ikke flytte %s - der findes allerede en fil med dette navn", -"Could not move %s" => "Kunne ikke flytte %s", -"Unable to rename file" => "Kunne ikke omdøbe fil", "No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", "There is no error, the file uploaded with success" => "Der er ingen fejl, filen blev uploadet med success", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", @@ -10,7 +7,6 @@ "No file was uploaded" => "Ingen fil blev uploadet", "Missing a temporary folder" => "Mangler en midlertidig mappe", "Failed to write to disk" => "Fejl ved skrivning til disk.", -"Not enough storage available" => "Der er ikke nok plads til rådlighed", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", "Unshare" => "Fjern deling", @@ -23,8 +19,6 @@ "replaced {new_name}" => "erstattede {new_name}", "undo" => "fortryd", "replaced {new_name} with {old_name}" => "erstattede {new_name} med {old_name}", -"unshared {files}" => "ikke delte {files}", -"deleted {files}" => "slettede {files}", "'.' is an invalid file name." => "'.' er et ugyldigt filnavn.", "File name cannot be empty." => "Filnavnet kan ikke stå tomt.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", @@ -41,8 +35,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", "URL cannot be empty." => "URLen kan ikke være tom.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ugyldigt mappenavn. Brug af \"Shared\" er forbeholdt Owncloud", -"{count} files scanned" => "{count} filer skannet", -"error while scanning" => "fejl under scanning", "Name" => "Navn", "Size" => "Størrelse", "Modified" => "Ændret", diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index db2476865fc..55ea24baa2f 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -1,7 +1,4 @@ "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits.", -"Could not move %s" => "Konnte %s nicht verschieben", -"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Datei fehlerfrei hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -10,8 +7,8 @@ "No file was uploaded" => "Es wurde keine Datei hochgeladen.", "Missing a temporary folder" => "Temporärer Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicherplatz verfügbar", -"Invalid directory." => "Ungültiges Verzeichnis", +"Not enough space available" => "Nicht genug Speicherplatz verfügbar", +"Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", "Unshare" => "Nicht mehr freigeben", "Delete" => "Löschen", @@ -23,10 +20,9 @@ "replaced {new_name}" => "{new_name} wurde ersetzt", "undo" => "rückgängig machen", "replaced {new_name} with {old_name}" => "{old_name} ersetzt durch {new_name}", -"unshared {files}" => "Freigabe von {files} aufgehoben", -"deleted {files}" => "{files} gelöscht", -"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname", -"File name cannot be empty." => "Der Dateiname darf nicht leer sein", +"perform delete operation" => "Löschvorgang ausführen", +"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", +"File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", "Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicherplatz ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!", "Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicherplatz ist fast aufgebraucht ({usedSpacePercent}%)", @@ -39,10 +35,8 @@ "{count} files uploading" => "{count} Dateien werden hochgeladen", "Upload cancelled." => "Upload abgebrochen.", "File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.", -"URL cannot be empty." => "Die URL darf nicht leer sein", +"URL cannot be empty." => "Die URL darf nicht leer sein.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten.", -"{count} files scanned" => "{count} Dateien wurden gescannt", -"error while scanning" => "Fehler beim Scannen", "Name" => "Name", "Size" => "Größe", "Modified" => "Bearbeitet", @@ -63,11 +57,13 @@ "Text file" => "Textdatei", "Folder" => "Ordner", "From link" => "Von einem Link", +"Trash" => "Papierkorb", "Cancel upload" => "Upload abbrechen", "Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", "Download" => "Herunterladen", "Upload too large" => "Upload zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", -"Current scanning" => "Scanne" +"Current scanning" => "Scanne", +"Upgrading filesystem cache..." => "Dateisystem-Cache wird aktualisiert ..." ); diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 72751a7fb6f..18f3ee38028 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -1,7 +1,4 @@ "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits", -"Could not move %s" => "Konnte %s nicht verschieben", -"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -10,7 +7,7 @@ "No file was uploaded" => "Es wurde keine Datei hochgeladen.", "Missing a temporary folder" => "Der temporäre Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicher vorhanden.", +"Not enough space available" => "Nicht genügend Speicherplatz verfügbar", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", "Unshare" => "Nicht mehr freigeben", @@ -23,8 +20,7 @@ "replaced {new_name}" => "{new_name} wurde ersetzt", "undo" => "rückgängig machen", "replaced {new_name} with {old_name}" => "{old_name} wurde ersetzt durch {new_name}", -"unshared {files}" => "Freigabe für {files} beendet", -"deleted {files}" => "{files} gelöscht", +"perform delete operation" => "Führe das Löschen aus", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", "URL cannot be empty." => "Die URL darf nicht leer sein.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten", -"{count} files scanned" => "{count} Dateien wurden gescannt", -"error while scanning" => "Fehler beim Scannen", "Name" => "Name", "Size" => "Größe", "Modified" => "Bearbeitet", @@ -63,11 +57,13 @@ "Text file" => "Textdatei", "Folder" => "Ordner", "From link" => "Von einem Link", +"Trash" => "Abfall", "Cancel upload" => "Upload abbrechen", "Nothing in here. Upload something!" => "Alles leer. Bitte laden Sie etwas hoch!", "Download" => "Herunterladen", "Upload too large" => "Der Upload ist zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", -"Current scanning" => "Scanne" +"Current scanning" => "Scanne", +"Upgrading filesystem cache..." => "Aktualisiere den Dateisystem-Cache" ); diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 196831b985d..7b458bf35dd 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -1,7 +1,4 @@ "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", -"Could not move %s" => "Αδυναμία μετακίνησης του %s", -"Unable to rename file" => "Αδυναμία μετονομασίας αρχείου", "No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", "There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το απεσταλμένο αρχείο ξεπερνά την οδηγία upload_max_filesize στο php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε", "Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", "Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο", -"Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", +"Not enough space available" => "Δεν υπάρχει αρκετός διαθέσιμος χώρος", "Invalid directory." => "Μη έγκυρος φάκελος.", "Files" => "Αρχεία", "Unshare" => "Διακοπή κοινής χρήσης", @@ -23,8 +20,6 @@ "replaced {new_name}" => "{new_name} αντικαταστάθηκε", "undo" => "αναίρεση", "replaced {new_name} with {old_name}" => "αντικαταστάθηκε το {new_name} με {old_name}", -"unshared {files}" => "μη διαμοιρασμένα {files}", -"deleted {files}" => "διαγραμμένα {files}", "'.' is an invalid file name." => "'.' είναι μη έγκυρο όνομα αρχείου.", "File name cannot be empty." => "Το όνομα αρχείου δεν πρέπει να είναι κενό.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται.", @@ -41,8 +36,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", "URL cannot be empty." => "Η URL δεν πρέπει να είναι κενή.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Μη έγκυρο όνομα φακέλου. Η χρήση του 'Κοινόχρηστος' χρησιμοποιείται από ο Owncloud", -"{count} files scanned" => "{count} αρχεία ανιχνεύτηκαν", -"error while scanning" => "σφάλμα κατά την ανίχνευση", "Name" => "Όνομα", "Size" => "Μέγεθος", "Modified" => "Τροποποιήθηκε", diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index fc4367c55a3..a510d47ad6c 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -1,7 +1,4 @@ "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", -"Could not move %s" => "Ne eblis movi %s", -"Unable to rename file" => "Ne eblis alinomigi dosieron", "No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.", "There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", @@ -10,6 +7,7 @@ "No file was uploaded" => "Neniu dosiero estas alŝutita", "Missing a temporary folder" => "Mankas tempa dosierujo", "Failed to write to disk" => "Malsukcesis skribo al disko", +"Not enough space available" => "Ne haveblas sufiĉa spaco", "Invalid directory." => "Nevalida dosierujo.", "Files" => "Dosieroj", "Unshare" => "Malkunhavigi", @@ -22,8 +20,6 @@ "replaced {new_name}" => "anstataŭiĝis {new_name}", "undo" => "malfari", "replaced {new_name} with {old_name}" => "anstataŭiĝis {new_name} per {old_name}", -"unshared {files}" => "malkunhaviĝis {files}", -"deleted {files}" => "foriĝis {files}", "'.' is an invalid file name." => "'.' ne estas valida dosiernomo.", "File name cannot be empty." => "Dosiernomo devas ne malpleni.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas.", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton.", "URL cannot be empty." => "URL ne povas esti malplena.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nevalida dosierujnomo. Uzo de “Shared” rezervatas de Owncloud.", -"{count} files scanned" => "{count} dosieroj skaniĝis", -"error while scanning" => "eraro dum skano", "Name" => "Nomo", "Size" => "Grando", "Modified" => "Modifita", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index 1620208559f..bc5046767c6 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -1,7 +1,4 @@ "No se puede mover %s - Ya existe un archivo con ese nombre", -"Could not move %s" => "No se puede mover %s", -"Unable to rename file" => "No se puede renombrar el archivo", "No file was uploaded. Unknown error" => "Fallo no se subió el fichero", "There is no error, the file uploaded with success" => "No se ha producido ningún error, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentas subir sobrepasa el tamaño definido por la variable upload_max_filesize en php.ini", @@ -10,6 +7,7 @@ "No file was uploaded" => "No se ha subido ningún archivo", "Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "La escritura en disco ha fallado", +"Not enough space available" => "No hay suficiente espacio disponible", "Invalid directory." => "Directorio invalido.", "Files" => "Archivos", "Unshare" => "Dejar de compartir", @@ -22,8 +20,6 @@ "replaced {new_name}" => "reemplazado {new_name}", "undo" => "deshacer", "replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}", -"unshared {files}" => "{files} descompartidos", -"deleted {files}" => "{files} eliminados", "'.' is an invalid file name." => "'.' es un nombre de archivo inválido.", "File name cannot be empty." => "El nombre de archivo no puede estar vacío.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida.", "URL cannot be empty." => "La URL no puede estar vacía.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud", -"{count} files scanned" => "{count} archivos escaneados", -"error while scanning" => "error escaneando", "Name" => "Nombre", "Size" => "Tamaño", "Modified" => "Modificado", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index cd8347a14ad..ea8352e3251 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -1,7 +1,4 @@ "No se pudo mover %s - Un archivo con este nombre ya existe", -"Could not move %s" => "No se pudo mover %s ", -"Unable to rename file" => "No fue posible cambiar el nombre al archivo", "No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido", "There is no error, the file uploaded with success" => "No se han producido errores, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", @@ -10,6 +7,7 @@ "No file was uploaded" => "El archivo no fue subido", "Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "Error al escribir en el disco", +"Not enough space available" => "No hay suficiente espacio disponible", "Invalid directory." => "Directorio invalido.", "Files" => "Archivos", "Unshare" => "Dejar de compartir", @@ -22,11 +20,11 @@ "replaced {new_name}" => "reemplazado {new_name}", "undo" => "deshacer", "replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}", -"unshared {files}" => "{files} se dejaron de compartir", -"deleted {files}" => "{files} borrados", "'.' is an invalid file name." => "'.' es un nombre de archivo inválido.", "File name cannot be empty." => "El nombre del archivo no puede quedar vacío.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.", +"Your storage is full, files can not be updated or synced anymore!" => "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando", +"Your storage is almost full ({usedSpacePercent}%)" => "El almacenamiento está casi lleno ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.", "Unable to upload your file as it is a directory or has 0 bytes" => "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes", "Upload Error" => "Error al subir el archivo", @@ -38,8 +36,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.", "URL cannot be empty." => "La URL no puede estar vacía", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nombre de carpeta inválido. El uso de 'Shared' está reservado por ownCloud", -"{count} files scanned" => "{count} archivos escaneados", -"error while scanning" => "error mientras se escaneaba", "Name" => "Nombre", "Size" => "Tamaño", "Modified" => "Modificado", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index 1df237baa82..54dd7cfdc56 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -17,8 +17,6 @@ "replaced {new_name}" => "asendatud nimega {new_name}", "undo" => "tagasi", "replaced {new_name} with {old_name}" => "asendas nime {old_name} nimega {new_name}", -"unshared {files}" => "jagamata {files}", -"deleted {files}" => "kustutatud {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", "Unable to upload your file as it is a directory or has 0 bytes" => "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti", "Upload Error" => "Üleslaadimise viga", @@ -29,8 +27,6 @@ "Upload cancelled." => "Üleslaadimine tühistati.", "File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", "URL cannot be empty." => "URL ei saa olla tühi.", -"{count} files scanned" => "{count} faili skännitud", -"error while scanning" => "viga skännimisel", "Name" => "Nimi", "Size" => "Suurus", "Modified" => "Muudetud", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 8b8f6d2bd17..6f4c55f4846 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -1,7 +1,4 @@ "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", -"Could not move %s" => "Ezin dira fitxategiak mugitu %s", -"Unable to rename file" => "Ezin izan da fitxategia berrizendatu", "No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna", "There is no error, the file uploaded with success" => "Ez da arazorik izan, fitxategia ongi igo da", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Ez da fitxategirik igo", "Missing a temporary folder" => "Aldi baterako karpeta falta da", "Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", -"Not enough storage available" => "Ez dago behar aina leku erabilgarri,", +"Not enough space available" => "Ez dago leku nahikorik.", "Invalid directory." => "Baliogabeko karpeta.", "Files" => "Fitxategiak", "Unshare" => "Ez elkarbanatu", @@ -23,8 +20,6 @@ "replaced {new_name}" => "ordezkatua {new_name}", "undo" => "desegin", "replaced {new_name} with {old_name}" => " {new_name}-k {old_name} ordezkatu du", -"unshared {files}" => "elkarbanaketa utzita {files}", -"deleted {files}" => "ezabatuta {files}", "'.' is an invalid file name." => "'.' ez da fitxategi izen baliogarria.", "File name cannot be empty." => "Fitxategi izena ezin da hutsa izan.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", @@ -41,8 +36,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.", "URL cannot be empty." => "URLa ezin da hutsik egon.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Baliogabeako karpeta izena. 'Shared' izena Owncloudek erreserbatzen du", -"{count} files scanned" => "{count} fitxategi eskaneatuta", -"error while scanning" => "errore bat egon da eskaneatzen zen bitartean", "Name" => "Izena", "Size" => "Tamaina", "Modified" => "Aldatuta", diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php index 3d3bfad1f9b..a4181c6ff53 100644 --- a/apps/files/l10n/fa.php +++ b/apps/files/l10n/fa.php @@ -1,7 +1,4 @@ "%s نمی تواند حرکت کند - در حال حاضر پرونده با این نام وجود دارد. ", -"Could not move %s" => "%s نمی تواند حرکت کند ", -"Unable to rename file" => "قادر به تغییر نام پرونده نیست.", "No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس", "There is no error, the file uploaded with success" => "هیچ خطایی وجود ندارد فایل با موفقیت بار گذاری شد", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", @@ -10,6 +7,7 @@ "No file was uploaded" => "هیچ فایلی بارگذاری نشده", "Missing a temporary folder" => "یک پوشه موقت گم شده است", "Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", +"Not enough space available" => "فضای کافی در دسترس نیست", "Invalid directory." => "فهرست راهنما نامعتبر می باشد.", "Files" => "فایل ها", "Unshare" => "لغو اشتراک", @@ -22,8 +20,6 @@ "replaced {new_name}" => "{نام _جدید} جایگزین شد ", "undo" => "بازگشت", "replaced {new_name} with {old_name}" => "{نام_جدید} با { نام_قدیمی} جایگزین شد.", -"unshared {files}" => "{ فایل های } قسمت نشده", -"deleted {files}" => "{ فایل های } پاک شده", "'.' is an invalid file name." => "'.' یک نام پرونده نامعتبر است.", "File name cannot be empty." => "نام پرونده نمی تواند خالی باشد.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "نام نامعتبر ، '\\', '/', '<', '>', ':', '\"', '|', '?' و '*' مجاز نمی باشند.", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ", "URL cannot be empty." => "URL نمی تواند خالی باشد.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "نام پوشه نامعتبر است. استفاده از \" به اشتراک گذاشته شده \" متعلق به سایت Owncloud است.", -"{count} files scanned" => "{ شمار } فایل های اسکن شده", -"error while scanning" => "خطا در حال انجام اسکن ", "Name" => "نام", "Size" => "اندازه", "Modified" => "تغییر یافته", diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index 999bd7884d3..809a5e5c554 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -1,7 +1,4 @@ "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", -"Could not move %s" => "Kohteen %s siirto ei onnistunut", -"Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut", "No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe", "There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lähetetty tiedosto ylittää HTML-lomakkeessa määritetyn MAX_FILE_SIZE-arvon ylärajan", @@ -9,7 +6,7 @@ "No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty", "Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa", "Failed to write to disk" => "Levylle kirjoitus epäonnistui", -"Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä", +"Not enough space available" => "Tilaa ei ole riittävästi", "Invalid directory." => "Virheellinen kansio.", "Files" => "Tiedostot", "Unshare" => "Peru jakaminen", @@ -20,6 +17,7 @@ "suggest name" => "ehdota nimeä", "cancel" => "peru", "undo" => "kumoa", +"perform delete operation" => "suorita poistotoiminto", "'.' is an invalid file name." => "'.' on virheellinen nimi tiedostolle.", "File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.", @@ -53,11 +51,13 @@ "Text file" => "Tekstitiedosto", "Folder" => "Kansio", "From link" => "Linkistä", +"Trash" => "Roskakori", "Cancel upload" => "Peru lähetys", "Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!", "Download" => "Lataa", "Upload too large" => "Lähetettävä tiedosto on liian suuri", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.", "Files are being scanned, please wait." => "Tiedostoja tarkistetaan, odota hetki.", -"Current scanning" => "Tämänhetkinen tutkinta" +"Current scanning" => "Tämänhetkinen tutkinta", +"Upgrading filesystem cache..." => "Päivitetään tiedostojärjestelmän välimuistia..." ); diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index ce8ef959d0a..4be699c0017 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -1,7 +1,4 @@ "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", -"Could not move %s" => "Impossible de déplacer %s", -"Unable to rename file" => "Impossible de renommer le fichier", "No file was uploaded. Unknown error" => "Aucun fichier n'a été chargé. Erreur inconnue", "There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été téléversé avec succès", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Aucun fichier n'a été téléversé", "Missing a temporary folder" => "Il manque un répertoire temporaire", "Failed to write to disk" => "Erreur d'écriture sur le disque", -"Not enough storage available" => "Plus assez d'espace de stockage disponible", +"Not enough space available" => "Espace disponible insuffisant", "Invalid directory." => "Dossier invalide.", "Files" => "Fichiers", "Unshare" => "Ne plus partager", @@ -23,8 +20,7 @@ "replaced {new_name}" => "{new_name} a été remplacé", "undo" => "annuler", "replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}", -"unshared {files}" => "Fichiers non partagés : {files}", -"deleted {files}" => "Fichiers supprimés : {files}", +"perform delete operation" => "effectuer l'opération de suppression", "'.' is an invalid file name." => "'.' n'est pas un nom de fichier valide.", "File name cannot be empty." => "Le nom de fichier ne peut être vide.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", "URL cannot be empty." => "L'URL ne peut-être vide", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud", -"{count} files scanned" => "{count} fichiers indexés", -"error while scanning" => "erreur lors de l'indexation", "Name" => "Nom", "Size" => "Taille", "Modified" => "Modifié", @@ -63,11 +57,13 @@ "Text file" => "Fichier texte", "Folder" => "Dossier", "From link" => "Depuis le lien", +"Trash" => "Corbeille", "Cancel upload" => "Annuler l'envoi", "Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)", "Download" => "Télécharger", "Upload too large" => "Fichier trop volumineux", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", "Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.", -"Current scanning" => "Analyse en cours" +"Current scanning" => "Analyse en cours", +"Upgrading filesystem cache..." => "Mise à niveau du cache du système de fichier" ); diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index 3bac12b351e..a1c0f0a5dd5 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -1,7 +1,4 @@ "Non se moveu %s - Xa existe un ficheiro con ese nome.", -"Could not move %s" => "Non se puido mover %s", -"Unable to rename file" => "Non se pode renomear o ficheiro", "No file was uploaded. Unknown error" => "Non se subiu ningún ficheiro. Erro descoñecido.", "There is no error, the file uploaded with success" => "Non hai erros. O ficheiro enviouse correctamente", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro subido excede a directiva indicada polo tamaño_máximo_de_subida de php.ini", @@ -10,6 +7,7 @@ "No file was uploaded" => "Non se enviou ningún ficheiro", "Missing a temporary folder" => "Falta un cartafol temporal", "Failed to write to disk" => "Erro ao escribir no disco", +"Not enough space available" => "O espazo dispoñíbel é insuficiente", "Invalid directory." => "O directorio é incorrecto.", "Files" => "Ficheiros", "Unshare" => "Deixar de compartir", @@ -22,8 +20,6 @@ "replaced {new_name}" => "substituír {new_name}", "undo" => "desfacer", "replaced {new_name} with {old_name}" => "substituír {new_name} polo {old_name}", -"unshared {files}" => "{files} sen compartir", -"deleted {files}" => "{files} eliminados", "'.' is an invalid file name." => "'.' é un nonme de ficheiro non válido", "File name cannot be empty." => "O nome de ficheiro non pode estar baldeiro", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non válido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non se permiten.", @@ -37,8 +33,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida.", "URL cannot be empty." => "URL non pode quedar baleiro.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de cartafol non válido. O uso de 'Shared' está reservado por Owncloud", -"{count} files scanned" => "{count} ficheiros escaneados", -"error while scanning" => "erro mentres analizaba", "Name" => "Nome", "Size" => "Tamaño", "Modified" => "Modificado", diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php index 62b397e129e..94cddca0000 100644 --- a/apps/files/l10n/he.php +++ b/apps/files/l10n/he.php @@ -18,8 +18,6 @@ "replaced {new_name}" => "{new_name} הוחלף", "undo" => "ביטול", "replaced {new_name} with {old_name}" => "{new_name} הוחלף ב־{old_name}", -"unshared {files}" => "בוטל שיתופם של {files}", -"deleted {files}" => "{files} נמחקו", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'.", "Unable to upload your file as it is a directory or has 0 bytes" => "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים", "Upload Error" => "שגיאת העלאה", @@ -30,8 +28,6 @@ "Upload cancelled." => "ההעלאה בוטלה.", "File upload is in progress. Leaving the page now will cancel the upload." => "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.", "URL cannot be empty." => "קישור אינו יכול להיות ריק.", -"{count} files scanned" => "{count} קבצים נסרקו", -"error while scanning" => "אירעה שגיאה במהלך הסריקה", "Name" => "שם", "Size" => "גודל", "Modified" => "זמן שינוי", diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php index 7000caf0d17..4f4546aaf07 100644 --- a/apps/files/l10n/hr.php +++ b/apps/files/l10n/hr.php @@ -20,7 +20,6 @@ "1 file uploading" => "1 datoteka se učitava", "Upload cancelled." => "Slanje poništeno.", "File upload is in progress. Leaving the page now will cancel the upload." => "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje.", -"error while scanning" => "grečka prilikom skeniranja", "Name" => "Naziv", "Size" => "Veličina", "Modified" => "Zadnja promjena", diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index be3dd1b9c3c..86fc0f223f9 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -1,7 +1,4 @@ "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", -"Could not move %s" => "Nem sikerült %s áthelyezése", -"Unable to rename file" => "Nem lehet átnevezni a fájlt", "No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba", "There is no error, the file uploaded with success" => "A fájlt sikerült feltölteni", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", @@ -10,7 +7,7 @@ "No file was uploaded" => "Nem töltődött fel semmi", "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Failed to write to disk" => "Nem sikerült a lemezre történő írás", -"Not enough storage available" => "Nincs elég szabad hely.", +"Not enough space available" => "Nincs elég szabad hely", "Invalid directory." => "Érvénytelen mappa.", "Files" => "Fájlok", "Unshare" => "Megosztás visszavonása", @@ -23,8 +20,6 @@ "replaced {new_name}" => "a(z) {new_name} állományt kicseréltük", "undo" => "visszavonás", "replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}", -"unshared {files}" => "{files} fájl megosztása visszavonva", -"deleted {files}" => "{files} fájl törölve", "'.' is an invalid file name." => "'.' fájlnév érvénytelen.", "File name cannot be empty." => "A fájlnév nem lehet semmi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", @@ -41,8 +36,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.", "URL cannot be empty." => "Az URL nem lehet semmi.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Érvénytelen mappanév. A név használata csak a Owncloud számára lehetséges.", -"{count} files scanned" => "{count} fájlt találtunk", -"error while scanning" => "Hiba a fájllista-ellenőrzés során", "Name" => "Név", "Size" => "Méret", "Modified" => "Módosítva", diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php index 297853c8161..43c10ef236e 100644 --- a/apps/files/l10n/is.php +++ b/apps/files/l10n/is.php @@ -1,7 +1,4 @@ "Gat ekki fært %s - Skrá með þessu nafni er þegar til", -"Could not move %s" => "Gat ekki fært %s", -"Unable to rename file" => "Gat ekki endurskýrt skrá", "No file was uploaded. Unknown error" => "Engin skrá var send inn. Óþekkt villa.", "There is no error, the file uploaded with success" => "Engin villa, innsending heppnaðist", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Innsend skrá er stærri en upload_max stillingin í php.ini:", @@ -10,6 +7,7 @@ "No file was uploaded" => "Engin skrá skilaði sér", "Missing a temporary folder" => "Vantar bráðabirgðamöppu", "Failed to write to disk" => "Tókst ekki að skrifa á disk", +"Not enough space available" => "Ekki nægt pláss tiltækt", "Invalid directory." => "Ógild mappa.", "Files" => "Skrár", "Unshare" => "Hætta deilingu", @@ -22,8 +20,6 @@ "replaced {new_name}" => "endurskýrði {new_name}", "undo" => "afturkalla", "replaced {new_name} with {old_name}" => "yfirskrifaði {new_name} með {old_name}", -"unshared {files}" => "Hætti við deilingu á {files}", -"deleted {files}" => "eyddi {files}", "'.' is an invalid file name." => "'.' er ekki leyfilegt nafn.", "File name cannot be empty." => "Nafn skráar má ekki vera tómt", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð.", @@ -37,8 +33,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.", "URL cannot be empty." => "Vefslóð má ekki vera tóm.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Óleyfilegt nafn á möppu. Nafnið 'Shared' er frátekið fyrir Owncloud", -"{count} files scanned" => "{count} skrár skimaðar", -"error while scanning" => "villa við skimun", "Name" => "Nafn", "Size" => "Stærð", "Modified" => "Breytt", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index 63bc71d6729..bb3a5bdf054 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -1,7 +1,4 @@ "Impossibile spostare %s - un file con questo nome esiste già", -"Could not move %s" => "Impossibile spostare %s", -"Unable to rename file" => "Impossibile rinominare il file", "No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto", "There is no error, the file uploaded with success" => "Non ci sono errori, file caricato con successo", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Nessun file è stato caricato", "Missing a temporary folder" => "Cartella temporanea mancante", "Failed to write to disk" => "Scrittura su disco non riuscita", -"Not enough storage available" => "Spazio di archiviazione insufficiente", +"Not enough space available" => "Spazio disponibile insufficiente", "Invalid directory." => "Cartella non valida.", "Files" => "File", "Unshare" => "Rimuovi condivisione", @@ -23,8 +20,7 @@ "replaced {new_name}" => "sostituito {new_name}", "undo" => "annulla", "replaced {new_name} with {old_name}" => "sostituito {new_name} con {old_name}", -"unshared {files}" => "non condivisi {files}", -"deleted {files}" => "eliminati {files}", +"perform delete operation" => "esegui l'operazione di eliminazione", "'.' is an invalid file name." => "'.' non è un nome file valido.", "File name cannot be empty." => "Il nome del file non può essere vuoto.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.", "URL cannot be empty." => "L'URL non può essere vuoto.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome della cartella non valido. L'uso di 'Shared' è riservato da ownCloud", -"{count} files scanned" => "{count} file analizzati", -"error while scanning" => "errore durante la scansione", "Name" => "Nome", "Size" => "Dimensione", "Modified" => "Modificato", @@ -63,11 +57,13 @@ "Text file" => "File di testo", "Folder" => "Cartella", "From link" => "Da collegamento", +"Trash" => "Cestino", "Cancel upload" => "Annulla invio", "Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!", "Download" => "Scarica", "Upload too large" => "Il file caricato è troppo grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", "Files are being scanned, please wait." => "Scansione dei file in corso, attendi", -"Current scanning" => "Scansione corrente" +"Current scanning" => "Scansione corrente", +"Upgrading filesystem cache..." => "Aggiornamento della cache del filesystem in corso..." ); diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index 4a36e8aa421..c8b1054f30b 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -1,7 +1,4 @@ "%s を移動できませんでした ― この名前のファイルはすでに存在します", -"Could not move %s" => "%s を移動できませんでした", -"Unable to rename file" => "ファイル名の変更ができません", "No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー", "There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", @@ -10,7 +7,7 @@ "No file was uploaded" => "ファイルはアップロードされませんでした", "Missing a temporary folder" => "テンポラリフォルダが見つかりません", "Failed to write to disk" => "ディスクへの書き込みに失敗しました", -"Not enough storage available" => "ストレージに十分な空き容量がありません", +"Not enough space available" => "利用可能なスペースが十分にありません", "Invalid directory." => "無効なディレクトリです。", "Files" => "ファイル", "Unshare" => "共有しない", @@ -23,8 +20,7 @@ "replaced {new_name}" => "{new_name} を置換", "undo" => "元に戻す", "replaced {new_name} with {old_name}" => "{old_name} を {new_name} に置換", -"unshared {files}" => "未共有 {files}", -"deleted {files}" => "削除 {files}", +"perform delete operation" => "削除を実行", "'.' is an invalid file name." => "'.' は無効なファイル名です。", "File name cannot be empty." => "ファイル名を空にすることはできません。", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "無効な名前、'\\', '/', '<', '>', ':', '\"', '|', '?', '*' は使用できません。", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。", "URL cannot be empty." => "URLは空にできません。", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "無効なフォルダ名です。'Shared' の利用は ownCloud が予約済みです。", -"{count} files scanned" => "{count} ファイルをスキャン", -"error while scanning" => "スキャン中のエラー", "Name" => "名前", "Size" => "サイズ", "Modified" => "更新日時", @@ -63,11 +57,13 @@ "Text file" => "テキストファイル", "Folder" => "フォルダ", "From link" => "リンク", +"Trash" => "ゴミ箱", "Cancel upload" => "アップロードをキャンセル", "Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。", "Download" => "ダウンロード", "Upload too large" => "ファイルサイズが大きすぎます", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。", "Files are being scanned, please wait." => "ファイルをスキャンしています、しばらくお待ちください。", -"Current scanning" => "スキャン中" +"Current scanning" => "スキャン中", +"Upgrading filesystem cache..." => "ファイルシステムキャッシュを更新中..." ); diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php index 08225c114d1..7ab6122c659 100644 --- a/apps/files/l10n/ka_GE.php +++ b/apps/files/l10n/ka_GE.php @@ -16,8 +16,6 @@ "replaced {new_name}" => "{new_name} შეცვლილია", "undo" => "დაბრუნება", "replaced {new_name} with {old_name}" => "{new_name} შეცვლილია {old_name}–ით", -"unshared {files}" => "გაზიარება მოხსნილი {files}", -"deleted {files}" => "წაშლილი {files}", "Unable to upload your file as it is a directory or has 0 bytes" => "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს", "Upload Error" => "შეცდომა ატვირთვისას", "Close" => "დახურვა", @@ -26,8 +24,6 @@ "{count} files uploading" => "{count} ფაილი იტვირთება", "Upload cancelled." => "ატვირთვა შეჩერებულ იქნა.", "File upload is in progress. Leaving the page now will cancel the upload." => "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", -"{count} files scanned" => "{count} ფაილი სკანირებულია", -"error while scanning" => "შეცდომა სკანირებისას", "Name" => "სახელი", "Size" => "ზომა", "Modified" => "შეცვლილია", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index cd95d61e4dc..7774aeea31c 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -1,7 +1,4 @@ "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함", -"Could not move %s" => "%s 항목을 이딩시키지 못하였음", -"Unable to rename file" => "파일 이름바꾸기 할 수 없음", "No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다", "There is no error, the file uploaded with success" => "업로드에 성공하였습니다.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", @@ -10,7 +7,8 @@ "No file was uploaded" => "업로드된 파일 없음", "Missing a temporary folder" => "임시 폴더가 사라짐", "Failed to write to disk" => "디스크에 쓰지 못했습니다", -"Invalid directory." => "올바르지 않은 디렉토리입니다.", +"Not enough space available" => "여유 공간이 부족합니다", +"Invalid directory." => "올바르지 않은 디렉터리입니다.", "Files" => "파일", "Unshare" => "공유 해제", "Delete" => "삭제", @@ -22,11 +20,12 @@ "replaced {new_name}" => "{new_name}을(를) 대체함", "undo" => "실행 취소", "replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨", -"unshared {files}" => "{files} 공유 해제됨", -"deleted {files}" => "{files} 삭제됨", "'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름 입니다.", -"File name cannot be empty." => "파일이름은 공란이 될 수 없습니다.", +"File name cannot be empty." => "파일 이름이 비어 있을 수 없습니다.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.", +"Your storage is full, files can not be updated or synced anymore!" => "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!", +"Your storage is almost full ({usedSpacePercent}%)" => "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다.", "Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다", "Upload Error" => "업로드 오류", "Close" => "닫기", @@ -37,8 +36,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", "URL cannot be empty." => "URL을 입력해야 합니다.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "폴더 이름이 유효하지 않습니다. ", -"{count} files scanned" => "파일 {count}개 검색됨", -"error while scanning" => "검색 중 오류 발생", "Name" => "이름", "Size" => "크기", "Modified" => "수정됨", @@ -65,5 +62,6 @@ "Upload too large" => "업로드 용량 초과", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", "Files are being scanned, please wait." => "파일을 검색하고 있습니다. 기다려 주십시오.", -"Current scanning" => "현재 검색" +"Current scanning" => "현재 검색", +"Upgrading filesystem cache..." => "파일 시스템 캐시 업그레이드 중..." ); diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php index da209619e2a..f4ad655f421 100644 --- a/apps/files/l10n/lt_LT.php +++ b/apps/files/l10n/lt_LT.php @@ -16,8 +16,6 @@ "replaced {new_name}" => "pakeiskite {new_name}", "undo" => "anuliuoti", "replaced {new_name} with {old_name}" => "pakeiskite {new_name} į {old_name}", -"unshared {files}" => "nebesidalinti {files}", -"deleted {files}" => "ištrinti {files}", "Unable to upload your file as it is a directory or has 0 bytes" => "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas", "Upload Error" => "Įkėlimo klaida", "Close" => "Užverti", @@ -26,8 +24,6 @@ "{count} files uploading" => "{count} įkeliami failai", "Upload cancelled." => "Įkėlimas atšauktas.", "File upload is in progress. Leaving the page now will cancel the upload." => "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", -"{count} files scanned" => "{count} praskanuoti failai", -"error while scanning" => "klaida skanuojant", "Name" => "Pavadinimas", "Size" => "Dydis", "Modified" => "Pakeista", diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php index b175b19bba9..25c1da73beb 100644 --- a/apps/files/l10n/lv.php +++ b/apps/files/l10n/lv.php @@ -1,40 +1,69 @@ "Viss kārtībā, augšupielāde veiksmīga", -"No file was uploaded" => "Neviens fails netika augšuplādēts", +"No file was uploaded. Unknown error" => "Netika augšupielādēta neviena datne. Nezināma kļūda", +"There is no error, the file uploaded with success" => "Augšupielāde pabeigta bez kļūdām", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā", +"The uploaded file was only partially uploaded" => "Augšupielādētā datne ir tikai daļēji augšupielādēta", +"No file was uploaded" => "Neviena datne netika augšupielādēta", "Missing a temporary folder" => "Trūkst pagaidu mapes", -"Failed to write to disk" => "Nav iespējams saglabāt", -"Files" => "Faili", -"Unshare" => "Pārtraukt līdzdalīšanu", -"Delete" => "Izdzēst", -"Rename" => "Pārdēvēt", +"Failed to write to disk" => "Neizdevās saglabāt diskā", +"Not enough space available" => "Nepietiek brīvas vietas", +"Invalid directory." => "Nederīga direktorija.", +"Files" => "Datnes", +"Unshare" => "Pārtraukt dalīšanos", +"Delete" => "Dzēst", +"Rename" => "Pārsaukt", +"{new_name} already exists" => "{new_name} jau eksistē", "replace" => "aizvietot", -"suggest name" => "Ieteiktais nosaukums", +"suggest name" => "ieteiktais nosaukums", "cancel" => "atcelt", -"undo" => "vienu soli atpakaļ", -"Unable to upload your file as it is a directory or has 0 bytes" => "Nav iespējams augšuplādēt jūsu failu, jo tāds jau eksistē vai arī failam nav izmēra (0 baiti)", -"Upload Error" => "Augšuplādēšanas laikā radās kļūda", +"replaced {new_name}" => "aizvietots {new_name}", +"undo" => "atsaukt", +"replaced {new_name} with {old_name}" => "aizvietoja {new_name} ar {old_name}", +"perform delete operation" => "veikt dzēšanas darbību", +"'.' is an invalid file name." => "'.' ir nederīgs datnes nosaukums.", +"File name cannot be empty." => "Datnes nosaukums nevar būt tukšs.", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'.", +"Your storage is full, files can not be updated or synced anymore!" => "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!", +"Your storage is almost full ({usedSpacePercent}%)" => "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tās izmērs ir 0 baiti", +"Upload Error" => "Kļūda augšupielādējot", +"Close" => "Aizvērt", "Pending" => "Gaida savu kārtu", -"Upload cancelled." => "Augšuplāde ir atcelta", +"1 file uploading" => "Augšupielādē 1 datni", +"{count} files uploading" => "augšupielādē {count} datnes", +"Upload cancelled." => "Augšupielāde ir atcelta.", "File upload is in progress. Leaving the page now will cancel the upload." => "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.", +"URL cannot be empty." => "URL nevar būt tukšs.", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nederīgs mapes nosaukums. “Koplietots” izmantojums ir rezervēts ownCloud servisam.", "Name" => "Nosaukums", "Size" => "Izmērs", -"Modified" => "Izmainīts", -"Upload" => "Augšuplādet", -"File handling" => "Failu pārvaldība", -"Maximum upload size" => "Maksimālais failu augšuplādes apjoms", -"max. possible: " => "maksīmālais iespējamais:", -"Needed for multi-file and folder downloads." => "Vajadzīgs vairāku failu un mapju lejuplādei", -"Enable ZIP-download" => "Iespējot ZIP lejuplādi", +"Modified" => "Mainīts", +"1 folder" => "1 mape", +"{count} folders" => "{count} mapes", +"1 file" => "1 datne", +"{count} files" => "{count} datnes", +"Upload" => "Augšupielādēt", +"File handling" => "Datņu pārvaldība", +"Maximum upload size" => "Maksimālais datņu augšupielādes apjoms", +"max. possible: " => "maksimālais iespējamais:", +"Needed for multi-file and folder downloads." => "Vajadzīgs vairāku datņu un mapju lejupielādēšanai.", +"Enable ZIP-download" => "Aktivēt ZIP lejupielādi", "0 is unlimited" => "0 ir neierobežots", +"Maximum input size for ZIP files" => "Maksimālais ievades izmērs ZIP datnēm", "Save" => "Saglabāt", -"New" => "Jauns", -"Text file" => "Teksta fails", +"New" => "Jauna", +"Text file" => "Teksta datne", "Folder" => "Mape", -"Cancel upload" => "Atcelt augšuplādi", -"Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšuplādēt", -"Download" => "Lejuplādēt", -"Upload too large" => "Fails ir par lielu lai to augšuplādetu", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Jūsu augšuplādējamie faili pārsniedz servera pieļaujamo failu augšupielādes apjomu", -"Files are being scanned, please wait." => "Faili šobrīd tiek caurskatīti, nedaudz jāpagaida.", -"Current scanning" => "Šobrīd tiek pārbaudīti" +"From link" => "No saites", +"Trash" => "Miskaste", +"Cancel upload" => "Atcelt augšupielādi", +"Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!", +"Download" => "Lejupielādēt", +"Upload too large" => "Datne ir par lielu, lai to augšupielādētu", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu", +"Files are being scanned, please wait." => "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet.", +"Current scanning" => "Šobrīd tiek caurskatīts", +"Upgrading filesystem cache..." => "Uzlabo datņu sistēmas kešatmiņu..." ); diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php index 0ca08d6bc6a..2580d1e6a97 100644 --- a/apps/files/l10n/mk.php +++ b/apps/files/l10n/mk.php @@ -18,8 +18,6 @@ "replaced {new_name}" => "земенета {new_name}", "undo" => "врати", "replaced {new_name} with {old_name}" => "заменета {new_name} со {old_name}", -"unshared {files}" => "без споделување {files}", -"deleted {files}" => "избришани {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени.", "Unable to upload your file as it is a directory or has 0 bytes" => "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти", "Upload Error" => "Грешка при преземање", @@ -30,8 +28,6 @@ "Upload cancelled." => "Преземањето е прекинато.", "File upload is in progress. Leaving the page now will cancel the upload." => "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.", "URL cannot be empty." => "Адресата неможе да биде празна.", -"{count} files scanned" => "{count} датотеки скенирани", -"error while scanning" => "грешка при скенирање", "Name" => "Име", "Size" => "Големина", "Modified" => "Променето", diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php index 8bb7cfb2f9c..a6ba6e9c03f 100644 --- a/apps/files/l10n/nb_NO.php +++ b/apps/files/l10n/nb_NO.php @@ -17,7 +17,6 @@ "replaced {new_name}" => "erstatt {new_name}", "undo" => "angre", "replaced {new_name} with {old_name}" => "erstatt {new_name} med {old_name}", -"deleted {files}" => "slettet {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.", "Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes", "Upload Error" => "Opplasting feilet", @@ -28,8 +27,6 @@ "Upload cancelled." => "Opplasting avbrutt.", "File upload is in progress. Leaving the page now will cancel the upload." => "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", "URL cannot be empty." => "URL-en kan ikke være tom.", -"{count} files scanned" => "{count} filer lest inn", -"error while scanning" => "feil under skanning", "Name" => "Navn", "Size" => "Størrelse", "Modified" => "Endret", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index c78ac346d13..addd3a93723 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -1,7 +1,4 @@ "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", -"Could not move %s" => "Kon %s niet verplaatsen", -"Unable to rename file" => "Kan bestand niet hernoemen", "No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout", "There is no error, the file uploaded with success" => "Geen fout opgetreden, bestand successvol geupload.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", @@ -10,6 +7,7 @@ "No file was uploaded" => "Geen bestand geüpload", "Missing a temporary folder" => "Een tijdelijke map mist", "Failed to write to disk" => "Schrijven naar schijf mislukt", +"Not enough space available" => "Niet genoeg ruimte beschikbaar", "Invalid directory." => "Ongeldige directory.", "Files" => "Bestanden", "Unshare" => "Stop delen", @@ -22,11 +20,12 @@ "replaced {new_name}" => "verving {new_name}", "undo" => "ongedaan maken", "replaced {new_name} with {old_name}" => "verving {new_name} met {old_name}", -"unshared {files}" => "delen gestopt {files}", -"deleted {files}" => "verwijderde {files}", +"perform delete operation" => "uitvoeren verwijderactie", "'.' is an invalid file name." => "'.' is een ongeldige bestandsnaam.", "File name cannot be empty." => "Bestandsnaam kan niet leeg zijn.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.", +"Your storage is full, files can not be updated or synced anymore!" => "Uw opslagruimte zit vol, Bestanden kunnen niet meer worden ge-upload of gesynchroniseerd!", +"Your storage is almost full ({usedSpacePercent}%)" => "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden.", "Unable to upload your file as it is a directory or has 0 bytes" => "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes", "Upload Error" => "Upload Fout", @@ -38,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.", "URL cannot be empty." => "URL kan niet leeg zijn.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ongeldige mapnaam. Gebruik van'Gedeeld' is voorbehouden aan Owncloud", -"{count} files scanned" => "{count} bestanden gescanned", -"error while scanning" => "Fout tijdens het scannen", "Name" => "Naam", "Size" => "Bestandsgrootte", "Modified" => "Laatst aangepast", @@ -60,11 +57,13 @@ "Text file" => "Tekstbestand", "Folder" => "Map", "From link" => "Vanaf link", +"Trash" => "Verwijderen", "Cancel upload" => "Upload afbreken", "Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!", "Download" => "Download", "Upload too large" => "Bestanden te groot", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", "Files are being scanned, please wait." => "Bestanden worden gescand, even wachten.", -"Current scanning" => "Er wordt gescand" +"Current scanning" => "Er wordt gescand", +"Upgrading filesystem cache..." => "Upgraden bestandssysteem cache..." ); diff --git a/apps/files/l10n/oc.php b/apps/files/l10n/oc.php index 76c8d6b655a..78045b299ed 100644 --- a/apps/files/l10n/oc.php +++ b/apps/files/l10n/oc.php @@ -19,7 +19,6 @@ "1 file uploading" => "1 fichièr al amontcargar", "Upload cancelled." => "Amontcargar anullat.", "File upload is in progress. Leaving the page now will cancel the upload." => "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", -"error while scanning" => "error pendant l'exploracion", "Name" => "Nom", "Size" => "Talha", "Modified" => "Modificat", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index 477e14491f7..6855850f0da 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -1,7 +1,4 @@ "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", -"Could not move %s" => "Nie można było przenieść %s", -"Unable to rename file" => "Nie można zmienić nazwy pliku", "No file was uploaded. Unknown error" => "Plik nie został załadowany. Nieznany błąd", "There is no error, the file uploaded with success" => "Przesłano plik", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", @@ -10,6 +7,7 @@ "No file was uploaded" => "Nie przesłano żadnego pliku", "Missing a temporary folder" => "Brak katalogu tymczasowego", "Failed to write to disk" => "Błąd zapisu na dysk", +"Not enough space available" => "Za mało miejsca", "Invalid directory." => "Zła ścieżka.", "Files" => "Pliki", "Unshare" => "Nie udostępniaj", @@ -22,8 +20,6 @@ "replaced {new_name}" => "zastąpiony {new_name}", "undo" => "wróć", "replaced {new_name} with {old_name}" => "zastąpiony {new_name} z {old_name}", -"unshared {files}" => "Udostępniane wstrzymane {files}", -"deleted {files}" => "usunięto {files}", "'.' is an invalid file name." => "'.' jest nieprawidłową nazwą pliku.", "File name cannot be empty." => "Nazwa pliku nie może być pusta.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Niepoprawna nazwa, Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*'są niedozwolone.", @@ -37,8 +33,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Teraz opuszczając stronę wysyłanie zostanie anulowane.", "URL cannot be empty." => "URL nie może być pusty.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nazwa folderu nieprawidłowa. Wykorzystanie \"Shared\" jest zarezerwowane przez Owncloud", -"{count} files scanned" => "{count} pliki skanowane", -"error while scanning" => "Wystąpił błąd podczas skanowania", "Name" => "Nazwa", "Size" => "Rozmiar", "Modified" => "Czas modyfikacji", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index 33014297ee5..361e81052b9 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -7,6 +7,7 @@ "No file was uploaded" => "Nenhum arquivo foi transferido", "Missing a temporary folder" => "Pasta temporária não encontrada", "Failed to write to disk" => "Falha ao escrever no disco", +"Invalid directory." => "Diretório inválido.", "Files" => "Arquivos", "Unshare" => "Descompartilhar", "Delete" => "Excluir", @@ -18,9 +19,10 @@ "replaced {new_name}" => "substituído {new_name}", "undo" => "desfazer", "replaced {new_name} with {old_name}" => "Substituído {old_name} por {new_name} ", -"unshared {files}" => "{files} não compartilhados", -"deleted {files}" => "{files} apagados", +"'.' is an invalid file name." => "'.' é um nome de arquivo inválido.", +"File name cannot be empty." => "O nome do arquivo não pode estar vazio.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", +"Your download is being prepared. This might take some time if the files are big." => "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes.", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossível enviar seus arquivo como diretório ou ele tem 0 bytes.", "Upload Error" => "Erro de envio", "Close" => "Fechar", @@ -30,8 +32,7 @@ "Upload cancelled." => "Envio cancelado.", "File upload is in progress. Leaving the page now will cancel the upload." => "Upload em andamento. Sair da página agora resultará no cancelamento do envio.", "URL cannot be empty." => "URL não pode ficar em branco", -"{count} files scanned" => "{count} arquivos scaneados", -"error while scanning" => "erro durante verificação", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de pasta inválido. O uso de 'Shared' é reservado para o Owncloud", "Name" => "Nome", "Size" => "Tamanho", "Modified" => "Modificado", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index 6cee8d9d88e..b1d7385bc58 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -1,7 +1,4 @@ "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome", -"Could not move %s" => "Não foi possível move o ficheiro %s", -"Unable to rename file" => "Não foi possível renomear o ficheiro", "No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido", "There is no error, the file uploaded with success" => "Sem erro, ficheiro enviado com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize", @@ -10,7 +7,7 @@ "No file was uploaded" => "Não foi enviado nenhum ficheiro", "Missing a temporary folder" => "Falta uma pasta temporária", "Failed to write to disk" => "Falhou a escrita no disco", -"Not enough storage available" => "Não há espaço suficiente em disco", +"Not enough space available" => "Espaço em disco insuficiente!", "Invalid directory." => "Directório Inválido", "Files" => "Ficheiros", "Unshare" => "Deixar de partilhar", @@ -23,8 +20,7 @@ "replaced {new_name}" => "{new_name} substituido", "undo" => "desfazer", "replaced {new_name} with {old_name}" => "substituido {new_name} por {old_name}", -"unshared {files}" => "{files} não partilhado(s)", -"deleted {files}" => "{files} eliminado(s)", +"perform delete operation" => "Executar a tarefa de apagar", "'.' is an invalid file name." => "'.' não é um nome de ficheiro válido!", "File name cannot be empty." => "O nome do ficheiro não pode estar vazio.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome Inválido, os caracteres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora.", "URL cannot be empty." => "O URL não pode estar vazio.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de pasta inválido. O Uso de 'shared' é reservado para o ownCloud", -"{count} files scanned" => "{count} ficheiros analisados", -"error while scanning" => "erro ao analisar", "Name" => "Nome", "Size" => "Tamanho", "Modified" => "Modificado", @@ -63,11 +57,13 @@ "Text file" => "Ficheiro de texto", "Folder" => "Pasta", "From link" => "Da ligação", +"Trash" => "Lixo", "Cancel upload" => "Cancelar envio", "Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", "Download" => "Transferir", "Upload too large" => "Envio muito grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que está a tentar enviar excedem o tamanho máximo de envio permitido neste servidor.", "Files are being scanned, please wait." => "Os ficheiros estão a ser analisados, por favor aguarde.", -"Current scanning" => "Análise actual" +"Current scanning" => "Análise actual", +"Upgrading filesystem cache..." => "Atualizar cache do sistema de ficheiros..." ); diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index 424450e920f..7837b1f5b30 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -1,7 +1,4 @@ "Nu se poate de mutat %s - Fișier cu acest nume deja există", -"Could not move %s" => "Nu s-a putut muta %s", -"Unable to rename file" => "Nu s-a putut redenumi fișierul", "No file was uploaded. Unknown error" => "Nici un fișier nu a fost încărcat. Eroare necunoscută", "There is no error, the file uploaded with success" => "Nicio eroare, fișierul a fost încărcat cu succes", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste upload_max_filesize permisi in php.ini: ", @@ -10,6 +7,7 @@ "No file was uploaded" => "Niciun fișier încărcat", "Missing a temporary folder" => "Lipsește un dosar temporar", "Failed to write to disk" => "Eroare la scriere pe disc", +"Not enough space available" => "Nu este suficient spațiu disponibil", "Invalid directory." => "Director invalid.", "Files" => "Fișiere", "Unshare" => "Anulează partajarea", @@ -22,8 +20,6 @@ "replaced {new_name}" => "inlocuit {new_name}", "undo" => "Anulează ultima acțiune", "replaced {new_name} with {old_name}" => "{new_name} inlocuit cu {old_name}", -"unshared {files}" => "nedistribuit {files}", -"deleted {files}" => "Sterse {files}", "'.' is an invalid file name." => "'.' este un nume invalid de fișier.", "File name cannot be empty." => "Numele fișierului nu poate rămâne gol.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume invalid, '\\', '/', '<', '>', ':', '\"', '|', '?' si '*' nu sunt permise.", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", "URL cannot be empty." => "Adresa URL nu poate fi goală.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Invalid folder name. Usage of 'Shared' is reserved by Ownclou", -"{count} files scanned" => "{count} fisiere scanate", -"error while scanning" => "eroare la scanarea", "Name" => "Nume", "Size" => "Dimensiune", "Modified" => "Modificat", diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index ae103a9e810..716afa5f29a 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -1,7 +1,4 @@ "Невозможно переместить %s - файл с таким именем уже существует", -"Could not move %s" => "Невозможно переместить %s", -"Unable to rename file" => "Невозможно переименовать файл", "No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", "There is no error, the file uploaded with success" => "Файл успешно загружен", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер установленный upload_max_filesize в php.ini:", @@ -10,6 +7,7 @@ "No file was uploaded" => "Файл не был загружен", "Missing a temporary folder" => "Невозможно найти временную папку", "Failed to write to disk" => "Ошибка записи на диск", +"Not enough space available" => "Недостаточно свободного места", "Invalid directory." => "Неправильный каталог.", "Files" => "Файлы", "Unshare" => "Отменить публикацию", @@ -22,8 +20,6 @@ "replaced {new_name}" => "заменено {new_name}", "undo" => "отмена", "replaced {new_name} with {old_name}" => "заменено {new_name} на {old_name}", -"unshared {files}" => "не опубликованные {files}", -"deleted {files}" => "удаленные {files}", "'.' is an invalid file name." => "'.' - неправильное имя файла.", "File name cannot be empty." => "Имя файла не может быть пустым.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", @@ -37,8 +33,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку.", "URL cannot be empty." => "Ссылка не может быть пустой.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Неправильное имя каталога. Имя 'Shared' зарезервировано.", -"{count} files scanned" => "{count} файлов просканировано", -"error while scanning" => "ошибка во время санирования", "Name" => "Название", "Size" => "Размер", "Modified" => "Изменён", diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php index 60a7fd0f71e..e1952567d31 100644 --- a/apps/files/l10n/ru_RU.php +++ b/apps/files/l10n/ru_RU.php @@ -7,6 +7,8 @@ "No file was uploaded" => "Файл не был загружен", "Missing a temporary folder" => "Отсутствует временная папка", "Failed to write to disk" => "Не удалось записать на диск", +"Not enough space available" => "Не достаточно свободного места", +"Invalid directory." => "Неверный каталог.", "Files" => "Файлы", "Unshare" => "Скрыть", "Delete" => "Удалить", @@ -18,8 +20,8 @@ "replaced {new_name}" => "заменено {новое_имя}", "undo" => "отменить действие", "replaced {new_name} with {old_name}" => "заменено {новое_имя} с {старое_имя}", -"unshared {files}" => "Cовместное использование прекращено {файлы}", -"deleted {files}" => "удалено {файлы}", +"'.' is an invalid file name." => "'.' является неверным именем файла.", +"File name cannot be empty." => "Имя файла не может быть пустым.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.", "Unable to upload your file as it is a directory or has 0 bytes" => "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией", "Upload Error" => "Ошибка загрузки", @@ -30,8 +32,7 @@ "Upload cancelled." => "Загрузка отменена", "File upload is in progress. Leaving the page now will cancel the upload." => "Процесс загрузки файла. Если покинуть страницу сейчас, загрузка будет отменена.", "URL cannot be empty." => "URL не должен быть пустым.", -"{count} files scanned" => "{количество} файлов отсканировано", -"error while scanning" => "ошибка при сканировании", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Неверное имя папки. Использование наименования 'Опубликовано' зарезервировано Owncloud", "Name" => "Имя", "Size" => "Размер", "Modified" => "Изменен", @@ -58,5 +59,6 @@ "Upload too large" => "Загрузка слишком велика", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Размер файлов, которые Вы пытаетесь загрузить, превышает максимально допустимый размер для загрузки на данный сервер.", "Files are being scanned, please wait." => "Файлы сканируются, пожалуйста, подождите.", -"Current scanning" => "Текущее сканирование" +"Current scanning" => "Текущее сканирование", +"Upgrading filesystem cache..." => "Обновление кэша файловой системы... " ); diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php index 133737cb57a..316470d8396 100644 --- a/apps/files/l10n/si_LK.php +++ b/apps/files/l10n/si_LK.php @@ -20,7 +20,6 @@ "Upload cancelled." => "උඩුගත කිරීම අත් හරින්න ලදී", "File upload is in progress. Leaving the page now will cancel the upload." => "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත", "URL cannot be empty." => "යොමුව හිස් විය නොහැක", -"error while scanning" => "පරීක්ෂා කිරීමේදී දෝෂයක්", "Name" => "නම", "Size" => "ප්‍රමාණය", "Modified" => "වෙනස් කළ", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index bae5670d061..9c27e215397 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -1,7 +1,4 @@ "Nie je možné presunúť %s - súbor s týmto menom už existuje", -"Could not move %s" => "Nie je možné presunúť %s", -"Unable to rename file" => "Nemožno premenovať súbor", "No file was uploaded. Unknown error" => "Žiaden súbor nebol odoslaný. Neznáma chyba", "There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:", @@ -10,6 +7,7 @@ "No file was uploaded" => "Žiaden súbor nebol nahraný", "Missing a temporary folder" => "Chýbajúci dočasný priečinok", "Failed to write to disk" => "Zápis na disk sa nepodaril", +"Not enough space available" => "Nie je k dispozícii dostatok miesta", "Invalid directory." => "Neplatný adresár", "Files" => "Súbory", "Unshare" => "Nezdielať", @@ -22,11 +20,12 @@ "replaced {new_name}" => "prepísaný {new_name}", "undo" => "vrátiť", "replaced {new_name} with {old_name}" => "prepísaný {new_name} súborom {old_name}", -"unshared {files}" => "zdieľanie zrušené pre {files}", -"deleted {files}" => "zmazané {files}", +"perform delete operation" => "vykonať zmazanie", "'.' is an invalid file name." => "'.' je neplatné meno súboru.", "File name cannot be empty." => "Meno súboru nemôže byť prázdne", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.", +"Your storage is full, files can not be updated or synced anymore!" => "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!", +"Your storage is almost full ({usedSpacePercent}%)" => "Vaše úložisko je takmer plné ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Vaše sťahovanie sa pripravuje. Ak sú sťahované súbory veľké, môže to chvíľu trvať.", "Unable to upload your file as it is a directory or has 0 bytes" => "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov.", "Upload Error" => "Chyba odosielania", @@ -38,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", "URL cannot be empty." => "URL nemôže byť prázdne", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatné meno adresára. Používanie mena 'Shared' je vyhradené len pre Owncloud", -"{count} files scanned" => "{count} súborov prehľadaných", -"error while scanning" => "chyba počas kontroly", "Name" => "Meno", "Size" => "Veľkosť", "Modified" => "Upravené", @@ -60,11 +57,13 @@ "Text file" => "Textový súbor", "Folder" => "Priečinok", "From link" => "Z odkazu", +"Trash" => "Kôš", "Cancel upload" => "Zrušiť odosielanie", "Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", "Download" => "Stiahnuť", "Upload too large" => "Odosielaný súbor je príliš veľký", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", "Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.", -"Current scanning" => "Práve prehliadané" +"Current scanning" => "Práve prehliadané", +"Upgrading filesystem cache..." => "Aktualizujem medzipamäť súborového systému..." ); diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index fbc6ab83b8b..d55b4207d2b 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -18,8 +18,6 @@ "replaced {new_name}" => "zamenjano je ime {new_name}", "undo" => "razveljavi", "replaced {new_name} with {old_name}" => "zamenjano ime {new_name} z imenom {old_name}", -"unshared {files}" => "odstranjeno iz souporabe {files}", -"deleted {files}" => "izbrisano {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neveljavno ime, znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.", "Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov.", "Upload Error" => "Napaka med nalaganjem", @@ -30,8 +28,6 @@ "Upload cancelled." => "Pošiljanje je preklicano.", "File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.", "URL cannot be empty." => "Naslov URL ne sme biti prazen.", -"{count} files scanned" => "{count} files scanned", -"error while scanning" => "napaka med pregledovanjem datotek", "Name" => "Ime", "Size" => "Velikost", "Modified" => "Spremenjeno", diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php index 71da2da4d14..188c8fc0da6 100644 --- a/apps/files/l10n/sr.php +++ b/apps/files/l10n/sr.php @@ -17,8 +17,6 @@ "replaced {new_name}" => "замењено {new_name}", "undo" => "опозови", "replaced {new_name} with {old_name}" => "замењено {new_name} са {old_name}", -"unshared {files}" => "укинуто дељење {files}", -"deleted {files}" => "обрисано {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неисправан назив. Следећи знакови нису дозвољени: \\, /, <, >, :, \", |, ? и *.", "Unable to upload your file as it is a directory or has 0 bytes" => "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова", "Upload Error" => "Грешка при отпремању", @@ -28,8 +26,6 @@ "{count} files uploading" => "Отпремам {count} датотеке/а", "Upload cancelled." => "Отпремање је прекинуто.", "File upload is in progress. Leaving the page now will cancel the upload." => "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.", -"{count} files scanned" => "Скенирано датотека: {count}", -"error while scanning" => "грешка при скенирању", "Name" => "Назив", "Size" => "Величина", "Modified" => "Измењено", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index ebcb4626fc8..55493e24943 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -1,7 +1,4 @@ "Kunde inte flytta %s - Det finns redan en fil med detta namn", -"Could not move %s" => "Kan inte flytta %s", -"Unable to rename file" => "Kan inte byta namn på filen", "No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel", "There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", @@ -10,7 +7,7 @@ "No file was uploaded" => "Ingen fil blev uppladdad", "Missing a temporary folder" => "Saknar en tillfällig mapp", "Failed to write to disk" => "Misslyckades spara till disk", -"Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt", +"Not enough space available" => "Inte tillräckligt med utrymme tillgängligt", "Invalid directory." => "Felaktig mapp.", "Files" => "Filer", "Unshare" => "Sluta dela", @@ -23,8 +20,7 @@ "replaced {new_name}" => "ersatt {new_name}", "undo" => "ångra", "replaced {new_name} with {old_name}" => "ersatt {new_name} med {old_name}", -"unshared {files}" => "stoppad delning {files}", -"deleted {files}" => "raderade {files}", +"perform delete operation" => "utför raderingen", "'.' is an invalid file name." => "'.' är ett ogiltigt filnamn.", "File name cannot be empty." => "Filnamn kan inte vara tomt.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.", "URL cannot be empty." => "URL kan inte vara tom.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud", -"{count} files scanned" => "{count} filer skannade", -"error while scanning" => "fel vid skanning", "Name" => "Namn", "Size" => "Storlek", "Modified" => "Ändrad", @@ -63,11 +57,13 @@ "Text file" => "Textfil", "Folder" => "Mapp", "From link" => "Från länk", +"Trash" => "Papperskorgen", "Cancel upload" => "Avbryt uppladdning", "Nothing in here. Upload something!" => "Ingenting här. Ladda upp något!", "Download" => "Ladda ner", "Upload too large" => "För stor uppladdning", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.", "Files are being scanned, please wait." => "Filer skannas, var god vänta", -"Current scanning" => "Aktuell skanning" +"Current scanning" => "Aktuell skanning", +"Upgrading filesystem cache..." => "Uppgraderar filsystemets cache..." ); diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php index 52916fed774..383b4ef6f85 100644 --- a/apps/files/l10n/ta_LK.php +++ b/apps/files/l10n/ta_LK.php @@ -17,8 +17,6 @@ "replaced {new_name}" => "மாற்றப்பட்டது {new_name}", "undo" => "முன் செயல் நீக்கம் ", "replaced {new_name} with {old_name}" => "{new_name} ஆனது {old_name} இனால் மாற்றப்பட்டது", -"unshared {files}" => "பகிரப்படாதது {கோப்புகள்}", -"deleted {files}" => "நீக்கப்பட்டது {கோப்புகள்}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "செல்லுபடியற்ற பெயர்,'\\', '/', '<', '>', ':', '\"', '|', '?' மற்றும் '*' ஆகியன அனுமதிக்கப்படமாட்டாது.", "Unable to upload your file as it is a directory or has 0 bytes" => "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை", "Upload Error" => "பதிவேற்றல் வழு", @@ -29,8 +27,6 @@ "Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", "File upload is in progress. Leaving the page now will cancel the upload." => "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.", "URL cannot be empty." => "URL வெறுமையாக இருக்கமுடியாது.", -"{count} files scanned" => "{எண்ணிக்கை} கோப்புகள் வருடப்பட்டது", -"error while scanning" => "வருடும் போதான வழு", "Name" => "பெயர்", "Size" => "அளவு", "Modified" => "மாற்றப்பட்டது", diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php index d7fcd82a9d1..06dab9d8e6c 100644 --- a/apps/files/l10n/th_TH.php +++ b/apps/files/l10n/th_TH.php @@ -1,7 +1,4 @@ "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", -"Could not move %s" => "ไม่สามารถย้าย %s ได้", -"Unable to rename file" => "ไม่สามารถเปลี่ยนชื่อไฟล์ได้", "No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", "There is no error, the file uploaded with success" => "ไม่มีข้อผิดพลาดใดๆ ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", @@ -10,7 +7,7 @@ "No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด", "Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย", "Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", -"Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", +"Not enough space available" => "มีพื้นที่เหลือไม่เพียงพอ", "Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", "Files" => "ไฟล์", "Unshare" => "ยกเลิกการแชร์ข้อมูล", @@ -23,8 +20,7 @@ "replaced {new_name}" => "แทนที่ {new_name} แล้ว", "undo" => "เลิกทำ", "replaced {new_name} with {old_name}" => "แทนที่ {new_name} ด้วย {old_name} แล้ว", -"unshared {files}" => "ยกเลิกการแชร์แล้ว {files} ไฟล์", -"deleted {files}" => "ลบไฟล์แล้ว {files} ไฟล์", +"perform delete operation" => "ดำเนินการตามคำสั่งลบ", "'.' is an invalid file name." => "'.' เป็นชื่อไฟล์ที่ไม่ถูกต้อง", "File name cannot be empty." => "ชื่อไฟล์ไม่สามารถเว้นว่างได้", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้", @@ -41,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก", "URL cannot be empty." => "URL ไม่สามารถเว้นว่างได้", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "ชื่อโฟลเดอร์ไม่ถูกต้อง การใช้งาน 'แชร์' สงวนไว้สำหรับ Owncloud เท่านั้น", -"{count} files scanned" => "สแกนไฟล์แล้ว {count} ไฟล์", -"error while scanning" => "พบข้อผิดพลาดในระหว่างการสแกนไฟล์", "Name" => "ชื่อ", "Size" => "ขนาด", "Modified" => "ปรับปรุงล่าสุด", @@ -63,11 +57,13 @@ "Text file" => "ไฟล์ข้อความ", "Folder" => "แฟ้มเอกสาร", "From link" => "จากลิงก์", +"Trash" => "ถังขยะ", "Cancel upload" => "ยกเลิกการอัพโหลด", "Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", "Download" => "ดาวน์โหลด", "Upload too large" => "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", "Files are being scanned, please wait." => "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่.", -"Current scanning" => "ไฟล์ที่กำลังสแกนอยู่ขณะนี้" +"Current scanning" => "ไฟล์ที่กำลังสแกนอยู่ขณะนี้", +"Upgrading filesystem cache..." => "กำลังอัพเกรดหน่วยความจำแคชของระบบไฟล์..." ); diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index 2eba20fd0ae..3412d8ad448 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -1,7 +1,4 @@ "%s taşınamadı. Bu isimde dosya zaten var.", -"Could not move %s" => "%s taşınamadı", -"Unable to rename file" => "Dosya adı değiştirilemedi", "No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata", "There is no error, the file uploaded with success" => "Bir hata yok, dosya başarıyla yüklendi", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı.", @@ -10,6 +7,7 @@ "No file was uploaded" => "Hiç dosya yüklenmedi", "Missing a temporary folder" => "Geçici bir klasör eksik", "Failed to write to disk" => "Diske yazılamadı", +"Not enough space available" => "Yeterli disk alanı yok", "Invalid directory." => "Geçersiz dizin.", "Files" => "Dosyalar", "Unshare" => "Paylaşılmayan", @@ -22,8 +20,6 @@ "replaced {new_name}" => "değiştirilen {new_name}", "undo" => "geri al", "replaced {new_name} with {old_name}" => "{new_name} ismi {old_name} ile değiştirildi", -"unshared {files}" => "paylaşılmamış {files}", -"deleted {files}" => "silinen {files}", "'.' is an invalid file name." => "'.' geçersiz dosya adı.", "File name cannot be empty." => "Dosya adı boş olamaz.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur.", "URL cannot be empty." => "URL boş olamaz.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Geçersiz dizin adı. Shared isminin kullanımı Owncloud tarafından rezerver edilmiştir.", -"{count} files scanned" => "{count} dosya tarandı", -"error while scanning" => "tararamada hata oluşdu", "Name" => "Ad", "Size" => "Boyut", "Modified" => "Değiştirilme", diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index aafa035ea09..9831dfe0f8f 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -18,8 +18,6 @@ "replaced {new_name}" => "замінено {new_name}", "undo" => "відмінити", "replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}", -"unshared {files}" => "неопубліковано {files}", -"deleted {files}" => "видалено {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені.", "Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт", "Upload Error" => "Помилка завантаження", @@ -30,8 +28,6 @@ "Upload cancelled." => "Завантаження перервано.", "File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", "URL cannot be empty." => "URL не може бути пустим.", -"{count} files scanned" => "{count} файлів проскановано", -"error while scanning" => "помилка при скануванні", "Name" => "Ім'я", "Size" => "Розмір", "Modified" => "Змінено", diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index ce4f3a7973f..0daf580a2f5 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -17,8 +17,6 @@ "replaced {new_name}" => "đã thay thế {new_name}", "undo" => "lùi lại", "replaced {new_name} with {old_name}" => "đã thay thế {new_name} bằng {old_name}", -"unshared {files}" => "hủy chia sẽ {files}", -"deleted {files}" => "đã xóa {files}", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", "Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte", "Upload Error" => "Tải lên lỗi", @@ -29,8 +27,6 @@ "Upload cancelled." => "Hủy tải lên", "File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", "URL cannot be empty." => "URL không được để trống.", -"{count} files scanned" => "{count} tập tin đã được quét", -"error while scanning" => "lỗi trong khi quét", "Name" => "Tên", "Size" => "Kích cỡ", "Modified" => "Thay đổi", diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php index ae1b603369a..a38e2d3bc60 100644 --- a/apps/files/l10n/zh_CN.GB2312.php +++ b/apps/files/l10n/zh_CN.GB2312.php @@ -17,8 +17,6 @@ "replaced {new_name}" => "已替换 {new_name}", "undo" => "撤销", "replaced {new_name} with {old_name}" => "已用 {old_name} 替换 {new_name}", -"unshared {files}" => "未分享的 {files}", -"deleted {files}" => "已删除的 {files}", "Unable to upload your file as it is a directory or has 0 bytes" => "不能上传你指定的文件,可能因为它是个文件夹或者大小为0", "Upload Error" => "上传错误", "Close" => "关闭", @@ -28,8 +26,6 @@ "Upload cancelled." => "上传取消了", "File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传。关闭页面会取消上传。", "URL cannot be empty." => "网址不能为空。", -"{count} files scanned" => "{count} 个文件已扫描", -"error while scanning" => "扫描出错", "Name" => "名字", "Size" => "大小", "Modified" => "修改日期", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 2e0f938dcd8..2491d645340 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -1,7 +1,4 @@ "无法移动 %s - 同名文件已存在", -"Could not move %s" => "无法移动 %s", -"Unable to rename file" => "无法重命名文件", "No file was uploaded. Unknown error" => "没有文件被上传。未知错误", "There is no error, the file uploaded with success" => "没有发生错误,文件上传成功。", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值", @@ -10,6 +7,7 @@ "No file was uploaded" => "文件没有上传", "Missing a temporary folder" => "缺少临时目录", "Failed to write to disk" => "写入磁盘失败", +"Not enough space available" => "没有足够可用空间", "Invalid directory." => "无效文件夹。", "Files" => "文件", "Unshare" => "取消分享", @@ -22,8 +20,6 @@ "replaced {new_name}" => "替换 {new_name}", "undo" => "撤销", "replaced {new_name} with {old_name}" => "已将 {old_name}替换成 {new_name}", -"unshared {files}" => "取消了共享 {files}", -"deleted {files}" => "删除了 {files}", "'.' is an invalid file name." => "'.' 是一个无效的文件名。", "File name cannot be empty." => "文件名不能为空。", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "无效名称,'\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 不被允许使用。", @@ -38,8 +34,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。", "URL cannot be empty." => "URL不能为空", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "无效文件夹名。'共享' 是 Owncloud 预留的文件夹名。", -"{count} files scanned" => "{count} 个文件已扫描。", -"error while scanning" => "扫描时出错", "Name" => "名称", "Size" => "大小", "Modified" => "修改日期", diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php index 8d41a927355..104cb3a619f 100644 --- a/apps/files/l10n/zh_TW.php +++ b/apps/files/l10n/zh_TW.php @@ -1,7 +1,4 @@ "無法移動 %s - 同名的檔案已經存在", -"Could not move %s" => "無法移動 %s", -"Unable to rename file" => "無法重新命名檔案", "No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。", "There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", @@ -10,6 +7,7 @@ "No file was uploaded" => "無已上傳檔案", "Missing a temporary folder" => "遺失暫存資料夾", "Failed to write to disk" => "寫入硬碟失敗", +"Not enough space available" => "沒有足夠的可用空間", "Invalid directory." => "無效的資料夾。", "Files" => "檔案", "Unshare" => "取消共享", @@ -22,11 +20,12 @@ "replaced {new_name}" => "已取代 {new_name}", "undo" => "復原", "replaced {new_name} with {old_name}" => "使用 {new_name} 取代 {old_name}", -"unshared {files}" => "已取消分享 {files}", -"deleted {files}" => "已刪除 {files}", +"perform delete operation" => "進行刪除動作", "'.' is an invalid file name." => "'.' 是不合法的檔名。", "File name cannot be empty." => "檔名不能為空。", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 。", +"Your storage is full, files can not be updated or synced anymore!" => "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", +"Your storage is almost full ({usedSpacePercent}%)" => "您的儲存空間快要滿了 ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "正在準備您的下載,若您的檔案較大,將會需要更多時間。", "Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0", "Upload Error" => "上傳發生錯誤", @@ -38,8 +37,6 @@ "File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中。離開此頁面將會取消上傳。", "URL cannot be empty." => "URL 不能為空白.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "無效的資料夾名稱,'Shared' 的使用被 Owncloud 保留", -"{count} files scanned" => "{count} 個檔案已掃描", -"error while scanning" => "掃描時發生錯誤", "Name" => "名稱", "Size" => "大小", "Modified" => "修改", @@ -60,11 +57,13 @@ "Text file" => "文字檔", "Folder" => "資料夾", "From link" => "從連結", +"Trash" => "回收筒", "Cancel upload" => "取消上傳", "Nothing in here. Upload something!" => "沒有任何東西。請上傳內容!", "Download" => "下載", "Upload too large" => "上傳過大", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。 ", "Files are being scanned, please wait." => "正在掃描檔案,請稍等。", -"Current scanning" => "目前掃描" +"Current scanning" => "目前掃描", +"Upgrading filesystem cache..." => "正在更新檔案系統快取..." ); diff --git a/apps/files/settings.php b/apps/files/settings.php index ea730a5a727..8687f013137 100644 --- a/apps/files/settings.php +++ b/apps/files/settings.php @@ -32,7 +32,7 @@ OCP\Util::addscript( "files", "files" ); $dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; $files = array(); -foreach( OC_Files::getdirectorycontent( $dir ) as $i ) { +foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $i ) { $i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] ); $files[] = $i; } diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index b66b523ae38..2d4ed9ab2d9 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -35,6 +35,11 @@ + + +
-
diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php index 7df2afc1f52..e506ba31f6a 100644 --- a/apps/files/templates/part.breadcrumb.php +++ b/apps/files/templates/part.breadcrumb.php @@ -1,10 +1,16 @@ + +
+ + + +
+
svg" - data-dir='' - style='background-image:url("")'> + data-dir=''>
- - - + @@ -61,4 +61,4 @@ - + t('Upgrading filesystem cache...');?> +
+
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php index 6a6f5510db6..2c6b650960a 100644 --- a/apps/files_encryption/l10n/es.php +++ b/apps/files_encryption/l10n/es.php @@ -1,9 +1,15 @@ "Por favor, cambie su cliente de ownCloud y cambie su clave de cifrado para completar la conversión.", -"switched to client side encryption" => "Cambiar a encriptación en lado cliente", -"Change encryption password to login password" => "Cambie la clave de cifrado para ingresar su contraseña", +"switched to client side encryption" => "Cambiar a cifrado del lado del cliente", +"Change encryption password to login password" => "Cambie la clave de cifrado para su contraseña de inicio de sesión", "Please check your passwords and try again." => "Por favor revise su contraseña e intentelo de nuevo.", -"Choose encryption mode:" => "Elegir el modo de encriptado:", +"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión", +"Choose encryption mode:" => "Elegir el modo de cifrado:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Cifrado del lado del Cliente ( es el más seguro, pero hace que sea imposible acceder a sus datos desde la interfaz web)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Cifrado del lado del Servidor (le permite acceder a sus archivos desde la interfaz web y el cliente de escritorio)", +"None (no encryption at all)" => "Ninguno (ningún cifrado en absoluto)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de cifrado no existe forma de cambiarlo de nuevo", +"User specific (let the user decide)" => "Específico del usuario (dejar que el usuario decida)", "Encryption" => "Cifrado", "Exclude the following file types from encryption" => "Excluir del cifrado los siguientes tipos de archivo", "None" => "Ninguno" diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php index 31898f50fde..5cf0b8e4adc 100644 --- a/apps/files_encryption/l10n/es_AR.php +++ b/apps/files_encryption/l10n/es_AR.php @@ -1,4 +1,15 @@ "Por favor, cambiá uu cliente de ownCloud y cambiá tu clave de encriptado para completar la conversión.", +"switched to client side encryption" => "Cambiado a encriptación por parte del cliente", +"Change encryption password to login password" => "Cambiá la clave de encriptado para tu contraseña de inicio de sesión", +"Please check your passwords and try again." => "Por favor, revisá tu contraseña e intentalo de nuevo.", +"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión", +"Choose encryption mode:" => "Elegir el modo de encriptación:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptación por parte del cliente (es el modo más seguro, pero hace que sea imposible acceder a tus datos desde la interfaz web)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptación por parte del servidor (te permite acceder a tus archivos desde la interfaz web y desde el cliente de escritorio)", +"None (no encryption at all)" => "Ninguno (ninguna encriptación en absoluto)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de encriptación, no existe forma de cambiarlo nuevamente", +"User specific (let the user decide)" => "Específico por usuario (deja que el usuario decida)", "Encryption" => "Encriptación", "Exclude the following file types from encryption" => "Exceptuar de la encriptación los siguientes tipos de archivo", "None" => "Ninguno" diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php index 433ae890ef6..33756c2831f 100644 --- a/apps/files_encryption/l10n/fi_FI.php +++ b/apps/files_encryption/l10n/fi_FI.php @@ -1,4 +1,8 @@ "Tarkista salasanasi ja yritä uudelleen.", +"Choose encryption mode:" => "Choose encryption mode:", +"None (no encryption at all)" => "Ei mitään (ei lainkaan salausta)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Tärkeä huomautus: Kun olet valinnut salaustatavan, sitä ei ole mahdollista vaihtaa", "Encryption" => "Salaus", "Exclude the following file types from encryption" => "Jätä seuraavat tiedostotyypit salaamatta", "None" => "Ei mitään" diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php index 68d60c1ae30..901c41e12ec 100644 --- a/apps/files_encryption/l10n/ko.php +++ b/apps/files_encryption/l10n/ko.php @@ -1,4 +1,15 @@ "ownCloud로 전환한 다음 암호화에 사용할 암호를 변경하면 변환이 완료됩니다.", +"switched to client side encryption" => "클라이언트 암호화로 변경됨", +"Change encryption password to login password" => "암호화 암호를 로그인 암호로 변경", +"Please check your passwords and try again." => "암호를 확인한 다음 다시 시도하십시오.", +"Could not change your file encryption password to your login password" => "암호화 암호를 로그인 암호로 변경할 수 없습니다", +"Choose encryption mode:" => "암호화 모드 선택:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "클라이언트 암호화 (안전하지만 웹에서 데이터에 접근할 수 없음)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "서버 암호화 (웹 및 데스크톱 클라이언트에서 데이터에 접근할 수 있음)", +"None (no encryption at all)" => "없음 (암호화하지 않음)", +"Important: Once you selected an encryption mode there is no way to change it back" => "알림: 암호화 모드를 선택하면 다른 것으로 변경할 수 없습니다", +"User specific (let the user decide)" => "사용자 지정 (사용자별 설정)", "Encryption" => "암호화", "Exclude the following file types from encryption" => "다음 파일 형식은 암호화하지 않음", "None" => "없음" diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php new file mode 100644 index 00000000000..7eb21037bb0 --- /dev/null +++ b/apps/files_encryption/l10n/lv.php @@ -0,0 +1,16 @@ + "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu.", +"switched to client side encryption" => "Pārslēdzās uz klienta puses šifrēšanu", +"Change encryption password to login password" => "Mainīt šifrēšanas paroli uz ierakstīšanās paroli", +"Please check your passwords and try again." => "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz.", +"Could not change your file encryption password to your login password" => "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli", +"Choose encryption mode:" => "Izvēlieties šifrēšanas režīmu:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Klienta puses šifrēšana (visdrošākā, bet nav iespējams piekļūt saviem datiem no tīmekļa saskarnes)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Servera puses šifrēšana (ļauj piekļūt datnēm ar tīmekļa saskarni un ar darbvirsmas klientu)", +"None (no encryption at all)" => "Nav (nekādas šifrēšanas)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Svarīgi — kad esat izvēlējies šifrēšanas režīmu, to nekādi nevar mainīt atpakaļ", +"User specific (let the user decide)" => "Lietotājam specifiski (ļauj lietotājam izlemt)", +"Encryption" => "Šifrēšana", +"Exclude the following file types from encryption" => "Sekojošos datņu tipus nešifrēt", +"None" => "Nav" +); diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php index 7c09009cba9..02cb0d970f2 100644 --- a/apps/files_encryption/l10n/nl.php +++ b/apps/files_encryption/l10n/nl.php @@ -1,4 +1,11 @@ "overgeschakeld naar client side encryptie", +"Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord", +"Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.", +"Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord", +"Choose encryption mode:" => "Kies encryptie mode:", +"None (no encryption at all)" => "Geen (zonder encryptie)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Belangrijk: Zodra er voor een encryptie mode is gekozen kan deze niet meer worden gewijzigd.", "Encryption" => "Versleuteling", "Exclude the following file types from encryption" => "Versleutel de volgende bestand types niet", "None" => "Geen" diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php index 086d073cf5c..8bd6492a8f7 100644 --- a/apps/files_encryption/l10n/pt_BR.php +++ b/apps/files_encryption/l10n/pt_BR.php @@ -1,4 +1,15 @@ "Por favor, vá ao seu cliente ownCloud e mude sua criptografia de senha para completar a conversão.", +"switched to client side encryption" => "alterado para criptografia por parte do cliente", +"Change encryption password to login password" => "Mudar senha de criptografia para senha de login", +"Please check your passwords and try again." => "Por favor, verifique suas senhas e tente novamente.", +"Could not change your file encryption password to your login password" => "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login", +"Choose encryption mode:" => "Escolha o modo de criptografia:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Criptografia por parte do cliente (mais segura, mas torna impossível acessar seus dados a partir da interface web)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Criptografia por parte do servidor (permite que você acesse seus arquivos da interface web e do cliente desktop)", +"None (no encryption at all)" => "Nenhuma (sem qualquer criptografia)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Uma vez que tiver escolhido um modo de criptografia, não há um meio de voltar atrás", +"User specific (let the user decide)" => "Específico por usuário (deixa o usuário decidir)", "Encryption" => "Criptografia", "Exclude the following file types from encryption" => "Excluir os seguintes tipos de arquivo da criptografia", "None" => "Nenhuma" diff --git a/apps/files_encryption/l10n/ru_RU.php b/apps/files_encryption/l10n/ru_RU.php index 4321fb8a8a3..1149ac64f3e 100644 --- a/apps/files_encryption/l10n/ru_RU.php +++ b/apps/files_encryption/l10n/ru_RU.php @@ -1,4 +1,13 @@ "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации.", +"switched to client side encryption" => "переключено на шифрование на клиентской стороне", +"Please check your passwords and try again." => "Пожалуйста, проверьте Ваш пароль и попробуйте снова", +"Choose encryption mode:" => "Выберите способ шифрования:", +"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Шифрование на стороне клиента (наиболее безопасно, но делает невозможным получение доступа к Вашим данным по вэб-интерфейсу)", +"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Шифрование на стороне сервера (позволяет Вам получить доступ к Вашим файлам по вэб-интерфейсу и десктопному клиенту)", +"None (no encryption at all)" => "Нет (шифрование полностью отсутствует)", +"Important: Once you selected an encryption mode there is no way to change it back" => "Важно: Невозможно будет изменить выбранный способ шифрования", +"User specific (let the user decide)" => "Специфика пользователя (позволено решить пользователю)", "Encryption" => "Шифрование", "Exclude the following file types from encryption" => "Исключите следующие типы файлов из шифрования", "None" => "Ни один" diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php index be60b415e1b..2f67e801b2c 100644 --- a/apps/files_external/ajax/addRootCertificate.php +++ b/apps/files_external/ajax/addRootCertificate.php @@ -12,8 +12,10 @@ $data = fread($fh, filesize($_FILES['rootcert_import']['tmp_name'])); fclose($fh); $filename = $_FILES['rootcert_import']['name']; -$view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/files_external/uploads'); -if ( ! $view->file_exists('')) $view->mkdir(''); +$view = new \OC\Files\View('/'.\OCP\User::getUser().'/files_external/uploads'); +if (!$view->file_exists('')){ + $view->mkdir(''); +} $isValid = openssl_pkey_get_public($data); diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 837d35c9c63..c58cfcd0f5e 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -6,14 +6,14 @@ * See the COPYING-README file. */ -OC::$CLASSPATH['OC_FileStorage_StreamWrapper']='apps/files_external/lib/streamwrapper.php'; -OC::$CLASSPATH['OC_Filestorage_FTP']='apps/files_external/lib/ftp.php'; -OC::$CLASSPATH['OC_Filestorage_DAV']='apps/files_external/lib/webdav.php'; -OC::$CLASSPATH['OC_Filestorage_Google']='apps/files_external/lib/google.php'; -OC::$CLASSPATH['OC_Filestorage_SWIFT']='apps/files_external/lib/swift.php'; -OC::$CLASSPATH['OC_Filestorage_SMB']='apps/files_external/lib/smb.php'; -OC::$CLASSPATH['OC_Filestorage_AmazonS3']='apps/files_external/lib/amazons3.php'; -OC::$CLASSPATH['OC_Filestorage_Dropbox']='apps/files_external/lib/dropbox.php'; +OC::$CLASSPATH['OC\Files\Storage\StreamWrapper']='apps/files_external/lib/streamwrapper.php'; +OC::$CLASSPATH['OC\Files\Storage\FTP']='apps/files_external/lib/ftp.php'; +OC::$CLASSPATH['OC\Files\Storage\DAV']='apps/files_external/lib/webdav.php'; +OC::$CLASSPATH['OC\Files\Storage\Google']='apps/files_external/lib/google.php'; +OC::$CLASSPATH['OC\Files\Storage\SWIFT']='apps/files_external/lib/swift.php'; +OC::$CLASSPATH['OC\Files\Storage\SMB']='apps/files_external/lib/smb.php'; +OC::$CLASSPATH['OC\Files\Storage\AmazonS3']='apps/files_external/lib/amazons3.php'; +OC::$CLASSPATH['OC\Files\Storage\Dropbox']='apps/files_external/lib/dropbox.php'; OC::$CLASSPATH['OC_Mount_Config']='apps/files_external/lib/config.php'; OCP\App::registerAdmin('files_external', 'settings'); diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index 3da1913c5fc..2c04216a9fb 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -5,7 +5,7 @@ Mount external storage sources AGPL Robin Appelman, Michael Gapczynski - 4.9 + 4.91 true diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index c1e38640708..cd3c957e0a8 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -1,6 +1,6 @@ $(document).ready(function() { - $('#externalStorage tbody tr.OC_Filestorage_Dropbox').each(function() { + $('#externalStorage tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox').each(function() { var configured = $(this).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { $(this).find('.configuration input').attr('disabled', 'disabled'); @@ -36,9 +36,9 @@ $(document).ready(function() { } }); - $('#externalStorage tbody tr input').live('keyup', function() { + $('#externalStorage tbody').on('keyup', 'tr input', function() { var tr = $(this).parent().parent(); - if ($(tr).hasClass('OC_Filestorage_Dropbox') && $(tr).find('[data-parameter="configured"]').val() != 'true') { + if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Dropbox') && $(tr).find('[data-parameter="configured"]').val() != 'true') { var config = $(tr).find('.configuration'); if ($(tr).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '') { if ($(tr).find('.dropbox').length == 0) { @@ -52,7 +52,7 @@ $(document).ready(function() { } }); - $('.dropbox').live('click', function(event) { + $('.dropbox').on('click', function(event) { event.preventDefault(); var app_key = $(this).parent().find('[data-parameter="app_key"]').val(); var app_secret = $(this).parent().find('[data-parameter="app_secret"]').val(); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index 0b3c314eb5d..9b7f9514f12 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -1,6 +1,6 @@ $(document).ready(function() { - $('#externalStorage tbody tr.OC_Filestorage_Google').each(function() { + $('#externalStorage tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google').each(function() { var configured = $(this).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { $(this).find('.configuration') @@ -33,8 +33,8 @@ $(document).ready(function() { } }); - $('#externalStorage tbody tr').live('change', function() { - if ($(this).hasClass('OC_Filestorage_Google') && $(this).find('[data-parameter="configured"]').val() != 'true') { + $('#externalStorage tbody').on('change', 'tr', function() { + if ($(this).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(this).find('[data-parameter="configured"]').val() != 'true') { if ($(this).find('.mountPoint input').val() != '') { if ($(this).find('.google').length == 0) { $(this).find('.configuration').append('
'+t('files_external', 'Grant access')+''); @@ -43,9 +43,9 @@ $(document).ready(function() { } }); - $('#externalStorage tbody tr .mountPoint input').live('keyup', function() { + $('#externalStorage tbody').on('keyup', 'tr .mountPoint input', function() { var tr = $(this).parent().parent(); - if ($(tr).hasClass('OC_Filestorage_Google') && $(tr).find('[data-parameter="configured"]').val() != 'true' && $(tr).find('.google').length > 0) { + if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(tr).find('[data-parameter="configured"]').val() != 'true' && $(tr).find('.google').length > 0) { if ($(this).val() != '') { $(tr).find('.google').show(); } else { @@ -54,7 +54,7 @@ $(document).ready(function() { } }); - $('.google').live('click', function(event) { + $('.google').on('click', function(event) { event.preventDefault(); var tr = $(this).parent().parent(); var configured = $(this).parent().find('[data-parameter="configured"]'); diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 0dc983ca8ad..172ef097fbf 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -71,7 +71,7 @@ OC.MountConfig={ $(document).ready(function() { $('.chzn-select').chosen(); - $('#selectBackend').live('change', function() { + $('#selectBackend').on('change', function() { var tr = $(this).parent().parent(); $('#externalStorage tbody').append($(tr).clone()); $('#externalStorage tbody tr').last().find('.mountPoint input').val(''); @@ -100,7 +100,7 @@ $(document).ready(function() { td.append(''); } }); - if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass).length == 1) { + if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length == 1) { OC.addScript('files_external', parameters['custom']); } return false; @@ -135,11 +135,11 @@ $(document).ready(function() { return defaultMountPoint+append; } - $('#externalStorage td').live('change', function() { + $('#externalStorage').on('change', 'td', function() { OC.MountConfig.saveStorage($(this).parent()); }); - $('td.remove>img').live('click', function() { + $('td.remove>img').on('click', function() { var tr = $(this).parent().parent(); var mountPoint = $(tr).find('.mountPoint input').val(); if ( ! mountPoint) { diff --git a/apps/files_external/l10n/af_ZA.php b/apps/files_external/l10n/af_ZA.php new file mode 100644 index 00000000000..cf9b951828d --- /dev/null +++ b/apps/files_external/l10n/af_ZA.php @@ -0,0 +1,3 @@ + "Gebruikers" +); diff --git a/apps/files_external/l10n/fa.php b/apps/files_external/l10n/fa.php index b866201361a..5acf3eac5a5 100644 --- a/apps/files_external/l10n/fa.php +++ b/apps/files_external/l10n/fa.php @@ -1,5 +1,10 @@ "حافظه خارجی", +"Configuration" => "پیکربندی", +"Options" => "تنظیمات", +"Applicable" => "قابل اجرا", "Groups" => "گروه ها", "Users" => "کاربران", -"Delete" => "حذف" +"Delete" => "حذف", +"Enable User External Storage" => "فعال سازی حافظه خارجی کاربر" ); diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php index d7b16e0d3ee..8c7381db71d 100644 --- a/apps/files_external/l10n/fi_FI.php +++ b/apps/files_external/l10n/fi_FI.php @@ -4,6 +4,8 @@ "Grant access" => "Salli pääsy", "Fill out all required fields" => "Täytä kaikki vaaditut kentät", "Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Varoitus: \"smbclient\" ei ole asennettuna. CIFS-/SMB-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan smbclient.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Varoitus: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. FTP-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", "External Storage" => "Erillinen tallennusväline", "Mount point" => "Liitospiste", "Backend" => "Taustaosa", diff --git a/apps/files_external/l10n/ko.php b/apps/files_external/l10n/ko.php index cb691cf5e3d..47b75f74b86 100644 --- a/apps/files_external/l10n/ko.php +++ b/apps/files_external/l10n/ko.php @@ -5,8 +5,8 @@ "Fill out all required fields" => "모든 필수 항목을 입력하십시오", "Please provide a valid Dropbox app key and secret." => "올바른 Dropbox 앱 키와 암호를 입력하십시오.", "Error configuring Google Drive storage" => "Google 드라이브 저장소 설정 오류", -"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "경고\"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유애 연결이 불가능 합니다.. 시스템 관리자에게 요청하여 설치하시기 바랍니다.", -"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "경고PHP용 FTP 지원이 사용 불가능 하거나 설치되지 않았습니다. FTP 공유에 연결이 불가능 합니다. 시스템 관리자에게 요청하여 설치하시기 바랍니다. ", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "경고: \"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유 자원에 연결할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "경고: PHP FTP 지원이 비활성화되어 있거나 설치되지 않았습니다. FTP 공유를 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "External Storage" => "외부 저장소", "Mount point" => "마운트 지점", "Backend" => "백엔드", diff --git a/apps/files_external/l10n/lv.php b/apps/files_external/l10n/lv.php index 26452f98b01..ee53346fcde 100644 --- a/apps/files_external/l10n/lv.php +++ b/apps/files_external/l10n/lv.php @@ -1,5 +1,26 @@ "Piešķirta pieeja", +"Error configuring Dropbox storage" => "Kļūda, konfigurējot Dropbox krātuvi", +"Grant access" => "Piešķirt pieeju", +"Fill out all required fields" => "Aizpildīt visus pieprasītos laukus", +"Please provide a valid Dropbox app key and secret." => "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.", +"Error configuring Google Drive storage" => "Kļūda, konfigurējot Google Drive krātuvi", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Brīdinājums: nav uzinstalēts “smbclient”. Nevar montēt CIFS/SMB koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Brīdinājums: uz PHP nav aktivēts vai instalēts FTP atbalsts. Nevar montēt FTP koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.", +"External Storage" => "Ārējā krātuve", +"Mount point" => "Montēšanas punkts", +"Backend" => "Aizmugure", +"Configuration" => "Konfigurācija", +"Options" => "Opcijas", +"Applicable" => "Piemērojams", +"Add mount point" => "Pievienot montēšanas punktu", +"None set" => "Neviens nav iestatīts", +"All Users" => "Visi lietotāji", "Groups" => "Grupas", "Users" => "Lietotāji", -"Delete" => "Izdzēst" +"Delete" => "Dzēst", +"Enable User External Storage" => "Aktivēt lietotāja ārējo krātuvi", +"Allow users to mount their own external storage" => "Ļaut lietotājiem montēt pašiem savu ārējo krātuvi", +"SSL root certificates" => "SSL saknes sertifikāti", +"Import Root Certificate" => "Importēt saknes sertifikātus" ); diff --git a/apps/files_external/l10n/pt_BR.php b/apps/files_external/l10n/pt_BR.php index 26e927a423e..85393954886 100644 --- a/apps/files_external/l10n/pt_BR.php +++ b/apps/files_external/l10n/pt_BR.php @@ -5,6 +5,8 @@ "Fill out all required fields" => "Preencha todos os campos obrigatórios", "Please provide a valid Dropbox app key and secret." => "Por favor forneça um app key e secret válido do Dropbox", "Error configuring Google Drive storage" => "Erro ao configurar armazenamento do Google Drive", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Aviso: \"smbclient\" não está instalado. Não será possível montar compartilhamentos de CIFS/SMB. Por favor, peça ao seu administrador do sistema para instalá-lo.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Aviso: O suporte para FTP do PHP não está ativado ou instalado. Não será possível montar compartilhamentos FTP. Por favor, peça ao seu administrador do sistema para instalá-lo.", "External Storage" => "Armazenamento Externo", "Mount point" => "Ponto de montagem", "Backend" => "Backend", diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index 04d5e3c7ee4..0b6878a5427 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -5,6 +5,8 @@ "Fill out all required fields" => "Vyplňte všetky vyžadované kolónky", "Please provide a valid Dropbox app key and secret." => "Zadajte platný kľúč aplikácie a heslo Dropbox", "Error configuring Google Drive storage" => "Chyba pri konfigurácii úložiska Google drive", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Upozornenie: \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Upozornenie: Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje.", "External Storage" => "Externé úložisko", "Mount point" => "Prípojný bod", "Backend" => "Backend", diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php index e5ef4eb097c..494885a1dd3 100644 --- a/apps/files_external/lib/amazons3.php +++ b/apps/files_external/lib/amazons3.php @@ -1,39 +1,43 @@ . -*/ + * ownCloud + * + * @author Michael Gapczynski + * @copyright 2012 Michael Gapczynski mtgap@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + */ + +namespace OC\Files\Storage; require_once 'aws-sdk/sdk.class.php'; -class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { +class AmazonS3 extends \OC\Files\Storage\Common { private $s3; private $bucket; private $objects = array(); + private $id; private static $tempFiles = array(); // TODO options: storage class, encryption server side, encrypt before upload? public function __construct($params) { - $this->s3 = new AmazonS3(array('key' => $params['key'], 'secret' => $params['secret'])); + $this->id = 'amazon::' . $params['key'] . md5($params['secret']); + $this->s3 = new \AmazonS3(array('key' => $params['key'], 'secret' => $params['secret'])); $this->bucket = $params['bucket']; } @@ -47,7 +51,7 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { return $response; // This object could be a folder, a '/' must be at the end of the path } else if (substr($path, -1) != '/') { - $response = $this->s3->get_object_metadata($this->bucket, $path.'/'); + $response = $this->s3->get_object_metadata($this->bucket, $path . '/'); if ($response) { $this->objects[$path] = $response; return $response; @@ -57,6 +61,10 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { return false; } + public function getId() { + return $this->id; + } + public function mkdir($path) { // Folders in Amazon S3 are 0 byte objects with a '/' at the end of the name if (substr($path, -1) != '/') { @@ -96,8 +104,8 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { foreach ($response->body->CommonPrefixes as $object) { $files[] = basename($object->Prefix); } - OC_FakeDirStream::$dirs['amazons3'.$path] = $files; - return opendir('fakedir://amazons3'.$path); + \OC\Files\Stream\Dir::register('amazons3' . $path, $files); + return opendir('fakedir://amazons3' . $path); } return false; } @@ -107,15 +115,10 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { $stat['size'] = $this->s3->get_bucket_filesize($this->bucket); $stat['atime'] = time(); $stat['mtime'] = $stat['atime']; - $stat['ctime'] = $stat['atime']; - } else { - $object = $this->getObject($path); - if ($object) { - $stat['size'] = $object['Size']; - $stat['atime'] = time(); - $stat['mtime'] = strtotime($object['LastModified']); - $stat['ctime'] = $stat['mtime']; - } + } else if ($object = $this->getObject($path)) { + $stat['size'] = $object['Size']; + $stat['atime'] = time(); + $stat['mtime'] = strtotime($object['LastModified']); } if (isset($stat)) { return $stat; @@ -166,7 +169,7 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { switch ($mode) { case 'r': case 'rb': - $tmpFile = OC_Helper::tmpFile(); + $tmpFile = \OC_Helper::tmpFile(); $handle = fopen($tmpFile, 'w'); $response = $this->s3->get_object($this->bucket, $path, array('fileDownload' => $handle)); if ($response->isOK()) { @@ -190,14 +193,14 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { } else { $ext = ''; } - $tmpFile = OC_Helper::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack'); + $tmpFile = \OC_Helper::tmpFile($ext); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if ($this->file_exists($path)) { $source = $this->fopen($path, 'r'); file_put_contents($tmpFile, $source); } self::$tempFiles[$tmpFile] = $path; - return fopen('close://'.$tmpFile, $mode); + return fopen('close://' . $tmpFile, $mode); } return false; } @@ -206,8 +209,8 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common { if (isset(self::$tempFiles[$tmpFile])) { $handle = fopen($tmpFile, 'r'); $response = $this->s3->create_object($this->bucket, - self::$tempFiles[$tmpFile], - array('fileUpload' => $handle)); + self::$tempFiles[$tmpFile], + array('fileUpload' => $handle)); if ($response->isOK()) { unlink($tmpFile); } diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index fd3dc2ca0d0..6b0df21461b 100755 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -38,20 +38,20 @@ class OC_Mount_Config { * @return array */ public static function getBackends() { - - $backends['OC_Filestorage_Local']=array( + + $backends['\OC\Files\Storage\Local']=array( 'backend' => 'Local', 'configuration' => array( 'datadir' => 'Location')); - $backends['OC_Filestorage_AmazonS3']=array( + $backends['\OC\Files\Storage\AmazonS3']=array( 'backend' => 'Amazon S3', 'configuration' => array( 'key' => 'Key', 'secret' => '*Secret', 'bucket' => 'Bucket')); - $backends['OC_Filestorage_Dropbox']=array( + $backends['\OC\Files\Storage\Dropbox']=array( 'backend' => 'Dropbox', 'configuration' => array( 'configured' => '#configured', @@ -61,7 +61,7 @@ class OC_Mount_Config { 'token_secret' => '#token_secret'), 'custom' => 'dropbox'); - if(OC_Mount_Config::checkphpftp()) $backends['OC_Filestorage_FTP']=array( + if(OC_Mount_Config::checkphpftp()) $backends['\OC\Files\Storage\FTP']=array( 'backend' => 'FTP', 'configuration' => array( 'host' => 'URL', @@ -70,15 +70,15 @@ class OC_Mount_Config { 'root' => '&Root', 'secure' => '!Secure ftps://')); - $backends['OC_Filestorage_Google']=array( + $backends['\OC\Files\Storage\Google']=array( 'backend' => 'Google Drive', 'configuration' => array( 'configured' => '#configured', 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'); - - $backends['OC_Filestorage_SWIFT']=array( + + $backends['\OC\Files\Storage\SWIFT']=array( 'backend' => 'OpenStack Swift', 'configuration' => array( 'host' => 'URL', @@ -86,8 +86,8 @@ class OC_Mount_Config { 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')); - - if(OC_Mount_Config::checksmbclient()) $backends['OC_Filestorage_SMB']=array( + + if(OC_Mount_Config::checksmbclient()) $backends['\OC\Files\Storage\SMB']=array( 'backend' => 'SMB / CIFS', 'configuration' => array( 'host' => 'URL', @@ -95,8 +95,8 @@ class OC_Mount_Config { 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')); - - $backends['OC_Filestorage_DAV']=array( + + $backends['\OC\Files\Storage\DAV']=array( 'backend' => 'ownCloud / WebDAV', 'configuration' => array( 'host' => 'URL', @@ -120,6 +120,10 @@ class OC_Mount_Config { if (isset($mountPoints[self::MOUNT_TYPE_GROUP])) { foreach ($mountPoints[self::MOUNT_TYPE_GROUP] as $group => $mounts) { foreach ($mounts as $mountPoint => $mount) { + // Update old classes to new namespace + if (strpos($mount['class'], 'OC_Filestorage_') !== false) { + $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15); + } // Remove '/$user/files/' from mount point $mountPoint = substr($mountPoint, 13); // Merge the mount point into the current mount points @@ -139,6 +143,10 @@ class OC_Mount_Config { if (isset($mountPoints[self::MOUNT_TYPE_USER])) { foreach ($mountPoints[self::MOUNT_TYPE_USER] as $user => $mounts) { foreach ($mounts as $mountPoint => $mount) { + // Update old classes to new namespace + if (strpos($mount['class'], 'OC_Filestorage_') !== false) { + $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15); + } // Remove '/$user/files/' from mount point $mountPoint = substr($mountPoint, 13); // Merge the mount point into the current mount points @@ -169,6 +177,10 @@ class OC_Mount_Config { $personal = array(); if (isset($mountPoints[self::MOUNT_TYPE_USER][$uid])) { foreach ($mountPoints[self::MOUNT_TYPE_USER][$uid] as $mountPoint => $mount) { + // Update old classes to new namespace + if (strpos($mount['class'], 'OC_Filestorage_') !== false) { + $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15); + } // Remove '/uid/files/' from mount point $personal[substr($mountPoint, strlen($uid) + 8)] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], @@ -178,22 +190,6 @@ class OC_Mount_Config { return $personal; } - /** - * Add directory for mount point to the filesystem - * @param OC_Fileview instance $view - * @param string path to mount point - */ - private static function addMountPointDirectory($view, $path) { - $dir = ''; - foreach ( explode('/', $path) as $pathPart) { - $dir = $dir.'/'.$pathPart; - if ( !$view->file_exists($dir)) { - $view->mkdir($dir); - } - } - } - - /** * Add a mount point to the filesystem * @param string Mount point @@ -213,36 +209,11 @@ class OC_Mount_Config { if ($isPersonal) { // Verify that the mount point applies for the current user // Prevent non-admin users from mounting local storage - if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') { + if ($applicable != OCP\User::getUser() || $class == '\OC\Files\Storage\Local') { return false; } - $view = new OC_FilesystemView('/'.OCP\User::getUser().'/files'); - self::addMountPointDirectory($view, ltrim($mountPoint, '/')); $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/'); } else { - $view = new OC_FilesystemView('/'); - switch ($mountType) { - case 'user': - if ($applicable == "all") { - $users = OCP\User::getUsers(); - foreach ( $users as $user ) { - $path = $user.'/files/'.ltrim($mountPoint, '/'); - self::addMountPointDirectory($view, $path); - } - } else { - $path = $applicable.'/files/'.ltrim($mountPoint, '/'); - self::addMountPointDirectory($view, $path); - } - break; - case 'group' : - $groupMembers = OC_Group::usersInGroups(array($applicable)); - foreach ( $groupMembers as $user ) { - $path = $user.'/files/'.ltrim($mountPoint, '/'); - self::addMountPointDirectory($view, $path); - } - break; - } - $mountPoint = '/$user/files/'.ltrim($mountPoint, '/'); } $mount = array($applicable => array($mountPoint => array('class' => $class, 'options' => $classOptions))); diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php index 33ca14cab15..11644e4a2c8 100755 --- a/apps/files_external/lib/dropbox.php +++ b/apps/files_external/lib/dropbox.php @@ -20,12 +20,15 @@ * License along with this library. If not, see . */ +namespace OC\Files\Storage; + require_once 'Dropbox/autoload.php'; -class OC_Filestorage_Dropbox extends OC_Filestorage_Common { +class Dropbox extends \OC\Files\Storage\Common { private $dropbox; private $root; + private $id; private $metaData = array(); private static $tempFiles = array(); @@ -37,13 +40,14 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { && isset($params['token']) && isset($params['token_secret']) ) { + $this->id = 'dropbox::'.$params['app_key'] . $params['token']. '/' . $params['root']; $this->root=isset($params['root'])?$params['root']:''; - $oauth = new Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']); + $oauth = new \Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']); $oauth->setToken($params['token'], $params['token_secret']); - $this->dropbox = new Dropbox_API($oauth, 'dropbox'); + $this->dropbox = new \Dropbox_API($oauth, 'dropbox'); $this->mkdir(''); } else { - throw new Exception('Creating OC_Filestorage_Dropbox storage failed'); + throw new \Exception('Creating \OC\Files\Storage\Dropbox storage failed'); } } @@ -55,8 +59,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { if ($list) { try { $response = $this->dropbox->getMetaData($path); - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } if ($response && isset($response['contents'])) { @@ -76,21 +80,25 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { $response = $this->dropbox->getMetaData($path, 'false'); $this->metaData[$path] = $response; return $response; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } } } + public function getId(){ + return $this->id; + } + public function mkdir($path) { $path = $this->root.$path; try { $this->dropbox->createFolder($path); return true; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } @@ -106,7 +114,7 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { foreach ($contents as $file) { $files[] = basename($file['path']); } - OC_FakeDirStream::$dirs['dropbox'.$path] = $files; + \OC\Files\Stream\Dir::register('dropbox'.$path, $files); return opendir('fakedir://dropbox'.$path); } return false; @@ -118,7 +126,6 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { $stat['size'] = $metaData['bytes']; $stat['atime'] = time(); $stat['mtime'] = (isset($metaData['modified'])) ? strtotime($metaData['modified']) : time(); - $stat['ctime'] = $stat['mtime']; return $stat; } return false; @@ -163,8 +170,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { try { $this->dropbox->delete($path); return true; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } @@ -175,8 +182,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { try { $this->dropbox->move($path1, $path2); return true; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } @@ -187,8 +194,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { try { $this->dropbox->copy($path1, $path2); return true; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } @@ -198,13 +205,13 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { switch ($mode) { case 'r': case 'rb': - $tmpFile = OC_Helper::tmpFile(); + $tmpFile = \OC_Helper::tmpFile(); try { $data = $this->dropbox->getFile($path); file_put_contents($tmpFile, $data); return fopen($tmpFile, 'r'); - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } case 'w': @@ -224,8 +231,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { } else { $ext = ''; } - $tmpFile = OC_Helper::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack'); + $tmpFile = \OC_Helper::tmpFile($ext); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if ($this->file_exists($path)) { $source = $this->fopen($path, 'r'); file_put_contents($tmpFile, $source); @@ -242,8 +249,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { try { $this->dropbox->putFile(self::$tempFiles[$tmpFile], $handle); unlink($tmpFile); - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); } } } @@ -264,8 +271,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common { try { $info = $this->dropbox->getAccountInfo(); return $info['quota_info']['quota'] - $info['quota_info']['normal']; - } catch (Exception $exception) { - OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR); + } catch (\Exception $exception) { + \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR); return false; } } diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index e796ae446bf..9a27b63323a 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -6,7 +6,9 @@ * See the COPYING-README file. */ -class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ +namespace OC\Files\Storage; + +class FTP extends \OC\Files\Storage\StreamWrapper{ private $password; private $user; private $host; @@ -38,9 +40,13 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ } } + public function getId(){ + return 'ftp::' . $this->user . '@' . $this->host . '/' . $this->root; + } + /** * construct the ftp url - * @param string path + * @param string $path * @return string */ public function constructUrl($path) { @@ -51,7 +57,8 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ $url.='://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path; return $url; } - public function fopen($path, $mode) { + public function fopen($path,$mode) { + $this->init(); switch($mode) { case 'r': case 'rb': @@ -61,7 +68,7 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ case 'ab': //these are supported by the wrapper $context = stream_context_create(array('ftp' => array('overwrite' => true))); - return fopen($this->constructUrl($path), $mode, false, $context); + return fopen($this->constructUrl($path),$mode, false,$context); case 'r+': case 'w+': case 'wb+': @@ -77,16 +84,18 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ $ext=''; } $tmpFile=OCP\Files::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if ($this->file_exists($path)) { $this->getFile($path, $tmpFile); } self::$tempFiles[$tmpFile]=$path; - return fopen('close://'.$tmpFile, $mode); + return fopen('close://'.$tmpFile,$mode); } + return false; } public function writeBack($tmpFile) { + $this->init(); if (isset(self::$tempFiles[$tmpFile])) { $this->uploadFile($tmpFile, self::$tempFiles[$tmpFile]); unlink($tmpFile); diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php index c836a5a07c0..7396c7e3f27 100644 --- a/apps/files_external/lib/google.php +++ b/apps/files_external/lib/google.php @@ -20,14 +20,17 @@ * License along with this library. If not, see . */ +namespace OC\Files\Storage; + require_once 'Google/common.inc.php'; -class OC_Filestorage_Google extends OC_Filestorage_Common { +class Google extends \OC\Files\Storage\Common { private $consumer; private $oauth_token; private $sig_method; private $entries; + private $id; private static $tempFiles = array(); @@ -38,12 +41,13 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { ) { $consumer_key = isset($params['consumer_key']) ? $params['consumer_key'] : 'anonymous'; $consumer_secret = isset($params['consumer_secret']) ? $params['consumer_secret'] : 'anonymous'; - $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret); - $this->oauth_token = new OAuthToken($params['token'], $params['token_secret']); - $this->sig_method = new OAuthSignatureMethod_HMAC_SHA1(); + $this->id = 'google::' . $params['token']; + $this->consumer = new \OAuthConsumer($consumer_key, $consumer_secret); + $this->oauth_token = new \OAuthToken($params['token'], $params['token_secret']); + $this->sig_method = new \OAuthSignatureMethod_HMAC_SHA1(); $this->entries = array(); } else { - throw new Exception('Creating OC_Filestorage_Google storage failed'); + throw new \Exception('Creating \OC\Files\Storage\Google storage failed'); } } @@ -68,7 +72,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { $tempStr .= '&' . urlencode($key) . '=' . urlencode($value); } $uri = preg_replace('/&/', '?', $tempStr, 1); - $request = OAuthRequest::from_consumer_and_token($this->consumer, + $request = \OAuthRequest::from_consumer_and_token($this->consumer, $this->oauth_token, $httpMethod, $uri, @@ -110,7 +114,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); } if ($isDownload) { - $tmpFile = OC_Helper::tmpFile(); + $tmpFile = \OC_Helper::tmpFile(); $handle = fopen($tmpFile, 'w'); curl_setopt($curl, CURLOPT_FILE, $handle); } @@ -139,7 +143,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { private function getFeed($feedUri, $httpMethod, $postData = null) { $result = $this->sendRequest($feedUri, $httpMethod, $postData); if ($result) { - $dom = new DOMDocument(); + $dom = new \DOMDocument(); $dom->loadXML($result); return $dom; } @@ -194,6 +198,9 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { } } + public function getId(){ + return $this->id; + } public function mkdir($path) { $collection = dirname($path); @@ -266,7 +273,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { $this->entries[$name] = $entry; } } - OC_FakeDirStream::$dirs['google'.$path] = $files; + \OC\Files\Stream\Dir::register('google'.$path, $files); return opendir('fakedir://google'.$path); } @@ -287,7 +294,6 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { //$stat['atime'] = strtotime($entry->getElementsByTagNameNS('http://schemas.google.com/g/2005', // 'lastViewed')->item(0)->nodeValue); $stat['mtime'] = strtotime($entry->getElementsByTagName('updated')->item(0)->nodeValue); - $stat['ctime'] = strtotime($entry->getElementsByTagName('published')->item(0)->nodeValue); } } if (isset($stat)) { @@ -443,8 +449,8 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { } else { $ext = ''; } - $tmpFile = OC_Helper::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack'); + $tmpFile = \OC_Helper::tmpFile($ext); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if ($this->file_exists($path)) { $source = $this->fopen($path, 'r'); file_put_contents($tmpFile, $source); @@ -482,7 +488,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { } if (isset($uploadUri) && $handle = fopen($path, 'r')) { $uploadUri .= '?convert=false'; - $mimetype = OC_Helper::getMimeType($path); + $mimetype = \OC_Helper::getMimeType($path); $size = filesize($path); $headers = array('X-Upload-Content-Type: ' => $mimetype, 'X-Upload-Content-Length: ' => $size); $postData = ''; @@ -590,4 +596,4 @@ class OC_Filestorage_Google extends OC_Filestorage_Common { } -} \ No newline at end of file +} diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index 071a9cd5f95..96778b0b2e1 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -6,9 +6,11 @@ * See the COPYING-README file. */ +namespace OC\Files\Storage; + require_once 'smb4php/smb.php'; -class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{ +class SMB extends \OC\Files\Storage\StreamWrapper{ private $password; private $user; private $host; @@ -30,14 +32,13 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{ if ( ! $this->share || $this->share[0]!='/') { $this->share='/'.$this->share; } - if (substr($this->share, -1, 1)=='/') { - $this->share=substr($this->share, 0, -1); + if(substr($this->share, -1, 1)=='/') { + $this->share = substr($this->share,0,-1); } + } - //create the root folder if necesary - if ( ! $this->is_dir('')) { - $this->mkdir(''); - } + public function getId(){ + return 'smb::' . $this->user . '@' . $this->host . '/' . $this->share . '/' . $this->root; } public function constructUrl($path) { @@ -65,11 +66,13 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{ /** * check if a file or folder has been updated since $time + * @param string $path * @param int $time * @return bool */ - public function hasUpdated($path, $time) { - if ( ! $path and $this->root=='/') { + public function hasUpdated($path,$time) { + $this->init(); + if(!$path and $this->root=='/') { // mtime doesn't work for shares, but giving the nature of the backend, // doing a full update is still just fast enough return true; diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php index a386e333995..7c3ddcf8a2c 100644 --- a/apps/files_external/lib/streamwrapper.php +++ b/apps/files_external/lib/streamwrapper.php @@ -6,16 +6,33 @@ * See the COPYING-README file. */ +namespace OC\Files\Storage; + +abstract class StreamWrapper extends \OC\Files\Storage\Common{ + private $ready = false; + + protected function init(){ + if($this->ready){ + return; + } + $this->ready = true; + + //create the root folder if necesary + if(!$this->is_dir('')) { + $this->mkdir(''); + } + } -abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{ abstract public function constructUrl($path); public function mkdir($path) { + $this->init(); return mkdir($this->constructUrl($path)); } public function rmdir($path) { - if ($this->file_exists($path)) { + $this->init(); + if($this->file_exists($path)) { $succes = rmdir($this->constructUrl($path)); clearstatcache(); return $succes; @@ -25,10 +42,12 @@ abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{ } public function opendir($path) { + $this->init(); return opendir($this->constructUrl($path)); } public function filetype($path) { + $this->init(); return filetype($this->constructUrl($path)); } @@ -41,46 +60,54 @@ abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{ } public function file_exists($path) { + $this->init(); return file_exists($this->constructUrl($path)); } public function unlink($path) { + $this->init(); $succes = unlink($this->constructUrl($path)); clearstatcache(); return $succes; } - public function fopen($path, $mode) { - return fopen($this->constructUrl($path), $mode); + public function fopen($path,$mode) { + $this->init(); + return fopen($this->constructUrl($path),$mode); } public function free_space($path) { return 0; } - public function touch($path, $mtime = null) { - if (is_null($mtime)) { - $fh = $this->fopen($path, 'a'); - fwrite($fh, ''); + public function touch($path,$mtime=null) { + $this->init(); + if(is_null($mtime)) { + $fh = $this->fopen($path,'a'); + fwrite($fh,''); fclose($fh); } else { return false;//not supported } } - public function getFile($path, $target) { - return copy($this->constructUrl($path), $target); + public function getFile($path,$target) { + $this->init(); + return copy($this->constructUrl($path),$target); } - public function uploadFile($path, $target) { - return copy($path, $this->constructUrl($target)); + public function uploadFile($path,$target) { + $this->init(); + return copy($path,$this->constructUrl($target)); } - public function rename($path1, $path2) { - return rename($this->constructUrl($path1), $this->constructUrl($path2)); + public function rename($path1,$path2) { + $this->init(); + return rename($this->constructUrl($path1),$this->constructUrl($path2)); } public function stat($path) { + $this->init(); return stat($this->constructUrl($path)); } diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index a071dfdbb03..cbf2007052b 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -6,24 +6,28 @@ * See the COPYING-README file. */ +namespace OC\Files\Storage; + require_once 'php-cloudfiles/cloudfiles.php'; -class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ +class SWIFT extends \OC\Files\Storage\Common{ + private $id; private $host; private $root; private $user; private $token; private $secure; + private $ready = false; /** - * @var CF_Authentication auth + * @var \CF_Authentication auth */ private $auth; /** - * @var CF_Connection conn + * @var \CF_Connection conn */ private $conn; /** - * @var CF_Container rootContainer + * @var \CF_Container rootContainer */ private $rootContainer; @@ -35,18 +39,18 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * translate directory path to container name - * @param string path + * @param string $path * @return string */ private function getContainerName($path) { - $path=trim(trim($this->root, '/')."/".$path, '/.'); + $path=trim(trim($this->root, '/') . "/".$path, '/.'); return str_replace('/', '\\', $path); } /** * get container by path - * @param string path - * @return CF_Container + * @param string $path + * @return \CF_Container */ private function getContainer($path) { if ($path=='' or $path=='/') { @@ -59,15 +63,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ $container=$this->conn->get_container($this->getContainerName($path)); $this->containers[$path]=$container; return $container; - } catch(NoSuchContainerException $e) { + } catch(\NoSuchContainerException $e) { return null; } } /** * create container - * @param string path - * @return CF_Container + * @param string $path + * @return \CF_Container */ private function createContainer($path) { if ($path=='' or $path=='/' or $path=='.') { @@ -89,8 +93,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * get object by path - * @param string path - * @return CF_Object + * @param string $path + * @return \CF_Object */ private function getObject($path) { if (isset($this->objects[$path])) { @@ -107,7 +111,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ $obj=$container->get_object(basename($path)); $this->objects[$path]=$obj; return $obj; - } catch(NoSuchObjectException $e) { + } catch(\NoSuchObjectException $e) { return null; } } @@ -132,8 +136,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * create object - * @param string path - * @return CF_Object + * @param string $path + * @return \CF_Object */ private function createObject($path) { $container=$this->getContainer(dirname($path)); @@ -154,7 +158,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * check if container for path exists - * @param string path + * @param string $path * @return bool */ private function containerExists($path) { @@ -163,15 +167,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * get the list of emulated sub containers - * @param CF_Container container + * @param \CF_Container $container * @return array */ private function getSubContainers($container) { - $tmpFile=OCP\Files::tmpFile(); + $tmpFile=\OCP\Files::tmpFile(); $obj=$this->getSubContainerFile($container); try { $obj->save_to_filename($tmpFile); - } catch(Exception $e) { + } catch(\Exception $e) { return array(); } $obj->save_to_filename($tmpFile); @@ -185,15 +189,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * add an emulated sub container - * @param CF_Container container - * @param string name + * @param \CF_Container $container + * @param string $name * @return bool */ private function addSubContainer($container, $name) { if ( ! $name) { return false; } - $tmpFile=OCP\Files::tmpFile(); + $tmpFile=\OCP\Files::tmpFile(); $obj=$this->getSubContainerFile($container); try { $obj->save_to_filename($tmpFile); @@ -201,16 +205,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ foreach ($containers as &$sub) { $sub=trim($sub); } - if (array_search($name, $containers)!==false) { + if(array_search($name, $containers) !== false) { unlink($tmpFile); return false; } else { $fh=fopen($tmpFile, 'a'); - fwrite($fh, $name."\n"); + fwrite($fh,$name . "\n"); } - } catch(Exception $e) { - $containers=array(); - file_put_contents($tmpFile, $name."\n"); + } catch(\Exception $e) { + file_put_contents($tmpFile, $name . "\n"); } $obj->load_from_filename($tmpFile); @@ -220,20 +223,20 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * remove an emulated sub container - * @param CF_Container container - * @param string name + * @param \CF_Container $container + * @param string $name * @return bool */ private function removeSubContainer($container, $name) { if ( ! $name) { return false; } - $tmpFile=OCP\Files::tmpFile(); + $tmpFile=\OCP\Files::tmpFile(); $obj=$this->getSubContainerFile($container); try { $obj->save_to_filename($tmpFile); $containers=file($tmpFile); - } catch (Exception $e) { + } catch (\Exception $e) { return false; } foreach ($containers as &$sub) { @@ -255,8 +258,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * ensure a subcontainer file exists and return it's object - * @param CF_Container container - * @return CF_Object + * @param \CF_Container $container + * @return \CF_Object */ private function getSubContainerFile($container) { try { @@ -283,10 +286,19 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ if ( ! $this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } - $this->auth = new CF_Authentication($this->user, $this->token, null, $this->host); + + } + + private function init(){ + if($this->ready){ + return; + } + $this->ready = true; + + $this->auth = new \CF_Authentication($this->user, $this->token, null, $this->host); $this->auth->authenticate(); - $this->conn = new CF_Connection($this->auth); + $this->conn = new \CF_Connection($this->auth); if ( ! $this->containerExists('/')) { $this->rootContainer=$this->createContainer('/'); @@ -295,8 +307,13 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } } + public function getId(){ + return $this->id; + } + public function mkdir($path) { + $this->init(); if ($this->containerExists($path)) { return false; } else { @@ -306,7 +323,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function rmdir($path) { - if ( ! $this->containerExists($path)) { + $this->init(); + if (!$this->containerExists($path)) { return false; } else { $this->emptyContainer($path); @@ -343,6 +361,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function opendir($path) { + $this->init(); $container=$this->getContainer($path); $files=$this->getObjects($container); $i=array_search(self::SUBCONTAINER_FILE, $files); @@ -352,11 +371,12 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ $subContainers=$this->getSubContainers($container); $files=array_merge($files, $subContainers); $id=$this->getContainerName($path); - OC_FakeDirStream::$dirs[$id]=$files; + \OC\Files\Stream\Dir::register($id, $files); return opendir('fakedir://'.$id); } public function filetype($path) { + $this->init(); if ($this->containerExists($path)) { return 'dir'; } else { @@ -373,6 +393,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function file_exists($path) { + $this->init(); if ($this->is_dir($path)) { return true; } else { @@ -381,6 +402,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function file_get_contents($path) { + $this->init(); $obj=$this->getObject($path); if (is_null($obj)) { return false; @@ -389,6 +411,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function file_put_contents($path, $content) { + $this->init(); $obj=$this->getObject($path); if (is_null($obj)) { $container=$this->getContainer(dirname($path)); @@ -402,6 +425,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function unlink($path) { + $this->init(); if ($this->containerExists($path)) { return $this->rmdir($path); } @@ -415,6 +439,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function fopen($path, $mode) { + $this->init(); switch($mode) { case 'r': case 'rb': @@ -440,7 +465,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ case 'c': case 'c+': $tmpFile=$this->getTmpFile($path); - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); self::$tempFiles[$tmpFile]=$path; return fopen('close://'.$tmpFile, $mode); } @@ -458,6 +483,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function touch($path, $mtime=null) { + $this->init(); $obj=$this->getObject($path); if (is_null($obj)) { return false; @@ -472,6 +498,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function rename($path1, $path2) { + $this->init(); $sourceContainer=$this->getContainer(dirname($path1)); $targetContainer=$this->getContainer(dirname($path2)); $result=$sourceContainer->move_object_to(basename($path1), $targetContainer, basename($path2)); @@ -484,6 +511,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function copy($path1, $path2) { + $this->init(); $sourceContainer=$this->getContainer(dirname($path1)); $targetContainer=$this->getContainer(dirname($path2)); $result=$sourceContainer->copy_object_to(basename($path1), $targetContainer, basename($path2)); @@ -495,6 +523,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } public function stat($path) { + $this->init(); $container=$this->getContainer($path); if ( ! is_null($container)) { return array( @@ -523,17 +552,19 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ } private function getTmpFile($path) { + $this->init(); $obj=$this->getObject($path); if ( ! is_null($obj)) { - $tmpFile=OCP\Files::tmpFile(); + $tmpFile=\OCP\Files::tmpFile(); $obj->save_to_filename($tmpFile); return $tmpFile; } else { - return OCP\Files::tmpFile(); + return \OCP\Files::tmpFile(); } } private function fromTmpFile($tmpFile, $path) { + $this->init(); $obj=$this->getObject($path); if (is_null($obj)) { $obj=$this->createObject($path); @@ -544,7 +575,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ /** * remove custom mtime metadata - * @param CF_Object obj + * @param \CF_Object $obj */ private function resetMTime($obj) { if (isset($obj->metadata['Mtime'])) { diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index 920aefc12de..2a953ac63f4 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -6,14 +6,17 @@ * See the COPYING-README file. */ -class OC_FileStorage_DAV extends OC_Filestorage_Common{ +namespace OC\Files\Storage; + +class DAV extends \OC\Files\Storage\Common{ private $password; private $user; private $host; private $secure; private $root; + private $ready; /** - * @var Sabre_DAV_Client + * @var \Sabre_DAV_Client */ private $client; @@ -43,6 +46,13 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ if (substr($this->root, -1, 1)!='/') { $this->root.='/'; } + } + + private function init(){ + if($this->ready){ + return; + } + $this->ready = true; $settings = array( 'baseUri' => $this->createBaseUri(), @@ -50,7 +60,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ 'password' => $this->password, ); - $this->client = new Sabre_DAV_Client($settings); + $this->client = new \Sabre_DAV_Client($settings); $caview = \OCP\Files::getStorage('files_external'); if ($caview) { @@ -63,6 +73,10 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ $this->mkdir(''); } + public function getId(){ + return 'webdav::' . $this->user . '@' . $this->host . '/' . $this->root; + } + private function createBaseUri() { $baseUri='http'; if ($this->secure) { @@ -73,40 +87,45 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } public function mkdir($path) { + $this->init(); $path=$this->cleanPath($path); return $this->simpleResponse('MKCOL', $path, null, 201); } public function rmdir($path) { + $this->init(); $path=$this->cleanPath($path); return $this->simpleResponse('DELETE', $path, null, 204); } public function opendir($path) { + $this->init(); $path=$this->cleanPath($path); try { $response=$this->client->propfind($path, array(), 1); $id=md5('webdav'.$this->root.$path); - OC_FakeDirStream::$dirs[$id]=array(); + $content = array(); $files=array_keys($response); array_shift($files);//the first entry is the current directory foreach ($files as $file) { $file = urldecode(basename($file)); - OC_FakeDirStream::$dirs[$id][]=$file; + $content[]=$file; } + \OC\Files\Stream\Dir::register($id, $content); return opendir('fakedir://'.$id); - } catch(Exception $e) { + } catch(\Exception $e) { return false; } } public function filetype($path) { + $this->init(); $path=$this->cleanPath($path); try { $response=$this->client->propfind($path, array('{DAV:}resourcetype')); $responseType=$response["{DAV:}resourcetype"]->resourceType; return (count($responseType)>0 and $responseType[0]=="{DAV:}collection")?'dir':'file'; - } catch(Exception $e) { + } catch(\Exception $e) { error_log($e->getMessage()); \OCP\Util::writeLog("webdav client", \OCP\Util::sanitizeHTML($e->getMessage()), \OCP\Util::ERROR); return false; @@ -122,20 +141,23 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } public function file_exists($path) { + $this->init(); $path=$this->cleanPath($path); try { $this->client->propfind($path, array('{DAV:}resourcetype')); return true;//no 404 exception - } catch(Exception $e) { + } catch(\Exception $e) { return false; } } public function unlink($path) { - return $this->simpleResponse('DELETE', $path, null, 204); + $this->init(); + return $this->simpleResponse('DELETE', $path, null ,204); } - public function fopen($path, $mode) { + public function fopen($path,$mode) { + $this->init(); $path=$this->cleanPath($path); switch($mode) { case 'r': @@ -172,9 +194,9 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } else { $ext=''; } - $tmpFile=OCP\Files::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); - if ($this->file_exists($path)) { + $tmpFile = \OCP\Files::tmpFile($ext); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); + if($this->file_exists($path)) { $this->getFile($path, $tmpFile); } self::$tempFiles[$tmpFile]=$path; @@ -190,6 +212,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } public function free_space($path) { + $this->init(); $path=$this->cleanPath($path); try { $response=$this->client->propfind($path, array('{DAV:}quota-available-bytes')); @@ -198,12 +221,13 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } else { return 0; } - } catch(Exception $e) { + } catch(\Exception $e) { return 0; } } public function touch($path, $mtime=null) { + $this->init(); if (is_null($mtime)) { $mtime=time(); } @@ -211,12 +235,14 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ $this->client->proppatch($path, array('{DAV:}lastmodified' => $mtime)); } - public function getFile($path, $target) { - $source=$this->fopen($path, 'r'); - file_put_contents($target, $source); + public function getFile($path,$target) { + $this->init(); + $source=$this->fopen($path,'r'); + file_put_contents($target,$source); } - public function uploadFile($path, $target) { + public function uploadFile($path,$target) { + $this->init(); $source=fopen($path, 'r'); $curl = curl_init(); @@ -230,47 +256,46 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ curl_close ($curl); } - public function rename($path1, $path2) { + public function rename($path1,$path2) { + $this->init(); $path1=$this->cleanPath($path1); $path2=$this->root.$this->cleanPath($path2); try { $this->client->request('MOVE', $path1, null, array('Destination'=>$path2)); return true; - } catch(Exception $e) { - echo $e; - echo 'fail'; + } catch(\Exception $e) { return false; } } - public function copy($path1, $path2) { + public function copy($path1,$path2) { + $this->init(); $path1=$this->cleanPath($path1); $path2=$this->root.$this->cleanPath($path2); try { $this->client->request('COPY', $path1, null, array('Destination'=>$path2)); return true; - } catch(Exception $e) { - echo $e; - echo 'fail'; + } catch(\Exception $e) { return false; } } public function stat($path) { + $this->init(); $path=$this->cleanPath($path); try { $response=$this->client->propfind($path, array('{DAV:}getlastmodified', '{DAV:}getcontentlength')); return array( 'mtime'=>strtotime($response['{DAV:}getlastmodified']), 'size'=>(int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0, - 'ctime'=>-1, ); - } catch(Exception $e) { + } catch(\Exception $e) { return array(); } } public function getMimeType($path) { + $this->init(); $path=$this->cleanPath($path); try { $response=$this->client->propfind($path, array('{DAV:}getcontenttype', '{DAV:}resourcetype')); @@ -283,7 +308,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } else { return false; } - } catch(Exception $e) { + } catch(\Exception $e) { return false; } } @@ -296,12 +321,12 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ } } - private function simpleResponse($method, $path, $body, $expected) { + private function simpleResponse($method,$path,$body,$expected) { $path=$this->cleanPath($path); try { $response=$this->client->request($method, $path, $body); return $response['statusCode']==$expected; - } catch(Exception $e) { + } catch(\Exception $e) { return false; } } diff --git a/apps/files_external/personal.php b/apps/files_external/personal.php index 4215b28787e..268d1880232 100755 --- a/apps/files_external/personal.php +++ b/apps/files_external/personal.php @@ -24,7 +24,7 @@ OCP\Util::addScript('files_external', 'settings'); OCP\Util::addStyle('files_external', 'settings'); $backends = OC_Mount_Config::getBackends(); // Remove local storage -unset($backends['OC_Filestorage_Local']); +unset($backends['\OC\Files\Storage\Local']); $tmpl = new OCP\Template('files_external', 'settings'); $tmpl->assign('isAdminPage', false, false); $tmpl->assign('mounts', OC_Mount_Config::getPersonalMountPoints()); diff --git a/apps/files_external/tests/amazons3.php b/apps/files_external/tests/amazons3.php index 39f96fe8e55..6b3a942b5ba 100644 --- a/apps/files_external/tests/amazons3.php +++ b/apps/files_external/tests/amazons3.php @@ -20,7 +20,9 @@ * License along with this library. If not, see . */ -class Test_Filestorage_AmazonS3 extends Test_FileStorage { +namespace Test\Files\Storage; + +class AmazonS3 extends Storage { private $config; private $id; @@ -32,12 +34,12 @@ class Test_Filestorage_AmazonS3 extends Test_FileStorage { $this->markTestSkipped('AmazonS3 backend not configured'); } $this->config['amazons3']['bucket'] = $id; // Make sure we have a new empty bucket to work in - $this->instance = new OC_Filestorage_AmazonS3($this->config['amazons3']); + $this->instance = new \OC\Files\Storage\AmazonS3($this->config['amazons3']); } public function tearDown() { if ($this->instance) { - $s3 = new AmazonS3(array('key' => $this->config['amazons3']['key'], + $s3 = new \AmazonS3(array('key' => $this->config['amazons3']['key'], 'secret' => $this->config['amazons3']['secret'])); if ($s3->delete_all_objects($this->id)) { $s3->delete_bucket($this->id); diff --git a/apps/files_external/tests/config.php b/apps/files_external/tests/config.php index ff16b1c1d8a..65127175ad7 100644 --- a/apps/files_external/tests/config.php +++ b/apps/files_external/tests/config.php @@ -8,7 +8,7 @@ return array( 'root'=>'/test', ), 'webdav'=>array( - 'run'=>false, + 'run'=>true, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', @@ -30,7 +30,7 @@ return array( 'root'=>'/', ), 'smb'=>array( - 'run'=>false, + 'run'=>true, 'user'=>'test', 'password'=>'test', 'host'=>'localhost', diff --git a/apps/files_external/tests/dropbox.php b/apps/files_external/tests/dropbox.php index 304cb3ca38c..e4e598b06b0 100644 --- a/apps/files_external/tests/dropbox.php +++ b/apps/files_external/tests/dropbox.php @@ -6,7 +6,9 @@ * See the COPYING-README file. */ -class Test_Filestorage_Dropbox extends Test_FileStorage { +namespace Test\Files\Storage; + +class Dropbox extends Storage { private $config; public function setUp() { @@ -16,7 +18,7 @@ class Test_Filestorage_Dropbox extends Test_FileStorage { $this->markTestSkipped('Dropbox backend not configured'); } $this->config['dropbox']['root'] .= '/' . $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_Dropbox($this->config['dropbox']); + $this->instance = new \OC\Files\Storage\Dropbox($this->config['dropbox']); } public function tearDown() { diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 91e4589ed18..923b5e39681 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -6,7 +6,9 @@ * See the COPYING-README file. */ -class Test_Filestorage_FTP extends Test_FileStorage { +namespace Test\Files\Storage; + +class FTP extends Storage { private $config; public function setUp() { @@ -16,12 +18,12 @@ class Test_Filestorage_FTP extends Test_FileStorage { $this->markTestSkipped('FTP backend not configured'); } $this->config['ftp']['root'] .= '/' . $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_FTP($this->config['ftp']); + $this->instance = new \OC\Files\Storage\FTP($this->config['ftp']); } public function tearDown() { if ($this->instance) { - OCP\Files::rmdirr($this->instance->constructUrl('')); + \OCP\Files::rmdirr($this->instance->constructUrl('')); } } diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/google.php index 379bf992ff5..f344163a8b9 100644 --- a/apps/files_external/tests/google.php +++ b/apps/files_external/tests/google.php @@ -20,8 +20,9 @@ * License along with this library. If not, see . */ -class Test_Filestorage_Google extends Test_FileStorage { +namespace Test\Files\Storage; +class Google extends Storage { private $config; public function setUp() { @@ -31,7 +32,7 @@ class Test_Filestorage_Google extends Test_FileStorage { $this->markTestSkipped('Google backend not configured'); } $this->config['google']['root'] .= '/' . $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_Google($this->config['google']); + $this->instance = new \OC\Files\Storage\Google($this->config['google']); } public function tearDown() { diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/smb.php index 2d6268ef269..be3ea5a8308 100644 --- a/apps/files_external/tests/smb.php +++ b/apps/files_external/tests/smb.php @@ -6,7 +6,10 @@ * See the COPYING-README file. */ -class Test_Filestorage_SMB extends Test_FileStorage { +namespace Test\Files\Storage; + +class SMB extends Storage { + private $config; public function setUp() { @@ -16,12 +19,12 @@ class Test_Filestorage_SMB extends Test_FileStorage { $this->markTestSkipped('Samba backend not configured'); } $this->config['smb']['root'] .= $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_SMB($this->config['smb']); + $this->instance = new \OC\Files\Storage\SMB($this->config['smb']); } public function tearDown() { if ($this->instance) { - OCP\Files::rmdirr($this->instance->constructUrl('')); + \OCP\Files::rmdirr($this->instance->constructUrl('')); } } } diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/swift.php index 8b25db50996..5c782840246 100644 --- a/apps/files_external/tests/swift.php +++ b/apps/files_external/tests/swift.php @@ -6,7 +6,9 @@ * See the COPYING-README file. */ -class Test_Filestorage_SWIFT extends Test_FileStorage { +namespace Test\Files\Storage; + +class SWIFT extends Storage { private $config; public function setUp() { @@ -16,7 +18,7 @@ class Test_Filestorage_SWIFT extends Test_FileStorage { $this->markTestSkipped('OpenStack SWIFT backend not configured'); } $this->config['swift']['root'] .= '/' . $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_SWIFT($this->config['swift']); + $this->instance = new \OC\Files\Storage\SWIFT($this->config['swift']); } diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php index dd938a0c93a..1702898045e 100644 --- a/apps/files_external/tests/webdav.php +++ b/apps/files_external/tests/webdav.php @@ -6,7 +6,10 @@ * See the COPYING-README file. */ -class Test_Filestorage_DAV extends Test_FileStorage { +namespace Test\Files\Storage; + +class DAV extends Storage { + private $config; public function setUp() { @@ -16,7 +19,7 @@ class Test_Filestorage_DAV extends Test_FileStorage { $this->markTestSkipped('WebDAV backend not configured'); } $this->config['webdav']['root'] .= '/' . $id; //make sure we have an new empty folder to work in - $this->instance = new OC_Filestorage_DAV($this->config['webdav']); + $this->instance = new \OC\Files\Storage\DAV($this->config['webdav']); } public function tearDown() { diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php index 0104d0d017f..d3e05cc62d8 100644 --- a/apps/files_sharing/appinfo/app.php +++ b/apps/files_sharing/appinfo/app.php @@ -2,8 +2,11 @@ OC::$CLASSPATH['OC_Share_Backend_File'] = "apps/files_sharing/lib/share/file.php"; OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'apps/files_sharing/lib/share/folder.php'; -OC::$CLASSPATH['OC_Filestorage_Shared'] = "apps/files_sharing/lib/sharedstorage.php"; -OCP\Util::connectHook('OC_Filesystem', 'setup', 'OC_Filestorage_Shared', 'setup'); +OC::$CLASSPATH['OC\Files\Storage\Shared'] = "apps/files_sharing/lib/sharedstorage.php"; +OC::$CLASSPATH['OC\Files\Cache\Shared_Cache'] = 'apps/files_sharing/lib/cache.php'; +OC::$CLASSPATH['OC\Files\Cache\Shared_Permissions'] = 'apps/files_sharing/lib/permissions.php'; +OC::$CLASSPATH['OC\Files\Cache\Shared_Watcher'] = 'apps/files_sharing/lib/watcher.php'; +OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); OCP\Share::registerBackend('file', 'OC_Share_Backend_File'); OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file'); -OCP\Util::addScript('files_sharing', 'share'); \ No newline at end of file +OCP\Util::addScript('files_sharing', 'share'); diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml index a44d0338bb6..1f24a4dde83 100644 --- a/apps/files_sharing/appinfo/info.xml +++ b/apps/files_sharing/appinfo/info.xml @@ -5,7 +5,7 @@ File sharing between users AGPL Michael Gapczynski - 4.9 + 4.91 true diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php index e998626f4a4..1d22b32b503 100644 --- a/apps/files_sharing/appinfo/update.php +++ b/apps/files_sharing/appinfo/update.php @@ -9,10 +9,12 @@ if (version_compare($installedVersion, '0.3', '<')) { OC_User::useBackend(new OC_User_Database()); OC_Group::useBackend(new OC_Group_Database()); OC_App::loadApps(array('authentication')); + $rootView = new \OC\Files\View(''); while ($row = $result->fetchRow()) { - $itemSource = OC_FileCache::getId($row['source'], ''); + $meta = $rootView->getFileInfo($$row['source']); + $itemSource = $meta['fileid']; if ($itemSource != -1) { - $file = OC_FileCache::get($row['source'], ''); + $file = $meta; if ($file['mimetype'] == 'httpd/unix-directory') { $itemType = 'folder'; } else { @@ -68,6 +70,6 @@ if (version_compare($installedVersion, '0.3.3', '<')) { OC_App::loadApps(array('authentication')); $users = OC_User::getUsers(); foreach ($users as $user) { - OC_FileCache::delete('Shared', '/'.$user.'/files/'); +// OC_FileCache::delete('Shared', '/'.$user.'/files/'); } -} \ No newline at end of file +} diff --git a/apps/files_sharing/l10n/af_ZA.php b/apps/files_sharing/l10n/af_ZA.php new file mode 100644 index 00000000000..344585a62fc --- /dev/null +++ b/apps/files_sharing/l10n/af_ZA.php @@ -0,0 +1,4 @@ + "Wagwoord", +"web services under your control" => "webdienste onder jou beheer" +); diff --git a/apps/files_sharing/l10n/fa.php b/apps/files_sharing/l10n/fa.php index 06e1862e8b3..4313acae1ad 100644 --- a/apps/files_sharing/l10n/fa.php +++ b/apps/files_sharing/l10n/fa.php @@ -1,6 +1,9 @@ "اندازه", -"Modified" => "تاریخ", -"Delete all" => "حذف همه", -"Delete" => "حذف" +"Password" => "گذرواژه", +"Submit" => "ثبت", +"%s shared the folder %s with you" => "%sپوشه %s را با شما به اشتراک گذاشت", +"%s shared the file %s with you" => "%sفایل %s را با شما به اشتراک گذاشت", +"Download" => "دانلود", +"No preview available for" => "هیچگونه پیش نمایشی موجود نیست", +"web services under your control" => "سرویس های تحت وب در کنترل شما" ); diff --git a/apps/files_sharing/l10n/lv.php b/apps/files_sharing/l10n/lv.php new file mode 100644 index 00000000000..0b224867089 --- /dev/null +++ b/apps/files_sharing/l10n/lv.php @@ -0,0 +1,9 @@ + "Parole", +"Submit" => "Iesniegt", +"%s shared the folder %s with you" => "%s ar jums dalījās ar mapi %s", +"%s shared the file %s with you" => "%s ar jums dalījās ar datni %s", +"Download" => "Lejupielādēt", +"No preview available for" => "Nav pieejams priekšskatījums priekš", +"web services under your control" => "jūsu vadībā esošie tīmekļa servisi" +); diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php new file mode 100644 index 00000000000..9655e447875 --- /dev/null +++ b/apps/files_sharing/lib/cache.php @@ -0,0 +1,258 @@ +. + */ + +namespace OC\Files\Cache; + +/** + * Metadata cache for shared files + * + * don't use this class directly if you need to get metadata, use \OC\Files\Filesystem::getFileInfo instead + */ +class Shared_Cache extends Cache { + + private $files = array(); + + public function __construct($storage) { + + } + + /** + * @brief Get the source cache of a shared file or folder + * @param string $target Shared target file path + * @return \OC\Files\Cache\Cache + */ + private function getSourceCache($target) { + $source = \OC_Share_Backend_File::getSource($target); + if (isset($source['path'])) { + $source['path'] = '/' . $source['uid_owner'] . '/' . $source['path']; + \OC\Files\Filesystem::initMountPoints($source['uid_owner']); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source['path']); + if ($storage) { + $this->files[$target] = $internalPath; + $cache = $storage->getCache(); + $this->storageId = $storage->getId(); + $this->numericId = $cache->getNumericStorageId(); + return $cache; + } + } + return false; + } + + /** + * get the stored metadata of a file or folder + * + * @param string/int $file + * @return array + */ + public function get($file) { + if ($file == '') { + return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT); + } else if (is_string($file)) { + if ($cache = $this->getSourceCache($file)) { + return $cache->get($this->files[$file]); + } + } else { + $query = \OC_DB::prepare( + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` + FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $result = $query->execute(array($file)); + $data = $result->fetchRow(); + $data['fileid'] = (int)$data['fileid']; + $data['size'] = (int)$data['size']; + $data['mtime'] = (int)$data['mtime']; + $data['encrypted'] = (bool)$data['encrypted']; + $data['mimetype'] = $this->getMimetype($data['mimetype']); + $data['mimepart'] = $this->getMimetype($data['mimepart']); + return $data; + } + return false; + } + + /** + * get the metadata of all files stored in $folder + * + * @param string $folder + * @return array + */ + public function getFolderContents($folder) { + if ($folder == '') { + $files = \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_GET_FOLDER_CONTENTS); + foreach ($files as &$file) { + $file['mimetype'] = $this->getMimetype($file['mimetype']); + $file['mimepart'] = $this->getMimetype($file['mimepart']); + } + return $files; + } else { + if ($cache = $this->getSourceCache($folder)) { + return $cache->getFolderContents($this->files[$folder]); + } + } + return false; + } + + /** + * store meta data for a file or folder + * + * @param string $file + * @param array $data + * + * @return int file id + */ + public function put($file, array $data) { + if ($cache = $this->getSourceCache($file)) { + return $cache->put($this->files[$file], $data); + } + return false; + } + + /** + * get the file id for a file + * + * @param string $file + * @return int + */ + public function getId($file) { + if ($cache = $this->getSourceCache($file)) { + return $cache->getId($this->files[$file]); + } + return -1; + } + + /** + * check if a file is available in the cache + * + * @param string $file + * @return bool + */ + public function inCache($file) { + if ($file == '') { + return true; + } + return parent::inCache($file); + } + + /** + * remove a file or folder from the cache + * + * @param string $file + */ + public function remove($file) { + if ($cache = $this->getSourceCache($file)) { + $cache->remove($this->files[$file]); + } + } + + /** + * Move a file or folder in the cache + * + * @param string $source + * @param string $target + */ + public function move($source, $target) { + if ($cache = $this->getSourceCache($source)) { + $targetPath = \OC_Share_Backend_File::getSourcePath(dirname($target)); + if ($targetPath) { + $targetPath .= '/' . basename($target); + $cache->move($this->files[$source], $targetPath); + } + + } + } + + /** + * remove all entries for files that are stored on the storage from the cache + */ + public function clear() { + // Not a valid action for Shared Cache + } + + /** + * @param string $file + * + * @return int, Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE + */ + public function getStatus($file) { + if ($file == '') { + return self::COMPLETE; + } + if ($cache = $this->getSourceCache($file)) { + return $cache->getStatus($this->files[$file]); + } + return self::NOT_FOUND; + } + + /** + * search for files matching $pattern + * + * @param string $pattern + * @return array of file data + */ + public function search($pattern) { + // TODO + } + + /** + * search for files by mimetype + * + * @param string $part1 + * @param string $part2 + * @return array + */ + public function searchByMime($mimetype) { + if (strpos($mimetype, '/')) { + $where = '`mimetype` = ?'; + } else { + $where = '`mimepart` = ?'; + } + $mimetype = $this->getMimetypeId($mimetype); + $ids = $this->getAll(); + $placeholders = join(',', array_fill(0, count($ids), '?')); + $query = \OC_DB::prepare(' + SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` + FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `fileid` IN (' . $placeholders . ')' + ); + $result = $query->execute(array_merge(array($mimetype), $ids)); + return $result->fetchAll(); + } + + /** + * get the size of a folder and set it in the cache + * + * @param string $path + * @return int + */ + public function calculateFolderSize($path) { + if ($cache = $this->getSourceCache($path)) { + return $cache->calculateFolderSize($this->files[$path]); + } + return 0; + } + + /** + * get all file ids on the files on the storage + * + * @return int[] + */ + public function getAll() { + return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_GET_ALL); + } + +} diff --git a/apps/files_sharing/lib/permissions.php b/apps/files_sharing/lib/permissions.php new file mode 100644 index 00000000000..2b068ff9350 --- /dev/null +++ b/apps/files_sharing/lib/permissions.php @@ -0,0 +1,85 @@ +. +*/ +namespace OC\Files\Cache; + +class Shared_Permissions extends Permissions { + + /** + * get the permissions for a single file + * + * @param int $fileId + * @param string $user + * @return int (-1 if file no permissions set) + */ + public function get($fileId, $user) { + if ($fileId == -1) { + return \OCP\PERMISSION_READ; + } + $source = \OCP\Share::getItemSharedWithBySource('file', $fileId, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE, null, true); + if ($source) { + return $source['permissions']; + } else { + return -1; + } + } + + /** + * set the permissions of a file + * + * @param int $fileId + * @param string $user + * @param int $permissions + */ + public function set($fileId, $user, $permissions) { + // Not a valid action for Shared Permissions + } + + /** + * get the permissions of multiply files + * + * @param int[] $fileIds + * @param string $user + * @return int[] + */ + public function getMultiple($fileIds, $user) { + if (count($fileIds) === 0) { + return array(); + } + foreach ($fileIds as $fileId) { + $filePermissions[$fileId] = self::get($fileId, $user); + } + return $filePermissions; + } + + /** + * remove the permissions for a file + * + * @param int $fileId + * @param string $user + */ + public function remove($fileId, $user) { + // Not a valid action for Shared Permissions + } + + public function removeMultiple($fileIds, $user) { + // Not a valid action for Shared Permissions + } +} diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php index ac585236831..6d3c55a008f 100644 --- a/apps/files_sharing/lib/share/file.php +++ b/apps/files_sharing/lib/share/file.php @@ -22,16 +22,18 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { const FORMAT_SHARED_STORAGE = 0; - const FORMAT_FILE_APP = 1; + const FORMAT_GET_FOLDER_CONTENTS = 1; const FORMAT_FILE_APP_ROOT = 2; const FORMAT_OPENDIR = 3; + const FORMAT_GET_ALL = 4; private $path; public function isValidSource($itemSource, $uidOwner) { - $path = OC_FileCache::getPath($itemSource, $uidOwner); - if ($path) { - $this->path = $path; + $query = \OC_DB::prepare('SELECT `name` FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $result = $query->execute(array($itemSource)); + if ($row = $result->fetchRow()) { + $this->path = $row['name']; return true; } return false; @@ -70,37 +72,21 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { public function formatItems($items, $format, $parameters = null) { if ($format == self::FORMAT_SHARED_STORAGE) { // Only 1 item should come through for this format call - return array('path' => $items[key($items)]['path'], 'permissions' => $items[key($items)]['permissions']); - } else if ($format == self::FORMAT_FILE_APP) { - if (isset($parameters['mimetype_filter']) && $parameters['mimetype_filter']) { - $mimetype_filter = $parameters['mimetype_filter']; - } + return array('path' => $items[key($items)]['path'], 'permissions' => $items[key($items)]['permissions'], 'uid_owner' => $items[key($items)]['uid_owner']); + } else if ($format == self::FORMAT_GET_FOLDER_CONTENTS) { $files = array(); foreach ($items as $item) { - if (isset($mimetype_filter) - && strpos($item['mimetype'], $mimetype_filter) !== 0 - && $item['mimetype'] != 'httpd/unix-directory') { - continue; - } $file = array(); - $file['id'] = $item['file_source']; + $file['fileid'] = $item['file_source']; + $file['storage'] = $item['storage']; $file['path'] = $item['file_target']; + $file['parent'] = $item['file_parent']; $file['name'] = basename($item['file_target']); - $file['ctime'] = $item['ctime']; - $file['mtime'] = $item['mtime']; $file['mimetype'] = $item['mimetype']; + $file['mimepart'] = $item['mimepart']; $file['size'] = $item['size']; + $file['mtime'] = $item['mtime']; $file['encrypted'] = $item['encrypted']; - $file['versioned'] = $item['versioned']; - $file['directory'] = $parameters['folder']; - $file['type'] = ($item['mimetype'] == 'httpd/unix-directory') ? 'dir' : 'file'; - $file['permissions'] = $item['permissions']; - if ($file['type'] == 'file') { - // Remove Create permission if type is file - $file['permissions'] &= ~OCP\PERMISSION_CREATE; - } - // NOTE: Temporary fix to allow unsharing of files in root of Shared directory - $file['permissions'] |= OCP\PERMISSION_DELETE; $files[] = $file; } return $files; @@ -111,17 +97,48 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { if ($item['mtime'] > $mtime) { $mtime = $item['mtime']; } - $size += $item['size']; + $size += (int)$item['size']; } - return array(0 => array('id' => -1, 'name' => 'Shared', 'mtime' => $mtime, 'mimetype' => 'httpd/unix-directory', 'size' => $size, 'writable' => false, 'type' => 'dir', 'directory' => '', 'permissions' => OCP\PERMISSION_READ)); + return array('fileid' => -1, 'name' => 'Shared', 'mtime' => $mtime, 'mimetype' => 'httpd/unix-directory', 'size' => $size); } else if ($format == self::FORMAT_OPENDIR) { $files = array(); foreach ($items as $item) { $files[] = basename($item['file_target']); } return $files; + } else if ($format == self::FORMAT_GET_ALL) { + $ids = array(); + foreach ($items as $item) { + $ids[] = $item['file_source']; + } + return $ids; } return array(); } + public static function getSource($target) { + if ($target == '') { + return false; + } + $target = '/'.$target; + $target = rtrim($target, '/'); + $pos = strpos($target, '/', 1); + // Get shared folder name + if ($pos !== false) { + $folder = substr($target, 0, $pos); + $source = \OCP\Share::getItemSharedWith('folder', $folder, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE); + if ($source) { + $source['path'] = $source['path'].substr($target, strlen($folder)); + return $source; + } + } else { + $source = \OCP\Share::getItemSharedWith('file', $target, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE); + if ($source) { + return $source; + } + } + \OCP\Util::writeLog('files_sharing', 'File source not found for: '.$target, \OCP\Util::ERROR); + return false; + } + } diff --git a/apps/files_sharing/lib/share/folder.php b/apps/files_sharing/lib/share/folder.php index d414fcf10fc..11c8c6b1e80 100644 --- a/apps/files_sharing/lib/share/folder.php +++ b/apps/files_sharing/lib/share/folder.php @@ -21,47 +21,26 @@ class OC_Share_Backend_Folder extends OC_Share_Backend_File implements OCP\Share_Backend_Collection { - public function formatItems($items, $format, $parameters = null) { - if ($format == self::FORMAT_SHARED_STORAGE) { - // Only 1 item should come through for this format call - return array('path' => $items[key($items)]['path'], 'permissions' => $items[key($items)]['permissions']); - } else if ($format == self::FORMAT_FILE_APP && isset($parameters['folder'])) { - // Only 1 item should come through for this format call - $folder = $items[key($items)]; - if (isset($parameters['mimetype_filter'])) { - $mimetype_filter = $parameters['mimetype_filter']; - } else { - $mimetype_filter = ''; - } - $path = $folder['path'].substr($parameters['folder'], 7 + strlen($folder['file_target'])); - $files = OC_FileCache::getFolderContent($path, '', $mimetype_filter); - foreach ($files as &$file) { - $file['directory'] = $parameters['folder']; - $file['type'] = ($file['mimetype'] == 'httpd/unix-directory') ? 'dir' : 'file'; - $file['permissions'] = $folder['permissions']; - if ($file['type'] == 'file') { - // Remove Create permission if type is file - $file['permissions'] &= ~OCP\PERMISSION_CREATE; - } - } - return $files; - } - return array(); - } - public function getChildren($itemSource) { $children = array(); $parents = array($itemSource); + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?'); + $result = $query->execute(array('httpd/unix-directory')); + if ($row = $result->fetchRow()) { + $mimetype = $row['id']; + } else { + $mimetype = -1; + } while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - $query = OC_DB::prepare('SELECT `id`, `name`, `mimetype` FROM `*PREFIX*fscache` WHERE `parent` IN ('.$parents.')'); + $query = OC_DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache` WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); $parents = array(); while ($file = $result->fetchRow()) { - $children[] = array('source' => $file['id'], 'file_path' => $file['name']); + $children[] = array('source' => $file['fileid'], 'file_path' => $file['name']); // If a child folder is found look inside it - if ($file['mimetype'] == 'httpd/unix-directory') { - $parents[] = $file['id']; + if ($file['mimetype'] == $mimetype) { + $parents[] = $file['fileid']; } } } diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 50db9166fe7..ea28ca69b93 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -20,10 +20,12 @@ * */ +namespace OC\Files\Storage; + /** * Convert target path to source path and pass the function call to the correct storage provider */ -class OC_Filestorage_Shared extends OC_Filestorage_Common { +class Shared extends \OC\Files\Storage\Common { private $sharedFolder; private $files = array(); @@ -32,54 +34,36 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { $this->sharedFolder = $arguments['sharedFolder']; } + public function getId(){ + return 'shared::' . $this->sharedFolder; + } + /** - * @brief Get the source file path and the permissions granted for a shared file + * @brief Get the source file path, permissions, and owner for a shared file * @param string Shared target file path - * @return Returns array with the keys path and permissions or false if not found + * @return Returns array with the keys path, permissions, and owner or false if not found */ private function getFile($target) { - $target = '/'.$target; - $target = rtrim($target, '/'); - if (isset($this->files[$target])) { - return $this->files[$target]; - } else { - $pos = strpos($target, '/', 1); - // Get shared folder name - if ($pos !== false) { - $folder = substr($target, 0, $pos); - if (isset($this->files[$folder])) { - $file = $this->files[$folder]; - } else { - $file = OCP\Share::getItemSharedWith('folder', $folder, OC_Share_Backend_File::FORMAT_SHARED_STORAGE); - } - if ($file) { - $this->files[$target]['path'] = $file['path'].substr($target, strlen($folder)); - $this->files[$target]['permissions'] = $file['permissions']; - return $this->files[$target]; - } - } else { - $file = OCP\Share::getItemSharedWith('file', $target, OC_Share_Backend_File::FORMAT_SHARED_STORAGE); - if ($file) { - $this->files[$target] = $file; - return $this->files[$target]; - } + if (!isset($this->files[$target])) { + $source = \OC_Share_Backend_File::getSource($target); + if ($source) { + $source['path'] = '/'.$source['uid_owner'].'/'.$source['path']; } - OCP\Util::writeLog('files_sharing', 'File source not found for: '.$target, OCP\Util::ERROR); - return false; + $this->files[$target] = $source; } + return $this->files[$target]; } /** * @brief Get the source file path for a shared file * @param string Shared target file path - * @return Returns source file path or false if not found + * @return string source file path or false if not found */ private function getSourcePath($target) { - $file = $this->getFile($target); - if (isset($file['path'])) { - $uid = substr($file['path'], 1, strpos($file['path'], '/', 1) - 1); - OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => OC_User::getHome($uid)), $uid); - return $file['path']; + $source = $this->getFile($target); + if ($source) { + \OC\Files\Filesystem::initMountPoints($source['uid_owner']); + return $source['path']; } return false; } @@ -87,61 +71,42 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { /** * @brief Get the permissions granted for a shared file * @param string Shared target file path - * @return Returns CRUDS permissions granted or false if not found + * @return int CRUDS permissions granted or false if not found */ - private function getPermissions($target) { - $file = $this->getFile($target); - if (isset($file['permissions'])) { - return $file['permissions']; + public function getPermissions($target) { + $source = $this->getFile($target); + if ($source) { + return $source['permissions']; } return false; } - /** - * @brief Get the internal path to pass to the storage filesystem call - * @param string Source file path - * @return Source file path with mount point stripped out - */ - private function getInternalPath($path) { - $mountPoint = OC_Filesystem::getMountPoint($path); - $internalPath = substr($path, strlen($mountPoint)); - return $internalPath; - } - - public function getOwner($target) { - $shared_item = OCP\Share::getItemSharedWith('folder', $target, OC_Share_Backend_File::FORMAT_SHARED_STORAGE); - if ($shared_item) { - return $shared_item[0]["uid_owner"]; - } - return null; - } - public function mkdir($path) { if ($path == '' || $path == '/' || !$this->isCreatable(dirname($path))) { return false; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->mkdir($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->mkdir($internalPath); } return false; } public function rmdir($path) { if (($source = $this->getSourcePath($path)) && $this->isDeletable($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->rmdir($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->rmdir($internalPath); } return false; } public function opendir($path) { if ($path == '' || $path == '/') { - $files = OCP\Share::getItemsSharedWith('file', OC_Share_Backend_Folder::FORMAT_OPENDIR); - OC_FakeDirStream::$dirs['shared'] = $files; + $files = \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_Folder::FORMAT_OPENDIR); + \OC\Files\Stream\Dir::register('shared', $files); return opendir('fakedir://shared'); } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->opendir($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->opendir($internalPath); } return false; } @@ -150,16 +115,16 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '' || $path == '/') { return true; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->is_dir($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->is_dir($internalPath); } return false; } public function is_file($path) { if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->is_file($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->is_file($internalPath); } return false; } @@ -168,11 +133,10 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '' || $path == '/') { $stat['size'] = $this->filesize($path); $stat['mtime'] = $this->filemtime($path); - $stat['ctime'] = $this->filectime($path); return $stat; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->stat($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->stat($internalPath); } return false; } @@ -181,8 +145,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '' || $path == '/') { return 'dir'; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->filetype($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->filetype($internalPath); } return false; } @@ -191,8 +155,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '' || $path == '/' || $this->is_dir($path)) { return 0; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->filesize($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->filesize($internalPath); } return false; } @@ -201,7 +165,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '') { return false; } - return ($this->getPermissions($path) & OCP\PERMISSION_CREATE); + return ($this->getPermissions($path) & \OCP\PERMISSION_CREATE); } public function isReadable($path) { @@ -212,54 +176,33 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($path == '') { return false; } - return ($this->getPermissions($path) & OCP\PERMISSION_UPDATE); + return ($this->getPermissions($path) & \OCP\PERMISSION_UPDATE); } public function isDeletable($path) { if ($path == '') { return true; } - return ($this->getPermissions($path) & OCP\PERMISSION_DELETE); + return ($this->getPermissions($path) & \OCP\PERMISSION_DELETE); } public function isSharable($path) { if ($path == '') { return false; } - return ($this->getPermissions($path) & OCP\PERMISSION_SHARE); + return ($this->getPermissions($path) & \OCP\PERMISSION_SHARE); } public function file_exists($path) { if ($path == '' || $path == '/') { return true; } else if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->file_exists($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->file_exists($internalPath); } return false; } - public function filectime($path) { - if ($path == '' || $path == '/') { - $ctime = 0; - if ($dh = $this->opendir($path)) { - while (($filename = readdir($dh)) !== false) { - $tempctime = $this->filectime($filename); - if ($tempctime < $ctime) { - $ctime = $tempctime; - } - } - } - return $ctime; - } else { - $source = $this->getSourcePath($path); - if ($source) { - $storage = OC_Filesystem::getStorage($source); - return $storage->filectime($this->getInternalPath($source)); - } - } - } - public function filemtime($path) { if ($path == '' || $path == '/') { $mtime = 0; @@ -275,8 +218,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { } else { $source = $this->getSourcePath($path); if ($source) { - $storage = OC_Filesystem::getStorage($source); - return $storage->filemtime($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->filemtime($internalPath); } } } @@ -288,9 +231,9 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { 'target' => $this->sharedFolder.$path, 'source' => $source, ); - OCP\Util::emitHook('OC_Filestorage_Shared', 'file_get_contents', $info); - $storage = OC_Filesystem::getStorage($source); - return $storage->file_get_contents($this->getInternalPath($source)); + \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->file_get_contents($internalPath); } } @@ -304,9 +247,9 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { 'target' => $this->sharedFolder.$path, 'source' => $source, ); - OCP\Util::emitHook('OC_Filestorage_Shared', 'file_put_contents', $info); - $storage = OC_Filesystem::getStorage($source); - $result = $storage->file_put_contents($this->getInternalPath($source), $data); + \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + $result = $storage->file_put_contents($internalPath, $data); return $result; } return false; @@ -316,8 +259,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { // Delete the file if DELETE permission is granted if ($source = $this->getSourcePath($path)) { if ($this->isDeletable($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->unlink($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->unlink($internalPath); } else if (dirname($path) == '/' || dirname($path) == '.') { // Unshare the file from the user if in the root of the Shared folder if ($this->is_dir($path)) { @@ -325,7 +268,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { } else { $itemType = 'file'; } - return OCP\Share::unshareFromSelf($itemType, $path); + return \OCP\Share::unshareFromSelf($itemType, $path); } } return false; @@ -340,8 +283,9 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if (dirname($path1) == dirname($path2)) { // Rename the file if UPDATE permission is granted if ($this->isUpdatable($path1)) { - $storage = OC_Filesystem::getStorage($oldSource); - return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource)); + list($storage, $oldInternalPath) = \OC\Files\Filesystem::resolvePath($oldSource); + list( , $newInternalPath) = \OC\Files\Filesystem::resolvePath($newSource); + return $storage->rename($oldInternalPath, $newInternalPath); } } else { // Move the file if DELETE and CREATE permissions are granted @@ -355,8 +299,9 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { return $this->unlink($path1); } } else { - $storage = OC_Filesystem::getStorage($oldSource); - return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource)); + list($storage, $oldInternalPath) = \OC\Files\Filesystem::resolvePath($oldSource); + list( , $newInternalPath) = \OC\Files\Filesystem::resolvePath($newSource); + return $storage->rename($oldInternalPath, $newInternalPath); } } } @@ -369,7 +314,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { if ($this->isCreatable(dirname($path2))) { $source = $this->fopen($path1, 'r'); $target = $this->fopen($path2, 'w'); - return OC_Helper::streamCopy($source, $target); + return \OC_Helper::streamCopy($source, $target); } return false; } @@ -400,9 +345,9 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { 'source' => $source, 'mode' => $mode, ); - OCP\Util::emitHook('OC_Filestorage_Shared', 'fopen', $info); - $storage = OC_Filesystem::getStorage($source); - return $storage->fopen($this->getInternalPath($source), $mode); + \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->fopen($internalPath, $mode); } return false; } @@ -412,47 +357,88 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common { return 'httpd/unix-directory'; } if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->getMimeType($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->getMimeType($internalPath); } return false; } public function free_space($path) { + if ($path == '') { + return -1; + } $source = $this->getSourcePath($path); if ($source) { - $storage = OC_Filesystem::getStorage($source); - return $storage->free_space($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->free_space($internalPath); } } public function getLocalFile($path) { if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->getLocalFile($this->getInternalPath($source)); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->getLocalFile($internalPath); } return false; } public function touch($path, $mtime = null) { if ($source = $this->getSourcePath($path)) { - $storage = OC_Filesystem::getStorage($source); - return $storage->touch($this->getInternalPath($source), $mtime); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->touch($internalPath, $mtime); } return false; } public static function setup($options) { - $user_dir = $options['user_dir']; - OC_Filesystem::mount('OC_Filestorage_Shared', array('sharedFolder' => '/Shared'), $user_dir.'/Shared/'); + if (\OCP\Share::getItemsSharedWith('file')) { + $user_dir = $options['user_dir']; + \OC\Files\Filesystem::mount('\OC\Files\Storage\Shared', array('sharedFolder' => '/Shared'), $user_dir.'/Shared/'); + } } - /** - * check if a file or folder has been updated since $time - * @param int $time - * @return bool - */ public function hasUpdated($path, $time) { - //TODO + if ($path == '') { + return false; + } + return $this->filemtime($path) > $time; + } + + public function getCache($path = '') { + return new \OC\Files\Cache\Shared_Cache($this); + } + + public function getScanner($path = '') { + return new \OC\Files\Cache\Scanner($this); + } + + public function getPermissionsCache($path = '') { + return new \OC\Files\Cache\Shared_Permissions($this); + } + + public function getWatcher($path = '') { + return new \OC\Files\Cache\Shared_Watcher($this); + } + + public function getOwner($path) { + if ($path == '') { + return false; + } + $source = $this->getFile($path); + if ($source) { + return $source['uid_owner']; + } return false; } + + public function getETag($path) { + if ($path == '') { + return parent::getETag($path); + } + if ($source = $this->getSourcePath($path)) { + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + return $storage->getETag($internalPath); + } + return null; + } + } diff --git a/apps/files_sharing/lib/watcher.php b/apps/files_sharing/lib/watcher.php new file mode 100644 index 00000000000..e67d1ee9086 --- /dev/null +++ b/apps/files_sharing/lib/watcher.php @@ -0,0 +1,51 @@ +. +*/ + +namespace OC\Files\Cache; + +/** + * check the storage backends for updates and change the cache accordingly + */ +class Shared_Watcher extends Watcher { + + /** + * check $path for updates + * + * @param string $path + */ + public function checkUpdate($path) { + if ($path != '') { + parent::checkUpdate($path); + } + } + + /** + * remove deleted files in $path from the cache + * + * @param string $path + */ + public function cleanFolder($path) { + if ($path != '') { + parent::cleanFolder($path); + } + } + +} \ No newline at end of file diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 5672c78dc33..a3e0ec192af 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -9,9 +9,10 @@ if (isset($_GET['token'])) { unset($_GET['file']); $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ?', 1); $filepath = $qry->execute(array($_GET['token']))->fetchOne(); - if(isset($filepath)) { - $info = OC_FileCache_Cached::get($filepath, ''); - if(strtolower($info['mimetype']) == 'httpd/unix-directory') { + if (isset($filepath)) { + $rootView = new \OC\Files\View(''); + $info = $rootView->getFileInfo($filepath, ''); + if (strtolower($info['mimetype']) == 'httpd/unix-directory') { $_GET['dir'] = $filepath; } else { $_GET['file'] = $filepath; @@ -25,7 +26,7 @@ if (isset($_GET['token'])) { function getID($path) { // use the share table from the db to find the item source if the file was reshared because shared files //are not stored in the file cache. - if (substr(OC_Filesystem::getMountPoint($path), -7, 6) == "Shared") { + if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") { $path_parts = explode('/', $path, 5); $user = $path_parts[1]; $intPath = '/'.$path_parts[4]; @@ -37,16 +38,19 @@ function getID($path) { $row = $result->fetchRow(); $fileSource = $row['item_source']; } else { - $fileSource = OC_Filecache::getId($path, ''); + $rootView = new \OC\Files\View(''); + $meta = $rootView->getFileInfo($path); + $fileSource = $meta['fileid']; } return $fileSource; } + // Enf of backward compatibility /** * lookup file path and owner by fetching it from the fscache - * needed becaus OC_FileCache::getPath($id, $user) already requires the user + * needed because OC_FileCache::getPath($id, $user) already requires the user * @param int $id * @return array */ @@ -86,41 +90,43 @@ if (isset($_GET['t'])) { OC_Util::setupFS($fileOwner); } } -} else if (isset($_GET['file']) || isset($_GET['dir'])) { - OCP\Util::writeLog('share', 'Missing token, trying fallback file/dir links', \OCP\Util::DEBUG); - if (isset($_GET['dir'])) { - $type = 'folder'; - $path = $_GET['dir']; - if(strlen($path)>1 and substr($path, -1, 1)==='/') { - $path=substr($path, 0, -1); +} else { + if (isset($_GET['file']) || isset($_GET['dir'])) { + OCP\Util::writeLog('share', 'Missing token, trying fallback file/dir links', \OCP\Util::DEBUG); + if (isset($_GET['dir'])) { + $type = 'folder'; + $path = $_GET['dir']; + if (strlen($path) > 1 and substr($path, -1, 1) === '/') { + $path = substr($path, 0, -1); + } + $baseDir = $path; + $dir = $baseDir; + } else { + $type = 'file'; + $path = $_GET['file']; + if (strlen($path) > 1 and substr($path, -1, 1) === '/') { + $path = substr($path, 0, -1); + } } - $baseDir = $path; - $dir = $baseDir; - } else { - $type = 'file'; - $path = $_GET['file']; - if(strlen($path)>1 and substr($path, -1, 1)==='/') { - $path=substr($path, 0, -1); - } - } - $shareOwner = substr($path, 1, strpos($path, '/', 1) - 1); + $shareOwner = substr($path, 1, strpos($path, '/', 1) - 1); - if (OCP\User::userExists($shareOwner)) { - OC_Util::setupFS($shareOwner); - $fileSource = getId($path); - if ($fileSource != -1 ) { - $linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $shareOwner); - $pathAndUser['path'] = $path; - $path_parts = explode('/', $path, 5); - $pathAndUser['user'] = $path_parts[1]; - $fileOwner = $path_parts[1]; + if (OCP\User::userExists($shareOwner)) { + OC_Util::setupFS($shareOwner); + $fileSource = getId($path); + if ($fileSource != -1) { + $linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $shareOwner); + $pathAndUser['path'] = $path; + $path_parts = explode('/', $path, 5); + $pathAndUser['user'] = $path_parts[1]; + $fileOwner = $path_parts[1]; + } } } } if ($linkItem) { if (!isset($linkItem['item_type'])) { - OCP\Util::writeLog('share', 'No item type set for share id: '.$linkItem['id'], \OCP\Util::ERROR); + OCP\Util::writeLog('share', 'No item type set for share id: ' . $linkItem['id'], \OCP\Util::ERROR); header('HTTP/1.0 404 Not Found'); $tmpl = new OCP\Template('', '404', 'guest'); $tmpl->printPage(); @@ -128,11 +134,13 @@ if ($linkItem) { } if (isset($linkItem['share_with'])) { // Authenticate share_with - $url = OCP\Util::linkToPublic('files').'&t='.$token; + $url = OCP\Util::linkToPublic('files') . '&t=' . $token; if (isset($_GET['file'])) { - $url .= '&file='.urlencode($_GET['file']); - } else if (isset($_GET['dir'])) { - $url .= '&dir='.urlencode($_GET['dir']); + $url .= '&file=' . urlencode($_GET['file']); + } else { + if (isset($_GET['dir'])) { + $url .= '&dir=' . urlencode($_GET['dir']); + } } if (isset($_POST['password'])) { $password = $_POST['password']; @@ -173,13 +181,13 @@ if ($linkItem) { } } } - $basePath = substr($pathAndUser['path'], strlen('/'.$fileOwner.'/files')); + $basePath = substr($pathAndUser['path'], strlen('/' . $fileOwner . '/files')); $path = $basePath; if (isset($_GET['path'])) { $path .= $_GET['path']; } - if (!$path || !OC_Filesystem::isValidPath($path) || !OC_Filesystem::file_exists($path)) { - OCP\Util::writeLog('share', 'Invalid path '.$path.' for share id '.$linkItem['id'], \OCP\Util::ERROR); + if (!$path || !\OC\Files\Filesystem::isValidPath($path) || !\OC\Files\Filesystem::file_exists($path)) { + OCP\Util::writeLog('share', 'Invalid path ' . $path . ' for share id ' . $linkItem['id'], \OCP\Util::ERROR); header('HTTP/1.0 404 Not Found'); $tmpl = new OCP\Template('', '404', 'guest'); $tmpl->printPage(); @@ -189,13 +197,15 @@ if ($linkItem) { $file = basename($path); // Download the file if (isset($_GET['download'])) { - if (isset($_GET['path']) && $_GET['path'] !== '' ) { - if ( isset($_GET['files']) ) { // download selected files + if (isset($_GET['path']) && $_GET['path'] !== '') { + if (isset($_GET['files'])) { // download selected files OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else if (isset($_GET['path']) && $_GET['path'] != '' ) { // download a file from a shared directory - OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else { // download the whole shared directory - OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } else { + if (isset($_GET['path']) && $_GET['path'] != '') { // download a file from a shared directory + OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } else { // download the whole shared directory + OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } } } else { // download a single shared file OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); @@ -210,7 +220,7 @@ if ($linkItem) { $tmpl->assign('displayName', \OCP\User::getDisplayName($shareOwner)); $tmpl->assign('dir', $dir); $tmpl->assign('filename', $file); - $tmpl->assign('mimetype', OC_Filesystem::getMimeType($path)); + $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); if (isset($_GET['path'])) { $getPath = $_GET['path']; } else { @@ -221,10 +231,11 @@ if ($linkItem) { .(isset($_GET['dir'])?'&dir='.$_GET['dir']:'') .(isset($_GET['file'])?'&file='.$_GET['file']:''); // Show file list - if (OC_Filesystem::is_dir($path)) { + if (\OC\Files\Filesystem::is_dir($path)) { OCP\Util::addStyle('files', 'files'); OCP\Util::addScript('files', 'files'); OCP\Util::addScript('files', 'filelist'); + OCP\Util::addscript('files', 'keyboardshortcuts'); $files = array(); $rootLength = strlen($basePath) + 1; foreach (OC_Files::getDirectoryContent($path) as $i) { @@ -232,9 +243,9 @@ if ($linkItem) { if ($i['type'] == 'file') { $fileinfo = pathinfo($i['name']); $i['basename'] = $fileinfo['filename']; - $i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : ''; + $i['extension'] = isset($fileinfo['extension']) ? ('.' . $fileinfo['extension']) : ''; } - $i['directory'] = '/'.substr($i['directory'], $rootLength); + $i['directory'] = '/' . substr($i['directory'], $rootLength); if ($i['directory'] == '/') { $i['directory'] = ''; } @@ -251,9 +262,137 @@ if ($linkItem) { //add subdir breadcrumbs foreach (explode('/', urldecode($getPath)) as $i) { if ($i != '') { - $pathtohere .= '/'.$i; + $pathtohere .= '/' . $i; $breadcrumb[] = array('dir' => $pathtohere, 'name' => $i); + $path = $linkItem['path']; + if (isset($_GET['path'])) { + $path .= $_GET['path']; + $dir .= $_GET['path']; + if (!\OC\Files\Filesystem::file_exists($path)) { + header('HTTP/1.0 404 Not Found'); + $tmpl = new OCP\Template('', '404', 'guest'); + $tmpl->printPage(); + exit(); + } + } + + $list = new OCP\Template('files', 'part.list', ''); + $list->assign('files', $files, false); + $list->assign('publicListView', true); + $list->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); + $list->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=', false); + $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); + $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); + $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); + $folder = new OCP\Template('files', 'index', ''); + $folder->assign('fileList', $list->fetchPage(), false); + $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); + $folder->assign('isCreatable', false); + $folder->assign('permissions', 0); + $folder->assign('files', $files); + $folder->assign('uploadMaxFilesize', 0); + $folder->assign('uploadMaxHumanFilesize', 0); + $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $tmpl->assign('folder', $folder->fetchPage(), false); + $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath)); + } else { + // Show file preview if viewer is available + if ($type == 'file') { + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download'); + } else { + OCP\Util::addStyle('files_sharing', 'public'); + OCP\Util::addScript('files_sharing', 'public'); + OCP\Util::addScript('files', 'fileactions'); + $tmpl = new OCP\Template('files_sharing', 'public', 'base'); + $tmpl->assign('owner', $uidOwner); + // Show file list + if (\OC\Files\Filesystem::is_dir($path)) { + OCP\Util::addStyle('files', 'files'); + OCP\Util::addScript('files', 'files'); + OCP\Util::addScript('files', 'filelist'); + $files = array(); + $rootLength = strlen($baseDir) + 1; + foreach (OC_Files::getDirectoryContent($path) as $i) { + $i['date'] = OCP\Util::formatDate($i['mtime']); + if ($i['type'] == 'file') { + $fileinfo = pathinfo($i['name']); + $i['basename'] = $fileinfo['filename']; + $i['extension'] = isset($fileinfo['extension']) ? ('.' . $fileinfo['extension']) : ''; + } + $i['directory'] = '/' . substr('/' . $uidOwner . '/files' . $i['directory'], $rootLength); + if ($i['directory'] == '/') { + $i['directory'] = ''; + } + $i['permissions'] = OCP\PERMISSION_READ; + $files[] = $i; + } + // Make breadcrumb + $breadcrumb = array(); + $pathtohere = ''; + $count = 1; + foreach (explode('/', $dir) as $i) { + if ($i != '') { + if ($i != $baseDir) { + $pathtohere .= '/' . $i; + } + if (strlen($pathtohere) < strlen($_GET['dir'])) { + continue; + } + $breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i); + } + } + $list = new OCP\Template('files', 'part.list', ''); + $list->assign('files', $files, false); + $list->assign('publicListView', true); + $list->assign('baseURL', OCP\Util::linkToPublic('files') . '&dir=' . urlencode($_GET['dir']) . '&path=', false); + $list->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=', false); + $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); + $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); + $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . '&dir=' . urlencode($_GET['dir']) . '&path=', false); + $folder = new OCP\Template('files', 'index', ''); + $folder->assign('fileList', $list->fetchPage(), false); + $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); + $folder->assign('dir', basename($dir)); + $folder->assign('isCreatable', false); + $folder->assign('permissions', 0); + $folder->assign('files', $files); + $folder->assign('uploadMaxFilesize', 0); + $folder->assign('uploadMaxHumanFilesize', 0); + $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $tmpl->assign('folder', $folder->fetchPage(), false); + $tmpl->assign('uidOwner', $uidOwner); + $tmpl->assign('dir', basename($dir)); + $tmpl->assign('filename', basename($path)); + $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); + $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + if (isset($_GET['path'])) { + $getPath = $_GET['path']; + } else { + $getPath = ''; + } + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=' . urlencode($getPath), false); + } else { + // Show file preview if viewer is available + $tmpl->assign('uidOwner', $uidOwner); + $tmpl->assign('dir', dirname($path)); + $tmpl->assign('filename', basename($path)); + $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); + if ($type == 'file') { + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&file=' . urlencode($_GET['file']) . '&download', false); + } else { + if (isset($_GET['path'])) { + $getPath = $_GET['path']; + } else { + $getPath = ''; + } + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=' . urlencode($getPath), false); + } + } + $tmpl->printPage(); + } } + $tmpl->printPage(); } $list = new OCP\Template('files', 'part.list', ''); @@ -279,21 +418,11 @@ if ($linkItem) { $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') .$urlLinkIdentifiers.'&download&path='.urlencode($getPath)); } else { - // Show file preview if viewer is available - if ($type == 'file') { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') - .$urlLinkIdentifiers.'&download'); - } else { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') - .$urlLinkIdentifiers.'&download&path='.urlencode($getPath)); - } + OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); } - $tmpl->printPage(); } - exit(); -} else { - OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); } header('HTTP/1.0 404 Not Found'); $tmpl = new OCP\Template('', '404', 'guest'); $tmpl->printPage(); + diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php new file mode 100644 index 00000000000..ee1c64aaaf2 --- /dev/null +++ b/apps/files_trashbin/ajax/undelete.php @@ -0,0 +1,44 @@ + array("message" => "Couldn't restore ".rtrim($filelist,', '), "success" => $success, "error" => $error))); +} else { + OCP\JSON::success(array("data" => array("success" => $success))); +} + diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php new file mode 100644 index 00000000000..3741d42c781 --- /dev/null +++ b/apps/files_trashbin/appinfo/app.php @@ -0,0 +1,7 @@ + + + + *dbname* + true + false + + utf8 + + + + *dbprefix*files_trash + + + + + id + text + + true + 50 + + + + user + text + + true + 50 + + + + timestamp + text + + true + 12 + + + + location + text + + true + 200 + + + + type + text + + true + 4 + + + + mime + text + + true + 30 + + + + id_index + + id + ascending + + + + + timestamp_index + + timestamp + ascending + + + + + user_index + + user + ascending + + + + + +
+ +
diff --git a/apps/files_trashbin/appinfo/info.xml b/apps/files_trashbin/appinfo/info.xml new file mode 100644 index 00000000000..9b486126361 --- /dev/null +++ b/apps/files_trashbin/appinfo/info.xml @@ -0,0 +1,14 @@ + + + files_trashbin + Trash + Trash bin + AGPL + Bjoern Schiessle + true + 4.9 + + + + + diff --git a/apps/files_trashbin/appinfo/version b/apps/files_trashbin/appinfo/version new file mode 100644 index 00000000000..49d59571fbf --- /dev/null +++ b/apps/files_trashbin/appinfo/version @@ -0,0 +1 @@ +0.1 diff --git a/apps/files_trashbin/download.php b/apps/files_trashbin/download.php new file mode 100644 index 00000000000..665697dca5f --- /dev/null +++ b/apps/files_trashbin/download.php @@ -0,0 +1,51 @@ +. +* +*/ + +// Check if we are a user +OCP\User::checkLoggedIn(); + +$filename = $_GET["file"]; + +$view = new OC_FilesystemView('/'.\OCP\User::getUser().'/files_trashbin'); + +if(!$view->file_exists($filename)) { + header("HTTP/1.0 404 Not Found"); + $tmpl = new OCP\Template( '', '404', 'guest' ); + $tmpl->assign('file', $filename); + $tmpl->printPage(); + exit; +} + +$ftype=$view->getMimeType( $filename ); + +header('Content-Type:'.$ftype);if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) { + header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' ); +} else { + header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) ) + . '; filename="' . rawurlencode( basename($filename) ) . '"' ); +} +OCP\Response::disableCaching(); +header('Content-Length: '. $view->filesize($filename)); + +OC_Util::obEnd(); +$view->readfile( $filename ); diff --git a/apps/files_trashbin/index.php b/apps/files_trashbin/index.php new file mode 100644 index 00000000000..46a601cfdde --- /dev/null +++ b/apps/files_trashbin/index.php @@ -0,0 +1,100 @@ +getAbsolutePath($dir); + $dirContent = opendir($fullpath); + $i = 0; + while($entryName = readdir($dirContent)) { + if ( $entryName != '.' && $entryName != '..' ) { + $pos = strpos($dir.'/', '/', 1); + $tmp = substr($dir, 0, $pos); + $pos = strrpos($tmp, '.d'); + $timestamp = substr($tmp,$pos+2); + $result[] = array( + 'id' => $entryName, + 'timestamp' => $timestamp, + 'mime' => $view->getMimeType($dir.'/'.$entryName), + 'type' => $view->is_dir($dir.'/'.$entryName) ? 'dir' : 'file', + 'location' => $dir, + ); + } + } + closedir($fullpath); + +} else { + $dirlisting = false; + $query = \OC_DB::prepare('SELECT id,location,timestamp,type,mime FROM *PREFIX*files_trash WHERE user=?'); + $result = $query->execute(array($user))->fetchAll(); +} + +$files = array(); +foreach ($result as $r) { + $i = array(); + $i['name'] = $r['id']; + $i['date'] = OCP\Util::formatDate($r['timestamp']); + $i['timestamp'] = $r['timestamp']; + $i['mimetype'] = $r['mime']; + $i['type'] = $r['type']; + if ($i['type'] == 'file') { + $fileinfo = pathinfo($r['id']); + $i['basename'] = $fileinfo['filename']; + $i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : ''; + } + $i['directory'] = $r['location']; + if ($i['directory'] == '/') { + $i['directory'] = ''; + } + $i['permissions'] = OCP\PERMISSION_READ; + $files[] = $i; +} + +// Make breadcrumb +$breadcrumb = array(array('dir' => '', 'name' => 'Trash')); +$pathtohere = ''; +foreach (explode('/', $dir) as $i) { + if ($i != '') { + if ( preg_match('/^(.+)\.d[0-9]+$/', $i, $match) ) { + $name = $match[1]; + } else { + $name = $i; + } + $pathtohere .= '/' . $i; + $breadcrumb[] = array('dir' => $pathtohere, 'name' => $name); + } +} + +$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); +$breadcrumbNav->assign('breadcrumb', $breadcrumb, false); +$breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files_trashbin', 'index.php') . '?dir=', false); + +$list = new OCP\Template('files_trashbin', 'part.list', ''); +$list->assign('files', $files, false); +$list->assign('baseURL', OCP\Util::linkTo('files_trashbin', 'index.php'). '?dir='.$dir, false); +$list->assign('downloadURL', OCP\Util::linkTo('files_trashbin', 'download.php') . '?file='.$dir, false); +$list->assign('disableSharing', true); +$list->assign('dirlisting', $dirlisting); +$list->assign('disableDownloadActions', true); +$tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); +$tmpl->assign('fileList', $list->fetchPage(), false); +$tmpl->assign('files', $files); +$tmpl->assign('dir', OC_Filesystem::normalizePath($view->getAbsolutePath())); + +$tmpl->printPage(); diff --git a/apps/files_trashbin/js/disableDefaultActions.js b/apps/files_trashbin/js/disableDefaultActions.js new file mode 100644 index 00000000000..56b95407dd3 --- /dev/null +++ b/apps/files_trashbin/js/disableDefaultActions.js @@ -0,0 +1,3 @@ +/* disable download and sharing actions */ +var disableDownloadActions = true; +var disableSharing = true; diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js new file mode 100644 index 00000000000..f1241fce51e --- /dev/null +++ b/apps/files_trashbin/js/trash.js @@ -0,0 +1,158 @@ + +$(document).ready(function() { + + if (typeof FileActions !== 'undefined') { + FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/undelete.png'), function(filename) { + var tr=$('tr').filterAttr('data-file', filename); + var spinner = ''; + var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date"); + undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner; + $.post(OC.filePath('files_trashbin','ajax','undelete.php'), + {files:tr.attr('data-file'), dirlisting:tr.attr('data-dirlisting') }, + function(result){ + for (var i = 0; i < result.data.success.length; i++) { + var row = document.getElementById(result.data.success[i].filename); + row.parentNode.removeChild(row); + } + if (result.status != 'success') { + OC.dialogs.alert(result.data.message, 'Error'); + } + }); + + }); + }; + + // Sets the select_all checkbox behaviour : + $('#select_all').click(function() { + if($(this).attr('checked')){ + // Check all + $('td.filename input:checkbox').attr('checked', true); + $('td.filename input:checkbox').parent().parent().addClass('selected'); + }else{ + // Uncheck all + $('td.filename input:checkbox').attr('checked', false); + $('td.filename input:checkbox').parent().parent().removeClass('selected'); + } + processSelection(); + }); + + $('td.filename input:checkbox').live('change',function(event) { + if (event.shiftKey) { + var last = $(lastChecked).parent().parent().prevAll().length; + var first = $(this).parent().parent().prevAll().length; + var start = Math.min(first, last); + var end = Math.max(first, last); + var rows = $(this).parent().parent().parent().children('tr'); + for (var i = start; i < end; i++) { + $(rows).each(function(index) { + if (index == i) { + var checkbox = $(this).children().children('input:checkbox'); + $(checkbox).attr('checked', 'checked'); + $(checkbox).parent().parent().addClass('selected'); + } + }); + } + } + var selectedCount=$('td.filename input:checkbox:checked').length; + $(this).parent().parent().toggleClass('selected'); + if(!$(this).attr('checked')){ + $('#select_all').attr('checked',false); + }else{ + if(selectedCount==$('td.filename input:checkbox').length){ + $('#select_all').attr('checked',true); + } + } + processSelection(); + }); + + $('.undelete').click('click',function(event) { + var spinner = ''; + var files=getSelectedFiles('file'); + var fileslist=files.join(';'); + var dirlisting=getSelectedFiles('dirlisting')[0]; + + for (var i in files) { + var undeleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date"); + undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner; + } + + $.post(OC.filePath('files_trashbin','ajax','undelete.php'), + {files:fileslist, dirlisting:dirlisting}, + function(result){ + for (var i = 0; i < result.data.success.length; i++) { + var row = document.getElementById(result.data.success[i].filename); + row.parentNode.removeChild(row); + } + if (result.status != 'success') { + OC.dialogs.alert(result.data.message, 'Error'); + } + }); + }); + + +}); + +function processSelection(){ + var selected=getSelectedFiles(); + var selectedFiles=selected.filter(function(el){return el.type=='file'}); + var selectedFolders=selected.filter(function(el){return el.type=='dir'}); + if(selectedFiles.length==0 && selectedFolders.length==0) { + $('#headerName>span.name').text(t('files','Name')); + $('#modified').text(t('files','Deleted')); + $('table').removeClass('multiselect'); + $('.selectedActions').hide(); + } + else { + $('.selectedActions').show(); + var selection=''; + if(selectedFolders.length>0){ + if(selectedFolders.length==1){ + selection+=t('files','1 folder'); + }else{ + selection+=t('files','{count} folders',{count: selectedFolders.length}); + } + if(selectedFiles.length>0){ + selection+=' & '; + } + } + if(selectedFiles.length>0){ + if(selectedFiles.length==1){ + selection+=t('files','1 file'); + }else{ + selection+=t('files','{count} files',{count: selectedFiles.length}); + } + } + $('#headerName>span.name').text(selection); + $('#modified').text(''); + $('table').addClass('multiselect'); + } +} + +/** + * @brief get a list of selected files + * @param string property (option) the property of the file requested + * @return array + * + * possible values for property: name, mime, size and type + * if property is set, an array with that property for each file is returnd + * if it's ommited an array of objects with all properties is returned + */ +function getSelectedFiles(property){ + var elements=$('td.filename input:checkbox:checked').parent().parent(); + var files=[]; + elements.each(function(i,element){ + var file={ + name:$(element).attr('data-filename'), + file:$(element).attr('data-file'), + timestamp:$(element).attr('data-timestamp'), + type:$(element).attr('data-type'), + dirlisting:$(element).attr('data-dirlisting') + }; + if(property){ + files.push(file[property]); + }else{ + files.push(file); + } + }); + return files; +} \ No newline at end of file diff --git a/apps/files_trashbin/l10n/.gitkeep b/apps/files_trashbin/l10n/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apps/files_trashbin/l10n/ar.php b/apps/files_trashbin/l10n/ar.php new file mode 100644 index 00000000000..e38130fe2d3 --- /dev/null +++ b/apps/files_trashbin/l10n/ar.php @@ -0,0 +1,3 @@ + "اسم" +); diff --git a/apps/files_trashbin/l10n/bg_BG.php b/apps/files_trashbin/l10n/bg_BG.php new file mode 100644 index 00000000000..681c1dc5802 --- /dev/null +++ b/apps/files_trashbin/l10n/bg_BG.php @@ -0,0 +1,3 @@ + "Име" +); diff --git a/apps/files_trashbin/l10n/bn_BD.php b/apps/files_trashbin/l10n/bn_BD.php new file mode 100644 index 00000000000..c669eff7e1f --- /dev/null +++ b/apps/files_trashbin/l10n/bn_BD.php @@ -0,0 +1,7 @@ + "রাম", +"1 folder" => "১টি ফোল্ডার", +"{count} folders" => "{count} টি ফোল্ডার", +"1 file" => "১টি ফাইল", +"{count} files" => "{count} টি ফাইল" +); diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php new file mode 100644 index 00000000000..3af33c8a310 --- /dev/null +++ b/apps/files_trashbin/l10n/ca.php @@ -0,0 +1,11 @@ + "executa l'operació de restauració", +"Name" => "Nom", +"Deleted" => "Eliminat", +"1 folder" => "1 carpeta", +"{count} folders" => "{count} carpetes", +"1 file" => "1 fitxer", +"{count} files" => "{count} fitxers", +"Nothing in here. Your trash bin is empty!" => "La paperera està buida!", +"Restore" => "Recupera" +); diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php new file mode 100644 index 00000000000..caaaea37436 --- /dev/null +++ b/apps/files_trashbin/l10n/cs_CZ.php @@ -0,0 +1,11 @@ + "provést obnovu", +"Name" => "Název", +"Deleted" => "Smazáno", +"1 folder" => "1 složka", +"{count} folders" => "{count} složky", +"1 file" => "1 soubor", +"{count} files" => "{count} soubory", +"Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.", +"Restore" => "Obnovit" +); diff --git a/apps/files_trashbin/l10n/da.php b/apps/files_trashbin/l10n/da.php new file mode 100644 index 00000000000..3343b6fc8f6 --- /dev/null +++ b/apps/files_trashbin/l10n/da.php @@ -0,0 +1,8 @@ + "Navn", +"1 folder" => "1 mappe", +"{count} folders" => "{count} mapper", +"1 file" => "1 fil", +"{count} files" => "{count} filer", +"Restore" => "Gendan" +); diff --git a/apps/files_trashbin/l10n/de.php b/apps/files_trashbin/l10n/de.php new file mode 100644 index 00000000000..45dfb9d6057 --- /dev/null +++ b/apps/files_trashbin/l10n/de.php @@ -0,0 +1,11 @@ + "Wiederherstellung ausführen", +"Name" => "Name", +"Deleted" => "gelöscht", +"1 folder" => "1 Ordner", +"{count} folders" => "{count} Ordner", +"1 file" => "1 Datei", +"{count} files" => "{count} Dateien", +"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!", +"Restore" => "Wiederherstellen" +); diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php new file mode 100644 index 00000000000..45e30d85a3b --- /dev/null +++ b/apps/files_trashbin/l10n/de_DE.php @@ -0,0 +1,11 @@ + "Führe die Wiederherstellung aus", +"Name" => "Name", +"Deleted" => "Gelöscht", +"1 folder" => "1 Ordner", +"{count} folders" => "{count} Ordner", +"1 file" => "1 Datei", +"{count} files" => "{count} Dateien", +"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!", +"Restore" => "Wiederherstellen" +); diff --git a/apps/files_trashbin/l10n/el.php b/apps/files_trashbin/l10n/el.php new file mode 100644 index 00000000000..83e359890ea --- /dev/null +++ b/apps/files_trashbin/l10n/el.php @@ -0,0 +1,8 @@ + "Όνομα", +"1 folder" => "1 φάκελος", +"{count} folders" => "{count} φάκελοι", +"1 file" => "1 αρχείο", +"{count} files" => "{count} αρχεία", +"Restore" => "Επαναφορά" +); diff --git a/apps/files_trashbin/l10n/eo.php b/apps/files_trashbin/l10n/eo.php new file mode 100644 index 00000000000..f357e3c10c2 --- /dev/null +++ b/apps/files_trashbin/l10n/eo.php @@ -0,0 +1,8 @@ + "Nomo", +"1 folder" => "1 dosierujo", +"{count} folders" => "{count} dosierujoj", +"1 file" => "1 dosiero", +"{count} files" => "{count} dosierujoj", +"Restore" => "Restaŭri" +); diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php new file mode 100644 index 00000000000..798322cab24 --- /dev/null +++ b/apps/files_trashbin/l10n/es.php @@ -0,0 +1,8 @@ + "Nombre", +"1 folder" => "1 carpeta", +"{count} folders" => "{count} carpetas", +"1 file" => "1 archivo", +"{count} files" => "{count} archivos", +"Restore" => "Recuperar" +); diff --git a/apps/files_trashbin/l10n/es_AR.php b/apps/files_trashbin/l10n/es_AR.php new file mode 100644 index 00000000000..d2c5f304284 --- /dev/null +++ b/apps/files_trashbin/l10n/es_AR.php @@ -0,0 +1,8 @@ + "Nombre", +"1 folder" => "1 directorio", +"{count} folders" => "{count} directorios", +"1 file" => "1 archivo", +"{count} files" => "{count} archivos", +"Restore" => "Recuperar" +); diff --git a/apps/files_trashbin/l10n/et_EE.php b/apps/files_trashbin/l10n/et_EE.php new file mode 100644 index 00000000000..4f46f388020 --- /dev/null +++ b/apps/files_trashbin/l10n/et_EE.php @@ -0,0 +1,7 @@ + "Nimi", +"1 folder" => "1 kaust", +"{count} folders" => "{count} kausta", +"1 file" => "1 fail", +"{count} files" => "{count} faili" +); diff --git a/apps/files_trashbin/l10n/eu.php b/apps/files_trashbin/l10n/eu.php new file mode 100644 index 00000000000..a1e3ca53e61 --- /dev/null +++ b/apps/files_trashbin/l10n/eu.php @@ -0,0 +1,8 @@ + "Izena", +"1 folder" => "karpeta bat", +"{count} folders" => "{count} karpeta", +"1 file" => "fitxategi bat", +"{count} files" => "{count} fitxategi", +"Restore" => "Berrezarri" +); diff --git a/apps/files_trashbin/l10n/fa.php b/apps/files_trashbin/l10n/fa.php new file mode 100644 index 00000000000..487d1657985 --- /dev/null +++ b/apps/files_trashbin/l10n/fa.php @@ -0,0 +1,8 @@ + "نام", +"1 folder" => "1 پوشه", +"{count} folders" => "{ شمار} پوشه ها", +"1 file" => "1 پرونده", +"{count} files" => "{ شمار } فایل ها", +"Restore" => "بازیابی" +); diff --git a/apps/files_trashbin/l10n/fi_FI.php b/apps/files_trashbin/l10n/fi_FI.php new file mode 100644 index 00000000000..de25027f9a8 --- /dev/null +++ b/apps/files_trashbin/l10n/fi_FI.php @@ -0,0 +1,11 @@ + "suorita palautustoiminto", +"Name" => "Nimi", +"Deleted" => "Poistettu", +"1 folder" => "1 kansio", +"{count} folders" => "{count} kansiota", +"1 file" => "1 tiedosto", +"{count} files" => "{count} tiedostoa", +"Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.", +"Restore" => "Palauta" +); diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php new file mode 100644 index 00000000000..51ade82d908 --- /dev/null +++ b/apps/files_trashbin/l10n/fr.php @@ -0,0 +1,11 @@ + "effectuer l'opération de restauration", +"Name" => "Nom", +"Deleted" => "Effacé", +"1 folder" => "1 dossier", +"{count} folders" => "{count} dossiers", +"1 file" => "1 fichier", +"{count} files" => "{count} fichiers", +"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !", +"Restore" => "Restaurer" +); diff --git a/apps/files_trashbin/l10n/gl.php b/apps/files_trashbin/l10n/gl.php new file mode 100644 index 00000000000..bdc3187b20b --- /dev/null +++ b/apps/files_trashbin/l10n/gl.php @@ -0,0 +1,8 @@ + "Nome", +"1 folder" => "1 cartafol", +"{count} folders" => "{count} cartafoles", +"1 file" => "1 ficheiro", +"{count} files" => "{count} ficheiros", +"Restore" => "Restablecer" +); diff --git a/apps/files_trashbin/l10n/he.php b/apps/files_trashbin/l10n/he.php new file mode 100644 index 00000000000..d026add5d75 --- /dev/null +++ b/apps/files_trashbin/l10n/he.php @@ -0,0 +1,7 @@ + "שם", +"1 folder" => "תיקייה אחת", +"{count} folders" => "{count} תיקיות", +"1 file" => "קובץ אחד", +"{count} files" => "{count} קבצים" +); diff --git a/apps/files_trashbin/l10n/hr.php b/apps/files_trashbin/l10n/hr.php new file mode 100644 index 00000000000..52255c7429a --- /dev/null +++ b/apps/files_trashbin/l10n/hr.php @@ -0,0 +1,3 @@ + "Ime" +); diff --git a/apps/files_trashbin/l10n/hu_HU.php b/apps/files_trashbin/l10n/hu_HU.php new file mode 100644 index 00000000000..c4e2b5e2125 --- /dev/null +++ b/apps/files_trashbin/l10n/hu_HU.php @@ -0,0 +1,8 @@ + "Név", +"1 folder" => "1 mappa", +"{count} folders" => "{count} mappa", +"1 file" => "1 fájl", +"{count} files" => "{count} fájl", +"Restore" => "Visszaállítás" +); diff --git a/apps/files_trashbin/l10n/ia.php b/apps/files_trashbin/l10n/ia.php new file mode 100644 index 00000000000..c2581f3de17 --- /dev/null +++ b/apps/files_trashbin/l10n/ia.php @@ -0,0 +1,3 @@ + "Nomine" +); diff --git a/apps/files_trashbin/l10n/id.php b/apps/files_trashbin/l10n/id.php new file mode 100644 index 00000000000..1a14d8b7c21 --- /dev/null +++ b/apps/files_trashbin/l10n/id.php @@ -0,0 +1,3 @@ + "nama" +); diff --git a/apps/files_trashbin/l10n/is.php b/apps/files_trashbin/l10n/is.php new file mode 100644 index 00000000000..416f641a8ef --- /dev/null +++ b/apps/files_trashbin/l10n/is.php @@ -0,0 +1,7 @@ + "Nafn", +"1 folder" => "1 mappa", +"{count} folders" => "{count} möppur", +"1 file" => "1 skrá", +"{count} files" => "{count} skrár" +); diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php new file mode 100644 index 00000000000..7def431a42a --- /dev/null +++ b/apps/files_trashbin/l10n/it.php @@ -0,0 +1,11 @@ + "esegui operazione di ripristino", +"Name" => "Nome", +"Deleted" => "Eliminati", +"1 folder" => "1 cartella", +"{count} folders" => "{count} cartelle", +"1 file" => "1 file", +"{count} files" => "{count} file", +"Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.", +"Restore" => "Ripristina" +); diff --git a/apps/files_trashbin/l10n/ja_JP.php b/apps/files_trashbin/l10n/ja_JP.php new file mode 100644 index 00000000000..0b4e1954e74 --- /dev/null +++ b/apps/files_trashbin/l10n/ja_JP.php @@ -0,0 +1,11 @@ + "復元操作を実行する", +"Name" => "名前", +"Deleted" => "削除済み", +"1 folder" => "1 フォルダ", +"{count} folders" => "{count} フォルダ", +"1 file" => "1 ファイル", +"{count} files" => "{count} ファイル", +"Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!", +"Restore" => "復元" +); diff --git a/apps/files_trashbin/l10n/ka_GE.php b/apps/files_trashbin/l10n/ka_GE.php new file mode 100644 index 00000000000..43dba38f5c7 --- /dev/null +++ b/apps/files_trashbin/l10n/ka_GE.php @@ -0,0 +1,7 @@ + "სახელი", +"1 folder" => "1 საქაღალდე", +"{count} folders" => "{count} საქაღალდე", +"1 file" => "1 ფაილი", +"{count} files" => "{count} ფაილი" +); diff --git a/apps/files_trashbin/l10n/ko.php b/apps/files_trashbin/l10n/ko.php new file mode 100644 index 00000000000..61acd1276a7 --- /dev/null +++ b/apps/files_trashbin/l10n/ko.php @@ -0,0 +1,8 @@ + "이름", +"1 folder" => "폴더 1개", +"{count} folders" => "폴더 {count}개", +"1 file" => "파일 1개", +"{count} files" => "파일 {count}개", +"Restore" => "복원" +); diff --git a/apps/files_trashbin/l10n/ku_IQ.php b/apps/files_trashbin/l10n/ku_IQ.php new file mode 100644 index 00000000000..cbdbe4644d1 --- /dev/null +++ b/apps/files_trashbin/l10n/ku_IQ.php @@ -0,0 +1,3 @@ + "ناو" +); diff --git a/apps/files_trashbin/l10n/lb.php b/apps/files_trashbin/l10n/lb.php new file mode 100644 index 00000000000..d1bd7518663 --- /dev/null +++ b/apps/files_trashbin/l10n/lb.php @@ -0,0 +1,3 @@ + "Numm" +); diff --git a/apps/files_trashbin/l10n/lt_LT.php b/apps/files_trashbin/l10n/lt_LT.php new file mode 100644 index 00000000000..4933e97202f --- /dev/null +++ b/apps/files_trashbin/l10n/lt_LT.php @@ -0,0 +1,7 @@ + "Pavadinimas", +"1 folder" => "1 aplankalas", +"{count} folders" => "{count} aplankalai", +"1 file" => "1 failas", +"{count} files" => "{count} failai" +); diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php new file mode 100644 index 00000000000..017a8d285c0 --- /dev/null +++ b/apps/files_trashbin/l10n/lv.php @@ -0,0 +1,11 @@ + "veikt atjaunošanu", +"Name" => "Nosaukums", +"Deleted" => "Dzēsts", +"1 folder" => "1 mape", +"{count} folders" => "{count} mapes", +"1 file" => "1 datne", +"{count} files" => "{count} datnes", +"Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!", +"Restore" => "Atjaunot" +); diff --git a/apps/files_trashbin/l10n/mk.php b/apps/files_trashbin/l10n/mk.php new file mode 100644 index 00000000000..b983c341e8c --- /dev/null +++ b/apps/files_trashbin/l10n/mk.php @@ -0,0 +1,7 @@ + "Име", +"1 folder" => "1 папка", +"{count} folders" => "{count} папки", +"1 file" => "1 датотека", +"{count} files" => "{count} датотеки" +); diff --git a/apps/files_trashbin/l10n/ms_MY.php b/apps/files_trashbin/l10n/ms_MY.php new file mode 100644 index 00000000000..73e97b496e4 --- /dev/null +++ b/apps/files_trashbin/l10n/ms_MY.php @@ -0,0 +1,3 @@ + "Nama" +); diff --git a/apps/files_trashbin/l10n/nb_NO.php b/apps/files_trashbin/l10n/nb_NO.php new file mode 100644 index 00000000000..49364753d13 --- /dev/null +++ b/apps/files_trashbin/l10n/nb_NO.php @@ -0,0 +1,7 @@ + "Navn", +"1 folder" => "1 mappe", +"{count} folders" => "{count} mapper", +"1 file" => "1 fil", +"{count} files" => "{count} filer" +); diff --git a/apps/files_trashbin/l10n/nl.php b/apps/files_trashbin/l10n/nl.php new file mode 100644 index 00000000000..4efa6ecf662 --- /dev/null +++ b/apps/files_trashbin/l10n/nl.php @@ -0,0 +1,11 @@ + "uitvoeren restore operatie", +"Name" => "Naam", +"Deleted" => "Verwijderd", +"1 folder" => "1 map", +"{count} folders" => "{count} mappen", +"1 file" => "1 bestand", +"{count} files" => "{count} bestanden", +"Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!", +"Restore" => "Herstellen" +); diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php new file mode 100644 index 00000000000..be60dabdf01 --- /dev/null +++ b/apps/files_trashbin/l10n/nn_NO.php @@ -0,0 +1,3 @@ + "Namn" +); diff --git a/apps/files_trashbin/l10n/oc.php b/apps/files_trashbin/l10n/oc.php new file mode 100644 index 00000000000..2c705193c15 --- /dev/null +++ b/apps/files_trashbin/l10n/oc.php @@ -0,0 +1,3 @@ + "Nom" +); diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php new file mode 100644 index 00000000000..d2ada4c9466 --- /dev/null +++ b/apps/files_trashbin/l10n/pl.php @@ -0,0 +1,8 @@ + "Nazwa", +"1 folder" => "1 folder", +"{count} folders" => "{count} foldery", +"1 file" => "1 plik", +"{count} files" => "{count} pliki", +"Restore" => "Przywróć" +); diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php new file mode 100644 index 00000000000..db5737d9238 --- /dev/null +++ b/apps/files_trashbin/l10n/pt_BR.php @@ -0,0 +1,11 @@ + "realizar operação de restauração", +"Name" => "Nome", +"Deleted" => "Excluído", +"1 folder" => "1 pasta", +"{count} folders" => "{count} pastas", +"1 file" => "1 arquivo", +"{count} files" => "{count} arquivos", +"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!", +"Restore" => "Restaurar" +); diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php new file mode 100644 index 00000000000..79930315b0e --- /dev/null +++ b/apps/files_trashbin/l10n/pt_PT.php @@ -0,0 +1,11 @@ + "Restaurar", +"Name" => "Nome", +"Deleted" => "Apagado", +"1 folder" => "1 pasta", +"{count} folders" => "{count} pastas", +"1 file" => "1 ficheiro", +"{count} files" => "{count} ficheiros", +"Nothing in here. Your trash bin is empty!" => "Não ha ficheiros. O lixo está vazio", +"Restore" => "Restaurar" +); diff --git a/apps/files_trashbin/l10n/ro.php b/apps/files_trashbin/l10n/ro.php new file mode 100644 index 00000000000..6ece51e02cf --- /dev/null +++ b/apps/files_trashbin/l10n/ro.php @@ -0,0 +1,7 @@ + "Nume", +"1 folder" => "1 folder", +"{count} folders" => "{count} foldare", +"1 file" => "1 fisier", +"{count} files" => "{count} fisiere" +); diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php new file mode 100644 index 00000000000..23d739a2ff7 --- /dev/null +++ b/apps/files_trashbin/l10n/ru.php @@ -0,0 +1,7 @@ + "Имя", +"1 folder" => "1 папка", +"{count} folders" => "{count} папок", +"1 file" => "1 файл", +"{count} files" => "{count} файлов" +); diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php new file mode 100644 index 00000000000..8ef2658cf24 --- /dev/null +++ b/apps/files_trashbin/l10n/ru_RU.php @@ -0,0 +1,7 @@ + "Имя", +"1 folder" => "1 папка", +"{count} folders" => "{количество} папок", +"1 file" => "1 файл", +"{count} files" => "{количество} файлов" +); diff --git a/apps/files_trashbin/l10n/si_LK.php b/apps/files_trashbin/l10n/si_LK.php new file mode 100644 index 00000000000..cb351afaec9 --- /dev/null +++ b/apps/files_trashbin/l10n/si_LK.php @@ -0,0 +1,5 @@ + "නම", +"1 folder" => "1 ෆොල්ඩරයක්", +"1 file" => "1 ගොනුවක්" +); diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php new file mode 100644 index 00000000000..81d43614d7b --- /dev/null +++ b/apps/files_trashbin/l10n/sk_SK.php @@ -0,0 +1,11 @@ + "vykonať obnovu", +"Name" => "Meno", +"Deleted" => "Zmazané", +"1 folder" => "1 priečinok", +"{count} folders" => "{count} priečinkov", +"1 file" => "1 súbor", +"{count} files" => "{count} súborov", +"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!", +"Restore" => "Obnoviť" +); diff --git a/apps/files_trashbin/l10n/sl.php b/apps/files_trashbin/l10n/sl.php new file mode 100644 index 00000000000..2579f95c862 --- /dev/null +++ b/apps/files_trashbin/l10n/sl.php @@ -0,0 +1,7 @@ + "Ime", +"1 folder" => "1 mapa", +"{count} folders" => "{count} map", +"1 file" => "1 datoteka", +"{count} files" => "{count} datotek" +); diff --git a/apps/files_trashbin/l10n/sr.php b/apps/files_trashbin/l10n/sr.php new file mode 100644 index 00000000000..36659e70803 --- /dev/null +++ b/apps/files_trashbin/l10n/sr.php @@ -0,0 +1,11 @@ + "врати у претходно стање", +"Name" => "Име", +"Deleted" => "Обрисано", +"1 folder" => "1 фасцикла", +"{count} folders" => "{count} фасцикле/и", +"1 file" => "1 датотека", +"{count} files" => "{count} датотеке/а", +"Nothing in here. Your trash bin is empty!" => "Овде нема ништа. Корпа за отпатке је празна.", +"Restore" => "Врати" +); diff --git a/apps/files_trashbin/l10n/sr@latin.php b/apps/files_trashbin/l10n/sr@latin.php new file mode 100644 index 00000000000..52255c7429a --- /dev/null +++ b/apps/files_trashbin/l10n/sr@latin.php @@ -0,0 +1,3 @@ + "Ime" +); diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php new file mode 100644 index 00000000000..ca4dba04967 --- /dev/null +++ b/apps/files_trashbin/l10n/sv.php @@ -0,0 +1,10 @@ + "Namn", +"Deleted" => "Raderad", +"1 folder" => "1 mapp", +"{count} folders" => "{count} mappar", +"1 file" => "1 fil", +"{count} files" => "{count} filer", +"Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!", +"Restore" => "Återskapa" +); diff --git a/apps/files_trashbin/l10n/ta_LK.php b/apps/files_trashbin/l10n/ta_LK.php new file mode 100644 index 00000000000..a436e2344a4 --- /dev/null +++ b/apps/files_trashbin/l10n/ta_LK.php @@ -0,0 +1,7 @@ + "பெயர்", +"1 folder" => "1 கோப்புறை", +"{count} folders" => "{எண்ணிக்கை} கோப்புறைகள்", +"1 file" => "1 கோப்பு", +"{count} files" => "{எண்ணிக்கை} கோப்புகள்" +); diff --git a/apps/files_trashbin/l10n/th_TH.php b/apps/files_trashbin/l10n/th_TH.php new file mode 100644 index 00000000000..8a031fb0d70 --- /dev/null +++ b/apps/files_trashbin/l10n/th_TH.php @@ -0,0 +1,11 @@ + "ดำเนินการคืนค่า", +"Name" => "ชื่อ", +"Deleted" => "ลบแล้ว", +"1 folder" => "1 โฟลเดอร์", +"{count} folders" => "{count} โฟลเดอร์", +"1 file" => "1 ไฟล์", +"{count} files" => "{count} ไฟล์", +"Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่", +"Restore" => "คืนค่า" +); diff --git a/apps/files_trashbin/l10n/tr.php b/apps/files_trashbin/l10n/tr.php new file mode 100644 index 00000000000..5b7064eceaf --- /dev/null +++ b/apps/files_trashbin/l10n/tr.php @@ -0,0 +1,7 @@ + "İsim", +"1 folder" => "1 dizin", +"{count} folders" => "{count} dizin", +"1 file" => "1 dosya", +"{count} files" => "{count} dosya" +); diff --git a/apps/files_trashbin/l10n/uk.php b/apps/files_trashbin/l10n/uk.php new file mode 100644 index 00000000000..14c6931255a --- /dev/null +++ b/apps/files_trashbin/l10n/uk.php @@ -0,0 +1,7 @@ + "Ім'я", +"1 folder" => "1 папка", +"{count} folders" => "{count} папок", +"1 file" => "1 файл", +"{count} files" => "{count} файлів" +); diff --git a/apps/files_trashbin/l10n/vi.php b/apps/files_trashbin/l10n/vi.php new file mode 100644 index 00000000000..2c51c69aaf2 --- /dev/null +++ b/apps/files_trashbin/l10n/vi.php @@ -0,0 +1,7 @@ + "Tên", +"1 folder" => "1 thư mục", +"{count} folders" => "{count} thư mục", +"1 file" => "1 tập tin", +"{count} files" => "{count} tập tin" +); diff --git a/apps/files_trashbin/l10n/zh_CN.GB2312.php b/apps/files_trashbin/l10n/zh_CN.GB2312.php new file mode 100644 index 00000000000..2c6a7891e98 --- /dev/null +++ b/apps/files_trashbin/l10n/zh_CN.GB2312.php @@ -0,0 +1,7 @@ + "名称", +"1 folder" => "1 个文件夹", +"{count} folders" => "{count} 个文件夹", +"1 file" => "1 个文件", +"{count} files" => "{count} 个文件" +); diff --git a/apps/files_trashbin/l10n/zh_CN.php b/apps/files_trashbin/l10n/zh_CN.php new file mode 100644 index 00000000000..0060b1f31d6 --- /dev/null +++ b/apps/files_trashbin/l10n/zh_CN.php @@ -0,0 +1,7 @@ + "名称", +"1 folder" => "1个文件夹", +"{count} folders" => "{count} 个文件夹", +"1 file" => "1 个文件", +"{count} files" => "{count} 个文件" +); diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php new file mode 100644 index 00000000000..be61d9b0b6d --- /dev/null +++ b/apps/files_trashbin/l10n/zh_TW.php @@ -0,0 +1,7 @@ + "名稱", +"1 folder" => "1 個資料夾", +"{count} folders" => "{count} 個資料夾", +"1 file" => "1 個檔案", +"{count} files" => "{count} 個檔案" +); diff --git a/apps/files_trashbin/lib/hooks.php b/apps/files_trashbin/lib/hooks.php new file mode 100644 index 00000000000..d3bee105b51 --- /dev/null +++ b/apps/files_trashbin/lib/hooks.php @@ -0,0 +1,45 @@ +. + * + */ + +/** + * This class contains all hooks. + */ + +namespace OCA_Trash; + +class Hooks { + + /** + * @brief Copy files to trash bin + * @param array + * + * This function is connected to the delete signal of OC_Filesystem + * to copy the file to the trash bin + */ + public static function remove_hook($params) { + + if ( \OCP\App::isEnabled('files_trashbin') ) { + $path = $params['path']; + Trashbin::move2trash($path); + } + } +} diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php new file mode 100644 index 00000000000..a7eff3d44e0 --- /dev/null +++ b/apps/files_trashbin/lib/trash.php @@ -0,0 +1,264 @@ +. + * + */ + +namespace OCA_Trash; + +class Trashbin { + + const DEFAULT_RETENTION_OBLIGATION=180; // how long do we keep files in the trash bin if no other value is defined in the config file (unit: days) + /** + * move file to the trash bin + * + * @param $file_path path to the deleted file/directory relative to the files root directory + */ + public static function move2trash($file_path) { + $user = \OCP\User::getUser(); + $view = new \OC_FilesystemView('/'. $user); + if (!$view->is_dir('files_trashbin')) { + $view->mkdir('files_trashbin'); + $view->mkdir("versions_trashbin"); + } + + $path_parts = pathinfo($file_path); + + $deleted = $path_parts['basename']; + $location = $path_parts['dirname']; + $timestamp = time(); + $mime = $view->getMimeType('files'.$file_path); + + if ( $view->is_dir('files'.$file_path) ) { + $type = 'dir'; + } else { + $type = 'file'; + } + + self::copy_recursive($file_path, 'files_trashbin/'.$deleted.'.d'.$timestamp, $view); + + if ( $view->file_exists('files_trashbin/'.$deleted.'.d'.$timestamp) ) { + $query = \OC_DB::prepare("INSERT INTO *PREFIX*files_trash (id,timestamp,location,type,mime,user) VALUES (?,?,?,?,?,?)"); + $result = $query->execute(array($deleted, $timestamp, $location, $type, $mime, $user)); + if ( !$result ) { // if file couldn't be added to the database than also don't store it in the trash bin. + $view->deleteAll('files_trashbin/'.$deleted.'.d'.$timestamp); + \OC_Log::write('files_trashbin', 'trash bin database couldn\'t be updated', \OC_log::ERROR); + return; + } + + if ( \OCP\App::isEnabled('files_versions') ) { + if ( $view->is_dir('files_versions'.$file_path) ) { + $view->rename('files_versions'.$file_path, 'versions_trashbin/'. $deleted.'.d'.$timestamp); + } else if ( $versions = \OCA_Versions\Storage::getVersions($file_path) ) { + foreach ($versions as $v) { + $view->rename('files_versions'.$v['path'].'.v'.$v['version'], 'versions_trashbin/'. $deleted.'.v'.$v['version'].'.d'.$timestamp); + } + } + } + } else { + \OC_Log::write('files_trashbin', 'Couldn\'t move '.$file_path.' to the trash bin' , \OC_log::ERROR); + } + + self::expire(); + } + + + /** + * restore files from trash bin + * @param $file path to the deleted file + * @param $filename name of the file + * @param $timestamp time when the file was deleted + */ + public static function restore($file, $filename, $timestamp) { + + $user = \OCP\User::getUser(); + $view = new \OC_FilesystemView('/'.$user); + + if ( $timestamp ) { + $query = \OC_DB::prepare('SELECT location,type FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?'); + $result = $query->execute(array($user,$filename,$timestamp))->fetchAll(); + if ( count($result) != 1 ) { + \OC_Log::write('files_trashbin', 'trash bin database inconsistent!', \OC_Log::ERROR); + return false; + } + + // if location no longer exists, restore file in the root directory + $location = $result[0]['location']; + if ( $result[0]['location'] != '/' && + (!$view->is_dir('files'.$result[0]['location']) || + !$view->isUpdatable('files'.$result[0]['location'])) ) { + $location = ''; + } + } else { + $path_parts = pathinfo($filename); + $result[] = array( + 'location' => $path_parts['dirname'], + 'type' => $view->is_dir('/files_trashbin/'.$file) ? 'dir' : 'files', + ); + $location = ''; + } + + $source = \OC_Filesystem::normalizePath('files_trashbin/'.$file); + $target = \OC_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); + $mtime = $view->filemtime($source); + if( $view->rename($source, $target.$ext) ) { + $view->touch($target.$ext, $mtime); + // if versioning app is enabled, copy versions from the trash bin back to the original location + if ( \OCP\App::isEnabled('files_versions') ) { + if ( $result[0]['type'] == 'dir' ) { + $view->rename(\OC_Filesystem::normalizePath('versions_trashbin/'. $file), \OC_Filesystem::normalizePath('files_versions/'.$location.'/'.$filename.$ext)); + } else if ( $versions = self::getVersionsFromTrash($file, $timestamp) ) { + foreach ($versions as $v) { + if ($timestamp ) { + $view->rename('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + } else { + $view->rename('versions_trashbin/'.$file.'.v'.$v, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + } + } + } + } + + if ( $timestamp ) { + $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?'); + $query->execute(array($user,$filename,$timestamp)); + } + + return true; + } else { + \OC_Log::write('files_trashbin', 'Couldn\'t restore file from trash bin, '.$filename , \OC_log::ERROR); + } + + return false; + } + + /** + * clean up the trash bin + */ + private static function expire() { + + $view = new \OC_FilesystemView('/'.\OCP\User::getUser()); + $user = \OCP\User::getUser(); + + $query = \OC_DB::prepare('SELECT location,type,id,timestamp FROM *PREFIX*files_trash WHERE user=?'); + $result = $query->execute(array($user))->fetchAll(); + + $retention_obligation = \OC_Config::getValue('trashbin_retention_obligation', self::DEFAULT_RETENTION_OBLIGATION); + + $limit = time() - ($retention_obligation * 86400); + + foreach ( $result as $r ) { + $timestamp = $r['timestamp']; + $filename = $r['id']; + if ( $r['timestamp'] < $limit ) { + $view->unlink('files_trashbin/'.$filename.'.d'.$timestamp); + if ($r['type'] == 'dir') { + $view->unlink('versions_trashbin/'.$filename.'.d'.$timestamp); + } else if ( $versions = self::getVersionsFromTrash($filename, $timestamp) ) { + foreach ($versions as $v) { + $view->unlink('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp); + } + } + } + } + + $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND timestampexecute(array($user,$limit)); + } + + /** + * recursive copy to copy a whole directory + * + * @param $source source path, relative to the users files directory + * @param $destination destination path relative to the users root directoy + * @param $view file view for the users root directory + */ + private static function copy_recursive( $source, $destination, $view ) { + if ( $view->is_dir( 'files'.$source ) ) { + $view->mkdir( $destination ); + $view->touch($destination, $view->filemtime('files'.$source)); + foreach ( \OC_Files::getDirectoryContent($source) as $i ) { + $pathDir = $source.'/'.$i['name']; + if ( $view->is_dir('files'.$pathDir) ) { + self::copy_recursive($pathDir, $destination.'/'.$i['name'], $view); + } else { + $view->copy( 'files'.$pathDir, $destination . '/' . $i['name'] ); + $view->touch($destination . '/' . $i['name'], $view->filemtime('files'.$pathDir)); + } + } + } else { + $view->copy( 'files'.$source, $destination ); + $view->touch($destination, $view->filemtime('files'.$source)); + } + } + + /** + * find all versions which belong to the file we want to restore + * @param $filename name of the file which should be restored + * @param $timestamp timestamp when the file was deleted + */ + private static function getVersionsFromTrash($filename, $timestamp) { + $view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/versions_trashbin'); + $versionsName = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath($filename); + $versions = array(); + + if ($timestamp ) { + // fetch for old versions + $matches = glob( $versionsName.'.v*.d'.$timestamp ); + $offset = -strlen($timestamp)-2; + } else { + $matches = glob( $versionsName.'.v*' ); + } + + foreach( $matches as $ma ) { + if ( $timestamp ) { + $parts = explode( '.v', substr($ma, 0, $offset) ); + $versions[] = ( end( $parts ) ); + } else { + $parts = explode( '.v', $ma ); + $versions[] = ( end( $parts ) ); + } + } + return $versions; + } + + /** + * find unique extension for restored file if a file with the same name already exists + * @param $location where the file should be restored + * @param $filename name of the file + * @param $view filesystem view relative to users root directory + * @return string with unique extension + */ + private static function getUniqueExtension($location, $filename, $view) { + $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++; + } + } + return $ext; + } + +} diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php new file mode 100644 index 00000000000..c3e51b4becd --- /dev/null +++ b/apps/files_trashbin/templates/index.php @@ -0,0 +1,34 @@ + +
+ +
+
+
+ + +
t('Nothing in here. Your trash bin is empty!')?>
+ + + + + + + + + + + + +
+ + t( 'Name' ); ?> + + + <?php echo $l->t( 'Restore' ); ?>" /> + t('Restore')?> + + + + t( 'Deleted' ); ?> +
diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php new file mode 100644 index 00000000000..fe8a71f44e6 --- /dev/null +++ b/apps/files_trashbin/templates/part.list.php @@ -0,0 +1,76 @@ + +200) $relative_date_color = 200; + $name = str_replace('+', '%20', urlencode($file['name'])); + $name = str_replace('%2F', '/', $name); + $directory = str_replace('+', '%20', urlencode($file['directory'])); + $directory = str_replace('%2F', '/', $directory); ?> + ' + + id="" + data-file="" + data-timestamp='' + data-dirlisting=1 + + id="" + data-file="" + data-timestamp='' + data-dirlisting=0 + > + + style="background-image:url()" + + style="background-image:url()" + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Versions AGPL Frank Karlitschek - 4.9 + 4.91 true Versioning of files diff --git a/apps/files_versions/l10n/fa.php b/apps/files_versions/l10n/fa.php index 98dd415969a..9b618fdd320 100644 --- a/apps/files_versions/l10n/fa.php +++ b/apps/files_versions/l10n/fa.php @@ -1,3 +1,4 @@ "انقضای تمامی نسخه‌ها" +"History" => "تاریخچه", +"Enable" => "فعال" ); diff --git a/apps/files_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php new file mode 100644 index 00000000000..ae2ead12f4c --- /dev/null +++ b/apps/files_versions/l10n/lv.php @@ -0,0 +1,5 @@ + "Vēsture", +"Files Versioning" => "Datņu versiju izskošana", +"Enable" => "Aktivēt" +); diff --git a/apps/files_versions/l10n/sr.php b/apps/files_versions/l10n/sr.php new file mode 100644 index 00000000000..0195f84567f --- /dev/null +++ b/apps/files_versions/l10n/sr.php @@ -0,0 +1,5 @@ + "Историја", +"Files Versioning" => "Прављење верзија датотека", +"Enable" => "Омогући" +); diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php index 5fb9dc3c3c5..5cefc532895 100644 --- a/apps/files_versions/lib/hooks.php +++ b/apps/files_versions/lib/hooks.php @@ -21,9 +21,9 @@ class Hooks { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - $versions = new Storage( new \OC_FilesystemView('') ); + $versions = new Storage( new \OC\Files\View('') ); - $path = $params[\OC_Filesystem::signal_param_path]; + $path = $params[\OC\Files\Filesystem::signal_param_path]; if($path<>'') $versions->store( $path ); @@ -39,15 +39,15 @@ class Hooks { * cleanup the versions directory if the actual file gets deleted */ public static function remove_hook($params) { - if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - - $versions = new Storage( new \OC_FilesystemView('') ); - - $path = $params[\OC_Filesystem::signal_param_path]; - - if($path<>'') $versions->delete( $path ); - - } + if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { + + $versions = new Storage( new \OC_FilesystemView('') ); + + $path = $params[\OC\Files\Filesystem::signal_param_path]; + + if($path<>'') $versions->delete( $path ); + + } } /** @@ -58,15 +58,15 @@ class Hooks { * of the stored versions along the actual file */ public static function rename_hook($params) { - if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - - $versions = new Storage( new \OC_FilesystemView('') ); - + if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { + + $versions = new Storage( new \OC_FilesystemView('') ); + $oldpath = $params['oldpath']; - $newpath = $params['newpath']; - - if($oldpath<>'' && $newpath<>'') $versions->rename( $oldpath, $newpath ); - + $newpath = $params['newpath']; + + if($oldpath<>'' && $newpath<>'') $versions->rename( $oldpath, $newpath ); + } } diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 48be5e223ac..003d548d2b2 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -23,15 +23,15 @@ class Storage { private static $max_versions_per_interval = array( 1 => array('intervalEndsAfter' => 10, //first 10sec, one version every 2sec 'step' => 2), - 2 => array('intervalEndsAfter' => 60, //next minute, one version every 10sec + 2 => array('intervalEndsAfter' => 60, //next minute, one version every 10sec 'step' => 10), 3 => array('intervalEndsAfter' => 3600, //next hour, one version every minute 'step' => 60), 4 => array('intervalEndsAfter' => 86400, //next 24h, one version every hour 'step' => 3600), - 5 => array('intervalEndsAfter' => 2592000, //next 30days, one version per day + 5 => array('intervalEndsAfter' => 2592000, //next 30days, one version per day 'step' => 86400), - 6 => array('intervalEndsAfter' => -1, //until the end one version per week + 6 => array('intervalEndsAfter' => -1, //until the end one version per week 'step' => 604800), ); @@ -58,8 +58,8 @@ class Storage { public function store($filename) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { list($uid, $filename) = self::getUidAndFilename($filename); - $files_view = new \OC_FilesystemView('/'.$uid .'/files'); - $users_view = new \OC_FilesystemView('/'.$uid); + $files_view = new \OC\Files\View('/'.\OCP\User::getUser() .'/files'); + $users_view = new \OC\Files\View('/'.\OCP\User::getUser()); //check if source file already exist as version to avoid recursions. // todo does this check work? @@ -86,8 +86,8 @@ class Storage { // store a new version of a file $result = $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); - if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { - $versionsSize = self::calculateSize($uid); + if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { + $versionsSize = self::calculateSize($uid); } $versionsSize += $users_view->filesize('files'.$filename); @@ -105,42 +105,42 @@ class Storage { * Delete versions of a file */ public static function delete($filename) { - list($uid, $filename) = self::getUidAndFilename($filename); + list($uid, $filename) = self::getUidAndFilename($filename); $versions_fileview = new \OC_FilesystemView('/'.$uid .'/files_versions'); - - $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v'; - if( ($versions = self::getVersions($filename)) ) { - if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { - $versionsSize = self::calculateSize($uid); - } - foreach ($versions as $v) { - unlink($abs_path . $v['version']); - $versionsSize -= $v['size']; - } - \OCP\Config::setAppValue('files_versions', 'size', $versionsSize); + + $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v'; + if( ($versions = self::getVersions($filename)) ) { + if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { + $versionsSize = self::calculateSize($uid); + } + foreach ($versions as $v) { + unlink($abs_path . $v['version']); + $versionsSize -= $v['size']; + } + \OCP\Config::setAppValue('files_versions', 'size', $versionsSize); } } - /** - * rename versions of a file - */ - public static function rename($oldpath, $newpath) { + /** + * rename versions of a file + */ + public static function rename($oldpath, $newpath) { list($uid, $oldpath) = self::getUidAndFilename($oldpath); - list($uidn, $newpath) = self::getUidAndFilename($newpath); + list($uidn, $newpath) = self::getUidAndFilename($newpath); $versions_view = new \OC_FilesystemView('/'.$uid .'/files_versions'); $files_view = new \OC_FilesystemView('/'.$uid .'/files'); - $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_view->getAbsolutePath('').$newpath; - + $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_view->getAbsolutePath('').$newpath; + if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) { $versions_view->rename($oldpath, $newpath); - } else if ( ($versions = Storage::getVersions($oldpath)) ) { - $info=pathinfo($abs_newpath); - if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true); - $versions = Storage::getVersions($oldpath); + } else if ( ($versions = Storage::getVersions($oldpath)) ) { + $info=pathinfo($abs_newpath); + if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true); + $versions = Storage::getVersions($oldpath); foreach ($versions as $v) { - $versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']); - } - } + $versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']); + } + } } /** @@ -150,7 +150,7 @@ class Storage { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { list($uid, $filename) = self::getUidAndFilename($filename); - $users_view = new \OC_FilesystemView('/'.$uid); + $users_view = new \OC\Files\View('/'.$uid); $versionCreated = false; //first create a new version @@ -184,7 +184,7 @@ class Storage { public static function getVersions( $filename, $count = 0 ) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); + $versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions'); $versionsName = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename); $versions = array(); @@ -202,7 +202,7 @@ class Storage { $key = $version.'#'.$filename; $versions[$key]['cur'] = 0; $versions[$key]['version'] = $version; - $versions[$key]['path'] = $filename; + $versions[$key]['path'] = $filename; $versions[$key]['size'] = $versions_fileview->filesize($filename.'.v'.$version); // if file with modified date exists, flag it in array as currently enabled version @@ -236,29 +236,29 @@ class Storage { } - /** - * @brief get the size of all stored versions from a given user - * @param $uid id from the user - * @return size of vesions - */ - private static function calculateSize($uid) { - if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { - $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); - $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); - - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); - + /** + * @brief get the size of all stored versions from a given user + * @param $uid id from the user + * @return size of vesions + */ + private static function calculateSize($uid) { + if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { + $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); + $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); + + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); + $size = 0; - - foreach ($iterator as $path) { - if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) { + + foreach ($iterator as $path) { + if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) { $relpath = substr($path, strlen($versionsRoot)-1); - $size += $versions_fileview->filesize($relpath); - } + $size += $versions_fileview->filesize($relpath); + } } - return $size; - } + return $size; + } } /** @@ -267,11 +267,11 @@ class Storage { * @return array with contains two arrays 'all' which contains all versions sorted by age and 'by_file' which contains all versions sorted by filename */ private static function getAllVersions($uid) { - if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { + if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); $versions = array(); @@ -280,7 +280,7 @@ class Storage { $relpath = substr($path, strlen($versionsRoot)-1); $versions[$match[1].'#'.$relpath] = array('path' => $relpath, 'timestamp' => $match[1]); } - } + } ksort($versions); @@ -288,20 +288,20 @@ class Storage { $result = array(); - foreach( $versions as $key => $value ) { + foreach( $versions as $key => $value ) { $i++; $size = $versions_fileview->filesize($value['path']); $filename = substr($value['path'], 0, -strlen($value['timestamp'])-2); - + $result['all'][$key]['version'] = $value['timestamp']; - $result['all'][$key]['path'] = $filename; + $result['all'][$key]['path'] = $filename; $result['all'][$key]['size'] = $size; $filename = substr($value['path'], 0, -strlen($value['timestamp'])-2); $result['by_file'][$filename][$key]['version'] = $value['timestamp']; - $result['by_file'][$filename][$key]['path'] = $filename; + $result['by_file'][$filename][$key]['path'] = $filename; $result['by_file'][$filename][$key]['size'] = $size; - + } return $result; @@ -322,7 +322,7 @@ class Storage { $quota = \OCP\Util::computerFileSize(\OC_Appconfig::getValue('files', 'default_quota')); } if ( $quota == null ) { - $quota = \OC_Filesystem::free_space('/'); + $quota = \OC\Files\Filesystem::free_space('/'); } // make sure that we have the current size of the version history @@ -332,7 +332,7 @@ class Storage { } } - // calculate available space for version history + // calculate available space for version history $rootInfo = \OC_FileCache::get('', '/'. $uid . '/files'); $free = $quota-$rootInfo['size']; // remaining free space for user if ( $free > 0 ) { @@ -394,7 +394,7 @@ class Storage { $nextVersion = $prevTimestamp - $step; if ( Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1 ) { $nextInterval = -1; - } else { + } else { $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter']; } $newInterval = true; // we changed the interval -> check same version with new interval diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php new file mode 100644 index 00000000000..b7d633a049d --- /dev/null +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -0,0 +1,35 @@ +. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$prefix = $_POST['ldap_serverconfig_chooser']; +if(\OCA\user_ldap\lib\Helper::deleteServerConfiguration($prefix)){ + OCP\JSON::success(); +} else { + $l=OC_L10N::get('user_ldap'); + OCP\JSON::error(array('message' => $l->t('Failed to delete the server configuration'))); +} \ No newline at end of file diff --git a/apps/user_ldap/ajax/getConfiguration.php b/apps/user_ldap/ajax/getConfiguration.php new file mode 100644 index 00000000000..dfae68d2dc9 --- /dev/null +++ b/apps/user_ldap/ajax/getConfiguration.php @@ -0,0 +1,31 @@ +. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$prefix = $_POST['ldap_serverconfig_chooser']; +$connection = new \OCA\user_ldap\lib\Connection($prefix); +OCP\JSON::success(array('configuration' => $connection->getConfiguration())); \ No newline at end of file diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php new file mode 100644 index 00000000000..17e78f87072 --- /dev/null +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -0,0 +1,34 @@ +. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$serverConnections = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(); +sort($serverConnections); +$lk = array_pop($serverConnections); +$ln = intval(str_replace('s', '', $lk)); +$nk = 's'.str_pad($ln+1, 2, '0', STR_PAD_LEFT); +OCP\JSON::success(array('configPrefix' => $nk)); \ No newline at end of file diff --git a/apps/user_ldap/ajax/setConfiguration.php b/apps/user_ldap/ajax/setConfiguration.php new file mode 100644 index 00000000000..206487c7e0a --- /dev/null +++ b/apps/user_ldap/ajax/setConfiguration.php @@ -0,0 +1,33 @@ +. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$prefix = $_POST['ldap_serverconfig_chooser']; +$connection = new \OCA\user_ldap\lib\Connection($prefix); +$connection->setConfiguration($_POST); +$connection->saveConfiguration(); +OCP\JSON::success(); \ No newline at end of file diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index a82f7e4c17b..f8038e31469 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -4,7 +4,7 @@ * ownCloud - user_ldap * * @author Arthur Schiwon - * @copyright 2012 Arthur Schiwon blizzz@owncloud.com + * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -26,14 +26,16 @@ OCP\JSON::checkAdminUser(); OCP\JSON::checkAppEnabled('user_ldap'); OCP\JSON::callCheck(); -$connection = new \OCA\user_ldap\lib\Connection(null); +$l=OC_L10N::get('user_ldap'); + +$connection = new \OCA\user_ldap\lib\Connection('', null); if($connection->setConfiguration($_POST)) { //Configuration is okay if($connection->bind()) { - OCP\JSON::success(array('message' => 'The configuration is valid and the connection could be established!')); + OCP\JSON::success(array('message' => $l->t('The configuration is valid and the connection could be established!'))); } else { - OCP\JSON::error(array('message' => 'The configuration is valid, but the Bind failed. Please check the server settings and credentials.')); + OCP\JSON::error(array('message' => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.'))); } } else { - OCP\JSON::error(array('message' => 'The configuration is invalid. Please look in the ownCloud log for further details.')); + OCP\JSON::error(array('message' => $l->t('The configuration is invalid. Please look in the ownCloud log for further details.'))); } diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index ce3079da0ba..dec87684c9e 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -23,15 +23,23 @@ OCP\App::registerAdmin('user_ldap', 'settings'); -$connector = new OCA\user_ldap\lib\Connection('user_ldap'); -$userBackend = new OCA\user_ldap\USER_LDAP(); -$userBackend->setConnector($connector); -$groupBackend = new OCA\user_ldap\GROUP_LDAP(); -$groupBackend->setConnector($connector); +$configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); +if(count($configPrefixes) == 1) { + $connector = new OCA\user_ldap\lib\Connection($configPrefixes[0]); + $userBackend = new OCA\user_ldap\USER_LDAP(); + $userBackend->setConnector($connector); + $groupBackend = new OCA\user_ldap\GROUP_LDAP(); + $groupBackend->setConnector($connector); +} else { + $userBackend = new OCA\user_ldap\User_Proxy($configPrefixes); + $groupBackend = new OCA\user_ldap\Group_Proxy($configPrefixes); +} -// register user backend -OC_User::useBackend($userBackend); -OC_Group::useBackend($groupBackend); +if(count($configPrefixes) > 0) { + // register user backend + OC_User::useBackend($userBackend); + OC_Group::useBackend($groupBackend); +} // add settings page to navigation $entry = array( diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml index a7605775274..53269edfb34 100644 --- a/apps/user_ldap/appinfo/info.xml +++ b/apps/user_ldap/appinfo/info.xml @@ -7,7 +7,7 @@ This app is not compatible to the WebDAV user backend. AGPL Dominik Schmidt and Arthur Schiwon - 4.9 + 4.91 true diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index 9b54ba18b6c..f9681e38e68 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -5,7 +5,7 @@ //ATTENTION //Upgrade from ownCloud 3 (LDAP backend 0.1) to ownCloud 4.5 (LDAP backend 0.3) is not supported!! //You must do upgrade to ownCloud 4.0 first! -//The upgrade stuff in the section from 0.1 to 0.2 is just to minimize the bad efffects. +//The upgrade stuff in the section from 0.1 to 0.2 is just to minimize the bad effects. //settings $pw = OCP\Config::getAppValue('user_ldap', 'ldap_password'); @@ -22,12 +22,10 @@ if($state == 'unset') { OCP\Config::setSystemValue('ldapIgnoreNamingRules', false); } -// ### SUPPORTED upgrade path starts here ### - //from version 0.2 to 0.3 (0.2.0.x dev version) $objects = array('user', 'group'); -$connector = new \OCA\user_ldap\lib\Connection('user_ldap'); +$connector = new \OCA\user_ldap\lib\Connection(); $userBE = new \OCA\user_ldap\USER_LDAP(); $userBE->setConnector($connector); $groupBE = new \OCA\user_ldap\GROUP_LDAP(); @@ -80,3 +78,13 @@ function escapeDN($dn) { return $dn; } + + +// SUPPORTED UPGRADE FROM Version 0.3 (ownCloud 4.5) to 0.4 (ownCloud 5) + +if(!isset($connector)) { + $connector = new \OCA\user_ldap\lib\Connection(); +} +//it is required, that connections do have ldap_configuration_active setting stored in the database +$connector->getConfiguration(); +$connector->saveConfiguration(); \ No newline at end of file diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version index b1a5f4781d1..705e30728e0 100644 --- a/apps/user_ldap/appinfo/version +++ b/apps/user_ldap/appinfo/version @@ -1 +1 @@ -0.3.0.1 \ No newline at end of file +0.3.9.0 \ No newline at end of file diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 63437310088..02ceecaea0b 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -171,7 +171,6 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { return array(); } - $search = empty($search) ? '*' : '*'.$search.'*'; $groupUsers = array(); $isMemberUid = (strtolower($this->connection->ldapGroupMemberAssocAttr) == 'memberuid'); foreach($members as $member) { @@ -179,7 +178,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { //we got uids, need to get their DNs to 'tranlsate' them to usernames $filter = $this->combineFilterWithAnd(array( \OCP\Util::mb_str_replace('%uid', $member, $this->connection>ldapLoginFilter, 'UTF-8'), - $this->connection->ldapUserDisplayName.'='.$search + $this->getFilterPartForUserSearch($search) )); $ldap_users = $this->fetchListOfUsers($filter, 'dn'); if(count($ldap_users) < 1) { @@ -188,8 +187,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { $groupUsers[] = $this->dn2username($ldap_users[0]); } else { //we got DNs, check if we need to filter by search or we can give back all of them - if($search != '*') { - if(!$this->readAttribute($member, $this->connection->ldapUserDisplayName, $this->connection->ldapUserDisplayName.'='.$search)) { + if(!empty($search)) { + if(!$this->readAttribute($member, $this->connection->ldapUserDisplayName, $this->getFilterPartForUserSearch($search))) { continue; } } @@ -230,10 +229,9 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { if($limit <= 0) { $limit = null; } - $search = empty($search) ? '*' : '*'.$search.'*'; $filter = $this->combineFilterWithAnd(array( $this->connection->ldapGroupFilter, - $this->connection->ldapGroupDisplayName.'='.$search + $this->getFilterPartForGroupSearch($search) )); \OCP\Util::writeLog('user_ldap', 'getGroups Filter '.$filter, \OCP\Util::DEBUG); $ldap_groups = $this->fetchListOfGroups($filter, array($this->connection->ldapGroupDisplayName, 'dn'), $limit, $offset); diff --git a/apps/user_ldap/group_proxy.php b/apps/user_ldap/group_proxy.php new file mode 100644 index 00000000000..5aa1aef0e0e --- /dev/null +++ b/apps/user_ldap/group_proxy.php @@ -0,0 +1,178 @@ +. + * + */ + +namespace OCA\user_ldap; + +class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface { + private $backends = array(); + private $refBackend = null; + + /** + * @brief Constructor + * @param $serverConfigPrefixes array containing the config Prefixes + */ + public function __construct($serverConfigPrefixes) { + parent::__construct(); + foreach($serverConfigPrefixes as $configPrefix) { + $this->backends[$configPrefix] = new \OCA\user_ldap\GROUP_LDAP(); + $connector = $this->getConnector($configPrefix); + $this->backends[$configPrefix]->setConnector($connector); + if(is_null($this->refBackend)) { + $this->refBackend = &$this->backends[$configPrefix]; + } + } + } + + /** + * @brief Tries the backends one after the other until a positive result is returned from the specified method + * @param $gid string, the gid connected to the request + * @param $method string, the method of the group backend that shall be called + * @param $parameters an array of parameters to be passed + * @return mixed, the result of the method or false + */ + protected function walkBackends($gid, $method, $parameters) { + $cacheKey = $this->getGroupCacheKey($gid); + foreach($this->backends as $configPrefix => $backend) { + if($result = call_user_func_array(array($backend, $method), $parameters)) { + $this->writeToCache($cacheKey, $configPrefix); + return $result; + } + } + return false; + } + + /** + * @brief Asks the backend connected to the server that supposely takes care of the gid from the request. + * @param $gid string, the gid connected to the request + * @param $method string, the method of the group backend that shall be called + * @param $parameters an array of parameters to be passed + * @return mixed, the result of the method or false + */ + protected function callOnLastSeenOn($gid, $method, $parameters) { + $cacheKey = $this->getGroupCacheKey($gid);; + $prefix = $this->getFromCache($cacheKey); + //in case the uid has been found in the past, try this stored connection first + if(!is_null($prefix)) { + if(isset($this->backends[$prefix])) { + $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters); + if(!$result) { + //not found here, reset cache to null + $this->writeToCache($cacheKey, null); + } + return $result; + } + } + return false; + } + + /** + * @brief is user in group? + * @param $uid uid of the user + * @param $gid gid of the group + * @returns true/false + * + * Checks whether the user is member of a group or not. + */ + public function inGroup($uid, $gid) { + return $this->handleRequest($gid, 'inGroup', array($uid, $gid)); + } + + /** + * @brief Get all groups a user belongs to + * @param $uid Name of the user + * @returns array with group names + * + * This function fetches all groups a user belongs to. It does not check + * if the user exists at all. + */ + public function getUserGroups($uid) { + $groups = array(); + + foreach($this->backends as $backend) { + $backendGroups = $backend->getUserGroups($uid); + if (is_array($backendGroups)) { + $groups = array_merge($groups, $backendGroups); + } + } + + return $groups; + } + + /** + * @brief get a list of all users in a group + * @returns array with user ids + */ + public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) { + $users = array(); + + foreach($this->backends as $backend) { + $backendUsers = $backend->usersInGroup($gid, $search, $limit, $offset); + if (is_array($backendUsers)) { + $users = array_merge($users, $backendUsers); + } + } + + return $users; + } + + /** + * @brief get a list of all groups + * @returns array with group names + * + * Returns a list with all groups + */ + public function getGroups($search = '', $limit = -1, $offset = 0) { + $groups = array(); + + foreach($this->backends as $backend) { + $backendGroups = $backend->getGroups($search, $limit, $offset); + if (is_array($backendGroups)) { + $groups = array_merge($groups, $backendGroups); + } + } + + return $groups; + } + + /** + * check if a group exists + * @param string $gid + * @return bool + */ + public function groupExists($gid) { + return $this->handleRequest($gid, 'groupExists', array($gid)); + } + + /** + * @brief Check if backend implements actions + * @param $actions bitwise-or'ed actions + * @returns boolean + * + * Returns the supported actions as int to be + * compared with OC_USER_BACKEND_CREATE_USER etc. + */ + public function implementsActions($actions) { + //it's the same across all our user backends obviously + return $this->refBackend->implementsActions($actions); + } +} \ No newline at end of file diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 7063eead96a..e34849ec887 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -1,6 +1,114 @@ +var LdapConfiguration = { + refreshConfig: function() { + if($('#ldap_serverconfig_chooser option').length < 2) { + LdapConfiguration.addConfiguration(true); + return; + } + $.post( + OC.filePath('user_ldap','ajax','getConfiguration.php'), + $('#ldap_serverconfig_chooser').serialize(), + function (result) { + if(result.status == 'success') { + $.each(result.configuration, function(configkey, configvalue) { + elementID = '#'+configkey; + + //deal with Checkboxes + if($(elementID).is('input[type=checkbox]')) { + if(configvalue == 1) { + $(elementID).attr('checked', 'checked'); + } else { + $(elementID).removeAttr('checked'); + } + return; + } + + //On Textareas, Multi-Line Settings come as array + if($(elementID).is('textarea') && $.isArray(configvalue)) { + configvalue = configvalue.join("\n"); + } + + // assign the value + $('#'+configkey).val(configvalue); + }); + } + } + ); + }, + + resetDefaults: function() { + $('#ldap').find('input[type=text], input[type=number], input[type=password], textarea, select').each(function() { + if($(this).attr('id') == 'ldap_serverconfig_chooser') { + return; + } + $(this).val($(this).attr('data-default')); + }); + $('#ldap').find('input[type=checkbox]').each(function() { + if($(this).attr('data-default') == 1) { + $(this).attr('checked', 'checked'); + } else { + $(this).removeAttr('checked'); + } + }); + }, + + deleteConfiguration: function() { + $.post( + OC.filePath('user_ldap','ajax','deleteConfiguration.php'), + $('#ldap_serverconfig_chooser').serialize(), + function (result) { + if(result.status == 'success') { + $('#ldap_serverconfig_chooser option:selected').remove(); + $('#ldap_serverconfig_chooser option:first').select(); + LdapConfiguration.refreshConfig(); + } else { + OC.dialogs.alert( + result.message, + t('user_ldap', 'Deletion failed') + ); + } + } + ); + }, + + addConfiguration: function(doNotAsk) { + $.post( + OC.filePath('user_ldap','ajax','getNewServerConfigPrefix.php'), + function (result) { + if(result.status == 'success') { + if(doNotAsk) { + LdapConfiguration.resetDefaults(); + } else { + OC.dialogs.confirm( + t('user_ldap', 'Take over settings from recent server configuration?'), + t('user_ldap', 'Keep settings?'), + function(keep) { + if(!keep) { + LdapConfiguration.resetDefaults(); + } + } + ); + } + $('#ldap_serverconfig_chooser option:selected').removeAttr('selected'); + var html = ''; + $('#ldap_serverconfig_chooser option:last').before(html); + } else { + OC.dialogs.alert( + result.message, + t('user_ldap', 'Cannot add server configuration') + ); + } + } + ); + } +} + $(document).ready(function() { + $('#ldapAdvancedAccordion').accordion({ heightStyle: 'content', animate: 'easeInOutCirc'}); $('#ldapSettings').tabs(); + $('#ldap_submit').button(); $('#ldap_action_test_connection').button(); + $('#ldap_action_delete_configuration').button(); + LdapConfiguration.refreshConfig(); $('#ldap_action_test_connection').click(function(event){ event.preventDefault(); $.post( @@ -10,15 +118,60 @@ $(document).ready(function() { if (result.status == 'success') { OC.dialogs.alert( result.message, - 'Connection test succeeded' + t('user_ldap', 'Connection test succeeded') ); } else { OC.dialogs.alert( result.message, - 'Connection test failed' + t('user_ldap', 'Connection test failed') ); } } ); }); + + $('#ldap_action_delete_configuration').click(function(event) { + event.preventDefault(); + OC.dialogs.confirm( + t('user_ldap', 'Do you really want to delete the current Server Configuration?'), + t('user_ldap', 'Confirm Deletion'), + function(deleteConfiguration) { + if(deleteConfiguration) { + LdapConfiguration.deleteConfiguration(); + } + } + ); + }); + + $('#ldap_submit').click(function(event) { + event.preventDefault(); + $.post( + OC.filePath('user_ldap','ajax','setConfiguration.php'), + $('#ldap').serialize(), + function (result) { + bgcolor = $('#ldap_submit').css('background'); + if (result.status == 'success') { + //the dealing with colors is a but ugly, but the jQuery version in use has issues with rgba colors + $('#ldap_submit').css('background', '#fff'); + $('#ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() { + $('#ldap_submit').css('background', bgcolor); + }); + } else { + $('#ldap_submit').css('background', '#fff'); + $('#ldap_submit').effect('highlight', {'color':'#E97'}, 5000, function() { + $('#ldap_submit').css('background', bgcolor); + }); + } + } + ); + }); + + $('#ldap_serverconfig_chooser').change(function(event) { + value = $('#ldap_serverconfig_chooser option:selected:first').attr('value'); + if(value == 'NEW') { + LdapConfiguration.addConfiguration(false); + } else { + LdapConfiguration.refreshConfig(); + } + }); }); \ No newline at end of file diff --git a/apps/user_ldap/l10n/af_ZA.php b/apps/user_ldap/l10n/af_ZA.php new file mode 100644 index 00000000000..944495f3869 --- /dev/null +++ b/apps/user_ldap/l10n/af_ZA.php @@ -0,0 +1,4 @@ + "Wagwoord", +"Help" => "Hulp" +); diff --git a/apps/user_ldap/l10n/ar.php b/apps/user_ldap/l10n/ar.php index da1710a0a3c..4d7b7ac4ade 100644 --- a/apps/user_ldap/l10n/ar.php +++ b/apps/user_ldap/l10n/ar.php @@ -1,4 +1,5 @@ "فشل الحذف", "Password" => "كلمة المرور", "Help" => "المساعدة" ); diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php index 094b20cad2d..6c347eab879 100644 --- a/apps/user_ldap/l10n/bn_BD.php +++ b/apps/user_ldap/l10n/bn_BD.php @@ -17,21 +17,21 @@ "Defines the filter to apply, when retrieving groups." => "গোষ্ঠীসমূহ উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।", "Port" => "পোর্ট", -"Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে", -"Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে", -"Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন", "Use TLS" => "TLS ব্যবহার কর", "Do not use it for SSL connections, it will fail." => "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।", "Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)", "Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।", "Not recommended, use for testing only." => "অনুমোদিত নয়, শুধুমাত্র পরীক্ষামূলক ব্যবহারের জন্য।", +"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", "User Display Name Field" => "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র", "The LDAP attribute to use to generate the user`s ownCloud name." => "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।", +"Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে", "Group Display Name Field" => "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র", "The LDAP attribute to use to generate the groups`s ownCloud name." => "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।", +"Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে", +"Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন", "in bytes" => "বাইটে", -"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।", "Help" => "সহায়িকা" ); diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php index 06255c1249a..5cf03b6787b 100644 --- a/apps/user_ldap/l10n/ca.php +++ b/apps/user_ldap/l10n/ca.php @@ -1,6 +1,20 @@ "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ó!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuració no és vàlida. Per més detalls mireu al registre d'ownCloud.", +"Deletion failed" => "Eliminació fallida", +"Take over settings from recent server configuration?" => "Voleu prendre l'arranjament de la configuració actual del servidor?", +"Keep settings?" => "Voleu mantenir la configuració?", +"Cannot add server configuration" => "No es pot afegir la configuració del servidor", +"Connection test succeeded" => "La prova de connexió ha reeixit", +"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 behaviour. 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 no desitjats. 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", "Host" => "Màquina", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", "Base DN" => "DN Base", @@ -19,24 +33,37 @@ "Group Filter" => "Filtre de grup", "Defines the filter to apply, when retrieving groups." => "Defineix el filtre a aplicar quan es mostren grups.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sense cap paràmetre de substitució, per exemple \"objectClass=grupPosix\".", +"Connection Settings" => "Arranjaments de connexió", +"Configuration Active" => "Configuració activa", +"When unchecked, this configuration will be skipped." => "Si està desmarcat, aquesta configuració s'ometrà.", "Port" => "Port", -"Base User Tree" => "Arbre base d'usuaris", -"One User Base DN per line" => "Una DN Base d'Usuari per línia", -"Base Group Tree" => "Arbre base de grups", -"One Group Base DN per line" => "Una DN Base de Grup per línia", -"Group-Member association" => "Associació membres-grup", +"Backup (Replica) Host" => "Màquina de còpia de serguretat (rèplica)", +"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", +"When switched on, ownCloud will only connect to the replica server." => "Quan està connectat, ownCloud només es connecta al servidor de la rèplica.", "Use TLS" => "Usa TLS", "Do not use it for SSL connections, it will fail." => "No ho useu en connexions SSL, 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 ownCloud server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud.", "Not recommended, use for testing only." => "No recomanat, ús només per proves.", +"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 ownCloud name." => "Atribut LDAP a usar per generar el nom d'usuari ownCloud.", +"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 ownCloud name." => "Atribut LDAP a usar per generar el nom de grup ownCloud.", +"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", +"Group-Member association" => "Associació membres-grup", +"Special Attributes" => "Atributs especials", "in bytes" => "en bytes", -"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.", "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.", "Help" => "Ajuda" ); diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php index 80e27f1e62a..0aace1f7410 100644 --- a/apps/user_ldap/l10n/cs_CZ.php +++ b/apps/user_ldap/l10n/cs_CZ.php @@ -1,6 +1,20 @@ "Selhalo smazání konfigurace serveru", +"The configuration is valid and the connection could be established!" => "Nastavení je v pořádku a spojení bylo navázáno.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavení je neplatné. Zkontrolujte, prosím, záznam ownCloud pro další podrobnosti.", +"Deletion failed" => "Mazání selhalo.", +"Take over settings from recent server configuration?" => "Převzít nastavení z nedávného nastavení serveru?", +"Keep settings?" => "Ponechat nastavení?", +"Cannot add server configuration" => "Nelze přidat nastavení serveru", +"Connection test succeeded" => "Test spojení byl úspěšný", +"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í", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Varování: Aplikace user_ldap a user_webdavauth nejsou kompatibilní. Může nastávat neočekávané chování. Požádejte, prosím, správce systému aby jednu z nich zakázal.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Varování: 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", "Host" => "Počítač", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://", "Base DN" => "Základní DN", @@ -19,24 +33,37 @@ "Group Filter" => "Filtr skupin", "Defines the filter to apply, when retrieving groups." => "Určuje použitý filtr, pro získávaní skupin.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znaků, např. \"objectClass=posixGroup\".", +"Connection Settings" => "Nastavení spojení", +"Configuration Active" => "Nastavení aktivní", +"When unchecked, this configuration will be skipped." => "Pokud není zaškrtnuto, bude nastavení přeskočeno.", "Port" => "Port", -"Base User Tree" => "Základní uživatelský strom", -"One User Base DN per line" => "Jedna uživatelská základní DN na řádku", -"Base Group Tree" => "Základní skupinový strom", -"One Group Base DN per line" => "Jedna skupinová základní DN na řádku", -"Group-Member association" => "Asociace člena skupiny", +"Backup (Replica) Host" => "Záložní (kopie) hostitel", +"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", +"When switched on, ownCloud will only connect to the replica server." => "Při zapnutí se ownCloud připojí pouze k záložnímu serveru", "Use TLS" => "Použít TLS", "Do not use it for SSL connections, it will fail." => "Nepoužívejte pro připojení pomocí SSL, připojení 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 ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud", "Not recommended, use for testing only." => "Není doporučeno, pouze pro testovací účely.", +"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", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména uživatele ownCloud", +"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", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména skupiny ownCloud", +"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", +"Group-Member association" => "Asociace člena skupiny", +"Special Attributes" => "Speciální atributy", "in bytes" => "v bajtech", -"in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní vyrovnávací paměť.", "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.", "Help" => "Nápověda" ); diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php index b11b56f9b65..dd7fb8a1a0c 100644 --- a/apps/user_ldap/l10n/da.php +++ b/apps/user_ldap/l10n/da.php @@ -1,4 +1,5 @@ "Fejl ved sletning", "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,14 +13,14 @@ "Group Filter" => "Gruppe Filter", "Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.", "Port" => "Port", -"Base User Tree" => "Base Bruger Træ", -"Base Group Tree" => "Base Group Tree", -"Group-Member association" => "Group-Member association", "Use TLS" => "Brug TLS", "Do not use it for SSL connections, it will fail." => "Brug ikke til SSL forbindelser, da den vil fejle.", "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", +"Base User Tree" => "Base Bruger Træ", +"Base Group Tree" => "Base Group Tree", +"Group-Member association" => "Group-Member association", "in bytes" => "i bytes", "Help" => "Hjælp" ); diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index efc8a80f8c7..df680465c98 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -1,6 +1,8 @@ "Löschen fehlgeschlagen", +"Keep settings?" => "Einstellungen beibehalten?", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", -"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://", "Base DN" => "Basis-DN", @@ -20,23 +22,23 @@ "Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"", "Port" => "Port", -"Base User Tree" => "Basis-Benutzerbaum", -"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", -"Base Group Tree" => "Basis-Gruppenbaum", -"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", -"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", "Use TLS" => "Nutze TLS", "Do not use it for SSL connections, it will fail." => "Verwende dies nicht für SSL-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 ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", +"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", +"Base User Tree" => "Basis-Benutzerbaum", +"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", +"Base Group Tree" => "Basis-Gruppenbaum", +"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", +"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", "in bytes" => "in Bytes", -"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", "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.", "Help" => "Hilfe" ); diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php index 843609f8b89..1b47cfec2a6 100644 --- a/apps/user_ldap/l10n/de_DE.php +++ b/apps/user_ldap/l10n/de_DE.php @@ -1,6 +1,20 @@ "Das Löschen der Server-Konfiguration schlug fehl", +"The configuration is valid and the connection could be established!" => "Die Konfiguration ist valide und eine Verbindung konnte hergestellt werden!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen.", +"Deletion failed" => "Löschen fehlgeschlagen", +"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?", +"Keep settings?" => "Einstellungen behalten?", +"Cannot add server configuration" => "Das Hinzufügen der Server-Konfiguration schlug fehl", +"Connection test succeeded" => "Verbindungs-Test erfolgreich", +"Connection test failed" => "Verbindungs-Test fehlgeschlagen", +"Do you really want to delete the current Server Configuration?" => "Möchten Sie wirklich die Server-Konfiguration löschen?", +"Confirm Deletion" => "Löschung bestätigen", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: 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.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", +"Server configuration" => "Server-Konfiguration", +"Add Server Configuration" => "Server-Konfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", "Base DN" => "Basis-DN", @@ -19,24 +33,37 @@ "Group Filter" => "Gruppen-Filter", "Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"", +"Connection Settings" => "Verbindungs-Einstellungen", +"Configuration Active" => "Konfiguration aktiv", +"When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", "Port" => "Port", -"Base User Tree" => "Basis-Benutzerbaum", -"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", -"Base Group Tree" => "Basis-Gruppenbaum", -"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", -"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", +"Backup (Replica) Host" => "Back-Up (Replikation) Host", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein.", +"Backup (Replica) Port" => "Back-Up (Replikation) Port", +"Disable Main Server" => "Hauptserver deaktivieren", +"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden.", "Use TLS" => "Nutze TLS", "Do not use it for SSL connections, it will fail." => "Verwenden Sie dies nicht für SSL-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 ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", +"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", +"Directory Settings" => "Verzeichnis-Einstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", +"Base User Tree" => "Basis-Benutzerbaum", +"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", +"User Search Attributes" => "Benutzer-Suche Eigenschaften", +"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 ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", +"Base Group Tree" => "Basis-Gruppenbaum", +"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", +"Group Search Attributes" => "Gruppen-Suche Eigenschaften", +"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", +"Special Attributes" => "besondere Eigenschaften", "in bytes" => "in Bytes", -"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", "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.", "Help" => "Hilfe" ); diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php index 1f75a687a5d..3951c94dfa7 100644 --- a/apps/user_ldap/l10n/el.php +++ b/apps/user_ldap/l10n/el.php @@ -1,4 +1,5 @@ "Η διαγραφή απέτυχε", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Προσοχή: Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.", "Host" => "Διακομιστής", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\".", "Port" => "Θύρα", -"Base User Tree" => "Base User Tree", -"Base Group Tree" => "Base Group Tree", -"Group-Member association" => "Group-Member association", "Use TLS" => "Χρήση TLS", "Do not use it for SSL connections, it will fail." => "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει.", "Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ", "Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας.", "Not recommended, use for testing only." => "Δεν προτείνεται, χρήση μόνο για δοκιμές.", +"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.", "User Display Name Field" => "Πεδίο Ονόματος Χρήστη", "The LDAP attribute to use to generate the user`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud.", +"Base User Tree" => "Base User Tree", "Group Display Name Field" => "Group Display Name Field", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud.", +"Base Group Tree" => "Base Group Tree", +"Group-Member association" => "Group-Member association", "in bytes" => "σε bytes", -"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.", "Help" => "Βοήθεια" ); diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php index 35f436a0b0a..2a2b70603c5 100644 --- a/apps/user_ldap/l10n/eo.php +++ b/apps/user_ldap/l10n/eo.php @@ -1,4 +1,5 @@ "Forigo malsukcesis", "Host" => "Gastigo", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://", "Base DN" => "Bazo-DN", @@ -15,21 +16,21 @@ "Defines the filter to apply, when retrieving groups." => "Ĝi difinas la filtrilon aplikotan, kiam veniĝas grupoj.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ajna referencilo, ekz.: \"objectClass=posixGroup\".", "Port" => "Pordo", -"Base User Tree" => "Baza uzantarbo", -"Base Group Tree" => "Baza gruparbo", -"Group-Member association" => "Asocio de grupo kaj membro", "Use TLS" => "Uzi TLS-on", "Do not use it for SSL connections, it will fail." => "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos.", "Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)", "Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo.", "Not recommended, use for testing only." => "Ne rekomendata, uzu ĝin nur por testoj.", +"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.", "User Display Name Field" => "Kampo de vidignomo de uzanto", "The LDAP attribute to use to generate the user`s ownCloud name." => "La atributo de LDAP uzota por generi la ownCloud-an nomon de la uzanto.", +"Base User Tree" => "Baza uzantarbo", "Group Display Name Field" => "Kampo de vidignomo de grupo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo.", +"Base Group Tree" => "Baza gruparbo", +"Group-Member association" => "Asocio de grupo kaj membro", "in bytes" => "duumoke", -"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.", "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" ); diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php index 48e7b24734e..a6d1d9d260d 100644 --- a/apps/user_ldap/l10n/es.php +++ b/apps/user_ldap/l10n/es.php @@ -1,8 +1,22 @@ "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, 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", +"Keep settings?" => "Mantener la configuración?", +"Cannot add server configuration" => "No se puede añadir la configuración del servidor", +"Connection test succeeded" => "La prueba de conexión fue exitosa", +"Connection test failed" => "La prueba de conexión falló", +"Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?", +"Confirm Deletion" => "Confirmar eliminación", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.", -"Host" => "Servidor", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Advertencia: El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.", +"Server configuration" => "Configuración del Servidor", +"Host" => "Máquina", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://", "Base DN" => "DN base", +"One Base DN per line" => "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", "User DN" => "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.", @@ -18,21 +32,23 @@ "Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar, cuando se obtienen grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Con cualquier placeholder, ej: \"objectClass=posixGroup\".", "Port" => "Puerto", -"Base User Tree" => "Árbol base de usuario", -"Base Group Tree" => "Árbol base de grupo", -"Group-Member association" => "Asociación Grupo-Miembro", "Use TLS" => "Usar TLS", "Do not use it for SSL connections, it will fail." => "No usarlo para SSL, habrá error.", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP 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 ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.", "Not recommended, use for testing only." => "No recomendado, sólo para pruebas.", +"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.", "User Display Name Field" => "Campo de nombre de usuario a mostrar", "The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.", +"Base User Tree" => "Árbol base de usuario", +"One User Base DN per line" => "Un DN Base de Usuario por línea", "Group Display Name Field" => "Campo de nombre de grupo a mostrar", "The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.", +"Base Group Tree" => "Árbol base de grupo", +"One Group Base DN per line" => "Un DN Base de Grupo por línea", +"Group-Member association" => "Asociación Grupo-Miembro", "in bytes" => "en bytes", -"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.", "Help" => "Ayuda" ); diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php index 331bf8699f4..dce2321e6b1 100644 --- a/apps/user_ldap/l10n/es_AR.php +++ b/apps/user_ldap/l10n/es_AR.php @@ -1,8 +1,11 @@ "Error al borrar", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Atención: El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://", "Base DN" => "DN base", +"One Base DN per line" => "Una DN base por línea", "You can specify Base DN for users and groups in the Advanced tab" => "Podés especificar el DN base para usuarios y grupos en la pestaña \"Avanzado\"", "User DN" => "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, dejá DN y contraseña vacíos.", @@ -18,21 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar cuando se obtienen grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\".", "Port" => "Puerto", -"Base User Tree" => "Árbol base de usuario", -"Base Group Tree" => "Árbol base de grupo", -"Group-Member association" => "Asociación Grupo-Miembro", "Use TLS" => "Usar TLS", "Do not use it for SSL connections, it will fail." => "No usarlo para SSL, dará error.", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud.", "Not recommended, use for testing only." => "No recomendado, sólo para pruebas.", +"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.", "User Display Name Field" => "Campo de nombre de usuario a mostrar", "The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.", +"Base User Tree" => "Árbol base de usuario", +"One User Base DN per line" => "Una DN base de usuario por línea", "Group Display Name Field" => "Campo de nombre de grupo a mostrar", "The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.", +"Base Group Tree" => "Árbol base de grupo", +"One Group Base DN per line" => "Una DN base de grupo por línea", +"Group-Member association" => "Asociación Grupo-Miembro", "in bytes" => "en bytes", -"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD.", "Help" => "Ayuda" ); diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php index 9752d73c1c0..ba03a8a8093 100644 --- a/apps/user_ldap/l10n/et_EE.php +++ b/apps/user_ldap/l10n/et_EE.php @@ -1,4 +1,5 @@ "Kustutamine ebaõnnestus", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sa ei saa protokolli ära jätta, välja arvatud siis, kui sa nõuad SSL-ühendust. Sel juhul alusta eesliitega ldaps://", "Base DN" => "Baas DN", @@ -17,21 +18,21 @@ "Defines the filter to apply, when retrieving groups." => "Määrab gruppe hankides filtri, mida rakendatakse.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\".", "Port" => "Port", -"Base User Tree" => "Baaskasutaja puu", -"Base Group Tree" => "Baasgrupi puu", -"Group-Member association" => "Grupiliikme seotus", "Use TLS" => "Kasutaja TLS", "Do not use it for SSL connections, it will fail." => "Ära kasuta seda SSL ühenduse jaoks, see 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 ownCloud server." => "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse.", "Not recommended, use for testing only." => "Pole soovitatav, kasuta ainult testimiseks.", +"in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.", "User Display Name Field" => "Kasutaja näidatava nime väli", "The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP omadus, mida kasutatakse kasutaja ownCloudi nime loomiseks.", +"Base User Tree" => "Baaskasutaja puu", "Group Display Name Field" => "Grupi näidatava nime väli", "The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP omadus, mida kasutatakse ownCloudi grupi nime loomiseks.", +"Base Group Tree" => "Baasgrupi puu", +"Group-Member association" => "Grupiliikme seotus", "in bytes" => "baitides", -"in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.", "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.", "Help" => "Abiinfo" ); diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php index e2b50f28ee9..2aad2363ce9 100644 --- a/apps/user_ldap/l10n/eu.php +++ b/apps/user_ldap/l10n/eu.php @@ -1,4 +1,5 @@ "Ezabaketak huts egin du", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Abisua: user_ldap eta user_webdavauth aplikazioak bateraezinak dira. Portaera berezia izan dezakezu. Mesedez eskatu zure sistema kudeatzaileari bietako bat desgaitzeko.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.", "Host" => "Hostalaria", @@ -20,23 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "txantiloirik gabe, adb. \"objectClass=posixGroup\".", "Port" => "Portua", -"Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza", -"One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko", -"Base Group Tree" => "Oinarrizko Talde Zuhaitza", -"One Group Base DN per line" => "Talde DN Oinarri bat lerroko", -"Group-Member association" => "Talde-Kide elkarketak", "Use TLS" => "Erabili TLS", "Do not use it for SSL connections, it will fail." => "Ez erabili SSL konexioetan, huts egingo du.", "Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)", "Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian.", "Not recommended, use for testing only." => "Ez da aholkatzen, erabili bakarrik frogak egiteko.", +"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.", "User Display Name Field" => "Erabiltzaileen bistaratzeko izena duen eremua", "The LDAP attribute to use to generate the user`s ownCloud name." => "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua", +"Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza", +"One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko", "Group Display Name Field" => "Taldeen bistaratzeko izena duen eremua", "The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua", +"Base Group Tree" => "Oinarrizko Talde Zuhaitza", +"One Group Base DN per line" => "Talde DN Oinarri bat lerroko", +"Group-Member association" => "Talde-Kide elkarketak", "in bytes" => "bytetan", -"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.", "Help" => "Laguntza" ); diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php index 44324221168..e3955d3f32d 100644 --- a/apps/user_ldap/l10n/fa.php +++ b/apps/user_ldap/l10n/fa.php @@ -1,5 +1,7 @@ "حذف کردن انجام نشد", "Host" => "میزبانی", "Password" => "رمز عبور", +"Port" => "درگاه", "Help" => "راه‌نما" ); diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php index 24195649a64..4f8fd3f2d17 100644 --- a/apps/user_ldap/l10n/fi_FI.php +++ b/apps/user_ldap/l10n/fi_FI.php @@ -1,4 +1,5 @@ "Poisto epäonnistui", "Host" => "Isäntä", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://", "Base DN" => "Oletus DN", @@ -17,21 +18,21 @@ "Defines the filter to apply, when retrieving groups." => "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. ", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\".", "Port" => "Portti", -"Base User Tree" => "Oletuskäyttäjäpuu", -"Base Group Tree" => "Ryhmien juuri", -"Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)", "Use TLS" => "Käytä TLS:ää", "Do not use it for SSL connections, it will fail." => "Älä käytä SSL-yhteyttä varten, se epäonnistuu. ", "Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)", "Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi.", "Not recommended, use for testing only." => "Ei suositella, käytä vain testausta varten.", +"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.", "User Display Name Field" => "Käyttäjän näytettävän nimen kenttä", "The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä ", +"Base User Tree" => "Oletuskäyttäjäpuu", "Group Display Name Field" => "Ryhmän \"näytettävä nimi\"-kenttä", "The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi", +"Base Group Tree" => "Ryhmien juuri", +"Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)", "in bytes" => "tavuissa", -"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.", "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" ); diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php index 28ee6346ef4..a2879b4fa03 100644 --- a/apps/user_ldap/l10n/fr.php +++ b/apps/user_ldap/l10n/fr.php @@ -1,6 +1,20 @@ "Échec de la suppression de la configuration du serveur", +"The configuration is valid and the connection could be established!" => "La configuration est valide est la connexion peut être établie !", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuration est invalide. Veuillez vous référer aux fichiers de journaux ownCloud pour plus d'information.", +"Deletion failed" => "La suppression a échoué", +"Take over settings from recent server configuration?" => "Récupérer les paramètres depuis une configuration récente du serveur ?", +"Keep settings?" => "Garder ces paramètres ?", +"Cannot add server configuration" => "Impossible d'ajouter la configuration du serveur.", +"Connection test succeeded" => "Test de connexion réussi", +"Connection test failed" => "Le test de connexion a échoué", +"Do you really want to delete the current Server Configuration?" => "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?", +"Confirm Deletion" => "Confirmer la suppression", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Avertissement: Les applications user_ldap et user_webdavauth sont incompatibles. Des disfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Attention : Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.", +"Server configuration" => "Configuration du serveur", +"Add Server Configuration" => "Ajouter une configuration du serveur", "Host" => "Hôte", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://", "Base DN" => "DN Racine", @@ -19,24 +33,34 @@ "Group Filter" => "Filtre de groupes", "Defines the filter to apply, when retrieving groups." => "Définit le filtre à appliquer lors de la récupération des groupes.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sans élément de substitution, par exemple \"objectClass=posixGroup\".", +"Configuration Active" => "Configuration active", +"When unchecked, this configuration will be skipped." => "Lorsque non cochée, la configuration sera ignorée.", "Port" => "Port", -"Base User Tree" => "DN racine de l'arbre utilisateurs", -"One User Base DN per line" => "Un DN racine utilisateur par ligne", -"Base Group Tree" => "DN racine de l'arbre groupes", -"One Group Base DN per line" => "Un DN racine groupe par ligne", -"Group-Member association" => "Association groupe-membre", +"Backup (Replica) Host" => "Serveur de backup (réplique)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.", +"Backup (Replica) Port" => "Port du serveur de backup (réplique)", +"Disable Main Server" => "Désactiver le serveur principal", +"When switched on, ownCloud will only connect to the replica server." => "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué.", "Use TLS" => "Utiliser TLS", "Do not use it for SSL connections, it will fail." => "Ne pas utiliser pour les connexions SSL, car cela échouera.", "Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)", "Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud.", "Not recommended, use for testing only." => "Non recommandé, utilisation pour tests uniquement.", +"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.", "User Display Name Field" => "Champ \"nom d'affichage\" de l'utilisateur", "The LDAP attribute to use to generate the user`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud.", +"Base User Tree" => "DN racine de l'arbre utilisateurs", +"One User Base DN per line" => "Un DN racine utilisateur par ligne", +"User Search Attributes" => "Recherche des attributs utilisateur", +"Optional; one attribute per line" => "Optionnel, un attribut par ligne", "Group Display Name Field" => "Champ \"nom d'affichage\" du groupe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud.", +"Base Group Tree" => "DN racine de l'arbre groupes", +"One Group Base DN per line" => "Un DN racine groupe par ligne", +"Group Search Attributes" => "Recherche des attributs du groupe", +"Group-Member association" => "Association groupe-membre", "in bytes" => "en octets", -"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laisser vide ", "Help" => "Aide" ); diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php index d60521c4a02..a2531a40a83 100644 --- a/apps/user_ldap/l10n/gl.php +++ b/apps/user_ldap/l10n/gl.php @@ -1,4 +1,5 @@ "Fallou o borrado", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: Os aplicativos user_ldap e user_webdavauth son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar cando se recompilan os grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix».", "Port" => "Porto", -"Base User Tree" => "Base da árbore de usuarios", -"Base Group Tree" => "Base da árbore de grupo", -"Group-Member association" => "Asociación de grupos e membros", "Use TLS" => "Usar TLS", "Do not use it for SSL connections, it will fail." => "Non empregalo para conexións SSL: fallará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud.", "Not recommended, use for testing only." => "Non se recomenda. Só para probas.", +"in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira a caché.", "User Display Name Field" => "Campo de mostra do nome de usuario", "The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud.", +"Base User Tree" => "Base da árbore de usuarios", "Group Display Name Field" => "Campo de mostra do nome de grupo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud.", +"Base Group Tree" => "Base da árbore de grupo", +"Group-Member association" => "Asociación de grupos e membros", "in bytes" => "en bytes", -"in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira a caché.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixar baleiro para o nome de usuario (predeterminado). Noutro caso, especifique un atributo LDAP/AD.", "Help" => "Axuda" ); diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php index d33ecaadf05..5c563b7b6f3 100644 --- a/apps/user_ldap/l10n/he.php +++ b/apps/user_ldap/l10n/he.php @@ -1,4 +1,5 @@ "מחיקה נכשלה", "Host" => "מארח", "User DN" => "DN משתמש", "Password" => "סיסמא", @@ -6,7 +7,7 @@ "User Login Filter" => "סנן כניסת משתמש", "User List Filter" => "סנן רשימת משתמשים", "Group Filter" => "סנן קבוצה", -"in bytes" => "בבתים", "in seconds. A change empties the cache." => "בשניות. שינוי מרוקן את המטמון.", +"in bytes" => "בבתים", "Help" => "עזרה" ); diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php index 25ee47786ef..64de16fa65f 100644 --- a/apps/user_ldap/l10n/hu_HU.php +++ b/apps/user_ldap/l10n/hu_HU.php @@ -1,4 +1,5 @@ "A törlés nem sikerült", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Figyelem: a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!", "Host" => "Kiszolgáló", @@ -20,23 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "Ez a szűrő érvényes a csoportok listázásakor.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "itt ne használjunk változót, pl. \"objectClass=posixGroup\".", "Port" => "Port", -"Base User Tree" => "A felhasználói fa gyökere", -"One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg", -"Base Group Tree" => "A csoportfa gyökere", -"One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg", -"Group-Member association" => "A csoporttagság attribútuma", "Use TLS" => "Használjunk TLS-t", "Do not use it for SSL connections, it will fail." => "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!", "Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)", "Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!", "Not recommended, use for testing only." => "Nem javasolt, csak tesztelésre érdemes használni.", +"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.", "User Display Name Field" => "A felhasználónév mezője", "The LDAP attribute to use to generate the user`s ownCloud name." => "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban.", +"Base User Tree" => "A felhasználói fa gyökere", +"One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg", "Group Display Name Field" => "A csoport nevének mezője", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban.", +"Base Group Tree" => "A csoportfa gyökere", +"One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg", +"Group-Member association" => "A csoporttagság attribútuma", "in bytes" => "bájtban", -"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!", "Help" => "Súgó" ); diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php index 56619634bab..33e8cc70e93 100644 --- a/apps/user_ldap/l10n/id.php +++ b/apps/user_ldap/l10n/id.php @@ -1,4 +1,5 @@ "penghapusan gagal", "Host" => "host", "Password" => "kata kunci", "User Login Filter" => "gunakan saringan login", @@ -8,7 +9,7 @@ "Do not use it for SSL connections, it will fail." => "jangan gunakan untuk koneksi SSL, itu akan gagal.", "Turn off SSL certificate validation." => "matikan validasi sertivikat SSL", "Not recommended, use for testing only." => "tidak disarankan, gunakan hanya untuk pengujian.", -"in bytes" => "dalam bytes", "in seconds. A change empties the cache." => "dalam detik. perubahan mengosongkan cache", +"in bytes" => "dalam bytes", "Help" => "bantuan" ); diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php index bee30cfe6ec..0220aa958ce 100644 --- a/apps/user_ldap/l10n/it.php +++ b/apps/user_ldap/l10n/it.php @@ -1,6 +1,20 @@ "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.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "La configurazione non è valida. Controlla il log di ownCloud per ulteriori dettagli.", +"Deletion failed" => "Eliminazione non riuscita", +"Take over settings from recent server configuration?" => "Vuoi recuperare le impostazioni dalla configurazione recente del server?", +"Keep settings?" => "Vuoi mantenere le impostazioni?", +"Cannot add server configuration" => "Impossibile aggiungere la configurazione del server", +"Connection test succeeded" => "Prova di connessione riuscita", +"Connection test failed" => "Prova di connessione non riuscita", +"Do you really want to delete the current Server Configuration?" => "Vuoi davvero eliminare la configurazione attuale del server?", +"Confirm Deletion" => "Conferma l'eliminazione", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Avviso: le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne uno.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Avviso: il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo.", +"Server configuration" => "Configurazione del server", +"Add Server Configuration" => "Aggiungi configurazione del server", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://", "Base DN" => "DN base", @@ -19,24 +33,37 @@ "Group Filter" => "Filtro per il gruppo", "Defines the filter to apply, when retrieving groups." => "Specifica quale filtro utilizzare durante il recupero dei gruppi.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "senza nessun segnaposto, per esempio \"objectClass=posixGroup\".", +"Connection Settings" => "Impostazioni di connessione", +"Configuration Active" => "Configurazione attiva", +"When unchecked, this configuration will be skipped." => "Se deselezionata, questa configurazione sarà saltata.", "Port" => "Porta", -"Base User Tree" => "Struttura base dell'utente", -"One User Base DN per line" => "Un DN base utente per riga", -"Base Group Tree" => "Struttura base del gruppo", -"One Group Base DN per line" => "Un DN base gruppo per riga", -"Group-Member association" => "Associazione gruppo-utente ", +"Backup (Replica) Host" => "Host di backup (Replica)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fornisci un host di backup opzionale. Deve essere una replica del server AD/LDAP principale.", +"Backup (Replica) Port" => "Porta di backup (Replica)", +"Disable Main Server" => "Disabilita server principale", +"When switched on, ownCloud will only connect to the replica server." => "Se abilitata, ownCloud si collegherà solo al server di replica.", "Use TLS" => "Usa TLS", "Do not use it for SSL connections, it will fail." => "Non utilizzare per le connessioni SSL, fallirà.", "Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)", "Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud.", "Not recommended, use for testing only." => "Non consigliato, utilizzare solo per test.", +"in seconds. A change empties the cache." => "in secondi. Il cambio svuota la cache.", +"Directory Settings" => "Impostazioni delle cartelle", "User Display Name Field" => "Campo per la visualizzazione del nome utente", "The LDAP attribute to use to generate the user`s ownCloud name." => "L'attributo LDAP da usare per generare il nome dell'utente ownCloud.", +"Base User Tree" => "Struttura base dell'utente", +"One User Base DN per line" => "Un DN base utente per riga", +"User Search Attributes" => "Attributi di ricerca utente", +"Optional; one attribute per line" => "Opzionale; un attributo per riga", "Group Display Name Field" => "Campo per la visualizzazione del nome del gruppo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attributo LDAP da usare per generare il nome del gruppo ownCloud.", +"Base Group Tree" => "Struttura base del gruppo", +"One Group Base DN per line" => "Un DN base gruppo per riga", +"Group Search Attributes" => "Attributi di ricerca gruppo", +"Group-Member association" => "Associazione gruppo-utente ", +"Special Attributes" => "Attributi speciali", "in bytes" => "in byte", -"in seconds. A change empties the cache." => "in secondi. Il cambio svuota la cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lascia vuoto per il nome utente (predefinito). Altrimenti, specifica un attributo LDAP/AD.", "Help" => "Aiuto" ); diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php index 1c93db7ba09..7706357cbf3 100644 --- a/apps/user_ldap/l10n/ja_JP.php +++ b/apps/user_ldap/l10n/ja_JP.php @@ -1,6 +1,20 @@ "サーバ設定の削除に失敗しました", +"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." => "設定は有効ですが、接続に失敗しました。サーバ設定と資格情報を確認して下さい。", +"The configuration is invalid. Please look in the ownCloud log for further details." => "設定は無効です。詳細は ownCloud のログを見て下さい。", +"Deletion failed" => "削除に失敗しました", +"Take over settings from recent server configuration?" => "最近のサーバ設定から設定を引き継ぎますか?", +"Keep settings?" => "設定を保持しますか?", +"Cannot add server configuration" => "サーバ設定を追加できません", +"Connection test succeeded" => "接続テストに成功しました", +"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 behaviour. 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" => "サーバ設定を追加", "Host" => "ホスト", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。", "Base DN" => "ベースDN", @@ -19,24 +33,37 @@ "Group Filter" => "グループフィルタ", "Defines the filter to apply, when retrieving groups." => "グループを取得するときに適用するフィルターを定義する。", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "プレースホルダーを利用しないでください。例 \"objectClass=posixGroup\"", +"Connection Settings" => "接続設定", +"Configuration Active" => "設定はアクティブです", +"When unchecked, this configuration will be skipped." => "チェックを外すと、この設定はスキップされます。", "Port" => "ポート", -"Base User Tree" => "ベースユーザツリー", -"One User Base DN per line" => "1行に1つのユーザベースDN", -"Base Group Tree" => "ベースグループツリー", -"One Group Base DN per line" => "1行に1つのグループベースDN", -"Group-Member association" => "グループとメンバーの関連付け", +"Backup (Replica) Host" => "バックアップ(レプリカ)ホスト", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。", +"Backup (Replica) Port" => "バックアップ(レプリカ)ポート", +"Disable Main Server" => "メインサーバを無効にする", +"When switched on, ownCloud will only connect to the replica server." => "有効にすると、ownCloudはレプリカサーバにのみ接続します。", "Use TLS" => "TLSを利用", "Do not use it for SSL connections, it will fail." => "SSL接続に利用しないでください、失敗します。", "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 ownCloud server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。", "Not recommended, use for testing only." => "推奨しません、テスト目的でのみ利用してください。", +"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。", +"Directory Settings" => "ディレクトリ設定", "User Display Name Field" => "ユーザ表示名のフィールド", "The LDAP attribute to use to generate the user`s ownCloud name." => "ユーザのownCloud名の生成に利用する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 ownCloud name." => "グループのownCloud名の生成に利用するLDAP属性。", +"Base Group Tree" => "ベースグループツリー", +"One Group Base DN per line" => "1行に1つのグループベースDN", +"Group Search Attributes" => "グループ検索属性", +"Group-Member association" => "グループとメンバーの関連付け", +"Special Attributes" => "特殊属性", "in bytes" => "バイト", -"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。", "Help" => "ヘルプ" ); diff --git a/apps/user_ldap/l10n/ka_GE.php b/apps/user_ldap/l10n/ka_GE.php index 630d92b73ad..b31767fe935 100644 --- a/apps/user_ldap/l10n/ka_GE.php +++ b/apps/user_ldap/l10n/ka_GE.php @@ -1,3 +1,4 @@ "წაშლის ველი", "Help" => "დახმარება" ); diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php index c0d09b5c3c1..9ff8ff99d08 100644 --- a/apps/user_ldap/l10n/ko.php +++ b/apps/user_ldap/l10n/ko.php @@ -1,8 +1,11 @@ Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "경고user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여, 둘 중 하나를 비활성화 하시기 바랍니다.", +"Deletion failed" => "삭제 실패", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. 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 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "Host" => "호스트", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.", "Base DN" => "기본 DN", +"One Base DN per line" => "기본 DN을 한 줄에 하나씩 입력하십시오", "You can specify Base DN for users and groups in the Advanced tab" => "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.", "User DN" => "사용자 DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", @@ -18,21 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "그룹을 검색할 때 적용할 필터를 정의합니다.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"", "Port" => "포트", -"Base User Tree" => "기본 사용자 트리", -"Base Group Tree" => "기본 그룹 트리", -"Group-Member association" => "그룹-회원 연결", "Use TLS" => "TLS 사용", "Do not use it for SSL connections, it will fail." => "SSL 연결 시 사용하는 경우 연결되지 않습니다.", "Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)", "Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다.", "Not recommended, use for testing only." => "추천하지 않음, 테스트로만 사용하십시오.", +"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.", "User Display Name Field" => "사용자의 표시 이름 필드", "The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다.", +"Base User Tree" => "기본 사용자 트리", +"One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오", "Group Display Name Field" => "그룹의 표시 이름 필드", "The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다.", +"Base Group Tree" => "기본 그룹 트리", +"One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오", +"Group-Member association" => "그룹-회원 연결", "in bytes" => "바이트", -"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.", "Help" => "도움말" ); diff --git a/apps/user_ldap/l10n/lb.php b/apps/user_ldap/l10n/lb.php index 6d70f682ddb..39ed627ce2c 100644 --- a/apps/user_ldap/l10n/lb.php +++ b/apps/user_ldap/l10n/lb.php @@ -1,4 +1,5 @@ "Konnt net läschen", "Password" => "Passwuert", "Help" => "Hëllef" ); diff --git a/apps/user_ldap/l10n/lt_LT.php b/apps/user_ldap/l10n/lt_LT.php index 809ed571bd0..aa21dd2d3c1 100644 --- a/apps/user_ldap/l10n/lt_LT.php +++ b/apps/user_ldap/l10n/lt_LT.php @@ -1,4 +1,5 @@ "Ištrinti nepavyko", "Password" => "Slaptažodis", "Group Filter" => "Grupės filtras", "Port" => "Prievadas", diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php index 52353472e4d..48cee737c74 100644 --- a/apps/user_ldap/l10n/lv.php +++ b/apps/user_ldap/l10n/lv.php @@ -1,3 +1,69 @@ "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.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurācija ir nederīga. Lūdzu, apskatiet ownCloud žurnālu, lai uzzinātu vairāk.", +"Deletion failed" => "Neizdevās izdzēst", +"Take over settings from recent server configuration?" => "Paņemt iestatījumus no nesenas servera konfigurācijas?", +"Keep settings?" => "Paturēt iestatījumus?", +"Cannot add server configuration" => "Nevar pievienot servera konfigurāciju", +"Connection test succeeded" => "Savienojuma tests ir veiksmīgs", +"Connection test failed" => "Savienojuma tests cieta neveiksmi", +"Do you really want to delete the current Server Configuration?" => "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?", +"Confirm Deletion" => "Apstiprināt dzēšanu", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Brīdinājums: lietotnes user_ldap un user_webdavauth ir nesavietojamas. Tās var izraisīt negaidītu uzvedību. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Brīdinājums: PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", +"Server configuration" => "Servera konfigurācija", +"Add Server Configuration" => "Pievienot servera konfigurāciju", +"Host" => "Resursdators", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://", +"Base DN" => "Bāzes DN", +"One Base DN per line" => "Viena bāzes DN rindā", +"You can specify Base DN for users and groups in the Advanced tab" => "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”", +"User DN" => "Lietotāja DN", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", +"Password" => "Parole", +"For anonymous access, leave DN and Password empty." => "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", +"User Login Filter" => "Lietotāja ierakstīšanās filtrs", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definē filtru, ko izmantot, kad mēģina ierakstīties. %%uid ierakstīšanās darbībā aizstāj lietotājvārdu.", +"use %%uid placeholder, e.g. \"uid=%%uid\"" => "lieto %%uid vietturi, piemēram, \"uid=%%uid\"", +"User List Filter" => "Lietotāju saraksta filtrs", +"Defines the filter to apply, when retrieving users." => "Definē filtru, ko izmantot, kad saņem lietotāju sarakstu.", +"without any placeholder, e.g. \"objectClass=person\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=person\".", +"Group Filter" => "Grupu filtrs", +"Defines the filter to apply, when retrieving groups." => "Definē filtru, ko izmantot, kad saņem grupu sarakstu.", +"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=posixGroup\".", +"Connection Settings" => "Savienojuma iestatījumi", +"Configuration Active" => "Konfigurācija ir aktīva", +"When unchecked, this configuration will be skipped." => "Ja nav atzīmēts, šī konfigurācija tiks izlaista.", +"Port" => "Ports", +"Backup (Replica) Host" => "Rezerves (kopija) serveris", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.", +"Backup (Replica) Port" => "Rezerves (kopijas) ports", +"Disable Main Server" => "Deaktivēt galveno serveri", +"When switched on, ownCloud will only connect to the replica server." => "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri.", +"Use TLS" => "Lietot TLS", +"Do not use it for SSL connections, it will fail." => "Neizmanto to SSL savienojumiem, tas neizdosies.", +"Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)", +"Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.", +"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī.", +"Not recommended, use for testing only." => "Nav ieteicams, izmanto tikai testēšanai!", +"in seconds. A change empties the cache." => "sekundēs. Izmaiņas iztukšos kešatmiņu.", +"Directory Settings" => "Direktorijas iestatījumi", +"User Display Name Field" => "Lietotāja redzamā vārda lauks", +"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP atribūts, ko izmantot lietotāja ownCloud vārda veidošanai.", +"Base User Tree" => "Bāzes lietotāju koks", +"One User Base DN per line" => "Viena lietotāju bāzes DN rindā", +"User Search Attributes" => "Lietotāju meklēšanas atribūts", +"Optional; one attribute per line" => "Neobligāti; viens atribūts rindā", +"Group Display Name Field" => "Grupas redzamā nosaukuma lauks", +"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP atribūts, ko izmantot grupas ownCloud nosaukuma veidošanai.", +"Base Group Tree" => "Bāzes grupu koks", +"One Group Base DN per line" => "Viena grupu bāzes DN rindā", +"Group Search Attributes" => "Grupu meklēšanas atribūts", +"Group-Member association" => "Grupu piederības asociācija", +"Special Attributes" => "Īpašie atribūti", +"in bytes" => "baitos", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu.", "Help" => "Palīdzība" ); diff --git a/apps/user_ldap/l10n/mk.php b/apps/user_ldap/l10n/mk.php index 4c231b516d4..7d34ff49492 100644 --- a/apps/user_ldap/l10n/mk.php +++ b/apps/user_ldap/l10n/mk.php @@ -1,4 +1,5 @@ "Бришењето е неуспешно", "Host" => "Домаќин", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://", "Password" => "Лозинка", diff --git a/apps/user_ldap/l10n/ms_MY.php b/apps/user_ldap/l10n/ms_MY.php index 077a5390cf8..17a6cbe2cb6 100644 --- a/apps/user_ldap/l10n/ms_MY.php +++ b/apps/user_ldap/l10n/ms_MY.php @@ -1,3 +1,4 @@ "Pemadaman gagal", "Help" => "Bantuan" ); diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php index a5f4657d045..295166b0a50 100644 --- a/apps/user_ldap/l10n/nb_NO.php +++ b/apps/user_ldap/l10n/nb_NO.php @@ -1,11 +1,12 @@ "Sletting feilet", "Password" => "Passord", "Group Filter" => "Gruppefilter", "Port" => "Port", "Use TLS" => "Bruk TLS", "Do not use it for SSL connections, it will fail." => "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere.", "Not recommended, use for testing only." => "Ikke anbefalt, bruk kun for testing", -"in bytes" => "i bytes", "in seconds. A change empties the cache." => "i sekunder. En endring tømmer bufferen.", +"in bytes" => "i bytes", "Help" => "Hjelp" ); diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php index 27c4407360e..cc5e85fc30b 100644 --- a/apps/user_ldap/l10n/nl.php +++ b/apps/user_ldap/l10n/nl.php @@ -1,6 +1,19 @@ "Verwijderen serverconfiguratie mislukt", +"The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!", +"The configuration is invalid. Please look in the ownCloud log for further details." => "De configuratie is ongeldig. Controleer de ownCloud log voor meer details.", +"Deletion failed" => "Verwijderen mislukt", +"Take over settings from recent server configuration?" => "Overnemen instellingen van de recente serverconfiguratie?", +"Keep settings?" => "Instellingen bewaren?", +"Cannot add server configuration" => "Kon de serverconfiguratie niet toevoegen", +"Connection test succeeded" => "Verbindingstest geslaagd", +"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 behaviour. 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", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://", "Base DN" => "Base DN", @@ -19,24 +32,30 @@ "Group Filter" => "Groep Filter", "Defines the filter to apply, when retrieving groups." => "Definiëerd de toe te passen filter voor het ophalen van groepen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "zonder een placeholder, bijv. \"objectClass=posixGroup\"", +"Configuration Active" => "Configuratie actief", "Port" => "Poort", -"Base User Tree" => "Basis Gebruikers Structuur", -"One User Base DN per line" => "Een User Base DN per regel", -"Base Group Tree" => "Basis Groupen Structuur", -"One Group Base DN per line" => "Een Group Base DN per regel", -"Group-Member association" => "Groepslid associatie", +"Backup (Replica) Host" => "Backup (Replica) Host", +"Backup (Replica) Port" => "Backup (Replica) Poort", +"Disable Main Server" => "Deactiveren hoofdserver", +"When switched on, ownCloud will only connect to the replica server." => "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver.", "Use TLS" => "Gebruik TLS", "Do not use it for SSL connections, it will fail." => "Gebruik niet voor SSL connecties, deze mislukken.", "Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)", "Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server.", "Not recommended, use for testing only." => "Niet aangeraden, gebruik alleen voor test doeleinden.", +"in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.", "User Display Name Field" => "Gebruikers Schermnaam Veld", "The LDAP attribute to use to generate the user`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers.", +"Base User Tree" => "Basis Gebruikers Structuur", +"One User Base DN per line" => "Een User Base DN per regel", +"Optional; one attribute per line" => "Optioneel; één attribuut per regel", "Group Display Name Field" => "Groep Schermnaam Veld", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen.", +"Base Group Tree" => "Basis Groupen Structuur", +"One Group Base DN per line" => "Een Group Base DN per regel", +"Group-Member association" => "Groepslid associatie", "in bytes" => "in bytes", -"in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.", "Help" => "Help" ); diff --git a/apps/user_ldap/l10n/oc.php b/apps/user_ldap/l10n/oc.php index 0bf27d74f2f..a128638172a 100644 --- a/apps/user_ldap/l10n/oc.php +++ b/apps/user_ldap/l10n/oc.php @@ -1,3 +1,4 @@ "Fracàs d'escafatge", "Help" => "Ajuda" ); diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php index 55110b8a830..83a8d1615ae 100644 --- a/apps/user_ldap/l10n/pl.php +++ b/apps/user_ldap/l10n/pl.php @@ -1,4 +1,5 @@ "Skasowanie nie powiodło się", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Ostrzeżenie: Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Definiuje filtry do zastosowania, podczas pobierania grup.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\".", "Port" => "Port", -"Base User Tree" => "Drzewo bazy użytkowników", -"Base Group Tree" => "Drzewo bazy grup", -"Group-Member association" => "Członek grupy stowarzyszenia", "Use TLS" => "Użyj TLS", "Do not use it for SSL connections, it will fail." => "Nie używaj SSL dla połączeń, jeśli się nie powiedzie.", "Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)", "Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud.", "Not recommended, use for testing only." => "Niezalecane, użyj tylko testowo.", +"in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.", "User Display Name Field" => "Pole wyświetlanej nazwy użytkownika", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud.", +"Base User Tree" => "Drzewo bazy użytkowników", "Group Display Name Field" => "Pole wyświetlanej nazwy grupy", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy grup ownCloud.", +"Base Group Tree" => "Drzewo bazy grup", +"Group-Member association" => "Członek grupy stowarzyszenia", "in bytes" => "w bajtach", -"in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD.", "Help" => "Pomoc" ); diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php index 18eed6d0142..79e56eeb652 100644 --- a/apps/user_ldap/l10n/pt_BR.php +++ b/apps/user_ldap/l10n/pt_BR.php @@ -1,4 +1,5 @@ "Remoção falhou", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://", "Base DN" => "DN Base", @@ -17,21 +18,21 @@ "Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar ao obter grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"", "Port" => "Porta", -"Base User Tree" => "Árvore de Usuário Base", -"Base Group Tree" => "Árvore de Grupo Base", -"Group-Member association" => "Associação Grupo-Membro", "Use TLS" => "Usar TLS", "Do not use it for SSL connections, it will fail." => "Não use-o para conexões SSL, pois falhará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)", "Turn off SSL certificate validation." => "Desligar validação de certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud.", "Not recommended, use for testing only." => "Não recomendado, use somente para testes.", +"in seconds. A change empties the cache." => "em segundos. Uma mudança esvaziará o cache.", "User Display Name Field" => "Campo Nome de Exibição de Usuário", "The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do usuário.", +"Base User Tree" => "Árvore de Usuário Base", "Group Display Name Field" => "Campo Nome de Exibição de Grupo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do grupo.", +"Base Group Tree" => "Árvore de Grupo Base", +"Group-Member association" => "Associação Grupo-Membro", "in bytes" => "em bytes", -"in seconds. A change empties the cache." => "em segundos. Uma mudança esvaziará o cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD.", "Help" => "Ajuda" ); diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php index 9059f178769..21735b497c6 100644 --- a/apps/user_ldap/l10n/pt_PT.php +++ b/apps/user_ldap/l10n/pt_PT.php @@ -1,6 +1,20 @@ "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!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuração está correcta, mas não foi possível estabelecer o \"laço\", por favor, verifique as configurações do servidor e as credenciais.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuração é inválida. Por favor, veja o log do ownCloud para mais detalhes.", +"Deletion failed" => "Erro ao apagar", +"Take over settings from recent server configuration?" => "Assumir as configurações da configuração do servidor mais recente?", +"Keep settings?" => "Manter as definições?", +"Cannot add server configuration" => "Não foi possível adicionar as configurações do servidor.", +"Connection test succeeded" => "Teste de conecção passado com sucesso.", +"Connection test failed" => "Erro no teste de conecção.", +"Do you really want to delete the current Server Configuration?" => "Deseja realmente apagar as configurações de servidor actuais?", +"Confirm Deletion" => "Confirmar a operação de apagar", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Aviso: O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar.", +"Server configuration" => "Configurações do servidor", +"Add Server Configuration" => "Adicionar configurações do servidor", "Host" => "Anfitrião", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://", "Base DN" => "DN base", @@ -19,24 +33,34 @@ "Group Filter" => "Filtrar por grupo", "Defines the filter to apply, when retrieving groups." => "Defina o filtro a aplicar, ao recuperar grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\".", +"Configuration Active" => "Configuração activa", +"When unchecked, this configuration will be skipped." => "Se não estiver marcada, esta definição não será tida em conta.", "Port" => "Porto", -"Base User Tree" => "Base da árvore de utilizadores.", -"One User Base DN per line" => "Uma base de utilizador DN por linha", -"Base Group Tree" => "Base da árvore de grupos.", -"One Group Base DN per line" => "Uma base de grupo DN por linha", -"Group-Member association" => "Associar utilizador ao grupo.", +"Backup (Replica) Host" => "Servidor de Backup (Réplica)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Forneça um servidor (anfitrião) de backup. Deve ser uma réplica do servidor principal de LDAP/AD ", +"Backup (Replica) Port" => "Porta do servidor de backup (Replica)", +"Disable Main Server" => "Desactivar servidor principal", +"When switched on, ownCloud will only connect to the replica server." => "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas.", "Use TLS" => "Usar TLS", "Do not use it for SSL connections, it will fail." => "Não use para ligações SSL, irá falhar.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.", "Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud.", "Not recommended, use for testing only." => "Não recomendado, utilizado apenas para testes!", +"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.", "User Display Name Field" => "Mostrador do nome de utilizador.", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atributo LDAP para gerar o nome de utilizador do ownCloud.", +"Base User Tree" => "Base da árvore de utilizadores.", +"One User Base DN per line" => "Uma base de utilizador DN por linha", +"User Search Attributes" => "Utilizar atributos de pesquisa", +"Optional; one attribute per line" => "Opcional; Um atributo por linha", "Group Display Name Field" => "Mostrador do nome do grupo.", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atributo LDAP para gerar o nome do grupo do ownCloud.", +"Base Group Tree" => "Base da árvore de grupos.", +"One Group Base DN per line" => "Uma base de grupo DN por linha", +"Group Search Attributes" => "Atributos de pesquisa de grupo", +"Group-Member association" => "Associar utilizador ao grupo.", "in bytes" => "em bytes", -"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD.", "Help" => "Ajuda" ); diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php index d83c890b747..3e7e7500429 100644 --- a/apps/user_ldap/l10n/ro.php +++ b/apps/user_ldap/l10n/ro.php @@ -1,4 +1,5 @@ "Ștergerea a eșuat", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Atentie: Apps user_ldap si user_webdavauth sunt incompatibile. Este posibil sa experimentati un comportament neasteptat. Vă rugăm să întrebați administratorul de sistem pentru a dezactiva una dintre ele.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Atenție Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.", "Host" => "Gazdă", @@ -20,23 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "Definește filtrele care se aplică, când se preiau grupurile.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "fără substituenți, d.e. \"objectClass=posixGroup\"", "Port" => "Portul", -"Base User Tree" => "Arborele de bază al Utilizatorilor", -"One User Base DN per line" => "Un User Base DN pe linie", -"Base Group Tree" => "Arborele de bază al Grupurilor", -"One Group Base DN per line" => "Un Group Base DN pe linie", -"Group-Member association" => "Asocierea Grup-Membru", "Use TLS" => "Utilizează TLS", "Do not use it for SSL connections, it will fail." => "A nu se utiliza pentru conexiuni SSL, va eșua.", "Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)", "Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud.", "Not recommended, use for testing only." => "Nu este recomandat, a se utiliza doar pentru testare.", +"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.", "User Display Name Field" => "Câmpul cu numele vizibil al utilizatorului", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atributul LDAP folosit pentru a genera numele de utilizator din ownCloud.", +"Base User Tree" => "Arborele de bază al Utilizatorilor", +"One User Base DN per line" => "Un User Base DN pe linie", "Group Display Name Field" => "Câmpul cu numele grupului", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud", +"Base Group Tree" => "Arborele de bază al Grupurilor", +"One Group Base DN per line" => "Un Group Base DN pe linie", +"Group-Member association" => "Asocierea Grup-Membru", "in bytes" => "în octeți", -"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.", "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" ); diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php index 42fba32f43f..45f6c171bf3 100644 --- a/apps/user_ldap/l10n/ru.php +++ b/apps/user_ldap/l10n/ru.php @@ -1,4 +1,5 @@ "Удаление не удалось", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Внимание:Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением. Пожалуйста, обратитесь к системному администратору, чтобы отключить одно из них.", "Host" => "Сервер", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Определяет фильтр для применения при получении группы.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без заполнения, например \"objectClass=posixGroup\".", "Port" => "Порт", -"Base User Tree" => "База пользовательского дерева", -"Base Group Tree" => "База группового дерева", -"Group-Member association" => "Ассоциация Группа-Участник", "Use TLS" => "Использовать TLS", "Do not use it for SSL connections, it will fail." => "Не используйте для соединений SSL", "Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)", "Turn off SSL certificate validation." => "Отключить проверку сертификата SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP.", "Not recommended, use for testing only." => "Не рекомендуется, используйте только для тестирования.", +"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.", "User Display Name Field" => "Поле отображаемого имени пользователя", "The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP для генерации имени пользователя ownCloud.", +"Base User Tree" => "База пользовательского дерева", "Group Display Name Field" => "Поле отображаемого имени группы", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP для генерации имени группы ownCloud.", +"Base Group Tree" => "База группового дерева", +"Group-Member association" => "Ассоциация Группа-Участник", "in bytes" => "в байтах", -"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.", "Help" => "Помощь" ); diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php index 03d83b80a43..f62d2cd4eaf 100644 --- a/apps/user_ldap/l10n/ru_RU.php +++ b/apps/user_ldap/l10n/ru_RU.php @@ -1,4 +1,5 @@ "Удаление не удалось", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. 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 не установлен, бэкэнд не будет работать. Пожалуйста, обратитесь к Вашему системному администратору, чтобы установить его.", "Host" => "Хост", @@ -20,23 +21,23 @@ "Defines the filter to apply, when retrieving groups." => "Задает фильтр, применяемый при получении групп.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без каких-либо заполнителей, например, \"objectClass=posixGroup\".", "Port" => "Порт", -"Base User Tree" => "Базовое дерево пользователей", -"One User Base DN per line" => "Одно пользовательское базовое DN на линию", -"Base Group Tree" => "Базовое дерево групп", -"One Group Base DN per line" => "Одно групповое базовое DN на линию", -"Group-Member association" => "Связь член-группа", "Use TLS" => "Использовать TLS", "Do not use it for SSL connections, it will fail." => "Не используйте это SSL-соединений, это не будет выполнено.", "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 ownCloud server." => "Если соединение работает только с этой опцией, импортируйте SSL-сертификат LDAP сервера в ваш ownCloud сервер.", "Not recommended, use for testing only." => "Не рекомендовано, используйте только для тестирования.", +"in seconds. A change empties the cache." => "в секундах. Изменение очищает кэш.", "User Display Name Field" => "Поле, отображаемое как имя пользователя", "The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, используемый для создания имени пользователя в ownCloud.", +"Base User Tree" => "Базовое дерево пользователей", +"One User Base DN per line" => "Одно пользовательское базовое DN на линию", "Group Display Name Field" => "Поле, отображаемое как имя группы", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, используемый для создания группового имени в ownCloud.", +"Base Group Tree" => "Базовое дерево групп", +"One Group Base DN per line" => "Одно групповое базовое DN на линию", +"Group-Member association" => "Связь член-группа", "in bytes" => "в байтах", -"in seconds. A change empties the cache." => "в секундах. Изменение очищает кэш.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте пустым под имя пользователя (по умолчанию). В противном случае задайте LDAP/AD атрибут.", "Help" => "Помощь" ); diff --git a/apps/user_ldap/l10n/si_LK.php b/apps/user_ldap/l10n/si_LK.php index fc8099e25e5..50124e4d54f 100644 --- a/apps/user_ldap/l10n/si_LK.php +++ b/apps/user_ldap/l10n/si_LK.php @@ -1,4 +1,5 @@ "මකාදැමීම අසාර්ථකයි", "Host" => "සත්කාරකය", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL අවශ්‍යය වන විට පමණක් හැර, අන් අවස්ථාවන්හිදී ප්‍රොටොකෝලය අත් හැරිය හැක. භාවිතා කරන විට ldaps:// ලෙස ආරම්භ කරන්න", "Password" => "මුර පදය", diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php index 2b340c8573d..77cb039c7ed 100644 --- a/apps/user_ldap/l10n/sk_SK.php +++ b/apps/user_ldap/l10n/sk_SK.php @@ -1,7 +1,24 @@ "Zlyhalo zmazanie nastavenia servera.", +"The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavenia sú neplatné. Podrobnosti hľadajte v logu ownCloud.", +"Deletion failed" => "Odstránenie zlyhalo", +"Take over settings from recent server configuration?" => "Prebrať nastavenia z nedávneho nastavenia servera?", +"Keep settings?" => "Ponechať nastavenia?", +"Cannot add server configuration" => "Nemožno pridať nastavenie servera", +"Connection test succeeded" => "Test pripojenia bol úspešný", +"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 behaviour. Please ask your system administrator to disable one of them." => "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal.", +"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 správcu systému aby ho nainštaloval.", +"Server configuration" => "Nastavenia servera", +"Add Server Configuration" => "Pridať nastavenia servera.", "Host" => "Hostiteľ", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://", "Base DN" => "Základné DN", +"One Base DN per line" => "Jedno základné DN na riadok", "You can specify Base DN for users and groups in the Advanced tab" => "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny", "User DN" => "Používateľské DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.", @@ -16,22 +33,37 @@ "Group Filter" => "Filter skupiny", "Defines the filter to apply, when retrieving groups." => "Definuje použitý filter, pre získanie skupín.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znakov, napr. \"objectClass=posixGroup\"", +"Connection Settings" => "Nastavenie pripojenia", +"Configuration Active" => "Nastavenia sú aktívne ", +"When unchecked, this configuration will be skipped." => "Ak nie je zaškrtnuté, nastavenie bude preskočené.", "Port" => "Port", -"Base User Tree" => "Základný používateľský strom", -"Base Group Tree" => "Základný skupinový strom", -"Group-Member association" => "Asociácia člena skupiny", +"Backup (Replica) Host" => "Záložný server (kópia) hosť", +"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", +"When switched on, ownCloud will only connect to the replica server." => "Pri zapnutí sa ownCloud pripojí len k záložnému serveru.", "Use TLS" => "Použi TLS", "Do not use it for SSL connections, it will fail." => "Nepoužívajte pre pripojenie SSL, pripojenie 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 ownCloud server." => "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud.", "Not recommended, use for testing only." => "Nie je doporučované, len pre testovacie účely.", +"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 ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud ", +"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 ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud ", +"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", +"Group-Member association" => "Asociácia člena skupiny", +"Special Attributes" => "Špeciálne atribúty", "in bytes" => "v bajtoch", -"in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.", "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.", "Help" => "Pomoc" ); diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php index 247f2bfdcbd..133d7ee9119 100644 --- a/apps/user_ldap/l10n/sl.php +++ b/apps/user_ldap/l10n/sl.php @@ -1,4 +1,5 @@ "Brisanje je spodletelo.", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Opozorilo: Aplikaciji user_ldap in user_webdavauth nista združljivi. Morda boste opazili nepričakovano obnašanje sistema. Prosimo, prosite vašega skrbnika, da eno od aplikacij onemogoči.", "Host" => "Gostitelj", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Določi filter za uporabo med pridobivanjem skupin.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\".", "Port" => "Vrata", -"Base User Tree" => "Osnovno uporabniško drevo", -"Base Group Tree" => "Osnovno drevo skupine", -"Group-Member association" => "Povezava člana skupine", "Use TLS" => "Uporabi TLS", "Do not use it for SSL connections, it will fail." => "Uporaba SSL za povezave bo spodletela.", "Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)", "Turn off SSL certificate validation." => "Onemogoči potrditev veljavnosti potrdila SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "V primeru, da povezava deluje le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud.", "Not recommended, use for testing only." => "Dejanje ni priporočeno; uporabljeno naj bo le za preizkušanje delovanja.", +"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.", "User Display Name Field" => "Polje za uporabnikovo prikazano ime", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP, uporabljen pri ustvarjanju uporabniških imen ownCloud.", +"Base User Tree" => "Osnovno uporabniško drevo", "Group Display Name Field" => "Polje za prikazano ime skupine", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP, uporabljen pri ustvarjanju imen skupin ownCloud.", +"Base Group Tree" => "Osnovno drevo skupine", +"Group-Member association" => "Povezava člana skupine", "in bytes" => "v bajtih", -"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pustite prazno za uporabniško ime (privzeto). V nasprotnem primeru navedite atribut LDAP/AD.", "Help" => "Pomoč" ); diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php index fff39aadc24..f16e59273cd 100644 --- a/apps/user_ldap/l10n/sr.php +++ b/apps/user_ldap/l10n/sr.php @@ -1,3 +1,4 @@ "Брисање није успело", "Help" => "Помоћ" ); diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php index 25abfdd7ddb..b1da09ad3e1 100644 --- a/apps/user_ldap/l10n/sv.php +++ b/apps/user_ldap/l10n/sv.php @@ -1,6 +1,18 @@ "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!", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer.", +"Deletion failed" => "Raderingen misslyckades", +"Keep settings?" => "Behåll inställningarna?", +"Cannot add server configuration" => "Kunde inte lägga till serverinställning", +"Connection test succeeded" => "Anslutningstestet lyckades", +"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 behaviour. 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", "Host" => "Server", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://", "Base DN" => "Start DN", @@ -20,23 +32,24 @@ "Defines the filter to apply, when retrieving groups." => "Definierar filter att tillämpa vid listning av grupper.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "utan platshållare, t.ex. \"objectClass=posixGroup\".", "Port" => "Port", -"Base User Tree" => "Bas för användare i katalogtjänst", -"One User Base DN per line" => "En Användare start DN per rad", -"Base Group Tree" => "Bas för grupper i katalogtjänst", -"One Group Base DN per line" => "En Grupp start DN per rad", -"Group-Member association" => "Attribut för gruppmedlemmar", +"Disable Main Server" => "Inaktivera huvudserver", "Use TLS" => "Använd TLS", "Do not use it for SSL connections, it will fail." => "Använd inte för SSL-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 ownCloud server." => "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server.", "Not recommended, use for testing only." => "Rekommenderas inte, använd bara för test. ", +"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.", "User Display Name Field" => "Attribut för användarnamn", "The LDAP attribute to use to generate the user`s ownCloud name." => "Attribut som används för att generera användarnamn i ownCloud.", +"Base User Tree" => "Bas för användare i katalogtjänst", +"One User Base DN per line" => "En Användare start DN per rad", "Group Display Name Field" => "Attribut för gruppnamn", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Attribut som används för att generera gruppnamn i ownCloud.", +"Base Group Tree" => "Bas för grupper i katalogtjänst", +"One Group Base DN per line" => "En Grupp start DN per rad", +"Group-Member association" => "Attribut för gruppmedlemmar", "in bytes" => "i bytes", -"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.", "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.", "Help" => "Hjälp" ); diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php index 2028becaf98..d617f49700f 100644 --- a/apps/user_ldap/l10n/ta_LK.php +++ b/apps/user_ldap/l10n/ta_LK.php @@ -1,4 +1,5 @@ "நீக்கம் தோல்வியடைந்தது", "Host" => "ஓம்புனர்", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்", "Base DN" => "தள DN", @@ -7,21 +8,21 @@ "Password" => "கடவுச்சொல்", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\".", "Port" => "துறை ", -"Base User Tree" => "தள பயனாளர் மரம்", -"Base Group Tree" => "தள குழு மரம்", -"Group-Member association" => "குழு உறுப்பினர் சங்கம்", "Use TLS" => "TLS ஐ பயன்படுத்தவும்", "Do not use it for SSL connections, it will fail." => "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்.", "Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)", "Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்", "Not recommended, use for testing only." => "பரிந்துரைக்கப்படவில்லை, சோதனைக்காக மட்டும் பயன்படுத்தவும்.", +"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.", "User Display Name Field" => "பயனாளர் காட்சிப்பெயர் புலம்", "The LDAP attribute to use to generate the user`s ownCloud name." => "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.", +"Base User Tree" => "தள பயனாளர் மரம்", "Group Display Name Field" => "குழுவின் காட்சி பெயர் புலம் ", "The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.", +"Base Group Tree" => "தள குழு மரம்", +"Group-Member association" => "குழு உறுப்பினர் சங்கம்", "in bytes" => "bytes களில் ", -"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்.", "Help" => "உதவி" ); diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php index e3a941c4244..07dbc835b31 100644 --- a/apps/user_ldap/l10n/th_TH.php +++ b/apps/user_ldap/l10n/th_TH.php @@ -1,6 +1,19 @@ "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว", +"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." => "การกำหนดค่าถูกต้อง, แต่การผูกข้อมูลล้มเหลว, กรุณาตรวจสอบการตั้งค่าเซิร์ฟเวอร์และข้อมูลการเข้าใช้งาน", +"The configuration is invalid. Please look in the ownCloud log for further details." => "การกำหนดค่าไม่ถูกต้อง กรุณาดูรายละเอียดจากบันทึกการเปลี่ยนแปลงของ ownCloud สำหรับรายละเอียดเพิ่มเติม", +"Deletion failed" => "การลบทิ้งล้มเหลว", +"Keep settings?" => "รักษาการตั้งค่าไว้?", +"Cannot add server configuration" => "ไม่สามารถเพิ่มค่ากำหนดเซิร์ฟเวอร์ได้", +"Connection test succeeded" => "ทดสอบการเชื่อมต่อสำเร็จ", +"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 behaviour. 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" => "เพิ่มการกำหนดค่าเซิร์ฟเวอร์", "Host" => "โฮสต์", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "คุณสามารถปล่อยช่องโปรโตคอลเว้นไว้ได้, ยกเว้นกรณีที่คุณต้องการใช้ SSL จากนั้นเริ่มต้นด้วย ldaps://", "Base DN" => "DN ฐาน", @@ -19,24 +32,31 @@ "Group Filter" => "ตัวกรองข้อมูลกลุ่ม", "Defines the filter to apply, when retrieving groups." => "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลกลุ่ม", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=posixGroup\",", +"Connection Settings" => "ตั้งค่าการเชื่อมต่อ", "Port" => "พอร์ต", -"Base User Tree" => "รายการผู้ใช้งานหลักแบบ Tree", -"One User Base DN per line" => "หนึ่ง User Base DN ต่อบรรทัด", -"Base Group Tree" => "รายการกลุ่มหลักแบบ Tree", -"One Group Base DN per line" => "หนึ่ง Group Base DN ต่อบรรทัด", -"Group-Member association" => "ความสัมพันธ์ของสมาชิกในกลุ่ม", +"Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก", "Use TLS" => "ใช้ TLS", "Do not use it for SSL connections, it will fail." => "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว", "Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)", "Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud", "Not recommended, use for testing only." => "ไม่แนะนำให้ใช้งาน, ใช้สำหรับการทดสอบเท่านั้น", +"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า", +"Directory Settings" => "ตั้งค่าไดเร็กทอรี่", "User Display Name Field" => "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ", "The LDAP attribute to use to generate the user`s ownCloud name." => "คุณลักษณะ LDAP ที่ต้องการใช้สำหรับสร้างชื่อของผู้ใช้งาน ownCloud", +"Base User Tree" => "รายการผู้ใช้งานหลักแบบ Tree", +"One User Base DN per line" => "หนึ่ง User Base DN ต่อบรรทัด", +"User Search Attributes" => "คุณลักษณะการค้นหาชื่อผู้ใช้", +"Optional; one attribute per line" => "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด", "Group Display Name Field" => "ช่องแสดงชื่อกลุ่มที่ต้องการ", "The LDAP attribute to use to generate the groups`s ownCloud name." => "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud", +"Base Group Tree" => "รายการกลุ่มหลักแบบ Tree", +"One Group Base DN per line" => "หนึ่ง Group Base DN ต่อบรรทัด", +"Group Search Attributes" => "คุณลักษณะการค้นหาแบบกลุ่ม", +"Group-Member association" => "ความสัมพันธ์ของสมาชิกในกลุ่ม", +"Special Attributes" => "คุณลักษณะพิเศษ", "in bytes" => "ในหน่วยไบต์", -"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD", "Help" => "ช่วยเหลือ" ); diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php index 6da65d9832b..8ded27a2952 100644 --- a/apps/user_ldap/l10n/tr.php +++ b/apps/user_ldap/l10n/tr.php @@ -1,4 +1,5 @@ "Silme başarısız oldu", "Host" => "Konak", "Base DN" => "Base DN", "User DN" => "User DN", @@ -10,15 +11,15 @@ "without any placeholder, e.g. \"objectClass=person\"." => "bir yer tutucusu olmadan, örneğin \"objectClass=person\"", "Group Filter" => "Grup Süzgeci", "Port" => "Port", -"Base User Tree" => "Temel Kullanıcı Ağacı", -"Base Group Tree" => "Temel Grup Ağacı", -"Group-Member association" => "Grup-Üye işbirliği", "Use TLS" => "TLS kullan", "Do not use it for SSL connections, it will fail." => "SSL bağlantıları ile kullanmayın, başarısız olacaktır.", "Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.", "Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.", -"in bytes" => "byte cinsinden", "in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.", +"Base User Tree" => "Temel Kullanıcı Ağacı", +"Base Group Tree" => "Temel Grup Ağacı", +"Group-Member association" => "Grup-Üye işbirliği", +"in bytes" => "byte cinsinden", "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" ); diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php index d617d939265..4dd1256ee33 100644 --- a/apps/user_ldap/l10n/uk.php +++ b/apps/user_ldap/l10n/uk.php @@ -1,4 +1,5 @@ "Видалення не було виконано", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Увага: Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.", "Host" => "Хост", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "Визначає фільтр, який застосовується при отриманні груп.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\".", "Port" => "Порт", -"Base User Tree" => "Основне Дерево Користувачів", -"Base Group Tree" => "Основне Дерево Груп", -"Group-Member association" => "Асоціація Група-Член", "Use TLS" => "Використовуйте TLS", "Do not use it for SSL connections, it will fail." => "Не використовуйте його для SSL з'єднань, це не буде виконано.", "Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)", "Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер.", "Not recommended, use for testing only." => "Не рекомендується, використовуйте лише для тестів.", +"in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.", "User Display Name Field" => "Поле, яке відображає Ім'я Користувача", "The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud.", +"Base User Tree" => "Основне Дерево Користувачів", "Group Display Name Field" => "Поле, яке відображає Ім'я Групи", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен груп ownCloud.", +"Base Group Tree" => "Основне Дерево Груп", +"Group-Member association" => "Асоціація Група-Член", "in bytes" => "в байтах", -"in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.", "Help" => "Допомога" ); diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php index 3d32c8125b8..76ff6fe33a4 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", "Host" => "Máy chủ", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://", "Base DN" => "DN cơ bản", @@ -17,21 +18,21 @@ "Defines the filter to apply, when retrieving groups." => "Xác định các bộ lọc để áp dụng, khi nhóm sử dụng.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\".", "Port" => "Cổng", -"Base User Tree" => "Cây người dùng cơ bản", -"Base Group Tree" => "Cây nhóm cơ bản", -"Group-Member association" => "Nhóm thành viên Cộng đồng", "Use TLS" => "Sử dụng TLS", "Do not use it for SSL connections, it will fail." => "Kết nối SSL bị lỗi. ", "Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)", "Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn.", "Not recommended, use for testing only." => "Không khuyến khích, Chỉ sử dụng để thử nghiệm.", +"in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.", "User Display Name Field" => "Hiển thị tên người sử dụng", "The LDAP attribute to use to generate the user`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud.", +"Base User Tree" => "Cây người dùng cơ bản", "Group Display Name Field" => "Hiển thị tên nhóm", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud.", +"Base Group Tree" => "Cây nhóm cơ bản", +"Group-Member association" => "Nhóm thành viên Cộng đồng", "in bytes" => "Theo Byte", -"in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.", "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 đỡ" ); diff --git a/apps/user_ldap/l10n/zh_CN.GB2312.php b/apps/user_ldap/l10n/zh_CN.GB2312.php index 8b906aea5ce..91b059afd0b 100644 --- a/apps/user_ldap/l10n/zh_CN.GB2312.php +++ b/apps/user_ldap/l10n/zh_CN.GB2312.php @@ -1,4 +1,5 @@ "删除失败", "Host" => "主机", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "您可以忽略协议,除非您需要 SSL。然后用 ldaps:// 开头", "Base DN" => "基本判别名", @@ -17,21 +18,21 @@ "Defines the filter to apply, when retrieving groups." => "定义撷取群组时要应用的过滤器", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "不能使用占位符,例如 \"objectClass=posixGroup\"。", "Port" => "端口", -"Base User Tree" => "基本用户树", -"Base Group Tree" => "基本群组树", -"Group-Member association" => "群组-成员组合", "Use TLS" => "使用 TLS", "Do not use it for SSL connections, it will fail." => "不要使用它进行 SSL 连接,会失败的。", "Case insensitve LDAP server (Windows)" => "大小写不敏感的 LDAP 服务器 (Windows)", "Turn off SSL certificate validation." => "关闭 SSL 证书校验。", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。", "Not recommended, use for testing only." => "不推荐,仅供测试", +"in seconds. A change empties the cache." => "以秒计。修改会清空缓存。", "User Display Name Field" => "用户显示名称字段", "The LDAP attribute to use to generate the user`s ownCloud name." => "用于生成用户的 ownCloud 名称的 LDAP 属性。", +"Base User Tree" => "基本用户树", "Group Display Name Field" => "群组显示名称字段", "The LDAP attribute to use to generate the groups`s ownCloud name." => "用于生成群组的 ownCloud 名称的 LDAP 属性。", +"Base Group Tree" => "基本群组树", +"Group-Member association" => "群组-成员组合", "in bytes" => "以字节计", -"in seconds. A change empties the cache." => "以秒计。修改会清空缓存。", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "用户名请留空 (默认)。否则,请指定一个 LDAP/AD 属性。", "Help" => "帮助" ); diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php index ed5041eff06..d0c32e94e08 100644 --- a/apps/user_ldap/l10n/zh_CN.php +++ b/apps/user_ldap/l10n/zh_CN.php @@ -1,4 +1,5 @@ "删除失败", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "警告:应用 user_ldap 和 user_webdavauth 不兼容。您可能遭遇未预料的行为。请垂询您的系统管理员禁用其中一个。", "Host" => "主机", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "可以忽略协议,但如要使用SSL,则需以ldaps://开头", @@ -18,21 +19,21 @@ "Defines the filter to apply, when retrieving groups." => "定义拉取组信息时的过滤器", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "无需占位符,例如\"objectClass=posixGroup\"", "Port" => "端口", -"Base User Tree" => "基础用户树", -"Base Group Tree" => "基础组树", -"Group-Member association" => "组成员关联", "Use TLS" => "使用TLS", "Do not use it for SSL connections, it will fail." => "不要在SSL链接中使用此选项,会导致失败。", "Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)", "Turn off SSL certificate validation." => "关闭SSL证书验证", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。", "Not recommended, use for testing only." => "暂不推荐,仅供测试", +"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。", "User Display Name Field" => "用户显示名称字段", "The LDAP attribute to use to generate the user`s ownCloud name." => "用来生成用户的ownCloud名称的 LDAP属性", +"Base User Tree" => "基础用户树", "Group Display Name Field" => "组显示名称字段", "The LDAP attribute to use to generate the groups`s ownCloud name." => "用来生成组的ownCloud名称的LDAP属性", +"Base Group Tree" => "基础组树", +"Group-Member association" => "组成员关联", "in bytes" => "字节数", -"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "将用户名称留空(默认)。否则指定一个LDAP/AD属性", "Help" => "帮助" ); diff --git a/apps/user_ldap/l10n/zh_TW.php b/apps/user_ldap/l10n/zh_TW.php index 506ae0f0fbd..9a12bad0747 100644 --- a/apps/user_ldap/l10n/zh_TW.php +++ b/apps/user_ldap/l10n/zh_TW.php @@ -1,4 +1,5 @@ "移除失敗", "Host" => "主機", "Password" => "密碼", "Port" => "連接阜", diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 422e43fc003..68cbe4a5e75 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -719,6 +719,50 @@ abstract class Access { return $combinedFilter; } + /** + * @brief creates a filter part for to perfrom search for users + * @param string $search the search term + * @return string the final filter part to use in LDAP searches + */ + public function getFilterPartForUserSearch($search) { + return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForUserSearch, $this->connection->ldapUserDisplayName); + } + + /** + * @brief creates a filter part for to perfrom search for groups + * @param string $search the search term + * @return string the final filter part to use in LDAP searches + */ + public function getFilterPartForGroupSearch($search) { + return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForGroupSearch, $this->connection->ldapGroupDisplayName); + } + + /** + * @brief creates a filter part for searches + * @param string $search the search term + * @param string $fallbackAttribute a fallback attribute in case the user + * did not define search attributes. Typically the display name attribute. + * @returns string the final filter part to use in LDAP searches + */ + private function getFilterPartForSearch($search, $searchAttributes, $fallbackAttribute) { + $filter = array(); + $search = empty($search) ? '*' : '*'.$search.'*'; + if(!is_array($searchAttributes) || count($searchAttributes) == 0) { + if(empty($fallbackAttribute)) { + return ''; + } + $filter[] = $fallbackAttribute . '=' . $search; + } else { + foreach($searchAttributes as $attribute) { + $filter[] = $attribute . '=' . $search; + } + } + if(count($filter) == 1) { + return '('.$filter[0].')'; + } + return $this->combineFilterWithOr($filter); + } + public function areCredentialsValid($name, $password) { $name = $this->DNasBaseParameter($name); $testConnection = clone $this->connection; @@ -912,7 +956,7 @@ abstract class Access { $reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit; //a bit recursive, $offset of 0 is the exit \OCP\Util::writeLog('user_ldap', 'Looking for cookie L/O '.$limit.'/'.$reOffset, \OCP\Util::INFO); - $this->search($filter, $base, $attr, $limit, $reOffset, true); + $this->search($filter, array($base), $attr, $limit, $reOffset, true); $cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset); //still no cookie? obviously, the server does not like us. Let's skip paging efforts. //TODO: remember this, probably does not change in the next request... diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index 7046cbbfc78..acc33e047c6 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -4,7 +4,7 @@ * ownCloud – LDAP Access * * @author Arthur Schiwon - * @copyright 2012 Arthur Schiwon blizzz@owncloud.com + * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -25,6 +25,7 @@ namespace OCA\user_ldap\lib; class Connection { private $ldapConnectionRes = null; + private $configPrefix; private $configID; private $configured = false; @@ -35,6 +36,8 @@ class Connection { protected $config = array( 'ldapHost' => null, 'ldapPort' => null, + 'ldapBackupHost' => null, + 'ldapBackupPort' => null, 'ldapBase' => null, 'ldapBaseUsers' => null, 'ldapBaseGroups' => null, @@ -48,6 +51,7 @@ class Connection { 'ldapUserFilter' => null, 'ldapGroupFilter' => null, 'ldapGroupDisplayName' => null, + 'ldapGroupMemberAssocAttr' => null, 'ldapLoginFilter' => null, 'ldapQuotaAttribute' => null, 'ldapQuotaDefault' => null, @@ -55,15 +59,24 @@ class Connection { 'ldapCacheTTL' => null, 'ldapUuidAttribute' => null, 'ldapOverrideUuidAttribute' => null, + 'ldapOverrideMainServer' => false, + 'ldapConfigurationActive' => false, + 'ldapAttributesForUserSearch' => null, + 'ldapAttributesForGroupSearch' => null, 'homeFolderNamingRule' => null, 'hasPagedResultSupport' => false, ); - public function __construct($configID = 'user_ldap') { + /** + * @brief Constructor + * @param $configPrefix a string with the prefix for the configkey column (appconfig table) + * @param $configID a string with the value for the appid column (appconfig table) or null for on-the-fly connections + */ + public function __construct($configPrefix = '', $configID = 'user_ldap') { + $this->configPrefix = $configPrefix; $this->configID = $configID; $this->cache = \OC_Cache::getGlobalCache(); $this->config['hasPagedResultSupport'] = (function_exists('ldap_control_paged_result') && function_exists('ldap_control_paged_result_response')); - \OCP\Util::writeLog('user_ldap', 'PHP supports paged results? '.print_r($this->config['hasPagedResultSupport'], true), \OCP\Util::INFO); } public function __destruct() { @@ -84,12 +97,12 @@ class Connection { public function __set($name, $value) { $changed = false; - //omly few options are writable + //only few options are writable if($name == 'ldapUuidAttribute') { \OCP\Util::writeLog('user_ldap', 'Set config ldapUuidAttribute to '.$value, \OCP\Util::DEBUG); $this->config[$name] = $value; if(!empty($this->configID)) { - \OCP\Config::setAppValue($this->configID, 'ldap_uuid_attribute', $value); + \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', $value); } $changed = true; } @@ -126,7 +139,7 @@ class Connection { } private function getCacheKey($key) { - $prefix = 'LDAP-'.$this->configID.'-'; + $prefix = 'LDAP-'.$this->configID.'-'.$this->configPrefix.'-'; if(is_null($key)) { return $prefix; } @@ -164,7 +177,8 @@ class Connection { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->config['ldapCacheTTL']) { + if(!$this->config['ldapCacheTTL'] + || !$this->config['ldapConfigurationActive']) { return null; } $key = $this->getCacheKey($key); @@ -176,42 +190,96 @@ class Connection { $this->cache->clear($this->getCacheKey(null)); } + private function getValue($varname) { + static $defaults; + if(is_null($defaults)){ + $defaults = $this->getDefaults(); + } + return \OCP\Config::getAppValue($this->configID, + $this->configPrefix.$varname, + $defaults[$varname]); + } + + private function setValue($varname, $value) { + \OCP\Config::setAppValue($this->configID, + $this->configPrefix.$varname, + $value); + } + /** * Caches the general LDAP configuration. */ private function readConfiguration($force = false) { - \OCP\Util::writeLog('user_ldap', 'Checking conf state: isConfigured? '.print_r($this->configured, true).' isForce? '.print_r($force, true).' configID? '.print_r($this->configID, true), \OCP\Util::DEBUG); if((!$this->configured || $force) && !is_null($this->configID)) { - \OCP\Util::writeLog('user_ldap', 'Reading the configuration', \OCP\Util::DEBUG); - $this->config['ldapHost'] = \OCP\Config::getAppValue($this->configID, 'ldap_host', ''); - $this->config['ldapPort'] = \OCP\Config::getAppValue($this->configID, 'ldap_port', 389); - $this->config['ldapAgentName'] = \OCP\Config::getAppValue($this->configID, 'ldap_dn', ''); - $this->config['ldapAgentPassword'] = base64_decode(\OCP\Config::getAppValue($this->configID, 'ldap_agent_password', '')); - $this->config['ldapBase'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base', '')); - $this->config['ldapBaseUsers'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_users', $this->config['ldapBase'])); - $this->config['ldapBaseGroups'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_groups', $this->config['ldapBase'])); - $this->config['ldapTLS'] = \OCP\Config::getAppValue($this->configID, 'ldap_tls', 0); - $this->config['ldapNoCase'] = \OCP\Config::getAppValue($this->configID, 'ldap_nocase', 0); - $this->config['turnOffCertCheck'] = \OCP\Config::getAppValue($this->configID, 'ldap_turn_off_cert_check', 0); - $this->config['ldapUserDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, 'ldap_display_name', 'uid'), 'UTF-8'); - $this->config['ldapUserFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_userlist_filter', 'objectClass=person'); - $this->config['ldapGroupFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_group_filter', '(objectClass=posixGroup)'); - $this->config['ldapLoginFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_login_filter', '(uid=%uid)'); - $this->config['ldapGroupDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, 'ldap_group_display_name', 'uid'), 'UTF-8'); - $this->config['ldapQuotaAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_quota_attr', ''); - $this->config['ldapQuotaDefault'] = \OCP\Config::getAppValue($this->configID, 'ldap_quota_def', ''); - $this->config['ldapEmailAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_email_attr', ''); - $this->config['ldapGroupMemberAssocAttr'] = \OCP\Config::getAppValue($this->configID, 'ldap_group_member_assoc_attribute', 'uniqueMember'); - $this->config['ldapIgnoreNamingRules'] = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false); - $this->config['ldapCacheTTL'] = \OCP\Config::getAppValue($this->configID, 'ldap_cache_ttl', 10*60); - $this->config['ldapUuidAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_uuid_attribute', 'auto'); - $this->config['ldapOverrideUuidAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_override_uuid_attribute', 0); - $this->config['homeFolderNamingRule'] = \OCP\Config::getAppValue($this->configID, 'home_folder_naming_rule', 'opt:username'); + $defaults = $this->getDefaults(); + $v = 'getValue'; + $this->config['ldapHost'] = $this->$v('ldap_host'); + $this->config['ldapBackupHost'] = $this->$v('ldap_backup_host'); + $this->config['ldapPort'] = $this->$v('ldap_port'); + $this->config['ldapBackupPort'] = $this->$v('ldap_backup_port'); + $this->config['ldapOverrideMainServer'] + = $this->$v('ldap_override_main_server'); + $this->config['ldapAgentName'] = $this->$v('ldap_dn'); + $this->config['ldapAgentPassword'] + = base64_decode($this->$v('ldap_agent_password')); + $rawLdapBase = $this->$v('ldap_base'); + $this->config['ldapBase'] + = preg_split('/\r\n|\r|\n/', $rawLdapBase); + $this->config['ldapBaseUsers'] + = preg_split('/\r\n|\r|\n/', ($this->$v('ldap_base_users'))); + $this->config['ldapBaseGroups'] + = preg_split('/\r\n|\r|\n/', $this->$v('ldap_base_groups')); + unset($rawLdapBase); + $this->config['ldapTLS'] = $this->$v('ldap_tls'); + $this->config['ldapNoCase'] = $this->$v('ldap_nocase'); + $this->config['turnOffCertCheck'] + = $this->$v('ldap_turn_off_cert_check'); + $this->config['ldapUserDisplayName'] + = mb_strtolower($this->$v('ldap_display_name'),'UTF-8'); + $this->config['ldapUserFilter'] + = $this->$v('ldap_userlist_filter'); + $this->config['ldapGroupFilter'] = $this->$v('ldap_group_filter'); + $this->config['ldapLoginFilter'] = $this->$v('ldap_login_filter'); + $this->config['ldapGroupDisplayName'] + = mb_strtolower($this->$v('ldap_group_display_name'), 'UTF-8'); + $this->config['ldapQuotaAttribute'] + = $this->$v('ldap_quota_attr'); + $this->config['ldapQuotaDefault'] + = $this->$v('ldap_quota_def'); + $this->config['ldapEmailAttribute'] + = $this->$v('ldap_email_attr'); + $this->config['ldapGroupMemberAssocAttr'] + = $this->$v('ldap_group_member_assoc_attribute'); + $this->config['ldapIgnoreNamingRules'] + = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false); + $this->config['ldapCacheTTL'] = $this->$v('ldap_cache_ttl'); + $this->config['ldapUuidAttribute'] + = $this->$v('ldap_uuid_attribute'); + $this->config['ldapOverrideUuidAttribute'] + = $this->$v('ldap_override_uuid_attribute'); + $this->config['homeFolderNamingRule'] + = $this->$v('home_folder_naming_rule'); + $this->config['ldapConfigurationActive'] + = $this->$v('ldap_configuration_active'); + $this->config['ldapAttributesForUserSearch'] + = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_user_search')); + $this->config['ldapAttributesForGroupSearch'] + = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_group_search')); $this->configured = $this->validateConfiguration(); } } + /** + * @return returns an array that maps internal variable names to database fields + */ + private function getConfigTranslationArray() { + static $array = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_backup_host'=>'ldapBackupHost', 'ldap_backup_port'=>'ldapBackupPort', 'ldap_override_main_server' => 'ldapOverrideMainServer', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName', + + 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL', 'home_folder_naming_rule' => 'homeFolderNamingRule', 'ldap_turn_off_cert_check' => 'turnOffCertCheck', 'ldap_configuration_active' => 'ldapConfigurationActive', 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch'); + return $array; + } + /** * @brief set LDAP configuration with values delivered by an array, not read from configuration * @param $config array that holds the config parameters in an associated array @@ -223,9 +291,7 @@ class Connection { return false; } - $params = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName', - - 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL', 'home_folder_naming_rule' => 'homeFolderNamingRule'); + $params = $this->getConfigTranslationArray(); foreach($config as $parameter => $value) { if(isset($this->config[$parameter])) { @@ -246,6 +312,71 @@ class Connection { return $this->configured; } + /** + * @brief saves the current Configuration in the database + */ + public function saveConfiguration() { + $trans = array_flip($this->getConfigTranslationArray()); + foreach($this->config as $key => $value) { + \OCP\Util::writeLog('user_ldap', 'LDAP: storing key '.$key.' value '.$value, \OCP\Util::DEBUG); + switch ($key) { + case 'ldapAgentPassword': + $value = base64_encode($value); + break; + case 'homeFolderNamingRule': + $value = empty($value) ? 'opt:username' : 'attr:'.$value; + break; + case 'ldapBase': + case 'ldapBaseUsers': + case 'ldapBaseGroups': + case 'ldapAttributesForUserSearch': + case 'ldapAttributesForGroupSearch': + if(is_array($value)){ + $value = implode("\n", $value); + } + break; + case 'ldapIgnoreNamingRules': + case 'ldapOverrideUuidAttribute': + case 'ldapUuidAttribute': + case 'hasPagedResultSupport': + continue 2; + } + if(is_null($value)) { + $value = ''; + } + + $this->setValue($trans[$key], $value); + } + $this->clearCache(); + } + + /** + * @brief get the current LDAP configuration + * @return array + */ + public function getConfiguration() { + $this->readConfiguration(); + $trans = $this->getConfigTranslationArray(); + $config = array(); + foreach($trans as $dbKey => $classKey) { + if($classKey == 'homeFolderNamingRule') { + if(strpos($this->config[$classKey], 'opt') === 0) { + $config[$dbKey] = ''; + } else { + $config[$dbKey] = substr($this->config[$classKey], 5); + } + continue; + } else if((strpos($classKey, 'ldapBase') !== false) + || (strpos($classKey, 'ldapAttributes') !== false)) { + $config[$dbKey] = implode("\n", $this->config[$classKey]); + continue; + } + $config[$dbKey] = $this->config[$classKey]; + } + + return $config; + } + /** * @brief Validates the user specified configuration * @returns true if configuration seems OK, false otherwise @@ -264,9 +395,21 @@ class Connection { \OCP\Util::writeLog('user_ldap', 'No group filter is specified, LDAP group feature will not be used.', \OCP\Util::INFO); } if(!in_array($this->config['ldapUuidAttribute'], array('auto', 'entryuuid', 'nsuniqueid', 'objectguid')) && (!is_null($this->configID))) { - \OCP\Config::setAppValue($this->configID, 'ldap_uuid_attribute', 'auto'); + \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', 'auto'); \OCP\Util::writeLog('user_ldap', 'Illegal value for the UUID Attribute, reset to autodetect.', \OCP\Util::INFO); } + if(empty($this->config['ldapBackupPort'])) { + //force default + $this->config['ldapBackupPort'] = $this->config['ldapPort']; + } + foreach(array('ldapAttributesForUserSearch', 'ldapAttributesForGroupSearch') as $key) { + if(is_array($this->config[$key]) + && count($this->config[$key]) == 1 + && empty($this->config[$key][0])) { + $this->config[$key] = array(); + } + } + //second step: critical checks. If left empty or filled wrong, set as unconfigured and give a warning. @@ -310,10 +453,51 @@ class Connection { return $configurationOK; } + /** + * @returns an associative array with the default values. Keys are correspond + * to config-value entries in the database table + */ + public function getDefaults() { + return array( + 'ldap_host' => '', + 'ldap_port' => '389', + 'ldap_backup_host' => '', + 'ldap_backup_port' => '', + 'ldap_override_main_server' => '', + 'ldap_dn' => '', + 'ldap_agent_password' => '', + 'ldap_base' => '', + 'ldap_base_users' => '', + 'ldap_base_groups' => '', + 'ldap_userlist_filter' => 'objectClass=person', + 'ldap_login_filter' => 'uid=%uid', + 'ldap_group_filter' => 'objectClass=posixGroup', + 'ldap_display_name' => 'cn', + 'ldap_group_display_name' => 'cn', + 'ldap_tls' => 1, + 'ldap_nocase' => 0, + 'ldap_quota_def' => '', + 'ldap_quota_attr' => '', + 'ldap_email_attr' => '', + 'ldap_group_member_assoc_attribute' => 'uniqueMember', + 'ldap_cache_ttl' => 600, + 'ldap_uuid_attribute' => 'auto', + 'ldap_override_uuid_attribute' => 0, + 'home_folder_naming_rule' => 'opt:username', + 'ldap_turn_off_cert_check' => 0, + 'ldap_configuration_active' => 1, + 'ldap_attributes_for_user_search' => '', + 'ldap_attributes_for_group_search' => '', + ); + } + /** * Connects and Binds to LDAP */ private function establishConnection() { + if(!$this->config['ldapConfigurationActive']) { + return null; + } static $phpLDAPinstalled = true; if(!$phpLDAPinstalled) { return false; @@ -336,16 +520,40 @@ class Connection { \OCP\Util::writeLog('user_ldap', 'Could not turn off SSL certificate validation.', \OCP\Util::WARN); } } - $this->ldapConnectionRes = ldap_connect($this->config['ldapHost'], $this->config['ldapPort']); - if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) { - if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) { - if($this->config['ldapTLS']) { - ldap_start_tls($this->ldapConnectionRes); - } - } + if(!$this->config['ldapOverrideMainServer'] && !$this->getFromCache('overrideMainServer')) { + $this->doConnect($this->config['ldapHost'], $this->config['ldapPort']); + $bindStatus = $this->bind(); + $error = ldap_errno($this->ldapConnectionRes); + } else { + $bindStatus = false; + $error = null; } - return $this->bind(); + $error = null; + //if LDAP server is not reachable, try the Backup (Replica!) Server + if((!$bindStatus && ($error == -1)) + || $this->config['ldapOverrideMainServer'] + || $this->getFromCache('overrideMainServer')) { + $this->doConnect($this->config['ldapBackupHost'], $this->config['ldapBackupPort']); + $bindStatus = $this->bind(); + if($bindStatus && $error == -1) { + //when bind to backup server succeeded and failed to main server, + //skip contacting him until next cache refresh + $this->writeToCache('overrideMainServer', true); + } + } + return $bindStatus; + } + } + + private function doConnect($host, $port) { + $this->ldapConnectionRes = ldap_connect($host, $port); + if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) { + if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) { + if($this->config['ldapTLS']) { + ldap_start_tls($this->ldapConnectionRes); + } + } } } @@ -353,6 +561,9 @@ class Connection { * Binds to LDAP */ public function bind() { + if(!$this->config['ldapConfigurationActive']) { + return false; + } $ldapLogin = @ldap_bind($this->getConnectionResource(), $this->config['ldapAgentName'], $this->config['ldapAgentPassword']); if(!$ldapLogin) { \OCP\Util::writeLog('user_ldap', 'Bind failed: ' . ldap_errno($this->ldapConnectionRes) . ': ' . ldap_error($this->ldapConnectionRes), \OCP\Util::ERROR); diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php new file mode 100644 index 00000000000..29ce998dae7 --- /dev/null +++ b/apps/user_ldap/lib/helper.php @@ -0,0 +1,105 @@ +. + * + */ + +namespace OCA\user_ldap\lib; + +class Helper { + + /** + * @brief returns prefixes for each saved LDAP/AD server configuration. + * @param bool optional, whether only active configuration shall be + * retrieved, defaults to false + * @return array with a list of the available prefixes + * + * Configuration prefixes are used to set up configurations for n LDAP or + * AD servers. Since configuration is stored in the database, table + * appconfig under appid user_ldap, the common identifiers in column + * 'configkey' have a prefix. The prefix for the very first server + * configuration is empty. + * Configkey Examples: + * Server 1: ldap_login_filter + * Server 2: s1_ldap_login_filter + * Server 3: s2_ldap_login_filter + * + * The prefix needs to be passed to the constructor of Connection class, + * except the default (first) server shall be connected to. + * + */ + static public function getServerConfigurationPrefixes($activeConfigurations = false) { + $referenceConfigkey = 'ldap_configuration_active'; + + $query = ' + SELECT DISTINCT `configkey` + FROM `*PREFIX*appconfig` + WHERE `configkey` LIKE ? + '; + if($activeConfigurations) { + $query .= ' AND `configvalue` = 1'; + } + $query = \OCP\DB::prepare($query); + + $serverConfigs = $query->execute(array('%'.$referenceConfigkey))->fetchAll(); + $prefixes = array(); + + foreach($serverConfigs as $serverConfig) { + $len = strlen($serverConfig['configkey']) - strlen($referenceConfigkey); + $prefixes[] = substr($serverConfig['configkey'], 0, $len); + } + + return $prefixes; + } + + /** + * @brief deletes a given saved LDAP/AD server configuration. + * @param string the configuration prefix of the config to delete + * @return bool true on success, false otherwise + */ + static public function deleteServerConfiguration($prefix) { + //just to be on the safe side + \OCP\User::checkAdminUser(); + + if(!in_array($prefix, self::getServerConfigurationPrefixes())) { + return false; + } + + $query = \OCP\DB::prepare(' + DELETE + FROM `*PREFIX*appconfig` + WHERE `configkey` LIKE ? + AND `appid` = "user_ldap" + AND `configkey` NOT IN ("enabled", "installed_version", "types", "bgjUpdateGroupsLastRun") + '); + $res = $query->execute(array($prefix.'%')); + + if(\OCP\DB::isError($res)) { + return false; + } + + if($res->numRows() == 0) { + return false; + } + + return true; + } +} + diff --git a/apps/user_ldap/lib/proxy.php b/apps/user_ldap/lib/proxy.php new file mode 100644 index 00000000000..c80e2163475 --- /dev/null +++ b/apps/user_ldap/lib/proxy.php @@ -0,0 +1,104 @@ +. + * + */ + +namespace OCA\user_ldap\lib; + +abstract class Proxy { + static private $connectors = array(); + + public function __construct() { + $this->cache = \OC_Cache::getGlobalCache(); + } + + private function addConnector($configPrefix) { + self::$connectors[$configPrefix] = new \OCA\user_ldap\lib\Connection($configPrefix); + } + + protected function getConnector($configPrefix) { + if(!isset(self::$connectors[$configPrefix])) { + $this->addConnector($configPrefix); + } + return self::$connectors[$configPrefix]; + } + + protected function getConnectors() { + return self::$connectors; + } + + protected function getUserCacheKey($uid) { + return 'user-'.$uid.'-lastSeenOn'; + } + + protected function getGroupCacheKey($gid) { + return 'group-'.$gid.'-lastSeenOn'; + } + + abstract protected function callOnLastSeenOn($id, $method, $parameters); + abstract protected function walkBackends($id, $method, $parameters); + + /** + * @brief Takes care of the request to the User backend + * @param $uid string, the uid connected to the request + * @param $method string, the method of the user backend that shall be called + * @param $parameters an array of parameters to be passed + * @return mixed, the result of the specified method + */ + protected function handleRequest($id, $method, $parameters) { + if(!$result = $this->callOnLastSeenOn($id, $method, $parameters)) { + $result = $this->walkBackends($id, $method, $parameters); + } + return $result; + } + + private function getCacheKey($key) { + $prefix = 'LDAP-Proxy-'; + if(is_null($key)) { + return $prefix; + } + return $prefix.md5($key); + } + + public function getFromCache($key) { + if(!$this->isCached($key)) { + return null; + } + $key = $this->getCacheKey($key); + + return unserialize(base64_decode($this->cache->get($key))); + } + + public function isCached($key) { + $key = $this->getCacheKey($key); + return $this->cache->hasKey($key); + } + + public function writeToCache($key, $value) { + $key = $this->getCacheKey($key); + $value = base64_encode(serialize($value)); + $this->cache->set($key, $value, '2592000'); + } + + public function clearCache() { + $this->cache->clear($this->getCacheKey(null)); + } +} \ No newline at end of file diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index 58ec8e7f7a4..d5d2f648b38 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -23,58 +23,46 @@ OC_Util::checkAdminUser(); -$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_agent_password', 'ldap_base', 'ldap_base_users', 'ldap_base_groups', 'ldap_userlist_filter', 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name', 'ldap_group_display_name', 'ldap_tls', 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def', 'ldap_quota_attr', 'ldap_email_attr', 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl', 'home_folder_naming_rule'); +$params = array('ldap_host', 'ldap_port', 'ldap_backup_host', + 'ldap_backup_port', 'ldap_override_main_server', 'ldap_dn', + 'ldap_agent_password', 'ldap_base', 'ldap_base_users', + 'ldap_base_groups', 'ldap_userlist_filter', + 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name', + 'ldap_group_display_name', 'ldap_tls', + 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def', + 'ldap_quota_attr', 'ldap_email_attr', + 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl', + 'home_folder_naming_rule' + ); OCP\Util::addscript('user_ldap', 'settings'); OCP\Util::addstyle('user_ldap', 'settings'); -if ($_POST) { - $clearCache = false; - foreach($params as $param) { - if(isset($_POST[$param])) { - $clearCache = true; - if('ldap_agent_password' == $param) { - OCP\Config::setAppValue('user_ldap', $param, base64_encode($_POST[$param])); - } elseif('home_folder_naming_rule' == $param) { - $value = empty($_POST[$param]) ? 'opt:username' : 'attr:'.$_POST[$param]; - OCP\Config::setAppValue('user_ldap', $param, $value); - } else { - OCP\Config::setAppValue('user_ldap', $param, $_POST[$param]); - } - } - elseif('ldap_tls' == $param) { - // unchecked checkboxes are not included in the post paramters - OCP\Config::setAppValue('user_ldap', $param, 0); - } - elseif('ldap_nocase' == $param) { - OCP\Config::setAppValue('user_ldap', $param, 0); - } - elseif('ldap_turn_off_cert_check' == $param) { - OCP\Config::setAppValue('user_ldap', $param, 0); - } - } - if($clearCache) { - $ldap = new \OCA\user_ldap\lib\Connection('user_ldap'); - $ldap->clearCache(); - } -} - // fill template -$tmpl = new OCP\Template( 'user_ldap', 'settings'); -foreach($params as $param) { - $value = OCP\Config::getAppValue('user_ldap', $param, ''); - $tmpl->assign($param, $value); +$tmpl = new OCP\Template('user_ldap', 'settings'); + +$prefixes = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(); +$scoHtml = ''; +$i = 1; +$sel = ' selected'; +foreach($prefixes as $prefix) { + $scoHtml .= ''; + $sel = ''; +} +if(count($prefixes) == 0) { + $scoHtml .= ''; +} +$tmpl->assign('serverConfigurationOptions', $scoHtml, false); + +// assign default values +if(!isset($ldap)) { + $ldap = new \OCA\user_ldap\lib\Connection(); +} +$defaults = $ldap->getDefaults(); +foreach($defaults as $key => $default) { + $tmpl->assign($key.'_default', $default); } -// settings with default values -$tmpl->assign( 'ldap_port', OCP\Config::getAppValue('user_ldap', 'ldap_port', '389')); -$tmpl->assign( 'ldap_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_display_name', 'uid')); -$tmpl->assign( 'ldap_group_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_group_display_name', 'cn')); -$tmpl->assign( 'ldap_group_member_assoc_attribute', OCP\Config::getAppValue('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember')); -$tmpl->assign( 'ldap_agent_password', base64_decode(OCP\Config::getAppValue('user_ldap', 'ldap_agent_password'))); -$tmpl->assign( 'ldap_cache_ttl', OCP\Config::getAppValue('user_ldap', 'ldap_cache_ttl', '600')); -$hfnr = OCP\Config::getAppValue('user_ldap', 'home_folder_naming_rule', 'opt:username'); -$hfnr = ($hfnr == 'opt:username') ? '' : substr($hfnr, strlen('attr:')); -$tmpl->assign( 'home_folder_naming_rule', $hfnr, ''); +// $tmpl->assign(); return $tmpl->fetchPage(); diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index b24c6e2f025..eb3840a611b 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -12,31 +12,54 @@ } ?>
-

-

-

-

-


t('use %%uid placeholder, e.g. "uid=%%uid"');?>

-


t('without any placeholder, e.g. "objectClass=person".');?>

-


t('without any placeholder, e.g. "objectClass=posixGroup".');?>

+

+ +

+

+

+

+

+


t('use %%uid placeholder, e.g. "uid=%%uid"');?>

+


t('without any placeholder, e.g. "objectClass=person".');?>

+


t('without any placeholder, e.g. "objectClass=posixGroup".');?>

-

-

-

-

-

title="t('Do not use it for SSL connections, it will fail.');?>" />

-

>

-

>
t('Not recommended, use for testing only.');?>

-

-

-

-

-

-

-

+
+

t('Connection Settings');?>

+
+

+

+

+

+

+

+

>

+


t('Not recommended, use for testing only.');?>

+

+
+

t('Directory Settings');?>

+
+

+

+

+

+

+

+

+
+

t('Special Attributes');?>

+
+

+

+

+

+
+
- t('Help');?> + t('Help');?> diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index b3180e11358..6aa8cd9b83c 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -116,10 +116,9 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { if($limit <= 0) { $limit = null; } - $search = empty($search) ? '*' : '*'.$search.'*'; $filter = $this->combineFilterWithAnd(array( $this->connection->ldapUserFilter, - $this->connection->ldapUserDisplayName.'='.$search + $this->getFilterPartForUserSearch($search) )); \OCP\Util::writeLog('user_ldap', 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, \OCP\Util::DEBUG); diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php new file mode 100644 index 00000000000..a94be3354fc --- /dev/null +++ b/apps/user_ldap/user_proxy.php @@ -0,0 +1,186 @@ +. + * + */ + +namespace OCA\user_ldap; + +class User_Proxy extends lib\Proxy implements \OCP\UserInterface { + private $backends = array(); + private $refBackend = null; + + /** + * @brief Constructor + * @param $serverConfigPrefixes array containing the config Prefixes + */ + public function __construct($serverConfigPrefixes) { + parent::__construct(); + foreach($serverConfigPrefixes as $configPrefix) { + $this->backends[$configPrefix] = new \OCA\user_ldap\USER_LDAP(); + $connector = $this->getConnector($configPrefix); + $this->backends[$configPrefix]->setConnector($connector); + if(is_null($this->refBackend)) { + $this->refBackend = &$this->backends[$configPrefix]; + } + } + } + + /** + * @brief Tries the backends one after the other until a positive result is returned from the specified method + * @param $uid string, the uid connected to the request + * @param $method string, the method of the user backend that shall be called + * @param $parameters an array of parameters to be passed + * @return mixed, the result of the method or false + */ + protected function walkBackends($uid, $method, $parameters) { + $cacheKey = $this->getUserCacheKey($uid); + foreach($this->backends as $configPrefix => $backend) { + if($result = call_user_func_array(array($backend, $method), $parameters)) { + $this->writeToCache($cacheKey, $configPrefix); + return $result; + } + } + return false; + } + + /** + * @brief Asks the backend connected to the server that supposely takes care of the uid from the request. + * @param $uid string, the uid connected to the request + * @param $method string, the method of the user backend that shall be called + * @param $parameters an array of parameters to be passed + * @return mixed, the result of the method or false + */ + protected function callOnLastSeenOn($uid, $method, $parameters) { + $cacheKey = $this->getUserCacheKey($uid); + $prefix = $this->getFromCache($cacheKey); + //in case the uid has been found in the past, try this stored connection first + if(!is_null($prefix)) { + if(isset($this->backends[$prefix])) { + $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters); + if(!$result) { + //not found here, reset cache to null + $this->writeToCache($cacheKey, null); + } + return $result; + } + } + return false; + } + + /** + * @brief Check if backend implements actions + * @param $actions bitwise-or'ed actions + * @returns boolean + * + * Returns the supported actions as int to be + * compared with OC_USER_BACKEND_CREATE_USER etc. + */ + public function implementsActions($actions) { + //it's the same across all our user backends obviously + return $this->refBackend->implementsActions($actions); + } + + /** + * @brief Get a list of all users + * @returns array with all uids + * + * Get a list of all users. + */ + public function getUsers($search = '', $limit = 10, $offset = 0) { + //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends + $users = array(); + foreach($this->backends as $backend) { + $backendUsers = $backend->getUsers($search, $limit, $offset); + if (is_array($backendUsers)) { + $users = array_merge($users, $backendUsers); + } + } + return $users; + } + + /** + * @brief check if a user exists + * @param string $uid the username + * @return boolean + */ + public function userExists($uid) { + return $this->handleRequest($uid, 'userExists', array($uid)); + } + + /** + * @brief Check if the password is correct + * @param $uid The username + * @param $password The password + * @returns true/false + * + * Check if the password is correct without logging in the user + */ + public function checkPassword($uid, $password) { + return $this->handleRequest($uid, 'checkPassword', array($uid, $password)); + } + + /** + * @brief get the user's home directory + * @param string $uid the username + * @return boolean + */ + public function getHome($uid) { + return $this->handleRequest($uid, 'getHome', array($uid)); + } + + /** + * @brief get display name of the user + * @param $uid user ID of the user + * @return display name + */ + public function getDisplayName($uid) { + return $this->handleRequest($uid, 'getDisplayName', array($uid)); + } + + /** + * @brief Get a list of all display names + * @returns array with all displayNames (value) and the corresponding uids (key) + * + * Get a list of all display names and user ids. + */ + public function getDisplayNames($search = '', $limit = null, $offset = null) { + //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends + $users = array(); + foreach($this->backends as $backend) { + $backendUsers = $backend->getDisplayNames($search, $limit, $offset); + if (is_array($backendUsers)) { + $users = array_merge($users, $backendUsers); + } + } + return $users; + } + + /** + * @brief delete a user + * @param $uid The username of the user to delete + * @returns true/false + * + * Deletes a user + */ + public function deleteUser($uid) { + return false; + } +} \ No newline at end of file diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml index e51f2e9ec4f..f62f03577e8 100755 --- a/apps/user_webdavauth/appinfo/info.xml +++ b/apps/user_webdavauth/appinfo/info.xml @@ -7,7 +7,7 @@ This app is not compatible to the LDAP user and group backend. AGPL Frank Karlitschek - 4.9 + 4.91 true diff --git a/apps/user_webdavauth/l10n/es_AR.php b/apps/user_webdavauth/l10n/es_AR.php index 245a5101341..103c3738e2d 100644 --- a/apps/user_webdavauth/l10n/es_AR.php +++ b/apps/user_webdavauth/l10n/es_AR.php @@ -1,3 +1,5 @@ "URL: http://" +"WebDAV Authentication" => "Autenticación de WevDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. 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 URL. 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." ); diff --git a/apps/user_webdavauth/l10n/id.php b/apps/user_webdavauth/l10n/id.php new file mode 100644 index 00000000000..4324ee8ff52 --- /dev/null +++ b/apps/user_webdavauth/l10n/id.php @@ -0,0 +1,5 @@ + "Otentikasi WebDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. 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 akan mengirimkan informasi pengguna ke URL ini. Pengaya akan mengecek respon dan menginterpretasikan kode status HTTP 401 serta 403 sebagai informasi yang keliru, sedangkan respon lainnya dianggap benar." +); diff --git a/apps/user_webdavauth/l10n/ko.php b/apps/user_webdavauth/l10n/ko.php index 245a5101341..578ff35e721 100644 --- a/apps/user_webdavauth/l10n/ko.php +++ b/apps/user_webdavauth/l10n/ko.php @@ -1,3 +1,5 @@ "URL: http://" +"WebDAV Authentication" => "WebDAV 인증", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. 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에서 이 URL로 사용자 인증 정보를 보냅니다. 이 플러그인은 응답을 확인하여 HTTP 상태 코드 401이나 403이 돌아온 경우에 잘못된 인증 정보로 간주합니다. 다른 모든 상태 코드는 올바른 인증 정보로 간주합니다." ); diff --git a/apps/user_webdavauth/l10n/lv.php b/apps/user_webdavauth/l10n/lv.php new file mode 100644 index 00000000000..d0043df9f07 --- /dev/null +++ b/apps/user_webdavauth/l10n/lv.php @@ -0,0 +1,5 @@ + "WebDAV autentifikācija", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. 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 sūtīs lietotāja akreditācijas datus uz šo URL. Šis spraudnis pārbauda atbildi un interpretē HTTP statusa kodus 401 un 403 kā nederīgus akreditācijas datus un visas citas atbildes kā derīgus akreditācijas datus." +); diff --git a/apps/user_webdavauth/l10n/pt_BR.php b/apps/user_webdavauth/l10n/pt_BR.php index 991c746a221..6ddd00ccc3e 100644 --- a/apps/user_webdavauth/l10n/pt_BR.php +++ b/apps/user_webdavauth/l10n/pt_BR.php @@ -1,3 +1,5 @@ "URL do WebDAV: http://" +"WebDAV Authentication" => "Autenticação WebDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "O ownCloud enviará as credenciais do usuário para esta URL. Este plugin verifica a resposta e interpreta o os códigos de status do HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como credenciais válidas." ); diff --git a/apps/user_webdavauth/l10n/ru_RU.php b/apps/user_webdavauth/l10n/ru_RU.php index 245a5101341..46f74cb972f 100644 --- a/apps/user_webdavauth/l10n/ru_RU.php +++ b/apps/user_webdavauth/l10n/ru_RU.php @@ -1,3 +1,4 @@ "WebDAV аутентификация", "URL: http://" => "URL: http://" ); diff --git a/apps/user_webdavauth/l10n/sk_SK.php b/apps/user_webdavauth/l10n/sk_SK.php index 27f84a24f8b..c4e6dfddc7b 100644 --- a/apps/user_webdavauth/l10n/sk_SK.php +++ b/apps/user_webdavauth/l10n/sk_SK.php @@ -1,5 +1,5 @@ "WebDAV overenie", "URL: http://" => "URL: http://", -"ownCloud will send the user credentials to this URL. 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 odošle používateľské údajena zadanú URL. Plugin skontroluje odpoveď a považuje návratovou hodnotu HTTP 401 a 403 za neplatné údaje a všetky ostatné hodnoty ako platné prihlasovacie údaje." +"ownCloud will send the user credentials to this URL. 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 odošle používateľské údaje na zadanú URL. Plugin skontroluje odpoveď a považuje návratovú hodnotu HTTP 401 a 403 za neplatné údaje a všetky ostatné hodnoty ako platné prihlasovacie údaje." ); diff --git a/apps/user_webdavauth/l10n/sr.php b/apps/user_webdavauth/l10n/sr.php new file mode 100644 index 00000000000..518fcbe9be5 --- /dev/null +++ b/apps/user_webdavauth/l10n/sr.php @@ -0,0 +1,5 @@ + "WebDAV провера идентитета", +"URL: http://" => "Адреса: http://", +"ownCloud will send the user credentials to this URL. 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 ће послати акредитиве корисника на ову адресу. Овај прикључак проверава одговор и тумачи HTTP статусне кодове 401 и 403 као неисправне акредитиве, а све остале одговоре као исправне." +); diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php index 41d7fa51cd2..7eabb0d48cc 100755 --- a/apps/user_webdavauth/settings.php +++ b/apps/user_webdavauth/settings.php @@ -24,7 +24,9 @@ OC_Util::checkAdminUser(); if($_POST) { - + // CSRF check + OCP\JSON::callCheck(); + if(isset($_POST['webdav_url'])) { OC_CONFIG::setValue('user_webdavauth_url', strip_tags($_POST['webdav_url'])); } diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php index 880b77ac959..45f4d81aecf 100755 --- a/apps/user_webdavauth/templates/settings.php +++ b/apps/user_webdavauth/templates/settings.php @@ -2,6 +2,7 @@
t('WebDAV Authentication');?>

+
t('ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials.'); ?>

diff --git a/config/config.sample.php b/config/config.sample.php index 78d513c7f23..9ac39c439d4 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -32,12 +32,21 @@ $CONFIG = array( /* Force use of HTTPS connection (true = use HTTPS) */ "forcessl" => false, +/* Blacklist a specific file and disallow the upload of files with this name - WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */ +"blacklisted_files" => array('.htaccess'), + /* The automatic hostname detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the automatic detection. You can also add a port. For example "www.example.com:88" */ "overwritehost" => "", /* The automatic protocol detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the protocol detection. For example "https" */ "overwriteprotocol" => "", +/* The automatic webroot detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the automatic detection. For example "/domain.tld/ownCloud" */ +"overwritewebroot" => "", + +/* The automatic detection of ownCloud can fail in certain reverse proxy situations. This option allows to define a manually override condition as regular expression for the remote ip address. For example "^10\.0\.0\.[1-3]$" */ +"overwritecondaddr" => "", + /* A proxy to use to connect to the internet. For example "myproxy.org:88" */ "proxy" => "", @@ -102,6 +111,9 @@ $CONFIG = array( /* Password to use for sendmail mail, depends on mail_smtpauth if this is used */ "mail_smtppassword" => "", +/* How long should ownCloud keep deleted files in the trash bin, default value: 180 days */ +'trashbin_retention_obligation' => 180, + /* Check 3rdparty apps for malicious code fragments */ "appcodechecker" => "", @@ -121,7 +133,7 @@ $CONFIG = array( "remember_login_cookie_lifetime" => 60*60*24*15, /* Custom CSP policy, changing this will overwrite the standard policy */ -"custom_csp_policy" => "default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *", +"custom_csp_policy" => "default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:", /* 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. diff --git a/core/css/styles.css b/core/css/styles.css index 7fb800f79e2..19cfad76268 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -16,8 +16,8 @@ body { background:#fefefe; font:normal .8em/1.6em "Lucida Grande", Arial, Verdan /* HEADERS */ -#body-user #header, #body-settings #header { position:fixed; top:0; left:0; right:0; z-index:100; height:2.5em; line-height:2.5em; padding:.5em; background:#1d2d44; -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; } -#body-login #header { margin:-2em auto 0; text-align:center; height:10em; padding:1em 0 .5em; +#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; -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; } +#body-login #header { margin: -2em auto 0; text-align:center; height:10em; padding:1em 0 .5em; -moz-box-shadow:0 0 1em rgba(0, 0, 0, .5); -webkit-box-shadow:0 0 1em rgba(0, 0, 0, .5); box-shadow:0 0 1em rgba(0, 0, 0, .5); background:#1d2d44; /* Old browsers */ background:-moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */ @@ -28,7 +28,7 @@ background:-ms-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* IE10+ */ background:linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */ filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ } -#owncloud { float:left; vertical-align:middle; } +#owncloud { position:absolute; top:0; left:0; padding:6px; padding-bottom:0; } .header-right { float:right; vertical-align:middle; padding:0 0.5em; } .header-right > * { vertical-align:middle; } @@ -53,17 +53,43 @@ input[type="checkbox"]:hover+label, input[type="checkbox"]:focus+label { color:# #quota { cursor:default; } +/* SCROLLING */ +::-webkit-scrollbar { width:8px; } +::-webkit-scrollbar-track-piece { background-color:transparent; } +::-webkit-scrollbar-thumb { background:#ddd; } + + +#show { float: right; position: absolute; right: 1em; top: 0.8em; display:none; } +#login form input[name="show"] + label { background: url("../img/actions/toggle.png") no-repeat; opacity:0.3; +float: right; width: 24px; position: absolute !important; height: 14px; right: 1em; top: 1.25em;} +#login form input[name="show"]:checked + label { background:url("../img/actions/toggle.png") no-repeat; opacity:0.8; } + + + +/* SHOW PASSWORD TOGGLE */ +#show { + position:absolute; right:1em; top:.8em; float:right; + display:none; +} +#login form input[name="show"] + label { + position:absolute !important; height:14px; width:24px; right:1em; top:1.25em; float:right; + background-image:url("../img/actions/toggle.png"); background-repeat:no-repeat; opacity:.3; +} +#login form input[name="show"]:checked + label { opacity:.8; } + + /* BUTTONS */ input[type="submit"], input[type="button"], button, .button, #quota, div.jp-progress, select, .pager li a { width:auto; padding:.4em; - background-color:rgba(230,230,230,.5); font-weight:bold; color:#555; text-shadow:#fff 0 1px 0; border:1px solid #bbb; border:1px solid rgba(180,180,180,.5); cursor:pointer; - -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; + 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; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, select:hover, select:focus, select:active, input[type="button"]:focus, .button:hover { - background:rgba(255,255,255,.5); color:#333; + background:rgba(250,250,250,.9); color:#333; } input[type="submit"] img, input[type="button"] img, button img, .button img { cursor:pointer; } +#header .button { border:none; -moz-box-shadow:none; -webkit-box-shadow:none; box-shadow:none; } /* Primary action button, use sparingly */ .primary, input[type="submit"].primary, input[type="button"].primary, button.primary, .button.primary { @@ -88,21 +114,30 @@ input[type="submit"] img, input[type="button"] img, button img, .button img { cu #body-login input[type="text"], #body-login input[type="password"] { width:13em; } #body-login input.login { width:auto; float:right; } #remember_login { margin:.8em .2em 0 1em; } -.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; } +.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;} + /* CONTENT ------------------------------------------------------------------ */ #controls { padding:0 0.5em; width:100%; top:3.5em; height:2.8em; margin:0; background:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:50; -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; } #controls .button { display:inline-block; } -#content { height: 100%; width: 100%; position: relative; } -#content-wrapper { height: 100%; width: 100%; padding-top: 3.5em; padding-left: 12.5em; box-sizing: border-box; -moz-box-sizing: border-box; position: absolute;} -#leftcontent, .leftcontent { position:fixed; top: 0; overflow:auto; width:20em; background:#f8f8f8; border-right:1px solid #ddd; box-sizing: border-box; -moz-box-sizing: border-box; height: 100%; padding-top: 6.4em } + +#content { position:relative; height:100%; width:100%; } +#content-wrapper { + position:absolute; height:100%; width:100%; padding-top:3.5em; padding-left:64px; + -moz-box-sizing:border-box; box-sizing:border-box; +} +#leftcontent, .leftcontent { + position:fixed; overflow:auto; top:0; width:20em; height:100%; + background:#f8f8f8; border-right:1px solid #ddd; + -moz-box-sizing:border-box; box-sizing:border-box; padding-top:6.4em; +} #leftcontent li, .leftcontent li { background:#f8f8f8; padding:.5em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 200ms; -moz-transition:background-color 200ms; -o-transition:background-color 200ms; transition:background-color 200ms; } #leftcontent li:hover, #leftcontent li:active, #leftcontent li.active, .leftcontent li:hover, .leftcontent li:active, .leftcontent li.active { background:#eee; } #leftcontent li.active, .leftcontent li.active { font-weight:bold; } #leftcontent li:hover, .leftcontent li:hover { color:#333; background:#ddd; } #leftcontent a { height:100%; display:block; margin:0; padding:0 1em 0 0; float:left; } -#rightcontent, .rightcontent { position:fixed; top:6.4em; left:32.5em; overflow:auto } +#rightcontent, .rightcontent { position:fixed; top:6.4em; left:24.5em; overflow:auto } /* LOG IN & INSTALLATION ------------------------------------------------------------ */ @@ -126,12 +161,13 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b /* Icons for username and password fields to better recognize them */ #adminlogin, #adminpass, #user, #password { width:11.7em!important; padding-left:1.8em; } -#adminlogin+label, #adminpass+label, #user+label, #password+label { left:2.2em; } #adminlogin+label+img, #adminpass+label+img, #user+label+img, #password+label+img { position:absolute; left:1.25em; top:1.65em; opacity:.3; } #adminpass+label+img, #password+label+img { top:1.1em; } +input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; } +#pass_image { position: absolute; top: 1.2em; left: 1.4em; opacity: 0.3; } /* Nicely grouping input field sets */ @@ -155,7 +191,7 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b /* NEEDED FOR INFIELD LABELS */ p.infield { position:relative; } label.infield { cursor:text !important; top:1.05em; left:.85em; } -#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; } +#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; padding-left:1.2em; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } #login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; } @@ -177,14 +213,37 @@ fieldset.warning legend { color:#b94a48 !important; } /* NAVIGATION ------------------------------------------------------------- */ -#navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:75; height:100%; background:#eee; border-right:1px #ccc solid; -moz-box-shadow:-3px 0 7px #000; -webkit-box-shadow:-3px 0 7px #000; box-shadow:-3px 0 7px #000; overflow:hidden;} -#navigation a { display:block; padding:.6em .5em .4em 2.5em; background:#eee 1em center no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; } -#navigation a.active, #navigation a:hover, #navigation a:focus { background-color:#dbdbdb; border-top:1px solid #d4d4d4; border-bottom:1px solid #ccc; color:#333; } -#navigation a.active { background-color:#ddd; } -#navigation #settings { position:absolute; bottom:3.5em; width:100%; } -#expand { position:relative; z-index:100; margin-bottom:-.5em; padding:.5em 10.1em .7em 1.2em; cursor:pointer; } -#expand+span { position:absolute; z-index:99; margin:-1.7em 0 0 2.5em; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; -webkit-transition:opacity 300ms; -moz-transition:opacity 300ms; -o-transition:opacity 300ms; transition:opacity 300ms; } -#expand:hover+span, #expand+span:hover { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; cursor:pointer; } +#navigation { + position:fixed; top:3.5em; float:left; width:64px; padding:0; z-index:75; height:100%; + background:#30343a url('../img/noise.png') repeat; border-right:1px #333 solid; + -moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000; + overflow-x:scroll; +} +#navigation a { + display:block; padding:8px 0 4px; + text-decoration:none; font-size:10px; text-align:center; + color:#fff; text-shadow:#000 0 -1px 0; opacity:.4; + white-space:nowrap; overflow:hidden; text-overflow:ellipsis; // ellipsize long app names +} + #navigation a:hover, #navigation a:focus { opacity:.8; } + #navigation a.active { opacity:1; } + #navigation .icon { display:block; width:32px; height:32px; margin:0 16px 0; } + #navigation .enabled-app:hover, #navigation .enabled-app:focus { opacity:1; } + #navigation .enabled-app img { opacity:0.3; cursor:pointer;} + #navigation .enabled-app a {padding:4px 0 4px; } + #navigation .enabled-app:hover a, #navigation .enabled-app:focus a {opacity:0.8; } + #navigation .enabled-app:hover img, #navigation .enabled-app:focus img {opacity:0.8; } + #navigation li:first-child a { padding-top:16px; } +#settings { float:right; margin-top:7px; color:#bbb; text-shadow:0 -1px 0 #000; } +#expand { padding:15px; cursor:pointer; font-weight:bold; } +#expand:hover, #expand:focus, #expand:active { color:#fff; } +#expand img { opacity:.7; margin-bottom:-2px; } +#expand:hover img, #expand:focus img, #expand:active img { opacity:1; } +#expanddiv { position:absolute; right:0; top:45px; background-color:#444; border-bottom-left-radius:7px; box-shadow: 0 0 20px rgb(29,45,68); z-index:76; } + #expanddiv a { display:block; color:#fff; text-shadow:0 -1px 0 #000; padding:0 8px; opacity:.7; } + #expanddiv a img { margin-bottom:-3px; } + #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active { opacity:1; } + /* VARIOUS REUSABLE SELECTORS */ .hidden { display:none; } @@ -259,6 +318,7 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin .arrow.down { -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -o-transform:rotate(180deg); -ms-transform:rotate(180deg); transform:rotate(180deg); } /* ---- BREADCRUMB ---- */ -div.crumb { float:left; display:block; background:no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; } -div.crumb:first-child { padding-left:1em; } -div.crumb.last { font-weight:bold; } +div.crumb { float:left; display:block; background:url('../img/breadcrumb.svg') no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; } +div.crumb:first-child { padding:10px 20px 10px 5px; } +div.crumb.last { font-weight:bold; background:none; padding-right:10px; } +div.crumb a{ padding: 0.9em 0 0.7em 0; } diff --git a/core/img/actions/caret.png b/core/img/actions/caret.png new file mode 100644 index 00000000000..e0ae969a943 Binary files /dev/null and b/core/img/actions/caret.png differ diff --git a/core/img/actions/caret.svg b/core/img/actions/caret.svg new file mode 100644 index 00000000000..7bb0c59cde2 --- /dev/null +++ b/core/img/actions/caret.svg @@ -0,0 +1,112 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/core/img/actions/logout.png b/core/img/actions/logout.png index 37f62543ac2..e2f4b7af12e 100644 Binary files a/core/img/actions/logout.png and b/core/img/actions/logout.png differ diff --git a/core/img/actions/logout.svg b/core/img/actions/logout.svg index 0281fad43e7..e5edc24895d 100644 --- a/core/img/actions/logout.svg +++ b/core/img/actions/logout.svg @@ -33,7 +33,7 @@ id="namedview3047" showgrid="false" inkscape:zoom="25.279067" - inkscape:cx="5.0341304" + inkscape:cx="-1.6512429" inkscape:cy="6.4537904" inkscape:window-x="0" inkscape:window-y="27" @@ -47,7 +47,7 @@ image/svg+xml - + @@ -163,15 +163,16 @@ x2="8.4964771" y2="15.216674" /> + - diff --git a/core/img/actions/toggle.png b/core/img/actions/toggle.png new file mode 100644 index 00000000000..6ef3f2227b7 Binary files /dev/null and b/core/img/actions/toggle.png differ diff --git a/core/img/actions/toggle.svg b/core/img/actions/toggle.svg new file mode 100644 index 00000000000..82a5171477e --- /dev/null +++ b/core/img/actions/toggle.svg @@ -0,0 +1,61 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/core/img/actions/undelete.png b/core/img/actions/undelete.png new file mode 100644 index 00000000000..d712527ef61 Binary files /dev/null and b/core/img/actions/undelete.png differ diff --git a/core/img/noise.png b/core/img/noise.png new file mode 100644 index 00000000000..8fdda17b5e3 Binary files /dev/null and b/core/img/noise.png differ diff --git a/core/img/places/files.png b/core/img/places/files.png new file mode 100644 index 00000000000..9c7ff2642f9 Binary files /dev/null and b/core/img/places/files.png differ diff --git a/core/img/places/files.svg b/core/img/places/files.svg new file mode 100644 index 00000000000..8ebf861f6d5 --- /dev/null +++ b/core/img/places/files.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/places/home.png b/core/img/places/home.png index c3dbd3e3538..2945b84e868 100644 Binary files a/core/img/places/home.png and b/core/img/places/home.png differ diff --git a/core/img/places/home.svg b/core/img/places/home.svg index 4b45ef12bcb..a836a5999f0 100644 --- a/core/img/places/home.svg +++ b/core/img/places/home.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="help.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/help.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="home.svg" + inkscape:export-filename="home.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> image/svg+xml - + @@ -41,16 +41,16 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" - inkscape:window-height="776" + inkscape:window-height="773" id="namedview24" showgrid="true" showguides="true" inkscape:guide-bbox="true" - inkscape:zoom="22.627418" - inkscape:cx="14.025105" - inkscape:cy="9.2202448" + inkscape:zoom="16.000001" + inkscape:cx="2.7409248" + inkscape:cy="8.4568105" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="-1" inkscape:window-maximized="1" inkscape:current-layer="g4146"> + + + + + + + + - - - - + diff --git a/core/img/places/music.png b/core/img/places/music.png index 85ee2474cd1..5b71e19ee3c 100644 Binary files a/core/img/places/music.png and b/core/img/places/music.png differ diff --git a/core/img/places/music.svg b/core/img/places/music.svg index 1f397660970..e8f91f46166 100644 --- a/core/img/places/music.svg +++ b/core/img/places/music.svg @@ -7,1664 +7,67 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.0" - width="16" - height="16" - id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="search.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/search.png" + width="32" + height="32" + id="svg4375" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="music.svg" + inkscape:export-filename="music.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> + + + id="metadata4380"> image/svg+xml - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(581.71429,-2.0764682)"> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /> diff --git a/core/img/places/picture.png b/core/img/places/picture.png index 9abcd09722c..a278240a6d6 100644 Binary files a/core/img/places/picture.png and b/core/img/places/picture.png differ diff --git a/core/img/places/picture.svg b/core/img/places/picture.svg index 26c3d6312c2..aba68e62063 100644 --- a/core/img/places/picture.svg +++ b/core/img/places/picture.svg @@ -7,1691 +7,69 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.0" - width="16" - height="16" - id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="audio.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/audio.png" + width="32" + height="32" + id="svg4375" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="picture.svg" + inkscape:export-filename="picture.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> + + + id="metadata4380"> image/svg+xml - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(581.71429,-2.0764682)"> + + diff --git a/core/js/js.js b/core/js/js.js index 01e47edf268..6b0c289850c 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -354,7 +354,6 @@ OC.Breadcrumb={ } var crumb=$('
'); crumb.addClass('crumb').addClass('last'); - crumb.attr('style','background-image:url("'+OC.imagePath('core','breadcrumb')+'")'); var crumbLink=$(''); crumbLink.attr('href',link); @@ -547,7 +546,6 @@ function object(o) { return new F(); } - /** * Fills height of window. (more precise than height: 100%;) */ @@ -624,6 +622,7 @@ $(document).ready(function(){ }); // 'show password' checkbox + $('#password').showPassword(); $('#pass2').showPassword(); //use infield labels @@ -664,14 +663,13 @@ $(document).ready(function(){ event.stopPropagation(); }); $(window).click(function(){//hide the settings menu when clicking outside it - if($('body').attr("id")==="body-user"){ - $('#settings #expanddiv').slideUp(); - } + $('#settings #expanddiv').slideUp(); }); // all the tipsy stuff needs to be here (in reverse order) to work $('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true}); $('.jp-controls .jp-next').tipsy({gravity:'n', fade:true, live:true}); + $('.displayName .action').tipsy({gravity:'se', fade:true, live:true}); $('.password .action').tipsy({gravity:'se', fade:true, live:true}); $('#upload').tipsy({gravity:'w', fade:true}); $('.selectedActions a').tipsy({gravity:'s', fade:true, live:true}); diff --git a/core/js/oc-vcategories.js b/core/js/oc-vcategories.js index 609703f2cc9..3e75767c49c 100644 --- a/core/js/oc-vcategories.js +++ b/core/js/oc-vcategories.js @@ -50,7 +50,7 @@ var OCCategories= { $('#category_dialog').remove(); }, open : function(event, ui) { - $('#category_addinput').live('input',function() { + $('#category_addinput').on('input',function() { if($(this).val().length > 0) { $('#category_addbutton').removeAttr('disabled'); } @@ -61,7 +61,7 @@ var OCCategories= { $('#category_addbutton').attr('disabled', 'disabled'); return false; }); - $('#category_addbutton').live('click',function(e) { + $('#category_addbutton').on('click',function(e) { e.preventDefault(); if($('#category_addinput').val().length > 0) { OCCategories.add($('#category_addinput').val()); diff --git a/core/js/share.js b/core/js/share.js index 0c45765bd8b..6ad4130690d 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -410,7 +410,7 @@ $(document).ready(function() { firstDay: firstDay }); } - $('a.share').live('click', function(event) { + $('#fileList').on('click', 'a.share', function(event) { event.stopPropagation(); if ($(this).data('item-type') !== undefined && $(this).data('item') !== undefined) { var itemType = $(this).data('item-type'); @@ -444,12 +444,12 @@ $(document).ready(function() { } }); - $('#shareWithList li').live('mouseenter', function(event) { + $('#fileList').on('mouseenter', '#dropdown #shareWithList li', function(event) { // Show permissions and unshare button $(':hidden', this).filter(':not(.cruds)').show(); }); - $('#shareWithList li').live('mouseleave', function(event) { + $('#fileList').on('mouseleave', '#dropdown #shareWithList li', function(event) { // Hide permissions and unshare button if (!$('.cruds', this).is(':visible')) { $('a', this).hide(); @@ -462,11 +462,11 @@ $(document).ready(function() { } }); - $('.showCruds').live('click', function() { + $('#fileList').on('click', '#dropdown .showCruds', function() { $(this).parent().find('.cruds').toggle(); }); - $('.unshare').live('click', function() { + $('#fileList').on('click', '#dropdown .unshare', function() { var li = $(this).parent(); var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); @@ -483,7 +483,7 @@ $(document).ready(function() { }); }); - $('.permissions').live('change', function() { + $('#fileList').on('change', '#dropdown .permissions', function() { if ($(this).attr('name') == 'edit') { var li = $(this).parent().parent() var checkboxes = $('.permissions', li); @@ -510,7 +510,7 @@ $(document).ready(function() { OC.Share.setPermissions($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), $(li).data('share-type'), $(li).data('share-with'), permissions); }); - $('#linkCheckbox').live('change', function() { + $('#fileList').on('change', '#dropdown #linkCheckbox', function() { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); if (this.checked) { @@ -532,12 +532,12 @@ $(document).ready(function() { } }); - $('#linkText').live('click', function() { + $('#fileList').on('click', '#dropdown #linkText', function() { $(this).focus(); $(this).select(); }); - $('#showPassword').live('click', function() { + $('#fileList').on('click', '#dropdown #showPassword', function() { $('#linkPass').toggle('blind'); if (!$('#showPassword').is(':checked') ) { var itemType = $('#dropdown').data('item-type'); @@ -548,7 +548,7 @@ $(document).ready(function() { } }); - $('#linkPassText').live('focusout keyup', function(event) { + $('#fileList').on('focusout keyup', '#dropdown #linkPassText', function(event) { if ( $('#linkPassText').val() != '' && (event.type == 'focusout' || event.keyCode == 13) ) { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); @@ -560,7 +560,7 @@ $(document).ready(function() { } }); - $('#expirationCheckbox').live('click', function() { + $('#fileList').on('click', '#dropdown #expirationCheckbox', function() { if (this.checked) { OC.Share.showExpirationDate(''); } else { @@ -575,7 +575,7 @@ $(document).ready(function() { } }); - $('#expirationDate').live('change', function() { + $('#fileList').on('change', '#dropdown #expirationDate', function() { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) { @@ -586,7 +586,7 @@ $(document).ready(function() { }); - $('#emailPrivateLink').live('submit', function(event) { + $('#fileList').on('submit', '#dropdown #emailPrivateLink', function(event) { event.preventDefault(); var link = $('#linkText').val(); var itemType = $('#dropdown').data('item-type'); diff --git a/core/l10n/af_ZA.php b/core/l10n/af_ZA.php new file mode 100644 index 00000000000..f5f27d2af58 --- /dev/null +++ b/core/l10n/af_ZA.php @@ -0,0 +1,33 @@ + "Instellings", +"Password" => "Wagwoord", +"Use the following link to reset your password: {link}" => "Gebruik die volgende skakel om jou wagwoord te herstel: {link}", +"You will receive a link to reset your password via Email." => "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel.", +"Username" => "Gebruikersnaam", +"Request reset" => "Herstel-versoek", +"Your password was reset" => "Jou wagwoord is herstel", +"To login page" => "Na aanteken-bladsy", +"New password" => "Nuwe wagwoord", +"Reset password" => "Herstel wagwoord", +"Personal" => "Persoonlik", +"Users" => "Gebruikers", +"Apps" => "Toepassings", +"Admin" => "Admin", +"Help" => "Hulp", +"Cloud not found" => "Wolk nie gevind", +"Create an admin account" => "Skep `n admin-rekening", +"Advanced" => "Gevorderd", +"Configure the database" => "Stel databasis op", +"will be used" => "sal gebruik word", +"Database user" => "Databasis-gebruiker", +"Database password" => "Databasis-wagwoord", +"Database name" => "Databasis naam", +"Finish setup" => "Maak opstelling klaar", +"web services under your control" => "webdienste onder jou beheer", +"Log out" => "Teken uit", +"Lost your password?" => "Jou wagwoord verloor?", +"remember" => "onthou", +"Log in" => "Teken aan", +"prev" => "vorige", +"next" => "volgende" +); diff --git a/core/l10n/ar.php b/core/l10n/ar.php index 495bfbd0eac..218eeed0722 100644 --- a/core/l10n/ar.php +++ b/core/l10n/ar.php @@ -32,6 +32,7 @@ "Yes" => "نعم", "Ok" => "موافق", "Error" => "خطأ", +"Share" => "شارك", "Error while sharing" => "حصل خطأ عند عملية المشاركة", "Error while unsharing" => "حصل خطأ عند عملية إزالة المشاركة", "Error while changing permissions" => "حصل خطأ عند عملية إعادة تعيين التصريح بالتوصل", diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php index 9a2716277a3..587991499a9 100644 --- a/core/l10n/bg_BG.php +++ b/core/l10n/bg_BG.php @@ -9,6 +9,7 @@ "last year" => "последната година", "years ago" => "последните години", "Error" => "Грешка", +"Share" => "Споделяне", "Password" => "Парола", "Personal" => "Лични", "Users" => "Потребители", diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php index 2f13a497948..deac6afa359 100644 --- a/core/l10n/bn_BD.php +++ b/core/l10n/bn_BD.php @@ -53,6 +53,8 @@ "Error" => "সমস্যা", "The app name is not specified." => "অ্যাপের নামটি সুনির্দিষ্ট নয়।", "The required file {file} is not installed!" => "আবশ্যিক {file} টি সংস্থাপিত নেই !", +"Share" => "ভাগাভাগি কর", +"Shared" => "ভাগাভাগিকৃত", "Error while sharing" => "ভাগাভাগি করতে সমস্যা দেখা দিয়েছে ", "Error while unsharing" => "ভাগাভাগি বাতিল করতে সমস্যা দেখা দিয়েছে", "Error while changing permissions" => "অনুমতিসমূহ পরিবর্তন করতে সমস্যা দেখা দিয়েছে", diff --git a/core/l10n/ca.php b/core/l10n/ca.php index c737f9aa42f..780366aaf0e 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -53,6 +53,8 @@ "Error" => "Error", "The app name is not specified." => "No s'ha especificat el nom de l'aplicació.", "The required file {file} is not installed!" => "El fitxer requerit {file} no està instal·lat!", +"Share" => "Comparteix", +"Shared" => "Compartit", "Error while sharing" => "Error en compartir", "Error while unsharing" => "Error en deixar de compartir", "Error while changing permissions" => "Error en canviar els permisos", diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index 848415d6eac..a8fa035711c 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -53,6 +53,8 @@ "Error" => "Chyba", "The app name is not specified." => "Není určen název aplikace.", "The required file {file} is not installed!" => "Požadovaný soubor {file} není nainstalován.", +"Share" => "Sdílet", +"Shared" => "Sdílené", "Error while sharing" => "Chyba při sdílení", "Error while unsharing" => "Chyba při rušení sdílení", "Error while changing permissions" => "Chyba při změně oprávnění", diff --git a/core/l10n/da.php b/core/l10n/da.php index 3252dcf495e..ca23b622289 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -53,6 +53,7 @@ "Error" => "Fejl", "The app name is not specified." => "Den app navn er ikke angivet.", "The required file {file} is not installed!" => "Den krævede fil {file} er ikke installeret!", +"Share" => "Del", "Error while sharing" => "Fejl under deling", "Error while unsharing" => "Fejl under annullering af deling", "Error while changing permissions" => "Fejl under justering af rettigheder", diff --git a/core/l10n/de.php b/core/l10n/de.php index b67234189fe..bc7a7dada1d 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -53,6 +53,8 @@ "Error" => "Fehler", "The app name is not specified." => "Der App-Name ist nicht angegeben.", "The required file {file} is not installed!" => "Die benötigte Datei {file} ist nicht installiert.", +"Share" => "Freigeben", +"Shared" => "Freigegeben", "Error while sharing" => "Fehler beim Freigeben", "Error while unsharing" => "Fehler beim Aufheben der Freigabe", "Error while changing permissions" => "Fehler beim Ändern der Rechte", @@ -82,7 +84,7 @@ "Error setting expiration date" => "Fehler beim Setzen des Ablaufdatums", "Sending ..." => "Sende ...", "Email sent" => "E-Mail wurde verschickt", -"The update was unsuccessful. Please report this issue to the ownCloud community." => "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Gemeinschaft.", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Community.", "The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutze den nachfolgenden Link, um Dein Passwort zurückzusetzen: {link}", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 59b05bbe7c1..ca5b843a832 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -53,6 +53,8 @@ "Error" => "Fehler", "The app name is not specified." => "Der App-Name ist nicht angegeben.", "The required file {file} is not installed!" => "Die benötigte Datei {file} ist nicht installiert.", +"Share" => "Freigeben", +"Shared" => "Freigegeben", "Error while sharing" => "Fehler bei der Freigabe", "Error while unsharing" => "Fehler bei der Aufhebung der Freigabe", "Error while changing permissions" => "Fehler bei der Änderung der Rechte", diff --git a/core/l10n/el.php b/core/l10n/el.php index 79cffb0685d..74ec378b9df 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -53,6 +53,7 @@ "Error" => "Σφάλμα", "The app name is not specified." => "Δεν καθορίστηκε το όνομα της εφαρμογής.", "The required file {file} is not installed!" => "Το απαιτούμενο αρχείο {file} δεν εγκαταστάθηκε!", +"Share" => "Διαμοιρασμός", "Error while sharing" => "Σφάλμα κατά τον διαμοιρασμό", "Error while unsharing" => "Σφάλμα κατά το σταμάτημα του διαμοιρασμού", "Error while changing permissions" => "Σφάλμα κατά την αλλαγή των δικαιωμάτων", diff --git a/core/l10n/eo.php b/core/l10n/eo.php index 0839cfe9f6f..7c0e65f4e03 100644 --- a/core/l10n/eo.php +++ b/core/l10n/eo.php @@ -53,6 +53,7 @@ "Error" => "Eraro", "The app name is not specified." => "Ne indikiĝis nomo de la aplikaĵo.", "The required file {file} is not installed!" => "La necesa dosiero {file} ne instaliĝis!", +"Share" => "Kunhavigi", "Error while sharing" => "Eraro dum kunhavigo", "Error while unsharing" => "Eraro dum malkunhavigo", "Error while changing permissions" => "Eraro dum ŝanĝo de permesoj", diff --git a/core/l10n/es.php b/core/l10n/es.php index 4bdbcac0e95..e046e3bf7a0 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -53,6 +53,8 @@ "Error" => "Fallo", "The app name is not specified." => "El nombre de la app no se ha especificado.", "The required file {file} is not installed!" => "El fichero {file} requerido, no está instalado.", +"Share" => "Compartir", +"Shared" => "Compartido", "Error while sharing" => "Error compartiendo", "Error while unsharing" => "Error descompartiendo", "Error while changing permissions" => "Error cambiando permisos", @@ -82,6 +84,8 @@ "Error setting expiration date" => "Error estableciendo fecha de caducidad", "Sending ..." => "Enviando...", "Email sent" => "Correo electrónico enviado", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "La actualización ha fracasado. Por favor, informe este problema a la Comunidad de ownCloud.", +"The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado correctamente. Redireccionando a ownCloud ahora.", "ownCloud password reset" => "Reiniciar contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Utiliza el siguiente enlace para restablecer tu contraseña: {link}", "You will receive a link to reset your password via Email." => "Recibirás un enlace por correo electrónico para restablecer tu contraseña", diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index d588ac950c9..1ce26416f6e 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -53,6 +53,8 @@ "Error" => "Error", "The app name is not specified." => "El nombre de la aplicación no esta especificado.", "The required file {file} is not installed!" => "¡El archivo requerido {file} no está instalado!", +"Share" => "Compartir", +"Shared" => "Compartido", "Error while sharing" => "Error al compartir", "Error while unsharing" => "Error en el procedimiento de ", "Error while changing permissions" => "Error al cambiar permisos", @@ -82,6 +84,8 @@ "Error setting expiration date" => "Error al asignar fecha de vencimiento", "Sending ..." => "Enviando...", "Email sent" => "Email enviado", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "La actualización no pudo ser completada. Por favor, reportá el inconveniente a la comunidad ownCloud.", +"The update was successful. Redirecting you to ownCloud now." => "La actualización fue exitosa. Estás siendo redirigido a ownCloud.", "ownCloud password reset" => "Restablecer contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Usá este enlace para restablecer tu contraseña: {link}", "You will receive a link to reset your password via Email." => "Vas a recibir un enlace por e-mail para restablecer tu contraseña", diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php index 4e3c003c9f6..f4328de9901 100644 --- a/core/l10n/et_EE.php +++ b/core/l10n/et_EE.php @@ -38,6 +38,7 @@ "Yes" => "Jah", "Ok" => "Ok", "Error" => "Viga", +"Share" => "Jaga", "Error while sharing" => "Viga jagamisel", "Error while unsharing" => "Viga jagamise lõpetamisel", "Error while changing permissions" => "Viga õiguste muutmisel", diff --git a/core/l10n/eu.php b/core/l10n/eu.php index da6aad73383..ed919d64d9d 100644 --- a/core/l10n/eu.php +++ b/core/l10n/eu.php @@ -53,6 +53,8 @@ "Error" => "Errorea", "The app name is not specified." => "App izena ez dago zehaztuta.", "The required file {file} is not installed!" => "Beharrezkoa den {file} fitxategia ez dago instalatuta!", +"Share" => "Elkarbanatu", +"Shared" => "Elkarbanatuta", "Error while sharing" => "Errore bat egon da elkarbanatzean", "Error while unsharing" => "Errore bat egon da elkarbanaketa desegitean", "Error while changing permissions" => "Errore bat egon da baimenak aldatzean", diff --git a/core/l10n/fa.php b/core/l10n/fa.php index 7ed2831d821..359eddb73ef 100644 --- a/core/l10n/fa.php +++ b/core/l10n/fa.php @@ -53,6 +53,7 @@ "Error" => "خطا", "The app name is not specified." => "نام برنامه تعیین نشده است.", "The required file {file} is not installed!" => "پرونده { پرونده} درخواست شده نصب نشده است !", +"Share" => "اشتراک‌گزاری", "Error while sharing" => "خطا درحال به اشتراک گذاشتن", "Error while unsharing" => "خطا درحال لغو اشتراک", "Error while changing permissions" => "خطا در حال تغییر مجوز", @@ -101,6 +102,7 @@ "Add" => "افزودن", "Security Warning" => "اخطار امنیتی", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "هیچ مولد تصادفی امن در دسترس نیست، لطفا فرمت PHP OpenSSL را فعال نمایید.", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "بدون وجود یک تولید کننده اعداد تصادفی امن ، یک مهاجم ممکن است این قابلیت را داشته باشد که پیشگویی کند پسوورد های راه انداز گرفته شده و کنترلی روی حساب کاربری شما داشته باشد .", "Create an admin account" => "لطفا یک شناسه برای مدیر بسازید", "Advanced" => "حرفه ای", "Data folder" => "پوشه اطلاعاتی", diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php index 6b5a833f36e..1f2568f9513 100644 --- a/core/l10n/fi_FI.php +++ b/core/l10n/fi_FI.php @@ -49,6 +49,7 @@ "Error" => "Virhe", "The app name is not specified." => "Sovelluksen nimeä ei ole määritelty.", "The required file {file} is not installed!" => "Vaadittua tiedostoa {file} ei ole asennettu!", +"Share" => "Jaa", "Error while sharing" => "Virhe jaettaessa", "Error while unsharing" => "Virhe jakoa peruttaessa", "Error while changing permissions" => "Virhe oikeuksia muuttaessa", @@ -77,6 +78,8 @@ "Error setting expiration date" => "Virhe päättymispäivää asettaessa", "Sending ..." => "Lähetetään...", "Email sent" => "Sähköposti lähetetty", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "Päivitys epäonnistui. Ilmoita ongelmasta ownCloud-yhteisölle.", +"The update was successful. Redirecting you to ownCloud now." => "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi.", "ownCloud password reset" => "ownCloud-salasanan nollaus", "Use the following link to reset your password: {link}" => "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "You will receive a link to reset your password via Email." => "Saat sähköpostitse linkin nollataksesi salasanan.", diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 46aac990bd2..e3b70836521 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -53,6 +53,8 @@ "Error" => "Erreur", "The app name is not specified." => "Le nom de l'application n'est pas spécifié.", "The required file {file} is not installed!" => "Le fichier requis {file} n'est pas installé !", +"Share" => "Partager", +"Shared" => "Partagé", "Error while sharing" => "Erreur lors de la mise en partage", "Error while unsharing" => "Erreur lors de l'annulation du partage", "Error while changing permissions" => "Erreur lors du changement des permissions", diff --git a/core/l10n/gl.php b/core/l10n/gl.php index a45d45d908c..e96d6962c90 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -53,6 +53,7 @@ "Error" => "Erro", "The app name is not specified." => "Non se especificou o nome do aplicativo.", "The required file {file} is not installed!" => "Non está instalado o ficheiro {file} que se precisa", +"Share" => "Compartir", "Error while sharing" => "Produciuse un erro ao compartir", "Error while unsharing" => "Produciuse un erro ao deixar de compartir", "Error while changing permissions" => "Produciuse un erro ao cambiar os permisos", diff --git a/core/l10n/he.php b/core/l10n/he.php index 88da2e8ddea..b7292c6edee 100644 --- a/core/l10n/he.php +++ b/core/l10n/he.php @@ -53,6 +53,7 @@ "Error" => "שגיאה", "The app name is not specified." => "שם היישום לא צוין.", "The required file {file} is not installed!" => "הקובץ הנדרש {file} אינו מותקן!", +"Share" => "שתף", "Error while sharing" => "שגיאה במהלך השיתוף", "Error while unsharing" => "שגיאה במהלך ביטול השיתוף", "Error while changing permissions" => "שגיאה במהלך שינוי ההגדרות", diff --git a/core/l10n/hr.php b/core/l10n/hr.php index 32e3779ee4b..78b767305a3 100644 --- a/core/l10n/hr.php +++ b/core/l10n/hr.php @@ -35,6 +35,7 @@ "Yes" => "Da", "Ok" => "U redu", "Error" => "Pogreška", +"Share" => "Podijeli", "Error while sharing" => "Greška prilikom djeljenja", "Error while unsharing" => "Greška prilikom isključivanja djeljenja", "Error while changing permissions" => "Greška prilikom promjena prava", diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php index e03c6af27f5..30ddc7b8677 100644 --- a/core/l10n/hu_HU.php +++ b/core/l10n/hu_HU.php @@ -53,6 +53,7 @@ "Error" => "Hiba", "The app name is not specified." => "Az alkalmazás neve nincs megadva.", "The required file {file} is not installed!" => "A szükséges fájl: {file} nincs telepítve!", +"Share" => "Megosztás", "Error while sharing" => "Nem sikerült létrehozni a megosztást", "Error while unsharing" => "Nem sikerült visszavonni a megosztást", "Error while changing permissions" => "Nem sikerült módosítani a jogosultságokat", diff --git a/core/l10n/ia.php b/core/l10n/ia.php index 08f283450f8..7f2eac17367 100644 --- a/core/l10n/ia.php +++ b/core/l10n/ia.php @@ -21,6 +21,7 @@ "December" => "Decembre", "Settings" => "Configurationes", "Cancel" => "Cancellar", +"Share" => "Compartir", "Password" => "Contrasigno", "ownCloud password reset" => "Reinitialisation del contrasigno de ownCLoud", "Username" => "Nomine de usator", diff --git a/core/l10n/id.php b/core/l10n/id.php index 2c66ea8ce3d..896d444e833 100644 --- a/core/l10n/id.php +++ b/core/l10n/id.php @@ -36,6 +36,7 @@ "Yes" => "Ya", "Ok" => "Oke", "Error" => "gagal", +"Share" => "berbagi", "Error while sharing" => "gagal ketika membagikan", "Error while unsharing" => "gagal ketika membatalkan pembagian", "Error while changing permissions" => "gagal ketika merubah perijinan", diff --git a/core/l10n/is.php b/core/l10n/is.php index 6df2573100e..98766efc2c9 100644 --- a/core/l10n/is.php +++ b/core/l10n/is.php @@ -53,6 +53,7 @@ "Error" => "Villa", "The app name is not specified." => "Nafn forrits ekki tilgreint", "The required file {file} is not installed!" => "Umbeðina skráin {file} ekki tiltæk!", +"Share" => "Deila", "Error while sharing" => "Villa við deilingu", "Error while unsharing" => "Villa við að hætta deilingu", "Error while changing permissions" => "Villa við að breyta aðgangsheimildum", diff --git a/core/l10n/it.php b/core/l10n/it.php index 88749320d5b..ec094f643a4 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -53,6 +53,8 @@ "Error" => "Errore", "The app name is not specified." => "Il nome dell'applicazione non è specificato.", "The required file {file} is not installed!" => "Il file richiesto {file} non è installato!", +"Share" => "Condividi", +"Shared" => "Condivisi", "Error while sharing" => "Errore durante la condivisione", "Error while unsharing" => "Errore durante la rimozione della condivisione", "Error while changing permissions" => "Errore durante la modifica dei permessi", @@ -122,12 +124,12 @@ "web services under your control" => "servizi web nelle tue mani", "Log out" => "Esci", "Automatic logon rejected!" => "Accesso automatico rifiutato.", -"If you did not change your password recently, your account may be compromised!" => "Se non hai cambiato la password recentemente, il tuo account potrebbe essere stato compromesso.", +"If you did not change your password recently, your account may be compromised!" => "Se non hai cambiato la password recentemente, il tuo account potrebbe essere compromesso.", "Please change your password to secure your account again." => "Cambia la password per rendere nuovamente sicuro il tuo account.", "Lost your password?" => "Hai perso la password?", "remember" => "ricorda", "Log in" => "Accedi", "prev" => "precedente", "next" => "successivo", -"Updating ownCloud to version %s, this may take a while." => "Aggiornamento di ownCloud alla versione %s in corso, potrebbe richiedere del tempo." +"Updating ownCloud to version %s, this may take a while." => "Aggiornamento di ownCloud alla versione %s in corso, ciò potrebbe richiedere del tempo." ); diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index 7995147f062..155c201d9b7 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -53,6 +53,8 @@ "Error" => "エラー", "The app name is not specified." => "アプリ名がしていされていません。", "The required file {file} is not installed!" => "必要なファイル {file} がインストールされていません!", +"Share" => "共有", +"Shared" => "共有中", "Error while sharing" => "共有でエラー発生", "Error while unsharing" => "共有解除でエラー発生", "Error while changing permissions" => "権限変更でエラー発生", diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php index 58771e080b3..ab4045601f9 100644 --- a/core/l10n/ka_GE.php +++ b/core/l10n/ka_GE.php @@ -38,6 +38,7 @@ "Yes" => "კი", "Ok" => "დიახ", "Error" => "შეცდომა", +"Share" => "გაზიარება", "Error while sharing" => "შეცდომა გაზიარების დროს", "Error while unsharing" => "შეცდომა გაზიარების გაუქმების დროს", "Error while changing permissions" => "შეცდომა დაშვების ცვლილების დროს", diff --git a/core/l10n/ko.php b/core/l10n/ko.php index 5897b890ec5..91c00c4a570 100644 --- a/core/l10n/ko.php +++ b/core/l10n/ko.php @@ -1,8 +1,8 @@ "User %s 가 당신과 파일을 공유하였습니다.", -"User %s shared a folder with you" => "User %s 가 당신과 폴더를 공유하였습니다.", -"User %s shared the file \"%s\" with you. It is available for download here: %s" => "User %s 가 파일 \"%s\"를 당신과 공유하였습니다. 다운로드는 여기서 %s 할 수 있습니다.", -"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "User %s 가 폴더 \"%s\"를 당신과 공유하였습니다. 다운로드는 여기서 %s 할 수 있습니다.", +"User %s shared a file with you" => "%s 님이 파일을 공유하였습니다", +"User %s shared a folder with you" => "%s 님이 폴더를 공유하였습니다", +"User %s shared the file \"%s\" with you. It is available for download here: %s" => "%s 님이 파일 \"%s\"을(를) 공유하였습니다. 여기에서 다운로드할 수 있습니다: %s", +"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "%s 님이 폴더 \"%s\"을(를) 공유하였습니다. 여기에서 다운로드할 수 있습니다: %s", "Category type not provided." => "분류 형식이 제공되지 않았습니다.", "No category to add?" => "추가할 분류가 없습니까?", "This category already exists: " => "이 분류는 이미 존재합니다:", @@ -53,6 +53,8 @@ "Error" => "오류", "The app name is not specified." => "앱 이름이 지정되지 않았습니다.", "The required file {file} is not installed!" => "필요한 파일 {file}이(가) 설치되지 않았습니다!", +"Share" => "공유", +"Shared" => "공유됨", "Error while sharing" => "공유하는 중 오류 발생", "Error while unsharing" => "공유 해제하는 중 오류 발생", "Error while changing permissions" => "권한 변경하는 중 오류 발생", @@ -82,6 +84,8 @@ "Error setting expiration date" => "만료 날짜 설정 오류", "Sending ..." => "전송 중...", "Email sent" => "이메일 발송됨", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "업데이트가 실패하였습니다. 이 문제를 ownCloud 커뮤니티에 보고해 주십시오.", +"The update was successful. Redirecting you to ownCloud now." => "업데이트가 성공하였습니다. ownCloud로 돌아갑니다.", "ownCloud password reset" => "ownCloud 암호 재설정", "Use the following link to reset your password: {link}" => "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "You will receive a link to reset your password via Email." => "이메일로 암호 재설정 링크를 보냈습니다.", @@ -127,5 +131,5 @@ "Log in" => "로그인", "prev" => "이전", "next" => "다음", -"Updating ownCloud to version %s, this may take a while." => "ownCloud 를 버젼 %s로 업데이트 하는 중, 시간이 소요됩니다." +"Updating ownCloud to version %s, this may take a while." => "ownCloud를 버전 %s(으)로 업데이트합니다. 잠시 기다려 주십시오." ); diff --git a/core/l10n/lb.php b/core/l10n/lb.php index 85d83d1f953..4069a778365 100644 --- a/core/l10n/lb.php +++ b/core/l10n/lb.php @@ -35,6 +35,7 @@ "Yes" => "Jo", "Ok" => "OK", "Error" => "Fehler", +"Share" => "Deelen", "Password" => "Passwuert", "Unshare" => "Net méi deelen", "create" => "erstellen", diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index 040a5a7f7fc..c2dc47c826c 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -38,6 +38,7 @@ "Yes" => "Taip", "Ok" => "Gerai", "Error" => "Klaida", +"Share" => "Dalintis", "Error while sharing" => "Klaida, dalijimosi metu", "Error while unsharing" => "Klaida, kai atšaukiamas dalijimasis", "Error while changing permissions" => "Klaida, keičiant privilegijas", diff --git a/core/l10n/lv.php b/core/l10n/lv.php index 66866249e76..a145c50464f 100644 --- a/core/l10n/lv.php +++ b/core/l10n/lv.php @@ -1,4 +1,16 @@ "Lietotājs %s ar jums dalījās ar datni.", +"User %s shared a folder with you" => "Lietotājs %s ar jums dalījās ar mapi.", +"User %s shared the file \"%s\" with you. It is available for download here: %s" => "Lietotājs %s ar jums dalījās ar datni “%s”. To var lejupielādēt šeit — %s", +"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Lietotājs %s ar jums dalījās ar mapi “%s”. To var lejupielādēt šeit — %s", +"Category type not provided." => "Kategorijas tips nav norādīts.", +"No category to add?" => "Nav kategoriju, ko pievienot?", +"This category already exists: " => "Šāda kategorija jau eksistē:", +"Object type not provided." => "Objekta tips nav norādīts.", +"%s ID not provided." => "%s ID nav norādīts.", +"Error adding %s to favorites." => "Kļūda, pievienojot %s izlasei.", +"No categories selected for deletion." => "Neviena kategorija nav izvēlēta dzēšanai", +"Error removing %s from favorites." => "Kļūda, izņemot %s no izlases.", "Sunday" => "Svētdiena", "Monday" => "Pirmdiena", "Tuesday" => "Otrdiena", @@ -19,12 +31,66 @@ "November" => "Novembris", "December" => "Decembris", "Settings" => "Iestatījumi", +"seconds ago" => "sekundes atpakaļ", +"1 minute ago" => "pirms 1 minūtes", +"{minutes} minutes ago" => "pirms {minutes} minūtēm", +"1 hour ago" => "pirms 1 stundas", +"{hours} hours ago" => "pirms {hours} stundām", +"today" => "šodien", +"yesterday" => "vakar", +"{days} days ago" => "pirms {days} dienām", +"last month" => "pagājušajā mēnesī", +"{months} months ago" => "pirms {months} mēnešiem", +"months ago" => "mēnešus atpakaļ", +"last year" => "gājušajā gadā", +"years ago" => "gadus atpakaļ", +"Choose" => "Izvēlieties", "Cancel" => "Atcelt", -"Error" => "Kļūme", +"No" => "Nē", +"Yes" => "Jā", +"Ok" => "Labi", +"The object type is not specified." => "Nav norādīts objekta tips.", +"Error" => "Kļūda", +"The app name is not specified." => "Nav norādīts lietotnes nosaukums.", +"The required file {file} is not installed!" => "Pieprasītā datne {file} nav instalēta!", +"Share" => "Dalīties", +"Shared" => "Kopīgs", +"Error while sharing" => "Kļūda, daloties", +"Error while unsharing" => "Kļūda, beidzot dalīties", +"Error while changing permissions" => "Kļūda, mainot atļaujas", +"Shared with you and the group {group} by {owner}" => "{owner} dalījās ar jums un grupu {group}", +"Shared with you by {owner}" => "{owner} dalījās ar jums", +"Share with" => "Dalīties ar", +"Share with link" => "Dalīties ar saiti", +"Password protect" => "Aizsargāt ar paroli", "Password" => "Parole", -"Unshare" => "Pārtraukt līdzdalīšanu", -"Use the following link to reset your password: {link}" => "Izmantojiet šo linku lai mainītu paroli", +"Email link to person" => "Sūtīt saiti personai pa e-pastu", +"Send" => "Sūtīt", +"Set expiration date" => "Iestaties termiņa datumu", +"Expiration date" => "Termiņa datums", +"Share via email:" => "Dalīties, izmantojot e-pastu:", +"No people found" => "Nav atrastu cilvēku", +"Resharing is not allowed" => "Atkārtota dalīšanās nav atļauta", +"Shared in {item} with {user}" => "Dalījās ar {item} ar {user}", +"Unshare" => "Beigt dalīties", +"can edit" => "var rediģēt", +"access control" => "piekļuves vadība", +"create" => "izveidot", +"update" => "atjaunināt", +"delete" => "dzēst", +"share" => "dalīties", +"Password protected" => "Aizsargāts ar paroli", +"Error unsetting expiration date" => "Kļūda, noņemot termiņa datumu", +"Error setting expiration date" => "Kļūda, iestatot termiņa datumu", +"Sending ..." => "Sūta...", +"Email sent" => "Vēstule nosūtīta", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "Atjaunināšana beidzās nesekmīgi. Lūdzu, ziņojiet par šo problēmu ownCloud kopienai.", +"The update was successful. Redirecting you to ownCloud now." => "Atjaunināšana beidzās sekmīgi. Tagad pārsūta jūs uz ownCloud.", +"ownCloud password reset" => "ownCloud paroles maiņa", +"Use the following link to reset your password: {link}" => "Izmantojiet šo saiti, lai mainītu paroli: {link}", "You will receive a link to reset your password via Email." => "Jūs savā epastā saņemsiet interneta saiti, caur kuru varēsiet atjaunot paroli.", +"Reset email send." => "Atstatīt e-pasta sūtīšanu.", +"Request failed!" => "Pieprasījums neizdevās!", "Username" => "Lietotājvārds", "Request reset" => "Pieprasīt paroles maiņu", "Your password was reset" => "Jūsu parole tika nomainīta", @@ -33,23 +99,37 @@ "Reset password" => "Mainīt paroli", "Personal" => "Personīgi", "Users" => "Lietotāji", -"Apps" => "Aplikācijas", +"Apps" => "Lietotnes", "Admin" => "Administrators", "Help" => "Palīdzība", +"Access forbidden" => "Pieeja ir liegta", "Cloud not found" => "Mākonis netika atrasts", +"Edit categories" => "Rediģēt kategoriju", +"Add" => "Pievienot", "Security Warning" => "Brīdinājums par drošību", +"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nav pieejams drošs nejaušu skaitļu ģenerators. Lūdzu, aktivējiet PHP OpenSSL paplašinājumu.", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez droša nejaušu skaitļu ģeneratora uzbrucējs var paredzēt paroļu atjaunošanas marķierus un pārņem jūsu kontu.", +"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes.", +"Create an admin account" => "Izveidot administratora kontu", +"Advanced" => "Paplašināti", "Data folder" => "Datu mape", -"Configure the database" => "Nokonfigurēt datubāzi", +"Configure the database" => "Konfigurēt datubāzi", "will be used" => "tiks izmantots", "Database user" => "Datubāzes lietotājs", "Database password" => "Datubāzes parole", "Database name" => "Datubāzes nosaukums", -"Database host" => "Datubāzes mājvieta", -"Finish setup" => "Pabeigt uzstādījumus", -"Log out" => "Izlogoties", +"Database tablespace" => "Datubāzes tabulas telpa", +"Database host" => "Datubāzes serveris", +"Finish setup" => "Pabeigt iestatīšanu", +"web services under your control" => "jūsu vadībā esošie tīmekļa servisi", +"Log out" => "Izrakstīties", +"Automatic logon rejected!" => "Automātiskā ierakstīšanās ir noraidīta!", +"If you did not change your password recently, your account may be compromised!" => "Ja neesat pēdējā laikā mainījis paroli, iespējams, ka jūsu konts ir kompromitēts.", +"Please change your password to secure your account again." => "Lūdzu, nomainiet savu paroli, lai atkal nodrošinātu savu kontu.", "Lost your password?" => "Aizmirsāt paroli?", "remember" => "atcerēties", -"Log in" => "Ielogoties", +"Log in" => "Ierakstīties", "prev" => "iepriekšējā", -"next" => "nākamā" +"next" => "nākamā", +"Updating ownCloud to version %s, this may take a while." => "Atjaunina ownCloud uz versiju %s. Tas var aizņemt kādu laiciņu." ); diff --git a/core/l10n/mk.php b/core/l10n/mk.php index 3a8991437ba..0b202fa6667 100644 --- a/core/l10n/mk.php +++ b/core/l10n/mk.php @@ -53,6 +53,7 @@ "Error" => "Грешка", "The app name is not specified." => "Името на апликацијата не е специфицирано.", "The required file {file} is not installed!" => "Задолжителната датотека {file} не е инсталирана!", +"Share" => "Сподели", "Error while sharing" => "Грешка при споделување", "Error while unsharing" => "Грешка при прекин на споделување", "Error while changing permissions" => "Грешка при промена на привилегии", diff --git a/core/l10n/ms_MY.php b/core/l10n/ms_MY.php index 3eff044ac55..477e82ea9f1 100644 --- a/core/l10n/ms_MY.php +++ b/core/l10n/ms_MY.php @@ -27,6 +27,7 @@ "Yes" => "Ya", "Ok" => "Ok", "Error" => "Ralat", +"Share" => "Kongsi", "Password" => "Kata laluan", "ownCloud password reset" => "Set semula kata lalaun ownCloud", "Use the following link to reset your password: {link}" => "Guna pautan berikut untuk menetapkan semula kata laluan anda: {link}", diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php index a39e5d44bc4..65d6ea00cce 100644 --- a/core/l10n/nb_NO.php +++ b/core/l10n/nb_NO.php @@ -41,6 +41,7 @@ "Yes" => "Ja", "Ok" => "Ok", "Error" => "Feil", +"Share" => "Del", "Error while sharing" => "Feil under deling", "Share with" => "Del med", "Share with link" => "Del med link", diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 27d32cfcc5e..aca9b11cd12 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -53,6 +53,8 @@ "Error" => "Fout", "The app name is not specified." => "De app naam is niet gespecificeerd.", "The required file {file} is not installed!" => "Het vereiste bestand {file} is niet geïnstalleerd!", +"Share" => "Delen", +"Shared" => "Gedeeld", "Error while sharing" => "Fout tijdens het delen", "Error while unsharing" => "Fout tijdens het stoppen met delen", "Error while changing permissions" => "Fout tijdens het veranderen van permissies", @@ -82,6 +84,8 @@ "Error setting expiration date" => "Fout tijdens het instellen van de vervaldatum", "Sending ..." => "Versturen ...", "Email sent" => "E-mail verzonden", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "De update is niet geslaagd. Meld dit probleem aan bij de ownCloud community.", +"The update was successful. Redirecting you to ownCloud now." => "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.", "ownCloud password reset" => "ownCloud wachtwoord herstellen", "Use the following link to reset your password: {link}" => "Gebruik de volgende link om je wachtwoord te resetten: {link}", "You will receive a link to reset your password via Email." => "U ontvangt een link om uw wachtwoord opnieuw in te stellen via e-mail.", diff --git a/core/l10n/oc.php b/core/l10n/oc.php index 3443f9d501e..5b399dd8264 100644 --- a/core/l10n/oc.php +++ b/core/l10n/oc.php @@ -36,6 +36,7 @@ "Yes" => "Òc", "Ok" => "D'accòrdi", "Error" => "Error", +"Share" => "Parteja", "Error while sharing" => "Error al partejar", "Error while unsharing" => "Error al non partejar", "Error while changing permissions" => "Error al cambiar permissions", diff --git a/core/l10n/pl.php b/core/l10n/pl.php index 142593930d0..1376fa1359d 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -53,6 +53,8 @@ "Error" => "Błąd", "The app name is not specified." => "Nazwa aplikacji nie jest określona.", "The required file {file} is not installed!" => "Żądany plik {file} nie jest zainstalowany!", +"Share" => "Udostępnij", +"Shared" => "Udostępniono", "Error while sharing" => "Błąd podczas współdzielenia", "Error while unsharing" => "Błąd podczas zatrzymywania współdzielenia", "Error while changing permissions" => "Błąd przy zmianie uprawnień", diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index 8ca2dd4fd0e..929f298c4c3 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -1,4 +1,8 @@ "O usuário %s compartilhou um arquivo com você", +"User %s shared a folder with you" => "O usuário %s compartilhou uma pasta com você", +"User %s shared the file \"%s\" with you. It is available for download here: %s" => "O usuário %s compartilhou com você o arquivo \"%s\", que está disponível para download em: %s", +"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "O usuário %s compartilhou com você a pasta \"%s\", que está disponível para download em: %s", "Category type not provided." => "Tipo de categoria não fornecido.", "No category to add?" => "Nenhuma categoria adicionada?", "This category already exists: " => "Essa categoria já existe", @@ -49,6 +53,8 @@ "Error" => "Erro", "The app name is not specified." => "O nome do app não foi especificado.", "The required file {file} is not installed!" => "O arquivo {file} necessário não está instalado!", +"Share" => "Compartilhar", +"Shared" => "Compartilhados", "Error while sharing" => "Erro ao compartilhar", "Error while unsharing" => "Erro ao descompartilhar", "Error while changing permissions" => "Erro ao mudar permissões", @@ -58,6 +64,8 @@ "Share with link" => "Compartilhar com link", "Password protect" => "Proteger com senha", "Password" => "Senha", +"Email link to person" => "Enviar link por e-mail", +"Send" => "Enviar", "Set expiration date" => "Definir data de expiração", "Expiration date" => "Data de expiração", "Share via email:" => "Compartilhar via e-mail:", @@ -74,6 +82,10 @@ "Password protected" => "Protegido com senha", "Error unsetting expiration date" => "Erro ao remover data de expiração", "Error setting expiration date" => "Erro ao definir data de expiração", +"Sending ..." => "Enviando ...", +"Email sent" => "E-mail enviado", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "A atualização falhou. Por favor, relate este problema para a comunidade ownCloud.", +"The update was successful. Redirecting you to ownCloud now." => "A atualização teve êxito. Você será redirecionado ao ownCloud agora.", "ownCloud password reset" => "Redefinir senha ownCloud", "Use the following link to reset your password: {link}" => "Use o seguinte link para redefinir sua senha: {link}", "You will receive a link to reset your password via Email." => "Você receberá um link para redefinir sua senha via e-mail.", @@ -118,5 +130,6 @@ "remember" => "lembrete", "Log in" => "Log in", "prev" => "anterior", -"next" => "próximo" +"next" => "próximo", +"Updating ownCloud to version %s, this may take a while." => "Atualizando ownCloud para a versão %s, isto pode levar algum tempo." ); diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index 4f60bf2694d..2189a7e811c 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -53,6 +53,8 @@ "Error" => "Erro", "The app name is not specified." => "O nome da aplicação não foi especificado", "The required file {file} is not installed!" => "O ficheiro necessário {file} não está instalado!", +"Share" => "Partilhar", +"Shared" => "Partilhado", "Error while sharing" => "Erro ao partilhar", "Error while unsharing" => "Erro ao deixar de partilhar", "Error while changing permissions" => "Erro ao mudar permissões", diff --git a/core/l10n/ro.php b/core/l10n/ro.php index 3e389bfab0c..83587fa4a76 100644 --- a/core/l10n/ro.php +++ b/core/l10n/ro.php @@ -53,6 +53,7 @@ "Error" => "Eroare", "The app name is not specified." => "Numele aplicației nu a fost specificat", "The required file {file} is not installed!" => "Fișierul obligatoriu {file} nu este instalat!", +"Share" => "Partajează", "Error while sharing" => "Eroare la partajare", "Error while unsharing" => "Eroare la anularea partajării", "Error while changing permissions" => "Eroare la modificarea permisiunilor", diff --git a/core/l10n/ru.php b/core/l10n/ru.php index fd6a7c6094a..7b11ea43a4b 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -53,6 +53,7 @@ "Error" => "Ошибка", "The app name is not specified." => "Имя приложения не указано", "The required file {file} is not installed!" => "Необходимый файл {file} не установлен!", +"Share" => "Открыть доступ", "Error while sharing" => "Ошибка при открытии доступа", "Error while unsharing" => "Ошибка при закрытии доступа", "Error while changing permissions" => "Ошибка при смене разрешений", diff --git a/core/l10n/ru_RU.php b/core/l10n/ru_RU.php index c706d1c6a1e..53a3b9b0d59 100644 --- a/core/l10n/ru_RU.php +++ b/core/l10n/ru_RU.php @@ -53,6 +53,8 @@ "Error" => "Ошибка", "The app name is not specified." => "Имя приложения не указано.", "The required file {file} is not installed!" => "Требуемый файл {файл} не установлен!", +"Share" => "Сделать общим", +"Shared" => "Опубликовано", "Error while sharing" => "Ошибка создания общего доступа", "Error while unsharing" => "Ошибка отключения общего доступа", "Error while changing permissions" => "Ошибка при изменении прав доступа", diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php index 3c4e69e89be..eab1ba10018 100644 --- a/core/l10n/si_LK.php +++ b/core/l10n/si_LK.php @@ -34,6 +34,7 @@ "Yes" => "ඔව්", "Ok" => "හරි", "Error" => "දෝෂයක්", +"Share" => "බෙදා හදා ගන්න", "Share with" => "බෙදාගන්න", "Share with link" => "යොමුවක් මඟින් බෙදාගන්න", "Password protect" => "මුර පදයකින් ආරක්ශාකරන්න", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index ba488532f5e..ad5ae0ea371 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -53,6 +53,8 @@ "Error" => "Chyba", "The app name is not specified." => "Nešpecifikované meno aplikácie.", "The required file {file} is not installed!" => "Požadovaný súbor {file} nie je inštalovaný!", +"Share" => "Zdieľaj", +"Shared" => "Zdieľané", "Error while sharing" => "Chyba počas zdieľania", "Error while unsharing" => "Chyba počas ukončenia zdieľania", "Error while changing permissions" => "Chyba počas zmeny oprávnení", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index 413a46ffc79..54cf817a7a0 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -53,6 +53,7 @@ "Error" => "Napaka", "The app name is not specified." => "Ime aplikacije ni podano.", "The required file {file} is not installed!" => "Zahtevana datoteka {file} ni nameščena!", +"Share" => "Souporaba", "Error while sharing" => "Napaka med souporabo", "Error while unsharing" => "Napaka med odstranjevanjem souporabe", "Error while changing permissions" => "Napaka med spreminjanjem dovoljenj", diff --git a/core/l10n/sr.php b/core/l10n/sr.php index e8547c58acc..ecd316b7cfb 100644 --- a/core/l10n/sr.php +++ b/core/l10n/sr.php @@ -51,6 +51,7 @@ "Error" => "Грешка", "The app name is not specified." => "Име програма није унето.", "The required file {file} is not installed!" => "Потребна датотека {file} није инсталирана.", +"Share" => "Дељење", "Error while sharing" => "Грешка у дељењу", "Error while unsharing" => "Грешка код искључења дељења", "Error while changing permissions" => "Грешка код промене дозвола", diff --git a/core/l10n/sv.php b/core/l10n/sv.php index 1e461282c0b..a0dde652693 100644 --- a/core/l10n/sv.php +++ b/core/l10n/sv.php @@ -53,6 +53,8 @@ "Error" => "Fel", "The app name is not specified." => " Namnet på appen är inte specificerad.", "The required file {file} is not installed!" => "Den nödvändiga filen {file} är inte installerad!", +"Share" => "Dela", +"Shared" => "Delad", "Error while sharing" => "Fel vid delning", "Error while unsharing" => "Fel när delning skulle avslutas", "Error while changing permissions" => "Fel vid ändring av rättigheter", diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php index f4f204968ff..2b8829c717f 100644 --- a/core/l10n/ta_LK.php +++ b/core/l10n/ta_LK.php @@ -49,6 +49,7 @@ "Error" => "வழு", "The app name is not specified." => "செயலி பெயர் குறிப்பிடப்படவில்லை.", "The required file {file} is not installed!" => "தேவைப்பட்ட கோப்பு {கோப்பு} நிறுவப்படவில்லை!", +"Share" => "பகிர்வு", "Error while sharing" => "பகிரும் போதான வழு", "Error while unsharing" => "பகிராமல் உள்ளப்போதான வழு", "Error while changing permissions" => "அனுமதிகள் மாறும்போதான வழு", diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php index 9b491d24eae..ffab0bb9564 100644 --- a/core/l10n/th_TH.php +++ b/core/l10n/th_TH.php @@ -53,6 +53,8 @@ "Error" => "พบข้อผิดพลาด", "The app name is not specified." => "ชื่อของแอปยังไม่ได้รับการระบุชื่อ", "The required file {file} is not installed!" => "ไฟล์ {file} ซึ่งเป็นไฟล์ที่จำเป็นต้องได้รับการติดตั้งไว้ก่อน ยังไม่ได้ถูกติดตั้ง", +"Share" => "แชร์", +"Shared" => "แชร์แล้ว", "Error while sharing" => "เกิดข้อผิดพลาดในระหว่างการแชร์ข้อมูล", "Error while unsharing" => "เกิดข้อผิดพลาดในการยกเลิกการแชร์ข้อมูล", "Error while changing permissions" => "เกิดข้อผิดพลาดในการเปลี่ยนสิทธิ์การเข้าใช้งาน", diff --git a/core/l10n/tr.php b/core/l10n/tr.php index f64ecbedd5a..624887674d1 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -53,6 +53,7 @@ "Error" => "Hata", "The app name is not specified." => "uygulama adı belirtilmedi.", "The required file {file} is not installed!" => "İhtiyaç duyulan {file} dosyası kurulu değil.", +"Share" => "Paylaş", "Error while sharing" => "Paylaşım sırasında hata ", "Error while unsharing" => "Paylaşım iptal ediliyorken hata", "Error while changing permissions" => "İzinleri değiştirirken hata oluştu", diff --git a/core/l10n/uk.php b/core/l10n/uk.php index 34387cc914e..fa8150e7c9d 100644 --- a/core/l10n/uk.php +++ b/core/l10n/uk.php @@ -53,6 +53,7 @@ "Error" => "Помилка", "The app name is not specified." => "Не визначено ім'я програми.", "The required file {file} is not installed!" => "Необхідний файл {file} не встановлено!", +"Share" => "Поділитися", "Error while sharing" => "Помилка під час публікації", "Error while unsharing" => "Помилка під час відміни публікації", "Error while changing permissions" => "Помилка при зміні повноважень", diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 1d538e99dbb..078cfa8dd8c 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -53,6 +53,7 @@ "Error" => "Lỗi", "The app name is not specified." => "Tên ứng dụng không được chỉ định.", "The required file {file} is not installed!" => "Tập tin cần thiết {file} không được cài đặt!", +"Share" => "Chia sẻ", "Error while sharing" => "Lỗi trong quá trình chia sẻ", "Error while unsharing" => "Lỗi trong quá trình gỡ chia sẻ", "Error while changing permissions" => "Lỗi trong quá trình phân quyền", diff --git a/core/l10n/zh_CN.GB2312.php b/core/l10n/zh_CN.GB2312.php index a76c3a6c796..9617d7260dc 100644 --- a/core/l10n/zh_CN.GB2312.php +++ b/core/l10n/zh_CN.GB2312.php @@ -38,6 +38,7 @@ "Yes" => "是", "Ok" => "好的", "Error" => "错误", +"Share" => "分享", "Error while sharing" => "分享出错", "Error while unsharing" => "取消分享出错", "Error while changing permissions" => "变更权限出错", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 3918cd165d6..f18fd6b357d 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -53,6 +53,8 @@ "Error" => "错误", "The app name is not specified." => "未指定App名称。", "The required file {file} is not installed!" => "所需文件{file}未安装!", +"Share" => "共享", +"Shared" => "已共享", "Error while sharing" => "共享时出错", "Error while unsharing" => "取消共享时出错", "Error while changing permissions" => "修改权限时出错", diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index 78a069a63dc..35183194d2a 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -53,6 +53,8 @@ "Error" => "錯誤", "The app name is not specified." => "沒有指定 app 名稱。", "The required file {file} is not installed!" => "沒有安裝所需的檔案 {file} !", +"Share" => "分享", +"Shared" => "已分享", "Error while sharing" => "分享時發生錯誤", "Error while unsharing" => "取消分享時發生錯誤", "Error while changing permissions" => "修改權限時發生錯誤", @@ -82,6 +84,8 @@ "Error setting expiration date" => "錯誤的到期日設定", "Sending ..." => "正在寄出...", "Email sent" => "Email 已寄出", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "升級失敗,請將此問題回報 ownCloud 社群。", +"The update was successful. Redirecting you to ownCloud now." => "升級成功,正將您重新導向至 ownCloud 。", "ownCloud password reset" => "ownCloud 密碼重設", "Use the following link to reset your password: {link}" => "請循以下聯結重設你的密碼: {link}", "You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到你的電子郵件信箱。", diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 2886c3c5a2e..de505486f75 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -29,8 +29,30 @@
@@ -38,20 +60,14 @@
diff --git a/core/templates/login.php b/core/templates/login.php index c82d2cafa2e..59b685eabff 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -30,10 +30,12 @@

- /> - + + +

diff --git a/db_structure.xml b/db_structure.xml index e878eac7690..f4111bfabd0 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -60,16 +60,96 @@ - *dbprefix*fscache + *dbprefix*storages id - 1 + text + + true + 64 + + + + numeric_id integer 0 true + 1 + 4 + + + + storages_id_index + true + + id + ascending + + + + + +
+ + + + *dbprefix*mimetypes + + + + + id + integer + 0 + true + 1 + 4 + + + + mimetype + text + + true + 255 + + + + mimetype_id_index + true + + mimetype + ascending + + + + + +
+ + + + *dbprefix*filecache + + + + + fileid + integer + 0 + true + 1 + 4 + + + + storage + integer + + true 4 @@ -92,9 +172,9 @@ parent integer - 0 + true - 8 + 4 @@ -102,7 +182,122 @@ text true - 300 + 250 + + + + mimetype + integer + + true + 4 + + + + mimepart + integer + + true + 4 + + + + size + integer + + true + 4 + + + + mtime + integer + + true + 4 + + + + encrypted + integer + 0 + true + 4 + + + + etag + text + + true + 40 + + + + fs_storage_path_hash + true + + storage + ascending + + + path_hash + ascending + + + + + fs_parent_name_hash + + parent + ascending + + + name + ascending + + + + + fs_storage_mimetype + + storage + ascending + + + mimetype + ascending + + + + + fs_storage_mimepart + + storage + ascending + + + mimepart + ascending + + + + + +
+ + + + *dbprefix*permissions + + + + + fileid + integer + 0 + true + 4 @@ -114,101 +309,22 @@ - size + permissions integer 0 true - 8 - - - - ctime - integer - 0 - true - 8 - - - - mtime - integer - 0 - true - 8 - - - - mimetype - text - - true - 96 - - - - mimepart - text - - true - 32 - - - - encrypted - integer - 0 - true - 1 - - - - versioned - integer - 0 - true - 1 - - - - writable - integer - 0 - true - 1 + 4 - fscache_path_hash_index + id_user_index + true - path_hash - ascending - - - - - parent_index - - parent - ascending - - - - - name_index - - name - ascending - - - - - parent_name_index - - parent + fileid ascending - name + user ascending diff --git a/index.html b/index.html new file mode 100644 index 00000000000..69d42e3a0b3 --- /dev/null +++ b/index.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/l10n/.tx/config b/l10n/.tx/config index 2aac0feedc5..b6589d8112d 100644 --- a/l10n/.tx/config +++ b/l10n/.tx/config @@ -40,6 +40,12 @@ source_file = templates/files_sharing.pot source_lang = en type = PO +[owncloud.files_trashbin] +file_filter = /files_trashbin.po +source_file = templates/files_trashbin.pot +source_lang = en +type = PO + [owncloud.files_versions] file_filter = /files_versions.po source_file = templates/files_versions.pot diff --git a/l10n/af_ZA/core.po b/l10n/af_ZA/core.po new file mode 100644 index 00000000000..cee3db1d1b3 --- /dev/null +++ b/l10n/af_ZA/core.po @@ -0,0 +1,585 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Jano Barnard , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 17:00+0000\n" +"Last-Translator: Jano Barnard \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/share.php:85 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:87 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:89 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:91 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:37 +msgid "This category already exists: " +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:32 +msgid "Sunday" +msgstr "" + +#: js/config.php:32 +msgid "Monday" +msgstr "" + +#: js/config.php:32 +msgid "Tuesday" +msgstr "" + +#: js/config.php:32 +msgid "Wednesday" +msgstr "" + +#: js/config.php:32 +msgid "Thursday" +msgstr "" + +#: js/config.php:32 +msgid "Friday" +msgstr "" + +#: js/config.php:32 +msgid "Saturday" +msgstr "" + +#: js/config.php:33 +msgid "January" +msgstr "" + +#: js/config.php:33 +msgid "February" +msgstr "" + +#: js/config.php:33 +msgid "March" +msgstr "" + +#: js/config.php:33 +msgid "April" +msgstr "" + +#: js/config.php:33 +msgid "May" +msgstr "" + +#: js/config.php:33 +msgid "June" +msgstr "" + +#: js/config.php:33 +msgid "July" +msgstr "" + +#: js/config.php:33 +msgid "August" +msgstr "" + +#: js/config.php:33 +msgid "September" +msgstr "" + +#: js/config.php:33 +msgid "October" +msgstr "" + +#: js/config.php:33 +msgid "November" +msgstr "" + +#: js/config.php:33 +msgid "December" +msgstr "" + +#: js/js.js:280 +msgid "Settings" +msgstr "Instellings" + +#: js/js.js:760 +msgid "seconds ago" +msgstr "" + +#: js/js.js:761 +msgid "1 minute ago" +msgstr "" + +#: js/js.js:762 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:763 +msgid "1 hour ago" +msgstr "" + +#: js/js.js:764 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:765 +msgid "today" +msgstr "" + +#: js/js.js:766 +msgid "yesterday" +msgstr "" + +#: js/js.js:767 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:768 +msgid "last month" +msgstr "" + +#: js/js.js:769 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:770 +msgid "months ago" +msgstr "" + +#: js/js.js:771 +msgid "last year" +msgstr "" + +#: js/js.js:772 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 +#: js/share.js:583 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Shared" +msgstr "" + +#: js/share.js:141 js/share.js:611 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +msgid "Password" +msgstr "Wagwoord" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "" + +#: js/share.js:339 +msgid "share" +msgstr "" + +#: js/share.js:373 js/share.js:558 +msgid "Password protected" +msgstr "" + +#: js/share.js:571 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:583 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:598 +msgid "Sending ..." +msgstr "" + +#: js/share.js:609 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:47 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "Gebruik die volgende skakel om jou wagwoord te herstel: {link}" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel." + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: templates/login.php:28 +msgid "Username" +msgstr "Gebruikersnaam" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "Herstel-versoek" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "Jou wagwoord is herstel" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "Na aanteken-bladsy" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "Nuwe wagwoord" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "Herstel wagwoord" + +#: strings.php:5 +msgid "Personal" +msgstr "Persoonlik" + +#: strings.php:6 +msgid "Users" +msgstr "Gebruikers" + +#: strings.php:7 +msgid "Apps" +msgstr "Toepassings" + +#: strings.php:8 +msgid "Admin" +msgstr "Admin" + +#: strings.php:9 +msgid "Help" +msgstr "Hulp" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "Wolk nie gevind" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "" + +#: templates/installation.php:23 templates/installation.php:31 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:26 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an admin account" +msgstr "Skep `n admin-rekening" + +#: templates/installation.php:50 +msgid "Advanced" +msgstr "Gevorderd" + +#: templates/installation.php:52 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:59 +msgid "Configure the database" +msgstr "Stel databasis op" + +#: templates/installation.php:64 templates/installation.php:75 +#: templates/installation.php:85 templates/installation.php:95 +msgid "will be used" +msgstr "sal gebruik word" + +#: templates/installation.php:107 +msgid "Database user" +msgstr "Databasis-gebruiker" + +#: templates/installation.php:111 +msgid "Database password" +msgstr "Databasis-wagwoord" + +#: templates/installation.php:115 +msgid "Database name" +msgstr "Databasis naam" + +#: templates/installation.php:123 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:129 +msgid "Database host" +msgstr "" + +#: templates/installation.php:134 +msgid "Finish setup" +msgstr "Maak opstelling klaar" + +#: templates/layout.guest.php:34 +msgid "web services under your control" +msgstr "webdienste onder jou beheer" + +#: templates/layout.user.php:49 +msgid "Log out" +msgstr "Teken uit" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "Jou wagwoord verloor?" + +#: templates/login.php:41 +msgid "remember" +msgstr "onthou" + +#: templates/login.php:43 +msgid "Log in" +msgstr "Teken aan" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "vorige" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "volgende" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/af_ZA/files.po b/l10n/af_ZA/files.po new file mode 100644 index 00000000000..3814f1cfa0c --- /dev/null +++ b/l10n/af_ZA/files.po @@ -0,0 +1,296 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/upload.php:17 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:24 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:25 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:29 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:30 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:31 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:32 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "" + +#: ajax/upload.php:82 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "" + +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:185 +msgid "Rename" +msgstr "" + +#: js/filelist.js:208 js/filelist.js:210 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:208 js/filelist.js:210 +msgid "replace" +msgstr "" + +#: js/filelist.js:208 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:208 js/filelist.js:210 +msgid "cancel" +msgstr "" + +#: js/filelist.js:253 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "undo" +msgstr "" + +#: js/filelist.js:255 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:224 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:261 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:261 +msgid "Upload Error" +msgstr "" + +#: js/files.js:278 +msgid "Close" +msgstr "" + +#: js/files.js:297 js/files.js:413 js/files.js:444 +msgid "Pending" +msgstr "" + +#: js/files.js:317 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:320 js/files.js:375 js/files.js:390 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:393 js/files.js:428 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:502 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:575 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:580 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:949 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:950 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:951 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:970 +msgid "1 folder" +msgstr "" + +#: js/files.js:972 +msgid "{count} folders" +msgstr "" + +#: js/files.js:980 +msgid "1 file" +msgstr "" + +#: js/files.js:982 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/af_ZA/files_encryption.po b/l10n/af_ZA/files_encryption.po new file mode 100644 index 00000000000..c2b5564d0c3 --- /dev/null +++ b/l10n/af_ZA/files_encryption.po @@ -0,0 +1,82 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/settings-personal.js:17 +msgid "" +"Please switch to your ownCloud client and change your encryption password to" +" complete the conversion." +msgstr "" + +#: js/settings-personal.js:17 +msgid "switched to client side encryption" +msgstr "" + +#: js/settings-personal.js:21 +msgid "Change encryption password to login password" +msgstr "" + +#: js/settings-personal.js:25 +msgid "Please check your passwords and try again." +msgstr "" + +#: js/settings-personal.js:25 +msgid "Could not change your file encryption password to your login password" +msgstr "" + +#: templates/settings-personal.php:3 templates/settings.php:5 +msgid "Choose encryption mode:" +msgstr "" + +#: templates/settings-personal.php:20 templates/settings.php:24 +msgid "" +"Client side encryption (most secure but makes it impossible to access your " +"data from the web interface)" +msgstr "" + +#: templates/settings-personal.php:30 templates/settings.php:36 +msgid "" +"Server side encryption (allows you to access your files from the web " +"interface and the desktop client)" +msgstr "" + +#: templates/settings-personal.php:41 templates/settings.php:60 +msgid "None (no encryption at all)" +msgstr "" + +#: templates/settings.php:10 +msgid "" +"Important: Once you selected an encryption mode there is no way to change it" +" back" +msgstr "" + +#: templates/settings.php:48 +msgid "User specific (let the user decide)" +msgstr "" + +#: templates/settings.php:65 +msgid "Encryption" +msgstr "" + +#: templates/settings.php:67 +msgid "Exclude the following file types from encryption" +msgstr "" + +#: templates/settings.php:71 +msgid "None" +msgstr "" diff --git a/l10n/af_ZA/files_external.po b/l10n/af_ZA/files_external.po new file mode 100644 index 00000000000..fab8ff9b425 --- /dev/null +++ b/l10n/af_ZA/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:405 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:406 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "Gebruikers" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:153 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/af_ZA/files_sharing.po b/l10n/af_ZA/files_sharing.po new file mode 100644 index 00000000000..13198e5bec2 --- /dev/null +++ b/l10n/af_ZA/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "Wagwoord" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:9 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:11 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:14 templates/public.php:30 +msgid "Download" +msgstr "" + +#: templates/public.php:29 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:35 +msgid "web services under your control" +msgstr "webdienste onder jou beheer" diff --git a/l10n/af_ZA/files_trashbin.po b/l10n/af_ZA/files_trashbin.po new file mode 100644 index 00000000000..ca4278cffc8 --- /dev/null +++ b/l10n/af_ZA/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/af_ZA/files_versions.po b/l10n/af_ZA/files_versions.po new file mode 100644 index 00000000000..6cb41d2c080 --- /dev/null +++ b/l10n/af_ZA/files_versions.po @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/af_ZA/lib.po b/l10n/af_ZA/lib.po new file mode 100644 index 00000000000..e03f329b9b7 --- /dev/null +++ b/l10n/af_ZA/lib.po @@ -0,0 +1,156 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2012-07-27 22:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: app.php:312 +msgid "Help" +msgstr "Hulp" + +#: app.php:319 +msgid "Personal" +msgstr "Persoonlik" + +#: app.php:324 +msgid "Settings" +msgstr "Instellings" + +#: app.php:329 +msgid "Users" +msgstr "Gebruikers" + +#: app.php:336 +msgid "Apps" +msgstr "Toepassings" + +#: app.php:338 +msgid "Admin" +msgstr "Admin" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:203 files.php:228 +msgid "Back to Files" +msgstr "" + +#: files.php:227 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:226 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "" + +#: template.php:114 +msgid "1 minute ago" +msgstr "" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:116 +msgid "1 hour ago" +msgstr "" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "" + +#: template.php:119 +msgid "yesterday" +msgstr "" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:75 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:77 +msgid "up to date" +msgstr "" + +#: updater.php:80 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/af_ZA/settings.po b/l10n/af_ZA/settings.po new file mode 100644 index 00000000000..f621a8914be --- /dev/null +++ b/l10n/af_ZA/settings.po @@ -0,0 +1,311 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 17:00+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:18 +msgid "Authentication error" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:28 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:34 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:69 +msgid "Saving..." +msgstr "" + +#: personal.php:34 personal.php:35 +msgid "__language_name__" +msgstr "" + +#: templates/apps.php:10 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:11 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:24 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:28 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:29 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:31 +msgid "Update" +msgstr "" + +#: templates/help.php:3 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:4 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:7 +msgid "Forum" +msgstr "" + +#: templates/help.php:9 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:11 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:12 +msgid "Clients" +msgstr "" + +#: templates/personal.php:13 +msgid "Download Desktop Clients" +msgstr "" + +#: templates/personal.php:14 +msgid "Download Android Client" +msgstr "" + +#: templates/personal.php:15 +msgid "Download iOS Client" +msgstr "" + +#: templates/personal.php:21 templates/users.php:23 templates/users.php:81 +msgid "Password" +msgstr "Wagwoord" + +#: templates/personal.php:22 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:23 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:24 +msgid "Current password" +msgstr "" + +#: templates/personal.php:25 +msgid "New password" +msgstr "Nuwe wagwoord" + +#: templates/personal.php:26 +msgid "show" +msgstr "" + +#: templates/personal.php:27 +msgid "Change password" +msgstr "" + +#: templates/personal.php:33 +msgid "Email" +msgstr "" + +#: templates/personal.php:34 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:35 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:41 templates/personal.php:42 +msgid "Language" +msgstr "" + +#: templates/personal.php:47 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:52 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:54 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/personal.php:63 +msgid "Version" +msgstr "" + +#: templates/personal.php:65 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/users.php:21 templates/users.php:79 +msgid "Login Name" +msgstr "" + +#: templates/users.php:26 templates/users.php:82 templates/users.php:107 +msgid "Groups" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:42 templates/users.php:142 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:60 templates/users.php:157 +msgid "Other" +msgstr "" + +#: templates/users.php:80 +msgid "Display Name" +msgstr "" + +#: templates/users.php:84 templates/users.php:121 +msgid "Group Admin" +msgstr "" + +#: templates/users.php:86 +msgid "Storage" +msgstr "" + +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + +#: templates/users.php:137 +msgid "Default" +msgstr "" + +#: templates/users.php:165 +msgid "Delete" +msgstr "" diff --git a/l10n/af_ZA/user_ldap.po b/l10n/af_ZA/user_ldap.po new file mode 100644 index 00000000000..dd30840b779 --- /dev/null +++ b/l10n/af_ZA/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 16:31+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 +msgid "Host" +msgstr "" + +#: templates/settings.php:21 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:22 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:22 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:22 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:23 +msgid "User DN" +msgstr "" + +#: templates/settings.php:23 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:24 +msgid "Password" +msgstr "Wagwoord" + +#: templates/settings.php:24 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:25 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:26 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:26 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:26 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:27 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:27 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:27 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 +msgid "Port" +msgstr "" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:38 +msgid "Do not use it for SSL connections, it will fail." +msgstr "" + +#: templates/settings.php:39 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:40 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:40 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:40 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:41 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:62 +msgid "Help" +msgstr "Hulp" diff --git a/l10n/af_ZA/user_webdavauth.po b/l10n/af_ZA/user_webdavauth.po new file mode 100644 index 00000000000..5ccd72fea35 --- /dev/null +++ b/l10n/af_ZA/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:6 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/ar/core.po b/l10n/ar/core.po index 0ce541f850c..100a7f42a6e 100644 --- a/l10n/ar/core.po +++ b/l10n/ar/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "تشرين الثاني" msgid "December" msgstr "كانون الاول" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "تعديلات" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "منذ ثواني" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "منذ دقيقة" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} منذ دقائق" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "اليوم" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "" @@ -254,7 +254,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "شارك" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -542,7 +542,7 @@ msgstr "انهاء التعديلات" msgid "web services under your control" msgstr "خدمات الوب تحت تصرفك" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "الخروج" diff --git a/l10n/ar/files.po b/l10n/ar/files.po index 7063715d2f0..eefbee4f65e 100644 --- a/l10n/ar/files.po +++ b/l10n/ar/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: ar\n" "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;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -67,11 +53,11 @@ msgstr "المجلد المؤقت غير موجود" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "الملفات" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "إلغاء مشاركة" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "محذوف" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -111,7 +97,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -119,12 +105,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "إغلق" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "الاسم" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "حجم" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "معدل" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -284,32 +258,40 @@ msgstr "مجلد" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "لا يوجد شيء هنا. إرفع بعض الملفات!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "تحميل" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "حجم الترفيع أعلى من المسموح" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ar/files_trashbin.po b/l10n/ar/files_trashbin.po new file mode 100644 index 00000000000..d892fd2a983 --- /dev/null +++ b/l10n/ar/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"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;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "اسم" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ar/settings.po b/l10n/ar/settings.po index a2178a82e0a..c3a33123458 100644 --- a/l10n/ar/settings.po +++ b/l10n/ar/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "فشل إضافة المستخدم الى المجموعة %s" msgid "Unable to remove user from group %s" msgstr "فشل إزالة المستخدم من المجموعة %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "إيقاف" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "تفعيل" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "خطأ" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "حفظ" @@ -114,6 +142,10 @@ msgstr "راجع صفحة التطبيق على apps.owncloud.com" msgid "-licensed by " msgstr "-ترخيص من قبل " +#: templates/apps.php:31 +msgid "Update" +msgstr "حدث" + #: templates/help.php:3 msgid "User Documentation" msgstr "كتاب توثيق المستخدم" @@ -265,6 +297,14 @@ msgstr "مدير المجموعة" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po index ab2b79bb6c3..d723f7f7d7d 100644 --- a/l10n/ar/user_ldap.po +++ b/l10n/ar/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: ar\n" "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;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "فشل الحذف" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "كلمة المرور" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "المساعدة" diff --git a/l10n/bg_BG/core.po b/l10n/bg_BG/core.po index 1e66831c050..692a844f771 100644 --- a/l10n/bg_BG/core.po +++ b/l10n/bg_BG/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -159,59 +159,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Настройки" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "преди секунди" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "преди 1 минута" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "преди 1 час" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "днес" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "вчера" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "последният месец" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "последната година" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "последните години" @@ -256,7 +256,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Споделяне" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -544,7 +544,7 @@ msgstr "" msgid "web services under your control" msgstr "уеб услуги под Ваш контрол" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "" diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po index 2de8fabb143..b1a38c33dba 100644 --- a/l10n/bg_BG/files.po +++ b/l10n/bg_BG/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -68,11 +54,11 @@ msgstr "Липсва временна папка" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "Файлове" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Изтриване" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Преименуване" @@ -112,7 +98,7 @@ msgstr "отказ" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "възтановяване" @@ -120,12 +106,8 @@ msgstr "възтановяване" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Качването е спряно." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Име" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Променено" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -285,32 +259,40 @@ msgstr "Папка" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Няма нищо тук. Качете нещо." -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Изтегляне" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Файлът който сте избрали за качване е прекалено голям" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/bg_BG/files_trashbin.po b/l10n/bg_BG/files_trashbin.po new file mode 100644 index 00000000000..61fe9f67efc --- /dev/null +++ b/l10n/bg_BG/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg_BG\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Име" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/bg_BG/settings.po b/l10n/bg_BG/settings.po index 71667fa12a1..f056463c578 100644 --- a/l10n/bg_BG/settings.po +++ b/l10n/bg_BG/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Включено" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Грешка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -114,6 +142,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Обновяване" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -265,6 +297,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po index 0ec1c50339e..932ba233880 100644 --- a/l10n/bg_BG/user_ldap.po +++ b/l10n/bg_BG/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Парола" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Помощ" diff --git a/l10n/bn_BD/core.po b/l10n/bn_BD/core.po index dcaa8094dcd..00bc3030b2f 100644 --- a/l10n/bn_BD/core.po +++ b/l10n/bn_BD/core.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # Shubhra Paul , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 13:58+0000\n" +"Last-Translator: Shubhra Paul \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -156,59 +157,59 @@ msgstr "নভেম্বর" msgid "December" msgstr "ডিসেম্বর" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "নিয়ামকসমূহ" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "সেকেন্ড পূর্বে" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 মিনিট পূর্বে" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} মিনিট পূর্বে" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 ঘন্টা পূর্বে" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} ঘন্টা পূর্বে" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "আজ" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "গতকাল" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} দিন পূর্বে" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "গতমাস" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} মাস পূর্বে" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "মাস পূর্বে" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "গত বছর" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "বছর পূর্বে" @@ -253,11 +254,11 @@ msgstr "আবশ্যিক {file} টি সংস্থাপিত নে #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "ভাগাভাগি কর" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "ভাগাভাগিকৃত" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -541,7 +542,7 @@ msgstr "সেটআপ সুসম্পন্ন কর" msgid "web services under your control" msgstr "ওয়েব সার্ভিসের নিয়ন্ত্রণ আপনার হাতের মুঠোয়" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "প্রস্থান" diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po index 5d15b8d5bad..8192e6fedfc 100644 --- a/l10n/bn_BD/files.po +++ b/l10n/bn_BD/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "%s কে স্থানান্তর করা সম্ভব হলো না" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।" @@ -67,11 +53,11 @@ msgstr "অস্থায়ী ফোল্ডার খোয়া গিয়েছ msgid "Failed to write to disk" msgstr "ডিস্কে লিখতে ব্যর্থ" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "যথেষ্ঠ পরিমাণ স্থান নেই" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "ভুল ডিরেক্টরি" @@ -79,15 +65,15 @@ msgstr "ভুল ডিরেক্টরি" msgid "Files" msgstr "ফাইল" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "ভাগাভাগি বাতিল " -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "মুছে ফেল" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "পূনঃনামকরণ" @@ -111,7 +97,7 @@ msgstr "বাতিল" msgid "replaced {new_name}" msgstr "{new_name} প্রতিস্থাপন করা হয়েছে" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "ক্রিয়া প্রত্যাহার" @@ -119,13 +105,9 @@ msgstr "ক্রিয়া প্রত্যাহার" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} কে {old_name} নামে প্রতিস্থাপন করা হয়েছে" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} ভাগাভাগি বাতিল কর" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} মুছে ফেলা হয়েছে" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "আপনার ফাইলটি আপলোড করা সম্ভব হলো না, কেননা এটি হয় একটি ফোল্ডার কিংবা এর আকার ০ বাইট" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "আপলোড করতে সমস্যা " -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "বন্ধ" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "মুলতুবি" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "১টি ফাইল আপলোড করা হচ্ছে" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} টি ফাইল আপলোড করা হচ্ছে" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "আপলোড বাতিল করা হয়েছে।" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL ফাঁকা রাখা যাবে না।" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} টি ফাইল স্ক্যান করা হয়েছে" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "স্ক্যান করার সময় সমস্যা দেখা দিয়েছে" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "নাম" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "আকার" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "পরিবর্তিত" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "১টি ফোল্ডার" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} টি ফোল্ডার" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "১টি ফাইল" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} টি ফাইল" @@ -284,32 +258,40 @@ msgstr "ফোল্ডার" msgid "From link" msgstr " লিংক থেকে" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "আপলোড বাতিল কর" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "এখানে কিছুই নেই। কিছু আপলোড করুন !" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "ডাউনলোড" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "আপলোডের আকারটি অনেক বড়" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন " -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "বর্তমান স্ক্যানিং" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/bn_BD/files_trashbin.po b/l10n/bn_BD/files_trashbin.po new file mode 100644 index 00000000000..8cb4d9688e8 --- /dev/null +++ b/l10n/bn_BD/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn_BD\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "রাম" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "১টি ফোল্ডার" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} টি ফোল্ডার" + +#: js/trash.js:120 +msgid "1 file" +msgstr "১টি ফাইল" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} টি ফাইল" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/bn_BD/settings.po b/l10n/bn_BD/settings.po index 681984d8be6..e5911603308 100644 --- a/l10n/bn_BD/settings.po +++ b/l10n/bn_BD/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr " %s গোষ্ঠীতে ব্যবহারকারী যোগ msgid "Unable to remove user from group %s" msgstr "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "নিষ্ক্রিয়" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "সক্রিয় " +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "সমস্যা" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "সংরক্ষণ করা হচ্ছে.." @@ -112,6 +140,10 @@ msgstr "apps.owncloud.com এ অ্যাপ্লিকেসন পৃষ্ msgid "-licensed by " msgstr "-লাইসেন্সধারী " +#: templates/apps.php:31 +msgid "Update" +msgstr "পরিবর্ধন" + #: templates/help.php:3 msgid "User Documentation" msgstr "ব্যবহারকারী সহায়িকা" @@ -263,6 +295,14 @@ msgstr "গোষ্ঠী প্রশাসক" msgid "Storage" msgstr "সংরক্ষণাগার" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "পূর্বনির্ধারিত" diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po index 68b329db2f1..2f79910e815 100644 --- a/l10n/bn_BD/user_ldap.po +++ b/l10n/bn_BD/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "হোস্ট" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "ভিত্তি DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "ব্যবহারকারি DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "কূটশব্দ" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "ব্যবহারকারির প্রবেশ ছাঁকনী" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "প্রবেশের চেষ্টা করার সময় প্রযোজ্য ছাঁকনীটি নির্ধারণ করবে। প্রবেশের সময় ব্যবহারকারী নামটি %%uid দিয়ে প্রতিস্থাপিত হবে।" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid স্থানধারক ব্যবহার করুন, উদাহরণঃ \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "ব্যবহারকারী তালিকা ছাঁকনী" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "ব্যবহারকারী উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "কোন স্থানধারক ব্যতীত, যেমনঃ \"objectClass=person\"।" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "গোষ্ঠী ছাঁকনী" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "গোষ্ঠীসমূহ উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "পোর্ট" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "ভিত্তি ব্যবহারকারি বৃক্ষাকারে" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "ভিত্তি গোষ্ঠী বৃক্ষাকারে" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "গোষ্ঠী-সদস্য সংস্থাপন" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLS ব্যবহার কর" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "অনুমোদিত নয়, শুধুমাত্র পরীক্ষামূলক ব্যবহারের জন্য।" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "বাইটে" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "ভিত্তি ব্যবহারকারি বৃক্ষাকারে" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "ভিত্তি গোষ্ঠী বৃক্ষাকারে" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "গোষ্ঠী-সদস্য সংস্থাপন" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "বাইটে" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "সহায়িকা" diff --git a/l10n/ca/core.po b/l10n/ca/core.po index 3fe5703a2f8..4c045d1fe1e 100644 --- a/l10n/ca/core.po +++ b/l10n/ca/core.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -158,59 +158,59 @@ msgstr "Novembre" msgid "December" msgstr "Desembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Arranjament" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segons enrere" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "fa 1 minut" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "fa {minutes} minuts" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "fa 1 hora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "fa {hours} hores" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "avui" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ahir" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "fa {days} dies" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "el mes passat" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "fa {months} mesos" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "mesos enrere" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "l'any passat" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "anys enrere" @@ -255,11 +255,11 @@ msgstr "El fitxer requerit {file} no està instal·lat!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Comparteix" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Compartit" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -543,7 +543,7 @@ msgstr "Acaba la configuració" msgid "web services under your control" msgstr "controleu els vostres serveis web" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Surt" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index fef5f92725c..758bde167ae 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-28 00:04+0100\n" -"PO-Revision-Date: 2013-01-27 15:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 08:40+0000\n" "Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -24,20 +24,6 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr " No s'ha pogut moure %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "No es pot canviar el nom del fitxer" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "No s'ha carregat cap fitxer. Error desconegut" @@ -73,11 +59,11 @@ msgstr "S'ha perdut un fitxer temporal" msgid "Failed to write to disk" msgstr "Ha fallat en escriure al disc" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "No hi ha prou espai disponible" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Directori no vàlid." @@ -85,15 +71,15 @@ msgstr "Directori no vàlid." msgid "Files" msgstr "Fitxers" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Deixa de compartir" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Suprimeix" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Reanomena" @@ -117,7 +103,7 @@ msgstr "cancel·la" msgid "replaced {new_name}" msgstr "s'ha substituït {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "desfés" @@ -125,13 +111,9 @@ msgstr "desfés" msgid "replaced {new_name} with {old_name}" msgstr "s'ha substituït {old_name} per {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "no compartits {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "eliminats {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "executa d'operació d'esborrar" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -155,86 +137,78 @@ msgstr "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden ac msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "S'està preparant la baixada. Pot trigar una estona si els fitxers són grans." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Error en la pujada" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Tanca" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendents" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fitxer pujant" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} fitxers en pujada" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "La pujada s'ha cancel·lat." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "La URL no pot ser buida" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de carpeta no vàlid. L'ús de 'Shared' està reservat per Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} fitxers escannejats" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "error durant l'escaneig" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Mida" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 carpeta" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} carpetes" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fitxer" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fitxers" @@ -290,32 +264,40 @@ msgstr "Carpeta" msgid "From link" msgstr "Des d'enllaç" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Esborra" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancel·la la pujada" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Res per aquí. Pugeu alguna cosa!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Baixa" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "La pujada és massa gran" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "S'estan escanejant els fitxers, espereu" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Actualment escanejant" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Actualitzant la memòria de cau del sistema de fitxers..." diff --git a/l10n/ca/files_trashbin.po b/l10n/ca/files_trashbin.po new file mode 100644 index 00000000000..3bb530ebc63 --- /dev/null +++ b/l10n/ca/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "executa l'operació de restauració" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nom" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Eliminat" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 carpeta" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} carpetes" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fitxer" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} fitxers" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "La paperera està buida!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Recupera" diff --git a/l10n/ca/settings.po b/l10n/ca/settings.po index 1efd6df00e1..4ad389d707e 100644 --- a/l10n/ca/settings.po +++ b/l10n/ca/settings.po @@ -7,14 +7,15 @@ # , 2012. # , 2012. # Josep Tomàs , 2012. +# , 2013. # , 2011-2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 16:48+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -80,14 +81,42 @@ msgstr "No es pot afegir l'usuari al grup %s" msgid "Unable to remove user from group %s" msgstr "No es pot eliminar l'usuari del grup %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "No s'ha pogut actualitzar l'aplicació." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Actualitza a {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactiva" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activa" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Espereu..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Actualitzant..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Error en actualitzar l'aplicació" + +#: js/apps.js:87 +msgid "Error" +msgstr "Error" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Actualitzada" + #: js/personal.js:69 msgid "Saving..." msgstr "S'està desant..." @@ -116,6 +145,10 @@ msgstr "Mireu la pàgina d'aplicacions a apps.owncloud.com" msgid "-licensed by " msgstr "-propietat de " +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualitza" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentació d'usuari" @@ -233,7 +266,7 @@ msgstr "Desenvolupat per la , 2013. # , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 07:21+0000\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 08:50+0000\n" "Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -18,6 +19,58 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Ha fallat en eliminar la configuració del servidor" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "La configuració és vàlida i s'ha pogut establir la comunicació!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "La configuració no és vàlida. Per més detalls mireu al registre d'ownCloud." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Eliminació fallida" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Voleu prendre l'arranjament de la configuració actual del servidor?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Voleu mantenir la configuració?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "No es pot afegir la configuració del servidor" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "La prova de connexió ha reeixit" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "La prova de connexió ha fallat" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Voleu eliminar la configuració actual del servidor?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Confirma l'eliminació" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +85,227 @@ msgid "" msgstr "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." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Configuració del servidor" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Afegeix la configuració del servidor" + +#: templates/settings.php:21 msgid "Host" msgstr "Màquina" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN Base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Una DN Base per línia" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN Usuari" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "La DN de l'usuari client amb la que s'haurà de fer, per exemple uid=agent,dc=exemple,dc=com. Per un accés anònim, deixeu la DN i la contrasenya en blanc." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Contrasenya" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Per un accés anònim, deixeu la DN i la contrasenya en blanc." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtre d'inici de sessió d'usuari" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Defineix el filtre a aplicar quan s'intenta l'inici de sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "useu el paràmetre de substitució %%uid, per exemple \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Llista de filtres d'usuari" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Defineix el filtre a aplicar quan es mostren usuaris" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sense cap paràmetre de substitució, per exemple \"objectClass=persona\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtre de grup" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Defineix el filtre a aplicar quan es mostren grups." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sense cap paràmetre de substitució, per exemple \"objectClass=grupPosix\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Arranjaments de connexió" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Configuració activa" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Si està desmarcat, aquesta configuració s'ometrà." + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Arbre base d'usuaris" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Màquina de còpia de serguretat (rèplica)" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Una DN Base d'Usuari per línia" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Afegiu una màquina de còpia de seguretat opcional. Ha de ser una rèplica del servidor LDAP/AD principal." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Arbre base de grups" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Port de la còpia de seguretat (rèplica)" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Una DN Base de Grup per línia" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Desactiva el servidor principal" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Associació membres-grup" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Quan està connectat, ownCloud només es connecta al servidor de la rèplica." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usa TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "No ho useu en connexions SSL, fallarà." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Desactiva la validació de certificat SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "No recomanat, ús només per proves." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Camp per mostrar el nom d'usuari" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atribut LDAP a usar per generar el nom d'usuari ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Camp per mostrar el nom del grup" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atribut LDAP a usar per generar el nom de grup ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "en bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "en segons. Un canvi buidarà la memòria de cau." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Arranjaments de carpetes" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Camp per mostrar el nom d'usuari" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atribut LDAP a usar per generar el nom d'usuari ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Arbre base d'usuaris" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Una DN Base d'Usuari per línia" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Atributs de cerca d'usuari" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Opcional; Un atribut per línia" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Camp per mostrar el nom del grup" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atribut LDAP a usar per generar el nom de grup ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Arbre base de grups" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Una DN Base de Grup per línia" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Atributs de cerca de grup" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Associació membres-grup" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "Atributs especials" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "en bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ajuda" diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po index c65ccce2da5..1f2c45b65f5 100644 --- a/l10n/cs_CZ/core.po +++ b/l10n/cs_CZ/core.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -159,59 +159,59 @@ msgstr "Listopad" msgid "December" msgstr "Prosinec" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Nastavení" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "před pár vteřinami" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "před minutou" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "před {minutes} minutami" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "před hodinou" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "před {hours} hodinami" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "dnes" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "včera" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "před {days} dny" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "minulý mesíc" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "před {months} měsíci" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "před měsíci" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "minulý rok" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "před lety" @@ -256,11 +256,11 @@ msgstr "Požadovaný soubor {file} není nainstalován." #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Sdílet" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Sdílené" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -544,7 +544,7 @@ msgstr "Dokončit nastavení" msgid "web services under your control" msgstr "webové služby pod Vaší kontrolou" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Odhlásit se" diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po index de2fbc84153..36e541de84c 100644 --- a/l10n/cs_CZ/files.po +++ b/l10n/cs_CZ/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 07:07+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:40+0000\n" "Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Nelze přesunout %s - existuje soubor se stejným názvem" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Nelze přesunout %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Nelze přejmenovat soubor" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Soubor nebyl odeslán. Neznámá chyba" @@ -69,11 +55,11 @@ msgstr "Chybí adresář pro dočasné soubory" msgid "Failed to write to disk" msgstr "Zápis na disk selhal" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Nedostatek dostupného úložného prostoru" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Nedostatek dostupného místa" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Neplatný adresář" @@ -81,15 +67,15 @@ msgstr "Neplatný adresář" msgid "Files" msgstr "Soubory" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Zrušit sdílení" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Smazat" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Přejmenovat" @@ -113,7 +99,7 @@ msgstr "zrušit" msgid "replaced {new_name}" msgstr "nahrazeno {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "zpět" @@ -121,13 +107,9 @@ msgstr "zpět" msgid "replaced {new_name} with {old_name}" msgstr "nahrazeno {new_name} s {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "sdílení zrušeno pro {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "smazáno {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "provést smazání" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubo msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Vaše úložiště je téměř plné ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše soubory ke stažení se připravují. Pokud jsou velké může to chvíli trvat." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Chyba odesílání" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zavřít" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Čekající" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "odesílá se 1 soubor" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "odesílám {count} souborů" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Odesílání zrušeno." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL nemůže být prázdná" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neplatný název složky. Použití 'Shared' je rezervováno pro vnitřní potřeby Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "prozkoumáno {count} souborů" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "chyba při prohledávání" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Název" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Velikost" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Změněno" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 složka" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} složky" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 soubor" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} soubory" @@ -286,32 +260,40 @@ msgstr "Složka" msgid "From link" msgstr "Z odkazu" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Koš" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Zrušit odesílání" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Žádný obsah. Nahrajte něco." -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Stáhnout" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Odeslaný soubor je příliš velký" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Soubory se prohledávají, prosím čekejte." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Aktuální prohledávání" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Aktualizuji mezipaměť souborového systému..." diff --git a/l10n/cs_CZ/files_trashbin.po b/l10n/cs_CZ/files_trashbin.po new file mode 100644 index 00000000000..29c424b5de7 --- /dev/null +++ b/l10n/cs_CZ/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Tomáš Chvátal , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs_CZ\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "provést obnovu" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Název" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Smazáno" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 složka" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} složky" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 soubor" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} soubory" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Žádný obsah. Váš koš je prázdný." + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Obnovit" diff --git a/l10n/cs_CZ/settings.po b/l10n/cs_CZ/settings.po index 4157e0094b6..c232c3b36df 100644 --- a/l10n/cs_CZ/settings.po +++ b/l10n/cs_CZ/settings.po @@ -8,14 +8,14 @@ # Martin , 2011-2012. # Michal Hrušecký , 2012. # , 2012. -# Tomáš Chvátal , 2012. +# Tomáš Chvátal , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 08:10+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -81,14 +81,42 @@ msgstr "Nelze přidat uživatele do skupiny %s" msgid "Unable to remove user from group %s" msgstr "Nelze odstranit uživatele ze skupiny %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Nelze aktualizovat aplikaci." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Aktualizovat na {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Zakázat" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Povolit" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Čekejte prosím..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Aktualizuji..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Chyba při aktualizaci aplikace" + +#: js/apps.js:87 +msgid "Error" +msgstr "Chyba" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Aktualizováno" + #: js/personal.js:69 msgid "Saving..." msgstr "Ukládám..." @@ -117,6 +145,10 @@ msgstr "Více na stránce s aplikacemi na apps.owncloud.com" msgid "-licensed by " msgstr "-licencováno " +#: templates/apps.php:31 +msgid "Update" +msgstr "Aktualizovat" + #: templates/help.php:3 msgid "User Documentation" msgstr "Uživatelská dokumentace" @@ -234,7 +266,7 @@ msgstr "Vyvinuto komun #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "Přihlašovací jméno" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -258,7 +290,7 @@ msgstr "Jiná" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "Zobrazované jméno" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -268,6 +300,14 @@ msgstr "Správa skupiny" msgid "Storage" msgstr "Úložiště" +#: templates/users.php:97 +msgid "change display name" +msgstr "změnit zobrazované jméno" + +#: templates/users.php:101 +msgid "set new password" +msgstr "nastavit nové heslo" + #: templates/users.php:137 msgid "Default" msgstr "Výchozí" diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po index 225c039f836..9ef32071e27 100644 --- a/l10n/cs_CZ/user_ldap.po +++ b/l10n/cs_CZ/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 11:09+0000\n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 07:40+0000\n" "Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Selhalo smazání konfigurace serveru" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "Nastavení je v pořádku a spojení bylo navázáno." + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "Nastavení je neplatné. Zkontrolujte, prosím, záznam ownCloud pro další podrobnosti." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Mazání selhalo." + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Převzít nastavení z nedávného nastavení serveru?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Ponechat nastavení?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Nelze přidat nastavení serveru" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Test spojení byl úspěšný" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Test spojení selhal" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Opravdu si přejete smazat současné nastavení serveru?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Potvrdit smazání" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "Varování: není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému aby jej nainstaloval." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Nastavení serveru" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Přidat nastavení serveru" + +#: templates/settings.php:21 msgid "Host" msgstr "Počítač" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Základní DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Jedna základní DN na řádku" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Uživatelské DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN klentského uživatele ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte údaje DN and Heslo prázdné." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Heslo" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Pro anonymní přístup, ponechte údaje DN and heslo prázdné." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtr přihlášení uživatelů" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Určuje použitý filtr, při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "použijte zástupný vzor %%uid, např. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtr uživatelských seznamů" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Určuje použitý filtr, pro získávaní uživatelů." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez zástupných znaků, např. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtr skupin" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Určuje použitý filtr, pro získávaní skupin." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez zástupných znaků, např. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Nastavení spojení" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Nastavení aktivní" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Pokud není zaškrtnuto, bude nastavení přeskočeno." + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Základní uživatelský strom" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Záložní (kopie) hostitel" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Jedna uživatelská základní DN na řádku" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Zadejte volitelného záložního hostitele. Musí to být kopie hlavního serveru LDAP/AD." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Základní skupinový strom" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Záložní (kopie) port" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Jedna skupinová základní DN na řádku" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Zakázat hlavní serveru" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asociace člena skupiny" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Při zapnutí se ownCloud připojí pouze k záložnímu serveru" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Použít TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Nepoužívejte pro připojení pomocí SSL, připojení selže." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server nerozlišující velikost znaků (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Vypnout ověřování SSL certifikátu." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Není doporučeno, pouze pro testovací účely." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Pole pro zobrazované jméno uživatele" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atribut LDAP použitý k vytvoření jména uživatele ownCloud" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Pole pro zobrazení jména skupiny" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atribut LDAP použitý k vytvoření jména skupiny ownCloud" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "v bajtech" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "ve vteřinách. Změna vyprázdní vyrovnávací paměť." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Nastavení adresáře" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Pole pro zobrazované jméno uživatele" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atribut LDAP použitý k vytvoření jména uživatele ownCloud" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Základní uživatelský strom" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Jedna uživatelská základní DN na řádku" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Atributy vyhledávání uživatelů" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Volitelné, atribut na řádku" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Pole pro zobrazení jména skupiny" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atribut LDAP použitý k vytvoření jména skupiny ownCloud" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Základní skupinový strom" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Jedna skupinová základní DN na řádku" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Atributy vyhledávání skupin" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asociace člena skupiny" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "Speciální atributy" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "v bajtech" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Nápověda" diff --git a/l10n/da/core.po b/l10n/da/core.po index 4f1fdd3523e..d3a5c7d2f98 100644 --- a/l10n/da/core.po +++ b/l10n/da/core.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -164,59 +164,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Indstillinger" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekunder siden" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minut siden" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minutter siden" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 time siden" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} timer siden" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "i dag" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "i går" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dage siden" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "sidste måned" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} måneder siden" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "måneder siden" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "sidste år" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "år siden" @@ -261,7 +261,7 @@ msgstr "Den krævede fil {file} er ikke installeret!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Del" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -549,7 +549,7 @@ msgstr "Afslut opsætning" msgid "web services under your control" msgstr "Webtjenester under din kontrol" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Log ud" diff --git a/l10n/da/files.po b/l10n/da/files.po index 2654e4e323c..2768aaf4490 100644 --- a/l10n/da/files.po +++ b/l10n/da/files.po @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 11:55+0000\n" -"Last-Translator: Morten Juhl-Johansen Zölde-Fejér \n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,20 +25,6 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Kunne ikke flytte %s - der findes allerede en fil med dette navn" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Kunne ikke flytte %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Kunne ikke omdøbe fil" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil blev uploadet. Ukendt fejl." @@ -74,11 +60,11 @@ msgstr "Mangler en midlertidig mappe" msgid "Failed to write to disk" msgstr "Fejl ved skrivning til disk." -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Der er ikke nok plads til rådlighed" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Ugyldig mappe." @@ -86,15 +72,15 @@ msgstr "Ugyldig mappe." msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Fjern deling" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slet" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Omdøb" @@ -118,7 +104,7 @@ msgstr "fortryd" msgid "replaced {new_name}" msgstr "erstattede {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "fortryd" @@ -126,13 +112,9 @@ msgstr "fortryd" msgid "replaced {new_name} with {old_name}" msgstr "erstattede {new_name} med {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "ikke delte {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "slettede {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,86 +138,78 @@ msgstr "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dit download forberedes. Dette kan tage lidt tid ved større filer." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kunne ikke uploade din fil, da det enten er en mappe eller er tom" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Fejl ved upload" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Luk" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Afventer" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fil uploades" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} filer uploades" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Upload afbrudt." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URLen kan ikke være tom." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ugyldigt mappenavn. Brug af \"Shared\" er forbeholdt Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} filer skannet" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "fejl under scanning" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Navn" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Størrelse" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Ændret" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fil" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} filer" @@ -291,32 +265,40 @@ msgstr "Mappe" msgid "From link" msgstr "Fra link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Fortryd upload" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Her er tomt. Upload noget!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Download" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Upload for stor" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Filerne bliver indlæst, vent venligst." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Indlæser" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/da/files_trashbin.po b/l10n/da/files_trashbin.po new file mode 100644 index 00000000000..34a7ae71319 --- /dev/null +++ b/l10n/da/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Navn" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mappe" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mapper" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fil" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} filer" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Gendan" diff --git a/l10n/da/settings.po b/l10n/da/settings.po index 6df46a3c46c..297100e94e2 100644 --- a/l10n/da/settings.po +++ b/l10n/da/settings.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -85,14 +85,42 @@ msgstr "Brugeren kan ikke tilføjes til gruppen %s" msgid "Unable to remove user from group %s" msgstr "Brugeren kan ikke fjernes fra gruppen %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Deaktiver" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktiver" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fejl" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Gemmer..." @@ -121,6 +149,10 @@ msgstr "Se applikationens side på apps.owncloud.com" msgid "-licensed by " msgstr "-licenseret af " +#: templates/apps.php:31 +msgid "Update" +msgstr "Opdater" + #: templates/help.php:3 msgid "User Documentation" msgstr "Brugerdokumentation" @@ -272,6 +304,14 @@ msgstr "Gruppe Administrator" msgid "Storage" msgstr "Opbevaring" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Standard" diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po index a0d0e27bed6..63c885ecaa7 100644 --- a/l10n/da/user_ldap.po +++ b/l10n/da/user_ldap.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:19+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,58 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Fejl ved sletning" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -36,165 +88,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "You can specify Base DN for users and groups in the Advanced tab" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Bruger DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Kodeord" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "For anonym adgang, skal du lade DN og Adgangskode tomme." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Bruger Login Filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Brugerliste Filter" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definere filteret der bruges ved indlæsning af brugere." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Gruppe Filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definere filteret der bruges når der indlæses grupper." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Base Bruger Træ" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Base Group Tree" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Group-Member association" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Brug TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Brug ikke til SSL forbindelser, da den vil fejle." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Deaktiver SSL certifikat validering" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Anbefales ikke, brug kun for at teste." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "User Display Name Field" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "i bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "User Display Name Field" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Base Bruger Træ" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Base Group Tree" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Group-Member association" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "i bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hjælp" diff --git a/l10n/de/core.po b/l10n/de/core.po index b9615f97a4a..b46bf407176 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -3,7 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# , 2011, 2012. +# , 2011-2012. # , 2011. # , 2012. # , 2011. @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 00:10+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" @@ -171,59 +171,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Einstellungen" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "Gerade eben" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "vor einer Minute" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "Vor {minutes} Minuten" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Vor einer Stunde" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Vor {hours} Stunden" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "Heute" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "Gestern" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "Vor {days} Tag(en)" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "Letzten Monat" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Vor {months} Monaten" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "Vor Monaten" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "Letztes Jahr" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "Vor Jahren" @@ -268,11 +268,11 @@ msgstr "Die benötigte Datei {file} ist nicht installiert." #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Freigeben" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Freigegeben" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -395,7 +395,7 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Gemeinschaft." +msgstr "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Community." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." @@ -556,7 +556,7 @@ msgstr "Installation abschließen" msgid "web services under your control" msgstr "Web-Services unter Ihrer Kontrolle" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Abmelden" diff --git a/l10n/de/files.po b/l10n/de/files.po index 15ecd3bc993..06930bfca5c 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -23,13 +23,14 @@ # , 2012. # , 2013. # , 2013. +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:01+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 00:10+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,20 +38,6 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits." - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Konnte %s nicht verschieben" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Konnte Datei nicht umbenennen" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -86,27 +73,27 @@ msgstr "Temporärer Ordner fehlt." msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "Nicht genug Speicherplatz verfügbar" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." -msgstr "Ungültiges Verzeichnis" +msgstr "Ungültiges Verzeichnis." #: appinfo/app.php:10 msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Nicht mehr freigeben" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Löschen" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Umbenennen" @@ -130,7 +117,7 @@ msgstr "abbrechen" msgid "replaced {new_name}" msgstr "{new_name} wurde ersetzt" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "rückgängig machen" @@ -138,21 +125,17 @@ msgstr "rückgängig machen" msgid "replaced {new_name} with {old_name}" msgstr "{old_name} ersetzt durch {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Freigabe von {files} aufgehoben" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} gelöscht" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "Löschvorgang ausführen" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "'.' ist kein gültiger Dateiname" +msgstr "'.' ist kein gültiger Dateiname." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "Der Dateiname darf nicht leer sein" +msgstr "Der Dateiname darf nicht leer sein." #: js/files.js:64 msgid "" @@ -168,86 +151,78 @@ msgstr "Ihr Speicherplatz ist voll, Dateien können nicht mehr aktualisiert oder msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ihr Speicherplatz ist fast aufgebraucht ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dein Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Fehler beim Upload" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Schließen" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ausstehend" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "Eine Datei wird hoch geladen" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} Dateien werden hochgeladen" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." -msgstr "Die URL darf nicht leer sein" +msgstr "Die URL darf nicht leer sein." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} Dateien wurden gescannt" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "Fehler beim Scannen" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Name" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Größe" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Bearbeitet" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 Datei" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} Dateien" @@ -303,32 +278,40 @@ msgstr "Ordner" msgid "From link" msgstr "Von einem Link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Papierkorb" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Upload abbrechen" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Alles leer. Lade etwas hoch!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Upload zu groß" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Scanne" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Dateisystem-Cache wird aktualisiert ..." diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po index 934dce6d114..2407e4ec911 100644 --- a/l10n/de/files_encryption.po +++ b/l10n/de/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:15+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 12:47+0000\n" "Last-Translator: Marcel Kühlhorn \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de/files_trashbin.po b/l10n/de/files_trashbin.po new file mode 100644 index 00000000000..ae8505b00e4 --- /dev/null +++ b/l10n/de/files_trashbin.po @@ -0,0 +1,56 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# I Robot , 2013. +# , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "Wiederherstellung ausführen" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Name" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "gelöscht" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 Ordner" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} Ordner" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 Datei" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} Dateien" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Nichts zu löschen, der Papierkorb ist leer!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Wiederherstellen" diff --git a/l10n/de/settings.po b/l10n/de/settings.po index c26bb84c091..25f769704b0 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -6,7 +6,7 @@ # , 2011, 2012. # , 2012. # , 2012. -# I Robot , 2012. +# I Robot , 2012-2013. # I Robot , 2012. # Jan-Christoph Borchardt , 2011. # Jan T , 2012. @@ -21,12 +21,13 @@ # , 2012. # , 2012. # Tristan , 2013. +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" @@ -93,14 +94,42 @@ msgstr "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden" msgid "Unable to remove user from group %s" msgstr "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Deaktivieren" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktivieren" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Fehler beim Aktualisieren der App" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fehler" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Speichern..." @@ -129,6 +158,10 @@ msgstr "Weitere Anwendungen findest Du auf apps.owncloud.com" msgid "-licensed by " msgstr "-lizenziert von " +#: templates/apps.php:31 +msgid "Update" +msgstr "Update durchführen" + #: templates/help.php:3 msgid "User Documentation" msgstr "Dokumentation für Benutzer" @@ -246,7 +279,7 @@ msgstr "Entwickelt von der , 2012. -# I Robot , 2012. +# I Robot , 2012-2013. # I Robot , 2012. # Marcel Kühlhorn , 2013. # Maurice Preuß <>, 2012. @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:08+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,6 +26,58 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Löschen fehlgeschlagen" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Einstellungen beibehalten?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -37,168 +89,230 @@ msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkom msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren." +msgstr "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Ein Base DN pro Zeile" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Passwort" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Lasse die Felder von DN und Passwort für anonymen Zugang leer." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwende %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Basis-Benutzerbaum" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Ein Benutzer Base DN pro Zeile" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Basis-Gruppenbaum" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Ein Gruppen Base DN pro Zeile" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Assoziation zwischen Gruppe und Benutzer" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Schalte die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Feld für den Anzeigenamen des Benutzers" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Feld für den Anzeigenamen der Gruppe" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "in Bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Feld für den Anzeigenamen des Benutzers" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Basis-Benutzerbaum" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Ein Benutzer Base DN pro Zeile" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Feld für den Anzeigenamen der Gruppe" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Basis-Gruppenbaum" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Ein Gruppen Base DN pro Zeile" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Assoziation zwischen Gruppe und Benutzer" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "in Bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hilfe" diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index 0d1dcf34486..9ec9f4bed29 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/core.po @@ -24,8 +24,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" @@ -172,59 +172,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Einstellungen" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "Gerade eben" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "Vor 1 Minute" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "Vor {minutes} Minuten" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Vor einer Stunde" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Vor {hours} Stunden" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "Heute" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "Gestern" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "Vor {days} Tag(en)" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "Letzten Monat" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Vor {months} Monaten" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "Vor Monaten" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "Letztes Jahr" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "Vor Jahren" @@ -269,11 +269,11 @@ msgstr "Die benötigte Datei {file} ist nicht installiert." #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Freigeben" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Freigegeben" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -557,7 +557,7 @@ msgstr "Installation abschließen" msgid "web services under your control" msgstr "Web-Services unter Ihrer Kontrolle" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Abmelden" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index d81df74a94a..474d7e5ab28 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -20,6 +20,7 @@ # , 2012. # , 2012. # Phi Lieb <>, 2012. +# Phillip Schichtel , 2013. # , 2013. # , 2012. # Thomas Müller <>, 2012. @@ -28,9 +29,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 21:38+0000\n" -"Last-Translator: a.tangemann \n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 19:21+0000\n" +"Last-Translator: quick_wango \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,20 +39,6 @@ msgstr "" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Konnte %s nicht verschieben" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Konnte Datei nicht umbenennen" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -87,11 +74,11 @@ msgstr "Der temporäre Ordner fehlt." msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Nicht genug Speicher vorhanden." +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Nicht genügend Speicherplatz verfügbar" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Ungültiges Verzeichnis." @@ -99,15 +86,15 @@ msgstr "Ungültiges Verzeichnis." msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Nicht mehr freigeben" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Löschen" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Umbenennen" @@ -131,7 +118,7 @@ msgstr "abbrechen" msgid "replaced {new_name}" msgstr "{new_name} wurde ersetzt" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "rückgängig machen" @@ -139,13 +126,9 @@ msgstr "rückgängig machen" msgid "replaced {new_name} with {old_name}" msgstr "{old_name} wurde ersetzt durch {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Freigabe für {files} beendet" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} gelöscht" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "Führe das Löschen aus" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -169,86 +152,78 @@ msgstr "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert ode msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ihr Speicher ist fast voll ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Fehler beim Upload" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Schließen" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ausstehend" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 Datei wird hochgeladen" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} Dateien wurden hochgeladen" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Die URL darf nicht leer sein." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} Dateien wurden gescannt" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "Fehler beim Scannen" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Name" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Größe" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Bearbeitet" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 Datei" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} Dateien" @@ -304,32 +279,40 @@ msgstr "Ordner" msgid "From link" msgstr "Von einem Link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Abfall" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Upload abbrechen" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Alles leer. Bitte laden Sie etwas hoch!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Der Upload ist zu groß" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Scanne" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Aktualisiere den Dateisystem-Cache" diff --git a/l10n/de_DE/files_encryption.po b/l10n/de_DE/files_encryption.po index 7521754abfd..daeb5466e57 100644 --- a/l10n/de_DE/files_encryption.po +++ b/l10n/de_DE/files_encryption.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:14+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 12:47+0000\n" "Last-Translator: Marcel Kühlhorn \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de_DE/files_trashbin.po b/l10n/de_DE/files_trashbin.po new file mode 100644 index 00000000000..f08dcbd0043 --- /dev/null +++ b/l10n/de_DE/files_trashbin.po @@ -0,0 +1,56 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# I Robot , 2013. +# Phillip Schichtel , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de_DE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "Führe die Wiederherstellung aus" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Name" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Gelöscht" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 Ordner" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} Ordner" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 Datei" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} Dateien" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Nichts zu löschen, Ihr Papierkorb ist leer!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Wiederherstellen" diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po index 0c99f265629..ffbcc368ff6 100644 --- a/l10n/de_DE/settings.po +++ b/l10n/de_DE/settings.po @@ -6,17 +6,20 @@ # , 2011-2012. # , 2012. # , 2012. -# I Robot , 2012. +# I Robot , 2012-2013. # I Robot , 2012. # Jan-Christoph Borchardt , 2011. # Jan T , 2012. +# Lukas Reschke , 2013. # , 2012. # , 2012. # Marcel Kühlhorn , 2012. # , 2012. # , 2012. # Phi Lieb <>, 2012. +# Phillip Schichtel , 2013. # , 2012. +# , 2013. # , 2012. # , 2012. # , 2012. @@ -25,9 +28,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 00:10+0000\n" +"Last-Translator: Lukas Reschke \n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -93,14 +96,42 @@ msgstr "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden" msgid "Unable to remove user from group %s" msgstr "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Die App konnte nicht geupdated werden." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Update zu {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Deaktivieren" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktivieren" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Bitte warten...." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Update..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Es ist ein Fehler während des Updates aufgetreten" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fehler" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Geupdated" + #: js/personal.js:69 msgid "Saving..." msgstr "Speichern..." @@ -129,6 +160,10 @@ msgstr "Weitere Anwendungen finden Sie auf apps.owncloud.com" msgid "-licensed by " msgstr "-lizenziert von " +#: templates/apps.php:31 +msgid "Update" +msgstr "Update durchführen" + #: templates/help.php:3 msgid "User Documentation" msgstr "Dokumentation für Benutzer" @@ -246,7 +281,7 @@ msgstr "Entwickelt von der , 2012. # , 2012. # Phi Lieb <>, 2012. +# , 2013. +# Susi <>, 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:08+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 13:50+0000\n" +"Last-Translator: Susi <>\n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,6 +28,58 @@ msgstr "" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Das Löschen der Server-Konfiguration schlug fehl" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "Die Konfiguration ist valide und eine Verbindung konnte hergestellt werden!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Löschen fehlgeschlagen" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Einstellungen behalten?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Das Hinzufügen der Server-Konfiguration schlug fehl" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Verbindungs-Test erfolgreich" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Verbindungs-Test fehlgeschlagen" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Möchten Sie wirklich die Server-Konfiguration löschen?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Löschung bestätigen" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -40,165 +94,227 @@ msgid "" msgstr "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Server-Konfiguration" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Server-Konfiguration hinzufügen" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Ein Base DN pro Zeile" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lassen Sie DN und Passwort leer." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Passwort" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Lassen Sie die Felder von DN und Passwort für anonymen Zugang leer." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwenden Sie %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Verbindungs-Einstellungen" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Konfiguration aktiv" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Wenn nicht angehakt, wird diese Konfiguration übersprungen." + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Basis-Benutzerbaum" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Back-Up (Replikation) Host" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Ein Benutzer Base DN pro Zeile" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Basis-Gruppenbaum" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Back-Up (Replikation) Port" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Ein Gruppen Base DN pro Zeile" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Hauptserver deaktivieren" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Assoziation zwischen Gruppe und Benutzer" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Verwenden Sie dies nicht für SSL-Verbindungen, es wird fehlschlagen." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Schalten Sie die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Feld für den Anzeigenamen des Benutzers" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Feld für den Anzeigenamen der Gruppe" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "in Bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Verzeichnis-Einstellungen" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Feld für den Anzeigenamen des Benutzers" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Basis-Benutzerbaum" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Ein Benutzer Base DN pro Zeile" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Benutzer-Suche Eigenschaften" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Optional; Ein Attribut pro Zeile" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Feld für den Anzeigenamen der Gruppe" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Basis-Gruppenbaum" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Ein Gruppen Base DN pro Zeile" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Gruppen-Suche Eigenschaften" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Assoziation zwischen Gruppe und Benutzer" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "besondere Eigenschaften" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "in Bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hilfe" diff --git a/l10n/el/core.po b/l10n/el/core.po index 6ad17c2deb6..1f2543369b0 100644 --- a/l10n/el/core.po +++ b/l10n/el/core.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -163,59 +163,59 @@ msgstr "Νοέμβριος" msgid "December" msgstr "Δεκέμβριος" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ρυθμίσεις" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "δευτερόλεπτα πριν" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 λεπτό πριν" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} λεπτά πριν" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 ώρα πριν" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} ώρες πριν" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "σήμερα" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "χτες" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} ημέρες πριν" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "τελευταίο μήνα" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} μήνες πριν" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "μήνες πριν" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "τελευταίο χρόνο" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "χρόνια πριν" @@ -260,7 +260,7 @@ msgstr "Το απαιτούμενο αρχείο {file} δεν εγκαταστ #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Διαμοιρασμός" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -548,7 +548,7 @@ msgstr "Ολοκλήρωση εγκατάστασης" msgid "web services under your control" msgstr "Υπηρεσίες web υπό τον έλεγχό σας" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Αποσύνδεση" diff --git a/l10n/el/files.po b/l10n/el/files.po index d756e7d0b9e..233012d37cb 100644 --- a/l10n/el/files.po +++ b/l10n/el/files.po @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 02:25+0000\n" -"Last-Translator: Efstathios Iosifidis \n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,20 +25,6 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Αδυναμία μετακίνησης του %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Αδυναμία μετονομασίας αρχείου" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα" @@ -74,11 +60,11 @@ msgstr "Λείπει ο προσωρινός φάκελος" msgid "Failed to write to disk" msgstr "Αποτυχία εγγραφής στο δίσκο" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Δεν υπάρχει αρκετός διαθέσιμος χώρος" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Μη έγκυρος φάκελος." @@ -86,15 +72,15 @@ msgstr "Μη έγκυρος φάκελος." msgid "Files" msgstr "Αρχεία" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Διακοπή κοινής χρήσης" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Διαγραφή" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Μετονομασία" @@ -118,7 +104,7 @@ msgstr "ακύρωση" msgid "replaced {new_name}" msgstr "{new_name} αντικαταστάθηκε" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "αναίρεση" @@ -126,13 +112,9 @@ msgstr "αναίρεση" msgid "replaced {new_name} with {old_name}" msgstr "αντικαταστάθηκε το {new_name} με {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "μη διαμοιρασμένα {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "διαγραμμένα {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,86 +138,78 @@ msgstr "Ο αποθηκευτικός σας χώρος είναι γεμάτο msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Σφάλμα Αποστολής" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Κλείσιμο" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Εκκρεμεί" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 αρχείο ανεβαίνει" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} αρχεία ανεβαίνουν" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Η αποστολή ακυρώθηκε." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Η URL δεν πρέπει να είναι κενή." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Μη έγκυρο όνομα φακέλου. Η χρήση του 'Κοινόχρηστος' χρησιμοποιείται από ο Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} αρχεία ανιχνεύτηκαν" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "σφάλμα κατά την ανίχνευση" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Όνομα" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Μέγεθος" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Τροποποιήθηκε" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 φάκελος" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} φάκελοι" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 αρχείο" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} αρχεία" @@ -291,32 +265,40 @@ msgstr "Φάκελος" msgid "From link" msgstr "Από σύνδεσμο" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Ακύρωση αποστολής" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Λήψη" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Πολύ μεγάλο αρχείο προς αποστολή" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Τρέχουσα αναζήτηση " + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/el/files_trashbin.po b/l10n/el/files_trashbin.po new file mode 100644 index 00000000000..e29ec4d6caf --- /dev/null +++ b/l10n/el/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Όνομα" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 φάκελος" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} φάκελοι" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 αρχείο" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} αρχεία" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Επαναφορά" diff --git a/l10n/el/settings.po b/l10n/el/settings.po index 4e99eae3d5a..ffd6028e9c1 100644 --- a/l10n/el/settings.po +++ b/l10n/el/settings.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -87,14 +87,42 @@ msgstr "Αδυναμία προσθήκη χρήστη στην ομάδα %s" msgid "Unable to remove user from group %s" msgstr "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Απενεργοποίηση" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Ενεργοποίηση" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Σφάλμα" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Αποθήκευση..." @@ -123,6 +151,10 @@ msgstr "Δείτε την σελίδα εφαρμογών στο apps.owncloud.c msgid "-licensed by " msgstr "-άδεια από " +#: templates/apps.php:31 +msgid "Update" +msgstr "Ενημέρωση" + #: templates/help.php:3 msgid "User Documentation" msgstr "Τεκμηρίωση Χρήστη" @@ -274,6 +306,14 @@ msgstr "Ομάδα Διαχειριστών" msgid "Storage" msgstr "Αποθήκευση" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Προκαθορισμένο" diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po index 9edcb771d61..0bc933973ea 100644 --- a/l10n/el/user_ldap.po +++ b/l10n/el/user_ldap.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,58 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Η διαγραφή απέτυχε" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -36,165 +88,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Διακομιστής" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "User DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Συνθηματικό" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "User Login Filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την προσπάθεια σύνδεσης χρήστη. %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. " -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "χρησιμοποιήστε τη μεταβλητή %%uid, π.χ. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "User List Filter" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση επαφών." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=άτομο\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Group Filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Θύρα" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Base User Tree" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Base Group Tree" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Group-Member association" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Χρήση TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Δεν προτείνεται, χρήση μόνο για δοκιμές." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Πεδίο Ονόματος Χρήστη" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Group Display Name Field" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "σε bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Πεδίο Ονόματος Χρήστη" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Base User Tree" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Group Display Name Field" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Base Group Tree" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Group-Member association" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "σε bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Βοήθεια" diff --git a/l10n/eo/core.po b/l10n/eo/core.po index 01b8ff631db..f9f3c0cd8f2 100644 --- a/l10n/eo/core.po +++ b/l10n/eo/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "Novembro" msgid "December" msgstr "Decembro" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Agordo" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekundoj antaŭe" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "antaŭ 1 minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "antaŭ {minutes} minutoj" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "antaŭ 1 horo" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "antaŭ {hours} horoj" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hodiaŭ" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "hieraŭ" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "antaŭ {days} tagoj" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "lastamonate" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "antaŭ {months} monatoj" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "monatoj antaŭe" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "lastajare" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "jaroj antaŭe" @@ -255,7 +255,7 @@ msgstr "La necesa dosiero {file} ne instaliĝis!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Kunhavigi" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "Fini la instalon" msgid "web services under your control" msgstr "TTT-servoj sub via kontrolo" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Elsaluti" diff --git a/l10n/eo/files.po b/l10n/eo/files.po index 024dea90b07..d4406185134 100644 --- a/l10n/eo/files.po +++ b/l10n/eo/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Ne eblis movi %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Ne eblis alinomigi dosieron" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Neniu dosiero alŝutiĝis. Nekonata eraro." @@ -69,11 +55,11 @@ msgstr "Mankas tempa dosierujo" msgid "Failed to write to disk" msgstr "Malsukcesis skribo al disko" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Ne haveblas sufiĉa spaco" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Nevalida dosierujo." @@ -81,15 +67,15 @@ msgstr "Nevalida dosierujo." msgid "Files" msgstr "Dosieroj" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Malkunhavigi" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Forigi" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Alinomigi" @@ -113,7 +99,7 @@ msgstr "nuligi" msgid "replaced {new_name}" msgstr "anstataŭiĝis {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "malfari" @@ -121,13 +107,9 @@ msgstr "malfari" msgid "replaced {new_name} with {old_name}" msgstr "anstataŭiĝis {new_name} per {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "malkunhaviĝis {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "foriĝis {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Via elŝuto pretiĝatas. Ĉi tio povas daŭri iom da tempo se la dosieroj grandas." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Alŝuta eraro" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Fermi" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Traktotaj" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 dosiero estas alŝutata" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} dosieroj alŝutatas" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "La alŝuto nuliĝis." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL ne povas esti malplena." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nevalida dosierujnomo. Uzo de “Shared” rezervatas de Owncloud." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} dosieroj skaniĝis" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "eraro dum skano" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nomo" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Grando" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modifita" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 dosierujo" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dosierujoj" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 dosiero" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} dosierujoj" @@ -286,32 +260,40 @@ msgstr "Dosierujo" msgid "From link" msgstr "El ligilo" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Nuligi alŝuton" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nenio estas ĉi tie. Alŝutu ion!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Elŝuti" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Elŝuto tro larĝa" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Dosieroj estas skanataj, bonvolu atendi." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Nuna skano" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/eo/files_trashbin.po b/l10n/eo/files_trashbin.po new file mode 100644 index 00000000000..c1491a33446 --- /dev/null +++ b/l10n/eo/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nomo" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 dosierujo" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} dosierujoj" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 dosiero" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} dosierujoj" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Restaŭri" diff --git a/l10n/eo/settings.po b/l10n/eo/settings.po index 4c842f018fb..f422c123005 100644 --- a/l10n/eo/settings.po +++ b/l10n/eo/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "Ne eblis aldoni la uzanton al la grupo %s" msgid "Unable to remove user from group %s" msgstr "Ne eblis forigi la uzantan el la grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Malkapabligi" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Kapabligi" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Eraro" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Konservante..." @@ -114,6 +142,10 @@ msgstr "Vidu la paĝon pri aplikaĵoj ĉe apps.owncloud.com" msgid "-licensed by " msgstr "-permesilhavigita de " +#: templates/apps.php:31 +msgid "Update" +msgstr "Ĝisdatigi" + #: templates/help.php:3 msgid "User Documentation" msgstr "Dokumentaro por uzantoj" @@ -265,6 +297,14 @@ msgstr "Grupadministranto" msgid "Storage" msgstr "Konservejo" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Defaŭlta" diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po index 39f84ca0391..9bdab74d0f3 100644 --- a/l10n/eo/user_ldap.po +++ b/l10n/eo/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-21 00:04+0100\n" -"PO-Revision-Date: 2013-01-20 01:34+0000\n" -"Last-Translator: Mariano \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,58 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Forigo malsukcesis" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Gastigo" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Bazo-DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Uzanto-DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Pasvorto" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtrilo de uzantensaluto" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Ĝi difinas la filtrilon aplikotan, kiam oni provas ensaluti. %%uid anstataŭigas la uzantonomon en la ensaluta ago." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "uzu la referencilon %%uid, ekz.: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtrilo de uzantolisto" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Ĝi difinas la filtrilon aplikotan, kiam veniĝas uzantoj." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sen ajna referencilo, ekz.: \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtrilo de grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Ĝi difinas la filtrilon aplikotan, kiam veniĝas grupoj." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sen ajna referencilo, ekz.: \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Pordo" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Baza uzantarbo" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Baza gruparbo" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asocio de grupo kaj membro" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Uzi TLS-on" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-servilo blinda je litergrandeco (Vindozo)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Malkapabligi validkontrolon de SSL-atestiloj." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Ne rekomendata, uzu ĝin nur por testoj." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Kampo de vidignomo de uzanto" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la uzanto." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Kampo de vidignomo de grupo" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "duumoke" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Kampo de vidignomo de uzanto" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la uzanto." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Baza uzantarbo" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Kampo de vidignomo de grupo" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Baza gruparbo" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asocio de grupo kaj membro" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "duumoke" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Helpo" diff --git a/l10n/es/core.po b/l10n/es/core.po index 03aade72afd..ecd1cbf9176 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Felix Liberio , 2013. # , 2012. # Javier Llorente , 2012. # , 2011-2013. @@ -18,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: felix.liberio \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -166,59 +167,59 @@ msgstr "Noviembre" msgid "December" msgstr "Diciembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ajustes" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "hace segundos" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "hace 1 minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "hace {minutes} minutos" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Hace 1 hora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Hace {hours} horas" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hoy" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ayer" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "hace {days} días" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "mes pasado" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Hace {months} meses" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "hace meses" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "año pasado" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "hace años" @@ -263,11 +264,11 @@ msgstr "El fichero {file} requerido, no está instalado." #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Compartir" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Compartido" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -390,11 +391,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "La actualización ha fracasado. Por favor, informe este problema a la Comunidad de ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "La actualización se ha realizado correctamente. Redireccionando a ownCloud ahora." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -551,7 +552,7 @@ msgstr "Completar la instalación" msgid "web services under your control" msgstr "servicios web bajo tu control" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Salir" diff --git a/l10n/es/files.po b/l10n/es/files.po index db49dbe66b4..b2bb1203414 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -26,20 +26,6 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "No se puede mover %s - Ya existe un archivo con ese nombre" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "No se puede mover %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "No se puede renombrar el archivo" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Fallo no se subió el fichero" @@ -75,11 +61,11 @@ msgstr "Falta un directorio temporal" msgid "Failed to write to disk" msgstr "La escritura en disco ha fallado" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "No hay suficiente espacio disponible" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Directorio invalido." @@ -87,15 +73,15 @@ msgstr "Directorio invalido." msgid "Files" msgstr "Archivos" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Dejar de compartir" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eliminar" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Renombrar" @@ -119,7 +105,7 @@ msgstr "cancelar" msgid "replaced {new_name}" msgstr "reemplazado {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "deshacer" @@ -127,13 +113,9 @@ msgstr "deshacer" msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} descompartidos" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} eliminados" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -157,86 +139,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Error al subir el archivo" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "cerrrar" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendiente" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "subiendo 1 archivo" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "Subiendo {count} archivos" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Subida cancelada." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} archivos escaneados" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "error escaneando" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nombre" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaño" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 carpeta" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} carpetas" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 archivo" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} archivos" @@ -292,32 +266,40 @@ msgstr "Carpeta" msgid "From link" msgstr "Desde el enlace" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancelar subida" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Aquí no hay nada. ¡Sube algo!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Descargar" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "El archivo es demasiado grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Se están escaneando los archivos, por favor espere." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Ahora escaneando" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/es/files_encryption.po b/l10n/es/files_encryption.po index 14b030edb0e..fa6fcc6a7b7 100644 --- a/l10n/es/files_encryption.po +++ b/l10n/es/files_encryption.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 22:40+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 14:50+0000\n" "Last-Translator: felix.liberio \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -28,11 +28,11 @@ msgstr "Por favor, cambie su cliente de ownCloud y cambie su clave de cifrado pa #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "Cambiar a encriptación en lado cliente" +msgstr "Cambiar a cifrado del lado del cliente" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "Cambie la clave de cifrado para ingresar su contraseña" +msgstr "Cambie la clave de cifrado para su contraseña de inicio de sesión" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." @@ -40,37 +40,37 @@ msgstr "Por favor revise su contraseña e intentelo de nuevo." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "Elegir el modo de encriptado:" +msgstr "Elegir el modo de cifrado:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "Cifrado del lado del Cliente ( es el más seguro, pero hace que sea imposible acceder a sus datos desde la interfaz web)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "Cifrado del lado del Servidor (le permite acceder a sus archivos desde la interfaz web y el cliente de escritorio)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Ninguno (ningún cifrado en absoluto)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Importante: Una vez que haya seleccionado un modo de cifrado no existe forma de cambiarlo de nuevo" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "Específico del usuario (dejar que el usuario decida)" #: templates/settings.php:65 msgid "Encryption" diff --git a/l10n/es/files_trashbin.po b/l10n/es/files_trashbin.po new file mode 100644 index 00000000000..81d77e8689a --- /dev/null +++ b/l10n/es/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nombre" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 carpeta" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} carpetas" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 archivo" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} archivos" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Recuperar" diff --git a/l10n/es/settings.po b/l10n/es/settings.po index d650521c6f8..775bcdb6d92 100644 --- a/l10n/es/settings.po +++ b/l10n/es/settings.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -87,14 +87,42 @@ msgstr "Imposible añadir el usuario al grupo %s" msgid "Unable to remove user from group %s" msgstr "Imposible eliminar al usuario del grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactivar" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activar" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Error" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Guardando..." @@ -123,6 +151,10 @@ msgstr "Echa un vistazo a la web de aplicaciones apps.owncloud.com" msgid "-licensed by " msgstr "-licenciado por " +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualizar" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentación del usuario" @@ -274,6 +306,14 @@ msgstr "Grupo admin" msgid "Storage" msgstr "Alamacenamiento" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Predeterminado" diff --git a/l10n/es/user_ldap.po b/l10n/es/user_ldap.po index 8a1cee622dd..048364d885d 100644 --- a/l10n/es/user_ldap.po +++ b/l10n/es/user_ldap.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Felix Liberio , 2013. # Javier Llorente , 2012. # , 2012. # , 2012. @@ -13,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 06:10+0000\n" +"Last-Translator: felix.liberio \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,6 +24,58 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "No se pudo borrar la configuración del servidor" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "La configuración es válida y la conexión puede establecerse!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "La configuración no es válida. Por favor, busque en el log de ownCloud para más detalles." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Falló el borrado" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Mantener la configuración?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "No se puede añadir la configuración del servidor" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "La prueba de conexión fue exitosa" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "La prueba de conexión falló" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "¿Realmente desea eliminar la configuración actual del servidor?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Confirmar eliminación" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,168 +87,230 @@ msgstr "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibl msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." +msgstr "Advertencia: El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo." + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "Configuración del Servidor" + +#: templates/settings.php:17 +msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "Host" -msgstr "Servidor" +msgstr "Máquina" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "Un DN Base por línea" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN usuario" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Contraseña" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acceso anónimo, deje DN y contraseña vacíos." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro de inicio de sesión de usuario" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define el filtro a aplicar cuando se ha realizado un login. %%uid remplazrá el nombre de usuario en el proceso de login." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar %%uid como placeholder, ej: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Lista de filtros de usuario" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Define el filtro a aplicar, cuando se obtienen usuarios." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sin placeholder, ej: \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define el filtro a aplicar, cuando se obtienen grupos." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Con cualquier placeholder, ej: \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Puerto" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Árbol base de usuario" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Árbol base de grupo" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asociación Grupo-Miembro" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "No usarlo para SSL, habrá error." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Apagar la validación por certificado SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "No recomendado, sólo para pruebas." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Campo de nombre de usuario a mostrar" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Campo de nombre de grupo a mostrar" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "en bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "en segundos. Un cambio vacía la cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Campo de nombre de usuario a mostrar" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Árbol base de usuario" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Un DN Base de Usuario por línea" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Campo de nombre de grupo a mostrar" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Árbol base de grupo" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Un DN Base de Grupo por línea" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asociación Grupo-Miembro" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "en bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ayuda" diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po index 65487408405..b8625fa972f 100644 --- a/l10n/es_AR/core.po +++ b/l10n/es_AR/core.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# CJTess , 2013. # , 2012-2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -157,59 +158,59 @@ msgstr "Noviembre" msgid "December" msgstr "Diciembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ajustes" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "hace 1 minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "hace {minutes} minutos" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Hace 1 hora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} horas atrás" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hoy" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ayer" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "hace {days} días" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "el mes pasado" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} meses atrás" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "meses atrás" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "el año pasado" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "años atrás" @@ -254,11 +255,11 @@ msgstr "¡El archivo requerido {file} no está instalado!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Compartir" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Compartido" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -381,11 +382,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "La actualización no pudo ser completada. Por favor, reportá el inconveniente a la comunidad ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "La actualización fue exitosa. Estás siendo redirigido a ownCloud." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -542,7 +543,7 @@ msgstr "Completar la instalación" msgid "web services under your control" msgstr "servicios web sobre los que tenés control" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Cerrar la sesión" diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po index 7de3e1c837a..16fb351cdfb 100644 --- a/l10n/es_AR/files.po +++ b/l10n/es_AR/files.po @@ -4,13 +4,14 @@ # # Translators: # Agustin Ferrario , 2012-2013. +# CJTess , 2013. # , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -19,20 +20,6 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "No se pudo mover %s - Un archivo con este nombre ya existe" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "No se pudo mover %s " - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "No fue posible cambiar el nombre al archivo" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "El archivo no fue subido. Error desconocido" @@ -68,11 +55,11 @@ msgstr "Falta un directorio temporal" msgid "Failed to write to disk" msgstr "Error al escribir en el disco" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "No hay suficiente espacio disponible" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Directorio invalido." @@ -80,15 +67,15 @@ msgstr "Directorio invalido." msgid "Files" msgstr "Archivos" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Dejar de compartir" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Borrar" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Cambiar nombre" @@ -112,7 +99,7 @@ msgstr "cancelar" msgid "replaced {new_name}" msgstr "reemplazado {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "deshacer" @@ -120,13 +107,9 @@ msgstr "deshacer" msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} se dejaron de compartir" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} borrados" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -144,92 +127,84 @@ msgstr "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no está #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "El almacenamiento está casi lleno ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Error al subir el archivo" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Cerrar" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendiente" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "Subiendo 1 archivo" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "Subiendo {count} archivos" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "La subida fue cancelada" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nombre de carpeta inválido. El uso de 'Shared' está reservado por ownCloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} archivos escaneados" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "error mientras se escaneaba" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nombre" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaño" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 directorio" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} directorios" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 archivo" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} archivos" @@ -285,32 +260,40 @@ msgstr "Carpeta" msgid "From link" msgstr "Desde enlace" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancelar subida" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "No hay nada. ¡Subí contenido!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Descargar" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "El archivo es demasiado grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los archivos que intentás subir sobrepasan el tamaño máximo " -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Se están escaneando los archivos, por favor esperá." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Escaneo actual" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/es_AR/files_encryption.po b/l10n/es_AR/files_encryption.po index 63c4ec00584..11ac9c0c6d7 100644 --- a/l10n/es_AR/files_encryption.po +++ b/l10n/es_AR/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# CJTess , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 16:11+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,53 +23,53 @@ msgstr "" msgid "" "Please switch to your ownCloud client and change your encryption password to" " complete the conversion." -msgstr "" +msgstr "Por favor, cambiá uu cliente de ownCloud y cambiá tu clave de encriptado para completar la conversión." #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "Cambiado a encriptación por parte del cliente" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "" +msgstr "Cambiá la clave de encriptado para tu contraseña de inicio de sesión" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Por favor, revisá tu contraseña e intentalo de nuevo." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Elegir el modo de encriptación:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "Encriptación por parte del cliente (es el modo más seguro, pero hace que sea imposible acceder a tus datos desde la interfaz web)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "Encriptación por parte del servidor (te permite acceder a tus archivos desde la interfaz web y desde el cliente de escritorio)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Ninguno (ninguna encriptación en absoluto)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Importante: Una vez que haya seleccionado un modo de encriptación, no existe forma de cambiarlo nuevamente" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "Específico por usuario (deja que el usuario decida)" #: templates/settings.php:65 msgid "Encryption" diff --git a/l10n/es_AR/files_trashbin.po b/l10n/es_AR/files_trashbin.po new file mode 100644 index 00000000000..7352752bf48 --- /dev/null +++ b/l10n/es_AR/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nombre" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 directorio" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} directorios" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 archivo" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} archivos" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Recuperar" diff --git a/l10n/es_AR/settings.po b/l10n/es_AR/settings.po index e5e3ae2bc01..8310f58c95c 100644 --- a/l10n/es_AR/settings.po +++ b/l10n/es_AR/settings.po @@ -4,13 +4,14 @@ # # Translators: # Agustin Ferrario , 2012. +# CJTess , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -77,14 +78,42 @@ msgstr "No fue posible añadir el usuario al grupo %s" msgid "Unable to remove user from group %s" msgstr "No es posible eliminar al usuario del grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactivar" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activar" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Error" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Guardando..." @@ -113,6 +142,10 @@ msgstr "Mirá la web de aplicaciones apps.owncloud.com" msgid "-licensed by " msgstr "-licenciado por " +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualizar" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentación de Usuario" @@ -123,7 +156,7 @@ msgstr "Documentación de Administrador" #: templates/help.php:6 msgid "Online Documentation" -msgstr "Documentación en linea" +msgstr "Documentación en línea" #: templates/help.php:7 msgid "Forum" @@ -230,7 +263,7 @@ msgstr "Desarrollado por la , 2013. +# CJTess , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -19,6 +20,58 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Error al borrar" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -30,168 +83,230 @@ msgstr "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibl msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Atención: El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Servidor" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "Una DN base por línea" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Podés especificar el DN base para usuarios y grupos en la pestaña \"Avanzado\"" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN usuario" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, dejá DN y contraseña vacíos." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Contraseña" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acceso anónimo, dejá DN y contraseña vacíos." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro de inicio de sesión de usuario" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define el filtro a aplicar cuando se ha realizado un login. %%uid remplazará el nombre de usuario en el proceso de inicio de sesión." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar %%uid como plantilla, p. ej.: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Lista de filtros de usuario" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Define el filtro a aplicar, cuando se obtienen usuarios." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sin plantilla, p. ej.: \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define el filtro a aplicar cuando se obtienen grupos." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Puerto" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Árbol base de usuario" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Árbol base de grupo" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asociación Grupo-Miembro" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "No usarlo para SSL, dará error." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Desactivar la validación por certificado SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "No recomendado, sólo para pruebas." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Campo de nombre de usuario a mostrar" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Campo de nombre de grupo a mostrar" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "en bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "en segundos. Cambiarlo vacía la cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Campo de nombre de usuario a mostrar" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Árbol base de usuario" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Una DN base de usuario por línea" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Campo de nombre de grupo a mostrar" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Árbol base de grupo" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Una DN base de grupo por línea" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asociación Grupo-Miembro" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "en bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ayuda" diff --git a/l10n/es_AR/user_webdavauth.po b/l10n/es_AR/user_webdavauth.po index 429680ee8c6..6c88cac3fd0 100644 --- a/l10n/es_AR/user_webdavauth.po +++ b/l10n/es_AR/user_webdavauth.po @@ -4,14 +4,15 @@ # # Translators: # Agustin Ferrario , 2012. +# CJTess , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 16:22+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +22,7 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Autenticación de WevDAV" #: templates/settings.php:4 msgid "URL: http://" @@ -32,4 +33,4 @@ msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "onwCloud enviará las credenciales de usuario a esta URL. 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." diff --git a/l10n/et_EE/core.po b/l10n/et_EE/core.po index 62f3fd70152..319bddaf875 100644 --- a/l10n/et_EE/core.po +++ b/l10n/et_EE/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -156,59 +156,59 @@ msgstr "November" msgid "December" msgstr "Detsember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Seaded" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekundit tagasi" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minut tagasi" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minutit tagasi" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "täna" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "eile" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} päeva tagasi" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "viimasel kuul" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "kuu tagasi" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "viimasel aastal" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "aastat tagasi" @@ -253,7 +253,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Jaga" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -541,7 +541,7 @@ msgstr "Lõpeta seadistamine" msgid "web services under your control" msgstr "veebiteenused sinu kontrolli all" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Logi välja" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index ad6acde581c..deecc6e8688 100644 --- a/l10n/et_EE/files.po +++ b/l10n/et_EE/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ühtegi faili ei laetud üles. Tundmatu viga" @@ -68,11 +54,11 @@ msgstr "Ajutiste failide kaust puudub" msgid "Failed to write to disk" msgstr "Kettale kirjutamine ebaõnnestus" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "Failid" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Lõpeta jagamine" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Kustuta" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "ümber" @@ -112,7 +98,7 @@ msgstr "loobu" msgid "replaced {new_name}" msgstr "asendatud nimega {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "tagasi" @@ -120,13 +106,9 @@ msgstr "tagasi" msgid "replaced {new_name} with {old_name}" msgstr "asendas nime {old_name} nimega {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "jagamata {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "kustutatud {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Üleslaadimise viga" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Sulge" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ootel" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 faili üleslaadimisel" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} faili üleslaadimist" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Üleslaadimine tühistati." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL ei saa olla tühi." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} faili skännitud" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "viga skännimisel" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nimi" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Suurus" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Muudetud" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 kaust" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} kausta" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fail" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} faili" @@ -285,32 +259,40 @@ msgstr "Kaust" msgid "From link" msgstr "Allikast" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Tühista üleslaadimine" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Siin pole midagi. Lae midagi üles!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Lae alla" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Üleslaadimine on liiga suur" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Faile skannitakse, palun oota" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Praegune skannimine" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/et_EE/files_trashbin.po b/l10n/et_EE/files_trashbin.po new file mode 100644 index 00000000000..818c4c31a5d --- /dev/null +++ b/l10n/et_EE/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et_EE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nimi" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 kaust" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} kausta" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fail" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} faili" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/et_EE/settings.po b/l10n/et_EE/settings.po index 3f55c738851..1dbc6e9f6fd 100644 --- a/l10n/et_EE/settings.po +++ b/l10n/et_EE/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "Kasutajat ei saa lisada gruppi %s" msgid "Unable to remove user from group %s" msgstr "Kasutajat ei saa eemaldada grupist %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Lülita välja" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Lülita sisse" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Viga" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Salvestamine..." @@ -113,6 +141,10 @@ msgstr "Vaata rakenduste lehte aadressil apps.owncloud.com" msgid "-licensed by " msgstr "-litsenseeritud " +#: templates/apps.php:31 +msgid "Update" +msgstr "Uuenda" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "Grupi admin" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po index f0bcf31f96a..fe16678ea5e 100644 --- a/l10n/et_EE/user_ldap.po +++ b/l10n/et_EE/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:19+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Kustutamine ebaõnnestus" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Sa ei saa protokolli ära jätta, välja arvatud siis, kui sa nõuad SSL-ühendust. Sel juhul alusta eesliitega ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Baas DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Kasutaja DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Parool" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Anonüümseks ligipääsuks jäta DN ja parool tühjaks." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Kasutajanime filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "kasuta %%uid kohatäitjat, nt. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Kasutajate nimekirja filter" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Määrab kasutajaid hankides filtri, mida rakendatakse." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ilma ühegi kohatäitjata, nt. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Grupi filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Määrab gruppe hankides filtri, mida rakendatakse." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Baaskasutaja puu" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Baasgrupi puu" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Grupiliikme seotus" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Kasutaja TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ära kasuta seda SSL ühenduse jaoks, see ei toimi." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Mittetõstutundlik LDAP server (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Lülita SSL sertifikaadi kontrollimine välja." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Pole soovitatav, kasuta ainult testimiseks." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Kasutaja näidatava nime väli" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "LDAP omadus, mida kasutatakse kasutaja ownCloudi nime loomiseks." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Grupi näidatava nime väli" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "LDAP omadus, mida kasutatakse ownCloudi grupi nime loomiseks." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "baitides" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "sekundites. Muudatus tühjendab vahemälu." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Kasutaja näidatava nime väli" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "LDAP omadus, mida kasutatakse kasutaja ownCloudi nime loomiseks." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Baaskasutaja puu" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Grupi näidatava nime väli" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "LDAP omadus, mida kasutatakse ownCloudi grupi nime loomiseks." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Baasgrupi puu" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Grupiliikme seotus" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "baitides" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Kasutajanime (vaikeväärtus) kasutamiseks jäta tühjaks. Vastasel juhul määra LDAP/AD omadus." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Abiinfo" diff --git a/l10n/eu/core.po b/l10n/eu/core.po index 7bc85012c50..33b40f3114c 100644 --- a/l10n/eu/core.po +++ b/l10n/eu/core.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -159,59 +159,59 @@ msgstr "Azaroa" msgid "December" msgstr "Abendua" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ezarpenak" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segundu" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "orain dela minutu 1" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "orain dela {minutes} minutu" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "orain dela ordu bat" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "orain dela {hours} ordu" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "gaur" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "atzo" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "orain dela {days} egun" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "joan den hilabetean" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "orain dela {months} hilabete" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "hilabete" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "joan den urtean" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "urte" @@ -256,11 +256,11 @@ msgstr "Beharrezkoa den {file} fitxategia ez dago instalatuta!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Elkarbanatu" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Elkarbanatuta" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -544,7 +544,7 @@ msgstr "Bukatu konfigurazioa" msgid "web services under your control" msgstr "web zerbitzuak zure kontrolpean" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Saioa bukatu" diff --git a/l10n/eu/files.po b/l10n/eu/files.po index a769d2ce3c3..2c3f16305dd 100644 --- a/l10n/eu/files.po +++ b/l10n/eu/files.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-28 00:04+0100\n" -"PO-Revision-Date: 2013-01-27 15:41+0000\n" -"Last-Translator: Piarres Beobide \n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,20 +21,6 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Ezin dira fitxategiak mugitu %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Ezin izan da fitxategia berrizendatu" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ez da fitxategirik igo. Errore ezezaguna" @@ -70,11 +56,11 @@ msgstr "Aldi baterako karpeta falta da" msgid "Failed to write to disk" msgstr "Errore bat izan da diskoan idazterakoan" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Ez dago behar aina leku erabilgarri," +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Ez dago leku nahikorik." -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Baliogabeko karpeta." @@ -82,15 +68,15 @@ msgstr "Baliogabeko karpeta." msgid "Files" msgstr "Fitxategiak" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Ez elkarbanatu" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Ezabatu" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Berrizendatu" @@ -114,7 +100,7 @@ msgstr "ezeztatu" msgid "replaced {new_name}" msgstr "ordezkatua {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "desegin" @@ -122,13 +108,9 @@ msgstr "desegin" msgid "replaced {new_name} with {old_name}" msgstr " {new_name}-k {old_name} ordezkatu du" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "elkarbanaketa utzita {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "ezabatuta {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Zure deskarga prestatu egin behar da. Denbora bat har lezake fitxategiak handiak badira. " -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Igotzean errore bat suertatu da" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Itxi" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Zain" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "fitxategi 1 igotzen" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} fitxategi igotzen" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Igoera ezeztatuta" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URLa ezin da hutsik egon." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Baliogabeako karpeta izena. 'Shared' izena Owncloudek erreserbatzen du" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} fitxategi eskaneatuta" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "errore bat egon da eskaneatzen zen bitartean" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Izena" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaina" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Aldatuta" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "karpeta bat" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} karpeta" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "fitxategi bat" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fitxategi" @@ -287,32 +261,40 @@ msgstr "Karpeta" msgid "From link" msgstr "Estekatik" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Ezeztatu igoera" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ez dago ezer. Igo zerbait!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Deskargatu" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Igotakoa handiegia da" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Fitxategiak eskaneatzen ari da, itxoin mezedez." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Orain eskaneatzen ari da" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/eu/files_trashbin.po b/l10n/eu/files_trashbin.po new file mode 100644 index 00000000000..a0ee131403b --- /dev/null +++ b/l10n/eu/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Izena" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "karpeta bat" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} karpeta" + +#: js/trash.js:120 +msgid "1 file" +msgstr "fitxategi bat" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} fitxategi" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Berrezarri" diff --git a/l10n/eu/settings.po b/l10n/eu/settings.po index 9ff185b18fb..7b268d3a9d6 100644 --- a/l10n/eu/settings.po +++ b/l10n/eu/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "Ezin izan da erabiltzailea %s taldera gehitu" msgid "Unable to remove user from group %s" msgstr "Ezin izan da erabiltzailea %s taldetik ezabatu" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Ez-gaitu" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Gaitu" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Errorea" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Gordetzen..." @@ -115,6 +143,10 @@ msgstr "Ikusi programen orria apps.owncloud.com en" msgid "-licensed by " msgstr "-lizentziatua " +#: templates/apps.php:31 +msgid "Update" +msgstr "Eguneratu" + #: templates/help.php:3 msgid "User Documentation" msgstr "Erabiltzaile dokumentazioa" @@ -232,7 +264,7 @@ msgstr "ownCloud komun #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "Sarrera Izena" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -256,7 +288,7 @@ msgstr "Besteak" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "Bistaratze Izena" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -266,6 +298,14 @@ msgstr "Talde administradorea" msgid "Storage" msgstr "Biltegiratzea" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Lehenetsia" diff --git a/l10n/eu/user_ldap.po b/l10n/eu/user_ldap.po index 546e28b0d75..f55cb063518 100644 --- a/l10n/eu/user_ldap.po +++ b/l10n/eu/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-20 00:05+0100\n" -"PO-Revision-Date: 2013-01-19 00:01+0000\n" -"Last-Translator: asieriko \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,58 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Ezabaketak huts egin du" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Hostalaria" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Oinarrizko DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "DN Oinarri bat lerroko" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Erabiltzaile DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Lotura egingo den bezero erabiltzailearen DNa, adb. uid=agent,dc=example,dc=com. Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Pasahitza" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Erabiltzaileen saioa hasteko iragazkia" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Saioa hastean erabiliko den iragazkia zehazten du. %%uid-ek erabiltzaile izena ordezkatzen du saioa hasterakoan." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "erabili %%uid txantiloia, adb. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Erabiltzaile zerrendaren Iragazkia" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Erabiltzaileak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "txantiloirik gabe, adb. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Taldeen iragazkia" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "txantiloirik gabe, adb. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Portua" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Oinarrizko Erabiltzaile Zuhaitza" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Erabiltzaile DN Oinarri bat lerroko" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Oinarrizko Talde Zuhaitza" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Talde DN Oinarri bat lerroko" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Talde-Kide elkarketak" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Erabili TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ez erabili SSL konexioetan, huts egingo du." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Ezgaitu SSL ziurtagirien egiaztapena." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Ez da aholkatzen, erabili bakarrik frogak egiteko." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Erabiltzaileen bistaratzeko izena duen eremua" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Taldeen bistaratzeko izena duen eremua" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "bytetan" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "segundutan. Aldaketak katxea husten du." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Erabiltzaileen bistaratzeko izena duen eremua" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Oinarrizko Erabiltzaile Zuhaitza" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Erabiltzaile DN Oinarri bat lerroko" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Taldeen bistaratzeko izena duen eremua" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Oinarrizko Talde Zuhaitza" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Talde DN Oinarri bat lerroko" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Talde-Kide elkarketak" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "bytetan" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Laguntza" diff --git a/l10n/fa/core.po b/l10n/fa/core.po index b14c7903db5..7ac12d0c3a7 100644 --- a/l10n/fa/core.po +++ b/l10n/fa/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 14:04+0000\n" +"Last-Translator: miki_mika1362 \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -157,59 +157,59 @@ msgstr "نوامبر" msgid "December" msgstr "دسامبر" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "تنظیمات" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "ثانیه‌ها پیش" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 دقیقه پیش" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{دقیقه ها} دقیقه های پیش" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 ساعت پیش" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{ساعت ها} ساعت ها پیش" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "امروز" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "دیروز" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{روزها} روزهای پیش" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "ماه قبل" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{ماه ها} ماه ها پیش" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "ماه‌های قبل" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "سال قبل" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "سال‌های قبل" @@ -254,7 +254,7 @@ msgstr "پرونده { پرونده} درخواست شده نصب نشده اس #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "اشتراک‌گزاری" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -482,7 +482,7 @@ msgstr "هیچ مولد تصادفی امن در دسترس نیست، لطفا msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." -msgstr "" +msgstr "بدون وجود یک تولید کننده اعداد تصادفی امن ، یک مهاجم ممکن است این قابلیت را داشته باشد که پیشگویی کند پسوورد های راه انداز گرفته شده و کنترلی روی حساب کاربری شما داشته باشد ." #: templates/installation.php:32 msgid "" @@ -542,7 +542,7 @@ msgstr "اتمام نصب" msgid "web services under your control" msgstr "سرویس وب تحت کنترل شما" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "خروج" diff --git a/l10n/fa/files.po b/l10n/fa/files.po index b153a65abbf..c0c54f59a62 100644 --- a/l10n/fa/files.po +++ b/l10n/fa/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 11:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s نمی تواند حرکت کند - در حال حاضر پرونده با این نام وجود دارد. " - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "%s نمی تواند حرکت کند " - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "قادر به تغییر نام پرونده نیست." - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "هیچ فایلی آپلود نشد.خطای ناشناس" @@ -70,11 +56,11 @@ msgstr "یک پوشه موقت گم شده است" msgid "Failed to write to disk" msgstr "نوشتن بر روی دیسک سخت ناموفق بود" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "فضای کافی در دسترس نیست" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "فهرست راهنما نامعتبر می باشد." @@ -82,15 +68,15 @@ msgstr "فهرست راهنما نامعتبر می باشد." msgid "Files" msgstr "فایل ها" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "لغو اشتراک" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "پاک کردن" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "تغییرنام" @@ -114,7 +100,7 @@ msgstr "لغو" msgid "replaced {new_name}" msgstr "{نام _جدید} جایگزین شد " -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "بازگشت" @@ -122,13 +108,9 @@ msgstr "بازگشت" msgid "replaced {new_name} with {old_name}" msgstr "{نام_جدید} با { نام_قدیمی} جایگزین شد." -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{ فایل های } قسمت نشده" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{ فایل های } پاک شده" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "دانلود شما در حال آماده شدن است. در صورتیکه پرونده ها بزرگ باشند ممکن است مدتی طول بکشد." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "خطا در بار گذاری" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "بستن" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "در انتظار" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 پرونده آپلود شد." -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{ شمار } فایل های در حال آپلود" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "بار گذاری لغو شد" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. " -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL نمی تواند خالی باشد." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "نام پوشه نامعتبر است. استفاده از \" به اشتراک گذاشته شده \" متعلق به سایت Owncloud است." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{ شمار } فایل های اسکن شده" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "خطا در حال انجام اسکن " - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "نام" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "اندازه" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "تغییر یافته" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 پوشه" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{ شمار} پوشه ها" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 پرونده" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{ شمار } فایل ها" @@ -287,32 +261,40 @@ msgstr "پوشه" msgid "From link" msgstr "از پیوند" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "متوقف کردن بار گذاری" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "اینجا هیچ چیز نیست." -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "بارگیری" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "حجم بارگذاری بسیار زیاد است" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "پرونده ها در حال بازرسی هستند لطفا صبر کنید" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "بازرسی کنونی" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/fa/files_external.po b/l10n/fa/files_external.po index 76d4d5289bf..075c47b4356 100644 --- a/l10n/fa/files_external.po +++ b/l10n/fa/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mahdi Kereshteh , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:04+0100\n" +"PO-Revision-Date: 2013-02-03 05:40+0000\n" +"Last-Translator: miki_mika1362 \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,11 +26,11 @@ msgstr "" msgid "Error configuring Dropbox storage" msgstr "" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 msgid "Grant access" msgstr "" -#: js/dropbox.js:73 js/google.js:72 +#: js/dropbox.js:73 js/google.js:73 msgid "Fill out all required fields" msgstr "" @@ -37,17 +38,17 @@ msgstr "" msgid "Please provide a valid Dropbox app key and secret." msgstr "" -#: js/google.js:26 js/google.js:73 js/google.js:78 +#: js/google.js:26 js/google.js:74 js/google.js:79 msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -56,7 +57,7 @@ msgstr "" #: templates/settings.php:3 msgid "External Storage" -msgstr "" +msgstr "حافظه خارجی" #: templates/settings.php:8 templates/settings.php:22 msgid "Mount point" @@ -68,15 +69,15 @@ msgstr "" #: templates/settings.php:10 msgid "Configuration" -msgstr "" +msgstr "پیکربندی" #: templates/settings.php:11 msgid "Options" -msgstr "" +msgstr "تنظیمات" #: templates/settings.php:12 msgid "Applicable" -msgstr "" +msgstr "قابل اجرا" #: templates/settings.php:27 msgid "Add mount point" @@ -99,22 +100,22 @@ msgid "Users" msgstr "کاربران" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "حذف" #: templates/settings.php:124 msgid "Enable User External Storage" -msgstr "" +msgstr "فعال سازی حافظه خارجی کاربر" #: templates/settings.php:125 msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/fa/files_sharing.po b/l10n/fa/files_sharing.po index f7b3799df12..e72b1ce1dc6 100644 --- a/l10n/fa/files_sharing.po +++ b/l10n/fa/files_sharing.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Amir Reza Asadi , 2013. # Mohammad Dashtizadeh , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 11:20+0000\n" +"Last-Translator: Amir Reza Asadi \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,30 +21,30 @@ msgstr "" #: templates/authenticate.php:4 msgid "Password" -msgstr "" +msgstr "گذرواژه" #: templates/authenticate.php:6 msgid "Submit" -msgstr "" +msgstr "ثبت" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%sپوشه %s را با شما به اشتراک گذاشت" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%sفایل %s را با شما به اشتراک گذاشت" #: templates/public.php:14 templates/public.php:30 msgid "Download" -msgstr "" +msgstr "دانلود" #: templates/public.php:29 msgid "No preview available for" -msgstr "" +msgstr "هیچگونه پیش نمایشی موجود نیست" -#: templates/public.php:37 +#: templates/public.php:35 msgid "web services under your control" -msgstr "" +msgstr "سرویس های تحت وب در کنترل شما" diff --git a/l10n/fa/files_trashbin.po b/l10n/fa/files_trashbin.po new file mode 100644 index 00000000000..d0801cffe9f --- /dev/null +++ b/l10n/fa/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 12:40+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "نام" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 پوشه" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{ شمار} پوشه ها" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 پرونده" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{ شمار } فایل ها" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "بازیابی" diff --git a/l10n/fa/files_versions.po b/l10n/fa/files_versions.po index 7e657a47ca6..276a3e16135 100644 --- a/l10n/fa/files_versions.po +++ b/l10n/fa/files_versions.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mahdi Kereshteh , 2013. # Mohammad Dashtizadeh , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 11:40+0000\n" +"Last-Translator: miki_mika1362 \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,7 +21,7 @@ msgstr "" #: js/versions.js:16 msgid "History" -msgstr "" +msgstr "تاریخچه" #: templates/settings.php:3 msgid "Files Versioning" @@ -28,4 +29,4 @@ msgstr "" #: templates/settings.php:4 msgid "Enable" -msgstr "" +msgstr "فعال" diff --git a/l10n/fa/lib.po b/l10n/fa/lib.po index 7cceb3e4f3a..4fb46ee3443 100644 --- a/l10n/fa/lib.po +++ b/l10n/fa/lib.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Amir Reza Asadi , 2013. # Mohammad Dashtizadeh , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 13:36+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 14:01+0000\n" +"Last-Translator: Amir Reza Asadi \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,53 +19,53 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:312 msgid "Help" msgstr "راه‌نما" -#: app.php:308 +#: app.php:319 msgid "Personal" msgstr "شخصی" -#: app.php:313 +#: app.php:324 msgid "Settings" msgstr "تنظیمات" -#: app.php:318 +#: app.php:329 msgid "Users" msgstr "کاربران" -#: app.php:325 +#: app.php:336 msgid "Apps" -msgstr "" +msgstr " برنامه ها" -#: app.php:327 +#: app.php:338 msgid "Admin" msgstr "مدیر" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." -msgstr "" +msgstr "دانلود به صورت فشرده غیر فعال است" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." -msgstr "" +msgstr "فایل ها باید به صورت یکی یکی دانلود شوند" -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" -msgstr "" +msgstr "بازگشت به فایل ها" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." -msgstr "" +msgstr "فایل های انتخاب شده بزرگتر از آن هستند که بتوان یک فایل فشرده تولید کرد" -#: helper.php:229 +#: helper.php:226 msgid "couldn't be determined" msgstr "" #: json.php:28 msgid "Application is not enabled" -msgstr "" +msgstr "برنامه فعال نشده است" #: json.php:39 json.php:62 json.php:73 msgid "Authentication error" @@ -84,7 +85,7 @@ msgstr "متن" #: search/provider/file.php:29 msgid "Images" -msgstr "" +msgstr "تصاویر" #: template.php:113 msgid "seconds ago" @@ -106,7 +107,7 @@ msgstr "1 ساعت پیش" #: template.php:117 #, php-format msgid "%d hours ago" -msgstr "" +msgstr "%d ساعت پیش" #: template.php:118 msgid "today" @@ -119,7 +120,7 @@ msgstr "دیروز" #: template.php:120 #, php-format msgid "%d days ago" -msgstr "" +msgstr "%d روز پیش" #: template.php:121 msgid "last month" @@ -128,7 +129,7 @@ msgstr "ماه قبل" #: template.php:122 #, php-format msgid "%d months ago" -msgstr "" +msgstr "%dماه پیش" #: template.php:123 msgid "last year" @@ -154,4 +155,4 @@ msgstr "" #: vcategories.php:188 vcategories.php:249 #, php-format msgid "Could not find category \"%s\"" -msgstr "" +msgstr "دسته بندی %s یافت نشد" diff --git a/l10n/fa/settings.po b/l10n/fa/settings.po index 05c65056307..b53e8d923b6 100644 --- a/l10n/fa/settings.po +++ b/l10n/fa/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 14:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "غیرفعال" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "فعال" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "خطا" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "درحال ذخیره ..." @@ -115,6 +143,10 @@ msgstr "صفحه این اٌپ را در apps.owncloud.com ببینید" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -266,6 +298,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/fa/user_ldap.po b/l10n/fa/user_ldap.po index b9a2a147546..46daefbb3f6 100644 --- a/l10n/fa/user_ldap.po +++ b/l10n/fa/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 12:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "حذف کردن انجام نشد" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "میزبانی" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "رمز عبور" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" +msgstr "درگاه" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "" - -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "راه‌نما" diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po index 74a6747f32b..34672cc2cb0 100644 --- a/l10n/fi_FI/core.po +++ b/l10n/fi_FI/core.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -162,59 +162,59 @@ msgstr "Marraskuu" msgid "December" msgstr "Joulukuu" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Asetukset" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekuntia sitten" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minuutti sitten" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minuuttia sitten" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 tunti sitten" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} tuntia sitten" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "tänään" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "eilen" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} päivää sitten" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "viime kuussa" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} kuukautta sitten" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "kuukautta sitten" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "viime vuonna" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "vuotta sitten" @@ -259,7 +259,7 @@ msgstr "Vaadittua tiedostoa {file} ei ole asennettu!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Jaa" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -386,11 +386,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Päivitys epäonnistui. Ilmoita ongelmasta ownCloud-yhteisölle." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -547,7 +547,7 @@ msgstr "Viimeistele asennus" msgid "web services under your control" msgstr "verkkopalvelut hallinnassasi" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Kirjaudu ulos" diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po index 16c19a658af..3e3ea718bb0 100644 --- a/l10n/fi_FI/files.po +++ b/l10n/fi_FI/files.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 18:44+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 13:58+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -22,20 +22,6 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Kohteen %s siirto ei onnistunut" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Tiedoston nimeäminen uudelleen ei onnistunut" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Tiedostoa ei lähetetty. Tuntematon virhe" @@ -71,11 +57,11 @@ msgstr "Väliaikaiskansiota ei ole olemassa" msgid "Failed to write to disk" msgstr "Levylle kirjoitus epäonnistui" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Tallennustilaa ei ole riittävästi käytettävissä" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Tilaa ei ole riittävästi" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Virheellinen kansio." @@ -83,15 +69,15 @@ msgstr "Virheellinen kansio." msgid "Files" msgstr "Tiedostot" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Peru jakaminen" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Poista" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Nimeä uudelleen" @@ -115,7 +101,7 @@ msgstr "peru" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "kumoa" @@ -123,13 +109,9 @@ msgstr "kumoa" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "suorita poistotoiminto" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -153,86 +135,78 @@ msgstr "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkro msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Tallennustila on melkein loppu ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Lähetysvirhe." -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Sulje" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Odottaa" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Lähetys peruttu." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Verkko-osoite ei voi olla tyhjä" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nimi" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Koko" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Muutettu" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 kansio" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} kansiota" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 tiedosto" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} tiedostoa" @@ -288,32 +262,40 @@ msgstr "Kansio" msgid "From link" msgstr "Linkistä" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Roskakori" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Peru lähetys" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Täällä ei ole mitään. Lähetä tänne jotakin!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Lataa" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Lähetettävä tiedosto on liian suuri" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Tiedostoja tarkistetaan, odota hetki." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Tämänhetkinen tutkinta" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Päivitetään tiedostojärjestelmän välimuistia..." diff --git a/l10n/fi_FI/files_encryption.po b/l10n/fi_FI/files_encryption.po index 5f635937590..69b524af11c 100644 --- a/l10n/fi_FI/files_encryption.po +++ b/l10n/fi_FI/files_encryption.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Jiri Grönroos , 2012. +# Jiri Grönroos , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 13:59+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,7 +34,7 @@ msgstr "" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Tarkista salasanasi ja yritä uudelleen." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" @@ -42,7 +42,7 @@ msgstr "" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Choose encryption mode:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" @@ -58,13 +58,13 @@ msgstr "" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Ei mitään (ei lainkaan salausta)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Tärkeä huomautus: Kun olet valinnut salaustatavan, sitä ei ole mahdollista vaihtaa" #: templates/settings.php:48 msgid "User specific (let the user decide)" diff --git a/l10n/fi_FI/files_external.po b/l10n/fi_FI/files_external.po index c40ca823386..7b2a88bd1b2 100644 --- a/l10n/fi_FI/files_external.po +++ b/l10n/fi_FI/files_external.po @@ -4,15 +4,15 @@ # # Translators: # , 2012. -# Jiri Grönroos , 2012. +# Jiri Grönroos , 2012-2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 14:01+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,11 +28,11 @@ msgstr "Pääsy sallittu" msgid "Error configuring Dropbox storage" msgstr "Virhe Dropbox levyn asetuksia tehtäessä" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 msgid "Grant access" msgstr "Salli pääsy" -#: js/dropbox.js:73 js/google.js:72 +#: js/dropbox.js:73 js/google.js:73 msgid "Fill out all required fields" msgstr "Täytä kaikki vaaditut kentät" @@ -40,22 +40,22 @@ msgstr "Täytä kaikki vaaditut kentät" msgid "Please provide a valid Dropbox app key and secret." msgstr "" -#: js/google.js:26 js/google.js:73 js/google.js:78 +#: js/google.js:26 js/google.js:74 js/google.js:79 msgid "Error configuring Google Drive storage" msgstr "Virhe Google Drive levyn asetuksia tehtäessä" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Varoitus: \"smbclient\" ei ole asennettuna. CIFS-/SMB-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan smbclient." -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Varoitus: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. FTP-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön." #: templates/settings.php:3 msgid "External Storage" @@ -102,7 +102,7 @@ msgid "Users" msgstr "Käyttäjät" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Poista" @@ -114,10 +114,10 @@ msgstr "Ota käyttöön ulkopuoliset tallennuspaikat" msgid "Allow users to mount their own external storage" msgstr "Salli käyttäjien liittää omia erillisiä tallennusvälineitä" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL-juurivarmenteet" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" msgstr "Tuo juurivarmenne" diff --git a/l10n/fi_FI/files_trashbin.po b/l10n/fi_FI/files_trashbin.po new file mode 100644 index 00000000000..3543c5b1193 --- /dev/null +++ b/l10n/fi_FI/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Jiri Grönroos , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi_FI\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "suorita palautustoiminto" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nimi" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Poistettu" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 kansio" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} kansiota" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 tiedosto" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} tiedostoa" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Tyhjää täynnä! Roskakorissa ei ole mitään." + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Palauta" diff --git a/l10n/fi_FI/settings.po b/l10n/fi_FI/settings.po index c662e178989..eb214d66683 100644 --- a/l10n/fi_FI/settings.po +++ b/l10n/fi_FI/settings.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 13:58+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -78,14 +78,42 @@ msgstr "Käyttäjän tai ryhmän %s lisääminen ei onnistu" msgid "Unable to remove user from group %s" msgstr "Käyttäjän poistaminen ryhmästä %s ei onnistu" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Sovelluksen päivitys epäonnistui." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Päivitä versioon {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Poista käytöstä" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Käytä" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Odota hetki..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Päivitetään..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Virhe sovellusta päivittäessä" + +#: js/apps.js:87 +msgid "Error" +msgstr "Virhe" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Päivitetty" + #: js/personal.js:69 msgid "Saving..." msgstr "Tallennetaan..." @@ -114,6 +142,10 @@ msgstr "Katso sovellussivu osoitteessa apps.owncloud.com" msgid "-licensed by " msgstr "-lisensoija " +#: templates/apps.php:31 +msgid "Update" +msgstr "Päivitä" + #: templates/help.php:3 msgid "User Documentation" msgstr "Käyttäjäohjeistus" @@ -231,7 +263,7 @@ msgstr "Kehityksestä on vastannut \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,58 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Poisto epäonnistui" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +86,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Isäntä" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Oletus DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset'-välilehdeltä " -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Käyttäjän DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Asiakasohjelman DN, jolla yhdistäminen tehdään, ts. uid=agent,dc=example,dc=com. Mahdollistaaksesi anonyymin yhteyden, jätä DN ja salasana tyhjäksi." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Salasana" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Jos haluat mahdollistaa anonyymin pääsyn, jätä DN ja Salasana tyhjäksi " -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Login suodatus" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Määrittelee käytettävän suodattimen, kun sisäänkirjautumista yritetään. %%uid korvaa sisäänkirjautumisessa käyttäjätunnuksen." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "käytä %%uid paikanvaraajaa, ts. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Käyttäjien suodatus" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Määrittelee käytettävän suodattimen, kun käyttäjiä haetaan. " -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ilman paikanvaraustermiä, ts. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Ryhmien suodatus" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. " -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Portti" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Oletuskäyttäjäpuu" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Ryhmien juuri" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Ryhmän ja jäsenen assosiaatio (yhteys)" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Käytä TLS:ää" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Älä käytä SSL-yhteyttä varten, se epäonnistuu. " -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Kirjainkoosta piittamaton LDAP-palvelin (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Poista käytöstä SSL-varmenteen vahvistus" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Ei suositella, käytä vain testausta varten." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Käyttäjän näytettävän nimen kenttä" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä " - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Ryhmän \"näytettävä nimi\"-kenttä" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "tavuissa" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "sekunneissa. Muutos tyhjentää välimuistin." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Käyttäjän näytettävän nimen kenttä" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä " + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Oletuskäyttäjäpuu" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Ryhmän \"näytettävä nimi\"-kenttä" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Ryhmien juuri" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Ryhmän ja jäsenen assosiaatio (yhteys)" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "tavuissa" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ohje" diff --git a/l10n/fr/core.po b/l10n/fr/core.po index 14e68eae7e2..ca18cbb340c 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/core.po @@ -6,6 +6,7 @@ # Christophe Lherieau , 2012-2013. # David Basquin , 2013. # , 2013. +# Fabian Lemaître , 2013. # , 2012. # , 2012. # Guillaume Paumier , 2012. @@ -19,9 +20,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 14:30+0000\n" +"Last-Translator: ptit_boogy \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -167,59 +168,59 @@ msgstr "novembre" msgid "December" msgstr "décembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Paramètres" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "il y a quelques secondes" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "il y a une minute" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "il y a {minutes} minutes" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Il y a une heure" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Il y a {hours} heures" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "aujourd'hui" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "hier" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "il y a {days} jours" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "le mois dernier" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Il y a {months} mois" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "il y a plusieurs mois" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "l'année dernière" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "il y a plusieurs années" @@ -264,11 +265,11 @@ msgstr "Le fichier requis {file} n'est pas installé !" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Partager" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Partagé" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -552,7 +553,7 @@ msgstr "Terminer l'installation" msgid "web services under your control" msgstr "services web sous votre contrôle" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Se déconnecter" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index dd7d5c26359..5a5f892a67e 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Cédric MARTIN , 2013. # Christophe Lherieau , 2012-2013. # Cyril Glapa , 2012. # David Basquin , 2013. @@ -20,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 09:26+0000\n" -"Last-Translator: dbasquin \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 14:30+0000\n" +"Last-Translator: Flywall \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -30,20 +31,6 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Impossible de déplacer %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Impossible de renommer le fichier" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Aucun fichier n'a été chargé. Erreur inconnue" @@ -79,11 +66,11 @@ msgstr "Il manque un répertoire temporaire" msgid "Failed to write to disk" msgstr "Erreur d'écriture sur le disque" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Plus assez d'espace de stockage disponible" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Espace disponible insuffisant" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Dossier invalide." @@ -91,15 +78,15 @@ msgstr "Dossier invalide." msgid "Files" msgstr "Fichiers" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Ne plus partager" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Supprimer" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Renommer" @@ -123,7 +110,7 @@ msgstr "annuler" msgid "replaced {new_name}" msgstr "{new_name} a été remplacé" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "annuler" @@ -131,13 +118,9 @@ msgstr "annuler" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} a été remplacé par {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Fichiers non partagés : {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "Fichiers supprimés : {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "effectuer l'opération de suppression" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -161,86 +144,78 @@ msgstr "Votre espage de stockage est plein, les fichiers ne peuvent plus être t msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Votre espace de stockage est presque plein ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Erreur de chargement" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Fermer" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "En cours" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fichier en cours de téléchargement" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} fichiers téléversés" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Chargement annulé." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "L'URL ne peut-être vide" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} fichiers indexés" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "erreur lors de l'indexation" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Taille" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modifié" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 dossier" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dossiers" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fichier" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fichiers" @@ -296,32 +271,40 @@ msgstr "Dossier" msgid "From link" msgstr "Depuis le lien" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Corbeille" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Annuler l'envoi" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Il n'y a rien ici ! Envoyez donc quelque chose :)" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Télécharger" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Fichier trop volumineux" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Les fichiers sont en cours d'analyse, veuillez patienter." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Analyse en cours" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Mise à niveau du cache du système de fichier" diff --git a/l10n/fr/files_trashbin.po b/l10n/fr/files_trashbin.po new file mode 100644 index 00000000000..d8a8b2c7926 --- /dev/null +++ b/l10n/fr/files_trashbin.po @@ -0,0 +1,56 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Cédric MARTIN , 2013. +# Romain DEP. , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "effectuer l'opération de restauration" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nom" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Effacé" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 dossier" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} dossiers" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fichier" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} fichiers" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Il n'y a rien ici. Votre corbeille est vide !" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Restaurer" diff --git a/l10n/fr/settings.po b/l10n/fr/settings.po index c2827253a3b..99f4d45ce83 100644 --- a/l10n/fr/settings.po +++ b/l10n/fr/settings.po @@ -4,6 +4,7 @@ # # Translators: # Brice , 2012. +# Cédric MARTIN , 2013. # Cyril Glapa , 2012. # , 2013. # , 2011. @@ -22,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -90,14 +91,42 @@ msgstr "Impossible d'ajouter l'utilisateur au groupe %s" msgid "Unable to remove user from group %s" msgstr "Impossible de supprimer l'utilisateur du groupe %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Impossible de mettre à jour l'application" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Mettre à jour vers {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Désactiver" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activer" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Veuillez patienter…" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Erreur lors de la mise à jour de l'application" + +#: js/apps.js:87 +msgid "Error" +msgstr "Erreur" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Mise à jour effectuée avec succès" + #: js/personal.js:69 msgid "Saving..." msgstr "Sauvegarde..." @@ -126,6 +155,10 @@ msgstr "Voir la page des applications à l'url apps.owncloud.com" msgid "-licensed by " msgstr "Distribué sous licence , par " +#: templates/apps.php:31 +msgid "Update" +msgstr "Mettre à jour" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentation utilisateur" @@ -243,7 +276,7 @@ msgstr "Développé par la \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,6 +23,58 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Échec de la suppression de la configuration du serveur" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "La configuration est valide est la connexion peut être établie !" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "La configuration est invalide. Veuillez vous référer aux fichiers de journaux ownCloud pour plus d'information." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "La suppression a échoué" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Récupérer les paramètres depuis une configuration récente du serveur ?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Garder ces paramètres ?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Impossible d'ajouter la configuration du serveur." + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Test de connexion réussi" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Le test de connexion a échoué" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Confirmer la suppression" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -37,165 +89,227 @@ msgid "" msgstr "Attention : Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Configuration du serveur" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Ajouter une configuration du serveur" + +#: templates/settings.php:21 msgid "Host" msgstr "Hôte" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN Racine" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Un DN racine par ligne" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Vous pouvez spécifier les DN Racines de vos utilisateurs et groupes via l'onglet Avancé" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN Utilisateur (Autorisé à consulter l'annuaire)" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN de l'utilisateur client pour lequel la liaison doit se faire, par exemple uid=agent,dc=example,dc=com. Pour un accès anonyme, laisser le DN et le mot de passe vides." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Mot de passe" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Pour un accès anonyme, laisser le DN Utilisateur et le mot de passe vides." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Modèle d'authentification utilisateurs" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Définit le motif à appliquer, lors d'une tentative de connexion. %%uid est remplacé par le nom d'utilisateur lors de la connexion." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "veuillez utiliser le champ %%uid , ex.: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtre d'utilisateurs" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Définit le filtre à appliquer lors de la récupération des utilisateurs." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sans élément de substitution, par exemple \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtre de groupes" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Définit le filtre à appliquer lors de la récupération des groupes." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sans élément de substitution, par exemple \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Configuration active" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Lorsque non cochée, la configuration sera ignorée." + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "DN racine de l'arbre utilisateurs" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Serveur de backup (réplique)" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Un DN racine utilisateur par ligne" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "DN racine de l'arbre groupes" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Port du serveur de backup (réplique)" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Un DN racine groupe par ligne" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Désactiver le serveur principal" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Association groupe-membre" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Utiliser TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ne pas utiliser pour les connexions SSL, car cela échouera." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Serveur LDAP insensible à la casse (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Désactiver la validation du certificat SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Non recommandé, utilisation pour tests uniquement." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Champ \"nom d'affichage\" de l'utilisateur" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Champ \"nom d'affichage\" du groupe" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "en octets" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "en secondes. Tout changement vide le cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Champ \"nom d'affichage\" de l'utilisateur" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "DN racine de l'arbre utilisateurs" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Un DN racine utilisateur par ligne" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Recherche des attributs utilisateur" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Optionnel, un attribut par ligne" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Champ \"nom d'affichage\" du groupe" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "DN racine de l'arbre groupes" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Un DN racine groupe par ligne" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Recherche des attributs du groupe" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Association groupe-membre" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "en octets" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Laisser vide " -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Aide" diff --git a/l10n/gl/core.po b/l10n/gl/core.po index e2701a3713b..227dd8bf060 100644 --- a/l10n/gl/core.po +++ b/l10n/gl/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "novembro" msgid "December" msgstr "decembro" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Configuracións" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "hai 1 minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "hai {minutes} minutos" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "hai 1 hora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "hai {hours} horas" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hoxe" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "onte" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "hai {days} días" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "último mes" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "hai {months} meses" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "meses atrás" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "último ano" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "anos atrás" @@ -255,7 +255,7 @@ msgstr "Non está instalado o ficheiro {file} que se precisa" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Compartir" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "Rematar a configuración" msgid "web services under your control" msgstr "servizos web baixo o seu control" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Desconectar" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index a303b105799..020232e7f37 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Non se moveu %s - Xa existe un ficheiro con ese nome." - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Non se puido mover %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Non se pode renomear o ficheiro" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Non se subiu ningún ficheiro. Erro descoñecido." @@ -68,11 +54,11 @@ msgstr "Falta un cartafol temporal" msgid "Failed to write to disk" msgstr "Erro ao escribir no disco" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "O espazo dispoñíbel é insuficiente" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "O directorio é incorrecto." @@ -80,15 +66,15 @@ msgstr "O directorio é incorrecto." msgid "Files" msgstr "Ficheiros" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Deixar de compartir" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eliminar" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Mudar o nome" @@ -112,7 +98,7 @@ msgstr "cancelar" msgid "replaced {new_name}" msgstr "substituír {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "desfacer" @@ -120,13 +106,9 @@ msgstr "desfacer" msgid "replaced {new_name} with {old_name}" msgstr "substituír {new_name} polo {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} sen compartir" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} eliminados" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Erro na subida" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Pechar" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendentes" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 ficheiro subíndose" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} ficheiros subíndose" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Subida cancelada." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL non pode quedar baleiro." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de cartafol non válido. O uso de 'Shared' está reservado por Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} ficheiros escaneados" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "erro mentres analizaba" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaño" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 cartafol" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} cartafoles" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ficheiros" @@ -285,32 +259,40 @@ msgstr "Cartafol" msgid "From link" msgstr "Dende a ligazón" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancelar a subida" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nada por aquí. Envía algo." -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Descargar" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Envío demasiado grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiros que trata de subir superan o tamaño máximo permitido neste servidor" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Estanse analizando os ficheiros. Agarda." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Análise actual" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/gl/files_trashbin.po b/l10n/gl/files_trashbin.po new file mode 100644 index 00000000000..be7e4127d3a --- /dev/null +++ b/l10n/gl/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nome" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 cartafol" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} cartafoles" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ficheiro" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} ficheiros" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Restablecer" diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po index d5af9d142a9..ccfa410e29f 100644 --- a/l10n/gl/settings.po +++ b/l10n/gl/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "Non é posíbel engadir o usuario ao grupo %s" msgid "Unable to remove user from group %s" msgstr "Non é posíbel eliminar o usuario do grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactivar" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activar" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Erro" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Gardando..." @@ -114,6 +142,10 @@ msgstr "Consulte a páxina do aplicativo en apps.owncloud.com" msgid "-licensed by " msgstr "-licenciado por" +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualizar" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentación do usuario" @@ -265,6 +297,14 @@ msgstr "Grupo Admin" msgid "Storage" msgstr "Almacenamento" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Predeterminado" diff --git a/l10n/gl/user_ldap.po b/l10n/gl/user_ldap.po index 66d3c446382..fe74411b941 100644 --- a/l10n/gl/user_ldap.po +++ b/l10n/gl/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Fallou o borrado" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Servidor" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN do usuario" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Contrasinal" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Para o acceso anónimo deixe o DN e o contrasinal baleiros." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro de acceso de usuarios" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar a marca de posición %%uid, p.ex «uid=%%uid»" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtro da lista de usuarios" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Define o filtro a aplicar cando se recompilan os usuarios." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sen ningunha marca de posición, como p.ex «objectClass=persoa»." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define o filtro a aplicar cando se recompilan os grupos." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix»." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Porto" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Base da árbore de usuarios" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Base da árbore de grupo" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asociación de grupos e membros" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Non empregalo para conexións SSL: fallará." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Desactiva a validación do certificado SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Non se recomenda. Só para probas." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Campo de mostra do nome de usuario" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Campo de mostra do nome de grupo" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "en bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "en segundos. Calquera cambio baleira a caché." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Campo de mostra do nome de usuario" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Base da árbore de usuarios" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Campo de mostra do nome de grupo" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Base da árbore de grupo" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asociación de grupos e membros" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "en bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixar baleiro para o nome de usuario (predeterminado). Noutro caso, especifique un atributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Axuda" diff --git a/l10n/he/core.po b/l10n/he/core.po index c3ae441a83c..8a781cb282f 100644 --- a/l10n/he/core.po +++ b/l10n/he/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -160,59 +160,59 @@ msgstr "נובמבר" msgid "December" msgstr "דצמבר" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "הגדרות" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "שניות" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "לפני דקה אחת" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "לפני {minutes} דקות" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "לפני שעה" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "לפני {hours} שעות" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "היום" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "אתמול" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "לפני {days} ימים" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "חודש שעבר" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "לפני {months} חודשים" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "חודשים" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "שנה שעברה" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "שנים" @@ -257,7 +257,7 @@ msgstr "הקובץ הנדרש {file} אינו מותקן!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "שתף" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -545,7 +545,7 @@ msgstr "סיום התקנה" msgid "web services under your control" msgstr "שירותי רשת בשליטתך" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "התנתקות" diff --git a/l10n/he/files.po b/l10n/he/files.po index 60b53f30b7d..ed74dc9066f 100644 --- a/l10n/he/files.po +++ b/l10n/he/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "לא הועלה קובץ. טעות בלתי מזוהה." @@ -70,11 +56,11 @@ msgstr "תיקייה זמנית חסרה" msgid "Failed to write to disk" msgstr "הכתיבה לכונן נכשלה" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -82,15 +68,15 @@ msgstr "" msgid "Files" msgstr "קבצים" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "הסר שיתוף" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "מחיקה" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "שינוי שם" @@ -114,7 +100,7 @@ msgstr "ביטול" msgid "replaced {new_name}" msgstr "{new_name} הוחלף" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "ביטול" @@ -122,13 +108,9 @@ msgstr "ביטול" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} הוחלף ב־{old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "בוטל שיתופם של {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} נמחקו" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "שגיאת העלאה" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "סגירה" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "ממתין" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "קובץ אחד נשלח" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} קבצים נשלחים" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "ההעלאה בוטלה." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "קישור אינו יכול להיות ריק." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} קבצים נסרקו" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "אירעה שגיאה במהלך הסריקה" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "שם" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "גודל" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "זמן שינוי" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "תיקייה אחת" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} תיקיות" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "קובץ אחד" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} קבצים" @@ -287,32 +261,40 @@ msgstr "תיקייה" msgid "From link" msgstr "מקישור" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "ביטול ההעלאה" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "אין כאן שום דבר. אולי ברצונך להעלות משהו?" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "הורדה" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "העלאה גדולה מידי" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "הקבצים נסרקים, נא להמתין." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "הסריקה הנוכחית" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/he/files_trashbin.po b/l10n/he/files_trashbin.po new file mode 100644 index 00000000000..e2f9372e88e --- /dev/null +++ b/l10n/he/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "שם" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "תיקייה אחת" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} תיקיות" + +#: js/trash.js:120 +msgid "1 file" +msgstr "קובץ אחד" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} קבצים" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/he/settings.po b/l10n/he/settings.po index 53f1026fb77..cceb07b9d17 100644 --- a/l10n/he/settings.po +++ b/l10n/he/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "לא ניתן להוסיף משתמש לקבוצה %s" msgid "Unable to remove user from group %s" msgstr "לא ניתן להסיר משתמש מהקבוצה %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "בטל" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "הפעל" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "שגיאה" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "שומר.." @@ -115,6 +143,10 @@ msgstr "צפה בעמוד הישום ב apps.owncloud.com" msgid "-licensed by " msgstr "ברישיון לטובת " +#: templates/apps.php:31 +msgid "Update" +msgstr "עדכון" + #: templates/help.php:3 msgid "User Documentation" msgstr "תיעוד משתמש" @@ -266,6 +298,14 @@ msgstr "מנהל הקבוצה" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/he/user_ldap.po b/l10n/he/user_ldap.po index ec42e5a0854..54ede62468b 100644 --- a/l10n/he/user_ldap.po +++ b/l10n/he/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "מחיקה נכשלה" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "מארח" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN משתמש" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "סיסמא" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "לגישה אנונימית, השאר את הDM והסיסמא ריקים." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "סנן כניסת משתמש" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "סנן רשימת משתמשים" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "סנן קבוצה" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "בבתים" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "בשניות. שינוי מרוקן את המטמון." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "בבתים" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "עזרה" diff --git a/l10n/hi/files.po b/l10n/hi/files.po index 0c74c7074fb..c56da3dc54c 100644 --- a/l10n/hi/files.po +++ b/l10n/hi/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 16:02+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,20 +17,6 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -66,11 +52,11 @@ msgstr "" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -78,15 +64,15 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -110,7 +96,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -118,12 +104,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -148,86 +130,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -283,32 +257,40 @@ msgstr "" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/hi/files_trashbin.po b/l10n/hi/files_trashbin.po new file mode 100644 index 00000000000..ecec4c0cae6 --- /dev/null +++ b/l10n/hi/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/hi/settings.po b/l10n/hi/settings.po index 9af2a151483..58343582a26 100644 --- a/l10n/hi/settings.po +++ b/l10n/hi/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -75,14 +75,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -111,6 +139,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -262,6 +294,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/hi/user_ldap.po b/l10n/hi/user_ldap.po index 012f8d3f3aa..7eb23a9a108 100644 --- a/l10n/hi/user_ldap.po +++ b/l10n/hi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "" diff --git a/l10n/hr/core.po b/l10n/hr/core.po index 2959d09753c..30f2d56afb1 100644 --- a/l10n/hr/core.po +++ b/l10n/hr/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -159,59 +159,59 @@ msgstr "Studeni" msgid "December" msgstr "Prosinac" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Postavke" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekundi prije" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "danas" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "jučer" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "prošli mjesec" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "mjeseci" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "prošlu godinu" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "godina" @@ -256,7 +256,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Podijeli" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -544,7 +544,7 @@ msgstr "Završi postavljanje" msgid "web services under your control" msgstr "web usluge pod vašom kontrolom" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Odjava" diff --git a/l10n/hr/files.po b/l10n/hr/files.po index edf64baef15..7a03f6b1977 100644 --- a/l10n/hr/files.po +++ b/l10n/hr/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: hr\n" "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;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -69,11 +55,11 @@ msgstr "Nedostaje privremena mapa" msgid "Failed to write to disk" msgstr "Neuspjelo pisanje na disk" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Datoteke" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Prekini djeljenje" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Briši" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Promjeni ime" @@ -113,7 +99,7 @@ msgstr "odustani" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "vrati" @@ -121,12 +107,8 @@ msgstr "vrati" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nemoguće poslati datoteku jer je prazna ili je direktorij" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Pogreška pri slanju" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zatvori" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "U tijeku" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 datoteka se učitava" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Slanje poništeno." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "grečka prilikom skeniranja" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Naziv" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Veličina" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Zadnja promjena" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -286,32 +260,40 @@ msgstr "mapa" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Prekini upload" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nema ničega u ovoj mapi. Pošalji nešto!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Preuzmi" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Prijenos je preobiman" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Datoteke koje pokušavate prenijeti prelaze maksimalnu veličinu za prijenos datoteka na ovom poslužitelju." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Datoteke se skeniraju, molimo pričekajte." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Trenutno skeniranje" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/hr/files_trashbin.po b/l10n/hr/files_trashbin.po new file mode 100644 index 00000000000..0665783c041 --- /dev/null +++ b/l10n/hr/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"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;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Ime" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/hr/settings.po b/l10n/hr/settings.po index a8be98c5afb..af697fb7817 100644 --- a/l10n/hr/settings.po +++ b/l10n/hr/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Isključi" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Uključi" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Greška" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Spremanje..." @@ -114,6 +142,10 @@ msgstr "Pogledajte stranicu s aplikacijama na apps.owncloud.com" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -265,6 +297,14 @@ msgstr "Grupa Admin" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/hr/user_ldap.po b/l10n/hr/user_ldap.po index 25cb374e51f..f1c4515d4d2 100644 --- a/l10n/hr/user_ldap.po +++ b/l10n/hr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: hr\n" "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;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pomoć" diff --git a/l10n/hu_HU/core.po b/l10n/hu_HU/core.po index 4a9be1afdf6..a30b6c37d61 100644 --- a/l10n/hu_HU/core.po +++ b/l10n/hu_HU/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -160,59 +160,59 @@ msgstr "november" msgid "December" msgstr "december" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Beállítások" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "pár másodperce" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 perce" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} perce" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 órája" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} órája" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "ma" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "tegnap" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} napja" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "múlt hónapban" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} hónapja" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "több hónapja" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "tavaly" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "több éve" @@ -257,7 +257,7 @@ msgstr "A szükséges fájl: {file} nincs telepítve!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Megosztás" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -545,7 +545,7 @@ msgstr "A beállítások befejezése" msgid "web services under your control" msgstr "webszolgáltatások saját kézben" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Kilépés" diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po index d5983f63946..595e4cd8217 100644 --- a/l10n/hu_HU/files.po +++ b/l10n/hu_HU/files.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 08:37+0000\n" -"Last-Translator: akoscomp \n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,20 +24,6 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Nem sikerült %s áthelyezése" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Nem lehet átnevezni a fájlt" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nem történt feltöltés. Ismeretlen hiba" @@ -73,11 +59,11 @@ msgstr "Hiányzik egy ideiglenes mappa" msgid "Failed to write to disk" msgstr "Nem sikerült a lemezre történő írás" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Nincs elég szabad hely." +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Nincs elég szabad hely" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Érvénytelen mappa." @@ -85,15 +71,15 @@ msgstr "Érvénytelen mappa." msgid "Files" msgstr "Fájlok" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Megosztás visszavonása" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Törlés" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Átnevezés" @@ -117,7 +103,7 @@ msgstr "mégse" msgid "replaced {new_name}" msgstr "a(z) {new_name} állományt kicseréltük" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "visszavonás" @@ -125,13 +111,9 @@ msgstr "visszavonás" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} fájlt kicseréltük ezzel: {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} fájl megosztása visszavonva" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} fájl törölve" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -155,86 +137,78 @@ msgstr "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhat msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "A tároló majdnem tele van ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Feltöltési hiba" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Bezárás" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Folyamatban" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fájl töltődik föl" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} fájl töltődik föl" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "A feltöltést megszakítottuk." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Az URL nem lehet semmi." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Érvénytelen mappanév. A név használata csak a Owncloud számára lehetséges." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} fájlt találtunk" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "Hiba a fájllista-ellenőrzés során" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Név" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Méret" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Módosítva" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappa" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mappa" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fájl" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fájl" @@ -290,32 +264,40 @@ msgstr "Mappa" msgid "From link" msgstr "Feltöltés linkről" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "A feltöltés megszakítása" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Itt nincs semmi. Töltsön fel valamit!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Letöltés" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "A feltöltés túl nagy" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "A fájllista ellenőrzése zajlik, kis türelmet!" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Ellenőrzés alatt" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/hu_HU/files_trashbin.po b/l10n/hu_HU/files_trashbin.po new file mode 100644 index 00000000000..5cabef3a633 --- /dev/null +++ b/l10n/hu_HU/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu_HU\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Név" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mappa" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mappa" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fájl" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} fájl" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Visszaállítás" diff --git a/l10n/hu_HU/settings.po b/l10n/hu_HU/settings.po index 5aa7fcfb013..4be00602dd8 100644 --- a/l10n/hu_HU/settings.po +++ b/l10n/hu_HU/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "A felhasználó nem adható hozzá ehhez a csoporthoz: %s" msgid "Unable to remove user from group %s" msgstr "A felhasználó nem távolítható el ebből a csoportból: %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Letiltás" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Engedélyezés" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Hiba" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Mentés..." @@ -114,6 +142,10 @@ msgstr "Lásd apps.owncloud.com, alkalmazások oldal" msgid "-licensed by " msgstr "-a jogtuladonos " +#: templates/apps.php:31 +msgid "Update" +msgstr "Frissítés" + #: templates/help.php:3 msgid "User Documentation" msgstr "Felhasználói leírás" @@ -265,6 +297,14 @@ msgstr "Csoportadminisztrátor" msgid "Storage" msgstr "Tárhely" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Alapértelmezett" diff --git a/l10n/hu_HU/user_ldap.po b/l10n/hu_HU/user_ldap.po index 86496480614..83d3b7c227e 100644 --- a/l10n/hu_HU/user_ldap.po +++ b/l10n/hu_HU/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-20 00:05+0100\n" -"PO-Revision-Date: 2013-01-19 15:57+0000\n" -"Last-Translator: Laszlo Tornoci \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,58 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "A törlés nem sikerült" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Kiszolgáló" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "A protokoll előtag elhagyható, kivéve, ha SSL-t kíván használni. Ebben az esetben kezdje így: ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN-gyökér" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Soronként egy DN-gyökér" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "A Haladó fülre kattintva külön DN-gyökér állítható be a felhasználók és a csoportok számára" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "A kapcsolódó felhasználó DN-je" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Annak a felhasználónak a DN-je, akinek a nevében bejelentkezve kapcsolódunk a kiszolgálóhoz, pl. uid=agent,dc=example,dc=com. Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Jelszó" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Szűrő a bejelentkezéshez" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "használja az %%uid változót, pl. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "A felhasználók szűrője" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Ez a szűrő érvényes a felhasználók listázásakor." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "itt ne használjon változót, pl. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "A csoportok szűrője" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Ez a szűrő érvényes a csoportok listázásakor." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "itt ne használjunk változót, pl. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "A felhasználói fa gyökere" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Soronként egy felhasználói fa gyökerét adhatjuk meg" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "A csoportfa gyökere" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Soronként egy csoportfa gyökerét adhatjuk meg" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "A csoporttagság attribútuma" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Használjunk TLS-t" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Ne ellenőrizzük az SSL-tanúsítvány érvényességét" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nem javasolt, csak tesztelésre érdemes használni." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "A felhasználónév mezője" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "A csoport nevének mezője" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "bájtban" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "másodpercben. A változtatás törli a cache tartalmát." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "A felhasználónév mezője" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "A felhasználói fa gyökere" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Soronként egy felhasználói fa gyökerét adhatjuk meg" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "A csoport nevének mezője" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "A csoportfa gyökere" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Soronként egy csoportfa gyökerét adhatjuk meg" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "A csoporttagság attribútuma" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "bájtban" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Súgó" diff --git a/l10n/ia/core.po b/l10n/ia/core.po index 0c74f327700..6359a737f3e 100644 --- a/l10n/ia/core.po +++ b/l10n/ia/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-30 23:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -253,7 +253,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Compartir" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" diff --git a/l10n/ia/files.po b/l10n/ia/files.po index b1a67c83777..43dd321da08 100644 --- a/l10n/ia/files.po +++ b/l10n/ia/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -68,11 +54,11 @@ msgstr "Manca un dossier temporari" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "Files" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Deler" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -112,7 +98,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -120,12 +106,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Clauder" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nomine" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimension" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificate" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -285,32 +259,40 @@ msgstr "Dossier" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nihil hic. Incarga alcun cosa!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Discargar" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Incargamento troppo longe" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ia/files_trashbin.po b/l10n/ia/files_trashbin.po new file mode 100644 index 00000000000..3d86f721da7 --- /dev/null +++ b/l10n/ia/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ia\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nomine" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ia/settings.po b/l10n/ia/settings.po index 8a5f778dd98..f465615a985 100644 --- a/l10n/ia/settings.po +++ b/l10n/ia/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -113,6 +141,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualisar" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ia/user_ldap.po b/l10n/ia/user_ldap.po index 6a131310437..82ab2dd2acb 100644 --- a/l10n/ia/user_ldap.po +++ b/l10n/ia/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Adjuta" diff --git a/l10n/id/core.po b/l10n/id/core.po index e3dcf88b98d..17776e800e2 100644 --- a/l10n/id/core.po +++ b/l10n/id/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -159,59 +159,59 @@ msgstr "Nopember" msgid "December" msgstr "Desember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Setelan" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "beberapa detik yang lalu" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 menit lalu" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hari ini" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "kemarin" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "bulan kemarin" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "beberapa bulan lalu" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "tahun kemarin" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "beberapa tahun lalu" @@ -256,7 +256,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "berbagi" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -544,7 +544,7 @@ msgstr "Selesaikan instalasi" msgid "web services under your control" msgstr "web service dibawah kontrol anda" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Keluar" diff --git a/l10n/id/files.po b/l10n/id/files.po index 50113614716..67a86d94ba0 100644 --- a/l10n/id/files.po +++ b/l10n/id/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -69,11 +55,11 @@ msgstr "Kehilangan folder temporer" msgid "Failed to write to disk" msgstr "Gagal menulis ke disk" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Berkas" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "batalkan berbagi" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Hapus" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -113,7 +99,7 @@ msgstr "batalkan" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "batal dikerjakan" @@ -121,12 +107,8 @@ msgstr "batal dikerjakan" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Gagal mengunggah berkas anda karena berupa direktori atau mempunyai ukuran 0 byte" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Terjadi Galat Pengunggahan" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "tutup" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Menunggu" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Pengunggahan dibatalkan." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "tautan tidak boleh kosong" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nama" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Ukuran" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -286,32 +260,40 @@ msgstr "Folder" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Batal mengunggah" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Tidak ada apa-apa di sini. Unggah sesuatu!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Unduh" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Unggahan terlalu besar" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Berkas yang anda coba unggah melebihi ukuran maksimum untuk pengunggahan berkas di server ini." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Berkas sedang dipindai, silahkan tunggu." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Sedang memindai" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/id/files_trashbin.po b/l10n/id/files_trashbin.po new file mode 100644 index 00000000000..29afd3eefda --- /dev/null +++ b/l10n/id/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "nama" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/id/settings.po b/l10n/id/settings.po index bcaf1c7afee..92aab7dfbf7 100644 --- a/l10n/id/settings.po +++ b/l10n/id/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "NonAktifkan" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktifkan" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "kesalahan" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Menyimpan..." @@ -115,6 +143,10 @@ msgstr "Lihat halaman aplikasi di apps.owncloud.com" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Pembaruan" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -266,6 +298,14 @@ msgstr "Admin Grup" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/id/user_ldap.po b/l10n/id/user_ldap.po index d1b6b34abf1..ed63af8cccb 100644 --- a/l10n/id/user_ldap.po +++ b/l10n/id/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:19+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "penghapusan gagal" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "kata kunci" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "gunakan saringan login" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "saringan grup" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "port" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "gunakan TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "jangan gunakan untuk koneksi SSL, itu akan gagal." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "matikan validasi sertivikat SSL" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "tidak disarankan, gunakan hanya untuk pengujian." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "dalam bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "dalam detik. perubahan mengosongkan cache" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "dalam bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "bantuan" diff --git a/l10n/id/user_webdavauth.po b/l10n/id/user_webdavauth.po index 409d046d03e..9ae62e5a2cf 100644 --- a/l10n/id/user_webdavauth.po +++ b/l10n/id/user_webdavauth.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 02:30+0000\n" +"Last-Translator: w41l \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,15 +20,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Otentikasi WebDAV" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud akan mengirimkan informasi pengguna ke URL ini. Pengaya akan mengecek respon dan menginterpretasikan kode status HTTP 401 serta 403 sebagai informasi yang keliru, sedangkan respon lainnya dianggap benar." diff --git a/l10n/is/core.po b/l10n/is/core.po index 4916011fc43..a1d13cee06d 100644 --- a/l10n/is/core.po +++ b/l10n/is/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "Nóvember" msgid "December" msgstr "Desember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Stillingar" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sek síðan" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 min síðan" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} min síðan" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Fyrir 1 klst." -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "fyrir {hours} klst." -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "í dag" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "í gær" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dagar síðan" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "síðasta mánuði" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "fyrir {months} mánuðum" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "mánuðir síðan" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "síðasta ári" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "árum síðan" @@ -254,7 +254,7 @@ msgstr "Umbeðina skráin {file} ekki tiltæk!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Deila" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -542,7 +542,7 @@ msgstr "Virkja uppsetningu" msgid "web services under your control" msgstr "vefþjónusta undir þinni stjórn" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Útskrá" diff --git a/l10n/is/files.po b/l10n/is/files.po index bd387e20c3f..f2e66b04646 100644 --- a/l10n/is/files.po +++ b/l10n/is/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Gat ekki fært %s - Skrá með þessu nafni er þegar til" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Gat ekki fært %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Gat ekki endurskýrt skrá" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Engin skrá var send inn. Óþekkt villa." @@ -67,11 +53,11 @@ msgstr "Vantar bráðabirgðamöppu" msgid "Failed to write to disk" msgstr "Tókst ekki að skrifa á disk" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Ekki nægt pláss tiltækt" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Ógild mappa." @@ -79,15 +65,15 @@ msgstr "Ógild mappa." msgid "Files" msgstr "Skrár" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Hætta deilingu" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eyða" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Endurskýra" @@ -111,7 +97,7 @@ msgstr "hætta við" msgid "replaced {new_name}" msgstr "endurskýrði {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "afturkalla" @@ -119,13 +105,9 @@ msgstr "afturkalla" msgid "replaced {new_name} with {old_name}" msgstr "yfirskrifaði {new_name} með {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Hætti við deilingu á {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "eyddi {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Innsending á skrá mistókst, hugsanlega sendir þú möppu eða skráin er 0 bæti." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Villa við innsendingu" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Loka" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Bíður" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 skrá innsend" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} skrár innsendar" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Hætt við innsendingu." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Vefslóð má ekki vera tóm." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Óleyfilegt nafn á möppu. Nafnið 'Shared' er frátekið fyrir Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} skrár skimaðar" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "villa við skimun" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nafn" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Stærð" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Breytt" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappa" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} möppur" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 skrá" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} skrár" @@ -284,32 +258,40 @@ msgstr "Mappa" msgid "From link" msgstr "Af tengli" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Hætta við innsendingu" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ekkert hér. Settu eitthvað inn!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Niðurhal" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Innsend skrá er of stór" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Verið er að skima skrár, vinsamlegast hinkraðu." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Er að skima" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/is/files_trashbin.po b/l10n/is/files_trashbin.po new file mode 100644 index 00000000000..1fc4aad5716 --- /dev/null +++ b/l10n/is/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nafn" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mappa" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} möppur" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 skrá" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} skrár" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/is/settings.po b/l10n/is/settings.po index 15f488a9b26..07750ab9e75 100644 --- a/l10n/is/settings.po +++ b/l10n/is/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "Ekki tókst að bæta notenda við hópinn %s" msgid "Unable to remove user from group %s" msgstr "Ekki tókst að fjarlægja notanda úr hópnum %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Gera óvirkt" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Virkja" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Villa" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Er að vista ..." @@ -112,6 +140,10 @@ msgstr "Skoða síðu forrits hjá apps.owncloud.com" msgid "-licensed by " msgstr "-leyfi skráð af " +#: templates/apps.php:31 +msgid "Update" +msgstr "Uppfæra" + #: templates/help.php:3 msgid "User Documentation" msgstr "Notenda handbók" @@ -263,6 +295,14 @@ msgstr "Hópstjóri" msgid "Storage" msgstr "gagnapláss" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Sjálfgefið" diff --git a/l10n/is/user_ldap.po b/l10n/is/user_ldap.po index 98dfe70c84e..7cfe3d0a425 100644 --- a/l10n/is/user_ldap.po +++ b/l10n/is/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Netþjónn" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Lykilorð" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hjálp" diff --git a/l10n/it/core.po b/l10n/it/core.po index 77ec770b0d5..b6f69691eec 100644 --- a/l10n/it/core.po +++ b/l10n/it/core.po @@ -6,15 +6,16 @@ # , 2011. # Francesco Apruzzese , 2011, 2012. # , 2011, 2012. +# , 2013. # , 2011. # Vincenzo Reale , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: pgcloud \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -160,59 +161,59 @@ msgstr "Novembre" msgid "December" msgstr "Dicembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Impostazioni" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "secondi fa" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "Un minuto fa" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minuti fa" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 ora fa" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} ore fa" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "oggi" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ieri" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} giorni fa" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "mese scorso" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} mesi fa" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "mesi fa" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "anno scorso" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "anni fa" @@ -257,11 +258,11 @@ msgstr "Il file richiesto {file} non è installato!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Condividi" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Condivisi" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -545,7 +546,7 @@ msgstr "Termina la configurazione" msgid "web services under your control" msgstr "servizi web nelle tue mani" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Esci" @@ -557,7 +558,7 @@ msgstr "Accesso automatico rifiutato." msgid "" "If you did not change your password recently, your account may be " "compromised!" -msgstr "Se non hai cambiato la password recentemente, il tuo account potrebbe essere stato compromesso." +msgstr "Se non hai cambiato la password recentemente, il tuo account potrebbe essere compromesso." #: templates/login.php:13 msgid "Please change your password to secure your account again." @@ -586,4 +587,4 @@ msgstr "successivo" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "Aggiornamento di ownCloud alla versione %s in corso, potrebbe richiedere del tempo." +msgstr "Aggiornamento di ownCloud alla versione %s in corso, ciò potrebbe richiedere del tempo." diff --git a/l10n/it/files.po b/l10n/it/files.po index 0a161d8c6e3..13d26fc18f2 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-28 00:04+0100\n" -"PO-Revision-Date: 2013-01-27 00:03+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Impossibile spostare %s - un file con questo nome esiste già" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Impossibile spostare %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Impossibile rinominare il file" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nessun file è stato inviato. Errore sconosciuto" @@ -70,11 +56,11 @@ msgstr "Cartella temporanea mancante" msgid "Failed to write to disk" msgstr "Scrittura su disco non riuscita" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Spazio di archiviazione insufficiente" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Spazio disponibile insufficiente" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Cartella non valida." @@ -82,15 +68,15 @@ msgstr "Cartella non valida." msgid "Files" msgstr "File" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Rimuovi condivisione" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Elimina" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Rinomina" @@ -114,7 +100,7 @@ msgstr "annulla" msgid "replaced {new_name}" msgstr "sostituito {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "annulla" @@ -122,13 +108,9 @@ msgstr "annulla" msgid "replaced {new_name} with {old_name}" msgstr "sostituito {new_name} con {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "non condivisi {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "eliminati {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "esegui l'operazione di eliminazione" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "Lo spazio di archiviazione è pieno, i file non possono essere più aggi msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Il tuo scaricamento è in fase di preparazione. Ciò potrebbe richiedere del tempo se i file sono grandi." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Errore di invio" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Chiudi" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "In corso" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 file in fase di caricamento" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} file in fase di caricamentoe" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Invio annullato" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "L'URL non può essere vuoto." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome della cartella non valido. L'uso di 'Shared' è riservato da ownCloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} file analizzati" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "errore durante la scansione" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimensione" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificato" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 cartella" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} cartelle" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 file" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} file" @@ -287,32 +261,40 @@ msgstr "Cartella" msgid "From link" msgstr "Da collegamento" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Cestino" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Annulla invio" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Non c'è niente qui. Carica qualcosa!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Scarica" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Il file caricato è troppo grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "I file che stai provando a caricare superano la dimensione massima consentita su questo server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Scansione dei file in corso, attendi" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Scansione corrente" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Aggiornamento della cache del filesystem in corso..." diff --git a/l10n/it/files_trashbin.po b/l10n/it/files_trashbin.po new file mode 100644 index 00000000000..8efe697487c --- /dev/null +++ b/l10n/it/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Vincenzo Reale , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "esegui operazione di ripristino" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nome" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Eliminati" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 cartella" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} cartelle" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 file" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} file" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Qui non c'è niente. Il tuo cestino è vuoto." + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Ripristina" diff --git a/l10n/it/settings.po b/l10n/it/settings.po index 6f1b11dd3f2..dbb539c7bb5 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -9,14 +9,14 @@ # Jan-Christoph Borchardt , 2011. # , 2011-2013. # , 2011. -# Vincenzo Reale , 2012. +# Vincenzo Reale , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-01 23:30+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,14 +82,42 @@ msgstr "Impossibile aggiungere l'utente al gruppo %s" msgid "Unable to remove user from group %s" msgstr "Impossibile rimuovere l'utente dal gruppo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Impossibile aggiornate l'applicazione." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Aggiorna a {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Disabilita" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Abilita" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Attendere..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Aggiornamento in corso..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Errore durante l'aggiornamento" + +#: js/apps.js:87 +msgid "Error" +msgstr "Errore" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Aggiornato" + #: js/personal.js:69 msgid "Saving..." msgstr "Salvataggio in corso..." @@ -118,6 +146,10 @@ msgstr "Vedere la pagina dell'applicazione su apps.owncloud.com" msgid "-licensed by " msgstr "-licenziato da " +#: templates/apps.php:31 +msgid "Update" +msgstr "Aggiorna" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentazione utente" @@ -235,7 +267,7 @@ msgstr "Sviluppato dalla \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Eliminazione della configurazione del server non riuscita" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "La configurazione è valida e la connessione può essere stabilita." + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "La configurazione non è valida. Controlla il log di ownCloud per ulteriori dettagli." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Eliminazione non riuscita" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Vuoi recuperare le impostazioni dalla configurazione recente del server?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Vuoi mantenere le impostazioni?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Impossibile aggiungere la configurazione del server" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Prova di connessione riuscita" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Prova di connessione non riuscita" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Vuoi davvero eliminare la configurazione attuale del server?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Conferma l'eliminazione" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "Avviso: il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Configurazione del server" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Aggiungi configurazione del server" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Un DN base per riga" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN utente" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Il DN per il client dell'utente con cui deve essere associato, ad esempio uid=agent,dc=example,dc=com. Per l'accesso anonimo, lasciare vuoti i campi DN e Password" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Password" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Per l'accesso anonimo, lasciare vuoti i campi DN e Password" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro per l'accesso utente" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "utilizza il segnaposto %%uid, ad esempio \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtro per l'elenco utenti" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Specifica quale filtro utilizzare durante il recupero degli utenti." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "senza nessun segnaposto, per esempio \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtro per il gruppo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Specifica quale filtro utilizzare durante il recupero dei gruppi." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "senza nessun segnaposto, per esempio \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Impostazioni di connessione" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Configurazione attiva" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Se deselezionata, questa configurazione sarà saltata." + +#: templates/settings.php:34 msgid "Port" msgstr "Porta" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Struttura base dell'utente" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Host di backup (Replica)" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Un DN base utente per riga" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Fornisci un host di backup opzionale. Deve essere una replica del server AD/LDAP principale." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Struttura base del gruppo" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Porta di backup (Replica)" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Un DN base gruppo per riga" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Disabilita server principale" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Associazione gruppo-utente " +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Se abilitata, ownCloud si collegherà solo al server di replica." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usa TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Non utilizzare per le connessioni SSL, fallirà." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Case insensitve LDAP server (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Disattiva il controllo del certificato SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Non consigliato, utilizzare solo per test." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Campo per la visualizzazione del nome utente" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "L'attributo LDAP da usare per generare il nome dell'utente ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Campo per la visualizzazione del nome del gruppo" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "L'attributo LDAP da usare per generare il nome del gruppo ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "in byte" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "in secondi. Il cambio svuota la cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Impostazioni delle cartelle" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Campo per la visualizzazione del nome utente" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "L'attributo LDAP da usare per generare il nome dell'utente ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Struttura base dell'utente" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Un DN base utente per riga" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Attributi di ricerca utente" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Opzionale; un attributo per riga" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Campo per la visualizzazione del nome del gruppo" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "L'attributo LDAP da usare per generare il nome del gruppo ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Struttura base del gruppo" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Un DN base gruppo per riga" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Attributi di ricerca gruppo" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Associazione gruppo-utente " + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "Attributi speciali" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "in byte" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lascia vuoto per il nome utente (predefinito). Altrimenti, specifica un attributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Aiuto" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 76db5f78f9b..e2eb92b6806 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "11月" msgid "December" msgstr "12月" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "設定" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "秒前" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 分前" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} 分前" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 時間前" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} 時間前" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "今日" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "昨日" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} 日前" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "一月前" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} 月前" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "月前" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "一年前" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "年前" @@ -255,11 +255,11 @@ msgstr "必要なファイル {file} がインストールされていません #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "共有" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "共有中" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -543,7 +543,7 @@ msgstr "セットアップを完了します" msgid "web services under your control" msgstr "管理下にあるウェブサービス" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "ログアウト" diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po index 5a4b882085b..97f0b6b3b73 100644 --- a/l10n/ja_JP/files.po +++ b/l10n/ja_JP/files.po @@ -7,13 +7,14 @@ # Daisuke Deguchi , 2012-2013. # , 2012. # , 2012. +# YANO Tetsu , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 01:10+0000\n" -"Last-Translator: Daisuke Deguchi \n" +"POT-Creation-Date: 2013-02-04 00:04+0100\n" +"PO-Revision-Date: 2013-02-03 04:30+0000\n" +"Last-Translator: tt yn \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,60 +22,46 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s を移動できませんでした ― この名前のファイルはすでに存在します" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "%s を移動できませんでした" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "ファイル名の変更ができません" - -#: ajax/upload.php:17 +#: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ファイルは何もアップロードされていません。不明なエラー" -#: ajax/upload.php:24 +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" msgstr "エラーはありません。ファイルのアップロードは成功しました" -#: ajax/upload.php:25 +#: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:" -#: ajax/upload.php:27 +#: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "アップロードされたファイルはHTMLのフォームに設定されたMAX_FILE_SIZEに設定されたサイズを超えています" -#: ajax/upload.php:29 +#: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" msgstr "ファイルは一部分しかアップロードされませんでした" -#: ajax/upload.php:30 +#: ajax/upload.php:32 msgid "No file was uploaded" msgstr "ファイルはアップロードされませんでした" -#: ajax/upload.php:31 +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "テンポラリフォルダが見つかりません" -#: ajax/upload.php:32 +#: ajax/upload.php:34 msgid "Failed to write to disk" msgstr "ディスクへの書き込みに失敗しました" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "ストレージに十分な空き容量がありません" +#: ajax/upload.php:52 +msgid "Not enough space available" +msgstr "利用可能なスペースが十分にありません" -#: ajax/upload.php:77 +#: ajax/upload.php:83 msgid "Invalid directory." msgstr "無効なディレクトリです。" @@ -82,15 +69,15 @@ msgstr "無効なディレクトリです。" msgid "Files" msgstr "ファイル" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "共有しない" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "削除" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "名前の変更" @@ -114,7 +101,7 @@ msgstr "キャンセル" msgid "replaced {new_name}" msgstr "{new_name} を置換" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "元に戻す" @@ -122,13 +109,9 @@ msgstr "元に戻す" msgid "replaced {new_name} with {old_name}" msgstr "{old_name} を {new_name} に置換" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "未共有 {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "削除 {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "削除を実行" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +135,78 @@ msgstr "あなたのストレージは一杯です。ファイルの更新と同 msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "あなたのストレージはほぼ一杯です({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "ダウンロードの準備中です。ファイルサイズが大きい場合は少し時間がかかるかもしれません。" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ディレクトリもしくは0バイトのファイルはアップロードできません" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "アップロードエラー" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "閉じる" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "保留" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "ファイルを1つアップロード中" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} ファイルをアップロード中" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "アップロードはキャンセルされました。" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URLは空にできません。" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無効なフォルダ名です。'Shared' の利用は ownCloud が予約済みです。" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} ファイルをスキャン" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "スキャン中のエラー" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名前" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "サイズ" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "更新日時" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 フォルダ" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} フォルダ" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ファイル" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ファイル" @@ -287,32 +262,40 @@ msgstr "フォルダ" msgid "From link" msgstr "リンク" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "ゴミ箱" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "アップロードをキャンセル" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "ここには何もありません。何かアップロードしてください。" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "ダウンロード" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "ファイルサイズが大きすぎます" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "ファイルをスキャンしています、しばらくお待ちください。" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "スキャン中" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "ファイルシステムキャッシュを更新中..." diff --git a/l10n/ja_JP/files_trashbin.po b/l10n/ja_JP/files_trashbin.po new file mode 100644 index 00000000000..fb4805b52db --- /dev/null +++ b/l10n/ja_JP/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Daisuke Deguchi , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja_JP\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "復元操作を実行する" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "名前" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "削除済み" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 フォルダ" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} フォルダ" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ファイル" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} ファイル" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "ここには何もありません。ゴミ箱は空です!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "復元" diff --git a/l10n/ja_JP/settings.po b/l10n/ja_JP/settings.po index 4871013dbf6..80f56e5c654 100644 --- a/l10n/ja_JP/settings.po +++ b/l10n/ja_JP/settings.po @@ -7,13 +7,14 @@ # Daisuke Deguchi , 2012-2013. # , 2012. # , 2012. +# YANO Tetsu , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 04:30+0000\n" +"Last-Translator: tt yn \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -79,14 +80,42 @@ msgstr "ユーザをグループ %s に追加できません" msgid "Unable to remove user from group %s" msgstr "ユーザをグループ %s から削除できません" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "アプリを更新出来ませんでした。" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "{appversion} に更新" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "無効" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "有効" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "しばらくお待ちください。" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "更新中...." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "アプリの更新中にエラーが発生" + +#: js/apps.js:87 +msgid "Error" +msgstr "エラー" + +#: js/apps.js:90 +msgid "Updated" +msgstr "更新済み" + #: js/personal.js:69 msgid "Saving..." msgstr "保存中..." @@ -115,6 +144,10 @@ msgstr "apps.owncloud.com でアプリケーションのページを見てくだ msgid "-licensed by " msgstr "-ライセンス: " +#: templates/apps.php:31 +msgid "Update" +msgstr "更新" + #: templates/help.php:3 msgid "User Documentation" msgstr "ユーザドキュメント" @@ -232,7 +265,7 @@ msgstr "ownCloud commu #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "ログイン名" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -256,7 +289,7 @@ msgstr "その他" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "表示名" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -266,6 +299,14 @@ msgstr "グループ管理者" msgid "Storage" msgstr "ストレージ" +#: templates/users.php:97 +msgid "change display name" +msgstr "表示名を変更" + +#: templates/users.php:101 +msgid "set new password" +msgstr "新しいパスワードを設定" + #: templates/users.php:137 msgid "Default" msgstr "デフォルト" diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po index 16a20c7207b..f899f457f15 100644 --- a/l10n/ja_JP/user_ldap.po +++ b/l10n/ja_JP/user_ldap.po @@ -6,13 +6,14 @@ # Daisuke Deguchi , 2012. # Daisuke Deguchi , 2012-2013. # , 2012. +# YANO Tetsu , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 05:47+0000\n" -"Last-Translator: Daisuke Deguchi \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 04:40+0000\n" +"Last-Translator: tt yn \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +21,58 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "サーバ設定の削除に失敗しました" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "設定は有効であり、接続を確立しました!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "設定は有効ですが、接続に失敗しました。サーバ設定と資格情報を確認して下さい。" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "設定は無効です。詳細は ownCloud のログを見て下さい。" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "削除に失敗しました" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "最近のサーバ設定から設定を引き継ぎますか?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "設定を保持しますか?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "サーバ設定を追加できません" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "接続テストに成功しました" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "接続テストに失敗しました" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "現在のサーバ設定を本当に削除してもよろしいですか?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "削除の確認" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +87,227 @@ msgid "" msgstr "警告: PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "サーバ設定" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "サーバ設定を追加" + +#: templates/settings.php:21 msgid "Host" msgstr "ホスト" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "ベースDN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "1行に1つのベースDN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "拡張タブでユーザとグループのベースDNを指定することができます。" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "ユーザDN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "クライアントユーザーのDNは、特定のものに結びつけることはしません。 例えば uid=agent,dc=example,dc=com. だと匿名アクセスの場合、DNとパスワードは空のままです。" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "パスワード" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "匿名アクセスの場合は、DNとパスワードを空にしてください。" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "ユーザログインフィルタ" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "ログインするときに適用するフィルターを定義する。%%uid がログイン時にユーザー名に置き換えられます。" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid プレースホルダーを利用してください。例 \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "ユーザリストフィルタ" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "ユーザーを取得するときに適用するフィルターを定義する。" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "プレースホルダーを利用しないでください。例 \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "グループフィルタ" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "グループを取得するときに適用するフィルターを定義する。" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "プレースホルダーを利用しないでください。例 \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "接続設定" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "設定はアクティブです" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "チェックを外すと、この設定はスキップされます。" + +#: templates/settings.php:34 msgid "Port" msgstr "ポート" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "ベースユーザツリー" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "バックアップ(レプリカ)ホスト" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "1行に1つのユーザベースDN" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "ベースグループツリー" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "バックアップ(レプリカ)ポート" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "1行に1つのグループベースDN" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "メインサーバを無効にする" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "グループとメンバーの関連付け" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "有効にすると、ownCloudはレプリカサーバにのみ接続します。" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLSを利用" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "SSL接続に利用しないでください、失敗します。" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "大文字/小文字を区別しないLDAPサーバ(Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "SSL証明書の確認を無効にする。" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "推奨しません、テスト目的でのみ利用してください。" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "ユーザ表示名のフィールド" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "ユーザのownCloud名の生成に利用するLDAP属性。" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "グループ表示名のフィールド" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "グループのownCloud名の生成に利用するLDAP属性。" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "バイト" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "秒。変更後にキャッシュがクリアされます。" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "ディレクトリ設定" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "ユーザ表示名のフィールド" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "ユーザのownCloud名の生成に利用するLDAP属性。" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "ベースユーザツリー" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "1行に1つのユーザベースDN" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "ユーザ検索属性" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "オプション:1行に1属性" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "グループ表示名のフィールド" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "グループのownCloud名の生成に利用するLDAP属性。" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "ベースグループツリー" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "1行に1つのグループベースDN" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "グループ検索属性" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "グループとメンバーの関連付け" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "特殊属性" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "バイト" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "ヘルプ" diff --git a/l10n/ka_GE/core.po b/l10n/ka_GE/core.po index 87ed1f83cd4..ab4062e7f60 100644 --- a/l10n/ka_GE/core.po +++ b/l10n/ka_GE/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -156,59 +156,59 @@ msgstr "ნოემბერი" msgid "December" msgstr "დეკემბერი" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "პარამეტრები" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "წამის წინ" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 წუთის წინ" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} წუთის წინ" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "დღეს" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "გუშინ" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} დღის წინ" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "გასულ თვეში" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "თვის წინ" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "ბოლო წელს" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "წლის წინ" @@ -253,7 +253,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "გაზიარება" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -541,7 +541,7 @@ msgstr "კონფიგურაციის დასრულება" msgid "web services under your control" msgstr "თქვენი კონტროლის ქვეშ მყოფი ვებ სერვისები" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "გამოსვლა" diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po index 55891c6815d..1866d1f711a 100644 --- a/l10n/ka_GE/files.po +++ b/l10n/ka_GE/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -67,11 +53,11 @@ msgstr "დროებითი საქაღალდე არ არსე msgid "Failed to write to disk" msgstr "შეცდომა დისკზე ჩაწერისას" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "ფაილები" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "გაზიარების მოხსნა" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "წაშლა" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "გადარქმევა" @@ -111,7 +97,7 @@ msgstr "უარყოფა" msgid "replaced {new_name}" msgstr "{new_name} შეცვლილია" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "დაბრუნება" @@ -119,13 +105,9 @@ msgstr "დაბრუნება" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} შეცვლილია {old_name}–ით" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "გაზიარება მოხსნილი {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "წაშლილი {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "შეცდომა ატვირთვისას" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "დახურვა" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "მოცდის რეჟიმში" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 ფაილის ატვირთვა" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} ფაილი იტვირთება" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "ატვირთვა შეჩერებულ იქნა." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} ფაილი სკანირებულია" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "შეცდომა სკანირებისას" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "სახელი" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ზომა" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "შეცვლილია" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 საქაღალდე" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} საქაღალდე" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ფაილი" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ფაილი" @@ -284,32 +258,40 @@ msgstr "საქაღალდე" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "ატვირთვის გაუქმება" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "აქ არაფერი არ არის. ატვირთე რამე!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "ჩამოტვირთვა" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "ასატვირთი ფაილი ძალიან დიდია" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "მიმდინარე სკანირება" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ka_GE/files_trashbin.po b/l10n/ka_GE/files_trashbin.po new file mode 100644 index 00000000000..92a719c9523 --- /dev/null +++ b/l10n/ka_GE/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka_GE\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "სახელი" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 საქაღალდე" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} საქაღალდე" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ფაილი" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} ფაილი" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ka_GE/settings.po b/l10n/ka_GE/settings.po index 3f35403cfab..7c1f5129d4c 100644 --- a/l10n/ka_GE/settings.po +++ b/l10n/ka_GE/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "მომხმარებლის დამატება ვერ msgid "Unable to remove user from group %s" msgstr "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "გამორთვა" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "ჩართვა" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "შეცდომა" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "შენახვა..." @@ -112,6 +140,10 @@ msgstr "ნახეთ აპლიკაციის გვერდი apps.o msgid "-licensed by " msgstr "-ლიცენსირებულია " +#: templates/apps.php:31 +msgid "Update" +msgstr "განახლება" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -263,6 +295,14 @@ msgstr "ჯგუფის ადმინისტრატორი" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ka_GE/user_ldap.po b/l10n/ka_GE/user_ldap.po index 14dbca3fc68..a84ba3cd3c8 100644 --- a/l10n/ka_GE/user_ldap.po +++ b/l10n/ka_GE/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "წაშლის ველი" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "დახმარება" diff --git a/l10n/ko/core.po b/l10n/ko/core.po index 8ba96b125ba..765fcfeba04 100644 --- a/l10n/ko/core.po +++ b/l10n/ko/core.po @@ -6,14 +6,15 @@ # , 2013. # 남자사람 , 2012. # , 2012. +# Park Shinjo , 2013. # Shinjo Park , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,26 +25,26 @@ msgstr "" #: ajax/share.php:85 #, php-format msgid "User %s shared a file with you" -msgstr "User %s 가 당신과 파일을 공유하였습니다." +msgstr "%s 님이 파일을 공유하였습니다" #: ajax/share.php:87 #, php-format msgid "User %s shared a folder with you" -msgstr "User %s 가 당신과 폴더를 공유하였습니다." +msgstr "%s 님이 폴더를 공유하였습니다" #: ajax/share.php:89 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "User %s 가 파일 \"%s\"를 당신과 공유하였습니다. 다운로드는 여기서 %s 할 수 있습니다." +msgstr "%s 님이 파일 \"%s\"을(를) 공유하였습니다. 여기에서 다운로드할 수 있습니다: %s" #: ajax/share.php:91 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "User %s 가 폴더 \"%s\"를 당신과 공유하였습니다. 다운로드는 여기서 %s 할 수 있습니다." +msgstr "%s 님이 폴더 \"%s\"을(를) 공유하였습니다. 여기에서 다운로드할 수 있습니다: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -159,59 +160,59 @@ msgstr "11월" msgid "December" msgstr "12월" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "설정" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "초 전" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1분 전" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes}분 전" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1시간 전" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours}시간 전" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "오늘" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "어제" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days}일 전" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "지난 달" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months}개월 전" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "개월 전" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "작년" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "년 전" @@ -256,11 +257,11 @@ msgstr "필요한 파일 {file}이(가) 설치되지 않았습니다!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "공유" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "공유됨" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -383,11 +384,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "업데이트가 실패하였습니다. 이 문제를 ownCloud 커뮤니티에 보고해 주십시오." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "업데이트가 성공하였습니다. ownCloud로 돌아갑니다." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -544,7 +545,7 @@ msgstr "설치 완료" msgid "web services under your control" msgstr "내가 관리하는 웹 서비스" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "로그아웃" @@ -585,4 +586,4 @@ msgstr "다음" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "ownCloud 를 버젼 %s로 업데이트 하는 중, 시간이 소요됩니다." +msgstr "ownCloud를 버전 %s(으)로 업데이트합니다. 잠시 기다려 주십시오." diff --git a/l10n/ko/files.po b/l10n/ko/files.po index 86f4240c0a1..02a13830991 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/files.po @@ -7,13 +7,14 @@ # 남자사람 , 2012. # Harim Park , 2013. # , 2012. +# Park Shinjo , 2013. # Shinjo Park , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -22,20 +23,6 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "%s 항목을 이딩시키지 못하였음" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "파일 이름바꾸기 할 수 없음" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다" @@ -71,27 +58,27 @@ msgstr "임시 폴더가 사라짐" msgid "Failed to write to disk" msgstr "디스크에 쓰지 못했습니다" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "여유 공간이 부족합니다" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." -msgstr "올바르지 않은 디렉토리입니다." +msgstr "올바르지 않은 디렉터리입니다." #: appinfo/app.php:10 msgid "Files" msgstr "파일" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "공유 해제" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "삭제" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "이름 바꾸기" @@ -115,7 +102,7 @@ msgstr "취소" msgid "replaced {new_name}" msgstr "{new_name}을(를) 대체함" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "실행 취소" @@ -123,13 +110,9 @@ msgstr "실행 취소" msgid "replaced {new_name} with {old_name}" msgstr "{old_name}이(가) {new_name}(으)로 대체됨" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} 공유 해제됨" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} 삭제됨" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -137,7 +120,7 @@ msgstr "'.' 는 올바르지 않은 파일 이름 입니다." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "파일이름은 공란이 될 수 없습니다." +msgstr "파일 이름이 비어 있을 수 없습니다." #: js/files.js:64 msgid "" @@ -147,92 +130,84 @@ msgstr "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "업로드 오류" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "닫기" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "보류 중" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "파일 1개 업로드 중" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "파일 {count}개 업로드 중" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "업로드가 취소되었습니다." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL을 입력해야 합니다." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "폴더 이름이 유효하지 않습니다. " -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "파일 {count}개 검색됨" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "검색 중 오류 발생" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "이름" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "크기" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "수정됨" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "폴더 1개" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "폴더 {count}개" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "파일 1개" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "파일 {count}개" @@ -288,32 +263,40 @@ msgstr "폴더" msgid "From link" msgstr "링크에서" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "업로드 취소" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "내용이 없습니다. 업로드할 수 있습니다!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "다운로드" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "업로드 용량 초과" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "파일을 검색하고 있습니다. 기다려 주십시오." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "현재 검색" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "파일 시스템 캐시 업그레이드 중..." diff --git a/l10n/ko/files_encryption.po b/l10n/ko/files_encryption.po index 441ba8cec4b..2988d1f0cf5 100644 --- a/l10n/ko/files_encryption.po +++ b/l10n/ko/files_encryption.po @@ -4,14 +4,14 @@ # # Translators: # 남자사람 , 2012. -# Shinjo Park , 2012. +# Shinjo Park , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 08:20+0000\n" +"Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,53 +23,53 @@ msgstr "" msgid "" "Please switch to your ownCloud client and change your encryption password to" " complete the conversion." -msgstr "" +msgstr "ownCloud로 전환한 다음 암호화에 사용할 암호를 변경하면 변환이 완료됩니다." #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "클라이언트 암호화로 변경됨" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "" +msgstr "암호화 암호를 로그인 암호로 변경" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "암호를 확인한 다음 다시 시도하십시오." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "암호화 암호를 로그인 암호로 변경할 수 없습니다" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "암호화 모드 선택:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "클라이언트 암호화 (안전하지만 웹에서 데이터에 접근할 수 없음)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "서버 암호화 (웹 및 데스크톱 클라이언트에서 데이터에 접근할 수 있음)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "없음 (암호화하지 않음)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "알림: 암호화 모드를 선택하면 다른 것으로 변경할 수 없습니다" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "사용자 지정 (사용자별 설정)" #: templates/settings.php:65 msgid "Encryption" diff --git a/l10n/ko/files_external.po b/l10n/ko/files_external.po index f43b8963773..0c7bf2da326 100644 --- a/l10n/ko/files_external.po +++ b/l10n/ko/files_external.po @@ -5,14 +5,15 @@ # Translators: # , 2013. # 남자사람 , 2012. +# Park Shinjo , 2013. # Shinjo Park , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-08 00:30+0100\n" -"PO-Revision-Date: 2013-01-07 10:07+0000\n" -"Last-Translator: aoiob4305 \n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 08:10+0000\n" +"Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,11 +29,11 @@ msgstr "접근 허가됨" msgid "Error configuring Dropbox storage" msgstr "Dropbox 저장소 설정 오류" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 msgid "Grant access" msgstr "접근 권한 부여" -#: js/dropbox.js:73 js/google.js:72 +#: js/dropbox.js:73 js/google.js:73 msgid "Fill out all required fields" msgstr "모든 필수 항목을 입력하십시오" @@ -40,22 +41,22 @@ msgstr "모든 필수 항목을 입력하십시오" msgid "Please provide a valid Dropbox app key and secret." msgstr "올바른 Dropbox 앱 키와 암호를 입력하십시오." -#: js/google.js:26 js/google.js:73 js/google.js:78 +#: js/google.js:26 js/google.js:74 js/google.js:79 msgid "Error configuring Google Drive storage" msgstr "Google 드라이브 저장소 설정 오류" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "경고\"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유애 연결이 불가능 합니다.. 시스템 관리자에게 요청하여 설치하시기 바랍니다." +msgstr "경고: \"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유 자원에 연결할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오." -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "경고PHP용 FTP 지원이 사용 불가능 하거나 설치되지 않았습니다. FTP 공유에 연결이 불가능 합니다. 시스템 관리자에게 요청하여 설치하시기 바랍니다. " +msgstr "경고: PHP FTP 지원이 비활성화되어 있거나 설치되지 않았습니다. FTP 공유를 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오." #: templates/settings.php:3 msgid "External Storage" diff --git a/l10n/ko/files_trashbin.po b/l10n/ko/files_trashbin.po new file mode 100644 index 00000000000..a87ddd6b8dd --- /dev/null +++ b/l10n/ko/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "이름" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "폴더 1개" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "폴더 {count}개" + +#: js/trash.js:120 +msgid "1 file" +msgstr "파일 1개" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "파일 {count}개" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "복원" diff --git a/l10n/ko/lib.po b/l10n/ko/lib.po index c759d43ece3..ffbaa11a4ec 100644 --- a/l10n/ko/lib.po +++ b/l10n/ko/lib.po @@ -4,14 +4,15 @@ # # Translators: # 남자사람 , 2012. +# Park Shinjo , 2013. # Shinjo Park , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 08:10+0000\n" +"Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,25 +44,25 @@ msgstr "앱" msgid "Admin" msgstr "관리자" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP 다운로드가 비활성화되었습니다." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "파일을 개별적으로 다운로드해야 합니다." -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" msgstr "파일로 돌아가기" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." msgstr "선택한 파일들은 ZIP 파일을 생성하기에 너무 큽니다." -#: helper.php:228 +#: helper.php:226 msgid "couldn't be determined" -msgstr "" +msgstr "결정할 수 없음" #: json.php:28 msgid "Application is not enabled" diff --git a/l10n/ko/settings.po b/l10n/ko/settings.po index 2236af6d9cd..62097ea4a5a 100644 --- a/l10n/ko/settings.po +++ b/l10n/ko/settings.po @@ -7,13 +7,13 @@ # 남자사람 , 2012. # Harim Park , 2013. # , 2012. -# Shinjo Park , 2012. +# Shinjo Park , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -80,14 +80,42 @@ msgstr "그룹 %s에 사용자를 추가할 수 없습니다." msgid "Unable to remove user from group %s" msgstr "그룹 %s에서 사용자를 삭제할 수 없습니다." -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "비활성화" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "활성화" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "오류" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "저장 중..." @@ -114,11 +142,15 @@ msgstr "apps.owncloud.com에 있는 앱 페이지를 참고하십시오" #: templates/apps.php:29 msgid "-licensed by " -msgstr "-라이선스 보유자 " +msgstr "-라이선스됨: " + +#: templates/apps.php:31 +msgid "Update" +msgstr "업데이트" #: templates/help.php:3 msgid "User Documentation" -msgstr "유저 문서" +msgstr "사용자 문서" #: templates/help.php:4 msgid "Administrator Documentation" @@ -134,7 +166,7 @@ msgstr "포럼" #: templates/help.php:9 msgid "Bugtracker" -msgstr "버그트래커" +msgstr "버그 트래커" #: templates/help.php:11 msgid "Commercial Support" @@ -147,11 +179,11 @@ msgstr "현재 공간 %s/%s을(를) 사용 중 #: templates/personal.php:12 msgid "Clients" -msgstr "고객" +msgstr "클라이언트" #: templates/personal.php:13 msgid "Download Desktop Clients" -msgstr "데스크탑 클라이언트 다운로드" +msgstr "데스크톱 클라이언트 다운로드" #: templates/personal.php:14 msgid "Download Android Client" @@ -215,11 +247,11 @@ msgstr "WebDAV" #: templates/personal.php:54 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "파일 매니저에서 사용자의 ownCloud에 접속하기 위해 이 주소를 사용하십시요." +msgstr "파일 관리자에서 ownCloud에 접속하려면 이 주소를 사용하십시오." #: templates/personal.php:63 msgid "Version" -msgstr "버젼" +msgstr "버전" #: templates/personal.php:65 msgid "" @@ -233,7 +265,7 @@ msgstr "ownCloud 커 #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "로그인 이름" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -257,7 +289,7 @@ msgstr "기타" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "표시 이름" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -267,6 +299,14 @@ msgstr "그룹 관리자" msgid "Storage" msgstr "저장소" +#: templates/users.php:97 +msgid "change display name" +msgstr "표시 이름 변경" + +#: templates/users.php:101 +msgid "set new password" +msgstr "새 암호 설정" + #: templates/users.php:137 msgid "Default" msgstr "기본값" diff --git a/l10n/ko/user_ldap.po b/l10n/ko/user_ldap.po index 53b9f3b081f..93e6a601aa0 100644 --- a/l10n/ko/user_ldap.po +++ b/l10n/ko/user_ldap.po @@ -5,13 +5,13 @@ # Translators: # , 2013. # 남자사람 , 2012. -# Shinjo Park , 2012. +# Shinjo Park , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -20,179 +20,293 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "삭제 실패" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "경고user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여, 둘 중 하나를 비활성화 하시기 바랍니다." +msgstr "경고: user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여 둘 중 하나만 사용하도록 하십시오." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "경고: PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "호스트" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오." -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "기본 DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "기본 DN을 한 줄에 하나씩 입력하십시오" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다." -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "사용자 DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "암호" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "익명 접근을 허용하려면 DN과 암호를 비워 두십시오." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "사용자 로그인 필터" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "로그인을 시도할 때 적용할 필터입니다. %%uid는 로그인 작업에서의 사용자 이름으로 대체됩니다." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid 자리 비움자를 사용하십시오. 예제: \"uid=%%uid\"\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "사용자 목록 필터" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "사용자를 검색할 때 적용할 필터를 정의합니다." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "그룹 필터" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "그룹을 검색할 때 적용할 필터를 정의합니다." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "포트" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "기본 사용자 트리" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "기본 그룹 트리" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "그룹-회원 연결" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLS 사용" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "SSL 연결 시 사용하는 경우 연결되지 않습니다." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "서버에서 대소문자를 구분하지 않음 (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "SSL 인증서 유효성 검사를 해제합니다." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "추천하지 않음, 테스트로만 사용하십시오." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "사용자의 표시 이름 필드" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "그룹의 표시 이름 필드" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "바이트" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "초. 항목 변경 시 캐시가 갱신됩니다." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "사용자의 표시 이름 필드" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "기본 사용자 트리" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "사용자 DN을 한 줄에 하나씩 입력하십시오" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "그룹의 표시 이름 필드" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "기본 그룹 트리" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "그룹 기본 DN을 한 줄에 하나씩 입력하십시오" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "그룹-회원 연결" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "바이트" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "도움말" diff --git a/l10n/ko/user_webdavauth.po b/l10n/ko/user_webdavauth.po index bd135598c7f..f10bd76454e 100644 --- a/l10n/ko/user_webdavauth.po +++ b/l10n/ko/user_webdavauth.po @@ -5,13 +5,14 @@ # Translators: # , 2013. # 남자사람 , 2012. +# Park Shinjo , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 08:10+0000\n" +"Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +22,7 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV 인증" #: templates/settings.php:4 msgid "URL: http://" @@ -32,4 +33,4 @@ msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud에서 이 URL로 사용자 인증 정보를 보냅니다. 이 플러그인은 응답을 확인하여 HTTP 상태 코드 401이나 403이 돌아온 경우에 잘못된 인증 정보로 간주합니다. 다른 모든 상태 코드는 올바른 인증 정보로 간주합니다." diff --git a/l10n/ku_IQ/core.po b/l10n/ku_IQ/core.po index b06563d7538..f05ab88b030 100644 --- a/l10n/ku_IQ/core.po +++ b/l10n/ku_IQ/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -156,59 +156,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "ده‌ستكاری" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "" @@ -541,7 +541,7 @@ msgstr "كۆتایی هات ده‌ستكاریه‌كان" msgid "web services under your control" msgstr "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "چوونەدەرەوە" diff --git a/l10n/ku_IQ/files.po b/l10n/ku_IQ/files.po index b3b16e0bc71..d8cb9b82a79 100644 --- a/l10n/ku_IQ/files.po +++ b/l10n/ku_IQ/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,20 +17,6 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -66,11 +52,11 @@ msgstr "" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -78,15 +64,15 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -110,7 +96,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -118,12 +104,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -148,86 +130,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "داخستن" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "ناونیشانی به‌سته‌ر نابێت به‌تاڵ بێت." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "ناو" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -283,32 +257,40 @@ msgstr "بوخچه" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "داگرتن" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ku_IQ/files_trashbin.po b/l10n/ku_IQ/files_trashbin.po new file mode 100644 index 00000000000..f1318338be4 --- /dev/null +++ b/l10n/ku_IQ/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ku_IQ\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "ناو" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ku_IQ/settings.po b/l10n/ku_IQ/settings.po index db582696a95..adb4e79653e 100644 --- a/l10n/ku_IQ/settings.po +++ b/l10n/ku_IQ/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -75,14 +75,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "چالاککردن" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "هه‌ڵه" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "پاشکه‌وتده‌کات..." @@ -111,6 +139,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "نوێکردنه‌وه" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -262,6 +294,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ku_IQ/user_ldap.po b/l10n/ku_IQ/user_ldap.po index a6c60224118..33cf75e5ea1 100644 --- a/l10n/ku_IQ/user_ldap.po +++ b/l10n/ku_IQ/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "یارمەتی" diff --git a/l10n/lb/core.po b/l10n/lb/core.po index cf61dda08ca..b365652b49a 100644 --- a/l10n/lb/core.po +++ b/l10n/lb/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Astellungen" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "vrun 1 Stonn" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "vru {hours} Stonnen" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "Läschte Mount" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "vru {months} Méint" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "Méint hier" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "Läscht Joer" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "Joren hier" @@ -254,7 +254,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Deelen" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -542,7 +542,7 @@ msgstr "Installatioun ofschléissen" msgid "web services under your control" msgstr "Web Servicer ënnert denger Kontroll" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Ausloggen" diff --git a/l10n/lb/files.po b/l10n/lb/files.po index 89400d84768..01de41c0d8e 100644 --- a/l10n/lb/files.po +++ b/l10n/lb/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -67,11 +53,11 @@ msgstr "Et feelt en temporären Dossier" msgid "Failed to write to disk" msgstr "Konnt net op den Disk schreiwen" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Net méi deelen" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Läschen" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -111,7 +97,7 @@ msgstr "ofbriechen" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "réckgängeg man" @@ -119,12 +105,8 @@ msgstr "réckgängeg man" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kann deng Datei net eroplueden well et en Dossier ass oder 0 byte grouss ass." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Fehler beim eroplueden" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zoumaachen" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Upload ofgebrach." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Numm" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Gréisst" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Geännert" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -284,32 +258,40 @@ msgstr "Dossier" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Upload ofbriechen" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Hei ass näischt. Lued eppes rop!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Eroflueden" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Upload ze grouss" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Fichieren gi gescannt, war weg." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Momentane Scan" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/lb/files_trashbin.po b/l10n/lb/files_trashbin.po new file mode 100644 index 00000000000..7ddea15d47e --- /dev/null +++ b/l10n/lb/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Numm" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/lb/settings.po b/l10n/lb/settings.po index ffe1d795a65..e2d2d5243d3 100644 --- a/l10n/lb/settings.po +++ b/l10n/lb/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Ofschalten" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aschalten" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fehler" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Speicheren..." @@ -112,6 +140,10 @@ msgstr "Kuck dir d'Applicatioun's Säit op apps.owncloud.com un" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -263,6 +295,14 @@ msgstr "Gruppen Admin" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/lb/user_ldap.po b/l10n/lb/user_ldap.po index b48c76aa9b2..a7cdcba6fe6 100644 --- a/l10n/lb/user_ldap.po +++ b/l10n/lb/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 13:36+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Konnt net läschen" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Passwuert" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hëllef" diff --git a/l10n/lt_LT/core.po b/l10n/lt_LT/core.po index a6aff9a772f..7d3c632fd08 100644 --- a/l10n/lt_LT/core.po +++ b/l10n/lt_LT/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "Lapkritis" msgid "December" msgstr "Gruodis" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Nustatymai" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "prieš sekundę" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "Prieš 1 minutę" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "Prieš {count} minutes" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "šiandien" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "vakar" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "Prieš {days} dienas" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "praeitą mėnesį" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "prieš mėnesį" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "praeitais metais" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "prieš metus" @@ -254,7 +254,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Dalintis" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -542,7 +542,7 @@ msgstr "Baigti diegimą" msgid "web services under your control" msgstr "jūsų valdomos web paslaugos" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Atsijungti" diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po index ade78b17896..4776b8e8f10 100644 --- a/l10n/lt_LT/files.po +++ b/l10n/lt_LT/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -69,11 +55,11 @@ msgstr "Nėra laikinojo katalogo" msgid "Failed to write to disk" msgstr "Nepavyko įrašyti į diską" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Failai" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Nebesidalinti" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Ištrinti" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Pervadinti" @@ -113,7 +99,7 @@ msgstr "atšaukti" msgid "replaced {new_name}" msgstr "pakeiskite {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "anuliuoti" @@ -121,13 +107,9 @@ msgstr "anuliuoti" msgid "replaced {new_name} with {old_name}" msgstr "pakeiskite {new_name} į {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "nebesidalinti {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "ištrinti {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Įkėlimo klaida" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Užverti" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Laukiantis" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "įkeliamas 1 failas" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} įkeliami failai" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Įkėlimas atšauktas." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} praskanuoti failai" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "klaida skanuojant" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Pavadinimas" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dydis" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Pakeista" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 aplankalas" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} aplankalai" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 failas" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} failai" @@ -286,32 +260,40 @@ msgstr "Katalogas" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Atšaukti siuntimą" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Čia tuščia. Įkelkite ką nors!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Atsisiųsti" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Įkėlimui failas per didelis" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Bandomų įkelti failų dydis viršija maksimalų leidžiamą šiame serveryje" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Skenuojami failai, prašome palaukti." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Šiuo metu skenuojama" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/lt_LT/files_trashbin.po b/l10n/lt_LT/files_trashbin.po new file mode 100644 index 00000000000..af1841dd647 --- /dev/null +++ b/l10n/lt_LT/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt_LT\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Pavadinimas" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 aplankalas" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} aplankalai" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 failas" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} failai" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/lt_LT/settings.po b/l10n/lt_LT/settings.po index 4c4d82e432c..1499763e4ff 100644 --- a/l10n/lt_LT/settings.po +++ b/l10n/lt_LT/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Išjungti" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Įjungti" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Klaida" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Saugoma.." @@ -113,6 +141,10 @@ msgstr "" msgid "-licensed by " msgstr "- autorius" +#: templates/apps.php:31 +msgid "Update" +msgstr "Atnaujinti" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/lt_LT/user_ldap.po b/l10n/lt_LT/user_ldap.po index 0abf2d8c2fd..360405cc4d1 100644 --- a/l10n/lt_LT/user_ldap.po +++ b/l10n/lt_LT/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:19+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Ištrinti nepavyko" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Slaptažodis" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Grupės filtras" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Prievadas" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Naudoti TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Išjungti SSL sertifikato tikrinimą." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nerekomenduojama, naudokite tik testavimui." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pagalba" diff --git a/l10n/lv/core.po b/l10n/lv/core.po index 723dfe3b854..8c8994628c9 100644 --- a/l10n/lv/core.po +++ b/l10n/lv/core.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 19:10+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,64 +22,64 @@ msgstr "" #: ajax/share.php:85 #, php-format msgid "User %s shared a file with you" -msgstr "" +msgstr "Lietotājs %s ar jums dalījās ar datni." #: ajax/share.php:87 #, php-format msgid "User %s shared a folder with you" -msgstr "" +msgstr "Lietotājs %s ar jums dalījās ar mapi." #: ajax/share.php:89 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "" +msgstr "Lietotājs %s ar jums dalījās ar datni “%s”. To var lejupielādēt šeit — %s" #: ajax/share.php:91 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "" +msgstr "Lietotājs %s ar jums dalījās ar mapi “%s”. To var lejupielādēt šeit — %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." -msgstr "" +msgstr "Kategorijas tips nav norādīts." #: ajax/vcategories/add.php:30 msgid "No category to add?" -msgstr "" +msgstr "Nav kategoriju, ko pievienot?" #: ajax/vcategories/add.php:37 msgid "This category already exists: " -msgstr "" +msgstr "Šāda kategorija jau eksistē:" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 #: ajax/vcategories/removeFromFavorites.php:26 msgid "Object type not provided." -msgstr "" +msgstr "Objekta tips nav norādīts." #: ajax/vcategories/addToFavorites.php:30 #: ajax/vcategories/removeFromFavorites.php:30 #, php-format msgid "%s ID not provided." -msgstr "" +msgstr "%s ID nav norādīts." #: ajax/vcategories/addToFavorites.php:35 #, php-format msgid "Error adding %s to favorites." -msgstr "" +msgstr "Kļūda, pievienojot %s izlasei." #: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 msgid "No categories selected for deletion." -msgstr "" +msgstr "Neviena kategorija nav izvēlēta dzēšanai" #: ajax/vcategories/removeFromFavorites.php:35 #, php-format msgid "Error removing %s from favorites." -msgstr "" +msgstr "Kļūda, izņemot %s no izlases." #: js/config.php:32 msgid "Sunday" @@ -156,65 +157,65 @@ msgstr "Novembris" msgid "December" msgstr "Decembris" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Iestatījumi" -#: js/js.js:762 +#: js/js.js:760 msgid "seconds ago" -msgstr "" +msgstr "sekundes atpakaļ" + +#: js/js.js:761 +msgid "1 minute ago" +msgstr "pirms 1 minūtes" + +#: js/js.js:762 +msgid "{minutes} minutes ago" +msgstr "pirms {minutes} minūtēm" #: js/js.js:763 -msgid "1 minute ago" -msgstr "" +msgid "1 hour ago" +msgstr "pirms 1 stundas" #: js/js.js:764 -msgid "{minutes} minutes ago" -msgstr "" +msgid "{hours} hours ago" +msgstr "pirms {hours} stundām" #: js/js.js:765 -msgid "1 hour ago" -msgstr "" +msgid "today" +msgstr "šodien" #: js/js.js:766 -msgid "{hours} hours ago" -msgstr "" +msgid "yesterday" +msgstr "vakar" #: js/js.js:767 -msgid "today" -msgstr "" +msgid "{days} days ago" +msgstr "pirms {days} dienām" #: js/js.js:768 -msgid "yesterday" -msgstr "" +msgid "last month" +msgstr "pagājušajā mēnesī" #: js/js.js:769 -msgid "{days} days ago" -msgstr "" +msgid "{months} months ago" +msgstr "pirms {months} mēnešiem" #: js/js.js:770 -msgid "last month" -msgstr "" +msgid "months ago" +msgstr "mēnešus atpakaļ" #: js/js.js:771 -msgid "{months} months ago" -msgstr "" +msgid "last year" +msgstr "gājušajā gadā" #: js/js.js:772 -msgid "months ago" -msgstr "" - -#: js/js.js:773 -msgid "last year" -msgstr "" - -#: js/js.js:774 msgid "years ago" -msgstr "" +msgstr "gadus atpakaļ" #: js/oc-dialogs.js:126 msgid "Choose" -msgstr "" +msgstr "Izvēlieties" #: js/oc-dialogs.js:146 js/oc-dialogs.js:166 msgid "Cancel" @@ -222,74 +223,74 @@ msgstr "Atcelt" #: js/oc-dialogs.js:162 msgid "No" -msgstr "" +msgstr "Nē" #: js/oc-dialogs.js:163 msgid "Yes" -msgstr "" +msgstr "Jā" #: js/oc-dialogs.js:180 msgid "Ok" -msgstr "" +msgstr "Labi" #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 msgid "The object type is not specified." -msgstr "" +msgstr "Nav norādīts objekta tips." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 #: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 #: js/share.js:583 msgid "Error" -msgstr "Kļūme" +msgstr "Kļūda" #: js/oc-vcategories.js:179 msgid "The app name is not specified." -msgstr "" +msgstr "Nav norādīts lietotnes nosaukums." #: js/oc-vcategories.js:194 msgid "The required file {file} is not installed!" -msgstr "" +msgstr "Pieprasītā datne {file} nav instalēta!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Dalīties" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Kopīgs" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" -msgstr "" +msgstr "Kļūda, daloties" #: js/share.js:152 msgid "Error while unsharing" -msgstr "" +msgstr "Kļūda, beidzot dalīties" #: js/share.js:159 msgid "Error while changing permissions" -msgstr "" +msgstr "Kļūda, mainot atļaujas" #: js/share.js:168 msgid "Shared with you and the group {group} by {owner}" -msgstr "" +msgstr "{owner} dalījās ar jums un grupu {group}" #: js/share.js:170 msgid "Shared with you by {owner}" -msgstr "" +msgstr "{owner} dalījās ar jums" #: js/share.js:175 msgid "Share with" -msgstr "" +msgstr "Dalīties ar" #: js/share.js:180 msgid "Share with link" -msgstr "" +msgstr "Dalīties ar saiti" #: js/share.js:183 msgid "Password protect" -msgstr "" +msgstr "Aizsargāt ar paroli" #: js/share.js:185 templates/installation.php:44 templates/login.php:35 msgid "Password" @@ -297,102 +298,102 @@ msgstr "Parole" #: js/share.js:189 msgid "Email link to person" -msgstr "" +msgstr "Sūtīt saiti personai pa e-pastu" #: js/share.js:190 msgid "Send" -msgstr "" +msgstr "Sūtīt" #: js/share.js:194 msgid "Set expiration date" -msgstr "" +msgstr "Iestaties termiņa datumu" #: js/share.js:195 msgid "Expiration date" -msgstr "" +msgstr "Termiņa datums" #: js/share.js:227 msgid "Share via email:" -msgstr "" +msgstr "Dalīties, izmantojot e-pastu:" #: js/share.js:229 msgid "No people found" -msgstr "" +msgstr "Nav atrastu cilvēku" #: js/share.js:256 msgid "Resharing is not allowed" -msgstr "" +msgstr "Atkārtota dalīšanās nav atļauta" #: js/share.js:292 msgid "Shared in {item} with {user}" -msgstr "" +msgstr "Dalījās ar {item} ar {user}" #: js/share.js:313 msgid "Unshare" -msgstr "Pārtraukt līdzdalīšanu" +msgstr "Beigt dalīties" #: js/share.js:325 msgid "can edit" -msgstr "" +msgstr "var rediģēt" #: js/share.js:327 msgid "access control" -msgstr "" +msgstr "piekļuves vadība" #: js/share.js:330 msgid "create" -msgstr "" +msgstr "izveidot" #: js/share.js:333 msgid "update" -msgstr "" +msgstr "atjaunināt" #: js/share.js:336 msgid "delete" -msgstr "" +msgstr "dzēst" #: js/share.js:339 msgid "share" -msgstr "" +msgstr "dalīties" #: js/share.js:373 js/share.js:558 msgid "Password protected" -msgstr "" +msgstr "Aizsargāts ar paroli" #: js/share.js:571 msgid "Error unsetting expiration date" -msgstr "" +msgstr "Kļūda, noņemot termiņa datumu" #: js/share.js:583 msgid "Error setting expiration date" -msgstr "" +msgstr "Kļūda, iestatot termiņa datumu" #: js/share.js:598 msgid "Sending ..." -msgstr "" +msgstr "Sūta..." #: js/share.js:609 msgid "Email sent" -msgstr "" +msgstr "Vēstule nosūtīta" #: js/update.js:14 msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Atjaunināšana beidzās nesekmīgi. Lūdzu, ziņojiet par šo problēmu ownCloud kopienai." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Atjaunināšana beidzās sekmīgi. Tagad pārsūta jūs uz ownCloud." #: lostpassword/controller.php:47 msgid "ownCloud password reset" -msgstr "" +msgstr "ownCloud paroles maiņa" #: lostpassword/templates/email.php:2 msgid "Use the following link to reset your password: {link}" -msgstr "Izmantojiet šo linku lai mainītu paroli" +msgstr "Izmantojiet šo saiti, lai mainītu paroli: {link}" #: lostpassword/templates/lostpassword.php:3 msgid "You will receive a link to reset your password via Email." @@ -400,11 +401,11 @@ msgstr "Jūs savā epastā saņemsiet interneta saiti, caur kuru varēsiet atjau #: lostpassword/templates/lostpassword.php:5 msgid "Reset email send." -msgstr "" +msgstr "Atstatīt e-pasta sūtīšanu." #: lostpassword/templates/lostpassword.php:8 msgid "Request failed!" -msgstr "" +msgstr "Pieprasījums neizdevās!" #: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 #: templates/login.php:28 @@ -441,7 +442,7 @@ msgstr "Lietotāji" #: strings.php:7 msgid "Apps" -msgstr "Aplikācijas" +msgstr "Lietotnes" #: strings.php:8 msgid "Admin" @@ -453,7 +454,7 @@ msgstr "Palīdzība" #: templates/403.php:12 msgid "Access forbidden" -msgstr "" +msgstr "Pieeja ir liegta" #: templates/404.php:12 msgid "Cloud not found" @@ -461,11 +462,11 @@ msgstr "Mākonis netika atrasts" #: templates/edit_categories_dialog.php:4 msgid "Edit categories" -msgstr "" +msgstr "Rediģēt kategoriju" #: templates/edit_categories_dialog.php:16 msgid "Add" -msgstr "" +msgstr "Pievienot" #: templates/installation.php:23 templates/installation.php:31 msgid "Security Warning" @@ -475,13 +476,13 @@ msgstr "Brīdinājums par drošību" msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." -msgstr "" +msgstr "Nav pieejams drošs nejaušu skaitļu ģenerators. Lūdzu, aktivējiet PHP OpenSSL paplašinājumu." #: templates/installation.php:26 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." -msgstr "" +msgstr "Bez droša nejaušu skaitļu ģeneratora uzbrucējs var paredzēt paroļu atjaunošanas marķierus un pārņem jūsu kontu." #: templates/installation.php:32 msgid "" @@ -490,15 +491,15 @@ msgid "" "strongly suggest that you configure your webserver in a way that the data " "directory is no longer accessible or you move the data directory outside the" " webserver document root." -msgstr "" +msgstr "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes." #: templates/installation.php:36 msgid "Create an admin account" -msgstr "" +msgstr "Izveidot administratora kontu" #: templates/installation.php:50 msgid "Advanced" -msgstr "" +msgstr "Paplašināti" #: templates/installation.php:52 msgid "Data folder" @@ -506,7 +507,7 @@ msgstr "Datu mape" #: templates/installation.php:59 msgid "Configure the database" -msgstr "Nokonfigurēt datubāzi" +msgstr "Konfigurēt datubāzi" #: templates/installation.php:64 templates/installation.php:75 #: templates/installation.php:85 templates/installation.php:95 @@ -527,49 +528,49 @@ msgstr "Datubāzes nosaukums" #: templates/installation.php:123 msgid "Database tablespace" -msgstr "" +msgstr "Datubāzes tabulas telpa" #: templates/installation.php:129 msgid "Database host" -msgstr "Datubāzes mājvieta" +msgstr "Datubāzes serveris" #: templates/installation.php:134 msgid "Finish setup" -msgstr "Pabeigt uzstādījumus" +msgstr "Pabeigt iestatīšanu" #: templates/layout.guest.php:34 msgid "web services under your control" -msgstr "" +msgstr "jūsu vadībā esošie tīmekļa servisi" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" -msgstr "Izlogoties" +msgstr "Izrakstīties" #: templates/login.php:10 msgid "Automatic logon rejected!" -msgstr "" +msgstr "Automātiskā ierakstīšanās ir noraidīta!" #: templates/login.php:11 msgid "" "If you did not change your password recently, your account may be " "compromised!" -msgstr "" +msgstr "Ja neesat pēdējā laikā mainījis paroli, iespējams, ka jūsu konts ir kompromitēts." #: templates/login.php:13 msgid "Please change your password to secure your account again." -msgstr "" +msgstr "Lūdzu, nomainiet savu paroli, lai atkal nodrošinātu savu kontu." #: templates/login.php:19 msgid "Lost your password?" msgstr "Aizmirsāt paroli?" -#: templates/login.php:39 +#: templates/login.php:41 msgid "remember" msgstr "atcerēties" -#: templates/login.php:41 +#: templates/login.php:43 msgid "Log in" -msgstr "Ielogoties" +msgstr "Ierakstīties" #: templates/part.pagenavi.php:3 msgid "prev" @@ -582,4 +583,4 @@ msgstr "nākamā" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" +msgstr "Atjaunina ownCloud uz versiju %s. Tas var aizņemt kādu laiciņu." diff --git a/l10n/lv/files.po b/l10n/lv/files.po index f5fb737c584..34debdd2e72 100644 --- a/l10n/lv/files.po +++ b/l10n/lv/files.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # Imants Liepiņš , 2012. +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 18:40+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,82 +20,68 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - -#: ajax/upload.php:17 +#: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" -msgstr "" +msgstr "Netika augšupielādēta neviena datne. Nezināma kļūda" -#: ajax/upload.php:24 +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" -msgstr "Viss kārtībā, augšupielāde veiksmīga" - -#: ajax/upload.php:25 -msgid "" -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "" +msgstr "Augšupielāde pabeigta bez kļūdām" #: ajax/upload.php:27 msgid "" -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " -"the HTML form" -msgstr "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:" #: ajax/upload.php:29 -msgid "The uploaded file was only partially uploaded" -msgstr "" - -#: ajax/upload.php:30 -msgid "No file was uploaded" -msgstr "Neviens fails netika augšuplādēts" +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā" #: ajax/upload.php:31 +msgid "The uploaded file was only partially uploaded" +msgstr "Augšupielādētā datne ir tikai daļēji augšupielādēta" + +#: ajax/upload.php:32 +msgid "No file was uploaded" +msgstr "Neviena datne netika augšupielādēta" + +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "Trūkst pagaidu mapes" -#: ajax/upload.php:32 +#: ajax/upload.php:34 msgid "Failed to write to disk" -msgstr "Nav iespējams saglabāt" +msgstr "Neizdevās saglabāt diskā" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:52 +msgid "Not enough space available" +msgstr "Nepietiek brīvas vietas" -#: ajax/upload.php:77 +#: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Nederīga direktorija." #: appinfo/app.php:10 msgid "Files" -msgstr "Faili" +msgstr "Datnes" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" -msgstr "Pārtraukt līdzdalīšanu" +msgstr "Pārtraukt dalīšanos" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" -msgstr "Izdzēst" +msgstr "Dzēst" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" -msgstr "Pārdēvēt" +msgstr "Pārsaukt" #: js/filelist.js:208 js/filelist.js:210 msgid "{new_name} already exists" -msgstr "" +msgstr "{new_name} jau eksistē" #: js/filelist.js:208 js/filelist.js:210 msgid "replace" @@ -102,7 +89,7 @@ msgstr "aizvietot" #: js/filelist.js:208 msgid "suggest name" -msgstr "Ieteiktais nosaukums" +msgstr "ieteiktais nosaukums" #: js/filelist.js:208 js/filelist.js:210 msgid "cancel" @@ -110,152 +97,140 @@ msgstr "atcelt" #: js/filelist.js:253 msgid "replaced {new_name}" -msgstr "" +msgstr "aizvietots {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" -msgstr "vienu soli atpakaļ" +msgstr "atsaukt" #: js/filelist.js:255 msgid "replaced {new_name} with {old_name}" -msgstr "" +msgstr "aizvietoja {new_name} ar {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "veikt dzēšanas darbību" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' ir nederīgs datnes nosaukums." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "Datnes nosaukums nevar būt tukšs." #: js/files.js:64 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." -msgstr "" +msgstr "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'." #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Nav iespējams augšuplādēt jūsu failu, jo tāds jau eksistē vai arī failam nav izmēra (0 baiti)" +msgstr "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tās izmērs ir 0 baiti" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" -msgstr "Augšuplādēšanas laikā radās kļūda" +msgstr "Kļūda augšupielādējot" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" -msgstr "" +msgstr "Aizvērt" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Gaida savu kārtu" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" -msgstr "" +msgstr "Augšupielādē 1 datni" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" -msgstr "" +msgstr "augšupielādē {count} datnes" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." -msgstr "Augšuplāde ir atcelta" +msgstr "Augšupielāde ir atcelta." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." -msgstr "" +msgstr "URL nevar būt tukšs." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Nederīgs mapes nosaukums. “Koplietots” izmantojums ir rezervēts ownCloud servisam." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:953 templates/index.php:67 msgid "Name" msgstr "Nosaukums" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:954 templates/index.php:78 msgid "Size" msgstr "Izmērs" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:955 templates/index.php:80 msgid "Modified" -msgstr "Izmainīts" +msgstr "Mainīts" -#: js/files.js:887 +#: js/files.js:974 msgid "1 folder" -msgstr "" +msgstr "1 mape" -#: js/files.js:889 +#: js/files.js:976 msgid "{count} folders" -msgstr "" +msgstr "{count} mapes" -#: js/files.js:897 +#: js/files.js:984 msgid "1 file" -msgstr "" +msgstr "1 datne" -#: js/files.js:899 +#: js/files.js:986 msgid "{count} files" -msgstr "" +msgstr "{count} datnes" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" -msgstr "Augšuplādet" +msgstr "Augšupielādēt" #: templates/admin.php:5 msgid "File handling" -msgstr "Failu pārvaldība" +msgstr "Datņu pārvaldība" #: templates/admin.php:7 msgid "Maximum upload size" -msgstr "Maksimālais failu augšuplādes apjoms" +msgstr "Maksimālais datņu augšupielādes apjoms" #: templates/admin.php:10 msgid "max. possible: " -msgstr "maksīmālais iespējamais:" +msgstr "maksimālais iespējamais:" #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." -msgstr "Vajadzīgs vairāku failu un mapju lejuplādei" +msgstr "Vajadzīgs vairāku datņu un mapju lejupielādēšanai." #: templates/admin.php:17 msgid "Enable ZIP-download" -msgstr "Iespējot ZIP lejuplādi" +msgstr "Aktivēt ZIP lejupielādi" #: templates/admin.php:20 msgid "0 is unlimited" @@ -263,7 +238,7 @@ msgstr "0 ir neierobežots" #: templates/admin.php:22 msgid "Maximum input size for ZIP files" -msgstr "" +msgstr "Maksimālais ievades izmērs ZIP datnēm" #: templates/admin.php:26 msgid "Save" @@ -271,11 +246,11 @@ msgstr "Saglabāt" #: templates/index.php:7 msgid "New" -msgstr "Jauns" +msgstr "Jauna" #: templates/index.php:10 msgid "Text file" -msgstr "Teksta fails" +msgstr "Teksta datne" #: templates/index.php:12 msgid "Folder" @@ -283,34 +258,42 @@ msgstr "Mape" #: templates/index.php:14 msgid "From link" -msgstr "" +msgstr "No saites" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Miskaste" + +#: templates/index.php:46 msgid "Cancel upload" -msgstr "Atcelt augšuplādi" +msgstr "Atcelt augšupielādi" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" -msgstr "Te vēl nekas nav. Rīkojies, sāc augšuplādēt" +msgstr "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" -msgstr "Lejuplādēt" +msgstr "Lejupielādēt" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" -msgstr "Fails ir par lielu lai to augšuplādetu" +msgstr "Datne ir par lielu, lai to augšupielādētu" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." -msgstr "Jūsu augšuplādējamie faili pārsniedz servera pieļaujamo failu augšupielādes apjomu" +msgstr "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." -msgstr "Faili šobrīd tiek caurskatīti, nedaudz jāpagaida." +msgstr "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" -msgstr "Šobrīd tiek pārbaudīti" +msgstr "Šobrīd tiek caurskatīts" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Uzlabo datņu sistēmas kešatmiņu..." diff --git a/l10n/lv/files_encryption.po b/l10n/lv/files_encryption.po index 9ceadebe30c..539b9bd02cb 100644 --- a/l10n/lv/files_encryption.po +++ b/l10n/lv/files_encryption.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 12:00+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,62 +22,62 @@ msgstr "" msgid "" "Please switch to your ownCloud client and change your encryption password to" " complete the conversion." -msgstr "" +msgstr "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu." #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "Pārslēdzās uz klienta puses šifrēšanu" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "" +msgstr "Mainīt šifrēšanas paroli uz ierakstīšanās paroli" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Izvēlieties šifrēšanas režīmu:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "Klienta puses šifrēšana (visdrošākā, bet nav iespējams piekļūt saviem datiem no tīmekļa saskarnes)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "Servera puses šifrēšana (ļauj piekļūt datnēm ar tīmekļa saskarni un ar darbvirsmas klientu)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Nav (nekādas šifrēšanas)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Svarīgi — kad esat izvēlējies šifrēšanas režīmu, to nekādi nevar mainīt atpakaļ" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "Lietotājam specifiski (ļauj lietotājam izlemt)" #: templates/settings.php:65 msgid "Encryption" -msgstr "" +msgstr "Šifrēšana" #: templates/settings.php:67 msgid "Exclude the following file types from encryption" -msgstr "" +msgstr "Sekojošos datņu tipus nešifrēt" #: templates/settings.php:71 msgid "None" -msgstr "" +msgstr "Nav" diff --git a/l10n/lv/files_external.po b/l10n/lv/files_external.po index 07979d9b1c8..c4fdcae0744 100644 --- a/l10n/lv/files_external.po +++ b/l10n/lv/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 18:30+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,76 +20,76 @@ msgstr "" #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 msgid "Access granted" -msgstr "" +msgstr "Piešķirta pieeja" #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 msgid "Error configuring Dropbox storage" -msgstr "" +msgstr "Kļūda, konfigurējot Dropbox krātuvi" #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" -msgstr "" +msgstr "Piešķirt pieeju" #: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" -msgstr "" +msgstr "Aizpildīt visus pieprasītos laukus" #: js/dropbox.js:85 msgid "Please provide a valid Dropbox app key and secret." -msgstr "" +msgstr "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu." #: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" -msgstr "" +msgstr "Kļūda, konfigurējot Google Drive krātuvi" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Brīdinājums: nav uzinstalēts “smbclient”. Nevar montēt CIFS/SMB koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē." -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Brīdinājums: uz PHP nav aktivēts vai instalēts FTP atbalsts. Nevar montēt FTP koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē." #: templates/settings.php:3 msgid "External Storage" -msgstr "" +msgstr "Ārējā krātuve" #: templates/settings.php:8 templates/settings.php:22 msgid "Mount point" -msgstr "" +msgstr "Montēšanas punkts" #: templates/settings.php:9 msgid "Backend" -msgstr "" +msgstr "Aizmugure" #: templates/settings.php:10 msgid "Configuration" -msgstr "" +msgstr "Konfigurācija" #: templates/settings.php:11 msgid "Options" -msgstr "" +msgstr "Opcijas" #: templates/settings.php:12 msgid "Applicable" -msgstr "" +msgstr "Piemērojams" #: templates/settings.php:27 msgid "Add mount point" -msgstr "" +msgstr "Pievienot montēšanas punktu" #: templates/settings.php:85 msgid "None set" -msgstr "" +msgstr "Neviens nav iestatīts" #: templates/settings.php:86 msgid "All Users" -msgstr "" +msgstr "Visi lietotāji" #: templates/settings.php:87 msgid "Groups" @@ -99,22 +100,22 @@ msgid "Users" msgstr "Lietotāji" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" -msgstr "Izdzēst" +msgstr "Dzēst" #: templates/settings.php:124 msgid "Enable User External Storage" -msgstr "" +msgstr "Aktivēt lietotāja ārējo krātuvi" #: templates/settings.php:125 msgid "Allow users to mount their own external storage" -msgstr "" +msgstr "Ļaut lietotājiem montēt pašiem savu ārējo krātuvi" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" -msgstr "" +msgstr "SSL saknes sertifikāti" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" -msgstr "" +msgstr "Importēt saknes sertifikātus" diff --git a/l10n/lv/files_sharing.po b/l10n/lv/files_sharing.po index 77168f1b72c..6d52e10de6a 100644 --- a/l10n/lv/files_sharing.po +++ b/l10n/lv/files_sharing.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 18:30+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,30 +20,30 @@ msgstr "" #: templates/authenticate.php:4 msgid "Password" -msgstr "" +msgstr "Parole" #: templates/authenticate.php:6 msgid "Submit" -msgstr "" +msgstr "Iesniegt" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%s ar jums dalījās ar mapi %s" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%s ar jums dalījās ar datni %s" #: templates/public.php:14 templates/public.php:30 msgid "Download" -msgstr "" +msgstr "Lejupielādēt" #: templates/public.php:29 msgid "No preview available for" -msgstr "" +msgstr "Nav pieejams priekšskatījums priekš" -#: templates/public.php:37 +#: templates/public.php:35 msgid "web services under your control" -msgstr "" +msgstr "jūsu vadībā esošie tīmekļa servisi" diff --git a/l10n/lv/files_trashbin.po b/l10n/lv/files_trashbin.po new file mode 100644 index 00000000000..11024c8e1e0 --- /dev/null +++ b/l10n/lv/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Rūdolfs Mazurs , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 21:00+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" +"Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "veikt atjaunošanu" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nosaukums" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Dzēsts" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mape" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mapes" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 datne" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} datnes" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Šeit nekā nav. Jūsu miskaste ir tukša!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Atjaunot" diff --git a/l10n/lv/files_versions.po b/l10n/lv/files_versions.po index 399b82e06fc..fa500081cc3 100644 --- a/l10n/lv/files_versions.po +++ b/l10n/lv/files_versions.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 10:50+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,12 +20,12 @@ msgstr "" #: js/versions.js:16 msgid "History" -msgstr "" +msgstr "Vēsture" #: templates/settings.php:3 msgid "Files Versioning" -msgstr "" +msgstr "Datņu versiju izskošana" #: templates/settings.php:4 msgid "Enable" -msgstr "" +msgstr "Aktivēt" diff --git a/l10n/lv/lib.po b/l10n/lv/lib.po index 03dc8d418c3..ae6df933b41 100644 --- a/l10n/lv/lib.po +++ b/l10n/lv/lib.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 14:31+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,140 +18,140 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: app.php:301 +#: app.php:312 msgid "Help" msgstr "Palīdzība" -#: app.php:308 +#: app.php:319 msgid "Personal" msgstr "Personīgi" -#: app.php:313 +#: app.php:324 msgid "Settings" msgstr "Iestatījumi" -#: app.php:318 +#: app.php:329 msgid "Users" msgstr "Lietotāji" -#: app.php:325 +#: app.php:336 msgid "Apps" -msgstr "" +msgstr "Lietotnes" -#: app.php:327 +#: app.php:338 msgid "Admin" -msgstr "" +msgstr "Administratori" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." -msgstr "" +msgstr "ZIP lejupielādēšana ir izslēgta." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." -msgstr "" +msgstr "Datnes var lejupielādēt tikai katru atsevišķi." -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" -msgstr "" +msgstr "Atpakaļ pie datnēm" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." -msgstr "" +msgstr "Izvēlētās datnes ir pārāk lielas, lai izveidotu zip datni." -#: helper.php:228 +#: helper.php:226 msgid "couldn't be determined" -msgstr "" +msgstr "nevarēja noteikt" #: json.php:28 msgid "Application is not enabled" -msgstr "" +msgstr "Lietotne nav aktivēta" #: json.php:39 json.php:62 json.php:73 msgid "Authentication error" -msgstr "Ielogošanās kļūme" +msgstr "Autentifikācijas kļūda" #: json.php:51 msgid "Token expired. Please reload page." -msgstr "" +msgstr "Pilnvarai ir beidzies termiņš. Lūdzu, pārlādējiet lapu." #: search/provider/file.php:17 search/provider/file.php:35 msgid "Files" -msgstr "Faili" +msgstr "Datnes" #: search/provider/file.php:26 search/provider/file.php:33 msgid "Text" -msgstr "" +msgstr "Teksts" #: search/provider/file.php:29 msgid "Images" -msgstr "" +msgstr "Attēli" #: template.php:113 msgid "seconds ago" -msgstr "" +msgstr "sekundes atpakaļ" #: template.php:114 msgid "1 minute ago" -msgstr "" +msgstr "pirms 1 minūtes" #: template.php:115 #, php-format msgid "%d minutes ago" -msgstr "" +msgstr "pirms %d minūtēm" #: template.php:116 msgid "1 hour ago" -msgstr "" +msgstr "pirms 1 stundas" #: template.php:117 #, php-format msgid "%d hours ago" -msgstr "" +msgstr "pirms %d stundām" #: template.php:118 msgid "today" -msgstr "" +msgstr "šodien" #: template.php:119 msgid "yesterday" -msgstr "" +msgstr "vakar" #: template.php:120 #, php-format msgid "%d days ago" -msgstr "" +msgstr "pirms %d dienām" #: template.php:121 msgid "last month" -msgstr "" +msgstr "pagājušajā mēnesī" #: template.php:122 #, php-format msgid "%d months ago" -msgstr "" +msgstr "pirms %d mēnešiem" #: template.php:123 msgid "last year" -msgstr "" +msgstr "gājušajā gadā" #: template.php:124 msgid "years ago" -msgstr "" +msgstr "gadus atpakaļ" #: updater.php:75 #, php-format msgid "%s is available. Get more information" -msgstr "" +msgstr "%s ir pieejams. Iegūt vairāk informācijas" #: updater.php:77 msgid "up to date" -msgstr "" +msgstr "ir aktuāls" #: updater.php:80 msgid "updates check is disabled" -msgstr "" +msgstr "atjauninājumu pārbaude ir deaktivēta" #: vcategories.php:188 vcategories.php:249 #, php-format msgid "Could not find category \"%s\"" -msgstr "" +msgstr "Nevarēja atrast kategoriju “%s”" diff --git a/l10n/lv/settings.po b/l10n/lv/settings.po index afc2514715e..72b99de743c 100644 --- a/l10n/lv/settings.po +++ b/l10n/lv/settings.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # , 2012. +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 19:10+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +22,7 @@ msgstr "" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" -msgstr "Nebija iespējams lejuplādēt sarakstu no aplikāciju veikala" +msgstr "Nevar lejupielādēt sarakstu no lietotņu veikala" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -33,15 +34,15 @@ msgstr "Nevar pievienot grupu" #: ajax/enableapp.php:11 msgid "Could not enable app. " -msgstr "Nevar ieslēgt aplikāciju." +msgstr "Nevarēja aktivēt lietotni." #: ajax/lostpassword.php:12 msgid "Email saved" -msgstr "Epasts tika saglabāts" +msgstr "E-pasts tika saglabāts" #: ajax/lostpassword.php:14 msgid "Invalid email" -msgstr "Nepareizs epasts" +msgstr "Nederīgs epasts" #: ajax/removegroup.php:13 msgid "Unable to delete group" @@ -49,7 +50,7 @@ msgstr "Nevar izdzēst grupu" #: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:18 msgid "Authentication error" -msgstr "Ielogošanās kļūme" +msgstr "Autentifikācijas kļūda" #: ajax/removeuser.php:24 msgid "Unable to delete user" @@ -61,11 +62,11 @@ msgstr "Valoda tika nomainīta" #: ajax/setlanguage.php:17 ajax/setlanguage.php:20 msgid "Invalid request" -msgstr "Nepareizs vaicājums" +msgstr "Nederīgs pieprasījums" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "" +msgstr "Administratori nevar izņemt paši sevi no administratoru grupas" #: ajax/togglegroups.php:28 #, php-format @@ -75,15 +76,43 @@ msgstr "Nevar pievienot lietotāju grupai %s" #: ajax/togglegroups.php:34 #, php-format msgid "Unable to remove user from group %s" -msgstr "Nevar noņemt lietotāju no grupas %s" +msgstr "Nevar izņemt lietotāju no grupas %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Nevarēja atjaunināt lietotni." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Atjaunināt uz {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" -msgstr "Atvienot" +msgstr "Deaktivēt" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" -msgstr "Pievienot" +msgstr "Aktivēt" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Lūdzu, uzgaidiet...." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Atjaunina...." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Kļūda, atjauninot lietotni" + +#: js/apps.js:87 +msgid "Error" +msgstr "Kļūda" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Atjaunināta" #: js/personal.js:69 msgid "Saving..." @@ -95,47 +124,51 @@ msgstr "__valodas_nosaukums__" #: templates/apps.php:10 msgid "Add your App" -msgstr "Pievieno savu aplikāciju" +msgstr "Pievieno savu lietotni" #: templates/apps.php:11 msgid "More Apps" -msgstr "Vairāk aplikāciju" +msgstr "Vairāk lietotņu" #: templates/apps.php:24 msgid "Select an App" -msgstr "Izvēlies aplikāciju" +msgstr "Izvēlies lietotni" #: templates/apps.php:28 msgid "See application page at apps.owncloud.com" -msgstr "Apskatie aplikāciju lapu - apps.owncloud.com" +msgstr "Apskati lietotņu lapu — apps.owncloud.com" #: templates/apps.php:29 msgid "-licensed by " msgstr "-licencēts no " +#: templates/apps.php:31 +msgid "Update" +msgstr "Atjaunināt" + #: templates/help.php:3 msgid "User Documentation" -msgstr "" +msgstr "Lietotāja dokumentācija" #: templates/help.php:4 msgid "Administrator Documentation" -msgstr "" +msgstr "Administratora dokumentācija" #: templates/help.php:6 msgid "Online Documentation" -msgstr "" +msgstr "Tiešsaistes dokumentācija" #: templates/help.php:7 msgid "Forum" -msgstr "" +msgstr "Forums" #: templates/help.php:9 msgid "Bugtracker" -msgstr "" +msgstr "Kļūdu sekotājs" #: templates/help.php:11 msgid "Commercial Support" -msgstr "" +msgstr "Komerciālais atbalsts" #: templates/personal.php:8 #, php-format @@ -148,15 +181,15 @@ msgstr "Klienti" #: templates/personal.php:13 msgid "Download Desktop Clients" -msgstr "" +msgstr "Lejupielādēt darbvirsmas klientus" #: templates/personal.php:14 msgid "Download Android Client" -msgstr "" +msgstr "Lejupielādēt Android klientu" #: templates/personal.php:15 msgid "Download iOS Client" -msgstr "" +msgstr "Lejupielādēt iOS klientu" #: templates/personal.php:21 templates/users.php:23 templates/users.php:81 msgid "Password" @@ -168,7 +201,7 @@ msgstr "Jūru parole tika nomainīta" #: templates/personal.php:23 msgid "Unable to change your password" -msgstr "Nav iespējams nomainīt jūsu paroli" +msgstr "Nevar nomainīt jūsu paroli" #: templates/personal.php:24 msgid "Current password" @@ -184,19 +217,19 @@ msgstr "parādīt" #: templates/personal.php:27 msgid "Change password" -msgstr "Nomainīt paroli" +msgstr "Mainīt paroli" #: templates/personal.php:33 msgid "Email" -msgstr "Epasts" +msgstr "E-pasts" #: templates/personal.php:34 msgid "Your email address" -msgstr "Jūsu epasta adrese" +msgstr "Jūsu e-pasta adrese" #: templates/personal.php:35 msgid "Fill in an email address to enable password recovery" -msgstr "Ievadiet epasta adresi, lai vēlak būtu iespēja atgūt paroli, ja būs nepieciešamība" +msgstr "Ievadiet epasta adresi, lai vēlāk varētu atgūt paroli, ja būs nepieciešamība" #: templates/personal.php:41 templates/personal.php:42 msgid "Language" @@ -208,15 +241,15 @@ msgstr "Palīdzi tulkot" #: templates/personal.php:52 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" #: templates/personal.php:54 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "Izmanto šo adresi, lai, izmantojot datņu pārvaldnieku, savienotos ar savu ownCloud" #: templates/personal.php:63 msgid "Version" -msgstr "" +msgstr "Versija" #: templates/personal.php:65 msgid "" @@ -230,7 +263,7 @@ msgstr "Izstrādājusi #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "Ierakstīšanās vārds" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -242,11 +275,11 @@ msgstr "Izveidot" #: templates/users.php:35 msgid "Default Storage" -msgstr "" +msgstr "Noklusējuma krātuve" #: templates/users.php:42 templates/users.php:142 msgid "Unlimited" -msgstr "" +msgstr "Neierobežota" #: templates/users.php:60 templates/users.php:157 msgid "Other" @@ -254,7 +287,7 @@ msgstr "Cits" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "Redzamais vārds" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -262,12 +295,20 @@ msgstr "Grupas administrators" #: templates/users.php:86 msgid "Storage" -msgstr "" +msgstr "Krātuve" + +#: templates/users.php:97 +msgid "change display name" +msgstr "mainīt redzamo vārdu" + +#: templates/users.php:101 +msgid "set new password" +msgstr "iestatīt jaunu paroli" #: templates/users.php:137 msgid "Default" -msgstr "" +msgstr "Noklusējuma" #: templates/users.php:165 msgid "Delete" -msgstr "Izdzēst" +msgstr "Dzēst" diff --git a/l10n/lv/user_ldap.po b/l10n/lv/user_ldap.po index 737869b743e..ac6a97fa0f2 100644 --- a/l10n/lv/user_ldap.po +++ b/l10n/lv/user_ldap.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 14:21+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,179 +18,293 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Neizdevās izdzēst servera konfigurāciju" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "Konfigurācija ir derīga un varēja izveidot savienojumu!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "Konfigurācija ir derīga, bet sasaiste neizdevās. Lūdzu, pārbaudiet servera iestatījumus un akreditācijas datus." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "Konfigurācija ir nederīga. Lūdzu, apskatiet ownCloud žurnālu, lai uzzinātu vairāk." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Neizdevās izdzēst" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Paņemt iestatījumus no nesenas servera konfigurācijas?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Paturēt iestatījumus?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Nevar pievienot servera konfigurāciju" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Savienojuma tests ir veiksmīgs" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Savienojuma tests cieta neveiksmi" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Apstiprināt dzēšanu" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "" +msgstr "Brīdinājums: lietotnes user_ldap un user_webdavauth ir nesavietojamas. Tās var izraisīt negaidītu uzvedību. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Brīdinājums: PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Servera konfigurācija" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Pievienot servera konfigurāciju" + +#: templates/settings.php:21 msgid "Host" -msgstr "" +msgstr "Resursdators" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" -msgstr "" +msgstr "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" -msgstr "" +msgstr "Bāzes DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "Viena bāzes DN rindā" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" -msgstr "" +msgstr "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" -msgstr "" +msgstr "Lietotāja DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." -msgstr "" +msgstr "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" -msgstr "" +msgstr "Parole" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." -msgstr "" +msgstr "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" -msgstr "" +msgstr "Lietotāja ierakstīšanās filtrs" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." -msgstr "" +msgstr "Definē filtru, ko izmantot, kad mēģina ierakstīties. %%uid ierakstīšanās darbībā aizstāj lietotājvārdu." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" -msgstr "" +msgstr "lieto %%uid vietturi, piemēram, \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" -msgstr "" +msgstr "Lietotāju saraksta filtrs" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." -msgstr "" +msgstr "Definē filtru, ko izmantot, kad saņem lietotāju sarakstu." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." -msgstr "" - -#: templates/settings.php:21 -msgid "Group Filter" -msgstr "" - -#: templates/settings.php:21 -msgid "Defines the filter to apply, when retrieving groups." -msgstr "" - -#: templates/settings.php:21 -msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." -msgstr "" - -#: templates/settings.php:24 -msgid "Port" -msgstr "" - -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "" - -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "" - -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "" +msgstr "bez jebkādiem vietturiem, piemēram, \"objectClass=person\"." #: templates/settings.php:27 -msgid "Group-Member association" -msgstr "" +msgid "Group Filter" +msgstr "Grupu filtrs" -#: templates/settings.php:28 +#: templates/settings.php:27 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "Definē filtru, ko izmantot, kad saņem grupu sarakstu." + +#: templates/settings.php:27 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "bez jebkādiem vietturiem, piemēram, \"objectClass=posixGroup\"." + +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Savienojuma iestatījumi" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Konfigurācija ir aktīva" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Ja nav atzīmēts, šī konfigurācija tiks izlaista." + +#: templates/settings.php:34 +msgid "Port" +msgstr "Ports" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Rezerves (kopija) serveris" + +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai." + +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Rezerves (kopijas) ports" + +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Deaktivēt galveno serveri" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri." + +#: templates/settings.php:38 msgid "Use TLS" -msgstr "" +msgstr "Lietot TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." -msgstr "" +msgstr "Neizmanto to SSL savienojumiem, tas neizdosies." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" -msgstr "" +msgstr "Reģistrnejutīgs LDAP serveris (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." -msgstr "" +msgstr "Izslēgt SSL sertifikātu validēšanu." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." -msgstr "" +msgstr "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." -msgstr "" +msgstr "Nav ieteicams, izmanto tikai testēšanai!" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." -msgstr "" +msgstr "sekundēs. Izmaiņas iztukšos kešatmiņu." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Direktorijas iestatījumi" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Lietotāja redzamā vārda lauks" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "LDAP atribūts, ko izmantot lietotāja ownCloud vārda veidošanai." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Bāzes lietotāju koks" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Viena lietotāju bāzes DN rindā" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Lietotāju meklēšanas atribūts" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Neobligāti; viens atribūts rindā" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Grupas redzamā nosaukuma lauks" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "LDAP atribūts, ko izmantot grupas ownCloud nosaukuma veidošanai." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Bāzes grupu koks" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Viena grupu bāzes DN rindā" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Grupu meklēšanas atribūts" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Grupu piederības asociācija" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "Īpašie atribūti" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "baitos" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." -msgstr "" +msgstr "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Palīdzība" diff --git a/l10n/lv/user_webdavauth.po b/l10n/lv/user_webdavauth.po index 6d3874a0c53..bac06d9c1e3 100644 --- a/l10n/lv/user_webdavauth.po +++ b/l10n/lv/user_webdavauth.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rūdolfs Mazurs , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 11:30+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,15 +20,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV autentifikācija" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud sūtīs lietotāja akreditācijas datus uz šo URL. Šis spraudnis pārbauda atbildi un interpretē HTTP statusa kodus 401 un 403 kā nederīgus akreditācijas datus un visas citas atbildes kā derīgus akreditācijas datus." diff --git a/l10n/mk/core.po b/l10n/mk/core.po index a6cc634a953..a06a664bec0 100644 --- a/l10n/mk/core.po +++ b/l10n/mk/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "Ноември" msgid "December" msgstr "Декември" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Поставки" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "пред секунди" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "пред 1 минута" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "пред {minutes} минути" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "пред 1 час" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "пред {hours} часови" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "денеска" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "вчера" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "пред {days} денови" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "минатиот месец" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "пред {months} месеци" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "пред месеци" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "минатата година" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "пред години" @@ -255,7 +255,7 @@ msgstr "Задолжителната датотека {file} не е инста #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Сподели" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "Заврши го подесувањето" msgid "web services under your control" msgstr "веб сервиси под Ваша контрола" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Одјава" diff --git a/l10n/mk/files.po b/l10n/mk/files.po index 875893ff2ab..941e084b4a1 100644 --- a/l10n/mk/files.po +++ b/l10n/mk/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ниту еден фајл не се вчита. Непозната грешка" @@ -69,11 +55,11 @@ msgstr "Не постои привремена папка" msgid "Failed to write to disk" msgstr "Неуспеав да запишам на диск" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Датотеки" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Не споделувај" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Избриши" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Преименувај" @@ -113,7 +99,7 @@ msgstr "откажи" msgid "replaced {new_name}" msgstr "земенета {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "врати" @@ -121,13 +107,9 @@ msgstr "врати" msgid "replaced {new_name} with {old_name}" msgstr "заменета {new_name} со {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "без споделување {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "избришани {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Грешка при преземање" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Затвои" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Чека" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 датотека се подига" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} датотеки се подигаат" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Преземањето е прекинато." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Адресата неможе да биде празна." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} датотеки скенирани" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "грешка при скенирање" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Име" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Големина" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Променето" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папки" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 датотека" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} датотеки" @@ -286,32 +260,40 @@ msgstr "Папка" msgid "From link" msgstr "Од врска" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Откажи прикачување" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Тука нема ништо. Снимете нешто!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Преземи" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Датотеката е премногу голема" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Се скенираат датотеки, ве молам почекајте." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Моментално скенирам" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/mk/files_trashbin.po b/l10n/mk/files_trashbin.po new file mode 100644 index 00000000000..567a2b7aaef --- /dev/null +++ b/l10n/mk/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Име" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 папка" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} папки" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 датотека" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} датотеки" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/mk/settings.po b/l10n/mk/settings.po index 8468db8e1a8..c863d2c2a33 100644 --- a/l10n/mk/settings.po +++ b/l10n/mk/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "Неможе да додадам корисник во група %s" msgid "Unable to remove user from group %s" msgstr "Неможе да избришам корисник од група %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Оневозможи" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Овозможи" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Грешка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Снимам..." @@ -114,6 +142,10 @@ msgstr "Види ја страницата со апликации на apps.own msgid "-licensed by " msgstr "-лиценцирано од " +#: templates/apps.php:31 +msgid "Update" +msgstr "Ажурирај" + #: templates/help.php:3 msgid "User Documentation" msgstr "Корисничка документација" @@ -265,6 +297,14 @@ msgstr "Администратор на група" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/mk/user_ldap.po b/l10n/mk/user_ldap.po index c80a334455b..7380a12ef33 100644 --- a/l10n/mk/user_ldap.po +++ b/l10n/mk/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Бришењето е неуспешно" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Домаќин" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Лозинка" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Помош" diff --git a/l10n/ms_MY/core.po b/l10n/ms_MY/core.po index 3a62b704348..0ae9e04e981 100644 --- a/l10n/ms_MY/core.po +++ b/l10n/ms_MY/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "November" msgid "December" msgstr "Disember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Tetapan" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "" @@ -255,7 +255,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Kongsi" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "Setup selesai" msgid "web services under your control" msgstr "Perkhidmatan web di bawah kawalan anda" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Log keluar" diff --git a/l10n/ms_MY/files.po b/l10n/ms_MY/files.po index 642cde5a6e6..6e6a0e262c6 100644 --- a/l10n/ms_MY/files.po +++ b/l10n/ms_MY/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Tiada fail dimuatnaik. Ralat tidak diketahui." @@ -70,11 +56,11 @@ msgstr "Folder sementara hilang" msgid "Failed to write to disk" msgstr "Gagal untuk disimpan" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -82,15 +68,15 @@ msgstr "" msgid "Files" msgstr "fail" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Padam" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -114,7 +100,7 @@ msgstr "Batal" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -122,12 +108,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -152,86 +134,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tidak boleh memuatnaik fail anda kerana mungkin ianya direktori atau saiz fail 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Muat naik ralat" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Tutup" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Dalam proses" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Muatnaik dibatalkan." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nama " -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Saiz" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -287,32 +261,40 @@ msgstr "Folder" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Batal muat naik" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Tiada apa-apa di sini. Muat naik sesuatu!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Muat turun" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Muat naik terlalu besar" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Fail sedang diimbas, harap bersabar." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Imbasan semasa" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ms_MY/files_trashbin.po b/l10n/ms_MY/files_trashbin.po new file mode 100644 index 00000000000..c3efccaa15d --- /dev/null +++ b/l10n/ms_MY/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms_MY\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nama" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ms_MY/settings.po b/l10n/ms_MY/settings.po index 020c1d29f4a..b9e4261b7a4 100644 --- a/l10n/ms_MY/settings.po +++ b/l10n/ms_MY/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Nyahaktif" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktif" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Ralat" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Simpan..." @@ -115,6 +143,10 @@ msgstr "Lihat halaman applikasi di apps.owncloud.com" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Kemaskini" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -266,6 +298,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ms_MY/user_ldap.po b/l10n/ms_MY/user_ldap.po index 3c7e352259a..7728f96e12c 100644 --- a/l10n/ms_MY/user_ldap.po +++ b/l10n/ms_MY/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Pemadaman gagal" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Bantuan" diff --git a/l10n/nb_NO/core.po b/l10n/nb_NO/core.po index cf8ff804cf3..594697deef5 100644 --- a/l10n/nb_NO/core.po +++ b/l10n/nb_NO/core.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -162,59 +162,59 @@ msgstr "November" msgid "December" msgstr "Desember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Innstillinger" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekunder siden" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minutt siden" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minutter siden" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 time siden" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} timer siden" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "i dag" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "i går" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dager siden" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "forrige måned" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} måneder siden" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "måneder siden" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "forrige år" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "år siden" @@ -259,7 +259,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Del" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -547,7 +547,7 @@ msgstr "Fullfør oppsetting" msgid "web services under your control" msgstr "nettjenester under din kontroll" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Logg ut" diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po index 035398726fd..195074affb1 100644 --- a/l10n/nb_NO/files.po +++ b/l10n/nb_NO/files.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -26,20 +26,6 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer ble lastet opp. Ukjent feil." @@ -75,11 +61,11 @@ msgstr "Mangler en midlertidig mappe" msgid "Failed to write to disk" msgstr "Klarte ikke å skrive til disk" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -87,15 +73,15 @@ msgstr "" msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Avslutt deling" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slett" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Omdøp" @@ -119,7 +105,7 @@ msgstr "avbryt" msgid "replaced {new_name}" msgstr "erstatt {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "angre" @@ -127,14 +113,10 @@ msgstr "angre" msgid "replaced {new_name} with {old_name}" msgstr "erstatt {new_name} med {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "slettet {files}" - #: js/files.js:52 msgid "'.' is an invalid file name." msgstr "" @@ -157,86 +139,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Opplasting feilet" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Lukk" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ventende" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fil lastes opp" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} filer laster opp" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Opplasting avbrutt." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL-en kan ikke være tom." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} filer lest inn" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "feil under skanning" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Navn" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Størrelse" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Endret" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fil" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} filer" @@ -292,32 +266,40 @@ msgstr "Mappe" msgid "From link" msgstr "Fra link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Avbryt opplasting" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last opp noe!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Last ned" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Opplasting for stor" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filene du prøver å laste opp er for store for å laste opp til denne serveren." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Skanner etter filer, vennligst vent." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Pågående skanning" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/nb_NO/files_trashbin.po b/l10n/nb_NO/files_trashbin.po new file mode 100644 index 00000000000..bac182fb219 --- /dev/null +++ b/l10n/nb_NO/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nb_NO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Navn" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mappe" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mapper" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fil" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} filer" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/nb_NO/settings.po b/l10n/nb_NO/settings.po index 15ea0f7eb68..a3c72924251 100644 --- a/l10n/nb_NO/settings.po +++ b/l10n/nb_NO/settings.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -83,14 +83,42 @@ msgstr "Kan ikke legge bruker til gruppen %s" msgid "Unable to remove user from group %s" msgstr "Kan ikke slette bruker fra gruppen %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Slå avBehandle " -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Slå på" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Feil" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Lagrer..." @@ -119,6 +147,10 @@ msgstr "Se applikasjonens side på apps.owncloud.org" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Oppdater" + #: templates/help.php:3 msgid "User Documentation" msgstr "Brukerdokumentasjon" @@ -270,6 +302,14 @@ msgstr "Gruppeadministrator" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/nb_NO/user_ldap.po b/l10n/nb_NO/user_ldap.po index b7660396ac4..26b645f7673 100644 --- a/l10n/nb_NO/user_ldap.po +++ b/l10n/nb_NO/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Sletting feilet" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Passord" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Gruppefilter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Bruk TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Ikke anbefalt, bruk kun for testing" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "i bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "i sekunder. En endring tømmer bufferen." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "i bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hjelp" diff --git a/l10n/nl/core.po b/l10n/nl/core.po index e331b66a8d7..6f7635cbeb9 100644 --- a/l10n/nl/core.po +++ b/l10n/nl/core.po @@ -21,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 08:10+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -169,59 +169,59 @@ msgstr "november" msgid "December" msgstr "december" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Instellingen" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "seconden geleden" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minuut geleden" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minuten geleden" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 uur geleden" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} uren geleden" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "vandaag" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "gisteren" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dagen geleden" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "vorige maand" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} maanden geleden" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "maanden geleden" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "vorig jaar" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "jaar geleden" @@ -266,11 +266,11 @@ msgstr "Het vereiste bestand {file} is niet geïnstalleerd!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Delen" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Gedeeld" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -393,11 +393,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "De update is niet geslaagd. Meld dit probleem aan bij de ownCloud community." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -554,7 +554,7 @@ msgstr "Installatie afronden" msgid "web services under your control" msgstr "Webdiensten in eigen beheer" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Afmelden" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index 0fcff7925a6..a49996ff6f2 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/files.po @@ -19,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 08:10+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,20 +29,6 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Kon %s niet verplaatsen" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Kan bestand niet hernoemen" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Er was geen bestand geladen. Onbekende fout" @@ -78,11 +64,11 @@ msgstr "Een tijdelijke map mist" msgid "Failed to write to disk" msgstr "Schrijven naar schijf mislukt" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Niet genoeg ruimte beschikbaar" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Ongeldige directory." @@ -90,15 +76,15 @@ msgstr "Ongeldige directory." msgid "Files" msgstr "Bestanden" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Stop delen" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Verwijder" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Hernoem" @@ -122,7 +108,7 @@ msgstr "annuleren" msgid "replaced {new_name}" msgstr "verving {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "ongedaan maken" @@ -130,13 +116,9 @@ msgstr "ongedaan maken" msgid "replaced {new_name} with {old_name}" msgstr "verving {new_name} met {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "delen gestopt {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "verwijderde {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "uitvoeren verwijderactie" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -154,92 +136,84 @@ msgstr "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Uw opslagruimte zit vol, Bestanden kunnen niet meer worden ge-upload of gesynchroniseerd!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Upload Fout" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Sluit" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Wachten" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 bestand wordt ge-upload" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} bestanden aan het uploaden" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Uploaden geannuleerd." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL kan niet leeg zijn." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ongeldige mapnaam. Gebruik van'Gedeeld' is voorbehouden aan Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} bestanden gescanned" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "Fout tijdens het scannen" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Naam" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Bestandsgrootte" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Laatst aangepast" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 map" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mappen" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 bestand" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} bestanden" @@ -295,32 +269,40 @@ msgstr "Map" msgid "From link" msgstr "Vanaf link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Verwijderen" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Upload afbreken" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Er bevindt zich hier niets. Upload een bestand!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Download" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Bestanden te groot" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Bestanden worden gescand, even wachten." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Er wordt gescand" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Upgraden bestandssysteem cache..." diff --git a/l10n/nl/files_encryption.po b/l10n/nl/files_encryption.po index b1ef07dc13e..16c95df107e 100644 --- a/l10n/nl/files_encryption.po +++ b/l10n/nl/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Lennart Weijl , 2013. # Richard Bos , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 10:30+0000\n" +"Last-Translator: Len \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,23 +27,23 @@ msgstr "" #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "overgeschakeld naar client side encryptie" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "" +msgstr "Verander encryptie wachtwoord naar login wachtwoord" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Controleer uw wachtwoorden en probeer het opnieuw." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Kies encryptie mode:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" @@ -58,13 +59,13 @@ msgstr "" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Geen (zonder encryptie)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Belangrijk: Zodra er voor een encryptie mode is gekozen kan deze niet meer worden gewijzigd." #: templates/settings.php:48 msgid "User specific (let the user decide)" diff --git a/l10n/nl/files_trashbin.po b/l10n/nl/files_trashbin.po new file mode 100644 index 00000000000..3c41fa7376a --- /dev/null +++ b/l10n/nl/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# André Koot , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "uitvoeren restore operatie" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Naam" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Verwijderd" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 map" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mappen" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 bestand" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} bestanden" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Niets te vinden. Uw prullenbak is leeg!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Herstellen" diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po index d3d08ece029..e7ce8853525 100644 --- a/l10n/nl/settings.po +++ b/l10n/nl/settings.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -86,14 +86,42 @@ msgstr "Niet in staat om gebruiker toe te voegen aan groep %s" msgid "Unable to remove user from group %s" msgstr "Niet in staat om gebruiker te verwijderen uit groep %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Kon de app niet bijwerken." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Bijwerken naar {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Uitschakelen" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Inschakelen" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Even geduld aub...." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Fout bij bijwerken app" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fout" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Bijgewerkt" + #: js/personal.js:69 msgid "Saving..." msgstr "Aan het bewaren....." @@ -122,6 +150,10 @@ msgstr "Zie de applicatiepagina op apps.owncloud.com" msgid "-licensed by " msgstr "-Gelicenseerd door " +#: templates/apps.php:31 +msgid "Update" +msgstr "Bijwerken" + #: templates/help.php:3 msgid "User Documentation" msgstr "Gebruikersdocumentatie" @@ -239,7 +271,7 @@ msgstr "Ontwikkeld door de \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,58 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Verwijderen serverconfiguratie mislukt" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "De configuratie is geldig en de verbinding is geslaagd!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "De configuratie is ongeldig. Controleer de ownCloud log voor meer details." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Verwijderen mislukt" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Overnemen instellingen van de recente serverconfiguratie?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Instellingen bewaren?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Kon de serverconfiguratie niet toevoegen" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Verbindingstest geslaagd" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Verbindingstest mislukt" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Bevestig verwijderen" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +86,227 @@ msgid "" msgstr "Waarschuwing: De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Serverconfiguratie" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Toevoegen serverconfiguratie" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Een Base DN per regel" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd." -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "User DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "De DN van de client gebruiker waarmee de verbinding zal worden gemaakt, bijv. uid=agent,dc=example,dc=com. Voor anonieme toegang laat je het DN en het wachtwoord leeg." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Wachtwoord" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Voor anonieme toegang, laat de DN en het wachtwoord leeg." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Gebruikers Login Filter" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definiëerd de toe te passen filter indien er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam in de login actie." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "gebruik %%uid placeholder, bijv. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Gebruikers Lijst Filter" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiëerd de toe te passen filter voor het ophalen van gebruikers." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "zonder een placeholder, bijv. \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Groep Filter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiëerd de toe te passen filter voor het ophalen van groepen." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "zonder een placeholder, bijv. \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Configuratie actief" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Poort" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Basis Gebruikers Structuur" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Backup (Replica) Host" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Een User Base DN per regel" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Basis Groupen Structuur" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Backup (Replica) Poort" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Een Group Base DN per regel" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Deactiveren hoofdserver" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Groepslid associatie" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Gebruik TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Gebruik niet voor SSL connecties, deze mislukken." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Niet-hoofdlettergevoelige LDAP server (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Schakel SSL certificaat validatie uit." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Niet aangeraden, gebruik alleen voor test doeleinden." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Gebruikers Schermnaam Veld" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Groep Schermnaam Veld" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "in bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "in seconden. Een verandering maakt de cache leeg." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Gebruikers Schermnaam Veld" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Basis Gebruikers Structuur" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Een User Base DN per regel" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Optioneel; één attribuut per regel" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Groep Schermnaam Veld" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Basis Groupen Structuur" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Een Group Base DN per regel" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Groepslid associatie" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "in bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Help" diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index f50e25d9507..e56d60adc1f 100644 --- a/l10n/nn_NO/core.po +++ b/l10n/nn_NO/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "November" msgid "December" msgstr "Desember" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Innstillingar" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "" @@ -542,7 +542,7 @@ msgstr "Fullfør oppsettet" msgid "web services under your control" msgstr "Vev tjenester under din kontroll" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Logg ut" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index 3cd6f2dfa04..dd980f0277e 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -68,11 +54,11 @@ msgstr "Manglar ei mellombels mappe" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slett" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -112,7 +98,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -120,12 +106,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Lukk" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Namn" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Storleik" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Endra" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -285,32 +259,40 @@ msgstr "Mappe" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last noko opp!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Last ned" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "For stor opplasting" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/nn_NO/files_trashbin.po b/l10n/nn_NO/files_trashbin.po new file mode 100644 index 00000000000..ef89f942345 --- /dev/null +++ b/l10n/nn_NO/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nn_NO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Namn" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po index cb70f810e6b..7c203200289 100644 --- a/l10n/nn_NO/settings.po +++ b/l10n/nn_NO/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Slå av" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Slå på" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Feil" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -113,6 +141,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Oppdater" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/nn_NO/user_ldap.po b/l10n/nn_NO/user_ldap.po index 0046c6c622c..a4e1c38181a 100644 --- a/l10n/nn_NO/user_ldap.po +++ b/l10n/nn_NO/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hjelp" diff --git a/l10n/oc/core.po b/l10n/oc/core.po index 11903a2bbcf..7e970870521 100644 --- a/l10n/oc/core.po +++ b/l10n/oc/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -156,59 +156,59 @@ msgstr "Novembre" msgid "December" msgstr "Decembre" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Configuracion" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segonda a" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minuta a" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "uèi" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ièr" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "mes passat" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "meses a" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "an passat" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "ans a" @@ -253,7 +253,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Parteja" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -541,7 +541,7 @@ msgstr "Configuracion acabada" msgid "web services under your control" msgstr "Services web jos ton contraròtle" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Sortida" diff --git a/l10n/oc/files.po b/l10n/oc/files.po index 7d952dff63c..f7e8ceb4ea3 100644 --- a/l10n/oc/files.po +++ b/l10n/oc/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -67,11 +53,11 @@ msgstr "Un dorsièr temporari manca" msgid "Failed to write to disk" msgstr "L'escriptura sul disc a fracassat" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "Fichièrs" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Non parteja" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Escafa" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Torna nomenar" @@ -111,7 +97,7 @@ msgstr "anulla" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "defar" @@ -119,12 +105,8 @@ msgstr "defar" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossible d'amontcargar lo teu fichièr qu'es un repertòri o que ten pas que 0 octet." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Error d'amontcargar" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Al esperar" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 fichièr al amontcargar" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Amontcargar anullat." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. " -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "error pendant l'exploracion" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Talha" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -284,32 +258,40 @@ msgstr "Dorsièr" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr " Anulla l'amontcargar" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Pas res dedins. Amontcarga qualquaren" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Avalcarga" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Amontcargament tròp gròs" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Los fiichièrs son a èsser explorats, " -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Exploracion en cors" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/oc/files_trashbin.po b/l10n/oc/files_trashbin.po new file mode 100644 index 00000000000..f558a70f109 --- /dev/null +++ b/l10n/oc/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: oc\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nom" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/oc/settings.po b/l10n/oc/settings.po index 624ac3293f6..95c28b3ee25 100644 --- a/l10n/oc/settings.po +++ b/l10n/oc/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "Pas capable d'apondre un usancièr al grop %s" msgid "Unable to remove user from group %s" msgstr "Pas capable de tira un usancièr del grop %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactiva" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activa" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Error" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Enregistra..." @@ -112,6 +140,10 @@ msgstr "Agacha la pagina d'applications en cò de apps.owncloud.com" msgid "-licensed by " msgstr "-licençiat per " +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -263,6 +295,14 @@ msgstr "Grop Admin" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/oc/user_ldap.po b/l10n/oc/user_ldap.po index f3e7f309794..db410b6652d 100644 --- a/l10n/oc/user_ldap.po +++ b/l10n/oc/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Fracàs d'escafatge" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ajuda" diff --git a/l10n/pl/core.po b/l10n/pl/core.po index ba00a2aa5f5..d685740ac94 100644 --- a/l10n/pl/core.po +++ b/l10n/pl/core.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -165,59 +165,59 @@ msgstr "Listopad" msgid "December" msgstr "Grudzień" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ustawienia" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekund temu" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minute temu" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minut temu" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 godzine temu" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} godzin temu" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "dziś" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "wczoraj" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dni temu" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "ostani miesiąc" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} miesięcy temu" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "miesięcy temu" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "ostatni rok" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "lat temu" @@ -262,11 +262,11 @@ msgstr "Żądany plik {file} nie jest zainstalowany!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Udostępnij" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Udostępniono" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -550,7 +550,7 @@ msgstr "Zakończ konfigurowanie" msgid "web services under your control" msgstr "usługi internetowe pod kontrolą" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Wylogowuje użytkownika" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index 273a818baff..b6554c153a8 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -25,20 +25,6 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Nie można było przenieść %s - Plik o takiej nazwie już istnieje" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Nie można było przenieść %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Nie można zmienić nazwy pliku" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Plik nie został załadowany. Nieznany błąd" @@ -74,11 +60,11 @@ msgstr "Brak katalogu tymczasowego" msgid "Failed to write to disk" msgstr "Błąd zapisu na dysk" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Za mało miejsca" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Zła ścieżka." @@ -86,15 +72,15 @@ msgstr "Zła ścieżka." msgid "Files" msgstr "Pliki" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Nie udostępniaj" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Usuwa element" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Zmień nazwę" @@ -118,7 +104,7 @@ msgstr "anuluj" msgid "replaced {new_name}" msgstr "zastąpiony {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "wróć" @@ -126,13 +112,9 @@ msgstr "wróć" msgid "replaced {new_name} with {old_name}" msgstr "zastąpiony {new_name} z {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Udostępniane wstrzymane {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "usunięto {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,86 +138,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nie można wczytać pliku jeśli jest katalogiem lub ma 0 bajtów" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Błąd wczytywania" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zamknij" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Oczekujące" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 plik wczytany" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} przesyłanie plików" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Wczytywanie anulowane." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Wysyłanie pliku jest w toku. Teraz opuszczając stronę wysyłanie zostanie anulowane." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL nie może być pusty." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nazwa folderu nieprawidłowa. Wykorzystanie \"Shared\" jest zarezerwowane przez Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} pliki skanowane" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "Wystąpił błąd podczas skanowania" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nazwa" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Rozmiar" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Czas modyfikacji" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 folder" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} foldery" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 plik" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} pliki" @@ -291,32 +265,40 @@ msgstr "Katalog" msgid "From link" msgstr "Z linku" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Przestań wysyłać" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Brak zawartości. Proszę wysłać pliki!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Pobiera element" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Wysyłany plik ma za duży rozmiar" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Pliki które próbujesz przesłać, przekraczają maksymalną, dopuszczalną wielkość." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Skanowanie plików, proszę czekać." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Aktualnie skanowane" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/pl/files_trashbin.po b/l10n/pl/files_trashbin.po new file mode 100644 index 00000000000..748f62eaace --- /dev/null +++ b/l10n/pl/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nazwa" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 folder" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} foldery" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 plik" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} pliki" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Przywróć" diff --git a/l10n/pl/settings.po b/l10n/pl/settings.po index 3bca8654b80..ffae537e261 100644 --- a/l10n/pl/settings.po +++ b/l10n/pl/settings.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -86,14 +86,42 @@ msgstr "Nie można dodać użytkownika do grupy %s" msgid "Unable to remove user from group %s" msgstr "Nie można usunąć użytkownika z grupy %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Wyłącz" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Włącz" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Błąd" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Zapisywanie..." @@ -122,6 +150,10 @@ msgstr "Zobacz stronę aplikacji na apps.owncloud.com" msgid "-licensed by " msgstr "-licencjonowane przez " +#: templates/apps.php:31 +msgid "Update" +msgstr "Zaktualizuj" + #: templates/help.php:3 msgid "User Documentation" msgstr "Dokumentacja użytkownika" @@ -273,6 +305,14 @@ msgstr "Grupa Admin" msgid "Storage" msgstr "Magazyn" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Domyślny" diff --git a/l10n/pl/user_ldap.po b/l10n/pl/user_ldap.po index cd8904acc25..1e8b58da0e5 100644 --- a/l10n/pl/user_ldap.po +++ b/l10n/pl/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,58 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Skasowanie nie powiodło się" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +86,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Baza DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Użytkownik DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN użytkownika klienta, z którym powiązanie wykonuje się, np. uid=agent,dc=example,dc=com. Dla dostępu anonimowego pozostawić DN i hasło puste" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Hasło" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Dla dostępu anonimowego pozostawić DN i hasło puste." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtr logowania użytkownika" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definiuje filtr do zastosowania, gdy podejmowana jest próba logowania. %%uid zastępuje nazwę użytkownika w działaniu logowania." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Użyj %%uid zastępczy, np. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Lista filtrów użytkownika" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiuje filtry do zastosowania, podczas pobierania użytkowników." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Grupa filtrów" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiuje filtry do zastosowania, podczas pobierania grup." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Drzewo bazy użytkowników" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Drzewo bazy grup" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Członek grupy stowarzyszenia" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Użyj TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Nie używaj SSL dla połączeń, jeśli się nie powiedzie." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Wielkość liter serwera LDAP (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Wyłączyć sprawdzanie poprawności certyfikatu SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Niezalecane, użyj tylko testowo." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Pole wyświetlanej nazwy użytkownika" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Pole wyświetlanej nazwy grupy" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atrybut LDAP służy do generowania nazwy grup ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "w bajtach" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "w sekundach. Zmiana opróżnia pamięć podręczną." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Pole wyświetlanej nazwy użytkownika" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Drzewo bazy użytkowników" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Pole wyświetlanej nazwy grupy" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atrybut LDAP służy do generowania nazwy grup ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Drzewo bazy grup" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Członek grupy stowarzyszenia" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "w bajtach" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pomoc" diff --git a/l10n/pl_PL/files.po b/l10n/pl_PL/files.po index 81c77fd71ea..ab00380cb6b 100644 --- a/l10n/pl_PL/files.po +++ b/l10n/pl_PL/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 16:02+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,20 +17,6 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -66,11 +52,11 @@ msgstr "" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -78,15 +64,15 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -110,7 +96,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -118,12 +104,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -148,86 +130,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -283,32 +257,40 @@ msgstr "" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/pl_PL/files_trashbin.po b/l10n/pl_PL/files_trashbin.po new file mode 100644 index 00000000000..ce226803d8a --- /dev/null +++ b/l10n/pl_PL/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl_PL\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/pl_PL/settings.po b/l10n/pl_PL/settings.po index 3bf2e6878b8..f95716114e3 100644 --- a/l10n/pl_PL/settings.po +++ b/l10n/pl_PL/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -75,14 +75,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -111,6 +139,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Uaktualnienie" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -262,6 +294,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/pl_PL/user_ldap.po b/l10n/pl_PL/user_ldap.po index 36eb526f464..1b11dc6b24e 100644 --- a/l10n/pl_PL/user_ldap.po +++ b/l10n/pl_PL/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "" diff --git a/l10n/pt_BR/core.po b/l10n/pt_BR/core.po index 843960355d6..6a49a47bbd4 100644 --- a/l10n/pt_BR/core.po +++ b/l10n/pt_BR/core.po @@ -10,6 +10,7 @@ # Guilherme Maluf Balzana , 2012. # , 2012. # , 2012. +# Rodrigo Tavares , 2013. # Thiago Vicente , 2012. # Unforgiving Fallout <>, 2012. # Van Der Fran , 2011, 2012. @@ -17,9 +18,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -30,26 +31,26 @@ msgstr "" #: ajax/share.php:85 #, php-format msgid "User %s shared a file with you" -msgstr "" +msgstr "O usuário %s compartilhou um arquivo com você" #: ajax/share.php:87 #, php-format msgid "User %s shared a folder with you" -msgstr "" +msgstr "O usuário %s compartilhou uma pasta com você" #: ajax/share.php:89 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "" +msgstr "O usuário %s compartilhou com você o arquivo \"%s\", que está disponível para download em: %s" #: ajax/share.php:91 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "" +msgstr "O usuário %s compartilhou com você a pasta \"%s\", que está disponível para download em: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -165,59 +166,59 @@ msgstr "Novembro" msgid "December" msgstr "Dezembro" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Configurações" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minuto atrás" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minutos atrás" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 hora atrás" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} horas atrás" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hoje" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ontem" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dias atrás" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "último mês" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} meses atrás" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "meses atrás" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "último ano" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "anos atrás" @@ -262,11 +263,11 @@ msgstr "O arquivo {file} necessário não está instalado!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Compartilhar" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Compartilhados" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -306,11 +307,11 @@ msgstr "Senha" #: js/share.js:189 msgid "Email link to person" -msgstr "" +msgstr "Enviar link por e-mail" #: js/share.js:190 msgid "Send" -msgstr "" +msgstr "Enviar" #: js/share.js:194 msgid "Set expiration date" @@ -378,22 +379,22 @@ msgstr "Erro ao definir data de expiração" #: js/share.js:598 msgid "Sending ..." -msgstr "" +msgstr "Enviando ..." #: js/share.js:609 msgid "Email sent" -msgstr "" +msgstr "E-mail enviado" #: js/update.js:14 msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "A atualização falhou. Por favor, relate este problema para a comunidade ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "A atualização teve êxito. Você será redirecionado ao ownCloud agora." #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -550,7 +551,7 @@ msgstr "Concluir configuração" msgid "web services under your control" msgstr "web services sob seu controle" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Sair" @@ -591,4 +592,4 @@ msgstr "próximo" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" +msgstr "Atualizando ownCloud para a versão %s, isto pode levar algum tempo." diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 38713a5ae3c..c00ceb550f5 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/files.po @@ -7,6 +7,7 @@ # , 2012. # Guilherme Maluf Balzana , 2012. # , 2012. +# Rodrigo Tavares , 2013. # , 2012. # Thiago Vicente , 2012. # Unforgiving Fallout <>, 2012. @@ -15,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -25,20 +26,6 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nenhum arquivo foi transferido. Erro desconhecido" @@ -74,27 +61,27 @@ msgstr "Pasta temporária não encontrada" msgid "Failed to write to disk" msgstr "Falha ao escrever no disco" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." -msgstr "" +msgstr "Diretório inválido." #: appinfo/app.php:10 msgid "Files" msgstr "Arquivos" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Descompartilhar" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Excluir" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Renomear" @@ -118,7 +105,7 @@ msgstr "cancelar" msgid "replaced {new_name}" msgstr "substituído {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "desfazer" @@ -126,21 +113,17 @@ msgstr "desfazer" msgid "replaced {new_name} with {old_name}" msgstr "Substituído {old_name} por {new_name} " -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} não compartilhados" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} apagados" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' é um nome de arquivo inválido." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "O nome do arquivo não pode estar vazio." #: js/files.js:64 msgid "" @@ -156,86 +139,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossível enviar seus arquivo como diretório ou ele tem 0 bytes." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Erro de envio" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Fechar" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendente" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "enviando 1 arquivo" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "Enviando {count} arquivos" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Upload em andamento. Sair da página agora resultará no cancelamento do envio." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL não pode ficar em branco" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Nome de pasta inválido. O uso de 'Shared' é reservado para o Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} arquivos scaneados" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "erro durante verificação" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamanho" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 arquivo" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} arquivos" @@ -291,32 +266,40 @@ msgstr "Pasta" msgid "From link" msgstr "Do link" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancelar upload" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nada aqui.Carrege alguma coisa!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Baixar" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Arquivo muito grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Arquivos sendo escaneados, por favor aguarde." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Scanning atual" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/pt_BR/files_encryption.po b/l10n/pt_BR/files_encryption.po index ee24c51910d..5c733f9c615 100644 --- a/l10n/pt_BR/files_encryption.po +++ b/l10n/pt_BR/files_encryption.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Rodrigo Tavares , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 16:40+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,53 +23,53 @@ msgstr "" msgid "" "Please switch to your ownCloud client and change your encryption password to" " complete the conversion." -msgstr "" +msgstr "Por favor, vá ao seu cliente ownCloud e mude sua criptografia de senha para completar a conversão." #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "alterado para criptografia por parte do cliente" #: js/settings-personal.js:21 msgid "Change encryption password to login password" -msgstr "" +msgstr "Mudar senha de criptografia para senha de login" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Por favor, verifique suas senhas e tente novamente." #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" -msgstr "" +msgstr "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Escolha o modo de criptografia:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "Criptografia por parte do cliente (mais segura, mas torna impossível acessar seus dados a partir da interface web)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "Criptografia por parte do servidor (permite que você acesse seus arquivos da interface web e do cliente desktop)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Nenhuma (sem qualquer criptografia)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Importante: Uma vez que tiver escolhido um modo de criptografia, não há um meio de voltar atrás" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "Específico por usuário (deixa o usuário decidir)" #: templates/settings.php:65 msgid "Encryption" diff --git a/l10n/pt_BR/files_external.po b/l10n/pt_BR/files_external.po index cb394018175..3c17453294e 100644 --- a/l10n/pt_BR/files_external.po +++ b/l10n/pt_BR/files_external.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Rodrigo Tavares , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 15:50+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,11 +27,11 @@ msgstr "Acesso concedido" msgid "Error configuring Dropbox storage" msgstr "Erro ao configurar armazenamento do Dropbox" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 msgid "Grant access" msgstr "Permitir acesso" -#: js/dropbox.js:73 js/google.js:72 +#: js/dropbox.js:73 js/google.js:73 msgid "Fill out all required fields" msgstr "Preencha todos os campos obrigatórios" @@ -38,22 +39,22 @@ msgstr "Preencha todos os campos obrigatórios" msgid "Please provide a valid Dropbox app key and secret." msgstr "Por favor forneça um app key e secret válido do Dropbox" -#: js/google.js:26 js/google.js:73 js/google.js:78 +#: js/google.js:26 js/google.js:74 js/google.js:79 msgid "Error configuring Google Drive storage" msgstr "Erro ao configurar armazenamento do Google Drive" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Aviso: \"smbclient\" não está instalado. Não será possível montar compartilhamentos de CIFS/SMB. Por favor, peça ao seu administrador do sistema para instalá-lo." -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Aviso: O suporte para FTP do PHP não está ativado ou instalado. Não será possível montar compartilhamentos FTP. Por favor, peça ao seu administrador do sistema para instalá-lo." #: templates/settings.php:3 msgid "External Storage" @@ -100,7 +101,7 @@ msgid "Users" msgstr "Usuários" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Remover" @@ -112,10 +113,10 @@ msgstr "Habilitar Armazenamento Externo do Usuário" msgid "Allow users to mount their own external storage" msgstr "Permitir usuários a montar seus próprios armazenamentos externos" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Certificados SSL raíz" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" msgstr "Importar Certificado Raíz" diff --git a/l10n/pt_BR/files_trashbin.po b/l10n/pt_BR/files_trashbin.po new file mode 100644 index 00000000000..c6586d1029b --- /dev/null +++ b/l10n/pt_BR/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Rodrigo Tavares , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "realizar operação de restauração" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nome" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Excluído" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 pasta" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} pastas" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 arquivo" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} arquivos" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Nada aqui. Sua lixeira está vazia!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Restaurar" diff --git a/l10n/pt_BR/files_versions.po b/l10n/pt_BR/files_versions.po index 63442db0efe..d6cf483ba38 100644 --- a/l10n/pt_BR/files_versions.po +++ b/l10n/pt_BR/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 15:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pt_BR/lib.po b/l10n/pt_BR/lib.po index f1a550574ba..d20d57c8145 100644 --- a/l10n/pt_BR/lib.po +++ b/l10n/pt_BR/lib.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 15:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -44,23 +44,23 @@ msgstr "Aplicações" msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Download ZIP está desligado." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Arquivos precisam ser baixados um de cada vez." -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" msgstr "Voltar para Arquivos" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." msgstr "Arquivos selecionados são muito grandes para gerar arquivo zip." -#: helper.php:228 +#: helper.php:226 msgid "couldn't be determined" msgstr "" diff --git a/l10n/pt_BR/settings.po b/l10n/pt_BR/settings.po index 06a011df783..7b1b23da58a 100644 --- a/l10n/pt_BR/settings.po +++ b/l10n/pt_BR/settings.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -29,7 +29,7 @@ msgstr "" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" -msgstr "Não foi possivel carregar lista da App Store" +msgstr "Não foi possível carregar lista da App Store" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -37,35 +37,35 @@ msgstr "Grupo já existe" #: ajax/creategroup.php:19 msgid "Unable to add group" -msgstr "Não foi possivel adicionar grupo" +msgstr "Não foi possível adicionar grupo" #: ajax/enableapp.php:11 msgid "Could not enable app. " -msgstr "Não pôde habilitar aplicação" +msgstr "Não foi possível habilitar aplicativo." #: ajax/lostpassword.php:12 msgid "Email saved" -msgstr "Email gravado" +msgstr "E-mail guardado" #: ajax/lostpassword.php:14 msgid "Invalid email" -msgstr "Email inválido" +msgstr "E-mail inválido" #: ajax/removegroup.php:13 msgid "Unable to delete group" -msgstr "Não foi possivel remover grupo" +msgstr "Não foi possível remover grupo" #: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:18 msgid "Authentication error" -msgstr "erro de autenticação" +msgstr "Erro de autenticação" #: ajax/removeuser.php:24 msgid "Unable to delete user" -msgstr "Não foi possivel remover usuário" +msgstr "Não foi possível remover usuário" #: ajax/setlanguage.php:15 msgid "Language changed" -msgstr "Mudou Idioma" +msgstr "Idioma alterado" #: ajax/setlanguage.php:17 ajax/setlanguage.php:20 msgid "Invalid request" @@ -78,28 +78,56 @@ msgstr "Admins não podem se remover do grupo admin" #: ajax/togglegroups.php:28 #, php-format msgid "Unable to add user to group %s" -msgstr "Não foi possivel adicionar usuário ao grupo %s" +msgstr "Não foi possível adicionar usuário ao grupo %s" #: ajax/togglegroups.php:34 #, php-format msgid "Unable to remove user from group %s" -msgstr "Não foi possivel remover usuário ao grupo %s" +msgstr "Não foi possível remover usuário do grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" -msgstr "Desabilitado" +msgstr "Desabilitar" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" -msgstr "Habilitado" +msgstr "Habilitar" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Erro" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" #: js/personal.js:69 msgid "Saving..." -msgstr "Gravando..." +msgstr "Guardando..." #: personal.php:34 personal.php:35 msgid "__language_name__" -msgstr "Português do Brasil" +msgstr "Português (Brasil)" #: templates/apps.php:10 msgid "Add your App" @@ -111,7 +139,7 @@ msgstr "Mais Apps" #: templates/apps.php:24 msgid "Select an App" -msgstr "Selecione uma Aplicação" +msgstr "Selecione um Aplicativo" #: templates/apps.php:28 msgid "See application page at apps.owncloud.com" @@ -121,21 +149,25 @@ msgstr "Ver página do aplicativo em apps.owncloud.com" msgid "-licensed by " msgstr "-licenciado por " +#: templates/apps.php:31 +msgid "Update" +msgstr "Atualizar" + #: templates/help.php:3 msgid "User Documentation" -msgstr "" +msgstr "Documentação de Usuário" #: templates/help.php:4 msgid "Administrator Documentation" -msgstr "" +msgstr "Documentação de Administrador" #: templates/help.php:6 msgid "Online Documentation" -msgstr "" +msgstr "Documentação Online" #: templates/help.php:7 msgid "Forum" -msgstr "" +msgstr "Fórum" #: templates/help.php:9 msgid "Bugtracker" @@ -143,7 +175,7 @@ msgstr "" #: templates/help.php:11 msgid "Commercial Support" -msgstr "" +msgstr "Suporte Comercial" #: templates/personal.php:8 #, php-format @@ -156,15 +188,15 @@ msgstr "Clientes" #: templates/personal.php:13 msgid "Download Desktop Clients" -msgstr "" +msgstr "Baixar Clientes Desktop" #: templates/personal.php:14 msgid "Download Android Client" -msgstr "" +msgstr "Baixar Cliente Android" #: templates/personal.php:15 msgid "Download iOS Client" -msgstr "" +msgstr "Baixar Cliente iOS" #: templates/personal.php:21 templates/users.php:23 templates/users.php:81 msgid "Password" @@ -196,15 +228,15 @@ msgstr "Alterar senha" #: templates/personal.php:33 msgid "Email" -msgstr "Email" +msgstr "E-mail" #: templates/personal.php:34 msgid "Your email address" -msgstr "Seu endereço de email" +msgstr "Seu endereço de e-mail" #: templates/personal.php:35 msgid "Fill in an email address to enable password recovery" -msgstr "Preencha um endereço de email para habilitar a recuperação de senha" +msgstr "Preencha um endereço de e-mail para habilitar a recuperação de senha" #: templates/personal.php:41 templates/personal.php:42 msgid "Language" @@ -216,15 +248,15 @@ msgstr "Ajude a traduzir" #: templates/personal.php:52 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" #: templates/personal.php:54 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "Usar este endereço para conectar-se ao seu ownCloud no seu gerenciador de arquivos" #: templates/personal.php:63 msgid "Version" -msgstr "" +msgstr "Versão" #: templates/personal.php:65 msgid "" @@ -238,7 +270,7 @@ msgstr "Desenvolvido pela \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Remoção falhou" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Host" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN Base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Você pode especificar DN Base para usuários e grupos na guia Avançada" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN Usuário" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Senha" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro de Login de Usuário" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro pra aplicar ao efetuar uma tentativa de login. %%uuid substitui o nome de usuário na ação de login." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "use %%uid placeholder, ex. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtro de Lista de Usuário" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Define filtro a aplicar ao obter usuários." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtro de Grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define o filtro a aplicar ao obter grupos." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Porta" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Árvore de Usuário Base" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Árvore de Grupo Base" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Associação Grupo-Membro" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Não use-o para conexões SSL, pois falhará." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP sensível à caixa alta (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Desligar validação de certificado SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Não recomendado, use somente para testes." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Campo Nome de Exibição de Usuário" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "O atributo LDAP para usar para gerar nome ownCloud do usuário." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Campo Nome de Exibição de Grupo" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "O atributo LDAP para usar para gerar nome ownCloud do grupo." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "em bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "em segundos. Uma mudança esvaziará o cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Campo Nome de Exibição de Usuário" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "O atributo LDAP para usar para gerar nome ownCloud do usuário." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Árvore de Usuário Base" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Campo Nome de Exibição de Grupo" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "O atributo LDAP para usar para gerar nome ownCloud do grupo." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Árvore de Grupo Base" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Associação Grupo-Membro" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "em bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ajuda" diff --git a/l10n/pt_BR/user_webdavauth.po b/l10n/pt_BR/user_webdavauth.po index db7d62a36b8..be539b59a8a 100644 --- a/l10n/pt_BR/user_webdavauth.po +++ b/l10n/pt_BR/user_webdavauth.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rodrigo Tavares , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 16:22+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,15 +21,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Autenticação WebDAV" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" #: templates/settings.php:6 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "O ownCloud enviará as credenciais do usuário para esta URL. Este plugin verifica a resposta e interpreta o os códigos de status do HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como credenciais válidas." diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index afaa00874d6..2c30f25b723 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/core.po @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" +"Last-Translator: Duarte Velez Grilo \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -163,59 +163,59 @@ msgstr "Novembro" msgid "December" msgstr "Dezembro" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Definições" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "Minutos atrás" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "Há 1 minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minutos atrás" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Há 1 hora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Há {hours} horas atrás" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hoje" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ontem" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dias atrás" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "ultímo mês" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Há {months} meses atrás" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "meses atrás" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "ano passado" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "anos atrás" @@ -260,11 +260,11 @@ msgstr "O ficheiro necessário {file} não está instalado!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Partilhar" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Partilhado" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -548,7 +548,7 @@ msgstr "Acabar instalação" msgid "web services under your control" msgstr "serviços web sob o seu controlo" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Sair" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 38429e8ec21..70714ed855d 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -9,14 +9,15 @@ # Duarte Velez Grilo , 2012. # , 2012. # Helder Meneses , 2012. +# Miguel Sousa , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:04+0100\n" -"PO-Revision-Date: 2013-01-28 17:06+0000\n" -"Last-Translator: Duarte Velez Grilo \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 02:40+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,20 +25,6 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Não foi possível move o ficheiro %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Não foi possível renomear o ficheiro" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nenhum ficheiro foi carregado. Erro desconhecido" @@ -73,11 +60,11 @@ msgstr "Falta uma pasta temporária" msgid "Failed to write to disk" msgstr "Falhou a escrita no disco" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Não há espaço suficiente em disco" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Espaço em disco insuficiente!" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Directório Inválido" @@ -85,15 +72,15 @@ msgstr "Directório Inválido" msgid "Files" msgstr "Ficheiros" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Deixar de partilhar" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Apagar" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Renomear" @@ -117,7 +104,7 @@ msgstr "cancelar" msgid "replaced {new_name}" msgstr "{new_name} substituido" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "desfazer" @@ -125,13 +112,9 @@ msgstr "desfazer" msgid "replaced {new_name} with {old_name}" msgstr "substituido {new_name} por {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "{files} não partilhado(s)" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "{files} eliminado(s)" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "Executar a tarefa de apagar" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -155,86 +138,78 @@ msgstr "O seu armazenamento está cheio, os ficheiros não podem ser sincronizad msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Erro no envio" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Fechar" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pendente" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "A enviar 1 ficheiro" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "A carregar {count} ficheiros" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "O URL não pode estar vazio." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de pasta inválido. O Uso de 'shared' é reservado para o ownCloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} ficheiros analisados" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "erro ao analisar" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamanho" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ficheiros" @@ -290,32 +265,40 @@ msgstr "Pasta" msgid "From link" msgstr "Da ligação" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Lixo" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Cancelar envio" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Vazio. Envie alguma coisa!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Transferir" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Envio muito grande" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiros que está a tentar enviar excedem o tamanho máximo de envio permitido neste servidor." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Os ficheiros estão a ser analisados, por favor aguarde." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Análise actual" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Atualizar cache do sistema de ficheiros..." diff --git a/l10n/pt_PT/files_trashbin.po b/l10n/pt_PT/files_trashbin.po new file mode 100644 index 00000000000..3ff3c4b6238 --- /dev/null +++ b/l10n/pt_PT/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Daniel Pinto , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 02:40+0000\n" +"Last-Translator: Mouxy \n" +"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_PT\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "Restaurar" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nome" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Apagado" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 pasta" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} pastas" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ficheiro" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} ficheiros" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Não ha ficheiros. O lixo está vazio" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Restaurar" diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po index a2de9c1e4c6..9071ca3e16c 100644 --- a/l10n/pt_PT/settings.po +++ b/l10n/pt_PT/settings.po @@ -4,17 +4,20 @@ # # Translators: # , 2012. +# Daniel Pinto , 2013. +# , 2013. # Duarte Velez Grilo , 2012-2013. # , 2012. # Helder Meneses , 2012. +# Miguel Sousa , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 02:40+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -80,14 +83,42 @@ msgstr "Impossível acrescentar utilizador ao grupo %s" msgid "Unable to remove user from group %s" msgstr "Impossível apagar utilizador do grupo %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Não foi possível actualizar a aplicação." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Actualizar para a versão {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Desactivar" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activar" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Por favor aguarde..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "A Actualizar..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Erro enquanto actualizava a aplicação" + +#: js/apps.js:87 +msgid "Error" +msgstr "Erro" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Actualizado" + #: js/personal.js:69 msgid "Saving..." msgstr "A guardar..." @@ -116,6 +147,10 @@ msgstr "Ver a página da aplicação em apps.owncloud.com" msgid "-licensed by " msgstr "-licenciado por " +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualizar" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentação de Utilizador" @@ -233,7 +268,7 @@ msgstr "Desenvolvido pela , 2012-2013. +# Daniel Pinto , 2013. # Duarte Velez Grilo , 2012. # Helder Meneses , 2012. # Nelson Rosado , 2012. @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 00:52+0000\n" -"Last-Translator: Mouxy \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +22,58 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Erro ao eliminar as configurações do servidor" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "A configuração está correcta e foi possível estabelecer a ligação!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "A configuração está correcta, mas não foi possível estabelecer o \"laço\", por favor, verifique as configurações do servidor e as credenciais." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "A configuração é inválida. Por favor, veja o log do ownCloud para mais detalhes." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Erro ao apagar" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Assumir as configurações da configuração do servidor mais recente?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Manter as definições?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Não foi possível adicionar as configurações do servidor." + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Teste de conecção passado com sucesso." + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Erro no teste de conecção." + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Deseja realmente apagar as configurações de servidor actuais?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Confirmar a operação de apagar" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -35,165 +88,227 @@ msgid "" msgstr "Aviso: O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Configurações do servidor" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Adicionar configurações do servidor" + +#: templates/settings.php:21 msgid "Host" msgstr "Anfitrião" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Uma base DN por linho" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Pode especificar o ND Base para utilizadores e grupos no separador Avançado" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN do utilizador" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "O DN to cliente " -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Palavra-passe" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acesso anónimo, deixe DN e a Palavra-passe vazios." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtro de login de utilizador" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro a aplicar, para aquando de uma tentativa de login. %%uid substitui o nome de utilizador utilizado." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Use a variável %%uid , exemplo: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Utilizar filtro" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Defina o filtro a aplicar, ao recuperar utilizadores." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sem variável. Exemplo: \"objectClass=pessoa\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filtrar por grupo" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Defina o filtro a aplicar, ao recuperar grupos." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Configuração activa" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Se não estiver marcada, esta definição não será tida em conta." + +#: templates/settings.php:34 msgid "Port" msgstr "Porto" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Base da árvore de utilizadores." +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Servidor de Backup (Réplica)" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Uma base de utilizador DN por linha" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Forneça um servidor (anfitrião) de backup. Deve ser uma réplica do servidor principal de LDAP/AD " -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Base da árvore de grupos." +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Porta do servidor de backup (Replica)" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Uma base de grupo DN por linha" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Desactivar servidor principal" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Associar utilizador ao grupo." +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Não use para ligações SSL, irá falhar." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP (Windows) não sensível a maiúsculas." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Desligar a validação de certificado SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Não recomendado, utilizado apenas para testes!" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Mostrador do nome de utilizador." - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atributo LDAP para gerar o nome de utilizador do ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Mostrador do nome do grupo." - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atributo LDAP para gerar o nome do grupo do ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "em bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "em segundos. Uma alteração esvazia a cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Mostrador do nome de utilizador." + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atributo LDAP para gerar o nome de utilizador do ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Base da árvore de utilizadores." + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Uma base de utilizador DN por linha" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Utilizar atributos de pesquisa" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Opcional; Um atributo por linha" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Mostrador do nome do grupo." + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atributo LDAP para gerar o nome do grupo do ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Base da árvore de grupos." + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Uma base de grupo DN por linha" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Atributos de pesquisa de grupo" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Associar utilizador ao grupo." + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "em bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ajuda" diff --git a/l10n/ro/core.po b/l10n/ro/core.po index 8bf554fdbea..65658de58b3 100644 --- a/l10n/ro/core.po +++ b/l10n/ro/core.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -161,59 +161,59 @@ msgstr "Noiembrie" msgid "December" msgstr "Decembrie" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Configurări" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "secunde în urmă" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minut în urmă" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minute in urma" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Acum o ora" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} ore în urmă" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "astăzi" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ieri" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} zile in urma" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "ultima lună" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} luni în urmă" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "luni în urmă" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "ultimul an" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "ani în urmă" @@ -258,7 +258,7 @@ msgstr "Fișierul obligatoriu {file} nu este instalat!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Partajează" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -546,7 +546,7 @@ msgstr "Finalizează instalarea" msgid "web services under your control" msgstr "servicii web controlate de tine" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Ieșire" diff --git a/l10n/ro/files.po b/l10n/ro/files.po index e5a64577ebc..e6df42f7c71 100644 --- a/l10n/ro/files.po +++ b/l10n/ro/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -23,20 +23,6 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Nu se poate de mutat %s - Fișier cu acest nume deja există" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Nu s-a putut muta %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Nu s-a putut redenumi fișierul" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nici un fișier nu a fost încărcat. Eroare necunoscută" @@ -72,11 +58,11 @@ msgstr "Lipsește un dosar temporar" msgid "Failed to write to disk" msgstr "Eroare la scriere pe disc" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Nu este suficient spațiu disponibil" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Director invalid." @@ -84,15 +70,15 @@ msgstr "Director invalid." msgid "Files" msgstr "Fișiere" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Anulează partajarea" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Șterge" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Redenumire" @@ -116,7 +102,7 @@ msgstr "anulare" msgid "replaced {new_name}" msgstr "inlocuit {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "Anulează ultima acțiune" @@ -124,13 +110,9 @@ msgstr "Anulează ultima acțiune" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} inlocuit cu {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "nedistribuit {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "Sterse {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -154,86 +136,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Eroare la încărcare" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Închide" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "În așteptare" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "un fișier se încarcă" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} fisiere incarcate" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Încărcare anulată." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Adresa URL nu poate fi goală." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Invalid folder name. Usage of 'Shared' is reserved by Ownclou" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} fisiere scanate" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "eroare la scanarea" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nume" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimensiune" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 folder" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} foldare" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fisier" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fisiere" @@ -289,32 +263,40 @@ msgstr "Dosar" msgid "From link" msgstr "de la adresa" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Anulează încărcarea" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Nimic aici. Încarcă ceva!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Descarcă" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Fișierul încărcat este prea mare" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Fișierele sunt scanate, te rog așteptă." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "În curs de scanare" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ro/files_trashbin.po b/l10n/ro/files_trashbin.po new file mode 100644 index 00000000000..180def499df --- /dev/null +++ b/l10n/ro/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Nume" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 folder" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} foldare" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fisier" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} fisiere" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ro/settings.po b/l10n/ro/settings.po index 9773ea8fced..e538f042146 100644 --- a/l10n/ro/settings.po +++ b/l10n/ro/settings.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -82,14 +82,42 @@ msgstr "Nu s-a putut adăuga utilizatorul la grupul %s" msgid "Unable to remove user from group %s" msgstr "Nu s-a putut elimina utilizatorul din grupul %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Dezactivați" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Activați" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Eroare" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Salvez..." @@ -118,6 +146,10 @@ msgstr "Vizualizează pagina applicației pe apps.owncloud.com" msgid "-licensed by " msgstr "-licențiat " +#: templates/apps.php:31 +msgid "Update" +msgstr "Actualizare" + #: templates/help.php:3 msgid "User Documentation" msgstr "Documentație utilizator" @@ -269,6 +301,14 @@ msgstr "Grupul Admin " msgid "Storage" msgstr "Stocare" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Implicită" diff --git a/l10n/ro/user_ldap.po b/l10n/ro/user_ldap.po index a57e18531e1..388d6f13f21 100644 --- a/l10n/ro/user_ldap.po +++ b/l10n/ro/user_ldap.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-26 00:09+0100\n" -"PO-Revision-Date: 2013-01-25 23:02+0000\n" -"Last-Translator: Dimon Pockemon <>\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,58 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Ștergerea a eșuat" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +86,227 @@ msgid "" msgstr "Atenție Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Gazdă" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Puteți omite protocolul, decât dacă folosiți SSL. Atunci se începe cu ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN de bază" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Un Base DN pe linie" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puteți să specificați DN de bază pentru utilizatori și grupuri în fila Avansat" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN al utilizatorului" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN-ul clientului utilizator cu care se va efectua conectarea, d.e. uid=agent,dc=example,dc=com. Pentru acces anonim, lăsăți DN și Parolă libere." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Parolă" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Pentru acces anonim, lăsați DN și Parolă libere." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filtrare după Nume Utilizator" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definește fitrele care trebuie aplicate, când se încearcă conectarea. %%uid înlocuiește numele utilizatorului în procesul de conectare." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "folosiți substituentul %%uid , d.e. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filtrarea după lista utilizatorilor" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definește filtrele care trebui aplicate, când se peiau utilzatorii." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "fără substituenți, d.e. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Fitrare Grup" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definește filtrele care se aplică, când se preiau grupurile." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "fără substituenți, d.e. \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Portul" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Arborele de bază al Utilizatorilor" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Un User Base DN pe linie" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Arborele de bază al Grupurilor" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Un Group Base DN pe linie" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asocierea Grup-Membru" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Utilizează TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "A nu se utiliza pentru conexiuni SSL, va eșua." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Server LDAP insensibil la majuscule (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Oprește validarea certificatelor SSL " -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nu este recomandat, a se utiliza doar pentru testare." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Câmpul cu numele vizibil al utilizatorului" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atributul LDAP folosit pentru a genera numele de utilizator din ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Câmpul cu numele grupului" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "în octeți" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "în secunde. O schimbare curăță memoria tampon." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Câmpul cu numele vizibil al utilizatorului" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atributul LDAP folosit pentru a genera numele de utilizator din ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Arborele de bază al Utilizatorilor" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Un User Base DN pe linie" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Câmpul cu numele grupului" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Arborele de bază al Grupurilor" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Un Group Base DN pe linie" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asocierea Grup-Membru" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "în octeți" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Ajutor" diff --git a/l10n/ru/core.po b/l10n/ru/core.po index bcc0d346275..d7d104fdf6b 100644 --- a/l10n/ru/core.po +++ b/l10n/ru/core.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -165,59 +165,59 @@ msgstr "Ноябрь" msgid "December" msgstr "Декабрь" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Настройки" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "несколько секунд назад" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 минуту назад" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} минут назад" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "час назад" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} часов назад" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "сегодня" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "вчера" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} дней назад" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "в прошлом месяце" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} месяцев назад" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "несколько месяцев назад" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "в прошлом году" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "несколько лет назад" @@ -262,7 +262,7 @@ msgstr "Необходимый файл {file} не установлен!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Открыть доступ" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -550,7 +550,7 @@ msgstr "Завершить установку" msgid "web services under your control" msgstr "Сетевые службы под твоим контролем" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Выйти" diff --git a/l10n/ru/files.po b/l10n/ru/files.po index 0c617eada2f..63ecf244040 100644 --- a/l10n/ru/files.po +++ b/l10n/ru/files.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -28,20 +28,6 @@ msgstr "" "Language: ru\n" "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);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Невозможно переместить %s - файл с таким именем уже существует" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Невозможно переместить %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Невозможно переименовать файл" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" @@ -77,11 +63,11 @@ msgstr "Невозможно найти временную папку" msgid "Failed to write to disk" msgstr "Ошибка записи на диск" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Недостаточно свободного места" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Неправильный каталог." @@ -89,15 +75,15 @@ msgstr "Неправильный каталог." msgid "Files" msgstr "Файлы" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Отменить публикацию" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Удалить" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Переименовать" @@ -121,7 +107,7 @@ msgstr "отмена" msgid "replaced {new_name}" msgstr "заменено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "отмена" @@ -129,13 +115,9 @@ msgstr "отмена" msgid "replaced {new_name} with {old_name}" msgstr "заменено {new_name} на {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "не опубликованные {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "удаленные {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -159,86 +141,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не удается загрузить файл размером 0 байт в каталог" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Ошибка загрузки" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Закрыть" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ожидание" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "загружается 1 файл" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} файлов загружается" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Загрузка отменена." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Ссылка не может быть пустой." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Неправильное имя каталога. Имя 'Shared' зарезервировано." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} файлов просканировано" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "ошибка во время санирования" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Название" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Изменён" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} файлов" @@ -294,32 +268,40 @@ msgstr "Папка" msgid "From link" msgstr "Из ссылки" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Отмена загрузки" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Здесь ничего нет. Загрузите что-нибудь!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Скачать" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Файл слишком большой" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Подождите, файлы сканируются." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Текущее сканирование" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ru/files_trashbin.po b/l10n/ru/files_trashbin.po new file mode 100644 index 00000000000..b208ca663da --- /dev/null +++ b/l10n/ru/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"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);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Имя" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 папка" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} папок" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 файл" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} файлов" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ru/settings.po b/l10n/ru/settings.po index 23d54be85fd..489a9f51c77 100644 --- a/l10n/ru/settings.po +++ b/l10n/ru/settings.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -87,14 +87,42 @@ msgstr "Невозможно добавить пользователя в гру msgid "Unable to remove user from group %s" msgstr "Невозможно удалить пользователя из группы %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Выключить" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Включить" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Ошибка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Сохранение..." @@ -123,6 +151,10 @@ msgstr "Смотрите дополнения на apps.owncloud.com" msgid "-licensed by " msgstr " лицензия. Автор " +#: templates/apps.php:31 +msgid "Update" +msgstr "Обновить" + #: templates/help.php:3 msgid "User Documentation" msgstr "Пользовательская документация" @@ -274,6 +306,14 @@ msgstr "Группа Администраторы" msgid "Storage" msgstr "Хранилище" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "По-умолчанию" diff --git a/l10n/ru/user_ldap.po b/l10n/ru/user_ldap.po index 383f6bb2909..0d01260dd95 100644 --- a/l10n/ru/user_ldap.po +++ b/l10n/ru/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:19+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,58 @@ msgstr "" "Language: ru\n" "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);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Удаление не удалось" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -34,165 +86,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Сервер" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Базовый DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенное\"" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN пользователя" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN-клиента пользователя, с которым связывают должно быть заполнено, например, uid=агент, dc=пример, dc=com. Для анонимного доступа, оставьте DN и пароль пустыми." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Пароль" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонимного доступа оставьте DN и пароль пустыми." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Фильтр входа пользователей" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "используйте заполнитель %%uid, например: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Фильтр списка пользователей" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Определяет фильтр для применения при получении пользователей." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без заполнителя, например: \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Фильтр группы" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Определяет фильтр для применения при получении группы." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без заполнения, например \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Порт" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "База пользовательского дерева" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "База группового дерева" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Ассоциация Группа-Участник" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Использовать TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Не используйте для соединений SSL" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечувствительный к регистру сервер LDAP (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Отключить проверку сертификата SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Не рекомендуется, используйте только для тестирования." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Поле отображаемого имени пользователя" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Атрибут LDAP для генерации имени пользователя ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Поле отображаемого имени группы" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Атрибут LDAP для генерации имени группы ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "в байтах" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "в секундах. Изменение очистит кэш." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Поле отображаемого имени пользователя" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Атрибут LDAP для генерации имени пользователя ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "База пользовательского дерева" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Поле отображаемого имени группы" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Атрибут LDAP для генерации имени группы ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "База группового дерева" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Ассоциация Группа-Участник" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "в байтах" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Помощь" diff --git a/l10n/ru_RU/core.po b/l10n/ru_RU/core.po index ad1e6dddba8..465c3cb0a8b 100644 --- a/l10n/ru_RU/core.po +++ b/l10n/ru_RU/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "Ноябрь" msgid "December" msgstr "Декабрь" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Настройки" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "секунд назад" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr " 1 минуту назад" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{минуты} минут назад" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 час назад" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{часы} часов назад" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "сегодня" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "вчера" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{дни} дней назад" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "в прошлом месяце" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{месяцы} месяцев назад" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "месяц назад" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "в прошлом году" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "лет назад" @@ -254,11 +254,11 @@ msgstr "Требуемый файл {файл} не установлен!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Сделать общим" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Опубликовано" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -542,7 +542,7 @@ msgstr "Завершение настройки" msgid "web services under your control" msgstr "веб-сервисы под Вашим контролем" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Выйти" diff --git a/l10n/ru_RU/files.po b/l10n/ru_RU/files.po index 00422df23bf..d0beae0d809 100644 --- a/l10n/ru_RU/files.po +++ b/l10n/ru_RU/files.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -19,20 +20,6 @@ msgstr "" "Language: ru_RU\n" "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);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" @@ -68,27 +55,27 @@ msgstr "Отсутствует временная папка" msgid "Failed to write to disk" msgstr "Не удалось записать на диск" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Не достаточно свободного места" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." -msgstr "" +msgstr "Неверный каталог." #: appinfo/app.php:10 msgid "Files" msgstr "Файлы" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Скрыть" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Удалить" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Переименовать" @@ -112,7 +99,7 @@ msgstr "отменить" msgid "replaced {new_name}" msgstr "заменено {новое_имя}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "отменить действие" @@ -120,21 +107,17 @@ msgstr "отменить действие" msgid "replaced {new_name} with {old_name}" msgstr "заменено {новое_имя} с {старое_имя}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "Cовместное использование прекращено {файлы}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "удалено {файлы}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' является неверным именем файла." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "Имя файла не может быть пустым." #: js/files.js:64 msgid "" @@ -150,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Ошибка загрузки" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Закрыть" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Ожидающий решения" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "загрузка 1 файла" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{количество} загружено файлов" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Загрузка отменена" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Процесс загрузки файла. Если покинуть страницу сейчас, загрузка будет отменена." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL не должен быть пустым." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Неверное имя папки. Использование наименования 'Опубликовано' зарезервировано Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{количество} файлов отсканировано" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "ошибка при сканировании" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Имя" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Изменен" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{количество} папок" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{количество} файлов" @@ -285,32 +260,40 @@ msgstr "Папка" msgid "From link" msgstr "По ссылке" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Отмена загрузки" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Здесь ничего нет. Загрузите что-нибудь!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Загрузить" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Загрузка слишком велика" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Размер файлов, которые Вы пытаетесь загрузить, превышает максимально допустимый размер для загрузки на данный сервер." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Файлы сканируются, пожалуйста, подождите." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Текущее сканирование" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Обновление кэша файловой системы... " diff --git a/l10n/ru_RU/files_encryption.po b/l10n/ru_RU/files_encryption.po index b27f0a2def2..2453fc2cb9d 100644 --- a/l10n/ru_RU/files_encryption.po +++ b/l10n/ru_RU/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 12:11+0000\n" +"Last-Translator: AnnaSch \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,11 +23,11 @@ msgstr "" msgid "" "Please switch to your ownCloud client and change your encryption password to" " complete the conversion." -msgstr "" +msgstr "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации." #: js/settings-personal.js:17 msgid "switched to client side encryption" -msgstr "" +msgstr "переключено на шифрование на клиентской стороне" #: js/settings-personal.js:21 msgid "Change encryption password to login password" @@ -34,7 +35,7 @@ msgstr "" #: js/settings-personal.js:25 msgid "Please check your passwords and try again." -msgstr "" +msgstr "Пожалуйста, проверьте Ваш пароль и попробуйте снова" #: js/settings-personal.js:25 msgid "Could not change your file encryption password to your login password" @@ -42,33 +43,33 @@ msgstr "" #: templates/settings-personal.php:3 templates/settings.php:5 msgid "Choose encryption mode:" -msgstr "" +msgstr "Выберите способ шифрования:" #: templates/settings-personal.php:20 templates/settings.php:24 msgid "" "Client side encryption (most secure but makes it impossible to access your " "data from the web interface)" -msgstr "" +msgstr "Шифрование на стороне клиента (наиболее безопасно, но делает невозможным получение доступа к Вашим данным по вэб-интерфейсу)" #: templates/settings-personal.php:30 templates/settings.php:36 msgid "" "Server side encryption (allows you to access your files from the web " "interface and the desktop client)" -msgstr "" +msgstr "Шифрование на стороне сервера (позволяет Вам получить доступ к Вашим файлам по вэб-интерфейсу и десктопному клиенту)" #: templates/settings-personal.php:41 templates/settings.php:60 msgid "None (no encryption at all)" -msgstr "" +msgstr "Нет (шифрование полностью отсутствует)" #: templates/settings.php:10 msgid "" "Important: Once you selected an encryption mode there is no way to change it" " back" -msgstr "" +msgstr "Важно: Невозможно будет изменить выбранный способ шифрования" #: templates/settings.php:48 msgid "User specific (let the user decide)" -msgstr "" +msgstr "Специфика пользователя (позволено решить пользователю)" #: templates/settings.php:65 msgid "Encryption" diff --git a/l10n/ru_RU/files_trashbin.po b/l10n/ru_RU/files_trashbin.po new file mode 100644 index 00000000000..71505abd669 --- /dev/null +++ b/l10n/ru_RU/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru_RU\n" +"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);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Имя" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 папка" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{количество} папок" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 файл" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{количество} файлов" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ru_RU/settings.po b/l10n/ru_RU/settings.po index 8722c9ae955..b7258db60ab 100644 --- a/l10n/ru_RU/settings.po +++ b/l10n/ru_RU/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "Невозможно добавить пользователя в гру msgid "Unable to remove user from group %s" msgstr "Невозможно удалить пользователя из группы %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Отключить" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Включить" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Ошибка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Сохранение" @@ -113,6 +141,10 @@ msgstr "Обратитесь к странице приложений на apps. msgid "-licensed by " msgstr "-licensed by " +#: templates/apps.php:31 +msgid "Update" +msgstr "Обновить" + #: templates/help.php:3 msgid "User Documentation" msgstr "Документация пользователя" @@ -264,6 +296,14 @@ msgstr "Группа Admin" msgid "Storage" msgstr "Хранилище" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "назначить новый пароль" + #: templates/users.php:137 msgid "Default" msgstr "По умолчанию" diff --git a/l10n/ru_RU/user_ldap.po b/l10n/ru_RU/user_ldap.po index cd5c6be4905..848fc9df8d7 100644 --- a/l10n/ru_RU/user_ldap.po +++ b/l10n/ru_RU/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 10:56+0000\n" -"Last-Translator: AnnaSch \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,58 @@ msgstr "" "Language: ru_RU\n" "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);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Удаление не удалось" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "Предупреждение: Модуль PHP LDAP не установлен, бэкэнд не будет работать. Пожалуйста, обратитесь к Вашему системному администратору, чтобы установить его." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Хост" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Вы можете пропустить протокол, если Вам не требуется SSL. Затем начните с ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "База DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Одно базовое DN на линию" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Вы можете задать Base DN для пользователей и групп во вкладке «Дополнительно»" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN пользователя" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN клиентского пользователя, с которого должна осуществляться привязка, например, uid=agent,dc=example,dc=com. Для анонимного доступа оставьте поля DN и Пароль пустыми." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Пароль" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонимного доступа оставьте поля DN и пароль пустыми." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Фильтр имен пользователей" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Задает фильтр, применяемый при загрузке пользователя. %%uid заменяет имя пользователя при входе." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "используйте %%uid заполнитель, например, \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Фильтр списка пользователей" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Задает фильтр, применяемый при получении пользователей." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без каких-либо заполнителей, например, \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Групповой фильтр" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Задает фильтр, применяемый при получении групп." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без каких-либо заполнителей, например, \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Порт" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Базовое дерево пользователей" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "Одно пользовательское базовое DN на линию" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Базовое дерево групп" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "Одно групповое базовое DN на линию" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Связь член-группа" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Использовать TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Не используйте это SSL-соединений, это не будет выполнено." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечувствительный к регистру LDAP-сервер (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Выключить проверку сертификата SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Если соединение работает только с этой опцией, импортируйте SSL-сертификат LDAP сервера в ваш ownCloud сервер." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Не рекомендовано, используйте только для тестирования." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Поле, отображаемое как имя пользователя" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Атрибут LDAP, используемый для создания имени пользователя в ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Поле, отображаемое как имя группы" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Атрибут LDAP, используемый для создания группового имени в ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "в байтах" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "в секундах. Изменение очищает кэш." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Поле, отображаемое как имя пользователя" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Атрибут LDAP, используемый для создания имени пользователя в ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Базовое дерево пользователей" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Одно пользовательское базовое DN на линию" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Поле, отображаемое как имя группы" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Атрибут LDAP, используемый для создания группового имени в ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Базовое дерево групп" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Одно групповое базовое DN на линию" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Связь член-группа" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "в байтах" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Оставьте пустым под имя пользователя (по умолчанию). В противном случае задайте LDAP/AD атрибут." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Помощь" diff --git a/l10n/ru_RU/user_webdavauth.po b/l10n/ru_RU/user_webdavauth.po index a14bb9d28ed..48ae554ac04 100644 --- a/l10n/ru_RU/user_webdavauth.po +++ b/l10n/ru_RU/user_webdavauth.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 10:01+0000\n" +"Last-Translator: AnnaSch \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +22,7 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV аутентификация" #: templates/settings.php:4 msgid "URL: http://" diff --git a/l10n/si_LK/core.po b/l10n/si_LK/core.po index 0d0fd472df8..1d65d6ef591 100644 --- a/l10n/si_LK/core.po +++ b/l10n/si_LK/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "නොවැම්බර්" msgid "December" msgstr "දෙසැම්බර්" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "සැකසුම්" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "තත්පරයන්ට පෙර" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 මිනිත්තුවකට පෙර" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "අද" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "ඊයේ" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "පෙර මාසයේ" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "මාස කීපයකට පෙර" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "පෙර අවුරුද්දේ" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "අවුරුදු කීපයකට පෙර" @@ -255,7 +255,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "බෙදා හදා ගන්න" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "ස්ථාපනය කිරීම අවසන් කරන්න" msgid "web services under your control" msgstr "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "නික්මීම" diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po index 6f61a4f5cdf..b61cf98e2dd 100644 --- a/l10n/si_LK/files.po +++ b/l10n/si_LK/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්" @@ -68,11 +54,11 @@ msgstr "තාවකාලික ෆොල්ඩරයක් සොයාගත msgid "Failed to write to disk" msgstr "තැටිගත කිරීම අසාර්ථකයි" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "ගොනු" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "නොබෙදු" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "මකන්න" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "නැවත නම් කරන්න" @@ -112,7 +98,7 @@ msgstr "අත් හරින්න" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "නිෂ්ප්‍රභ කරන්න" @@ -120,12 +106,8 @@ msgstr "නිෂ්ප්‍රභ කරන්න" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "උඩුගත කිරීමේ දෝශයක්" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "වසන්න" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 ගොනුවක් උඩගත කෙරේ" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "උඩුගත කිරීම අත් හරින්න ලදී" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "යොමුව හිස් විය නොහැක" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "පරීක්ෂා කිරීමේදී දෝෂයක්" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "නම" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ප්‍රමාණය" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "වෙනස් කළ" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 ෆොල්ඩරයක්" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ගොනුවක්" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -285,32 +259,40 @@ msgstr "ෆෝල්ඩරය" msgid "From link" msgstr "යොමුවෙන්" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "උඩුගත කිරීම අත් හරින්න" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "බාගත කිරීම" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "උඩුගත කිරීම විශාල වැඩිය" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "වර්තමාන පරික්ෂාව" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/si_LK/files_trashbin.po b/l10n/si_LK/files_trashbin.po new file mode 100644 index 00000000000..c5abfae0b81 --- /dev/null +++ b/l10n/si_LK/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: si_LK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "නම" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 ෆොල්ඩරයක්" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ගොනුවක්" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/si_LK/settings.po b/l10n/si_LK/settings.po index f5d37761925..76d2386842e 100644 --- a/l10n/si_LK/settings.po +++ b/l10n/si_LK/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "පරිශීලකයා %s කණ්ඩායමට එකතු ක msgid "Unable to remove user from group %s" msgstr "පරිශීලකයා %s කණ්ඩායමින් ඉවත් කළ නොහැක" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "අක්‍රිය කරන්න" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "ක්‍රියත්මක කරන්න" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "දෝෂයක්" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "සුරැකෙමින් පවතී..." @@ -114,6 +142,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "යාවත්කාල කිරීම" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -265,6 +297,14 @@ msgstr "කාණ්ඩ පරිපාලක" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/si_LK/user_ldap.po b/l10n/si_LK/user_ldap.po index 536c0438d76..cb5a0b25f19 100644 --- a/l10n/si_LK/user_ldap.po +++ b/l10n/si_LK/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "මකාදැමීම අසාර්ථකයි" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "සත්කාරකය" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL අවශ්‍යය වන විට පමණක් හැර, අන් අවස්ථාවන්හිදී ප්‍රොටොකෝලය අත් හැරිය හැක. භාවිතා කරන විට ldaps:// ලෙස ආරම්භ කරන්න" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "මුර පදය" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "පරිශීලක පිවිසුම් පෙරහන" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "පරිශීලක ලැයිස්තු පෙරහන" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "කණ්ඩායම් පෙරහන" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "කණ්ඩායම් සොයා ලබාගන්නා විට, යොදන පෙරහන නියම කරයි" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "තොට" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLS භාවිතා කරන්න" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "නිර්දේශ කළ නොහැක. පරීක්ෂණ සඳහා පමණක් භාවිත කරන්න" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "උදව්" diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index de52d7a52d3..573c3348cb4 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/core.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -161,59 +161,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Nastavenia" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "pred sekundami" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "pred minútou" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "pred {minutes} minútami" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Pred 1 hodinou." -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Pred {hours} hodinami." -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "dnes" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "včera" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "pred {days} dňami" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "minulý mesiac" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Pred {months} mesiacmi." -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "pred mesiacmi" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "minulý rok" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "pred rokmi" @@ -258,11 +258,11 @@ msgstr "Požadovaný súbor {file} nie je inštalovaný!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Zdieľaj" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Zdieľané" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -546,7 +546,7 @@ msgstr "Dokončiť inštaláciu" msgid "web services under your control" msgstr "webové služby pod vašou kontrolou" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Odhlásiť" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index 083a241ac49..cd6c5db9e95 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/files.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 20:00+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,60 +22,46 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Nie je možné presunúť %s - súbor s týmto menom už existuje" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Nie je možné presunúť %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Nemožno premenovať súbor" - -#: ajax/upload.php:17 +#: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Žiaden súbor nebol odoslaný. Neznáma chyba" -#: ajax/upload.php:24 +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" msgstr "Nenastala žiadna chyba, súbor bol úspešne nahraný" -#: ajax/upload.php:25 +#: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:" -#: ajax/upload.php:27 +#: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Nahrávaný súbor presiahol MAX_FILE_SIZE direktívu, ktorá bola špecifikovaná v HTML formulári" -#: ajax/upload.php:29 +#: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" msgstr "Nahrávaný súbor bol iba čiastočne nahraný" -#: ajax/upload.php:30 +#: ajax/upload.php:32 msgid "No file was uploaded" msgstr "Žiaden súbor nebol nahraný" -#: ajax/upload.php:31 +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "Chýbajúci dočasný priečinok" -#: ajax/upload.php:32 +#: ajax/upload.php:34 msgid "Failed to write to disk" msgstr "Zápis na disk sa nepodaril" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:52 +msgid "Not enough space available" +msgstr "Nie je k dispozícii dostatok miesta" -#: ajax/upload.php:77 +#: ajax/upload.php:83 msgid "Invalid directory." msgstr "Neplatný adresár" @@ -83,15 +69,15 @@ msgstr "Neplatný adresár" msgid "Files" msgstr "Súbory" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Nezdielať" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Odstrániť" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Premenovať" @@ -115,7 +101,7 @@ msgstr "zrušiť" msgid "replaced {new_name}" msgstr "prepísaný {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "vrátiť" @@ -123,13 +109,9 @@ msgstr "vrátiť" msgid "replaced {new_name} with {old_name}" msgstr "prepísaný {new_name} súborom {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "zdieľanie zrušené pre {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "zmazané {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "vykonať zmazanie" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -147,92 +129,84 @@ msgstr "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Vaše úložisko je takmer plné ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše sťahovanie sa pripravuje. Ak sú sťahované súbory veľké, môže to chvíľu trvať." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Chyba odosielania" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zavrieť" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Čaká sa" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 súbor sa posiela " -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} súborov odosielaných" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Odosielanie zrušené" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Opustenie stránky zruší práve prebiehajúce odosielanie súboru." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL nemôže byť prázdne" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neplatné meno adresára. Používanie mena 'Shared' je vyhradené len pre Owncloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} súborov prehľadaných" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "chyba počas kontroly" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:953 templates/index.php:67 msgid "Name" msgstr "Meno" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:954 templates/index.php:78 msgid "Size" msgstr "Veľkosť" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:955 templates/index.php:80 msgid "Modified" msgstr "Upravené" -#: js/files.js:887 +#: js/files.js:974 msgid "1 folder" msgstr "1 priečinok" -#: js/files.js:889 +#: js/files.js:976 msgid "{count} folders" msgstr "{count} priečinkov" -#: js/files.js:897 +#: js/files.js:984 msgid "1 file" msgstr "1 súbor" -#: js/files.js:899 +#: js/files.js:986 msgid "{count} files" msgstr "{count} súborov" @@ -288,32 +262,40 @@ msgstr "Priečinok" msgid "From link" msgstr "Z odkazu" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Kôš" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Zrušiť odosielanie" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Žiadny súbor. Nahrajte niečo!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Stiahnuť" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Odosielaný súbor je príliš veľký" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Čakajte, súbory sú prehľadávané." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Práve prehliadané" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Aktualizujem medzipamäť súborového systému..." diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po index 7a081bb7aa5..56de6320ffe 100644 --- a/l10n/sk_SK/files_external.po +++ b/l10n/sk_SK/files_external.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# Marián Hvolka , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 06:20+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,11 +28,11 @@ msgstr "Prístup povolený" msgid "Error configuring Dropbox storage" msgstr "Chyba pri konfigurácii úložiska Dropbox" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 msgid "Grant access" msgstr "Povoliť prístup" -#: js/dropbox.js:73 js/google.js:72 +#: js/dropbox.js:73 js/google.js:73 msgid "Fill out all required fields" msgstr "Vyplňte všetky vyžadované kolónky" @@ -39,22 +40,22 @@ msgstr "Vyplňte všetky vyžadované kolónky" msgid "Please provide a valid Dropbox app key and secret." msgstr "Zadajte platný kľúč aplikácie a heslo Dropbox" -#: js/google.js:26 js/google.js:73 js/google.js:78 +#: js/google.js:26 js/google.js:74 js/google.js:79 msgid "Error configuring Google Drive storage" msgstr "Chyba pri konfigurácii úložiska Google drive" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Upozornenie: \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje." -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Upozornenie: Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje." #: templates/settings.php:3 msgid "External Storage" @@ -101,7 +102,7 @@ msgid "Users" msgstr "Užívatelia" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Odstrániť" @@ -113,10 +114,10 @@ msgstr "Povoliť externé úložisko" msgid "Allow users to mount their own external storage" msgstr "Povoliť užívateľom pripojiť ich vlastné externé úložisko" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Koreňové SSL certifikáty" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" msgstr "Importovať koreňový certifikát" diff --git a/l10n/sk_SK/files_trashbin.po b/l10n/sk_SK/files_trashbin.po new file mode 100644 index 00000000000..e11f6529c52 --- /dev/null +++ b/l10n/sk_SK/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Marián Hvolka , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 20:00+0000\n" +"Last-Translator: mhh \n" +"Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk_SK\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "vykonať obnovu" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Meno" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Zmazané" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 priečinok" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} priečinkov" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 súbor" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} súborov" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Žiadny obsah. Kôš je prázdny!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Obnoviť" diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po index 74bc6b025bb..cfaa9da6bc0 100644 --- a/l10n/sk_SK/settings.po +++ b/l10n/sk_SK/settings.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 20:00+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -81,14 +81,42 @@ msgstr "Nie je možné pridať užívateľa do skupiny %s" msgid "Unable to remove user from group %s" msgstr "Nie je možné odstrániť používateľa zo skupiny %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Nemožno aktualizovať aplikáciu." + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Aktualizovať na {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Zakázať" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Povoliť" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Čakajte prosím..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Aktualizujem..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "hyba pri aktualizácii aplikácie" + +#: js/apps.js:87 +msgid "Error" +msgstr "Chyba" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Aktualizované" + #: js/personal.js:69 msgid "Saving..." msgstr "Ukladám..." @@ -117,6 +145,10 @@ msgstr "Pozrite si stránku aplikácií na apps.owncloud.com" msgid "-licensed by " msgstr "-licencované " +#: templates/apps.php:31 +msgid "Update" +msgstr "Aktualizovať" + #: templates/help.php:3 msgid "User Documentation" msgstr "Príručka používateľa" @@ -234,7 +266,7 @@ msgstr "Vyvinuté komu #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "Prihlasovacie meno" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -258,7 +290,7 @@ msgstr "Iné" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "Zobrazované meno" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -268,6 +300,14 @@ msgstr "Správca skupiny" msgid "Storage" msgstr "Úložisko" +#: templates/users.php:97 +msgid "change display name" +msgstr "zmeniť zobrazované meno" + +#: templates/users.php:101 +msgid "set new password" +msgstr "nastaviť nové heslo" + #: templates/users.php:137 msgid "Default" msgstr "Predvolené" diff --git a/l10n/sk_SK/user_ldap.po b/l10n/sk_SK/user_ldap.po index 497fea635a1..ab48e3110ab 100644 --- a/l10n/sk_SK/user_ldap.po +++ b/l10n/sk_SK/user_ldap.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Marián Hvolka , 2013. # Roman Priesol , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: 2013-02-04 20:00+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,179 +19,293 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Zlyhalo zmazanie nastavenia servera." + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "Nastavenie je v poriadku a pripojenie je stabilné." + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje." + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "Nastavenia sú neplatné. Podrobnosti hľadajte v logu ownCloud." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Odstránenie zlyhalo" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "Prebrať nastavenia z nedávneho nastavenia servera?" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Ponechať nastavenia?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Nemožno pridať nastavenie servera" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Test pripojenia bol úspešný" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Test pripojenia zlyhal" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Naozaj chcete zmazať súčasné nastavenie servera?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Potvrdiť vymazanie" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "" +msgstr "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte správcu systému aby ho nainštaloval." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Nastavenia servera" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Pridať nastavenia servera." + +#: templates/settings.php:21 msgid "Host" msgstr "Hostiteľ" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Základné DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "Jedno základné DN na riadok" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Používateľské DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Heslo" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Pre anonymný prístup ponechajte údaje DN a Heslo prázdne." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filter prihlásenia používateľov" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahradzuje používateľské meno v činnosti prihlásenia." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "použite zástupný vzor %%uid, napr. \\\"uid=%%uid\\\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filter zoznamov používateľov" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definuje použitý filter, pre získanie používateľov." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez zástupných znakov, napr. \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filter skupiny" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definuje použitý filter, pre získanie skupín." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez zástupných znakov, napr. \"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "Nastavenie pripojenia" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "Nastavenia sú aktívne " + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "Ak nie je zaškrtnuté, nastavenie bude preskočené." + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Základný používateľský strom" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "Záložný server (kópia) hosť" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera." -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Základný skupinový strom" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "Záložný server (kópia) port" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Zakázať hlavný server" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Asociácia člena skupiny" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "Pri zapnutí sa ownCloud pripojí len k záložnému serveru." -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Použi TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Nepoužívajte pre pripojenie SSL, pripojenie zlyhá." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server nerozlišuje veľkosť znakov (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Vypnúť overovanie SSL certifikátu." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Nie je doporučované, len pre testovacie účely." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Pole pre zobrazenia mena používateľa" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud " - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Pole pre zobrazenie mena skupiny" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud " - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "v bajtoch" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "Nastavenie priečinka" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Pole pre zobrazenia mena používateľa" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud " + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Základný používateľský strom" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "Jedna používateľská základná DN na riadok" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "Atribúty vyhľadávania používateľov" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "Voliteľné, jeden atribút na jeden riadok" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Pole pre zobrazenie mena skupiny" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud " + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Základný skupinový strom" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "Jedna skupinová základná DN na riadok" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "Atribúty vyhľadávania skupín" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Asociácia člena skupiny" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "Špeciálne atribúty" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "v bajtoch" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pomoc" diff --git a/l10n/sk_SK/user_webdavauth.po b/l10n/sk_SK/user_webdavauth.po index 4e77a87a392..b3a30b89ca6 100644 --- a/l10n/sk_SK/user_webdavauth.po +++ b/l10n/sk_SK/user_webdavauth.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 16:01+0000\n" +"POT-Creation-Date: 2013-01-31 00:27+0100\n" +"PO-Revision-Date: 2013-01-30 08:31+0000\n" "Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -32,4 +32,4 @@ msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "ownCloud odošle používateľské údajena zadanú URL. Plugin skontroluje odpoveď a považuje návratovou hodnotu HTTP 401 a 403 za neplatné údaje a všetky ostatné hodnoty ako platné prihlasovacie údaje." +msgstr "ownCloud odošle používateľské údaje na zadanú URL. Plugin skontroluje odpoveď a považuje návratovú hodnotu HTTP 401 a 403 za neplatné údaje a všetky ostatné hodnoty ako platné prihlasovacie údaje." diff --git a/l10n/sl/core.po b/l10n/sl/core.po index e489f98a6c9..d463f42279e 100644 --- a/l10n/sl/core.po +++ b/l10n/sl/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -159,59 +159,59 @@ msgstr "november" msgid "December" msgstr "december" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Nastavitve" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "pred nekaj sekundami" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "pred minuto" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "pred {minutes} minutami" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "pred 1 uro" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "pred {hours} urami" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "danes" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "včeraj" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "pred {days} dnevi" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "zadnji mesec" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "pred {months} meseci" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "mesecev nazaj" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "lansko leto" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "let nazaj" @@ -256,7 +256,7 @@ msgstr "Zahtevana datoteka {file} ni nameščena!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Souporaba" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -544,7 +544,7 @@ msgstr "Dokončaj namestitev" msgid "web services under your control" msgstr "spletne storitve pod vašim nadzorom" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Odjava" diff --git a/l10n/sl/files.po b/l10n/sl/files.po index 2302abc5376..661f1ee1074 100644 --- a/l10n/sl/files.po +++ b/l10n/sl/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Nobena datoteka ni naložena. Neznana napaka." @@ -70,11 +56,11 @@ msgstr "Manjka začasna mapa" msgid "Failed to write to disk" msgstr "Pisanje na disk je spodletelo" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -82,15 +68,15 @@ msgstr "" msgid "Files" msgstr "Datoteke" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Odstrani iz souporabe" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Izbriši" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Preimenuj" @@ -114,7 +100,7 @@ msgstr "prekliči" msgid "replaced {new_name}" msgstr "zamenjano je ime {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "razveljavi" @@ -122,13 +108,9 @@ msgstr "razveljavi" msgid "replaced {new_name} with {old_name}" msgstr "zamenjano ime {new_name} z imenom {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "odstranjeno iz souporabe {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "izbrisano {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Napaka med nalaganjem" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zapri" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "V čakanju ..." -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "Pošiljanje 1 datoteke" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "nalagam {count} datotek" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Pošiljanje je preklicano." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "Naslov URL ne sme biti prazen." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} files scanned" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "napaka med pregledovanjem datotek" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ime" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Velikost" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Spremenjeno" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mapa" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} map" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 datoteka" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} datotek" @@ -287,32 +261,40 @@ msgstr "Mapa" msgid "From link" msgstr "Iz povezave" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Prekliči pošiljanje" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Tukaj ni ničesar. Naložite kaj!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Prejmi" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Nalaganje ni mogoče, ker je preveliko" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Datoteke, ki jih želite naložiti, presegajo največjo dovoljeno velikost na tem strežniku." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Poteka preučevanje datotek, počakajte ..." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Trenutno poteka preučevanje" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/sl/files_trashbin.po b/l10n/sl/files_trashbin.po new file mode 100644 index 00000000000..835ba52d9ab --- /dev/null +++ b/l10n/sl/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Ime" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mapa" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} map" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 datoteka" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} datotek" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/sl/settings.po b/l10n/sl/settings.po index 225f4e3a203..9ed9b294bdd 100644 --- a/l10n/sl/settings.po +++ b/l10n/sl/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "Uporabnika ni mogoče dodati k skupini %s" msgid "Unable to remove user from group %s" msgstr "Uporabnika ni mogoče odstraniti iz skupine %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Onemogoči" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Omogoči" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Napaka" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Poteka shranjevanje ..." @@ -115,6 +143,10 @@ msgstr "Obiščite spletno stran programa na apps.owncloud.com" msgid "-licensed by " msgstr "-z dovoljenjem s strani " +#: templates/apps.php:31 +msgid "Update" +msgstr "Posodobi" + #: templates/help.php:3 msgid "User Documentation" msgstr "Uporabniška dokumentacija" @@ -266,6 +298,14 @@ msgstr "Skrbnik skupine" msgid "Storage" msgstr "Shramba" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "Privzeto" diff --git a/l10n/sl/user_ldap.po b/l10n/sl/user_ldap.po index 9671d69486e..d644dac5e56 100644 --- a/l10n/sl/user_ldap.po +++ b/l10n/sl/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Brisanje je spodletelo." + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Gostitelj" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Osnovni DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Osnovni DN za uporabnike in skupine lahko določite v zavihku Napredno" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Uporabnik DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za anonimni dostop sta polji DN in geslo prazni." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Geslo" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Za anonimni dostop sta polji DN in geslo prazni." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filter prijav uporabnikov" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Določi filter, uporabljen pri prijavi. %%uid nadomesti uporabniško ime za prijavo." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Uporabite vsebnik %%uid, npr. \"uid=%%uid\"." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filter seznama uporabnikov" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Določi filter za uporabo med pridobivanjem uporabnikov." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Brez kateregakoli vsebnika, npr. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Filter skupin" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Določi filter za uporabo med pridobivanjem skupin." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Vrata" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Osnovno uporabniško drevo" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Osnovno drevo skupine" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Povezava člana skupine" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Uporabi TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Uporaba SSL za povezave bo spodletela." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Strežnik LDAP ne upošteva velikosti črk (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Onemogoči potrditev veljavnosti potrdila SSL." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "V primeru, da povezava deluje le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Dejanje ni priporočeno; uporabljeno naj bo le za preizkušanje delovanja." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Polje za uporabnikovo prikazano ime" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Atribut LDAP, uporabljen pri ustvarjanju uporabniških imen ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Polje za prikazano ime skupine" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Atribut LDAP, uporabljen pri ustvarjanju imen skupin ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "v bajtih" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "v sekundah. Sprememba izprazni predpomnilnik." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Polje za uporabnikovo prikazano ime" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Atribut LDAP, uporabljen pri ustvarjanju uporabniških imen ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Osnovno uporabniško drevo" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Polje za prikazano ime skupine" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Atribut LDAP, uporabljen pri ustvarjanju imen skupin ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Osnovno drevo skupine" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Povezava člana skupine" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "v bajtih" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Pustite prazno za uporabniško ime (privzeto). V nasprotnem primeru navedite atribut LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pomoč" diff --git a/l10n/sr/core.po b/l10n/sr/core.po index 80d0ec2de4f..661f59f97b0 100644 --- a/l10n/sr/core.po +++ b/l10n/sr/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 15:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -158,59 +158,59 @@ msgstr "Новембар" msgid "December" msgstr "Децембар" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Подешавања" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "пре неколико секунди" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "пре 1 минут" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "пре {minutes} минута" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "Пре једног сата" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "Пре {hours} сата (сати)" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "данас" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "јуче" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "пре {days} дана" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "прошлог месеца" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "Пре {months} месеца (месеци)" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "месеци раније" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "прошле године" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "година раније" @@ -255,7 +255,7 @@ msgstr "Потребна датотека {file} није инсталирана #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Дељење" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -543,7 +543,7 @@ msgstr "Заврши подешавање" msgid "web services under your control" msgstr "веб сервиси под контролом" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Одјава" diff --git a/l10n/sr/files.po b/l10n/sr/files.po index 06cef3e3222..a234e816481 100644 --- a/l10n/sr/files.po +++ b/l10n/sr/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 15:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: sr\n" "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);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -69,11 +55,11 @@ msgstr "Недостаје привремена фасцикла" msgid "Failed to write to disk" msgstr "Не могу да пишем на диск" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Датотеке" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Укини дељење" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Обриши" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Преименуј" @@ -113,7 +99,7 @@ msgstr "откажи" msgid "replaced {new_name}" msgstr "замењено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "опозови" @@ -121,13 +107,9 @@ msgstr "опозови" msgid "replaced {new_name} with {old_name}" msgstr "замењено {new_name} са {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "укинуто дељење {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "обрисано {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Грешка при отпремању" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Затвори" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "На чекању" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "Отпремам 1 датотеку" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "Отпремам {count} датотеке/а" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Отпремање је прекинуто." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "Скенирано датотека: {count}" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "грешка при скенирању" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Назив" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Величина" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Измењено" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 фасцикла" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} фасцикле/и" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 датотека" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} датотеке/а" @@ -286,32 +260,40 @@ msgstr "фасцикла" msgid "From link" msgstr "Са везе" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Прекини отпремање" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Овде нема ничег. Отпремите нешто!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Преузми" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Датотека је превелика" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Датотеке које желите да отпремите прелазе ограничење у величини." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Скенирам датотеке…" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Тренутно скенирање" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/sr/files_trashbin.po b/l10n/sr/files_trashbin.po new file mode 100644 index 00000000000..5274cee524e --- /dev/null +++ b/l10n/sr/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"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);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "врати у претходно стање" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Име" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Обрисано" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 фасцикла" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} фасцикле/и" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 датотека" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} датотеке/а" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Овде нема ништа. Корпа за отпатке је празна." + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Врати" diff --git a/l10n/sr/files_versions.po b/l10n/sr/files_versions.po index 7c031b84aa7..84371b65544 100644 --- a/l10n/sr/files_versions.po +++ b/l10n/sr/files_versions.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 14:10+0000\n" +"Last-Translator: Rancher \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,12 +20,12 @@ msgstr "" #: js/versions.js:16 msgid "History" -msgstr "" +msgstr "Историја" #: templates/settings.php:3 msgid "Files Versioning" -msgstr "" +msgstr "Прављење верзија датотека" #: templates/settings.php:4 msgid "Enable" -msgstr "" +msgstr "Омогући" diff --git a/l10n/sr/lib.po b/l10n/sr/lib.po index 3b899eb0222..58c80f3e1f1 100644 --- a/l10n/sr/lib.po +++ b/l10n/sr/lib.po @@ -4,14 +4,15 @@ # # Translators: # Ivan Petrović , 2012-2013. +# , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-24 00:06+0100\n" -"PO-Revision-Date: 2013-01-23 08:24+0000\n" -"Last-Translator: Ivan Petrović \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 15:00+0000\n" +"Last-Translator: Rancher \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +20,47 @@ msgstr "" "Language: sr\n" "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);\n" -#: app.php:301 +#: app.php:312 msgid "Help" msgstr "Помоћ" -#: app.php:308 +#: app.php:319 msgid "Personal" msgstr "Лично" -#: app.php:313 +#: app.php:324 msgid "Settings" -msgstr "Подешавања" +msgstr "Поставке" -#: app.php:318 +#: app.php:329 msgid "Users" msgstr "Корисници" -#: app.php:325 +#: app.php:336 msgid "Apps" msgstr "Апликације" -#: app.php:327 +#: app.php:338 msgid "Admin" -msgstr "Администрација" +msgstr "Администратор" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Преузимање ZIP-а је искључено." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Датотеке морате преузимати једну по једну." -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" msgstr "Назад на датотеке" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." msgstr "Изабране датотеке су превелике да бисте направили ZIP датотеку." -#: helper.php:229 +#: helper.php:226 msgid "couldn't be determined" msgstr "није одређено" @@ -146,11 +147,11 @@ msgstr "%s је доступна. Погледајте више #: updater.php:77 msgid "up to date" -msgstr "је ажурна." +msgstr "је ажурна" #: updater.php:80 msgid "updates check is disabled" -msgstr "провера ажурирања је онемогућена." +msgstr "провера ажурирања је онемогућена" #: vcategories.php:188 vcategories.php:249 #, php-format diff --git a/l10n/sr/settings.po b/l10n/sr/settings.po index 2d04a031388..64e5a5df379 100644 --- a/l10n/sr/settings.po +++ b/l10n/sr/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "Не могу да додам корисника у групу %s" msgid "Unable to remove user from group %s" msgstr "Не могу да уклоним корисника из групе %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Искључи" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Укључи" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Грешка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Чување у току..." @@ -113,6 +141,10 @@ msgstr "Погледајте страницу са програмима на app msgid "-licensed by " msgstr "-лиценцирао " +#: templates/apps.php:31 +msgid "Update" +msgstr "Ажурирај" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "Управник групе" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/sr/user_ldap.po b/l10n/sr/user_ldap.po index 00ff848a20a..425922382c7 100644 --- a/l10n/sr/user_ldap.po +++ b/l10n/sr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: sr\n" "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);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Брисање није успело" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Помоћ" diff --git a/l10n/sr/user_webdavauth.po b/l10n/sr/user_webdavauth.po index 8e72a9d363a..764d45ef408 100644 --- a/l10n/sr/user_webdavauth.po +++ b/l10n/sr/user_webdavauth.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 22:10+0000\n" +"Last-Translator: Rancher \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,15 +20,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV провера идентитета" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "Адреса: http://" #: templates/settings.php:6 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud ће послати акредитиве корисника на ову адресу. Овај прикључак проверава одговор и тумачи HTTP статусне кодове 401 и 403 као неисправне акредитиве, а све остале одговоре као исправне." diff --git a/l10n/sr@latin/files.po b/l10n/sr@latin/files.po index baa78945561..84495465994 100644 --- a/l10n/sr@latin/files.po +++ b/l10n/sr@latin/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: sr@latin\n" "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);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -67,11 +53,11 @@ msgstr "Nedostaje privremena fascikla" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "Fajlovi" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Obriši" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -111,7 +97,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -119,12 +105,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Zatvori" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ime" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Veličina" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Zadnja izmena" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -284,32 +258,40 @@ msgstr "" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ovde nema ničeg. Pošaljite nešto!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Preuzmi" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Pošiljka je prevelika" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/sr@latin/files_trashbin.po b/l10n/sr@latin/files_trashbin.po new file mode 100644 index 00000000000..358a19f433b --- /dev/null +++ b/l10n/sr@latin/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr@latin\n" +"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);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Ime" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/sr@latin/settings.po b/l10n/sr@latin/settings.po index e22f8796d29..693e317cb93 100644 --- a/l10n/sr@latin/settings.po +++ b/l10n/sr@latin/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -112,6 +140,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -263,6 +295,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/sr@latin/user_ldap.po b/l10n/sr@latin/user_ldap.po index c78635ad495..9933827859e 100644 --- a/l10n/sr@latin/user_ldap.po +++ b/l10n/sr@latin/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: sr@latin\n" "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);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Pomoć" diff --git a/l10n/sv/core.po b/l10n/sv/core.po index 0df2d492ca5..0e7666126ff 100644 --- a/l10n/sv/core.po +++ b/l10n/sv/core.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -162,59 +162,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Inställningar" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "sekunder sedan" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 minut sedan" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} minuter sedan" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 timme sedan" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} timmar sedan" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "i dag" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "i går" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} dagar sedan" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "förra månaden" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} månader sedan" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "månader sedan" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "förra året" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "år sedan" @@ -259,11 +259,11 @@ msgstr "Den nödvändiga filen {file} är inte installerad!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Dela" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "Delad" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -547,7 +547,7 @@ msgstr "Avsluta installation" msgid "web services under your control" msgstr "webbtjänster under din kontroll" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Logga ut" diff --git a/l10n/sv/files.po b/l10n/sv/files.po index 8ad64f646e8..0cb97531859 100644 --- a/l10n/sv/files.po +++ b/l10n/sv/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 09:25+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 02:10+0000\n" "Last-Translator: Lokal_Profil \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -24,20 +24,6 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "Kunde inte flytta %s - Det finns redan en fil med detta namn" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "Kan inte flytta %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Kan inte byta namn på filen" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil uppladdad. Okänt fel" @@ -73,11 +59,11 @@ msgstr "Saknar en tillfällig mapp" msgid "Failed to write to disk" msgstr "Misslyckades spara till disk" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "Inte tillräckligt med lagringsutrymme tillgängligt" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Inte tillräckligt med utrymme tillgängligt" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Felaktig mapp." @@ -85,15 +71,15 @@ msgstr "Felaktig mapp." msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Sluta dela" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Radera" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Byt namn" @@ -117,7 +103,7 @@ msgstr "avbryt" msgid "replaced {new_name}" msgstr "ersatt {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "ångra" @@ -125,13 +111,9 @@ msgstr "ångra" msgid "replaced {new_name} with {old_name}" msgstr "ersatt {new_name} med {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "stoppad delning {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "raderade {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "utför raderingen" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -155,86 +137,78 @@ msgstr "Ditt lagringsutrymme är fullt, filer kan ej längre laddas upp eller sy msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Din nedladdning förbereds. Det kan ta tid om det är stora filer." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes." -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Uppladdningsfel" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Stäng" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Väntar" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 filuppladdning" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} filer laddas upp" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Uppladdning avbruten." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL kan inte vara tom." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} filer skannade" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "fel vid skanning" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Namn" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Storlek" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Ändrad" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 mapp" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mappar" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 fil" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} filer" @@ -290,32 +264,40 @@ msgstr "Mapp" msgid "From link" msgstr "Från länk" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "Papperskorgen" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Avbryt uppladdning" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Ingenting här. Ladda upp något!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Ladda ner" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "För stor uppladdning" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Filer skannas, var god vänta" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Aktuell skanning" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "Uppgraderar filsystemets cache..." diff --git a/l10n/sv/files_trashbin.po b/l10n/sv/files_trashbin.po new file mode 100644 index 00000000000..d68d5954fe2 --- /dev/null +++ b/l10n/sv/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# André , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Namn" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "Raderad" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 mapp" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} mappar" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 fil" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} filer" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "Ingenting här. Din papperskorg är tom!" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "Återskapa" diff --git a/l10n/sv/settings.po b/l10n/sv/settings.po index 3b39b6e2312..9891f7d1ec6 100644 --- a/l10n/sv/settings.po +++ b/l10n/sv/settings.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André , 2013. # Christer Eriksson , 2012. # Daniel Sandman , 2012. # , 2011. @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 00:50+0000\n" +"Last-Translator: Lokal_Profil \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,14 +84,42 @@ msgstr "Kan inte lägga till användare i gruppen %s" msgid "Unable to remove user from group %s" msgstr "Kan inte radera användare från gruppen %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "Kunde inte uppdatera appen" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "Uppdaterar till {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Deaktivera" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Aktivera" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "Var god vänta..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "Uppdaterar..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "Fel uppstod vid uppdatering av appen" + +#: js/apps.js:87 +msgid "Error" +msgstr "Fel" + +#: js/apps.js:90 +msgid "Updated" +msgstr "Uppdaterad" + #: js/personal.js:69 msgid "Saving..." msgstr "Sparar..." @@ -119,6 +148,10 @@ msgstr "Se programsida på apps.owncloud.com" msgid "-licensed by " msgstr "-licensierad av " +#: templates/apps.php:31 +msgid "Update" +msgstr "Uppdatera" + #: templates/help.php:3 msgid "User Documentation" msgstr "Användardokumentation" @@ -236,7 +269,7 @@ msgstr "Utvecklad av o #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "Inloggningsnamn" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -260,7 +293,7 @@ msgstr "Annat" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "Visat namn" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -270,6 +303,14 @@ msgstr "Gruppadministratör" msgid "Storage" msgstr "Lagring" +#: templates/users.php:97 +msgid "change display name" +msgstr "ändra visat namn" + +#: templates/users.php:101 +msgid "set new password" +msgstr "ange nytt lösenord" + #: templates/users.php:137 msgid "Default" msgstr "Förvald" diff --git a/l10n/sv/user_ldap.po b/l10n/sv/user_ldap.po index 4455df0fb2f..1f1237b9af1 100644 --- a/l10n/sv/user_ldap.po +++ b/l10n/sv/user_ldap.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André , 2013. # Magnus Höglund , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-21 15:10+0000\n" -"Last-Translator: Magnus Höglund \n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +19,58 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "Misslyckades med att radera serverinställningen" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "Inställningen är giltig och anslutningen kunde upprättas!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer." + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Raderingen misslyckades" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "Behåll inställningarna?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "Kunde inte lägga till serverinställning" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "Anslutningstestet lyckades" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "Anslutningstestet misslyckades" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "Vill du verkligen radera den nuvarande serverinställningen?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "Bekräfta radering" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +85,227 @@ msgid "" msgstr "Varning: PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation." #: templates/settings.php:15 +msgid "Server configuration" +msgstr "Serverinställning" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "Lägg till serverinställning" + +#: templates/settings.php:21 msgid "Host" msgstr "Server" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Start DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "Ett Start DN per rad" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kan ange start DN för användare och grupper under fliken Avancerat" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Användare DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN för användaren som skall användas, t.ex. uid=agent, dc=example, dc=com. För anonym åtkomst, lämna DN och lösenord tomt." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Lösenord" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "För anonym åtkomst, lämna DN och lösenord tomt." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Filter logga in användare" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definierar filter att tillämpa vid inloggningsförsök. %% uid ersätter användarnamn i loginåtgärden." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "använd platshållare %%uid, t ex \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Filter lista användare" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Definierar filter att tillämpa vid listning av användare." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "utan platshållare, t.ex. \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Gruppfilter" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definierar filter att tillämpa vid listning av grupper." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "utan platshållare, t.ex. \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Bas för användare i katalogtjänst" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "En Användare start DN per rad" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Bas för grupper i katalogtjänst" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "En Grupp start DN per rad" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "Inaktivera huvudserver" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Attribut för gruppmedlemmar" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "Använd TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Använd inte för SSL-anslutningar, det kommer inte att fungera." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-servern är okänslig för gemener och versaler (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Stäng av verifiering av SSL-certifikat." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Rekommenderas inte, använd bara för test. " -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Attribut för användarnamn" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Attribut som används för att generera användarnamn i ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Attribut för gruppnamn" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Attribut som används för att generera gruppnamn i ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "i bytes" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "i sekunder. En förändring tömmer cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Attribut för användarnamn" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Attribut som används för att generera användarnamn i ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Bas för användare i katalogtjänst" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "En Användare start DN per rad" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Attribut för gruppnamn" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Attribut som används för att generera gruppnamn i ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Bas för grupper i katalogtjänst" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "En Grupp start DN per rad" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Attribut för gruppmedlemmar" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "i bytes" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Hjälp" diff --git a/l10n/ta_LK/core.po b/l10n/ta_LK/core.po index ec703bdcd4e..08005ae0930 100644 --- a/l10n/ta_LK/core.po +++ b/l10n/ta_LK/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -156,59 +156,59 @@ msgstr "கார்த்திகை" msgid "December" msgstr "மார்கழி" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "அமைப்புகள்" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "செக்கன்களுக்கு முன்" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 நிமிடத்திற்கு முன் " -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{நிமிடங்கள்} நிமிடங்களுக்கு முன் " -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 மணித்தியாலத்திற்கு முன்" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{மணித்தியாலங்கள்} மணித்தியாலங்களிற்கு முன்" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "இன்று" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "நேற்று" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{நாட்கள்} நாட்களுக்கு முன்" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "கடந்த மாதம்" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{மாதங்கள்} மாதங்களிற்கு முன்" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "மாதங்களுக்கு முன்" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "கடந்த வருடம்" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "வருடங்களுக்கு முன்" @@ -253,7 +253,7 @@ msgstr "தேவைப்பட்ட கோப்பு {கோப்பு} #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "பகிர்வு" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -541,7 +541,7 @@ msgstr "அமைப்பை முடிக்க" msgid "web services under your control" msgstr "உங்கள் கட்டுப்பாட்டின் கீழ் இணைய சேவைகள்" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "விடுபதிகை செய்க" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index 9f5d785083a..392eb89ac49 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,20 +18,6 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு" @@ -67,11 +53,11 @@ msgstr "ஒரு தற்காலிகமான கோப்புறைய msgid "Failed to write to disk" msgstr "வட்டில் எழுத முடியவில்லை" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -79,15 +65,15 @@ msgstr "" msgid "Files" msgstr "கோப்புகள்" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "பகிரப்படாதது" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "அழிக்க" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "பெயர்மாற்றம்" @@ -111,7 +97,7 @@ msgstr "இரத்து செய்க" msgid "replaced {new_name}" msgstr "மாற்றப்பட்டது {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "முன் செயல் நீக்கம் " @@ -119,13 +105,9 @@ msgstr "முன் செயல் நீக்கம் " msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ஆனது {old_name} இனால் மாற்றப்பட்டது" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "பகிரப்படாதது {கோப்புகள்}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "நீக்கப்பட்டது {கோப்புகள்}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -149,86 +131,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "பதிவேற்றல் வழு" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "மூடுக" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "நிலுவையிலுள்ள" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 கோப்பு பதிவேற்றப்படுகிறது" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{எண்ணிக்கை} கோப்புகள் பதிவேற்றப்படுகின்றது" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL வெறுமையாக இருக்கமுடியாது." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{எண்ணிக்கை} கோப்புகள் வருடப்பட்டது" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "வருடும் போதான வழு" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "பெயர்" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "அளவு" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "மாற்றப்பட்டது" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 கோப்புறை" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{எண்ணிக்கை} கோப்புறைகள்" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 கோப்பு" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{எண்ணிக்கை} கோப்புகள்" @@ -284,32 +258,40 @@ msgstr "கோப்புறை" msgid "From link" msgstr "இணைப்பிலிருந்து" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "பதிவேற்றலை இரத்து செய்க" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "பதிவிறக்குக" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "பதிவேற்றல் மிகப்பெரியது" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "தற்போது வருடப்படுபவை" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ta_LK/files_trashbin.po b/l10n/ta_LK/files_trashbin.po new file mode 100644 index 00000000000..be19d3c7f33 --- /dev/null +++ b/l10n/ta_LK/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta_LK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "பெயர்" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 கோப்புறை" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{எண்ணிக்கை} கோப்புறைகள்" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 கோப்பு" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{எண்ணிக்கை} கோப்புகள்" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/ta_LK/settings.po b/l10n/ta_LK/settings.po index 9853ea2645c..04ffdaacb5e 100644 --- a/l10n/ta_LK/settings.po +++ b/l10n/ta_LK/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -76,14 +76,42 @@ msgstr "குழு %s இல் பயனாளரை சேர்க்க msgid "Unable to remove user from group %s" msgstr "குழு %s இலிருந்து பயனாளரை நீக்கமுடியாது" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "இயலுமைப்ப" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "செயலற்றதாக்குக" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "வழு" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "இயலுமைப்படுத்துக" @@ -112,6 +140,10 @@ msgstr "apps.owncloud.com இல் செயலி பக்கத்தை ப msgid "-licensed by " msgstr "-அனுமதி பெற்ற " +#: templates/apps.php:31 +msgid "Update" +msgstr "இற்றைப்படுத்தல்" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -263,6 +295,14 @@ msgstr "குழு நிர்வாகி" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/ta_LK/user_ldap.po b/l10n/ta_LK/user_ldap.po index 401d69aec01..c9b1c2c58d4 100644 --- a/l10n/ta_LK/user_ldap.po +++ b/l10n/ta_LK/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "நீக்கம் தோல்வியடைந்தது" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "ஓம்புனர்" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "தள DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் " -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "பயனாளர் DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "கடவுச்சொல்" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "துறை " -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "தள பயனாளர் மரம்" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "தள குழு மரம்" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "குழு உறுப்பினர் சங்கம்" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLS ஐ பயன்படுத்தவும்" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "பரிந்துரைக்கப்படவில்லை, சோதனைக்காக மட்டும் பயன்படுத்தவும்." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "பயனாளர் காட்சிப்பெயர் புலம்" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "குழுவின் காட்சி பெயர் புலம் " - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "bytes களில் " - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "பயனாளர் காட்சிப்பெயர் புலம்" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "தள பயனாளர் மரம்" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "குழுவின் காட்சி பெயர் புலம் " + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "தள குழு மரம்" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "குழு உறுப்பினர் சங்கம்" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "bytes களில் " + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "உதவி" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 459384f62ca..6f663178aa4 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -155,59 +155,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "" -#: js/js.js:762 +#: js/js.js:760 msgid "seconds ago" msgstr "" -#: js/js.js:763 +#: js/js.js:761 msgid "1 minute ago" msgstr "" -#: js/js.js:764 +#: js/js.js:762 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:765 +#: js/js.js:763 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:764 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:765 msgid "today" msgstr "" -#: js/js.js:768 +#: js/js.js:766 msgid "yesterday" msgstr "" -#: js/js.js:769 +#: js/js.js:767 msgid "{days} days ago" msgstr "" -#: js/js.js:770 +#: js/js.js:768 msgid "last month" msgstr "" -#: js/js.js:771 +#: js/js.js:769 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:770 msgid "months ago" msgstr "" -#: js/js.js:773 +#: js/js.js:771 msgid "last year" msgstr "" -#: js/js.js:774 +#: js/js.js:772 msgid "years ago" msgstr "" @@ -540,7 +540,7 @@ msgstr "" msgid "web services under your control" msgstr "" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "" @@ -562,11 +562,11 @@ msgstr "" msgid "Lost your password?" msgstr "" -#: templates/login.php:39 +#: templates/login.php:41 msgid "remember" msgstr "" -#: templates/login.php:41 +#: templates/login.php:43 msgid "Log in" msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 385f79bc971..ae36fd501f5 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,60 +17,46 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - -#: ajax/upload.php:17 +#: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:24 +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:25 +#: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:27 +#: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:29 +#: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:30 +#: ajax/upload.php:32 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:31 +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:32 +#: ajax/upload.php:34 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:52 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:83 msgid "Invalid directory." msgstr "" @@ -78,15 +64,15 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -110,7 +96,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -118,12 +104,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -148,86 +130,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:953 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:954 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:955 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:887 +#: js/files.js:974 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:976 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:984 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:986 msgid "{count} files" msgstr "" @@ -283,32 +257,40 @@ msgstr "" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index ce76225fda2..64e6d0ded68 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index a46c86e0b65..43f9d2e2965 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:405 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:406 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting " "of FTP shares is not possible. Please ask your system administrator to " diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index fa7fe278295..92fc21f0d1f 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot new file mode 100644 index 00000000000..0b16639a53d --- /dev/null +++ b/l10n/templates/files_trashbin.pot @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 5af79d543f4..e785197b7b9 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 01f7eb678c0..9c1b1b4bcfa 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,47 +17,47 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: app.php:301 +#: app.php:312 msgid "Help" msgstr "" -#: app.php:308 +#: app.php:319 msgid "Personal" msgstr "" -#: app.php:313 +#: app.php:324 msgid "Settings" msgstr "" -#: app.php:318 +#: app.php:329 msgid "Users" msgstr "" -#: app.php:325 +#: app.php:336 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:338 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:203 files.php:228 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:227 msgid "Selected files too large to generate zip file." msgstr "" -#: helper.php:229 +#: helper.php:226 msgid "couldn't be determined" msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index c07b99aab76..3e4d268fe83 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -75,14 +75,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -112,6 +140,10 @@ msgid "" "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -262,6 +294,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 002852e202d..ac142ab399e 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,58 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may " @@ -31,163 +83,225 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. uid=agent," "dc=example,dc=com. For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 4687e50a638..def54daf0e5 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" +"POT-Creation-Date: 2013-02-05 00:19+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgstr "" msgid "URL: http://" msgstr "" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " diff --git a/l10n/th_TH/core.po b/l10n/th_TH/core.po index e218f60d9af..e890f708a24 100644 --- a/l10n/th_TH/core.po +++ b/l10n/th_TH/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 03:30+0000\n" +"Last-Translator: AriesAnywhere Anywhere \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -157,59 +157,59 @@ msgstr "พฤศจิกายน" msgid "December" msgstr "ธันวาคม" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "ตั้งค่า" -#: js/js.js:762 +#: js/js.js:760 msgid "seconds ago" msgstr "วินาที ก่อนหน้านี้" -#: js/js.js:763 +#: js/js.js:761 msgid "1 minute ago" msgstr "1 นาทีก่อนหน้านี้" -#: js/js.js:764 +#: js/js.js:762 msgid "{minutes} minutes ago" msgstr "{minutes} นาทีก่อนหน้านี้" -#: js/js.js:765 +#: js/js.js:763 msgid "1 hour ago" msgstr "1 ชั่วโมงก่อนหน้านี้" -#: js/js.js:766 +#: js/js.js:764 msgid "{hours} hours ago" msgstr "{hours} ชั่วโมงก่อนหน้านี้" -#: js/js.js:767 +#: js/js.js:765 msgid "today" msgstr "วันนี้" -#: js/js.js:768 +#: js/js.js:766 msgid "yesterday" msgstr "เมื่อวานนี้" -#: js/js.js:769 +#: js/js.js:767 msgid "{days} days ago" msgstr "{day} วันก่อนหน้านี้" -#: js/js.js:770 +#: js/js.js:768 msgid "last month" msgstr "เดือนที่แล้ว" -#: js/js.js:771 +#: js/js.js:769 msgid "{months} months ago" msgstr "{months} เดือนก่อนหน้านี้" -#: js/js.js:772 +#: js/js.js:770 msgid "months ago" msgstr "เดือน ที่ผ่านมา" -#: js/js.js:773 +#: js/js.js:771 msgid "last year" msgstr "ปีที่แล้ว" -#: js/js.js:774 +#: js/js.js:772 msgid "years ago" msgstr "ปี ที่ผ่านมา" @@ -254,11 +254,11 @@ msgstr "ไฟล์ {file} ซึ่งเป็นไฟล์ที่จำ #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "แชร์" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "แชร์แล้ว" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -542,7 +542,7 @@ msgstr "ติดตั้งเรียบร้อยแล้ว" msgid "web services under your control" msgstr "web services under your control" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "ออกจากระบบ" @@ -564,11 +564,11 @@ msgstr "กรุณาเปลี่ยนรหัสผ่านของค msgid "Lost your password?" msgstr "ลืมรหัสผ่าน?" -#: templates/login.php:39 +#: templates/login.php:41 msgid "remember" msgstr "จำรหัสผ่าน" -#: templates/login.php:41 +#: templates/login.php:43 msgid "Log in" msgstr "เข้าสู่ระบบ" diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po index 3bde97a7e04..2ea3d92a701 100644 --- a/l10n/th_TH/files.po +++ b/l10n/th_TH/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 17:20+0000\n" +"POT-Creation-Date: 2013-02-04 00:04+0100\n" +"PO-Revision-Date: 2013-02-03 03:30+0000\n" "Last-Translator: AriesAnywhere Anywhere \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -19,60 +19,46 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "ไม่สามารถย้าย %s ได้" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "ไม่สามารถเปลี่ยนชื่อไฟล์ได้" - -#: ajax/upload.php:17 +#: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ" -#: ajax/upload.php:24 +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" msgstr "ไม่มีข้อผิดพลาดใดๆ ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว" -#: ajax/upload.php:25 +#: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini" -#: ajax/upload.php:27 +#: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "ไฟล์ที่อัพโหลดมีขนาดเกินคำสั่ง MAX_FILE_SIZE ที่ระบุเอาไว้ในรูปแบบคำสั่งในภาษา HTML" -#: ajax/upload.php:29 +#: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" msgstr "ไฟล์ที่อัพโหลดยังไม่ได้ถูกอัพโหลดอย่างสมบูรณ์" -#: ajax/upload.php:30 +#: ajax/upload.php:32 msgid "No file was uploaded" msgstr "ยังไม่มีไฟล์ที่ถูกอัพโหลด" -#: ajax/upload.php:31 +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย" -#: ajax/upload.php:32 +#: ajax/upload.php:34 msgid "Failed to write to disk" msgstr "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน" +#: ajax/upload.php:52 +msgid "Not enough space available" +msgstr "มีพื้นที่เหลือไม่เพียงพอ" -#: ajax/upload.php:77 +#: ajax/upload.php:83 msgid "Invalid directory." msgstr "ไดเร็กทอรี่ไม่ถูกต้อง" @@ -80,15 +66,15 @@ msgstr "ไดเร็กทอรี่ไม่ถูกต้อง" msgid "Files" msgstr "ไฟล์" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "ยกเลิกการแชร์ข้อมูล" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "ลบ" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "เปลี่ยนชื่อ" @@ -112,7 +98,7 @@ msgstr "ยกเลิก" msgid "replaced {new_name}" msgstr "แทนที่ {new_name} แล้ว" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "เลิกทำ" @@ -120,13 +106,9 @@ msgstr "เลิกทำ" msgid "replaced {new_name} with {old_name}" msgstr "แทนที่ {new_name} ด้วย {old_name} แล้ว" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "ยกเลิกการแชร์แล้ว {files} ไฟล์" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "ลบไฟล์แล้ว {files} ไฟล์" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "ดำเนินการตามคำสั่งลบ" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -150,86 +132,78 @@ msgstr "พื้นที่จัดเก็บข้อมูลของค msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "กำลังเตรียมดาวน์โหลดข้อมูล หากไฟล์มีขนาดใหญ่ อาจใช้เวลาสักครู่" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่หรือมีขนาด 0 ไบต์" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "เกิดข้อผิดพลาดในการอัพโหลด" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "ปิด" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "กำลังอัพโหลดไฟล์ 1 ไฟล์" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "กำลังอัพโหลด {count} ไฟล์" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "การอัพโหลดถูกยกเลิก" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL ไม่สามารถเว้นว่างได้" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ชื่อโฟลเดอร์ไม่ถูกต้อง การใช้งาน 'แชร์' สงวนไว้สำหรับ Owncloud เท่านั้น" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "สแกนไฟล์แล้ว {count} ไฟล์" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "พบข้อผิดพลาดในระหว่างการสแกนไฟล์" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "ชื่อ" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ขนาด" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "ปรับปรุงล่าสุด" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 โฟลเดอร์" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} โฟลเดอร์" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 ไฟล์" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ไฟล์" @@ -285,32 +259,40 @@ msgstr "แฟ้มเอกสาร" msgid "From link" msgstr "จากลิงก์" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "ถังขยะ" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "ยกเลิกการอัพโหลด" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "ดาวน์โหลด" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "ไฟล์ที่กำลังสแกนอยู่ขณะนี้" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "กำลังอัพเกรดหน่วยความจำแคชของระบบไฟล์..." diff --git a/l10n/th_TH/files_trashbin.po b/l10n/th_TH/files_trashbin.po new file mode 100644 index 00000000000..86d6b648284 --- /dev/null +++ b/l10n/th_TH/files_trashbin.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# AriesAnywhere Anywhere , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th_TH\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "ดำเนินการคืนค่า" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "ชื่อ" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "ลบแล้ว" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 โฟลเดอร์" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} โฟลเดอร์" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 ไฟล์" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} ไฟล์" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "คืนค่า" diff --git a/l10n/th_TH/settings.po b/l10n/th_TH/settings.po index 238a91cd1dc..21602086ef1 100644 --- a/l10n/th_TH/settings.po +++ b/l10n/th_TH/settings.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 03:30+0000\n" +"Last-Translator: AriesAnywhere Anywhere \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -78,14 +78,42 @@ msgstr "ไม่สามารถเพิ่มผู้ใช้งานเ msgid "Unable to remove user from group %s" msgstr "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "ไม่สามารถอัพเดทแอปฯ" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "อัพเดทไปเป็นรุ่น {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "ปิดใช้งาน" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "เปิดใช้งาน" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "กรุณารอสักครู่..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "กำลังอัพเดทข้อมูล..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "เกิดข้อผิดพลาดในระหว่างการอัพเดทแอปฯ" + +#: js/apps.js:87 +msgid "Error" +msgstr "ข้อผิดพลาด" + +#: js/apps.js:90 +msgid "Updated" +msgstr "อัพเดทแล้ว" + #: js/personal.js:69 msgid "Saving..." msgstr "กำลังบันทึุกข้อมูล..." @@ -114,6 +142,10 @@ msgstr "ดูหน้าแอพพลิเคชั่นที่ apps.own msgid "-licensed by " msgstr "-ลิขสิทธิ์การใช้งานโดย " +#: templates/apps.php:31 +msgid "Update" +msgstr "อัพเดท" + #: templates/help.php:3 msgid "User Documentation" msgstr "เอกสารคู่มือการใช้งานสำหรับผู้ใช้งาน" @@ -231,7 +263,7 @@ msgstr "พัฒนาโดย the \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "การกำหนดค่าถูกต้องและการเชื่อมต่อสามารถเชื่อมต่อได้!" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "การกำหนดค่าถูกต้อง, แต่การผูกข้อมูลล้มเหลว, กรุณาตรวจสอบการตั้งค่าเซิร์ฟเวอร์และข้อมูลการเข้าใช้งาน" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "การกำหนดค่าไม่ถูกต้อง กรุณาดูรายละเอียดจากบันทึกการเปลี่ยนแปลงของ ownCloud สำหรับรายละเอียดเพิ่มเติม" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "การลบทิ้งล้มเหลว" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "รักษาการตั้งค่าไว้?" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "ไม่สามารถเพิ่มค่ากำหนดเซิร์ฟเวอร์ได้" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "ทดสอบการเชื่อมต่อสำเร็จ" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "ทดสอบการเชื่อมต่อล้มเหลว" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "ยืนยันการลบทิ้ง" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "คำเตือน: โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "การกำหนดค่าเซิร์ฟเวอร์" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "เพิ่มการกำหนดค่าเซิร์ฟเวอร์" + +#: templates/settings.php:21 msgid "Host" msgstr "โฮสต์" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "คุณสามารถปล่อยช่องโปรโตคอลเว้นไว้ได้, ยกเว้นกรณีที่คุณต้องการใช้ SSL จากนั้นเริ่มต้นด้วย ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN ฐาน" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "หนึ่ง Base DN ต่อบรรทัด" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN ของผู้ใช้งาน" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN ของผู้ใช้งานที่เป็นลูกค้าอะไรก็ตามที่ผูกอยู่ด้วย เช่น uid=agent, dc=example, dc=com, สำหรับการเข้าถึงโดยบุคคลนิรนาม, ให้เว้นว่าง DN และ รหัสผ่านเอาไว้" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "รหัสผ่าน" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "สำหรับการเข้าถึงโดยบุคคลนิรนาม ให้เว้นว่าง DN และรหัสผ่านไว้" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "ตัวกรองข้อมูลการเข้าสู่ระบบของผู้ใช้งาน" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "กำหนดตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อมีความพยายามในการเข้าสู่ระบบ %%uid จะถูกนำไปแทนที่ชื่อผู้ใช้งานในการกระทำของการเข้าสู่ระบบ" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "ใช้ตัวยึด %%uid, เช่น \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "ตัวกรองข้อมูลรายชื่อผู้ใช้งาน" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลผู้ใช้งาน" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=person\"," -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "ตัวกรองข้อมูลกลุ่ม" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลกลุ่ม" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=posixGroup\"," -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "ตั้งค่าการเชื่อมต่อ" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "พอร์ต" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "รายการผู้ใช้งานหลักแบบ Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" -msgstr "หนึ่ง User Base DN ต่อบรรทัด" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "รายการกลุ่มหลักแบบ Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" -msgstr "หนึ่ง Group Base DN ต่อบรรทัด" +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "ปิดใช้งานเซิร์ฟเวอร์หลัก" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "ความสัมพันธ์ของสมาชิกในกลุ่ม" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "ใช้ TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "ไม่แนะนำให้ใช้งาน, ใช้สำหรับการทดสอบเท่านั้น" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สำหรับสร้างชื่อของผู้ใช้งาน ownCloud" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "ช่องแสดงชื่อกลุ่มที่ต้องการ" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "ในหน่วยไบต์" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "ตั้งค่าไดเร็กทอรี่" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สำหรับสร้างชื่อของผู้ใช้งาน ownCloud" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "รายการผู้ใช้งานหลักแบบ Tree" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "หนึ่ง User Base DN ต่อบรรทัด" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "คุณลักษณะการค้นหาชื่อผู้ใช้" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "ช่องแสดงชื่อกลุ่มที่ต้องการ" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "รายการกลุ่มหลักแบบ Tree" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "หนึ่ง Group Base DN ต่อบรรทัด" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "คุณลักษณะการค้นหาแบบกลุ่ม" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "ความสัมพันธ์ของสมาชิกในกลุ่ม" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "คุณลักษณะพิเศษ" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "ในหน่วยไบต์" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "ช่วยเหลือ" diff --git a/l10n/tr/core.po b/l10n/tr/core.po index 1f3b9f92bc3..ed983c565f0 100644 --- a/l10n/tr/core.po +++ b/l10n/tr/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -160,59 +160,59 @@ msgstr "Kasım" msgid "December" msgstr "Aralık" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Ayarlar" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "saniye önce" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 dakika önce" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} dakika önce" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 saat önce" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} saat önce" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "bugün" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "dün" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} gün önce" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "geçen ay" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} ay önce" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "ay önce" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "geçen yıl" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "yıl önce" @@ -257,7 +257,7 @@ msgstr "İhtiyaç duyulan {file} dosyası kurulu değil." #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Paylaş" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -545,7 +545,7 @@ msgstr "Kurulumu tamamla" msgid "web services under your control" msgstr "kontrolünüzdeki web servisleri" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Çıkış yap" diff --git a/l10n/tr/files.po b/l10n/tr/files.po index c6e1b108a7c..322d36729b4 100644 --- a/l10n/tr/files.po +++ b/l10n/tr/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -23,20 +23,6 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "%s taşınamadı. Bu isimde dosya zaten var." - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "%s taşınamadı" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "Dosya adı değiştirilemedi" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Dosya yüklenmedi. Bilinmeyen hata" @@ -72,11 +58,11 @@ msgstr "Geçici bir klasör eksik" msgid "Failed to write to disk" msgstr "Diske yazılamadı" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "Yeterli disk alanı yok" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Geçersiz dizin." @@ -84,15 +70,15 @@ msgstr "Geçersiz dizin." msgid "Files" msgstr "Dosyalar" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Paylaşılmayan" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Sil" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "İsim değiştir." @@ -116,7 +102,7 @@ msgstr "iptal" msgid "replaced {new_name}" msgstr "değiştirilen {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "geri al" @@ -124,13 +110,9 @@ msgstr "geri al" msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ismi {old_name} ile değiştirildi" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "paylaşılmamış {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "silinen {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -154,86 +136,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir." -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Yükleme hatası" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Kapat" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Bekliyor" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 dosya yüklendi" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} dosya yükleniyor" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Yükleme iptal edildi." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL boş olamaz." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Geçersiz dizin adı. Shared isminin kullanımı Owncloud tarafından rezerver edilmiştir." -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} dosya tarandı" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "tararamada hata oluşdu" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ad" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Boyut" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Değiştirilme" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 dizin" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dizin" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 dosya" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} dosya" @@ -289,32 +263,40 @@ msgstr "Klasör" msgid "From link" msgstr "Bağlantıdan" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Yüklemeyi iptal et" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Burada hiçbir şey yok. Birşeyler yükleyin!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "İndir" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Yüklemeniz çok büyük" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Yüklemeye çalıştığınız dosyalar bu sunucudaki maksimum yükleme boyutunu aşıyor." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Dosyalar taranıyor, lütfen bekleyin." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Güncel tarama" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/tr/files_trashbin.po b/l10n/tr/files_trashbin.po new file mode 100644 index 00000000000..e987986453c --- /dev/null +++ b/l10n/tr/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "İsim" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 dizin" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} dizin" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 dosya" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} dosya" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/tr/settings.po b/l10n/tr/settings.po index 0fb46fd329c..15b5cc3f9e8 100644 --- a/l10n/tr/settings.po +++ b/l10n/tr/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -79,14 +79,42 @@ msgstr "Kullanıcı %s grubuna eklenemiyor" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Etkin değil" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Etkin" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Hata" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Kaydediliyor..." @@ -115,6 +143,10 @@ msgstr "Uygulamanın sayfasına apps.owncloud.com adresinden bakın " msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "Güncelleme" + #: templates/help.php:3 msgid "User Documentation" msgstr "Kullanıcı Belgelendirmesi" @@ -266,6 +298,14 @@ msgstr "Yönetici Grubu " msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po index 306152d4493..6a5f2430b1c 100644 --- a/l10n/tr/user_ldap.po +++ b/l10n/tr/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Silme başarısız oldu" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Konak" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "User DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Parola" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Anonim erişim için DN ve Parola alanlarını boş bırakın." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Kullanıcı Oturum Açma Süzgeci" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Kullanıcı Liste Süzgeci" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bir yer tutucusu olmadan, örneğin \"objectClass=person\"" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Grup Süzgeci" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Port" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Temel Kullanıcı Ağacı" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Temel Grup Ağacı" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Grup-Üye işbirliği" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "TLS kullan" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "SSL bağlantıları ile kullanmayın, başarısız olacaktır." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "SSL sertifika doğrulamasını kapat." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Önerilmez, sadece test için kullanın." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "byte cinsinden" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Temel Kullanıcı Ağacı" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Temel Grup Ağacı" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Grup-Üye işbirliği" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "byte cinsinden" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Kullanıcı adı bölümünü boş bırakın (varsayılan). " -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Yardım" diff --git a/l10n/uk/core.po b/l10n/uk/core.po index 55b74a2fc05..5b2fb82733e 100644 --- a/l10n/uk/core.po +++ b/l10n/uk/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -160,59 +160,59 @@ msgstr "Листопад" msgid "December" msgstr "Грудень" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Налаштування" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "секунди тому" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 хвилину тому" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} хвилин тому" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 годину тому" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} години тому" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "сьогодні" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "вчора" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} днів тому" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "минулого місяця" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} місяців тому" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "місяці тому" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "минулого року" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "роки тому" @@ -257,7 +257,7 @@ msgstr "Необхідний файл {file} не встановлено!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Поділитися" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -545,7 +545,7 @@ msgstr "Завершити налаштування" msgid "web services under your control" msgstr "веб-сервіс під вашим контролем" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Вихід" diff --git a/l10n/uk/files.po b/l10n/uk/files.po index ac7166cb820..97c4a8121ed 100644 --- a/l10n/uk/files.po +++ b/l10n/uk/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -20,20 +20,6 @@ msgstr "" "Language: uk\n" "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);\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Не завантажено жодного файлу. Невідома помилка" @@ -69,11 +55,11 @@ msgstr "Відсутній тимчасовий каталог" msgid "Failed to write to disk" msgstr "Невдалося записати на диск" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -81,15 +67,15 @@ msgstr "" msgid "Files" msgstr "Файли" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Заборонити доступ" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Видалити" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Перейменувати" @@ -113,7 +99,7 @@ msgstr "відміна" msgid "replaced {new_name}" msgstr "замінено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "відмінити" @@ -121,13 +107,9 @@ msgstr "відмінити" msgid "replaced {new_name} with {old_name}" msgstr "замінено {new_name} на {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "неопубліковано {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "видалено {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -151,86 +133,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Помилка завантаження" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Закрити" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Очікування" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 файл завантажується" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} файлів завантажується" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Завантаження перервано." -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL не може бути пустим." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} файлів проскановано" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "помилка при скануванні" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ім'я" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Розмір" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Змінено" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} файлів" @@ -286,32 +260,40 @@ msgstr "Папка" msgid "From link" msgstr "З посилання" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Перервати завантаження" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Тут нічого немає. Відвантажте що-небудь!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Завантажити" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Файл занадто великий" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Файли скануються, зачекайте, будь-ласка." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Поточне сканування" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/uk/files_trashbin.po b/l10n/uk/files_trashbin.po new file mode 100644 index 00000000000..7e9614c45d4 --- /dev/null +++ b/l10n/uk/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk\n" +"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);\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Ім'я" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 папка" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} папок" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 файл" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} файлів" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/uk/settings.po b/l10n/uk/settings.po index ff129914fee..bfce5870201 100644 --- a/l10n/uk/settings.po +++ b/l10n/uk/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -78,14 +78,42 @@ msgstr "Не вдалося додати користувача у групу %s msgid "Unable to remove user from group %s" msgstr "Не вдалося видалити користувача із групи %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Вимкнути" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Включити" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Помилка" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Зберігаю..." @@ -114,6 +142,10 @@ msgstr "Перегляньте сторінку програм на apps.ownclou msgid "-licensed by " msgstr "-licensed by " +#: templates/apps.php:31 +msgid "Update" +msgstr "Оновити" + #: templates/help.php:3 msgid "User Documentation" msgstr "Документація Користувача" @@ -265,6 +297,14 @@ msgstr "Адміністратор групи" msgid "Storage" msgstr "Сховище" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "За замовчуванням" diff --git a/l10n/uk/user_ldap.po b/l10n/uk/user_ldap.po index 24f0b5ffdbb..709ba9d797f 100644 --- a/l10n/uk/user_ldap.po +++ b/l10n/uk/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: uk\n" "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);\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Видалення не було виконано" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Хост" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Базовий DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "DN Користувача" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Пароль" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Фільтр Користувачів, що під'єднуються" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Визначає фільтр, який застосовується при спробі входу. %%uid замінює ім'я користувача при вході." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "використовуйте %%uid заповнювач, наприклад: \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Фільтр Списку Користувачів" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Визначає фільтр, який застосовується при отриманні користувачів" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Фільтр Груп" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Визначає фільтр, який застосовується при отриманні груп." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Порт" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Основне Дерево Користувачів" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Основне Дерево Груп" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Асоціація Група-Член" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Використовуйте TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Не використовуйте його для SSL з'єднань, це не буде виконано." -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечутливий до регістру LDAP сервер (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Вимкнути перевірку SSL сертифіката." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Не рекомендується, використовуйте лише для тестів." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Поле, яке відображає Ім'я Користувача" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Поле, яке відображає Ім'я Групи" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Атрибут LDAP, який використовується для генерації імен груп ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "в байтах" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "в секундах. Зміна очищує кеш." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Поле, яке відображає Ім'я Користувача" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Основне Дерево Користувачів" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Поле, яке відображає Ім'я Групи" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Атрибут LDAP, який використовується для генерації імен груп ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Основне Дерево Груп" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Асоціація Група-Член" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "в байтах" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD." -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Допомога" diff --git a/l10n/vi/core.po b/l10n/vi/core.po index 7f3635025e6..15751465673 100644 --- a/l10n/vi/core.po +++ b/l10n/vi/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -160,59 +160,59 @@ msgstr "Tháng 11" msgid "December" msgstr "Tháng 12" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "Cài đặt" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "vài giây trước" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 phút trước" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} phút trước" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 giờ trước" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} giờ trước" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "hôm nay" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "hôm qua" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} ngày trước" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "tháng trước" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} tháng trước" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "tháng trước" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "năm trước" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "năm trước" @@ -257,7 +257,7 @@ msgstr "Tập tin cần thiết {file} không được cài đặt!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "Chia sẻ" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -545,7 +545,7 @@ msgstr "Cài đặt hoàn tất" msgid "web services under your control" msgstr "các dịch vụ web dưới sự kiểm soát của bạn" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "Đăng xuất" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index 4250cfece6e..44b47a64cd2 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -21,20 +21,6 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "Không có tập tin nào được tải lên. Lỗi không xác định" @@ -70,11 +56,11 @@ msgstr "Không tìm thấy thư mục tạm" msgid "Failed to write to disk" msgstr "Không thể ghi " -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -82,15 +68,15 @@ msgstr "" msgid "Files" msgstr "Tập tin" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "Không chia sẽ" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Xóa" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "Sửa tên" @@ -114,7 +100,7 @@ msgstr "hủy" msgid "replaced {new_name}" msgstr "đã thay thế {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "lùi lại" @@ -122,13 +108,9 @@ msgstr "lùi lại" msgid "replaced {new_name} with {old_name}" msgstr "đã thay thế {new_name} bằng {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "hủy chia sẽ {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "đã xóa {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -152,86 +134,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "Tải lên lỗi" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "Đóng" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Chờ" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 tệp tin đang được tải lên" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} tập tin đang tải lên" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "Hủy tải lên" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này." -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL không được để trống." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} tập tin đã được quét" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "lỗi trong khi quét" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Tên" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Kích cỡ" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Thay đổi" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 thư mục" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} thư mục" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 tập tin" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} tập tin" @@ -287,32 +261,40 @@ msgstr "Thư mục" msgid "From link" msgstr "Từ liên kết" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "Hủy upload" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "Không có gì ở đây .Hãy tải lên một cái gì đó !" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "Tải xuống" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "Tập tin tải lên quá lớn" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ ." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "Tập tin đang được quét ,vui lòng chờ." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "Hiện tại đang quét" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/vi/files_trashbin.po b/l10n/vi/files_trashbin.po new file mode 100644 index 00000000000..696681bd68a --- /dev/null +++ b/l10n/vi/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "Tên" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 thư mục" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} thư mục" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 tập tin" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} tập tin" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/vi/settings.po b/l10n/vi/settings.po index 3cb4e519b63..d7a5c629f52 100644 --- a/l10n/vi/settings.po +++ b/l10n/vi/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -81,14 +81,42 @@ msgstr "Không thể thêm người dùng vào nhóm %s" msgid "Unable to remove user from group %s" msgstr "Không thể xóa người dùng từ nhóm %s" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "Tắt" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "Bật" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "Lỗi" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "Đang tiến hành lưu ..." @@ -117,6 +145,10 @@ msgstr "Xem nhiều ứng dụng hơn tại apps.owncloud.com" msgid "-licensed by " msgstr "-Giấy phép được cấp bởi " +#: templates/apps.php:31 +msgid "Update" +msgstr "Cập nhật" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -268,6 +300,14 @@ msgstr "Nhóm quản trị" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/vi/user_ldap.po b/l10n/vi/user_ldap.po index 6e334612607..d067549c1d8 100644 --- a/l10n/vi/user_ldap.po +++ b/l10n/vi/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "Xóa thất bại" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "Máy chủ" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "DN cơ bản" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "Người dùng DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống." -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "Mật khẩu" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "Cho phép truy cập nặc danh , DN và mật khẩu trống." -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "Lọc người dùng đăng nhập" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Xác định các bộ lọc để áp dụng, khi đăng nhập . uid%% thay thế tên người dùng trong các lần đăng nhập." -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "use %%uid placeholder, e.g. \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "Lọc danh sách thành viên" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "Xác định các bộ lọc để áp dụng, khi người dụng sử dụng." -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "mà không giữ chỗ nào, ví dụ như \"objectClass = person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "Bộ lọc nhóm" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "Xác định các bộ lọc để áp dụng, khi nhóm sử dụng." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\"." -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "Cổng" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "Cây người dùng cơ bản" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "Cây nhóm cơ bản" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "Nhóm thành viên Cộng đồng" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "Sử dụng TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "Kết nối SSL bị lỗi. " -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "Trường hợp insensitve LDAP máy chủ (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "Tắt xác thực chứng nhận SSL" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn." -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "Không khuyến khích, Chỉ sử dụng để thử nghiệm." -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "Hiển thị tên người sử dụng" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud." - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "Hiển thị tên nhóm" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud." - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "Theo Byte" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "trong vài giây. Một sự thay đổi bộ nhớ cache." -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "Hiển thị tên người sử dụng" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud." + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "Cây người dùng cơ bản" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "Hiển thị tên nhóm" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud." + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "Cây nhóm cơ bản" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "Nhóm thành viên Cộng đồng" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "Theo Byte" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "Giúp đỡ" diff --git a/l10n/zh_CN.GB2312/core.po b/l10n/zh_CN.GB2312/core.po index 54ee264a5a3..514f8d534c9 100644 --- a/l10n/zh_CN.GB2312/core.po +++ b/l10n/zh_CN.GB2312/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -157,59 +157,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "设置" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "秒前" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 分钟前" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} 分钟前" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "今天" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "昨天" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "上个月" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "月前" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "去年" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "年前" @@ -254,7 +254,7 @@ msgstr "" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "分享" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" @@ -542,7 +542,7 @@ msgstr "完成安装" msgid "web services under your control" msgstr "你控制下的网络服务" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "注销" diff --git a/l10n/zh_CN.GB2312/files.po b/l10n/zh_CN.GB2312/files.po index 4ae0f2a9225..71d9b048220 100644 --- a/l10n/zh_CN.GB2312/files.po +++ b/l10n/zh_CN.GB2312/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -19,20 +19,6 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "没有上传文件。未知错误" @@ -68,11 +54,11 @@ msgstr "丢失了一个临时文件夹" msgid "Failed to write to disk" msgstr "写磁盘失败" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -80,15 +66,15 @@ msgstr "" msgid "Files" msgstr "文件" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "取消共享" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "删除" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "重命名" @@ -112,7 +98,7 @@ msgstr "取消" msgid "replaced {new_name}" msgstr "已替换 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "撤销" @@ -120,13 +106,9 @@ msgstr "撤销" msgid "replaced {new_name} with {old_name}" msgstr "已用 {old_name} 替换 {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "未分享的 {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "已删除的 {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -150,86 +132,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "不能上传你指定的文件,可能因为它是个文件夹或者大小为0" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "上传错误" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "关闭" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "Pending" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 个文件正在上传" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} 个文件正在上传" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "上传取消了" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传。关闭页面会取消上传。" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "网址不能为空。" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} 个文件已扫描" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "扫描出错" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名字" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改日期" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 个文件夹" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 个文件" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 个文件" @@ -285,32 +259,40 @@ msgstr "文件夹" msgid "From link" msgstr "来自链接" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "取消上传" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "这里没有东西.上传点什么!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "下载" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "上传的文件太大了" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "你正在试图上传的文件超过了此服务器支持的最大的文件大小." -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "正在扫描文件,请稍候." -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "正在扫描" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/zh_CN.GB2312/files_trashbin.po b/l10n/zh_CN.GB2312/files_trashbin.po new file mode 100644 index 00000000000..722b4a5f8cb --- /dev/null +++ b/l10n/zh_CN.GB2312/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN.GB2312\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "名称" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 个文件夹" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} 个文件夹" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 个文件" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} 个文件" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/zh_CN.GB2312/settings.po b/l10n/zh_CN.GB2312/settings.po index deb922c37f4..6aa5df48618 100644 --- a/l10n/zh_CN.GB2312/settings.po +++ b/l10n/zh_CN.GB2312/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -77,14 +77,42 @@ msgstr "未能添加用户到群组 %s" msgid "Unable to remove user from group %s" msgstr "未能将用户从群组 %s 移除" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "禁用" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "启用" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "出错" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "保存中..." @@ -113,6 +141,10 @@ msgstr "在owncloud.com上查看应用程序" msgid "-licensed by " msgstr "授权协议 " +#: templates/apps.php:31 +msgid "Update" +msgstr "更新" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -264,6 +296,14 @@ msgstr "群组管理员" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/zh_CN.GB2312/user_ldap.po b/l10n/zh_CN.GB2312/user_ldap.po index 0e45bb6b182..bc915483e99 100644 --- a/l10n/zh_CN.GB2312/user_ldap.po +++ b/l10n/zh_CN.GB2312/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "删除失败" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "主机" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "您可以忽略协议,除非您需要 SSL。然后用 ldaps:// 开头" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "基本判别名" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "您可以在高级选项卡中为用户和群组指定基本判别名" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "用户判别名" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "客户机用户的判别名,将用于绑定,例如 uid=agent, dc=example, dc=com。匿名访问请留空判别名和密码。" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "密码" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "匿名访问请留空判别名和密码。" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "用户登录过滤器" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "定义尝试登录时要应用的过滤器。用 %%uid 替换登录操作中使用的用户名。" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "使用 %%uid 占位符,例如 \"uid=%%uid\"" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "用户列表过滤器" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "定义撷取用户时要应用的过滤器。" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "不能使用占位符,例如 \"objectClass=person\"。" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "群组过滤器" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "定义撷取群组时要应用的过滤器" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "不能使用占位符,例如 \"objectClass=posixGroup\"。" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "端口" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "基本用户树" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "基本群组树" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "群组-成员组合" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "使用 TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "不要使用它进行 SSL 连接,会失败的。" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "大小写不敏感的 LDAP 服务器 (Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "关闭 SSL 证书校验。" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "不推荐,仅供测试" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "用户显示名称字段" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "用于生成用户的 ownCloud 名称的 LDAP 属性。" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "群组显示名称字段" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "用于生成群组的 ownCloud 名称的 LDAP 属性。" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "以字节计" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "以秒计。修改会清空缓存。" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "用户显示名称字段" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "用于生成用户的 ownCloud 名称的 LDAP 属性。" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "基本用户树" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "群组显示名称字段" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "用于生成群组的 ownCloud 名称的 LDAP 属性。" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "基本群组树" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "群组-成员组合" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "以字节计" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "用户名请留空 (默认)。否则,请指定一个 LDAP/AD 属性。" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "帮助" diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index f7c192f722d..c216b30e765 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/core.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -161,59 +161,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "设置" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "秒前" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "一分钟前" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} 分钟前" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1小时前" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} 小时前" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "今天" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "昨天" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "上月" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} 月前" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "月前" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "去年" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "年前" @@ -258,11 +258,11 @@ msgstr "所需文件{file}未安装!" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "共享" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "已共享" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -546,7 +546,7 @@ msgstr "安装完成" msgid "web services under your control" msgstr "由您掌控的网络服务" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "注销" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index ac41681ce43..b52527396da 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-02-01 00:17+0100\n" +"PO-Revision-Date: 2013-01-31 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -24,20 +24,6 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "无法移动 %s - 同名文件已存在" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "无法移动 %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "无法重命名文件" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "没有文件被上传。未知错误" @@ -73,11 +59,11 @@ msgstr "缺少临时目录" msgid "Failed to write to disk" msgstr "写入磁盘失败" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "没有足够可用空间" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "无效文件夹。" @@ -85,15 +71,15 @@ msgstr "无效文件夹。" msgid "Files" msgstr "文件" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "取消分享" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "删除" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "重命名" @@ -117,7 +103,7 @@ msgstr "取消" msgid "replaced {new_name}" msgstr "替换 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "撤销" @@ -125,13 +111,9 @@ msgstr "撤销" msgid "replaced {new_name} with {old_name}" msgstr "已将 {old_name}替换成 {new_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "取消了共享 {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "删除了 {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -155,86 +137,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "下载正在准备中。如果文件较大可能会花费一些时间。" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "无法上传文件,因为它是一个目录或者大小为 0 字节" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "上传错误" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "关闭" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "操作等待中" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1个文件上传中" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} 个文件上传中" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "上传已取消" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传中。现在离开此页会导致上传动作被取消。" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL不能为空" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "无效文件夹名。'共享' 是 Owncloud 预留的文件夹名。" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} 个文件已扫描。" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "扫描时出错" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名称" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改日期" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1个文件夹" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 个文件" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 个文件" @@ -290,32 +264,40 @@ msgstr "文件夹" msgid "From link" msgstr "来自链接" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "取消上传" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "这里还什么都没有。上传些东西吧!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "下载" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "上传文件过大" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "您正尝试上传的文件超过了此服务器可以上传的最大容量限制" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "文件正在被扫描,请稍候。" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "当前扫描" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/zh_CN/files_trashbin.po b/l10n/zh_CN/files_trashbin.po new file mode 100644 index 00000000000..71b559d7bac --- /dev/null +++ b/l10n/zh_CN/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "名称" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1个文件夹" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} 个文件夹" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 个文件" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} 个文件" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/zh_CN/settings.po b/l10n/zh_CN/settings.po index 53b7fa6a2c7..123e52ea0ab 100644 --- a/l10n/zh_CN/settings.po +++ b/l10n/zh_CN/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -81,14 +81,42 @@ msgstr "无法把用户添加到组 %s" msgid "Unable to remove user from group %s" msgstr "无法从组%s中移除用户" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "禁用" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "启用" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "错误" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "正在保存" @@ -117,6 +145,10 @@ msgstr "查看在 app.owncloud.com 的应用程序页面" msgid "-licensed by " msgstr "-核准: " +#: templates/apps.php:31 +msgid "Update" +msgstr "更新" + #: templates/help.php:3 msgid "User Documentation" msgstr "用户文档" @@ -268,6 +300,14 @@ msgstr "组管理员" msgid "Storage" msgstr "存储" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "默认" diff --git a/l10n/zh_CN/user_ldap.po b/l10n/zh_CN/user_ldap.po index b9c039f6bf8..18eef3d02f9 100644 --- a/l10n/zh_CN/user_ldap.po +++ b/l10n/zh_CN/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,58 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "删除失败" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -33,165 +85,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "主机" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "可以忽略协议,但如要使用SSL,则需以ldaps://开头" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "您可以在高级选项卡里为用户和组指定Base DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "User DN" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "客户端使用的DN必须与绑定的相同,比如uid=agent,dc=example,dc=com\n如需匿名访问,将DN和密码保留为空" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "密码" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "启用匿名访问,将DN和密码保留为空" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "用户登录过滤" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "定义当尝试登录时的过滤器。 在登录过程中,%%uid将会被用户名替换" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "使用 %%uid作为占位符,例如“uid=%%uid”" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "用户列表过滤" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "定义拉取用户时的过滤器" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "没有任何占位符,如 \"objectClass=person\"." -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "组过滤" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "定义拉取组信息时的过滤器" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "无需占位符,例如\"objectClass=posixGroup\"" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "端口" -#: templates/settings.php:25 -msgid "Base User Tree" -msgstr "基础用户树" - -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" -msgstr "基础组树" - -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" -msgstr "组成员关联" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 msgid "Use TLS" msgstr "使用TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "不要在SSL链接中使用此选项,会导致失败。" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "大小写敏感LDAP服务器(Windows)" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "关闭SSL证书验证" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "暂不推荐,仅供测试" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "用户显示名称字段" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "用来生成用户的ownCloud名称的 LDAP属性" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "组显示名称字段" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "用来生成组的ownCloud名称的LDAP属性" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "字节数" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "以秒计。修改将清空缓存。" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "用户显示名称字段" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "用来生成用户的ownCloud名称的 LDAP属性" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "基础用户树" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "组显示名称字段" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "用来生成组的ownCloud名称的LDAP属性" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "基础组树" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "组成员关联" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "字节数" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "将用户名称留空(默认)。否则指定一个LDAP/AD属性" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "帮助" diff --git a/l10n/zh_HK/files.po b/l10n/zh_HK/files.po index d8fe0228bcb..3a61b47c5ad 100644 --- a/l10n/zh_HK/files.po +++ b/l10n/zh_HK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" +"POT-Creation-Date: 2013-01-31 17:02+0100\n" +"PO-Revision-Date: 2013-01-31 16:02+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,20 +17,6 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "" @@ -66,11 +52,11 @@ msgstr "" msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:48 -msgid "Not enough storage available" +#: ajax/upload.php:51 +msgid "Not enough space available" msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -78,15 +64,15 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "" @@ -110,7 +96,7 @@ msgstr "" msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "" @@ -118,12 +104,8 @@ msgstr "" msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "" - -#: js/filelist.js:288 -msgid "deleted {files}" +#: js/filelist.js:280 +msgid "perform delete operation" msgstr "" #: js/files.js:52 @@ -148,86 +130,78 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "" -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -283,32 +257,40 @@ msgstr "" msgid "From link" msgstr "" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/zh_HK/files_trashbin.po b/l10n/zh_HK/files_trashbin.po new file mode 100644 index 00000000000..694862fdd6b --- /dev/null +++ b/l10n/zh_HK/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_HK\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:120 +msgid "1 file" +msgstr "" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/zh_HK/settings.po b/l10n/zh_HK/settings.po index bbba342f382..58568a1c6e0 100644 --- a/l10n/zh_HK/settings.po +++ b/l10n/zh_HK/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -75,14 +75,42 @@ msgstr "" msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + #: js/personal.js:69 msgid "Saving..." msgstr "" @@ -111,6 +139,10 @@ msgstr "" msgid "-licensed by " msgstr "" +#: templates/apps.php:31 +msgid "Update" +msgstr "" + #: templates/help.php:3 msgid "User Documentation" msgstr "" @@ -262,6 +294,14 @@ msgstr "" msgid "Storage" msgstr "" +#: templates/users.php:97 +msgid "change display name" +msgstr "" + +#: templates/users.php:101 +msgid "set new password" +msgstr "" + #: templates/users.php:137 msgid "Default" msgstr "" diff --git a/l10n/zh_HK/user_ldap.po b/l10n/zh_HK/user_ldap.po index 8a7d8cdab9c..cda8b305dea 100644 --- a/l10n/zh_HK/user_ldap.po +++ b/l10n/zh_HK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 23:20+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,58 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -31,165 +83,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "" diff --git a/l10n/zh_TW/core.po b/l10n/zh_TW/core.po index ee734ce272b..b7347e7ad74 100644 --- a/l10n/zh_TW/core.po +++ b/l10n/zh_TW/core.po @@ -7,13 +7,14 @@ # , 2012. # Ming Yi Wu , 2012. # , 2013. +# Pellaeon Lin , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 13:30+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -159,59 +160,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 templates/layout.user.php:47 templates/layout.user.php:48 +#: js/js.js:280 msgid "Settings" msgstr "設定" -#: js/js.js:762 +#: js/js.js:759 msgid "seconds ago" msgstr "幾秒前" -#: js/js.js:763 +#: js/js.js:760 msgid "1 minute ago" msgstr "1 分鐘前" -#: js/js.js:764 +#: js/js.js:761 msgid "{minutes} minutes ago" msgstr "{minutes} 分鐘前" -#: js/js.js:765 +#: js/js.js:762 msgid "1 hour ago" msgstr "1 個小時前" -#: js/js.js:766 +#: js/js.js:763 msgid "{hours} hours ago" msgstr "{hours} 小時前" -#: js/js.js:767 +#: js/js.js:764 msgid "today" msgstr "今天" -#: js/js.js:768 +#: js/js.js:765 msgid "yesterday" msgstr "昨天" -#: js/js.js:769 +#: js/js.js:766 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:770 +#: js/js.js:767 msgid "last month" msgstr "上個月" -#: js/js.js:771 +#: js/js.js:768 msgid "{months} months ago" msgstr "{months} 個月前" -#: js/js.js:772 +#: js/js.js:769 msgid "months ago" msgstr "幾個月前" -#: js/js.js:773 +#: js/js.js:770 msgid "last year" msgstr "去年" -#: js/js.js:774 +#: js/js.js:771 msgid "years ago" msgstr "幾年前" @@ -256,11 +257,11 @@ msgstr "沒有安裝所需的檔案 {file} !" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Share" -msgstr "" +msgstr "分享" #: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 msgid "Shared" -msgstr "" +msgstr "已分享" #: js/share.js:141 js/share.js:611 msgid "Error while sharing" @@ -383,11 +384,11 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "升級失敗,請將此問題回報 ownCloud 社群。" #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "升級成功,正將您重新導向至 ownCloud 。" #: lostpassword/controller.php:47 msgid "ownCloud password reset" @@ -544,7 +545,7 @@ msgstr "完成設定" msgid "web services under your control" msgstr "網路服務在您控制之下" -#: templates/layout.user.php:32 +#: templates/layout.user.php:49 msgid "Log out" msgstr "登出" diff --git a/l10n/zh_TW/files.po b/l10n/zh_TW/files.po index a1e826aabd8..5775c873fa0 100644 --- a/l10n/zh_TW/files.po +++ b/l10n/zh_TW/files.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 13:40+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,20 +23,6 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "無法移動 %s - 同名的檔案已經存在" - -#: ajax/move.php:24 -#, php-format -msgid "Could not move %s" -msgstr "無法移動 %s" - -#: ajax/rename.php:19 -msgid "Unable to rename file" -msgstr "無法重新命名檔案" - #: ajax/upload.php:17 msgid "No file was uploaded. Unknown error" msgstr "沒有檔案被上傳。未知的錯誤。" @@ -72,11 +58,11 @@ msgstr "遺失暫存資料夾" msgid "Failed to write to disk" msgstr "寫入硬碟失敗" -#: ajax/upload.php:48 -msgid "Not enough storage available" -msgstr "" +#: ajax/upload.php:51 +msgid "Not enough space available" +msgstr "沒有足夠的可用空間" -#: ajax/upload.php:77 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "無效的資料夾。" @@ -84,15 +70,15 @@ msgstr "無效的資料夾。" msgid "Files" msgstr "檔案" -#: js/fileactions.js:117 templates/index.php:81 templates/index.php:82 +#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 msgid "Unshare" msgstr "取消共享" -#: js/fileactions.js:119 templates/index.php:87 templates/index.php:88 +#: js/fileactions.js:119 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "刪除" -#: js/fileactions.js:181 +#: js/fileactions.js:185 msgid "Rename" msgstr "重新命名" @@ -116,7 +102,7 @@ msgstr "取消" msgid "replaced {new_name}" msgstr "已取代 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 js/filelist.js:286 js/filelist.js:288 +#: js/filelist.js:253 js/filelist.js:255 msgid "undo" msgstr "復原" @@ -124,13 +110,9 @@ msgstr "復原" msgid "replaced {new_name} with {old_name}" msgstr "使用 {new_name} 取代 {old_name}" -#: js/filelist.js:286 -msgid "unshared {files}" -msgstr "已取消分享 {files}" - -#: js/filelist.js:288 -msgid "deleted {files}" -msgstr "已刪除 {files}" +#: js/filelist.js:280 +msgid "perform delete operation" +msgstr "進行刪除動作" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -148,92 +130,84 @@ msgstr "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "您的儲存空間已滿,沒有辦法再更新或是同步檔案!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "您的儲存空間快要滿了 ({usedSpacePercent}%)" -#: js/files.js:219 +#: js/files.js:224 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "正在準備您的下載,若您的檔案較大,將會需要更多時間。" -#: js/files.js:256 +#: js/files.js:261 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0" -#: js/files.js:256 +#: js/files.js:261 msgid "Upload Error" msgstr "上傳發生錯誤" -#: js/files.js:273 +#: js/files.js:278 msgid "Close" msgstr "關閉" -#: js/files.js:292 js/files.js:408 js/files.js:439 +#: js/files.js:297 js/files.js:413 js/files.js:444 msgid "Pending" msgstr "等候中" -#: js/files.js:312 +#: js/files.js:317 msgid "1 file uploading" msgstr "1 個檔案正在上傳" -#: js/files.js:315 js/files.js:370 js/files.js:385 +#: js/files.js:320 js/files.js:375 js/files.js:390 msgid "{count} files uploading" msgstr "{count} 個檔案正在上傳" -#: js/files.js:388 js/files.js:423 +#: js/files.js:393 js/files.js:428 msgid "Upload cancelled." msgstr "上傳取消" -#: js/files.js:493 +#: js/files.js:502 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "檔案上傳中。離開此頁面將會取消上傳。" -#: js/files.js:566 +#: js/files.js:575 msgid "URL cannot be empty." msgstr "URL 不能為空白." -#: js/files.js:571 +#: js/files.js:580 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無效的資料夾名稱,'Shared' 的使用被 Owncloud 保留" -#: js/files.js:784 -msgid "{count} files scanned" -msgstr "{count} 個檔案已掃描" - -#: js/files.js:792 -msgid "error while scanning" -msgstr "掃描時發生錯誤" - -#: js/files.js:866 templates/index.php:63 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名稱" -#: js/files.js:867 templates/index.php:74 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:868 templates/index.php:76 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改" -#: js/files.js:887 +#: js/files.js:970 msgid "1 folder" msgstr "1 個資料夾" -#: js/files.js:889 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 個資料夾" -#: js/files.js:897 +#: js/files.js:980 msgid "1 file" msgstr "1 個檔案" -#: js/files.js:899 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 個檔案" @@ -289,32 +263,40 @@ msgstr "資料夾" msgid "From link" msgstr "從連結" -#: templates/index.php:41 +#: templates/index.php:40 +msgid "Trash" +msgstr "回收筒" + +#: templates/index.php:46 msgid "Cancel upload" msgstr "取消上傳" -#: templates/index.php:55 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "沒有任何東西。請上傳內容!" -#: templates/index.php:69 +#: templates/index.php:73 msgid "Download" msgstr "下載" -#: templates/index.php:101 +#: templates/index.php:105 msgid "Upload too large" msgstr "上傳過大" -#: templates/index.php:103 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。 " -#: templates/index.php:108 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "正在掃描檔案,請稍等。" -#: templates/index.php:111 +#: templates/index.php:115 msgid "Current scanning" msgstr "目前掃描" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "正在更新檔案系統快取..." diff --git a/l10n/zh_TW/files_trashbin.po b/l10n/zh_TW/files_trashbin.po new file mode 100644 index 00000000000..212c2b01ff0 --- /dev/null +++ b/l10n/zh_TW/files_trashbin.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-02 00:06+0100\n" +"PO-Revision-Date: 2013-02-01 23:06+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/trash.js:7 js/trash.js:69 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:100 templates/index.php:17 +msgid "Name" +msgstr "名稱" + +#: js/trash.js:101 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:110 +msgid "1 folder" +msgstr "1 個資料夾" + +#: js/trash.js:112 +msgid "{count} folders" +msgstr "{count} 個資料夾" + +#: js/trash.js:120 +msgid "1 file" +msgstr "1 個檔案" + +#: js/trash.js:122 +msgid "{count} files" +msgstr "{count} 個檔案" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" diff --git a/l10n/zh_TW/settings.po b/l10n/zh_TW/settings.po index e657008a0c0..96601994d53 100644 --- a/l10n/zh_TW/settings.po +++ b/l10n/zh_TW/settings.po @@ -6,6 +6,7 @@ # Donahue Chuang , 2012. # , 2012. # , 2013. +# Pellaeon Lin , 2013. # , 2012. # , 2012. # , 2012. @@ -14,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 23:24+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-04 00:05+0100\n" +"PO-Revision-Date: 2013-02-03 06:00+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,14 +83,42 @@ msgstr "使用者加入群組%s錯誤" msgid "Unable to remove user from group %s" msgstr "使用者移出群組%s錯誤" -#: js/apps.js:28 js/apps.js:67 +#: ajax/updateapp.php:13 +msgid "Couldn't update app." +msgstr "無法更新應用程式" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "更新至 {appversion}" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "停用" -#: js/apps.js:28 js/apps.js:55 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "啟用" +#: js/apps.js:55 +msgid "Please wait...." +msgstr "請稍候..." + +#: js/apps.js:84 +msgid "Updating...." +msgstr "更新中..." + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "更新應用程式錯誤" + +#: js/apps.js:87 +msgid "Error" +msgstr "錯誤" + +#: js/apps.js:90 +msgid "Updated" +msgstr "已更新" + #: js/personal.js:69 msgid "Saving..." msgstr "儲存中..." @@ -118,6 +147,10 @@ msgstr "查看應用程式頁面於 apps.owncloud.com" msgid "-licensed by " msgstr "-核准: " +#: templates/apps.php:31 +msgid "Update" +msgstr "更新" + #: templates/help.php:3 msgid "User Documentation" msgstr "用戶說明文件" @@ -235,7 +268,7 @@ msgstr "由ownCloud #: templates/users.php:21 templates/users.php:79 msgid "Login Name" -msgstr "" +msgstr "登入名稱" #: templates/users.php:26 templates/users.php:82 templates/users.php:107 msgid "Groups" @@ -259,7 +292,7 @@ msgstr "其他" #: templates/users.php:80 msgid "Display Name" -msgstr "" +msgstr "顯示名稱" #: templates/users.php:84 templates/users.php:121 msgid "Group Admin" @@ -269,6 +302,14 @@ msgstr "群組 管理員" msgid "Storage" msgstr "儲存區" +#: templates/users.php:97 +msgid "change display name" +msgstr "修改顯示名稱" + +#: templates/users.php:101 +msgid "set new password" +msgstr "設定新密碼" + #: templates/users.php:137 msgid "Default" msgstr "預設" diff --git a/l10n/zh_TW/user_ldap.po b/l10n/zh_TW/user_ldap.po index e3b5d2655d9..f6b4543db19 100644 --- a/l10n/zh_TW/user_ldap.po +++ b/l10n/zh_TW/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-21 00:04+0100\n" -"PO-Revision-Date: 2013-01-19 23:22+0000\n" +"POT-Creation-Date: 2013-02-03 00:04+0100\n" +"PO-Revision-Date: 2013-02-02 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,58 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "移除失敗" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" @@ -32,165 +84,227 @@ msgid "" msgstr "" #: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 msgid "Host" msgstr "主機" -#: templates/settings.php:15 +#: templates/settings.php:21 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "Base DN" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:16 +#: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "User DN" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:23 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "Password" msgstr "密碼" -#: templates/settings.php:18 +#: templates/settings.php:24 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 msgid "User Login Filter" msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:19 +#: templates/settings.php:25 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "User List Filter" msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:20 +#: templates/settings.php:26 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Group Filter" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:27 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 msgid "Port" msgstr "連接阜" -#: templates/settings.php:25 -msgid "Base User Tree" +#: templates/settings.php:35 +msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:25 -msgid "One User Base DN per line" +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." msgstr "" -#: templates/settings.php:26 -msgid "Base Group Tree" +#: templates/settings.php:36 +msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:26 -msgid "One Group Base DN per line" +#: templates/settings.php:37 +msgid "Disable Main Server" msgstr "" -#: templates/settings.php:27 -msgid "Group-Member association" +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Use TLS" msgstr "使用TLS" -#: templates/settings.php:28 +#: templates/settings.php:38 msgid "Do not use it for SSL connections, it will fail." msgstr "" -#: templates/settings.php:29 +#: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Turn off SSL certificate validation." msgstr "關閉 SSL 憑證驗證" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:30 +#: templates/settings.php:40 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:31 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:31 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:32 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:32 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:34 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:36 +#: templates/settings.php:41 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:62 msgid "Help" msgstr "說明" diff --git a/lib/api.php b/lib/api.php index 545b55757ff..abf1c3b0036 100644 --- a/lib/api.php +++ b/lib/api.php @@ -188,10 +188,13 @@ class OC_API { private static function toXML($array, $writer) { foreach($array as $k => $v) { - if (is_numeric($k)) { + if ($k[0] === '@') { + $writer->writeAttribute(substr($k, 1), $v); + continue; + } else if (is_numeric($k)) { $k = 'element'; } - if (is_array($v)) { + if(is_array($v)) { $writer->startElement($k); self::toXML($v, $writer); $writer->endElement(); diff --git a/lib/app.php b/lib/app.php index 108226fc1a1..fa3e14ce4d2 100644 --- a/lib/app.php +++ b/lib/app.php @@ -142,6 +142,8 @@ class OC_App{ * check if app is shipped * @param string $appid the id of the app to check * @return bool + * + * Check if an app that is installed is a shipped app or installed from the appstore. */ public static function isShipped($appid){ $info = self::getAppInfo($appid); @@ -177,7 +179,7 @@ class OC_App{ * This function checks whether or not an app is enabled. */ public static function isEnabled( $app ) { - if( 'files'==$app or 'yes' == OC_Appconfig::getValue( $app, 'enabled' )) { + if( 'files'==$app or ('yes' == OC_Appconfig::getValue( $app, 'enabled' ))) { return true; } @@ -197,9 +199,10 @@ class OC_App{ if(!is_numeric($app)) { $app = OC_Installer::installShippedApp($app); }else{ + $appdata=OC_OCSClient::getApplication($app); $download=OC_OCSClient::getApplicationDownload($app, 1); if(isset($download['downloadlink']) and $download['downloadlink']!='') { - $app=OC_Installer::installApp(array('source'=>'http', 'href'=>$download['downloadlink'])); + $app=OC_Installer::installApp(array('source'=>'http', 'href'=>$download['downloadlink'],'appdata'=>$appdata)); } } } @@ -212,6 +215,9 @@ class OC_App{ return false; }else{ OC_Appconfig::setValue( $app, 'enabled', 'yes' ); + if(isset($appdata['id'])) { + OC_Appconfig::setValue( $app, 'ocsid', $appdata['id'] ); + } return true; } }else{ @@ -227,8 +233,13 @@ class OC_App{ * This function set an app as disabled in appconfig. */ public static function disable( $app ) { - // check if app is a shiped app or not. if not delete + // check if app is a shipped app or not. if not delete OC_Appconfig::setValue( $app, 'enabled', 'no' ); + + // check if app is a shipped app or not. if not delete + if(!OC_App::isShipped( $app )){ + OC_Installer::removeApp( $app ); + } } /** @@ -495,7 +506,7 @@ class OC_App{ * @return string */ public static function getCurrentApp() { - $script=substr($_SERVER["SCRIPT_NAME"], strlen(OC::$WEBROOT)+1); + $script=substr(OC_Request::scriptName(), strlen(OC::$WEBROOT)+1); $topFolder=substr($script, 0, strpos($script, '/')); if (empty($topFolder)) { $path_info = OC_Request::getPathInfo(); @@ -621,9 +632,13 @@ class OC_App{ if(isset($info['shipped']) and ($info['shipped']=='true')) { $info['internal']=true; $info['internallabel']='Internal App'; + $info['internalclass']=''; + $info['update']=false; } else { $info['internal']=false; $info['internallabel']='3rd Party App'; + $info['internalclass']='externalapp'; + $info['update']=OC_Installer::isUpdateAvailable($app); } $info['preview'] = OC_Helper::imagePath('settings', 'trans.png'); @@ -633,15 +648,15 @@ class OC_App{ } $remoteApps = OC_App::getAppstoreApps(); if ( $remoteApps ) { - // Remove duplicates + // Remove duplicates foreach ( $appList as $app ) { foreach ( $remoteApps AS $key => $remote ) { if ( $app['name'] == $remote['name'] - // To set duplicate detection to use OCS ID instead of string name, - // enable this code, remove the line of code above, - // and add [ID] to info.xml of each 3rd party app: - // OR $app['ocs_id'] == $remote['ocs_id'] + // To set duplicate detection to use OCS ID instead of string name, + // enable this code, remove the line of code above, + // and add [ID] to info.xml of each 3rd party app: + // OR $app['ocs_id'] == $remote['ocs_id'] ) { unset( $remoteApps[$key]); } @@ -675,6 +690,15 @@ class OC_App{ $app1[$i]['author'] = $app['personid']; $app1[$i]['ocs_id'] = $app['id']; $app1[$i]['internal'] = $app1[$i]['active'] = 0; + $app1[$i]['update'] = false; + if($app['label']=='recommended'){ + $app1[$i]['internallabel'] = 'Recommended'; + $app1[$i]['internalclass'] = 'recommendedapp'; + }else{ + $app1[$i]['internallabel'] = '3rd Party'; + $app1[$i]['internalclass'] = 'externalapp'; + } + // rating img if($app['score']>=0 and $app['score']<5) $img=OC_Helper::imagePath( "core", "rating/s1.png" ); @@ -803,16 +827,16 @@ class OC_App{ /** * @param string $appid - * @return OC_FilesystemView + * @return \OC\Files\View */ public static function getStorage($appid) { if(OC_App::isEnabled($appid)) {//sanity check if(OC_User::isLoggedIn()) { - $view = new OC_FilesystemView('/'.OC_User::getUser()); + $view = new \OC\Files\View('/'.OC_User::getUser()); if(!$view->file_exists($appid)) { $view->mkdir($appid); } - return new OC_FilesystemView('/'.OC_User::getUser().'/'.$appid); + return new \OC\Files\View('/'.OC_User::getUser().'/'.$appid); }else{ OC_Log::write('core', 'Can\'t get app storage, app '.$appid.', user not logged in', OC_Log::ERROR); return false; diff --git a/lib/archive/tar.php b/lib/archive/tar.php index 0fa633c6038..117d88e5f42 100644 --- a/lib/archive/tar.php +++ b/lib/archive/tar.php @@ -308,7 +308,7 @@ class OC_Archive_TAR extends OC_Archive{ if($mode=='r' or $mode=='rb') { return fopen($tmpFile, $mode); }else{ - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); self::$tempFiles[$tmpFile]=$path; return fopen('close://'.$tmpFile, $mode); } diff --git a/lib/archive/zip.php b/lib/archive/zip.php index 1c967baa08f..8e31795ded1 100644 --- a/lib/archive/zip.php +++ b/lib/archive/zip.php @@ -171,7 +171,7 @@ class OC_Archive_ZIP extends OC_Archive{ $ext=''; } $tmpFile=OCP\Files::tmpFile($ext); - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if($this->fileExists($path)) { $this->extractFile($path, $tmpFile); } diff --git a/lib/base.php b/lib/base.php index ebaf33814e3..90e64f13af6 100644 --- a/lib/base.php +++ b/lib/base.php @@ -27,8 +27,7 @@ require_once 'public/constants.php'; * No, we can not put this class in its own file because it is used by * OC_autoload! */ -class OC -{ +class OC { /** * Associative array for autoloading. classname => filename */ @@ -78,13 +77,12 @@ class OC /** * SPL autoload */ - public static function autoload($className) - { + public static function autoload($className) { if (array_key_exists($className, OC::$CLASSPATH)) { $path = OC::$CLASSPATH[$className]; /** @TODO: Remove this when necessary - Remove "apps/" from inclusion path for smooth migration to mutli app dir - */ + Remove "apps/" from inclusion path for smooth migration to mutli app dir + */ if (strpos($path, 'apps/') === 0) { OC_Log::write('core', 'include path for class "' . $className . '" starts with "apps/"', OC_Log::DEBUG); $path = str_replace('apps/', '', $path); @@ -96,7 +94,7 @@ class OC } elseif (strpos($className, 'OCP\\') === 0) { $path = 'public/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php'); } elseif (strpos($className, 'OCA\\') === 0) { - foreach(self::$APPSROOTS as $appDir) { + foreach (self::$APPSROOTS as $appDir) { $path = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php'); $fullPath = stream_resolve_include_path($path); if (file_exists($fullPath)) { @@ -112,6 +110,8 @@ class OC $path = str_replace('\\', '/', $className) . '.php'; } elseif (strpos($className, 'Test_') === 0) { $path = 'tests/lib/' . strtolower(str_replace('_', '/', substr($className, 5)) . '.php'); + } elseif (strpos($className, 'Test\\') === 0) { + $path = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($className, 5)) . '.php'); } else { return false; } @@ -122,12 +122,18 @@ class OC return false; } - public static function initPaths() - { + public static function initPaths() { // calculate the root directories OC::$SERVERROOT = str_replace("\\", '/', substr(__DIR__, 0, -4)); + + // ensure we can find OC_Config + set_include_path( + OC::$SERVERROOT . '/lib' . PATH_SEPARATOR . + get_include_path() + ); + OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT))); - $scriptName = $_SERVER["SCRIPT_NAME"]; + $scriptName = OC_Request::scriptName(); if (substr($scriptName, -1) == '/') { $scriptName .= 'index.php'; //make sure suburi follows the same rules as scriptName @@ -145,12 +151,6 @@ class OC OC::$WEBROOT = '/' . OC::$WEBROOT; } - // ensure we can find OC_Config - set_include_path( - OC::$SERVERROOT . '/lib' . PATH_SEPARATOR . - get_include_path() - ); - // search the 3rdparty folder if (OC_Config::getValue('3rdpartyroot', '') <> '' and OC_Config::getValue('3rdpartyurl', '') <> '') { OC::$THIRDPARTYROOT = OC_Config::getValue('3rdpartyroot', ''); @@ -186,17 +186,18 @@ class OC exit; } $paths = array(); - foreach (OC::$APPSROOTS as $path) + foreach (OC::$APPSROOTS as $path) { $paths[] = $path['path']; + } // set the right include path set_include_path( OC::$SERVERROOT . '/lib' . PATH_SEPARATOR . - OC::$SERVERROOT . '/config' . PATH_SEPARATOR . - OC::$THIRDPARTYROOT . '/3rdparty' . PATH_SEPARATOR . - implode($paths, PATH_SEPARATOR) . PATH_SEPARATOR . - get_include_path() . PATH_SEPARATOR . - OC::$SERVERROOT + OC::$SERVERROOT . '/config' . PATH_SEPARATOR . + OC::$THIRDPARTYROOT . '/3rdparty' . PATH_SEPARATOR . + implode($paths, PATH_SEPARATOR) . PATH_SEPARATOR . + get_include_path() . PATH_SEPARATOR . + OC::$SERVERROOT ); } @@ -209,8 +210,7 @@ class OC } } - public static function checkInstalled() - { + public static function checkInstalled() { // Redirect to installer if not installed if (!OC_Config::getValue('installed', false) && OC::$SUBURI != '/index.php') { if (!OC::$CLI) { @@ -221,14 +221,13 @@ class OC } } - public static function checkSSL() - { + public static function checkSSL() { // redirect to https site if configured if (OC_Config::getValue("forcessl", false)) { header('Strict-Transport-Security: max-age=31536000'); ini_set("session.cookie_secure", "on"); if (OC_Request::serverProtocol() <> 'https' and !OC::$CLI) { - $url = "https://" . OC_Request::serverHost() . $_SERVER['REQUEST_URI']; + $url = "https://" . OC_Request::serverHost() . OC_Request::requestUri(); header("Location: $url"); exit(); } @@ -272,8 +271,7 @@ class OC } } - public static function initTemplateEngine() - { + public static function initTemplateEngine() { // Add the stuff we need always OC_Util::addScript("jquery-1.7.2.min"); OC_Util::addScript("jquery-ui-1.10.0.custom"); @@ -295,8 +293,7 @@ class OC OC_Util::addScript("oc-requesttoken"); } - public static function initSession() - { + public static function initSession() { // prevents javascript from accessing php session cookies ini_set('session.cookie_httponly', '1;'); @@ -326,8 +323,7 @@ class OC $_SESSION['LAST_ACTIVITY'] = time(); } - public static function getRouter() - { + public static function getRouter() { if (!isset(OC::$router)) { OC::$router = new OC_Router(); OC::$router->loadRoutes(); @@ -337,19 +333,17 @@ class OC } - public static function loadAppClassPaths() - { - foreach(OC_APP::getEnabledApps() as $app) { - $file = OC_App::getAppPath($app).'/appinfo/classpath.php'; - if(file_exists($file)) { + public static function loadAppClassPaths() { + foreach (OC_APP::getEnabledApps() as $app) { + $file = OC_App::getAppPath($app) . '/appinfo/classpath.php'; + if (file_exists($file)) { require_once $file; } } } - public static function init() - { + public static function init() { // register autoloader spl_autoload_register(array('OC', 'autoload')); setlocale(LC_ALL, 'en_US.UTF-8'); @@ -420,10 +414,10 @@ class OC } // register the stream wrappers - require_once 'streamwrappers.php'; - stream_wrapper_register("fakedir", "OC_FakeDirStream"); - stream_wrapper_register('static', 'OC_StaticStreamWrapper'); - stream_wrapper_register('close', 'OC_CloseStreamWrapper'); + stream_wrapper_register('fakedir', 'OC\Files\Stream\Dir'); + stream_wrapper_register('static', 'OC\Files\Stream\StaticStream'); + stream_wrapper_register('close', 'OC\Files\Stream\Close'); + stream_wrapper_register('oc', 'OC\Files\Stream\OC'); self::checkConfig(); self::checkInstalled(); @@ -514,8 +508,7 @@ class OC /** * register hooks for the cache */ - public static function registerCacheHooks() - { + public static function registerCacheHooks() { // register cache cleanup jobs OC_BackgroundJob_RegularTask::register('OC_Cache_FileGlobal', 'gc'); OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener'); @@ -524,8 +517,7 @@ class OC /** * register hooks for the filesystem */ - public static function registerFilesystemHooks() - { + public static function registerFilesystemHooks() { // Check for blacklisted files OC_Hook::connect('OC_Filesystem', 'write', 'OC_Filesystem', 'isBlacklisted'); OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted'); @@ -534,8 +526,7 @@ class OC /** * register hooks for sharing */ - public static function registerShareHooks() - { + public static function registerShareHooks() { OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); @@ -545,12 +536,22 @@ class OC /** * @brief Handle the request */ - public static function handleRequest() - { + public static function handleRequest() { // load all the classpaths from the enabled apps so they are available // in the routing files of each app OC::loadAppClassPaths(); + // Check if ownCloud is installed or in maintenance (update) mode + if (!OC_Config::getValue('installed', false)) { + require_once 'core/setup.php'; + exit(); + } + $request = OC_Request::getPathInfo(); + if(substr($request, -3) !== '.js'){// we need these files during the upgrade + self::checkMaintenanceMode(); + self::checkUpgrade(); + } + try { OC::getRouter()->match(OC_Request::getPathInfo()); return; @@ -560,6 +561,7 @@ class OC OC_Response::setStatus(405); return; } + $app = OC::$REQUESTEDAPP; $file = OC::$REQUESTEDFILE; $param = array('app' => $app, 'file' => $file); @@ -569,14 +571,6 @@ class OC return; } - // Check if ownCloud is installed or in maintenance (update) mode - if (!OC_Config::getValue('installed', false)) { - require_once 'core/setup.php'; - exit(); - } - self::checkMaintenanceMode(); - self::checkUpgrade(); - // Handle redirect URL for logged in users if (isset($_REQUEST['redirect_url']) && OC_User::isLoggedIn()) { $location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url'])); @@ -606,7 +600,7 @@ class OC $file_ext = substr($param['file'], -3); if ($file_ext != 'php' || !self::loadAppScriptFile($param) - ) { + ) { header('HTTP/1.0 404 Not Found'); } } @@ -616,8 +610,7 @@ class OC self::handleLogin(); } - public static function loadAppScriptFile($param) - { + public static function loadAppScriptFile($param) { OC_App::loadApps(); $app = $param['app']; $file = $param['file']; @@ -631,8 +624,7 @@ class OC return false; } - public static function loadCSSFile($param) - { + public static function loadCSSFile($param) { $app = $param['app']; $file = $param['file']; $app_path = OC_App::getAppPath($app); @@ -645,27 +637,25 @@ class OC } } - protected static function handleLogin() - { + protected static function handleLogin() { OC_App::loadApps(array('prelogin')); $error = array(); // remember was checked after last login if (OC::tryRememberLogin()) { $error[] = 'invalidcookie'; - // Someone wants to log in : + // Someone wants to log in : } elseif (OC::tryFormLogin()) { $error[] = 'invalidpassword'; - // The user is already authenticated using Apaches AuthType Basic... very usable in combination with LDAP + // The user is already authenticated using Apaches AuthType Basic... very usable in combination with LDAP } elseif (OC::tryBasicAuthLogin()) { $error[] = 'invalidpassword'; } OC_Util::displayLoginPage(array_unique($error)); } - protected static function cleanupLoginTokens($user) - { + protected static function cleanupLoginTokens($user) { $cutoff = time() - OC_Config::getValue('remember_login_cookie_lifetime', 60 * 60 * 24 * 15); $tokens = OC_Preferences::getKeys($user, 'login_token'); foreach ($tokens as $token) { @@ -676,13 +666,12 @@ class OC } } - protected static function tryRememberLogin() - { + protected static function tryRememberLogin() { if (!isset($_COOKIE["oc_remember_login"]) || !isset($_COOKIE["oc_token"]) || !isset($_COOKIE["oc_username"]) || !$_COOKIE["oc_remember_login"] - ) { + ) { return false; } OC_App::loadApps(array('authentication')); @@ -717,8 +706,7 @@ class OC return true; } - protected static function tryFormLogin() - { + protected static function tryFormLogin() { if (!isset($_POST["user"]) || !isset($_POST['password'])) { return false; } @@ -751,18 +739,17 @@ class OC return true; } - protected static function tryBasicAuthLogin() - { + protected static function tryBasicAuthLogin() { if (!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"]) - ) { + ) { return false; } OC_App::loadApps(array('authentication')); if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { //OC_Log::write('core',"Logged in with HTTP Authentication", OC_Log::DEBUG); OC_User::unsetMagicInCookie(); - $_REQUEST['redirect_url'] = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''); + $_REQUEST['redirect_url'] = OC_Request::requestUri(); OC_Util::redirectToDefaultPage(); } return true; @@ -776,8 +763,7 @@ if (!isset($RUNTIME_NOAPPS)) { } if (!function_exists('get_temp_dir')) { - function get_temp_dir() - { + function get_temp_dir() { if ($temp = ini_get('upload_tmp_dir')) return $temp; if ($temp = getenv('TMP')) return $temp; if ($temp = getenv('TEMP')) return $temp; diff --git a/lib/cache/file.php b/lib/cache/file.php index 27d8b19f36e..f9ecf41dcac 100644 --- a/lib/cache/file.php +++ b/lib/cache/file.php @@ -15,11 +15,11 @@ class OC_Cache_File{ } if(OC_User::isLoggedIn()) { $subdir = 'cache'; - $view = new OC_FilesystemView('/'.OC_User::getUser()); + $view = new \OC\Files\View('/'.OC_User::getUser()); if(!$view->file_exists($subdir)) { $view->mkdir($subdir); } - $this->storage = new OC_FilesystemView('/'.OC_User::getUser().'/'.$subdir); + $this->storage = new \OC\Files\View('/'.OC_User::getUser().'/'.$subdir); return $this->storage; }else{ OC_Log::write('core', 'Can\'t get cache storage, user not logged in', OC_Log::ERROR); diff --git a/lib/connector/sabre/directory.php b/lib/connector/sabre/directory.php index 6076aed6fcd..b210602bbf4 100644 --- a/lib/connector/sabre/directory.php +++ b/lib/connector/sabre/directory.php @@ -62,7 +62,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa } } else { $newPath = $this->path . '/' . $name; - OC_Filesystem::file_put_contents($newPath, $data); + \OC\Files\Filesystem::file_put_contents($newPath, $data); return OC_Connector_Sabre_Node::getETagPropertyForPath($newPath); } @@ -78,7 +78,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa public function createDirectory($name) { $newPath = $this->path . '/' . $name; - OC_Filesystem::mkdir($newPath); + \OC\Files\Filesystem::mkdir($newPath); } @@ -93,7 +93,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa $path = $this->path . '/' . $name; if (is_null($info)) { - $info = OC_Files::getFileInfo($path); + $info = \OC\Files\Filesystem::getFileInfo($path); } if (!$info) { @@ -116,12 +116,13 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa * @return Sabre_DAV_INode[] */ public function getChildren() { - $folder_content = OC_Files::getDirectoryContent($this->path); + + $folder_content = \OC\Files\Filesystem::getDirectoryContent($this->path); $paths = array(); foreach($folder_content as $info) { $paths[] = $this->path.'/'.$info['name']; + $properties[$this->path.'/'.$info['name']][self::GETETAG_PROPERTYNAME] = $info['etag']; } - $properties = array_fill_keys($paths, array()); if(count($paths)>0) { // // the number of arguments within IN conditions are limited in most databases @@ -137,7 +138,9 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa $propertypath = $row['propertypath']; $propertyname = $row['propertyname']; $propertyvalue = $row['propertyvalue']; - $properties[$propertypath][$propertyname] = $propertyvalue; + if($propertyname !== self::GETETAG_PROPERTYNAME) { + $properties[$propertypath][$propertyname] = $propertyvalue; + } } } } @@ -160,7 +163,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa public function childExists($name) { $path = $this->path . '/' . $name; - return OC_Filesystem::file_exists($path); + return \OC\Files\Filesystem::file_exists($path); } @@ -173,7 +176,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa if ($this->path != "/Shared") { foreach($this->getChildren() as $child) $child->delete(); - OC_Filesystem::rmdir($this->path); + \OC\Files\Filesystem::rmdir($this->path); } } @@ -184,10 +187,10 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa * @return array */ public function getQuotaInfo() { - $rootInfo=OC_FileCache_Cached::get(''); + $rootInfo=\OC\Files\Filesystem::getFileInfo(''); return array( $rootInfo['size'], - OC_Filesystem::free_space() + \OC\Files\Filesystem::free_space() ); } diff --git a/lib/connector/sabre/file.php b/lib/connector/sabre/file.php index 8d963a1cf8d..1c18a391742 100644 --- a/lib/connector/sabre/file.php +++ b/lib/connector/sabre/file.php @@ -45,7 +45,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function put($data) { - OC_Filesystem::file_put_contents($this->path, $data); + \OC\Files\Filesystem::file_put_contents($this->path,$data); return OC_Connector_Sabre_Node::getETagPropertyForPath($this->path); } @@ -57,7 +57,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function get() { - return OC_Filesystem::fopen($this->path, 'rb'); + return \OC\Files\Filesystem::fopen($this->path,'rb'); } @@ -68,7 +68,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function delete() { - OC_Filesystem::unlink($this->path); + \OC\Files\Filesystem::unlink($this->path); } @@ -98,16 +98,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D if (isset($properties[self::GETETAG_PROPERTYNAME])) { return $properties[self::GETETAG_PROPERTYNAME]; } - return $this->getETagPropertyForPath($this->path); - } - - /** - * Creates a ETag for this path. - * @param string $path Path of the file - * @return string|null Returns null if the ETag can not effectively be determined - */ - static protected function createETag($path) { - return OC_Filesystem::hash('md5', $path); + return null; } /** @@ -122,7 +113,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D return $this->fileinfo_cache['mimetype']; } - return OC_Filesystem::getMimeType($this->path); + return \OC\Files\Filesystem::getMimeType($this->path); } } diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php index 026ec9f7ec5..52995630211 100644 --- a/lib/connector/sabre/node.php +++ b/lib/connector/sabre/node.php @@ -84,12 +84,12 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr $newPath = $parentPath . '/' . $newName; $oldPath = $this->path; - OC_Filesystem::rename($this->path, $newPath); + \OC\Files\Filesystem::rename($this->path,$newPath); $this->path = $newPath; $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertypath` = ? WHERE `userid` = ? AND `propertypath` = ?' ); - $query->execute( array( $newPath, OC_User::getUser(), $oldPath )); + $query->execute( array( $newPath,OC_User::getUser(), $oldPath )); } @@ -104,9 +104,9 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr */ protected function getFileinfoCache() { if (!isset($this->fileinfo_cache)) { - if ($fileinfo_cache = OC_FileCache::get($this->path)) { + if ($fileinfo_cache = \OC\Files\Filesystem::getFileInfo($this->path)) { } else { - $fileinfo_cache = OC_Filesystem::stat($this->path); + $fileinfo_cache = \OC\Files\Filesystem::stat($this->path); } $this->fileinfo_cache = $fileinfo_cache; @@ -134,7 +134,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr * Even if the modification time is set to a custom value the access time is set to now. */ public function touch($mtime) { - OC_Filesystem::touch($this->path, $mtime); + \OC\Files\Filesystem::touch($this->path, $mtime); } /** @@ -154,15 +154,17 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr } } else { - if( strcmp( $propertyName, self::LASTMODIFIED_PROPERTYNAME) === 0 ) { + if( strcmp( $propertyName, self::GETETAG_PROPERTYNAME) === 0 ) { + \OC\Files\Filesystem::putFileInfo($this->path, array('etag'=> $propertyValue)); + } elseif( strcmp( $propertyName, self::LASTMODIFIED_PROPERTYNAME) === 0 ) { $this->touch($propertyValue); } else { if(!array_key_exists( $propertyName, $existing )) { $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*properties` (`userid`,`propertypath`,`propertyname`,`propertyvalue`) VALUES(?,?,?,?)' ); - $query->execute( array( OC_User::getUser(), $this->path, $propertyName, $propertyValue )); + $query->execute( array( OC_User::getUser(), $this->path, $propertyName,$propertyValue )); } else { $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyvalue` = ? WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = ?' ); - $query->execute( array( $propertyValue, OC_User::getUser(), $this->path, $propertyName )); + $query->execute( array( $propertyValue,OC_User::getUser(), $this->path, $propertyName )); } } } @@ -190,6 +192,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr while( $row = $result->fetchRow()) { $this->property_cache[$row['propertyname']] = $row['propertyvalue']; } + $this->property_cache[self::GETETAG_PROPERTYNAME] = $this->getETagPropertyForPath($this->path); } // if the array was empty, we need to return everything @@ -205,57 +208,16 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr } /** - * @brief Creates a ETag for this path. - * @param string $path Path of the file - * @return string|null Returns null if the ETag can not effectively be determined - */ - static protected function createETag($path) { - if(self::$ETagFunction) { - $hash = call_user_func(self::$ETagFunction, $path); - return $hash; - }else{ - return uniqid('', true); - } - } - - /** - * @brief Returns the ETag surrounded by double-quotes for this path. + * Returns the ETag surrounded by double-quotes for this path. * @param string $path Path of the file * @return string|null Returns null if the ETag can not effectively be determined */ static public function getETagPropertyForPath($path) { - $tag = self::createETag($path); - if (empty($tag)) { - return null; + $data = \OC\Files\Filesystem::getFileInfo($path); + if (isset($data['etag'])) { + return '"'.$data['etag'].'"'; } - $etag = '"'.$tag.'"'; - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*properties` (`userid`,`propertypath`,`propertyname`,`propertyvalue`) VALUES(?,?,?,?)' ); - $query->execute( array( OC_User::getUser(), $path, self::GETETAG_PROPERTYNAME, $etag )); - return $etag; + return null; } - /** - * @brief Remove the ETag from the cache. - * @param string $path Path of the file - */ - static public function removeETagPropertyForPath($path) { - // remove tags from this and parent paths - $paths = array(); - while ($path != '/' && $path != '.' && $path != '' && $path != '\\') { - $paths[] = $path; - $path = dirname($path); - } - if (empty($paths)) { - return; - } - $paths[] = $path; - $path_placeholders = join(',', array_fill(0, count($paths), '?')); - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*properties`' - .' WHERE `userid` = ?' - .' AND `propertyname` = ?' - .' AND `propertypath` IN ('.$path_placeholders.')' - ); - $vals = array( OC_User::getUser(), self::GETETAG_PROPERTYNAME ); - $query->execute(array_merge( $vals, $paths )); - } } diff --git a/lib/connector/sabre/quotaplugin.php b/lib/connector/sabre/quotaplugin.php index fbbb4a3cf6f..ce9a968eb3c 100644 --- a/lib/connector/sabre/quotaplugin.php +++ b/lib/connector/sabre/quotaplugin.php @@ -50,7 +50,7 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { $uri='/'.$uri; } list($parentUri, $newName) = Sabre_DAV_URLUtil::splitPath($uri); - if ($length > OC_Filesystem::free_space($parentUri)) { + if ($length > \OC\Files\Filesystem::free_space($parentUri)) { throw new Sabre_DAV_Exception_InsufficientStorage(); } } diff --git a/lib/connector/sabre/request.php b/lib/connector/sabre/request.php new file mode 100644 index 00000000000..97a27996bf3 --- /dev/null +++ b/lib/connector/sabre/request.php @@ -0,0 +1,50 @@ + + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + * + */ + +class OC_Connector_Sabre_Request extends Sabre_HTTP_Request { + /** + * Returns the requested uri + * + * @return string + */ + public function getUri() { + return OC_Request::requestUri(); + } + + /** + * Returns a specific item from the _SERVER array. + * + * Do not rely on this feature, it is for internal use only. + * + * @param string $field + * @return string + */ + public function getRawServerValue($field) { + if($field == 'REQUEST_URI'){ + return $this->getUri(); + } + else{ + return isset($this->_SERVER[$field])?$this->_SERVER[$field]:null; + } + } +} diff --git a/lib/filecache.php b/lib/filecache.php deleted file mode 100644 index 7764890ef1a..00000000000 --- a/lib/filecache.php +++ /dev/null @@ -1,539 +0,0 @@ -. -* -*/ - -/** - * provide caching for filesystem info in the database - * - * not used by OC_Filesystem for reading filesystem info, - * instead apps should use OC_FileCache::get where possible - * - * It will try to keep the data up to date but changes from outside - * ownCloud can invalidate the cache - * - * Methods that take $path and $root params expect $path to be relative, like - * /admin/files/file.txt, if $root is false - * - */ -class OC_FileCache{ - - /** - * get the filesystem info from the cache - * @param string path - * @param string root (optional) - * @return array - * - * returns an associative array with the following keys: - * - size - * - mtime - * - ctime - * - mimetype - * - encrypted - * - versioned - */ - public static function get($path, $root=false) { - if(OC_FileCache_Update::hasUpdated($path, $root)) { - if($root===false) {//filesystem hooks are only valid for the default root - OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$path)); - }else{ - OC_FileCache_Update::update($path, $root); - } - } - return OC_FileCache_Cached::get($path, $root); - } - - /** - * put filesystem info in the cache - * @param string $path - * @param array data - * @param string root (optional) - * @note $data is an associative array in the same format as returned - * by get - */ - public static function put($path, $data, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $fullpath=OC_Filesystem::normalizePath($root.'/'.$path); - $parent=self::getParentId($fullpath); - $id=self::getId($fullpath, ''); - if(isset(OC_FileCache_Cached::$savedData[$fullpath])) { - $data=array_merge(OC_FileCache_Cached::$savedData[$fullpath], $data); - unset(OC_FileCache_Cached::$savedData[$fullpath]); - } - if($id!=-1) { - self::update($id, $data); - return; - } - - // add parent directory to the file cache if it does not exist yet. - if ($parent == -1 && $fullpath != $root) { - $parentDir = dirname($path); - self::scanFile($parentDir); - $parent = self::getParentId($fullpath); - } - - if(!isset($data['size']) or !isset($data['mtime'])) {//save incomplete data for the next time we write it - OC_FileCache_Cached::$savedData[$fullpath]=$data; - return; - } - if(!isset($data['encrypted'])) { - $data['encrypted']=false; - } - if(!isset($data['versioned'])) { - $data['versioned']=false; - } - $mimePart=dirname($data['mimetype']); - $data['size']=(int)$data['size']; - $data['ctime']=(int)$data['mtime']; - $data['writable']=(int)$data['writable']; - $data['encrypted']=(int)$data['encrypted']; - $data['versioned']=(int)$data['versioned']; - $user=OC_User::getUser(); - $query=OC_DB::prepare('INSERT INTO `*PREFIX*fscache`(`parent`, `name`, `path`, `path_hash`, `size`, `mtime`, `ctime`, `mimetype`, `mimepart`,`user`,`writable`,`encrypted`,`versioned`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)'); - $result=$query->execute(array($parent, basename($fullpath), $fullpath, md5($fullpath), $data['size'], $data['mtime'], $data['ctime'], $data['mimetype'], $mimePart, $user, $data['writable'], $data['encrypted'], $data['versioned'])); - if(OC_DB::isError($result)) { - OC_Log::write('files', 'error while writing file('.$fullpath.') to cache', OC_Log::ERROR); - } - - if($cache=OC_Cache::getUserCache(true)) { - $cache->remove('fileid/'.$fullpath);//ensure we don't have -1 cached - } - } - - /** - * update filesystem info of a file - * @param int $id - * @param array $data - */ - private static function update($id, $data) { - $arguments=array(); - $queryParts=array(); - foreach(array('size','mtime','ctime','mimetype','encrypted','versioned', 'writable') as $attribute) { - if(isset($data[$attribute])) { - //Convert to int it args are false - if($data[$attribute] === false) { - $arguments[] = 0; - }else{ - $arguments[] = $data[$attribute]; - } - $queryParts[]='`'.$attribute.'`=?'; - } - } - if(isset($data['mimetype'])) { - $arguments[]=dirname($data['mimetype']); - $queryParts[]='`mimepart`=?'; - } - $arguments[]=$id; - - if(!empty($queryParts)) { - $sql = 'UPDATE `*PREFIX*fscache` SET '.implode(' , ', $queryParts).' WHERE `id`=?'; - $query=OC_DB::prepare($sql); - $result=$query->execute($arguments); - if(OC_DB::isError($result)) { - OC_Log::write('files', 'error while updating file('.$id.') in cache', OC_Log::ERROR); - } - } - } - - /** - * register a file move in the cache - * @param string oldPath - * @param string newPath - * @param string root (optional) - */ - public static function move($oldPath, $newPath, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - // If replacing an existing file, delete the file - if (self::inCache($newPath, $root)) { - self::delete($newPath, $root); - } - $oldPath=$root.$oldPath; - $newPath=$root.$newPath; - $newParent=self::getParentId($newPath); - $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `parent`=? ,`name`=?, `path`=?, `path_hash`=? WHERE `path_hash`=?'); - $query->execute(array($newParent, basename($newPath), $newPath, md5($newPath), md5($oldPath))); - - if(($cache=OC_Cache::getUserCache(true)) && $cache->hasKey('fileid/'.$oldPath)) { - $cache->set('fileid/'.$newPath, $cache->get('fileid/'.$oldPath)); - $cache->remove('fileid/'.$oldPath); - } - - $query=OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `path` LIKE ?'); - $oldLength=strlen($oldPath); - $updateQuery=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `path`=?, `path_hash`=? WHERE `path_hash`=?'); - while($row= $query->execute(array($oldPath.'/%'))->fetchRow()) { - $old=$row['path']; - $new=$newPath.substr($old, $oldLength); - $updateQuery->execute(array($new, md5($new), md5($old))); - - if(($cache=OC_Cache::getUserCache(true)) && $cache->hasKey('fileid/'.$old)) { - $cache->set('fileid/'.$new, $cache->get('fileid/'.$old)); - $cache->remove('fileid/'.$old); - } - } - } - - /** - * delete info from the cache - * @param string path - * @param string root (optional) - */ - public static function delete($path, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE `path_hash`=?'); - $query->execute(array(md5($root.$path))); - - //delete everything inside the folder - $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE `path` LIKE ?'); - $query->execute(array($root.$path.'/%')); - - OC_Cache::remove('fileid/'.$root.$path); - } - - /** - * return array of filenames matching the querty - * @param string $query - * @param boolean $returnData - * @param string root (optional) - * @return array of filepaths - */ - public static function search($search, $returnData=false, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $rootLen=strlen($root); - if(!$returnData) { - $select = '`path`'; - }else{ - $select = '*'; - } - if (OC_Config::getValue('dbtype') === 'oci8') { - $where = 'LOWER(`name`) LIKE LOWER(?) AND `user`=?'; - } else { - $where = '`name` LIKE ? AND `user`=?'; - } - $query=OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*fscache` WHERE '.$where); - $result=$query->execute(array("%$search%", OC_User::getUser())); - $names=array(); - while($row=$result->fetchRow()) { - if(!$returnData) { - $names[]=substr($row['path'], $rootLen); - }else{ - $row['path']=substr($row['path'], $rootLen); - $names[]=$row; - } - } - return $names; - } - - /** - * get all files and folders in a folder - * @param string path - * @param string root (optional) - * @return array - * - * returns an array of assiciative arrays with the following keys: - * - name - * - size - * - mtime - * - ctime - * - mimetype - * - encrypted - * - versioned - */ - public static function getFolderContent($path, $root=false, $mimetype_filter='') { - if(OC_FileCache_Update::hasUpdated($path, $root, true)) { - OC_FileCache_Update::updateFolder($path, $root); - } - return OC_FileCache_Cached::getFolderContent($path, $root, $mimetype_filter); - } - - /** - * check if a file or folder is in the cache - * @param string $path - * @param string root (optional) - * @return bool - */ - public static function inCache($path, $root=false) { - return self::getId($path, $root)!=-1; - } - - /** - * get the file id as used in the cache - * @param string path - * @param string root (optional) - * @return int - */ - public static function getId($path, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - - $fullPath=$root.$path; - if(($cache=OC_Cache::getUserCache(true)) && $cache->hasKey('fileid/'.$fullPath)) { - return $cache->get('fileid/'.$fullPath); - } - - $query=OC_DB::prepare('SELECT `id` FROM `*PREFIX*fscache` WHERE `path_hash`=?'); - $result=$query->execute(array(md5($fullPath))); - if(OC_DB::isError($result)) { - OC_Log::write('files', 'error while getting file id of '.$path, OC_Log::ERROR); - return -1; - } - - $result=$result->fetchRow(); - if(is_array($result)) { - $id=$result['id']; - }else{ - $id=-1; - } - if($cache=OC_Cache::getUserCache(true)) { - $cache->set('fileid/'.$fullPath, $id); - } - - return $id; - } - - /** - * get the file path from the id, relative to the home folder of the user - * @param int id - * @param string user (optional) - * @return string - */ - public static function getPath($id, $user='') { - if(!$user) { - $user=OC_User::getUser(); - } - $query=OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `id`=? AND `user`=?'); - $result=$query->execute(array($id, $user)); - $row=$result->fetchRow(); - $path=$row['path']; - $root='/'.$user.'/files'; - if(substr($path, 0, strlen($root))!=$root) { - return false; - } - return substr($path, strlen($root)); - } - - /** - * get the file id of the parent folder, taking into account '/' has no parent - * @param string $path - * @return int - */ - private static function getParentId($path) { - if($path=='/') { - return -1; - }else{ - return self::getId(dirname($path), ''); - } - } - - /** - * adjust the size of the parent folders - * @param string $path - * @param int $sizeDiff - * @param string root (optinal) - */ - public static function increaseSize($path, $sizeDiff, $root=false) { - if($sizeDiff==0) return; - $item = OC_FileCache_Cached::get($path); - //stop walking up the filetree if we hit a non-folder or reached the root folder - if($path == '/' || $path=='' || $item['mimetype'] !== 'httpd/unix-directory') { - return; - } - $id = $item['id']; - while($id!=-1) {//walk up the filetree increasing the size of all parent folders - $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `size`=`size`+? WHERE `id`=?'); - $query->execute(array($sizeDiff, $id)); - $path=dirname($path); - if($path == '' or $path =='/') { - return; - } - $parent = OC_FileCache_Cached::get($path); - $id = $parent['id']; - //stop walking up the filetree if we hit a non-folder - if($parent['mimetype'] !== 'httpd/unix-directory') { - return; - } - } - } - - /** - * recursively scan the filesystem and fill the cache - * @param string $path - * @param OC_EventSource $eventSource (optional) - * @param int $count (optional) - * @param string $root (optional) - */ - public static function scan($path, $eventSource=false,&$count=0, $root=false) { - if($eventSource) { - $eventSource->send('scanning', array('file'=>$path, 'count'=>$count)); - } - $lastSend=$count; - // NOTE: Ugly hack to prevent shared files from going into the cache (the source already exists somewhere in the cache) - if (substr($path, 0, 7) == '/Shared') { - return; - } - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - self::scanFile($path, $root); - $dh=$view->opendir($path.'/'); - $totalSize=0; - if($dh) { - while (($filename = readdir($dh)) !== false) { - if($filename != '.' and $filename != '..') { - $file=$path.'/'.$filename; - if($view->is_dir($file.'/')) { - self::scan($file, $eventSource, $count, $root); - }else{ - $totalSize+=self::scanFile($file, $root); - $count++; - if($count>$lastSend+25 and $eventSource) { - $lastSend=$count; - $eventSource->send('scanning', array('file'=>$path, 'count'=>$count)); - } - } - } - } - } - - OC_FileCache_Update::cleanFolder($path, $root); - self::increaseSize($path, $totalSize, $root); - } - - /** - * scan a single file - * @param string path - * @param string root (optional) - * @return int size of the scanned file - */ - public static function scanFile($path, $root=false) { - // NOTE: Ugly hack to prevent shared files from going into the cache (the source already exists somewhere in the cache) - if (substr($path, 0, 7) == '/Shared') { - return; - } - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - if(!$view->is_readable($path)) return; //cant read, nothing we can do - clearstatcache(); - $mimetype=$view->getMimeType($path); - $stat=$view->stat($path); - if($mimetype=='httpd/unix-directory') { - $stat['size'] = 0; - $writable=$view->is_writable($path.'/'); - }else{ - $writable=$view->is_writable($path); - } - $stat['mimetype']=$mimetype; - $stat['writable']=$writable; - if($path=='/') { - $path=''; - } - self::put($path, $stat, $root); - return $stat['size']; - } - - /** - * find files by mimetype - * @param string $part1 - * @param string $part2 (optional) - * @param string root (optional) - * @return array of file paths - * - * $part1 and $part2 together form the complete mimetype. - * e.g. searchByMime('text', 'plain') - * - * seccond mimetype part can be ommited - * e.g. searchByMime('audio') - */ - public static function searchByMime($part1, $part2=null, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $rootLen=strlen($root); - $root .= '%'; - $user=OC_User::getUser(); - if(!$part2) { - $query=OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `mimepart`=? AND `user`=? AND `path` LIKE ?'); - $result=$query->execute(array($part1, $user, $root)); - }else{ - $query=OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `mimetype`=? AND `user`=? AND `path` LIKE ? '); - $result=$query->execute(array($part1.'/'.$part2, $user, $root)); - } - $names=array(); - while($row=$result->fetchRow()) { - $names[]=substr($row['path'], $rootLen); - } - return $names; - } - - /** - * clean old pre-path_hash entries - */ - public static function clean() { - $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE LENGTH(`path_hash`)<30'); - $query->execute(); - } - - /** - * clear filecache entries - * @param string user (optonal) - */ - public static function clear($user='') { - if($user) { - $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE `user`=?'); - $query->execute(array($user)); - }else{ - $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache`'); - $query->execute(); - } - } - - /** - * trigger an update for the cache by setting the mtimes to 0 - * @param string $user (optional) - */ - public static function triggerUpdate($user='') { - if($user) { - $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `mtime`=0 WHERE `user`=? AND `mimetype`= ? '); - $query->execute(array($user,'httpd/unix-directory')); - }else{ - $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `mtime`=0 AND `mimetype`= ? '); - $query->execute(array('httpd/unix-directory')); - } - } -} - -//watch for changes and try to keep the cache up to date -OC_Hook::connect('OC_Filesystem', 'post_write', 'OC_FileCache_Update', 'fileSystemWatcherWrite'); -OC_Hook::connect('OC_Filesystem', 'post_delete', 'OC_FileCache_Update', 'fileSystemWatcherDelete'); -OC_Hook::connect('OC_Filesystem', 'post_rename', 'OC_FileCache_Update', 'fileSystemWatcherRename'); -OC_Hook::connect('OC_User', 'post_deleteUser', 'OC_FileCache_Update', 'deleteFromUser'); diff --git a/lib/filecache/cached.php b/lib/filecache/cached.php deleted file mode 100644 index 5e0a00746b9..00000000000 --- a/lib/filecache/cached.php +++ /dev/null @@ -1,81 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - - -/** - * get data from the filecache without checking for updates - */ -class OC_FileCache_Cached{ - public static $savedData=array(); - - public static function get($path, $root=false) { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $path=$root.$path; - $stmt=OC_DB::prepare('SELECT `id`, `path`,`ctime`,`mtime`,`mimetype`,`size`,`encrypted`,`versioned`,`writable` FROM `*PREFIX*fscache` WHERE `path_hash`=?'); - if ( ! OC_DB::isError($stmt) ) { - $result=$stmt->execute(array(md5($path))); - if ( ! OC_DB::isError($result) ) { - $result = $result->fetchRow(); - } else { - OC:Log::write('OC_FileCache_Cached', 'could not execute get: '. OC_DB::getErrorMessage($result), OC_Log::ERROR); - $result = false; - } - } else { - OC_Log::write('OC_FileCache_Cached', 'could not prepare get: '. OC_DB::getErrorMessage($stmt), OC_Log::ERROR); - $result = false; - } - if(is_array($result)) { - if(isset(self::$savedData[$path])) { - $result=array_merge($result, self::$savedData[$path]); - } - return $result; - }else{ - if(isset(self::$savedData[$path])) { - return self::$savedData[$path]; - }else{ - return array(); - } - } - } - - /** - * get all files and folders in a folder - * @param string path - * @param string root (optional) - * @return array - * - * returns an array of assiciative arrays with the following keys: - * - path - * - name - * - size - * - mtime - * - ctime - * - mimetype - * - encrypted - * - versioned - */ - public static function getFolderContent($path, $root=false, $mimetype_filter='') { - if($root===false) { - $root=OC_Filesystem::getRoot(); - } - $parent=OC_FileCache::getId($path, $root); - if($parent==-1) { - return array(); - } - $query=OC_DB::prepare('SELECT `id`,`path`,`name`,`ctime`,`mtime`,`mimetype`,`size`,`encrypted`,`versioned`,`writable` FROM `*PREFIX*fscache` WHERE `parent`=? AND (`mimetype` LIKE ? OR `mimetype` = ?)'); - $result=$query->execute(array($parent, $mimetype_filter.'%', 'httpd/unix-directory'))->fetchAll(); - if(is_array($result)) { - return $result; - }else{ - OC_Log::write('files', 'getFolderContent(): file not found in cache ('.$path.')', OC_Log::DEBUG); - return false; - } - } -} diff --git a/lib/filecache/update.php b/lib/filecache/update.php deleted file mode 100644 index bc403113e7c..00000000000 --- a/lib/filecache/update.php +++ /dev/null @@ -1,227 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - - -/** - * handles updating the filecache according to outside changes - */ -class OC_FileCache_Update{ - /** - * check if a file or folder is updated outside owncloud - * @param string path - * @param string root (optional) - * @param boolean folder - * @return bool - */ - public static function hasUpdated($path, $root=false, $folder=false) { - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - if(!$view->file_exists($path)) { - return false; - } - $cachedData=OC_FileCache_Cached::get($path, $root); - if(isset($cachedData['mtime'])) { - $cachedMTime=$cachedData['mtime']; - if($folder) { - return $view->hasUpdated($path.'/', $cachedMTime); - }else{ - return $view->hasUpdated($path, $cachedMTime); - } - }else{//file not in cache, so it has to be updated - if(($path=='/' or $path=='') and $root===false) {//dont auto update the home folder, it will be scanned - return false; - } - return true; - } - } - - /** - * delete non existing files from the cache - */ - public static function cleanFolder($path, $root=false) { - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - - $cachedContent=OC_FileCache_Cached::getFolderContent($path, $root); - foreach($cachedContent as $fileData) { - $path=$fileData['path']; - $file=$view->getRelativePath($path); - if(!$view->file_exists($file)) { - if($root===false) {//filesystem hooks are only valid for the default root - OC_Hook::emit('OC_Filesystem', 'post_delete', array('path'=>$file)); - }else{ - self::delete($file, $root); - } - } - } - } - - /** - * update the cache according to changes in the folder - * @param string path - * @param string root (optional) - */ - public static function updateFolder($path, $root=false) { - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - $dh=$view->opendir($path.'/'); - if($dh) {//check for changed/new files - while (($filename = readdir($dh)) !== false) { - if($filename != '.' and $filename != '..' and $filename != '') { - $file=$path.'/'.$filename; - $isDir=$view->is_dir($file); - if(self::hasUpdated($file, $root, $isDir)) { - if($isDir) { - self::updateFolder($file, $root); - }elseif($root===false) {//filesystem hooks are only valid for the default root - OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$file)); - }else{ - self::update($file, $root); - } - } - } - } - } - - self::cleanFolder($path, $root); - - //update the folder last, so we can calculate the size correctly - if($root===false) {//filesystem hooks are only valid for the default root - OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$path)); - }else{ - self::update($path, $root); - } - } - - /** - * called when changes are made to files - * @param array $params - * @param string root (optional) - */ - public static function fileSystemWatcherWrite($params) { - $path=$params['path']; - self::update($path); - } - - /** - * called when files are deleted - * @param array $params - * @param string root (optional) - */ - public static function fileSystemWatcherDelete($params) { - $path=$params['path']; - self::delete($path); - } - - /** - * called when files are deleted - * @param array $params - * @param string root (optional) - */ - public static function fileSystemWatcherRename($params) { - $oldPath=$params['oldpath']; - $newPath=$params['newpath']; - self::rename($oldPath, $newPath); - } - - /** - * update the filecache according to changes to the filesystem - * @param string path - * @param string root (optional) - */ - public static function update($path, $root=false) { - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - - $mimetype=$view->getMimeType($path); - - $size=0; - $cached=OC_FileCache_Cached::get($path, $root); - $cachedSize=isset($cached['size'])?$cached['size']:0; - - if($view->is_dir($path.'/')) { - if(OC_FileCache::inCache($path, $root)) { - $cachedContent=OC_FileCache_Cached::getFolderContent($path, $root); - foreach($cachedContent as $file) { - $size+=$file['size']; - } - $mtime=$view->filemtime($path.'/'); - $ctime=$view->filectime($path.'/'); - $writable=$view->is_writable($path.'/'); - OC_FileCache::put($path, array('size'=>$size,'mtime'=>$mtime,'ctime'=>$ctime,'mimetype'=>$mimetype, 'writable'=>$writable)); - }else{ - $count=0; - OC_FileCache::scan($path, null, $count, $root); - return; //increaseSize is already called inside scan - } - }else{ - $size=OC_FileCache::scanFile($path, $root); - } - if($path !== '' and $path !== '/') { - OC_FileCache::increaseSize(dirname($path), $size-$cachedSize, $root); - } - } - - /** - * update the filesystem after a delete has been detected - * @param string path - * @param string root (optional) - */ - public static function delete($path, $root=false) { - $cached=OC_FileCache_Cached::get($path, $root); - if(!isset($cached['size'])) { - return; - } - $size=$cached['size']; - OC_FileCache::increaseSize(dirname($path), -$size, $root); - OC_FileCache::delete($path, $root); - } - - /** - * update the filesystem after a rename has been detected - * @param string oldPath - * @param string newPath - * @param string root (optional) - */ - public static function rename($oldPath, $newPath, $root=false) { - if(!OC_FileCache::inCache($oldPath, $root)) { - return; - } - if($root===false) { - $view=OC_Filesystem::getView(); - }else{ - $view=new OC_FilesystemView($root); - } - - $cached=OC_FileCache_Cached::get($oldPath, $root); - $oldSize=$cached['size']; - OC_FileCache::increaseSize(dirname($oldPath), -$oldSize, $root); - OC_FileCache::increaseSize(dirname($newPath), $oldSize, $root); - OC_FileCache::move($oldPath, $newPath); - } - - /** - * delete files owned by user from the cache - * @param string $parameters$parameters["uid"]) - */ - public static function deleteFromUser($parameters) { - OC_FileCache::clear($parameters["uid"]); - } -} diff --git a/lib/filechunking.php b/lib/filechunking.php index 55a4d730430..d63a0d72c83 100644 --- a/lib/filechunking.php +++ b/lib/filechunking.php @@ -94,49 +94,49 @@ class OC_FileChunking { } public function file_assemble($path) { - $absolutePath = OC_Filesystem::normalizePath(OC_Filesystem::getView()->getAbsolutePath($path)); + $absolutePath = \OC\Files\Filesystem::normalizePath(\OC\Files\Filesystem::getView()->getAbsolutePath($path)); $data = ''; // use file_put_contents as method because that best matches what this function does - if (OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && OC_Filesystem::isValidPath($path)) { - $path = OC_Filesystem::getView()->getRelativePath($absolutePath); - $exists = OC_Filesystem::file_exists($path); + if (OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && \OC\Files\Filesystem::isValidPath($path)) { + $path = \OC\Files\Filesystem::getView()->getRelativePath($absolutePath); + $exists = \OC\Files\Filesystem::file_exists($path); $run = true; if(!$exists) { OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_create, + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_create, array( - OC_Filesystem::signal_param_path => $path, - OC_Filesystem::signal_param_run => &$run + \OC\Files\Filesystem::signal_param_path => $path, + \OC\Files\Filesystem::signal_param_run => &$run ) ); } OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_write, + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_write, array( - OC_Filesystem::signal_param_path => $path, - OC_Filesystem::signal_param_run => &$run + \OC\Files\Filesystem::signal_param_path => $path, + \OC\Files\Filesystem::signal_param_run => &$run ) ); if(!$run) { return false; } - $target = OC_Filesystem::fopen($path, 'w'); + $target = \OC\Files\Filesystem::fopen($path, 'w'); if($target) { $count = $this->assemble($target); fclose($target); if(!$exists) { OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_create, - array( OC_Filesystem::signal_param_path => $path) + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_post_create, + array( \OC\Files\Filesystem::signal_param_path => $path) ); } OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_write, - array( OC_Filesystem::signal_param_path => $path) + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_post_write, + array( \OC\Files\Filesystem::signal_param_path => $path) ); OC_FileProxy::runPostProxies('file_put_contents', $absolutePath, $count); return $count > 0; diff --git a/lib/fileproxy.php b/lib/fileproxy.php index 2f81bde64a1..52ec79b4bdb 100644 --- a/lib/fileproxy.php +++ b/lib/fileproxy.php @@ -36,7 +36,7 @@ * The return value of the post-proxy will be used as the new result of the operation * The operations that have a post-proxy are: * file_get_contents, is_file, is_dir, file_exists, stat, is_readable, - * is_writable, fileatime, filemtime, filectime, file_get_contents, + * is_writable, filemtime, filectime, file_get_contents, * getMimeType, hash, fopen, free_space and search */ diff --git a/lib/fileproxy/fileoperations.php b/lib/fileproxy/fileoperations.php index 516629adaec..47ccd8f8c26 100644 --- a/lib/fileproxy/fileoperations.php +++ b/lib/fileproxy/fileoperations.php @@ -28,10 +28,10 @@ class OC_FileProxy_FileOperations extends OC_FileProxy{ static $rootView; public function premkdir($path) { - if(!self::$rootView) { - self::$rootView = new OC_FilesystemView(''); + if(!self::$rootView){ + self::$rootView = new \OC\Files\View(''); } return !self::$rootView->file_exists($path); } -} \ No newline at end of file +} diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php index 503288142aa..7e0f631c8fb 100644 --- a/lib/fileproxy/quota.php +++ b/lib/fileproxy/quota.php @@ -22,7 +22,7 @@ */ /** - * user quota managment + * user quota management */ class OC_FileProxy_Quota extends OC_FileProxy{ @@ -57,23 +57,25 @@ class OC_FileProxy_Quota extends OC_FileProxy{ * @return int */ private function getFreeSpace($path) { - $storage=OC_Filesystem::getStorage($path); - $owner=$storage->getOwner($path); + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path); + $owner=$storage->getOwner($internalPath); + if (!$owner) { + return -1; + } $totalSpace=$this->getQuota($owner); if($totalSpace==-1) { return -1; } - $rootInfo=OC_FileCache::get('', "/".$owner."/files"); - // TODO Remove after merge of share_api - if (OC_FileCache::inCache('/Shared', "/".$owner."/files")) { - $sharedInfo=OC_FileCache::get('/Shared', "/".$owner."/files"); - } else { - $sharedInfo = null; - } + $view = new \OC\Files\View("/".$owner."/files"); + + $rootInfo=$view->getFileInfo('/'); $usedSpace=isset($rootInfo['size'])?$rootInfo['size']:0; - $usedSpace=isset($sharedInfo['size'])?$usedSpace-$sharedInfo['size']:$usedSpace; return $totalSpace-$usedSpace; } @@ -93,8 +95,8 @@ class OC_FileProxy_Quota extends OC_FileProxy{ } public function preCopy($path1, $path2) { - if(!self::$rootView) { - self::$rootView = new OC_FilesystemView(''); + if(!self::$rootView){ + self::$rootView = new \OC\Files\View(''); } return (self::$rootView->filesize($path1)<$this->getFreeSpace($path2) or $this->getFreeSpace($path2)==-1); } diff --git a/lib/files.php b/lib/files.php index f4e0f140a44..e3245653f99 100644 --- a/lib/files.php +++ b/lib/files.php @@ -1,144 +1,48 @@ . -* -*/ + * ownCloud + * + * @author Frank Karlitschek + * @copyright 2012 Frank Karlitschek frank@owncloud.org + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + * + */ /** * Class for fileserver access * */ class OC_Files { - static $tmpFiles=array(); + static $tmpFiles = array(); + + static public function getFileInfo($path){ + return \OC\Files\Filesystem::getFileInfo($path); + } + + static public function getDirectoryContent($path){ + return \OC\Files\Filesystem::getDirectoryContent($path); + } /** - * get the filesystem info - * @param string path - * @return array + * return the content of a file or return a zip file containing multiple files * - * returns an associative array with the following keys: - * - size - * - mtime - * - ctime - * - mimetype - * - encrypted - * - versioned + * @param string $dir + * @param string $file ; separated list of files to download + * @param boolean $only_header ; boolean to only send header of the request */ - public static function getFileInfo($path) { - $path = OC_Filesystem::normalizePath($path); - if (($path == '/Shared' || substr($path, 0, 8) == '/Shared/') && OC_App::isEnabled('files_sharing')) { - if ($path == '/Shared') { - list($info) = OCP\Share::getItemsSharedWith('file', OC_Share_Backend_File::FORMAT_FILE_APP_ROOT); - } else { - $info = array(); - if (OC_Filesystem::file_exists($path)) { - $info['size'] = OC_Filesystem::filesize($path); - $info['mtime'] = OC_Filesystem::filemtime($path); - $info['ctime'] = OC_Filesystem::filectime($path); - $info['mimetype'] = OC_Filesystem::getMimeType($path); - $info['encrypted'] = false; - $info['versioned'] = false; - } - } - } else { - $info = OC_FileCache::get($path); - } - return $info; - } - - /** - * get the content of a directory - * @param dir $directory path under datadirectory - */ - public static function getDirectoryContent($directory, $mimetype_filter = '') { - $directory=OC_Filesystem::normalizePath($directory); - if($directory=='/') { - $directory=''; - } - $files = array(); - if (($directory == '/Shared' || substr($directory, 0, 8) == '/Shared/') && OC_App::isEnabled('files_sharing')) { - if ($directory == '/Shared') { - $files = OCP\Share::getItemsSharedWith('file', OC_Share_Backend_File::FORMAT_FILE_APP, array('folder' => $directory, 'mimetype_filter' => $mimetype_filter)); - } else { - $pos = strpos($directory, '/', 8); - // Get shared folder name - if ($pos !== false) { - $itemTarget = substr($directory, 7, $pos - 7); - } else { - $itemTarget = substr($directory, 7); - } - $files = OCP\Share::getItemSharedWith('folder', $itemTarget, OC_Share_Backend_File::FORMAT_FILE_APP, array('folder' => $directory, 'mimetype_filter' => $mimetype_filter)); - } - } else { - $files = OC_FileCache::getFolderContent($directory, false, $mimetype_filter); - foreach ($files as &$file) { - $file['directory'] = $directory; - $file['type'] = ($file['mimetype'] == 'httpd/unix-directory') ? 'dir' : 'file'; - $permissions = OCP\PERMISSION_READ; - // NOTE: Remove check when new encryption is merged - if (!$file['encrypted']) { - $permissions |= OCP\PERMISSION_SHARE; - } - if ($file['type'] == 'dir' && $file['writable']) { - $permissions |= OCP\PERMISSION_CREATE; - } - if ($file['writable']) { - $permissions |= OCP\PERMISSION_UPDATE | OCP\PERMISSION_DELETE; - } - $file['permissions'] = $permissions; - } - if ($directory == '' && OC_App::isEnabled('files_sharing')) { - // Add 'Shared' folder - $files = array_merge($files, OCP\Share::getItemsSharedWith('file', OC_Share_Backend_File::FORMAT_FILE_APP_ROOT)); - } - } - usort($files, "fileCmp");//TODO: remove this once ajax is merged - return $files; - } - - public static function searchByMime($mimetype_filter) { - $files = array(); - $dirs_to_check = array(''); - while (!empty($dirs_to_check)) { - // get next subdir to check - $dir = array_pop($dirs_to_check); - $dir_content = self::getDirectoryContent($dir, $mimetype_filter); - foreach($dir_content as $file) { - if ($file['type'] == 'file') { - $files[] = $dir.'/'.$file['name']; - } - else { - $dirs_to_check[] = $dir.'/'.$file['name']; - } - } - } - return $files; - } - - /** - * return the content of a file or return a zip file containning multiply files - * - * @param dir $dir - * @param file $file ; seperated list of files to download - * @param boolean $only_header ; boolean to only send header of the request - */ public static function get($dir, $files, $only_header = false) { $xsendfile = false; if (isset($_SERVER['MOD_X_SENDFILE_ENABLED']) || @@ -149,7 +53,7 @@ class OC_Files { $files=explode(';', $files); } - if(is_array($files)) { + if (is_array($files)) { self::validateZipDownload($dir, $files); $executionTime = intval(ini_get('max_execution_time')); set_time_limit(0); @@ -162,19 +66,20 @@ class OC_Files { if ($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==true) { exit("cannot open <$filename>\n"); } - foreach($files as $file) { - $file=$dir.'/'.$file; - if(OC_Filesystem::is_file($file)) { - $tmpFile=OC_Filesystem::toTmpFile($file); - self::$tmpFiles[]=$tmpFile; + foreach ($files as $file) { + $file = $dir . '/' . $file; + if (\OC\Files\Filesystem::is_file($file)) { + $tmpFile = \OC\Files\Filesystem::toTmpFile($file); + self::$tmpFiles[] = $tmpFile; $zip->addFile($tmpFile, basename($file)); - }elseif(OC_Filesystem::is_dir($file)) { + } elseif (\OC\Files\Filesystem::is_dir($file)) { self::zipAddDir($file, $zip); } } $zip->close(); + $name = basename($dir) . '.zip'; set_time_limit($executionTime); - }elseif(OC_Filesystem::is_dir($dir.'/'.$files)) { + } elseif (\OC\Files\Filesystem::is_dir($dir . '/' . $files)) { self::validateZipDownload($dir, $files); $executionTime = intval(ini_get('max_execution_time')); set_time_limit(0); @@ -187,53 +92,55 @@ class OC_Files { if ($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==true) { exit("cannot open <$filename>\n"); } - $file=$dir.'/'.$files; + $file = $dir . '/' . $files; self::zipAddDir($file, $zip); $zip->close(); + $name = $files . '.zip'; set_time_limit($executionTime); - }else{ - $zip=false; - $filename=$dir.'/'.$files; + } else { + $zip = false; + $filename = $dir . '/' . $files; + $name = $files; } OC_Util::obEnd(); - if($zip or OC_Filesystem::is_readable($filename)) { + if ($zip or \OC\Files\Filesystem::isReadable($filename)) { if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) { - header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' ); + header( 'Content-Disposition: attachment; filename="' . rawurlencode($name) . '"' ); } else { - header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) ) - . '; filename="' . rawurlencode( basename($filename) ) . '"' ); + header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode($name) + . '; filename="' . rawurlencode($name) . '"' ); } header('Content-Transfer-Encoding: binary'); OC_Response::disableCaching(); - if($zip) { + if ($zip) { ini_set('zlib.output_compression', 'off'); header('Content-Type: application/zip'); header('Content-Length: ' . filesize($filename)); self::addSendfileHeader($filename); }else{ - header('Content-Type: '.OC_Filesystem::getMimeType($filename)); - header("Content-Length: ".OC_Filesystem::filesize($filename)); - $storage = OC_Filesystem::getStorage($filename); - if ($storage instanceof OC_Filestorage_Local) { - self::addSendfileHeader(OC_Filesystem::getLocalFile($filename)); + header('Content-Type: '.\OC\Files\Filesystem::getMimeType($filename)); + header("Content-Length: ".\OC\Files\Filesystem::filesize($filename)); + list($storage) = \OC\Files\Filesystem::resolvePath($filename); + if ($storage instanceof \OC\File\Storage\Local) { + self::addSendfileHeader(\OC\Files\Filesystem::getLocalFile($filename)); } } - }elseif($zip or !OC_Filesystem::file_exists($filename)) { + } elseif ($zip or !\OC\Files\Filesystem::file_exists($filename)) { header("HTTP/1.0 404 Not Found"); - $tmpl = new OC_Template( '', '404', 'guest' ); - $tmpl->assign('file', $filename); + $tmpl = new OC_Template('', '404', 'guest'); + $tmpl->assign('file', $name); $tmpl->printPage(); - }else{ + } else { header("HTTP/1.0 403 Forbidden"); die('403 Forbidden'); } if($only_header) { return ; } - if($zip) { - $handle=fopen($filename, 'r'); + if ($zip) { + $handle = fopen($filename, 'r'); if ($handle) { - $chunkSize = 8*1024;// 1 MB chunks + $chunkSize = 8 * 1024; // 1 MB chunks while (!feof($handle)) { echo fread($handle, $chunkSize); flush(); @@ -243,10 +150,10 @@ class OC_Files { unlink($filename); } }else{ - OC_Filesystem::readfile($filename); + \OC\Files\Filesystem::readfile($filename); } - foreach(self::$tmpFiles as $tmpFile) { - if(file_exists($tmpFile) and is_file($tmpFile)) { + foreach (self::$tmpFiles as $tmpFile) { + if (file_exists($tmpFile) and is_file($tmpFile)) { unlink($tmpFile); } } @@ -269,97 +176,27 @@ class OC_Files { foreach($files as $file) { $filename=$file['name']; $file=$dir.'/'.$filename; - if(OC_Filesystem::is_file($file)) { - $tmpFile=OC_Filesystem::toTmpFile($file); + if(\OC\Files\Filesystem::is_file($file)) { + $tmpFile=\OC\Files\Filesystem::toTmpFile($file); OC_Files::$tmpFiles[]=$tmpFile; $zip->addFile($tmpFile, $internalDir.$filename); - }elseif(OC_Filesystem::is_dir($file)) { + }elseif(\OC\Files\Filesystem::is_dir($file)) { self::zipAddDir($file, $zip, $internalDir); } } } - /** - * move a file or folder - * - * @param dir $sourceDir - * @param file $source - * @param dir $targetDir - * @param file $target - */ - public static function move($sourceDir, $source, $targetDir, $target) { - if(OC_User::isLoggedIn() && ($sourceDir != '' || $source != 'Shared')) { - $targetFile=self::normalizePath($targetDir.'/'.$target); - $sourceFile=self::normalizePath($sourceDir.'/'.$source); - return OC_Filesystem::rename($sourceFile, $targetFile); - } else { - return false; - } - } /** - * copy a file or folder - * - * @param dir $sourceDir - * @param file $source - * @param dir $targetDir - * @param file $target - */ - public static function copy($sourceDir, $source, $targetDir, $target) { - if(OC_User::isLoggedIn()) { - $targetFile=$targetDir.'/'.$target; - $sourceFile=$sourceDir.'/'.$source; - return OC_Filesystem::copy($sourceFile, $targetFile); - } - } - - /** - * create a new file or folder - * - * @param dir $dir - * @param file $name - * @param type $type - */ - public static function newFile($dir, $name, $type) { - if(OC_User::isLoggedIn()) { - $file=$dir.'/'.$name; - if($type=='dir') { - return OC_Filesystem::mkdir($file); - }elseif($type=='file') { - $fileHandle=OC_Filesystem::fopen($file, 'w'); - if($fileHandle) { - fclose($fileHandle); - return true; - }else{ - return false; - } - } - } - } - - /** - * deletes a file or folder - * - * @param dir $dir - * @param file $name - */ - public static function delete($dir, $file) { - if(OC_User::isLoggedIn() && ($dir!= '' || $file != 'Shared')) { - $file=$dir.'/'.$file; - return OC_Filesystem::unlink($file); - } - } - - /** - * checks if the selected files are within the size constraint. If not, outputs an error page. - * - * @param dir $dir - * @param files $files - */ + * checks if the selected files are within the size constraint. If not, outputs an error page. + * + * @param dir $dir + * @param files $files + */ static function validateZipDownload($dir, $files) { - if(!OC_Config::getValue('allowZipDownload', true)) { + if (!OC_Config::getValue('allowZipDownload', true)) { $l = OC_L10N::get('lib'); header("HTTP/1.0 409 Conflict"); - $tmpl = new OC_Template( '', 'error', 'user' ); + $tmpl = new OC_Template('', 'error', 'user'); $errors = array( array( 'error' => $l->t('ZIP download is turned off.'), @@ -372,19 +209,19 @@ class OC_Files { } $zipLimit = OC_Config::getValue('maxZipInputSize', OC_Helper::computerFileSize('800 MB')); - if($zipLimit > 0) { + if ($zipLimit > 0) { $totalsize = 0; - if(is_array($files)) { - foreach($files as $file) { - $totalsize += OC_Filesystem::filesize($dir.'/'.$file); + if (is_array($files)) { + foreach ($files as $file) { + $totalsize += \OC\Files\Filesystem::filesize($dir . '/' . $file); } - }else{ - $totalsize += OC_Filesystem::filesize($dir.'/'.$files); + } else { + $totalsize += \OC\Files\Filesystem::filesize($dir . '/' . $files); } - if($totalsize > $zipLimit) { + if ($totalsize > $zipLimit) { $l = OC_L10N::get('lib'); header("HTTP/1.0 409 Conflict"); - $tmpl = new OC_Template( '', 'error', 'user' ); + $tmpl = new OC_Template('', 'error', 'user'); $errors = array( array( 'error' => $l->t('Selected files too large to generate zip file.'), @@ -398,79 +235,32 @@ class OC_Files { } } - /** - * try to detect the mime type of a file - * - * @param string path - * @return string guessed mime type - */ - static function getMimeType($path) { - return OC_Filesystem::getMimeType($path); - } - - /** - * get a file tree - * - * @param string path - * @return array - */ - static function getTree($path) { - return OC_Filesystem::getTree($path); - } - - /** - * pull a file from a remote server - * @param string source - * @param string token - * @param string dir - * @param string file - * @return string guessed mime type - */ - static function pull($source, $token, $dir, $file) { - $tmpfile=tempnam(get_temp_dir(), 'remoteCloudFile'); - $fp=fopen($tmpfile, 'w+'); - $url=$source.="/files/pull.php?token=$token"; - $ch=curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_FILE, $fp); - curl_exec($ch); - fclose($fp); - $info=curl_getinfo($ch); - $httpCode=$info['http_code']; - curl_close($ch); - if($httpCode==200 or $httpCode==0) { - OC_Filesystem::fromTmpFile($tmpfile, $dir.'/'.$file); - return true; - }else{ - return false; - } - } - /** * set the maximum upload size limit for apache hosts using .htaccess + * * @param int size filesisze in bytes * @return false on failure, size on success */ static function setUploadLimit($size) { //don't allow user to break his config -- upper boundary - if($size > PHP_INT_MAX) { + if ($size > PHP_INT_MAX) { //max size is always 1 byte lower than computerFileSize returns - if($size > PHP_INT_MAX+1) + if ($size > PHP_INT_MAX + 1) return false; - $size -=1; + $size -= 1; } else { - $size=OC_Helper::humanFileSize($size); - $size=substr($size, 0, -1);//strip the B - $size=str_replace(' ', '', $size); //remove the space between the size and the postfix + $size = OC_Helper::humanFileSize($size); + $size = substr($size, 0, -1); //strip the B + $size = str_replace(' ', '', $size); //remove the space between the size and the postfix } //don't allow user to break his config -- broken or malicious size input - if(intval($size) == 0) { + if (intval($size) == 0) { return false; } - $htaccess = @file_get_contents(OC::$SERVERROOT.'/.htaccess'); //supress errors in case we don't have permissions for - if(!$htaccess) { + $htaccess = @file_get_contents(OC::$SERVERROOT . '/.htaccess'); //supress errors in case we don't have permissions for + if (!$htaccess) { return false; } @@ -479,52 +269,26 @@ class OC_Files { 'post_max_size' ); - foreach($phpValueKeys as $key) { - $pattern = '/php_value '.$key.' (\S)*/'; - $setting = 'php_value '.$key.' '.$size; - $hasReplaced = 0; - $content = preg_replace($pattern, $setting, $htaccess, 1, $hasReplaced); - if($content !== null) { + foreach ($phpValueKeys as $key) { + $pattern = '/php_value ' . $key . ' (\S)*/'; + $setting = 'php_value ' . $key . ' ' . $size; + $hasReplaced = 0; + $content = preg_replace($pattern, $setting, $htaccess, 1, $hasReplaced); + if ($content !== null) { $htaccess = $content; } - if($hasReplaced == 0) { + if ($hasReplaced == 0) { $htaccess .= "\n" . $setting; } } //check for write permissions - if(is_writable(OC::$SERVERROOT.'/.htaccess')) { - file_put_contents(OC::$SERVERROOT.'/.htaccess', $htaccess); + if (is_writable(OC::$SERVERROOT . '/.htaccess')) { + file_put_contents(OC::$SERVERROOT . '/.htaccess', $htaccess); return OC_Helper::computerFileSize($size); } else { - OC_Log::write('files', 'Can\'t write upload limit to '.OC::$SERVERROOT.'/.htaccess. Please check the file permissions', OC_Log::WARN); + OC_Log::write('files', 'Can\'t write upload limit to ' . OC::$SERVERROOT . '/.htaccess. Please check the file permissions', OC_Log::WARN); } - return false; } - - /** - * normalize a path, removing any double, add leading /, etc - * @param string $path - * @return string - */ - static public function normalizePath($path) { - $path='/'.$path; - $old=''; - while($old!=$path) {//replace any multiplicity of slashes with a single one - $old=$path; - $path=str_replace('//', '/', $path); - } - return $path; - } -} - -function fileCmp($a, $b) { - if($a['type']=='dir' and $b['type']!='dir') { - return -1; - }elseif($a['type']!='dir' and $b['type']=='dir') { - return 1; - }else{ - return strnatcasecmp($a['name'], $b['name']); - } } diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php new file mode 100644 index 00000000000..dcb6e8fd39a --- /dev/null +++ b/lib/files/cache/cache.php @@ -0,0 +1,527 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +/** + * Metadata cache for the filesystem + * + * don't use this class directly if you need to get metadata, use \OC\Files\Filesystem::getFileInfo instead + */ +class Cache { + const NOT_FOUND = 0; + const PARTIAL = 1; //only partial data available, file not cached in the database + const SHALLOW = 2; //folder in cache, but not all child files are completely scanned + const COMPLETE = 3; + + /** + * @var array partial data for the cache + */ + private $partial = array(); + + /** + * @var string + */ + private $storageId; + + /** + * numeric storage id + * + * @var int $numericId + */ + private $numericId; + + private $mimetypeIds = array(); + private $mimetypes = array(); + + /** + * @param \OC\Files\Storage\Storage|string $storage + */ + public function __construct($storage) { + if ($storage instanceof \OC\Files\Storage\Storage) { + $this->storageId = $storage->getId(); + } else { + $this->storageId = $storage; + } + + $query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?'); + $result = $query->execute(array($this->storageId)); + if ($row = $result->fetchRow()) { + $this->numericId = $row['numeric_id']; + } else { + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)'); + $query->execute(array($this->storageId)); + $this->numericId = \OC_DB::insertid('*PREFIX*filecache'); + } + } + + public function getNumericStorageId() { + return $this->numericId; + } + + /** + * normalize mimetypes + * + * @param string $mime + * @return int + */ + public function getMimetypeId($mime) { + if (!isset($this->mimetypeIds[$mime])) { + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?'); + $result = $query->execute(array($mime)); + if ($row = $result->fetchRow()) { + $this->mimetypeIds[$mime] = $row['id']; + } else { + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*mimetypes`(`mimetype`) VALUES(?)'); + $query->execute(array($mime)); + $this->mimetypeIds[$mime] = \OC_DB::insertid('*PREFIX*mimetypes'); + } + $this->mimetypes[$this->mimetypeIds[$mime]] = $mime; + } + return $this->mimetypeIds[$mime]; + } + + public function getMimetype($id) { + if (!isset($this->mimetypes[$id])) { + $query = \OC_DB::prepare('SELECT `mimetype` FROM `*PREFIX*mimetypes` WHERE `id` = ?'); + $result = $query->execute(array($id)); + if ($row = $result->fetchRow()) { + $this->mimetypes[$id] = $row['mimetype']; + } else { + return null; + } + } + return $this->mimetypes[$id]; + } + + /** + * get the stored metadata of a file or folder + * + * @param string/int $file + * @return array + */ + public function get($file) { + if (is_string($file) or $file == '') { + $where = 'WHERE `storage` = ? AND `path_hash` = ?'; + $params = array($this->numericId, md5($file)); + } else { //file id + $where = 'WHERE `fileid` = ?'; + $params = array($file); + } + $query = \OC_DB::prepare( + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + FROM `*PREFIX*filecache` ' . $where); + $result = $query->execute($params); + $data = $result->fetchRow(); + + //merge partial data + if (!$data and is_string($file)) { + if (isset($this->partial[$file])) { + $data = $this->partial[$file]; + } + } else { + //fix types + $data['fileid'] = (int)$data['fileid']; + $data['size'] = (int)$data['size']; + $data['mtime'] = (int)$data['mtime']; + $data['encrypted'] = (bool)$data['encrypted']; + $data['storage'] = $this->storageId; + $data['mimetype'] = $this->getMimetype($data['mimetype']); + $data['mimepart'] = $this->getMimetype($data['mimepart']); + } + + return $data; + } + + /** + * get the metadata of all files stored in $folder + * + * @param string $folder + * @return array + */ + public function getFolderContents($folder) { + $fileId = $this->getId($folder); + if ($fileId > -1) { + $query = \OC_DB::prepare( + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + FROM `*PREFIX*filecache` WHERE parent = ? ORDER BY `name` ASC'); + $result = $query->execute(array($fileId)); + $files = $result->fetchAll(); + foreach ($files as &$file) { + $file['mimetype'] = $this->getMimetype($file['mimetype']); + $file['mimepart'] = $this->getMimetype($file['mimepart']); + } + return $files; + } else { + return array(); + } + } + + /** + * store meta data for a file or folder + * + * @param string $file + * @param array $data + * + * @return int file id + */ + public function put($file, array $data) { + if (($id = $this->getId($file)) > -1) { + $this->update($id, $data); + return $id; + } else { + if (isset($this->partial[$file])) { //add any saved partial data + $data = array_merge($this->partial[$file], $data); + unset($this->partial[$file]); + } + + $requiredFields = array('size', 'mtime', 'mimetype'); + foreach ($requiredFields as $field) { + if (!isset($data[$field])) { //data not complete save as partial and return + $this->partial[$file] = $data; + return -1; + } + } + + $data['path'] = $file; + $data['parent'] = $this->getParentId($file); + $data['name'] = basename($file); + $data['encrypted'] = isset($data['encrypted']) ? ((int)$data['encrypted']) : 0; + + list($queryParts, $params) = $this->buildParts($data); + $queryParts[] = '`storage`'; + $params[] = $this->numericId; + $valuesPlaceholder = array_fill(0, count($queryParts), '?'); + + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ') VALUES(' . implode(', ', $valuesPlaceholder) . ')'); + $query->execute($params); + + return (int)\OC_DB::insertid('*PREFIX*filecache'); + } + } + + /** + * update the metadata in the cache + * + * @param int $id + * @param array $data + */ + public function update($id, array $data) { + list($queryParts, $params) = $this->buildParts($data); + $params[] = $id; + + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=? WHERE fileid = ?'); + $query->execute($params); + } + + /** + * extract query parts and params array from data array + * + * @param array $data + * @return array + */ + function buildParts(array $data) { + $fields = array('path', 'parent', 'name', 'mimetype', 'size', 'mtime', 'encrypted', 'etag'); + $params = array(); + $queryParts = array(); + foreach ($data as $name => $value) { + if (array_search($name, $fields) !== false) { + if ($name === 'path') { + $params[] = md5($value); + $queryParts[] = '`path_hash`'; + } elseif ($name === 'mimetype') { + $params[] = $this->getMimetypeId(substr($value, 0, strpos($value, '/'))); + $queryParts[] = '`mimepart`'; + $value = $this->getMimetypeId($value); + } + $params[] = $value; + $queryParts[] = '`' . $name . '`'; + } + } + return array($queryParts, $params); + } + + /** + * get the file id for a file + * + * @param string $file + * @return int + */ + public function getId($file) { + $pathHash = md5($file); + + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?'); + $result = $query->execute(array($this->numericId, $pathHash)); + + if ($row = $result->fetchRow()) { + return $row['fileid']; + } else { + return -1; + } + } + + /** + * get the id of the parent folder of a file + * + * @param string $file + * @return int + */ + public function getParentId($file) { + if ($file === '') { + return -1; + } else { + $parent = dirname($file); + if ($parent === '.') { + $parent = ''; + } + return $this->getId($parent); + } + } + + /** + * check if a file is available in the cache + * + * @param string $file + * @return bool + */ + public function inCache($file) { + return $this->getId($file) != -1; + } + + /** + * remove a file or folder from the cache + * + * @param string $file + */ + public function remove($file) { + $entry = $this->get($file); + if ($entry['mimetype'] === 'httpd/unix-directory') { + $children = $this->getFolderContents($file); + foreach ($children as $child) { + $this->remove($child['path']); + } + } + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $query->execute(array($entry['fileid'])); + } + + /** + * Move a file or folder in the cache + * + * @param string $source + * @param string $target + */ + public function move($source, $target) { + $sourceId = $this->getId($source); + $newParentId = $this->getParentId($target); + + //find all child entries + $query = \OC_DB::prepare('SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `path` LIKE ?'); + $result = $query->execute(array($source . '/%')); + $childEntries = $result->fetchAll(); + $sourceLength = strlen($source); + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?'); + + foreach ($childEntries as $child) { + $targetPath = $target . substr($child['path'], $sourceLength); + $query->execute(array($targetPath, md5($targetPath), $child['fileid'])); + } + + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `parent` =? WHERE `fileid` = ?'); + $query->execute(array($target, md5($target), $newParentId, $sourceId)); + } + + /** + * remove all entries for files that are stored on the storage from the cache + */ + public function clear() { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE storage = ?'); + $query->execute(array($this->numericId)); + + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*storages` WHERE id = ?'); + $query->execute(array($this->storageId)); + } + + /** + * @param string $file + * + * @return int, Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE + */ + public function getStatus($file) { + $pathHash = md5($file); + $query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?'); + $result = $query->execute(array($this->numericId, $pathHash)); + if ($row = $result->fetchRow()) { + if ((int)$row['size'] === -1) { + return self::SHALLOW; + } else { + return self::COMPLETE; + } + } else { + if (isset($this->partial[$file])) { + return self::PARTIAL; + } else { + return self::NOT_FOUND; + } + } + } + + /** + * search for files matching $pattern + * + * @param string $pattern + * @return array of file data + */ + public function search($pattern) { + $query = \OC_DB::prepare(' + SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `storage` = ?' + ); + $result = $query->execute(array($pattern, $this->numericId)); + $files = array(); + while ($row = $result->fetchRow()) { + $row['mimetype'] = $this->getMimetype($row['mimetype']); + $row['mimepart'] = $this->getMimetype($row['mimepart']); + $files[] = $row; + } + return $files; + } + + /** + * search for files by mimetype + * + * @param string $mimetype + * @return array + */ + public function searchByMime($mimetype) { + if (strpos($mimetype, '/')) { + $where = '`mimetype` = ?'; + } else { + $where = '`mimepart` = ?'; + } + $query = \OC_DB::prepare(' + SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `storage` = ?' + ); + $mimetype = $this->getMimetypeId($mimetype); + $result = $query->execute(array($mimetype, $this->numericId)); + $files = array(); + while ($row = $result->fetchRow()) { + $row['mimetype'] = $this->getMimetype($row['mimetype']); + $row['mimepart'] = $this->getMimetype($row['mimepart']); + $files[] = $row; + } + return $files; + } + + /** + * update the folder size and the size of all parent folders + * + * @param $path + */ + public function correctFolderSize($path) { + $this->calculateFolderSize($path); + if ($path !== '') { + $parent = dirname($path); + if ($parent === '.') { + $parent = ''; + } + $this->correctFolderSize($parent); + } + } + + /** + * get the size of a folder and set it in the cache + * + * @param string $path + * @return int + */ + public function calculateFolderSize($path) { + $id = $this->getId($path); + if ($id === -1) { + return 0; + } + $query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?'); + $result = $query->execute(array($id, $this->numericId)); + $totalSize = 0; + $hasChilds = 0; + while ($row = $result->fetchRow()) { + $hasChilds = true; + $size = (int)$row['size']; + if ($size === -1) { + $totalSize = -1; + break; + } else { + $totalSize += $size; + } + } + + if ($hasChilds) { + $this->update($id, array('size' => $totalSize)); + } + return $totalSize; + } + + /** + * get all file ids on the files on the storage + * + * @return int[] + */ + public function getAll() { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ?'); + $result = $query->execute(array($this->numericId)); + $ids = array(); + while ($row = $result->fetchRow()) { + $ids[] = $row['fileid']; + } + return $ids; + } + + /** + * find a folder in the cache which has not been fully scanned + * + * If multiply incomplete folders are in the cache, the one with the highest id will be returned, + * use the one with the highest id gives the best result with the background scanner, since that is most + * likely the folder where we stopped scanning previously + * + * @return string|bool the path of the folder or false when no folder matched + */ + public function getIncomplete() { + $query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1'); + $query->execute(array($this->numericId)); + if ($row = $query->fetchRow()) { + return $row['path']; + } else { + return false; + } + } + + /** + * get the storage id of the storage for a file and the internal path of the file + * + * @return array, first element holding the storage id, second the path + */ + static public function getById($id) { + $query = \OC_DB::prepare('SELECT `storage`, `path` FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $result = $query->execute(array($id)); + if ($row = $result->fetchRow()) { + $numericId = $row['storage']; + $path = $row['path']; + } else { + return null; + } + + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?'); + $result = $query->execute(array($numericId)); + if ($row = $result->fetchRow()) { + return array($row['id'], $path); + } else { + return null; + } + } +} diff --git a/lib/files/cache/legacy.php b/lib/files/cache/legacy.php new file mode 100644 index 00000000000..33d4b8e7c9f --- /dev/null +++ b/lib/files/cache/legacy.php @@ -0,0 +1,81 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +/** + * Provide read only support for the old filecache + */ +class Legacy { + private $user; + + private $cacheHasItems = null; + + public function __construct($user) { + $this->user = $user; + } + + function getCount() { + $query = \OC_DB::prepare('SELECT COUNT(`id`) AS `count` FROM `*PREFIX*fscache` WHERE `user` = ?'); + $result = $query->execute(array($this->user)); + if ($row = $result->fetchRow()) { + return $row['count']; + } else { + return 0; + } + } + + /** + * check if a legacy cache is present and holds items + * + * @return bool + */ + function hasItems() { + if (!is_null($this->cacheHasItems)) { + return $this->cacheHasItems; + } + try { + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*fscache` WHERE `user` = ? LIMIT 1'); + } catch (\Exception $e) { + $this->cacheHasItems = false; + return false; + } + try { + $result = $query->execute(array($this->user)); + } catch (\Exception $e) { + $this->cacheHasItems = false; + return false; + } + $this->cacheHasItems = (bool)$result->fetchRow(); + return $this->cacheHasItems; + } + + /** + * @param string|int $path + * @return array + */ + function get($path) { + if (is_numeric($path)) { + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `id` = ?'); + } else { + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `path` = ?'); + } + $result = $query->execute(array($path)); + return $result->fetchRow(); + } + + /** + * @param int $id + * @return array + */ + function getChildren($id) { + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `parent` = ?'); + $result = $query->execute(array($id)); + return $result->fetchAll(); + } +} diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php new file mode 100644 index 00000000000..d0968337f02 --- /dev/null +++ b/lib/files/cache/permissions.php @@ -0,0 +1,102 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +class Permissions { + /** + * @var string $storageId + */ + private $storageId; + + /** + * @param \OC\Files\Storage\Storage|string $storage + */ + public function __construct($storage){ + if($storage instanceof \OC\Files\Storage\Storage){ + $this->storageId = $storage->getId(); + }else{ + $this->storageId = $storage; + } + } + + /** + * get the permissions for a single file + * + * @param int $fileId + * @param string $user + * @return int (-1 if file no permissions set) + */ + public function get($fileId, $user) { + $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*permissions` WHERE `user` = ? AND `fileid` = ?'); + $result = $query->execute(array($user, $fileId)); + if ($row = $result->fetchRow()) { + return $row['permissions']; + } else { + return -1; + } + } + + /** + * set the permissions of a file + * + * @param int $fileId + * @param string $user + * @param int $permissions + */ + public function set($fileId, $user, $permissions) { + if (self::get($fileId, $user) !== -1) { + $query = \OC_DB::prepare('UPDATE `*PREFIX*permissions` SET `permissions` = ? WHERE `user` = ? AND `fileid` = ?'); + } else { + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*permissions`(`permissions`, `user`, `fileid`) VALUES(?, ?,? )'); + } + $query->execute(array($permissions, $user, $fileId)); + } + + /** + * get the permissions of multiply files + * + * @param int[] $fileIds + * @param string $user + * @return int[] + */ + public function getMultiple($fileIds, $user) { + if (count($fileIds) === 0) { + return array(); + } + $params = $fileIds; + $params[] = $user; + $inPart = implode(', ', array_fill(0, count($fileIds), '?')); + + $query = \OC_DB::prepare('SELECT `fileid`, `permissions` FROM `*PREFIX*permissions` WHERE `fileid` IN (' . $inPart . ') AND `user` = ?'); + $result = $query->execute($params); + $filePermissions = array(); + while ($row = $result->fetchRow()) { + $filePermissions[$row['fileid']] = $row['permissions']; + } + return $filePermissions; + } + + /** + * remove the permissions for a file + * + * @param int $fileId + * @param string $user + */ + public function remove($fileId, $user) { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?'); + $query->execute(array($fileId, $user)); + } + + public function removeMultiple($fileIds, $user) { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?'); + foreach($fileIds as $fileId){ + $query->execute(array($fileId, $user)); + } + } +} diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php new file mode 100644 index 00000000000..8d504af6163 --- /dev/null +++ b/lib/files/cache/scanner.php @@ -0,0 +1,146 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +class Scanner { + /** + * @var \OC\Files\Storage\Storage $storage + */ + private $storage; + + /** + * @var string $storageId + */ + private $storageId; + + /** + * @var \OC\Files\Cache\Cache $cache + */ + private $cache; + + const SCAN_RECURSIVE = true; + const SCAN_SHALLOW = false; + + public function __construct(\OC\Files\Storage\Storage $storage) { + $this->storage = $storage; + $this->storageId = $this->storage->getId(); + $this->cache = $storage->getCache(); + } + + /** + * get all the metadata of a file or folder + * * + * + * @param string $path + * @return array with metadata of the file + */ + public function getData($path) { + $data = array(); + if (!$this->storage->isReadable($path)) return null; //cant read, nothing we can do + $data['mimetype'] = $this->storage->getMimeType($path); + $data['mtime'] = $this->storage->filemtime($path); + if ($data['mimetype'] == 'httpd/unix-directory') { + $data['size'] = -1; //unknown + } else { + $data['size'] = $this->storage->filesize($path); + } + $data['etag'] = $this->storage->getETag($path); + return $data; + } + + /** + * scan a single file and store it in the cache + * + * @param string $file + * @return array with metadata of the scanned file + */ + public function scanFile($file) { + \OC_Hook::emit('\OC\Files\Cache\Scanner', 'scan_file', array('path' => $file, 'storage' => $this->storageId)); + $data = $this->getData($file); + if ($data) { + if ($file) { + $parent = dirname($file); + if ($parent === '.') { + $parent = ''; + } + if (!$this->cache->inCache($parent)) { + $this->scanFile($parent); + } + } + $id = $this->cache->put($file, $data); + } + return $data; + } + + /** + * scan all the files in a folder and store them in the cache + * + * @param string $path + * @param SCAN_RECURSIVE/SCAN_SHALLOW $recursive + * @param bool $onlyChilds + * @return int the size of the scanned folder or -1 if the size is unknown at this stage + */ + public function scan($path, $recursive = self::SCAN_RECURSIVE, $onlyChilds = false) { + \OC_Hook::emit('\OC\Files\Cache\Scanner', 'scan_folder', array('path' => $path, 'storage' => $this->storageId)); + $childQueue = array(); + if (!$onlyChilds) { + $this->scanFile($path); + } + + $size = 0; + if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) { + \OC_DB::beginTransaction(); + while ($file = readdir($dh)) { + if ($file !== '.' and $file !== '..') { + $child = ($path) ? $path . '/' . $file : $file; + $data = $this->scanFile($child); + if ($data) { + if ($data['mimetype'] === 'httpd/unix-directory') { + if ($recursive === self::SCAN_RECURSIVE) { + $childQueue[] = $child; + $data['size'] = 0; + } else { + $data['size'] = -1; + } + } else { + } + if ($data['size'] === -1) { + $size = -1; + } elseif ($size !== -1) { + $size += $data['size']; + } + } + } + } + \OC_DB::commit(); + foreach ($childQueue as $child) { + $childSize = $this->scan($child, self::SCAN_RECURSIVE, true); + if ($childSize === -1) { + $size = -1; + } else { + $size += $childSize; + } + } + if ($size !== -1) { + $this->cache->put($path, array('size' => $size)); + } + } + return $size; + } + + /** + * walk over any folders that are not fully scanned yet and scan them + */ + public function backgroundScan() { + while ($path = $this->cache->getIncomplete()) { + $this->scan($path); + $this->cache->correctFolderSize($path); + } + } +} diff --git a/lib/files/cache/updater.php b/lib/files/cache/updater.php new file mode 100644 index 00000000000..d04541c219f --- /dev/null +++ b/lib/files/cache/updater.php @@ -0,0 +1,105 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +/** + * listen to filesystem hooks and change the cache accordingly + */ +class Updater { + + /** + * resolve a path to a storage and internal path + * + * @param string $path + * @return array consisting of the storage and the internal path + */ + static public function resolvePath($path) { + $view = \OC\Files\Filesystem::getView(); + return $view->resolvePath($path); + } + + static public function writeUpdate($path) { + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = self::resolvePath($path); + if ($storage) { + $cache = $storage->getCache($internalPath); + $scanner = $storage->getScanner($internalPath); + $scanner->scan($internalPath, Scanner::SCAN_SHALLOW); + $cache->correctFolderSize($internalPath); + self::correctFolder($path, $storage->filemtime($internalPath)); + } + } + + static public function deleteUpdate($path) { + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = self::resolvePath($path); + if ($storage) { + $cache = $storage->getCache($internalPath); + $cache->remove($internalPath); + $cache->correctFolderSize($internalPath); + self::correctFolder($path, time()); + } + } + + /** + * Update the mtime and ETag of all parent folders + * + * @param string $path + * @param string $time + */ + static public function correctFolder($path, $time) { + if ($path !== '' && $path !== '/') { + $parent = dirname($path); + if ($parent === '.') { + $parent = ''; + } + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = self::resolvePath($parent); + if ($storage) { + $cache = $storage->getCache(); + $id = $cache->getId($internalPath); + if ($id !== -1) { + $cache->update($id, array('mtime' => $time, 'etag' => $storage->getETag($internalPath))); + self::correctFolder($parent, $time); + } + } + } + } + + /** + * @param array $params + */ + static public function writeHook($params) { + self::writeUpdate($params['path']); + } + + /** + * @param array $params + */ + static public function renameHook($params) { + self::deleteUpdate($params['oldpath']); + self::writeUpdate($params['newpath']); + } + + /** + * @param array $params + */ + static public function deleteHook($params) { + self::deleteUpdate($params['path']); + } +} diff --git a/lib/files/cache/upgrade.php b/lib/files/cache/upgrade.php new file mode 100644 index 00000000000..eb8c7297c3e --- /dev/null +++ b/lib/files/cache/upgrade.php @@ -0,0 +1,159 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +class Upgrade { + /** + * @var Legacy $legacy + */ + private $legacy; + + private $numericIds = array(); + + private $mimeTypeIds = array(); + + /** + * @param Legacy $legacy + */ + public function __construct($legacy) { + $this->legacy = $legacy; + } + + /** + * Preform a shallow upgrade + * + * @param string $path + * @param int $mode + */ + function upgradePath($path, $mode = Scanner::SCAN_RECURSIVE) { + if (!$this->legacy->hasItems()) { + return; + } + \OC_Hook::emit('\OC\Files\Cache\Upgrade', 'migrate_path', $path); + + if ($row = $this->legacy->get($path)) { + $data = $this->getNewData($row); + $this->insert($data); + + $this->upgradeChilds($data['id'], $mode); + } + } + + /** + * @param int $id + */ + function upgradeChilds($id, $mode = Scanner::SCAN_RECURSIVE) { + $children = $this->legacy->getChildren($id); + foreach ($children as $child) { + $childData = $this->getNewData($child); + \OC_Hook::emit('\OC\Files\Cache\Upgrade', 'migrate_path', $child['path']); + $this->insert($childData); + if ($mode == Scanner::SCAN_RECURSIVE) { + $this->upgradeChilds($child['id']); + } + } + } + + /** + * @param array $data the data for the new cache + */ + function insert($data) { + if (!$this->inCache($data['storage'], $data['path_hash'])) { + $insertQuery = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache` + ( `fileid`, `storage`, `path`, `path_hash`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` ) + VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); + + $insertQuery->execute(array($data['id'], $data['storage'], $data['path'], $data['path_hash'], $data['parent'], $data['name'], + $data['mimetype'], $data['mimepart'], $data['size'], $data['mtime'], $data['encrypted'])); + } + } + + /** + * @param string $storage + * @param string $pathHash + * @return bool + */ + function inCache($storage, $pathHash) { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?'); + $result = $query->execute(array($storage, $pathHash)); + return (bool)$result->fetchRow(); + } + + /** + * get the new data array from the old one + * + * @param array $data the data from the old cache + * @return array + */ + function getNewData($data) { + $newData = $data; + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($data['path']); + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath; + */ + $newData['path_hash'] = md5($internalPath); + $newData['path'] = $internalPath; + $newData['storage'] = $this->getNumericId($storage); + $newData['parent'] = ($internalPath === '') ? -1 : $data['parent']; + $newData['permissions'] = ($data['writable']) ? \OCP\PERMISSION_ALL : \OCP\PERMISSION_READ; + $newData['storage_object'] = $storage; + $newData['mimetype'] = $this->getMimetypeId($newData['mimetype'], $storage); + $newData['mimepart'] = $this->getMimetypeId($newData['mimepart'], $storage); + return $newData; + } + + /** + * get the numeric storage id + * + * @param \OC\Files\Storage\Storage $storage + * @return int + */ + function getNumericId($storage) { + $storageId = $storage->getId(); + if (!isset($this->numericIds[$storageId])) { + $cache = $storage->getCache(); + $this->numericIds[$storageId] = $cache->getNumericStorageId(); + } + return $this->numericIds[$storageId]; + } + + /** + * @param string $mimetype + * @param \OC\Files\Storage\Storage $storage + * @return int + */ + function getMimetypeId($mimetype, $storage) { + if (!isset($this->mimeTypeIds[$mimetype])) { + $cache = new Cache($storage); + $this->mimeTypeIds[$mimetype] = $cache->getMimetypeId($mimetype); + } + return $this->mimeTypeIds[$mimetype]; + } + + /** + * check if a cache upgrade is required for $user + * + * @param string $user + * @return bool + */ + static function needUpgrade($user) { + $cacheVersion = (int)\OCP\Config::getUserValue($user, 'files', 'cache_version', 4); + return $cacheVersion < 5; + } + + /** + * mark the filecache as upgrade + * + * @param string $user + */ + static function upgradeDone($user) { + \OCP\Config::setUserValue($user, 'files', 'cache_version', 5); + } +} diff --git a/lib/files/cache/watcher.php b/lib/files/cache/watcher.php new file mode 100644 index 00000000000..31059ec7f56 --- /dev/null +++ b/lib/files/cache/watcher.php @@ -0,0 +1,72 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +/** + * check the storage backends for updates and change the cache accordingly + */ +class Watcher { + /** + * @var \OC\Files\Storage\Storage $storage + */ + private $storage; + + /** + * @var Cache $cache + */ + private $cache; + + /** + * @var Scanner $scanner; + */ + private $scanner; + + /** + * @param \OC\Files\Storage\Storage $storage + */ + public function __construct(\OC\Files\Storage\Storage $storage) { + $this->storage = $storage; + $this->cache = $storage->getCache(); + $this->scanner = $storage->getScanner(); + } + + /** + * check $path for updates + * + * @param string $path + */ + public function checkUpdate($path) { + $cachedEntry = $this->cache->get($path); + if ($this->storage->hasUpdated($path, $cachedEntry['mtime'])) { + if ($this->storage->is_dir($path)) { + $this->scanner->scan($path, Scanner::SCAN_SHALLOW); + } else { + $this->scanner->scanFile($path); + } + if ($cachedEntry['mimetype'] === 'httpd/unix-directory') { + $this->cleanFolder($path); + } + $this->cache->correctFolderSize($path); + } + } + + /** + * remove deleted files in $path from the cache + * + * @param string $path + */ + public function cleanFolder($path) { + $cachedContent = $this->cache->getFolderContents($path); + foreach ($cachedContent as $entry) { + if (!$this->storage->file_exists($entry['path'])) { + $this->cache->remove($entry['path']); + } + } + } +} diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php new file mode 100644 index 00000000000..65d9ffab485 --- /dev/null +++ b/lib/files/filesystem.php @@ -0,0 +1,638 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +/** + * Class for abstraction of filesystem functions + * This class won't call any filesystem functions for itself but but will pass them to the correct OC_Filestorage object + * this class should also handle all the file permission related stuff + * + * Hooks provided: + * read(path) + * write(path, &run) + * post_write(path) + * create(path, &run) (when a file is created, both create and write will be emitted in that order) + * post_create(path) + * delete(path, &run) + * post_delete(path) + * rename(oldpath,newpath, &run) + * post_rename(oldpath,newpath) + * copy(oldpath,newpath, &run) (if the newpath doesn't exists yes, copy, create and write will be emitted in that order) + * post_rename(oldpath,newpath) + * + * the &run parameter can be set to false to prevent the operation from occurring + */ + +namespace OC\Files; + +class Filesystem { + public static $loaded = false; + /** + * @var \OC\Files\View $defaultInstance + */ + static private $defaultInstance; + + + /** + * classname which used for hooks handling + * used as signalclass in OC_Hooks::emit() + */ + const CLASSNAME = 'OC_Filesystem'; + + /** + * signalname emitted before file renaming + * + * @param string $oldpath + * @param string $newpath + */ + const signal_rename = 'rename'; + + /** + * signal emitted after file renaming + * + * @param string $oldpath + * @param string $newpath + */ + const signal_post_rename = 'post_rename'; + + /** + * signal emitted before file/dir creation + * + * @param string $path + * @param bool $run changing this flag to false in hook handler will cancel event + */ + const signal_create = 'create'; + + /** + * signal emitted after file/dir creation + * + * @param string $path + * @param bool $run changing this flag to false in hook handler will cancel event + */ + const signal_post_create = 'post_create'; + + /** + * signal emits before file/dir copy + * + * @param string $oldpath + * @param string $newpath + * @param bool $run changing this flag to false in hook handler will cancel event + */ + const signal_copy = 'copy'; + + /** + * signal emits after file/dir copy + * + * @param string $oldpath + * @param string $newpath + */ + const signal_post_copy = 'post_copy'; + + /** + * signal emits before file/dir save + * + * @param string $path + * @param bool $run changing this flag to false in hook handler will cancel event + */ + const signal_write = 'write'; + + /** + * signal emits after file/dir save + * + * @param string $path + */ + const signal_post_write = 'post_write'; + + /** + * signal emits when reading file/dir + * + * @param string $path + */ + const signal_read = 'read'; + + /** + * signal emits when removing file/dir + * + * @param string $path + */ + const signal_delete = 'delete'; + + /** + * parameters definitions for signals + */ + const signal_param_path = 'path'; + const signal_param_oldpath = 'oldpath'; + const signal_param_newpath = 'newpath'; + + /** + * run - changing this flag to false in hook handler will cancel event + */ + const signal_param_run = 'run'; + + /** + * get the mountpoint of the storage object for a path + ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + * + * @param string $path + * @return string + */ + static public function getMountPoint($path) { + $mount = Mount::find($path); + if ($mount) { + return $mount->getMountPoint(); + } else { + return ''; + } + } + + /** + * get a list of all mount points in a directory + * + * @param string $path + * @return string[] + */ + static public function getMountPoints($path) { + $result = array(); + $mounts = Mount::findIn($path); + foreach ($mounts as $mount) { + $result[] = $mount->getMountPoint(); + } + return $result; + } + + /** + * get the storage mounted at $mountPoint + * + * @param string $mountPoint + * @return \OC\Files\Storage\Storage + */ + public static function getStorage($mountPoint) { + $mount = Mount::find($mountPoint); + return $mount->getStorage(); + } + + /** + * resolve a path to a storage and internal path + * + * @param string $path + * @return array consisting of the storage and the internal path + */ + static public function resolvePath($path) { + $mount = Mount::find($path); + if ($mount) { + return array($mount->getStorage(), $mount->getInternalPath($path)); + } else { + return array(null, null); + } + } + + static public function init($root) { + if (self::$defaultInstance) { + return false; + } + self::$defaultInstance = new View($root); + + //load custom mount config + self::initMountPoints(); + + self::$loaded = true; + + return true; + } + + /** + * Initialize system and personal mount points for a user + * + * @param string $user + */ + public static function initMountPoints($user = '') { + if ($user == '') { + $user = \OC_User::getUser(); + } + // Load system mount points + if (is_file(\OC::$SERVERROOT . '/config/mount.php')) { + $mountConfig = include 'config/mount.php'; + if (isset($mountConfig['global'])) { + foreach ($mountConfig['global'] as $mountPoint => $options) { + self::mount($options['class'], $options['options'], $mountPoint); + } + } + if (isset($mountConfig['group'])) { + foreach ($mountConfig['group'] as $group => $mounts) { + if (\OC_Group::inGroup($user, $group)) { + foreach ($mounts as $mountPoint => $options) { + $mountPoint = self::setUserVars($user, $mountPoint); + foreach ($options as &$option) { + $option = self::setUserVars($user, $option); + } + self::mount($options['class'], $options['options'], $mountPoint); + } + } + } + } + if (isset($mountConfig['user'])) { + foreach ($mountConfig['user'] as $mountUser => $mounts) { + if ($user === 'all' or strtolower($mountUser) === strtolower($user)) { + foreach ($mounts as $mountPoint => $options) { + $mountPoint = self::setUserVars($user, $mountPoint); + foreach ($options as &$option) { + $option = self::setUserVars($user, $option); + } + self::mount($options['class'], $options['options'], $mountPoint); + } + } + } + } + } + // Load personal mount points + $root = \OC_User::getHome($user); + self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); + if (is_file($root . '/mount.php')) { + $mountConfig = include $root . '/mount.php'; + if (isset($mountConfig['user'][$user])) { + foreach ($mountConfig['user'][$user] as $mountPoint => $options) { + self::mount($options['class'], $options['options'], $mountPoint); + } + } + } + } + + /** + * fill in the correct values for $user, and $password placeholders + * + * @param string $input + * @param string $input + * @return string + */ + private static function setUserVars($user, $input) { + return str_replace('$user', $user, $input); + } + + /** + * get the default filesystem view + * + * @return View + */ + static public function getView() { + return self::$defaultInstance; + } + + /** + * tear down the filesystem, removing all storage providers + */ + static public function tearDown() { + self::clearMounts(); + } + + /** + * @brief get the relative path of the root data directory for the current user + * @return string + * + * Returns path like /admin/files + */ + static public function getRoot() { + return self::$defaultInstance->getRoot(); + } + + /** + * clear all mounts and storage backends + */ + public static function clearMounts() { + Mount::clear(); + } + + /** + * mount an \OC\Files\Storage\Storage in our virtual filesystem + * + * @param \OC\Files\Storage\Storage|string $class + * @param array $arguments + * @param string $mountpoint + */ + static public function mount($class, $arguments, $mountpoint) { + new Mount($class, $mountpoint, $arguments); + } + + /** + * return the path to a local version of the file + * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * + * @param string $path + * @return string + */ + static public function getLocalFile($path) { + return self::$defaultInstance->getLocalFile($path); + } + + /** + * @param string $path + * @return string + */ + static public function getLocalFolder($path) { + return self::$defaultInstance->getLocalFolder($path); + } + + /** + * return path to file which reflects one visible in browser + * + * @param string $path + * @return string + */ + static public function getLocalPath($path) { + $datadir = \OC_User::getHome(\OC_User::getUser()) . '/files'; + $newpath = $path; + if (strncmp($newpath, $datadir, strlen($datadir)) == 0) { + $newpath = substr($path, strlen($datadir)); + } + return $newpath; + } + + /** + * check if the requested path is valid + * + * @param string $path + * @return bool + */ + static public function isValidPath($path) { + $path = self::normalizePath($path); + if (!$path || $path[0] !== '/') { + $path = '/' . $path; + } + if (strstr($path, '/../') || strrchr($path, '/') === '/..') { + return false; + } + return true; + } + + /** + * checks if a file is blacklisted for storage in the filesystem + * Listens to write and rename hooks + * + * @param array $data from hook + */ + static public function isBlacklisted($data) { + $blacklist = \OC_Config::getValue('blacklisted_files', array('.htaccess')); + if (isset($data['path'])) { + $path = $data['path']; + } else if (isset($data['newpath'])) { + $path = $data['newpath']; + } + if (isset($path)) { + $filename = strtolower(basename($path)); + if (in_array($filename, $blacklist)) { + $data['run'] = false; + } + } + } + + /** + * following functions are equivalent to their php builtin equivalents for arguments/return values. + */ + static public function mkdir($path) { + return self::$defaultInstance->mkdir($path); + } + + static public function rmdir($path) { + return self::$defaultInstance->rmdir($path); + } + + static public function opendir($path) { + return self::$defaultInstance->opendir($path); + } + + static public function readdir($path) { + return self::$defaultInstance->readdir($path); + } + + static public function is_dir($path) { + return self::$defaultInstance->is_dir($path); + } + + static public function is_file($path) { + return self::$defaultInstance->is_file($path); + } + + static public function stat($path) { + return self::$defaultInstance->stat($path); + } + + static public function filetype($path) { + return self::$defaultInstance->filetype($path); + } + + static public function filesize($path) { + return self::$defaultInstance->filesize($path); + } + + static public function readfile($path) { + return self::$defaultInstance->readfile($path); + } + + static public function isCreatable($path) { + return self::$defaultInstance->isCreatable($path); + } + + static public function isReadable($path) { + return self::$defaultInstance->isReadable($path); + } + + static public function isUpdatable($path) { + return self::$defaultInstance->isUpdatable($path); + } + + static public function isDeletable($path) { + return self::$defaultInstance->isDeletable($path); + } + + static public function isSharable($path) { + return self::$defaultInstance->isSharable($path); + } + + static public function file_exists($path) { + return self::$defaultInstance->file_exists($path); + } + + static public function filemtime($path) { + return self::$defaultInstance->filemtime($path); + } + + static public function touch($path, $mtime = null) { + return self::$defaultInstance->touch($path, $mtime); + } + + static public function file_get_contents($path) { + return self::$defaultInstance->file_get_contents($path); + } + + static public function file_put_contents($path, $data) { + return self::$defaultInstance->file_put_contents($path, $data); + } + + static public function unlink($path) { + return self::$defaultInstance->unlink($path); + } + + static public function rename($path1, $path2) { + return self::$defaultInstance->rename($path1, $path2); + } + + static public function copy($path1, $path2) { + return self::$defaultInstance->copy($path1, $path2); + } + + static public function fopen($path, $mode) { + return self::$defaultInstance->fopen($path, $mode); + } + + static public function toTmpFile($path) { + return self::$defaultInstance->toTmpFile($path); + } + + static public function fromTmpFile($tmpFile, $path) { + return self::$defaultInstance->fromTmpFile($tmpFile, $path); + } + + static public function getMimeType($path) { + return self::$defaultInstance->getMimeType($path); + } + + static public function hash($type, $path, $raw = false) { + return self::$defaultInstance->hash($type, $path, $raw); + } + + static public function free_space($path = '/') { + return self::$defaultInstance->free_space($path); + } + + static public function search($query) { + return self::$defaultInstance->search($query); + } + + static public function searchByMime($query) { + return self::$defaultInstance->searchByMime($query); + } + + /** + * check if a file or folder has been updated since $time + * + * @param string $path + * @param int $time + * @return bool + */ + static public function hasUpdated($path, $time) { + return self::$defaultInstance->hasUpdated($path, $time); + } + + /** + * normalize a path + * + * @param string $path + * @param bool $stripTrailingSlash + * @return string + */ + public static function normalizePath($path, $stripTrailingSlash = true) { + if ($path == '') { + return '/'; + } +//no windows style slashes + $path = str_replace('\\', '/', $path); +//add leading slash + if ($path[0] !== '/') { + $path = '/' . $path; + } +//remove duplicate slashes + while (strpos($path, '//') !== false) { + $path = str_replace('//', '/', $path); + } +//remove trailing slash + if ($stripTrailingSlash and strlen($path) > 1 and substr($path, -1, 1) === '/') { + $path = substr($path, 0, -1); + } +//normalize unicode if possible + if (class_exists('Normalizer')) { + $path = \Normalizer::normalize($path); + } + return $path; + } + + /** + * get the filesystem info + * + * @param string $path + * @return array + * + * returns an associative array with the following keys: + * - size + * - mtime + * - mimetype + * - encrypted + * - versioned + */ + public static function getFileInfo($path) { + return self::$defaultInstance->getFileInfo($path); + } + + /** + * change file metadata + * + * @param string $path + * @param array $data + * @return int + * + * returns the fileid of the updated file + */ + public static function putFileInfo($path, $data) { + return self::$defaultInstance->putFileInfo($path, $data); + } + + /** + * get the content of a directory + * + * @param string $directory path under datadirectory + * @return array + */ + public static function getDirectoryContent($directory) { + return self::$defaultInstance->getDirectoryContent($directory); + } + + /** + * Get the path of a file by id + * + * Note that the resulting path is not guarantied to be unique for the id, multiple paths can point to the same file + * + * @param int $id + * @return string + */ + public static function getPath($id) { + return self::$defaultInstance->getPath($id); + } + + /** + * Get the owner for a file or folder + * + * @param string $path + * @return string + */ + public static function getOwner($path) { + return self::$defaultInstance->getOwner($path); + } + + /** + * get the ETag for a file or folder + * + * @param string $path + * @return string + */ + static public function getETag($path) { + return self::$defaultInstance->getETag($path); + } +} + +\OC_Hook::connect('OC_Filesystem', 'post_write', '\OC\Files\Cache\Updater', 'writeHook'); +\OC_Hook::connect('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Updater', 'deleteHook'); +\OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook'); + +\OC_Util::setupFS(); diff --git a/lib/files/mount.php b/lib/files/mount.php new file mode 100644 index 00000000000..74ee483b1be --- /dev/null +++ b/lib/files/mount.php @@ -0,0 +1,188 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files; + +class Mount { + /** + * @var Mount[] + */ + static private $mounts = array(); + + /** + * @var \OC\Files\Storage\Storage $storage + */ + private $storage = null; + private $class; + private $storageId; + private $arguments = array(); + private $mountPoint; + + /** + * @param string|\OC\Files\Storage\Storage $storage + * @param string $mountpoint + * @param array $arguments (optional) + */ + public function __construct($storage, $mountpoint, $arguments = null) { + if (is_null($arguments)) { + $arguments = array(); + } + + $mountpoint = self::formatPath($mountpoint); + if ($storage instanceof \OC\Files\Storage\Storage) { + $this->class = get_class($storage); + $this->storage = $storage; + } else { + // Update old classes to new namespace + if (strpos($storage, 'OC_Filestorage_') !== false) { + $storage = '\OC\Files\Storage\\' . substr($storage, 15); + } + $this->class = $storage; + $this->arguments = $arguments; + } + $this->mountPoint = $mountpoint; + + self::$mounts[$this->mountPoint] = $this; + } + + /** + * @return string + */ + public function getMountPoint() { + return $this->mountPoint; + } + + /** + * @return \OC\Files\Storage\Storage + */ + private function createStorage() { + if (class_exists($this->class)) { + try { + return new $this->class($this->arguments); + } catch (\Exception $exception) { + \OC_Log::write('core', $exception->getMessage(), \OC_Log::ERROR); + return null; + } + } else { + \OC_Log::write('core', 'storage backend ' . $this->class . ' not found', \OC_Log::ERROR); + return null; + } + } + + /** + * @return \OC\Files\Storage\Storage + */ + public function getStorage() { + if (is_null($this->storage)) { + $this->storage = $this->createStorage(); + } + return $this->storage; + } + + /** + * @return string + */ + public function getStorageId() { + if (!$this->storageId) { + if (is_null($this->storage)) { + $this->storage = $this->createStorage(); + } + $this->storageId = $this->storage->getId(); + } + return $this->storageId; + } + + /** + * @param string $path + * @return string + */ + public function getInternalPath($path) { + if ($this->mountPoint === $path or $this->mountPoint . '/' === $path) { + $internalPath = ''; + } else { + $internalPath = substr($path, strlen($this->mountPoint)); + } + return $internalPath; + } + + /** + * @param string $path + * @return string + */ + private static function formatPath($path) { + $path = Filesystem::normalizePath($path); + if (strlen($path) > 1) { + $path .= '/'; + } + return $path; + } + + /** + * Find the mount for $path + * + * @param $path + * @return Mount + */ + public static function find($path) { + $path = self::formatPath($path); + if (isset(self::$mounts[$path])) { + return self::$mounts[$path]; + } + + \OC_Hook::emit('OC_Filesystem', 'get_mountpoint', array('path' => $path)); + $foundMountPoint = ''; + $mountPoints = array_keys(self::$mounts); + foreach ($mountPoints as $mountpoint) { + if (strpos($path, $mountpoint) === 0 and strlen($mountpoint) > strlen($foundMountPoint)) { + $foundMountPoint = $mountpoint; + } + } + if (isset(self::$mounts[$foundMountPoint])) { + return self::$mounts[$foundMountPoint]; + } else { + return null; + } + } + + /** + * Find all mounts in $path + * + * @param $path + * @return Mount[] + */ + public static function findIn($path) { + $path = self::formatPath($path); + $result = array(); + $pathLength = strlen($path); + $mountPoints = array_keys(self::$mounts); + foreach ($mountPoints as $mountPoint) { + if (substr($mountPoint, 0, $pathLength) === $path and strlen($mountPoint) > $pathLength) { + $result[] = self::$mounts[$mountPoint]; + } + } + return $result; + } + + public static function clear() { + self::$mounts = array(); + } + + /** + * @param string $id + * @return \OC\Files\Storage\Storage[] + */ + public static function findById($id) { + $result = array(); + foreach (self::$mounts as $mount) { + if ($mount->getStorageId() === $id) { + $result[] = $mount; + } + } + return $result; + } +} diff --git a/lib/filestorage/common.php b/lib/files/storage/common.php similarity index 51% rename from lib/filestorage/common.php rename to lib/files/storage/common.php index b97eb79d8d4..591803f0440 100644 --- a/lib/filestorage/common.php +++ b/lib/files/storage/common.php @@ -1,51 +1,34 @@ . -*/ + * Copyright (c) 2012 Robin Appelman + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Storage; /** * Storage backend class for providing common filesystem operation methods * which are not storage-backend specific. * - * OC_Filestorage_Common is never used directly; it is extended by all other + * \OC\Files\Storage\Common is never used directly; it is extended by all other * storage backends, where its methods may be overridden, and additional * (backend-specific) methods are defined. * - * Some OC_Filestorage_Common methods call functions which are first defined + * Some \OC\Files\Storage\Common methods call functions which are first defined * in classes which extend it, e.g. $this->stat() . */ -abstract class OC_Filestorage_Common extends OC_Filestorage { +abstract class Common implements \OC\Files\Storage\Storage { public function __construct($parameters) {} -// abstract public function mkdir($path); -// abstract public function rmdir($path); -// abstract public function opendir($path); public function is_dir($path) { return $this->filetype($path)=='dir'; } public function is_file($path) { return $this->filetype($path)=='file'; } -// abstract public function stat($path); -// abstract public function filetype($path); public function filesize($path) { if($this->is_dir($path)) { return 0;//by definition @@ -55,29 +38,40 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { } } public function isCreatable($path) { - return $this->isUpdatable($path); + if ($this->is_dir($path) && $this->isUpdatable($path)) { + return true; + } + return false; } -// abstract public function isReadable($path); -// abstract public function isUpdatable($path); public function isDeletable($path) { return $this->isUpdatable($path); } public function isSharable($path) { return $this->isReadable($path); } -// abstract public function file_exists($path); - public function filectime($path) { - $stat = $this->stat($path); - return $stat['ctime']; + public function getPermissions($path){ + $permissions = 0; + if($this->isCreatable($path)){ + $permissions |= \OCP\PERMISSION_CREATE; + } + if($this->isReadable($path)){ + $permissions |= \OCP\PERMISSION_READ; + } + if($this->isUpdatable($path)){ + $permissions |= \OCP\PERMISSION_UPDATE; + } + if($this->isDeletable($path)){ + $permissions |= \OCP\PERMISSION_DELETE; + } + if($this->isSharable($path)){ + $permissions |= \OCP\PERMISSION_SHARE; + } + return $permissions; } public function filemtime($path) { $stat = $this->stat($path); return $stat['mtime']; } - public function fileatime($path) { - $stat = $this->stat($path); - return $stat['atime']; - } public function file_get_contents($path) { $handle = $this->fopen($path, "r"); if(!$handle) { @@ -89,94 +83,58 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { } return fread($handle, $size); } - public function file_put_contents($path, $data) { + public function file_put_contents($path,$data) { $handle = $this->fopen($path, "w"); return fwrite($handle, $data); } -// abstract public function unlink($path); - public function rename($path1, $path2) { - if($this->copy($path1, $path2)) { + public function rename($path1,$path2) { + if($this->copy($path1,$path2)) { return $this->unlink($path1); }else{ return false; } } - public function copy($path1, $path2) { - $source=$this->fopen($path1, 'r'); - $target=$this->fopen($path2, 'w'); - $count=OC_Helper::streamCopy($source, $target); + public function copy($path1,$path2) { + $source=$this->fopen($path1,'r'); + $target=$this->fopen($path2,'w'); + $count=\OC_Helper::streamCopy($source,$target); return $count>0; } -// abstract public function fopen($path, $mode); /** * @brief Deletes all files and folders recursively within a directory - * @param $directory The directory whose contents will be deleted - * @param $empty Flag indicating whether directory will be emptied - * @returns true/false + * @param string $directory The directory whose contents will be deleted + * @param bool $empty Flag indicating whether directory will be emptied + * @returns bool * * @note By default the directory specified by $directory will be * deleted together with its contents. To avoid this set $empty to true */ public function deleteAll( $directory, $empty = false ) { - - // strip leading slash - if( substr( $directory, 0, 1 ) == "/" ) { - - $directory = substr( $directory, 1 ); - - } - - // strip trailing slash - if( substr( $directory, -1) == "/" ) { - - $directory = substr( $directory, 0, -1 ); - - } + $directory = trim($directory,'/'); if ( !$this->file_exists( \OCP\USER::getUser() . '/' . $directory ) || !$this->is_dir( \OCP\USER::getUser() . '/' . $directory ) ) { - return false; - - } elseif( !$this->is_readable( \OCP\USER::getUser() . '/' . $directory ) ) { - + } elseif( !$this->isReadable( \OCP\USER::getUser() . '/' . $directory ) ) { return false; - } else { - $directoryHandle = $this->opendir( \OCP\USER::getUser() . '/' . $directory ); - while ( $contents = readdir( $directoryHandle ) ) { - if ( $contents != '.' && $contents != '..') { - $path = $directory . "/" . $contents; - if ( $this->is_dir( $path ) ) { - - deleteAll( $path ); - + $this->deleteAll( $path ); } else { - $this->unlink( \OCP\USER::getUser() .'/' . $path ); // TODO: make unlink use same system path as is_dir - } } - } - //$this->closedir( $directoryHandle ); // TODO: implement closedir in OC_FSV - if ( $empty == false ) { - if ( !$this->rmdir( $directory ) ) { - - return false; - + return false; } - } - return true; } @@ -188,73 +146,71 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { if($this->is_dir($path)) { return 'httpd/unix-directory'; } - $source=$this->fopen($path, 'r'); + $source=$this->fopen($path,'r'); if(!$source) { return false; } - $head=fread($source, 8192);//8kb should suffice to determine a mimetype - if($pos=strrpos($path, '.')) { - $extension=substr($path, $pos); + $head=fread($source,8192);//8kb should suffice to determine a mimetype + if($pos=strrpos($path,'.')) { + $extension=substr($path,$pos); }else{ $extension=''; } - $tmpFile=OC_Helper::tmpFile($extension); - file_put_contents($tmpFile, $head); - $mime=OC_Helper::getMimeType($tmpFile); + $tmpFile=\OC_Helper::tmpFile($extension); + file_put_contents($tmpFile,$head); + $mime=\OC_Helper::getMimeType($tmpFile); unlink($tmpFile); return $mime; } - public function hash($type, $path, $raw = false) { - $tmpFile=$this->getLocalFile(); - $hash=hash($type, $tmpFile, $raw); + public function hash($type,$path,$raw = false) { + $tmpFile=$this->getLocalFile($path); + $hash=hash($type,$tmpFile,$raw); unlink($tmpFile); return $hash; } -// abstract public function free_space($path); public function search($query) { return $this->searchInDir($query); } public function getLocalFile($path) { return $this->toTmpFile($path); } - private function toTmpFile($path) {//no longer in the storage api, still usefull here - $source=$this->fopen($path, 'r'); + private function toTmpFile($path) {//no longer in the storage api, still useful here + $source=$this->fopen($path,'r'); if(!$source) { return false; } - if($pos=strrpos($path, '.')) { - $extension=substr($path, $pos); + if($pos=strrpos($path,'.')) { + $extension=substr($path,$pos); }else{ $extension=''; } - $tmpFile=OC_Helper::tmpFile($extension); - $target=fopen($tmpFile, 'w'); - OC_Helper::streamCopy($source, $target); + $tmpFile=\OC_Helper::tmpFile($extension); + $target=fopen($tmpFile,'w'); + \OC_Helper::streamCopy($source,$target); return $tmpFile; } public function getLocalFolder($path) { - $baseDir=OC_Helper::tmpFolder(); - $this->addLocalFolder($path, $baseDir); + $baseDir=\OC_Helper::tmpFolder(); + $this->addLocalFolder($path,$baseDir); return $baseDir; } - private function addLocalFolder($path, $target) { + private function addLocalFolder($path,$target) { if($dh=$this->opendir($path)) { while($file=readdir($dh)) { if($file!=='.' and $file!=='..') { if($this->is_dir($path.'/'.$file)) { mkdir($target.'/'.$file); - $this->addLocalFolder($path.'/'.$file, $target.'/'.$file); + $this->addLocalFolder($path.'/'.$file,$target.'/'.$file); }else{ $tmp=$this->toTmpFile($path.'/'.$file); - rename($tmp, $target.'/'.$file); + rename($tmp,$target.'/'.$file); } } } } } -// abstract public function touch($path, $mtime=null); - protected function searchInDir($query, $dir='') { + protected function searchInDir($query,$dir='') { $files=array(); $dh=$this->opendir($dir); if($dh) { @@ -264,7 +220,7 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { $files[]=$dir.'/'.$item; } if($this->is_dir($dir.'/'.$item)) { - $files=array_merge($files, $this->searchInDir($query, $dir.'/'.$item)); + $files=array_merge($files,$this->searchInDir($query,$dir.'/'.$item)); } } } @@ -273,19 +229,52 @@ abstract class OC_Filestorage_Common extends OC_Filestorage { /** * check if a file or folder has been updated since $time + * @param string $path * @param int $time * @return bool */ - public function hasUpdated($path, $time) { + public function hasUpdated($path,$time) { return $this->filemtime($path)>$time; } + public function getCache($path=''){ + return new \OC\Files\Cache\Cache($this); + } + + public function getScanner($path=''){ + return new \OC\Files\Cache\Scanner($this); + } + + public function getPermissionsCache($path=''){ + return new \OC\Files\Cache\Permissions($this); + } + + public function getWatcher($path=''){ + return new \OC\Files\Cache\Watcher($this); + } + /** * get the owner of a path - * @param $path The path to get the owner + * @param string $path The path to get the owner * @return string uid or false */ public function getOwner($path) { - return OC_User::getUser(); + return \OC_User::getUser(); + } + + /** + * get the ETag for a file or folder + * + * @param string $path + * @return string + */ + public function getETag($path){ + $ETagFunction = \OC_Connector_Sabre_Node::$ETagFunction; + if($ETagFunction) { + $hash = call_user_func($ETagFunction, $path); + return $hash; + }else{ + return uniqid(); + } } } diff --git a/lib/filestorage/commontest.php b/lib/files/storage/commontest.php similarity index 85% rename from lib/filestorage/commontest.php rename to lib/files/storage/commontest.php index 3b038b3fda9..fbdb7fbf110 100644 --- a/lib/filestorage/commontest.php +++ b/lib/files/storage/commontest.php @@ -22,20 +22,25 @@ */ /** - * test implementation for OC_FileStorage_Common with OC_FileStorage_Local + * test implementation for \OC\Files\Storage\Common with \OC\Files\Storage\Local */ -class OC_Filestorage_CommonTest extends OC_Filestorage_Common{ +namespace OC\Files\Storage; + +class CommonTest extends \OC\Files\Storage\Common{ /** * underlying local storage used for missing functions - * @var OC_FileStorage_Local + * @var \OC\Files\Storage\Local */ private $storage; public function __construct($params) { - $this->storage=new OC_Filestorage_Local($params); + $this->storage=new \OC\Files\Storage\Local($params); } + public function getId(){ + return 'test::'.$this->storage->getId(); + } public function mkdir($path) { return $this->storage->mkdir($path); } diff --git a/lib/filestorage/local.php b/lib/files/storage/local.php similarity index 88% rename from lib/filestorage/local.php rename to lib/files/storage/local.php index 4a4019a3224..a5db4ba9194 100644 --- a/lib/filestorage/local.php +++ b/lib/files/storage/local.php @@ -1,8 +1,17 @@ + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Storage; + /** * for local filestore, we only have to map the paths */ -class OC_Filestorage_Local extends OC_Filestorage_Common{ +class Local extends \OC\Files\Storage\Common{ protected $datadir; public function __construct($arguments) { $this->datadir=$arguments['datadir']; @@ -10,6 +19,9 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ $this->datadir.='/'; } } + public function getId(){ + return 'local::'.$this->datadir; + } public function mkdir($path) { return @mkdir($this->datadir.$path); } @@ -20,7 +32,7 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ return opendir($this->datadir.$path); } public function is_dir($path) { - if(substr($path, -1)=='/') { + if(substr($path,-1)=='/') { $path=substr($path, 0, -1); } return is_dir($this->datadir.$path); @@ -68,9 +80,6 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ public function file_exists($path) { return file_exists($this->datadir.$path); } - public function filectime($path) { - return filectime($this->datadir.$path); - } public function filemtime($path) { return filemtime($this->datadir.$path); } @@ -100,11 +109,11 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ } public function rename($path1, $path2) { if (!$this->isUpdatable($path1)) { - OC_Log::write('core', 'unable to rename, file is not writable : '.$path1, OC_Log::ERROR); + \OC_Log::write('core','unable to rename, file is not writable : '.$path1,\OC_Log::ERROR); return false; } if(! $this->file_exists($path1)) { - OC_Log::write('core', 'unable to rename, file does not exists : '.$path1, OC_Log::ERROR); + \OC_Log::write('core','unable to rename, file does not exists : '.$path1,\OC_Log::ERROR); return false; } @@ -143,7 +152,7 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ public function getMimeType($path) { if($this->isReadable($path)) { - return OC_Helper::getMimeType($this->datadir.$path); + return \OC_Helper::getMimeType($this->datadir . $path); }else{ return false; } @@ -175,7 +184,7 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ // Windows OS: we use COM to access the filesystem if (strpos($name, 'win') !== false) { if (class_exists('COM')) { - $fsobj = new COM("Scripting.FileSystemObject"); + $fsobj = new \COM("Scripting.FileSystemObject"); $f = $fsobj->GetFile($fullPath); return $f->Size; } @@ -188,7 +197,7 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{ return (float)exec('stat -c %s ' . escapeshellarg($fullPath)); } } else { - OC_Log::write('core', 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name, OC_Log::ERROR); + \OC_Log::write('core', 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name, \OC_Log::ERROR); } return 0; diff --git a/lib/files/storage/storage.php b/lib/files/storage/storage.php new file mode 100644 index 00000000000..2cc835236ba --- /dev/null +++ b/lib/files/storage/storage.php @@ -0,0 +1,88 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Storage; + +/** + * Provide a common interface to all different storage options + */ +interface Storage{ + public function __construct($parameters); + public function getId(); + public function mkdir($path); + public function rmdir($path); + public function opendir($path); + public function is_dir($path); + public function is_file($path); + public function stat($path); + public function filetype($path); + public function filesize($path); + public function isCreatable($path); + public function isReadable($path); + public function isUpdatable($path); + public function isDeletable($path); + public function isSharable($path); + public function getPermissions($path); + public function file_exists($path); + public function filemtime($path); + public function file_get_contents($path); + public function file_put_contents($path,$data); + public function unlink($path); + public function rename($path1,$path2); + public function copy($path1,$path2); + public function fopen($path,$mode); + public function getMimeType($path); + public function hash($type,$path,$raw = false); + public function free_space($path); + public function search($query); + public function touch($path, $mtime=null); + public function getLocalFile($path);// get a path to a local version of the file, whether the original file is local or remote + public function getLocalFolder($path);// get a path to a local version of the folder, whether the original file is local or remote + /** + * check if a file or folder has been updated since $time + * @param int $time + * @return bool + * + * hasUpdated for folders should return at least true if a file inside the folder is add, removed or renamed. + * returning true for other changes in the folder is optional + */ + public function hasUpdated($path,$time); + + /** + * @param string $path + * @return \OC\Files\Cache\Cache + */ + public function getCache($path=''); + /** + * @param string $path + * @return \OC\Files\Cache\Scanner + */ + public function getScanner($path=''); + + public function getOwner($path); + + /** + * @param string $path + * @return \OC\Files\Cache\Permissions + */ + public function getPermissionsCache($path=''); + + /** + * @param string $path + * @return \OC\Files\Cache\Watcher + */ + public function getWatcher($path=''); + + /** + * get the ETag for a file or folder + * + * @param string $path + * @return string + */ + public function getETag($path); +} diff --git a/lib/files/storage/temporary.php b/lib/files/storage/temporary.php new file mode 100644 index 00000000000..ffc55e27507 --- /dev/null +++ b/lib/files/storage/temporary.php @@ -0,0 +1,26 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Storage; + +/** + * local storage backnd in temporary folder for testing purpores + */ +class Temporary extends Local{ + public function __construct($arguments) { + $this->datadir=\OC_Helper::tmpFolder(); + } + + public function cleanUp() { + \OC_Helper::rmdirr($this->datadir); + } + + public function __destruct() { + $this->cleanUp(); + } +} diff --git a/lib/files/stream/close.php b/lib/files/stream/close.php new file mode 100644 index 00000000000..80de3497c36 --- /dev/null +++ b/lib/files/stream/close.php @@ -0,0 +1,100 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Stream; + +/** + * stream wrapper that provides a callback on stream close + */ +class Close { + private static $callBacks = array(); + private $path = ''; + private $source; + private static $open = array(); + + public function stream_open($path, $mode, $options, &$opened_path) { + $path = substr($path, strlen('close://')); + $this->path = $path; + $this->source = fopen($path, $mode); + if (is_resource($this->source)) { + $this->meta = stream_get_meta_data($this->source); + } + self::$open[] = $path; + return is_resource($this->source); + } + + public function stream_seek($offset, $whence = SEEK_SET) { + fseek($this->source, $offset, $whence); + } + + public function stream_tell() { + return ftell($this->source); + } + + public function stream_read($count) { + return fread($this->source, $count); + } + + public function stream_write($data) { + return fwrite($this->source, $data); + } + + public function stream_set_option($option, $arg1, $arg2) { + switch ($option) { + case STREAM_OPTION_BLOCKING: + stream_set_blocking($this->source, $arg1); + break; + case STREAM_OPTION_READ_TIMEOUT: + stream_set_timeout($this->source, $arg1, $arg2); + break; + case STREAM_OPTION_WRITE_BUFFER: + stream_set_write_buffer($this->source, $arg1, $arg2); + } + } + + public function stream_stat() { + return fstat($this->source); + } + + public function stream_lock($mode) { + flock($this->source, $mode); + } + + public function stream_flush() { + return fflush($this->source); + } + + public function stream_eof() { + return feof($this->source); + } + + public function url_stat($path) { + $path = substr($path, strlen('close://')); + if (file_exists($path)) { + return stat($path); + } else { + return false; + } + } + + public function stream_close() { + fclose($this->source); + if (isset(self::$callBacks[$this->path])) { + call_user_func(self::$callBacks[$this->path], $this->path); + } + } + + public function unlink($path) { + $path = substr($path, strlen('close://')); + return unlink($path); + } + + public static function registerCallback($path, $callback) { + self::$callBacks[$path] = $callback; + } +} diff --git a/lib/files/stream/dir.php b/lib/files/stream/dir.php new file mode 100644 index 00000000000..6ca884fc994 --- /dev/null +++ b/lib/files/stream/dir.php @@ -0,0 +1,47 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Stream; + +class Dir { + private static $dirs = array(); + private $name; + private $index; + + public function dir_opendir($path, $options) { + $this->name = substr($path, strlen('fakedir://')); + $this->index = 0; + if (!isset(self::$dirs[$this->name])) { + self::$dirs[$this->name] = array(); + } + return true; + } + + public function dir_readdir() { + if ($this->index >= count(self::$dirs[$this->name])) { + return false; + } + $filename = self::$dirs[$this->name][$this->index]; + $this->index++; + return $filename; + } + + public function dir_closedir() { + $this->name = ''; + return true; + } + + public function dir_rewinddir() { + $this->index = 0; + return true; + } + + public static function register($path, $content) { + self::$dirs[$path] = $content; + } +} diff --git a/lib/files/stream/oc.php b/lib/files/stream/oc.php new file mode 100644 index 00000000000..88e7e062df9 --- /dev/null +++ b/lib/files/stream/oc.php @@ -0,0 +1,129 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Stream; + +/** + * a stream wrappers for ownCloud's virtual filesystem + */ +class OC { + /** + * @var \OC\Files\View + */ + static private $rootView; + + private $path; + private $dirSource; + private $fileSource; + private $meta; + + private function setup(){ + if (!self::$rootView) { + self::$rootView = new \OC\Files\View(''); + } + } + + public function stream_open($path, $mode, $options, &$opened_path) { + $this->setup(); + $path = substr($path, strlen('oc://')); + $this->path = $path; + $this->fileSource = self::$rootView->fopen($path, $mode); + if (is_resource($this->fileSource)) { + $this->meta = stream_get_meta_data($this->fileSource); + } + return is_resource($this->fileSource); + } + + public function stream_seek($offset, $whence = SEEK_SET) { + fseek($this->fileSource, $offset, $whence); + } + + public function stream_tell() { + return ftell($this->fileSource); + } + + public function stream_read($count) { + return fread($this->fileSource, $count); + } + + public function stream_write($data) { + return fwrite($this->fileSource, $data); + } + + public function stream_set_option($option, $arg1, $arg2) { + switch ($option) { + case STREAM_OPTION_BLOCKING: + stream_set_blocking($this->fileSource, $arg1); + break; + case STREAM_OPTION_READ_TIMEOUT: + stream_set_timeout($this->fileSource, $arg1, $arg2); + break; + case STREAM_OPTION_WRITE_BUFFER: + stream_set_write_buffer($this->fileSource, $arg1, $arg2); + } + } + + public function stream_stat() { + return fstat($this->fileSource); + } + + public function stream_lock($mode) { + flock($this->fileSource, $mode); + } + + public function stream_flush() { + return fflush($this->fileSource); + } + + public function stream_eof() { + return feof($this->fileSource); + } + + public function url_stat($path) { + $this->setup(); + $path = substr($path, strlen('oc://')); + if (self::$rootView->file_exists($path)) { + return self::$rootView->stat($path); + } else { + return false; + } + } + + public function stream_close() { + fclose($this->fileSource); + } + + public function unlink($path) { + $this->setup(); + $path = substr($path, strlen('oc://')); + return self::$rootView->unlink($path); + } + + public function dir_opendir($path, $options) { + $this->setup(); + $path = substr($path, strlen('oc://')); + $this->path = $path; + $this->dirSource = self::$rootView->opendir($path); + if (is_resource($this->dirSource)) { + $this->meta = stream_get_meta_data($this->dirSource); + } + return is_resource($this->dirSource); + } + + public function dir_readdir() { + return readdir($this->dirSource); + } + + public function dir_closedir() { + closedir($this->dirSource); + } + + public function dir_rewinddir() { + rewinddir($this->dirSource); + } +} diff --git a/lib/streamwrappers.php b/lib/files/stream/staticstream.php similarity index 57% rename from lib/streamwrappers.php rename to lib/files/stream/staticstream.php index 981c280f0dd..7725a6a5a04 100644 --- a/lib/streamwrappers.php +++ b/lib/files/stream/staticstream.php @@ -1,54 +1,30 @@ + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ -class OC_FakeDirStream{ - public static $dirs=array(); - private $name; - private $index; +namespace OC\Files\Stream; - public function dir_opendir($path, $options) { - $this->name=substr($path, strlen('fakedir://')); - $this->index=0; - if(!isset(self::$dirs[$this->name])) { - self::$dirs[$this->name]=array(); - } - return true; - } - - public function dir_readdir() { - if($this->index>=count(self::$dirs[$this->name])) { - return false; - } - $filename=self::$dirs[$this->name][$this->index]; - $this->index++; - return $filename; - } - - public function dir_closedir() { - $this->name=''; - return true; - } - - public function dir_rewinddir() { - $this->index=0; - return true; - } -} - -class OC_StaticStreamWrapper { +class StaticStream { public $context; protected static $data = array(); - protected $path = ''; + protected $path = ''; protected $pointer = 0; protected $writable = false; - public function stream_close() {} + public function stream_close() { + } public function stream_eof() { return $this->pointer >= strlen(self::$data[$this->path]); } - public function stream_flush() {} + public function stream_flush() { + } public function stream_open($path, $mode, $options, &$opened_path) { switch ($mode[0]) { @@ -213,89 +189,3 @@ class OC_StaticStreamWrapper { return false; } } - -/** - * stream wrapper that provides a callback on stream close - */ -class OC_CloseStreamWrapper{ - public static $callBacks=array(); - private $path=''; - private $source; - private static $open=array(); - public function stream_open($path, $mode, $options, &$opened_path) { - $path=substr($path, strlen('close://')); - $this->path=$path; - $this->source=fopen($path, $mode); - if(is_resource($this->source)) { - $this->meta=stream_get_meta_data($this->source); - } - self::$open[]=$path; - return is_resource($this->source); - } - - public function stream_seek($offset, $whence=SEEK_SET) { - fseek($this->source, $offset, $whence); - } - - public function stream_tell() { - return ftell($this->source); - } - - public function stream_read($count) { - return fread($this->source, $count); - } - - public function stream_write($data) { - return fwrite($this->source, $data); - } - - public function stream_set_option($option, $arg1, $arg2) { - switch($option) { - case STREAM_OPTION_BLOCKING: - stream_set_blocking($this->source, $arg1); - break; - case STREAM_OPTION_READ_TIMEOUT: - stream_set_timeout($this->source, $arg1, $arg2); - break; - case STREAM_OPTION_WRITE_BUFFER: - stream_set_write_buffer($this->source, $arg1, $arg2); - } - } - - public function stream_stat() { - return fstat($this->source); - } - - public function stream_lock($mode) { - flock($this->source, $mode); - } - - public function stream_flush() { - return fflush($this->source); - } - - public function stream_eof() { - return feof($this->source); - } - - public function url_stat($path) { - $path=substr($path, strlen('close://')); - if(file_exists($path)) { - return stat($path); - }else{ - return false; - } - } - - public function stream_close() { - fclose($this->source); - if(isset(self::$callBacks[$this->path])) { - call_user_func(self::$callBacks[$this->path], $this->path); - } - } - - public function unlink($path) { - $path=substr($path, strlen('close://')); - return unlink($path); - } -} diff --git a/lib/files/view.php b/lib/files/view.php new file mode 100644 index 00000000000..dfcb770328b --- /dev/null +++ b/lib/files/view.php @@ -0,0 +1,974 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +/** + * Class to provide access to ownCloud filesystem via a "view", and methods for + * working with files within that view (e.g. read, write, delete, etc.). Each + * view is restricted to a set of directories via a virtual root. The default view + * uses the currently logged in user's data directory as root (parts of + * OC_Filesystem are merely a wrapper for OC_FilesystemView). + * + * Apps that need to access files outside of the user data folders (to modify files + * belonging to a user other than the one currently logged in, for example) should + * use this class directly rather than using OC_Filesystem, or making use of PHP's + * built-in file manipulation functions. This will ensure all hooks and proxies + * are triggered correctly. + * + * Filesystem functions are not called directly; they are passed to the correct + * \OC\Files\Storage\Storage object + */ + +namespace OC\Files; + +class View { + private $fakeRoot = ''; + private $internal_path_cache = array(); + private $storage_cache = array(); + + public function __construct($root) { + $this->fakeRoot = $root; + } + + public function getAbsolutePath($path = '/') { + if (!$path) { + $path = '/'; + } + if ($path[0] !== '/') { + $path = '/' . $path; + } + return $this->fakeRoot . $path; + } + + /** + * change the root to a fake root + * + * @param string $fakeRoot + * @return bool + */ + public function chroot($fakeRoot) { + if (!$fakeRoot == '') { + if ($fakeRoot[0] !== '/') { + $fakeRoot = '/' . $fakeRoot; + } + } + $this->fakeRoot = $fakeRoot; + } + + /** + * get the fake root + * + * @return string + */ + public function getRoot() { + return $this->fakeRoot; + } + + /** + * get path relative to the root of the view + * + * @param string $path + * @return string + */ + public function getRelativePath($path) { + if ($this->fakeRoot == '') { + return $path; + } + if (strpos($path, $this->fakeRoot) !== 0) { + return null; + } else { + $path = substr($path, strlen($this->fakeRoot)); + if (strlen($path) === 0) { + return '/'; + } else { + return $path; + } + } + } + + /** + * get the mountpoint of the storage object for a path + ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + * + * @param string $path + * @return string + */ + public function getMountPoint($path) { + return Filesystem::getMountPoint($this->getAbsolutePath($path)); + } + + /** + * resolve a path to a storage and internal path + * + * @param string $path + * @return array consisting of the storage and the internal path + */ + public function resolvePath($path) { + return Filesystem::resolvePath($this->getAbsolutePath($path)); + } + + /** + * return the path to a local version of the file + * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * + * @param string $path + * @return string + */ + public function getLocalFile($path) { + $parent = substr($path, 0, strrpos($path, '/')); + $path = $this->getAbsolutePath($path); + list($storage, $internalPath) = Filesystem::resolvePath($path); + if (Filesystem::isValidPath($parent) and $storage) { + return $storage->getLocalFile($internalPath); + } else { + return null; + } + } + + /** + * @param string $path + * @return string + */ + public function getLocalFolder($path) { + $parent = substr($path, 0, strrpos($path, '/')); + $path = $this->getAbsolutePath($path); + list($storage, $internalPath) = Filesystem::resolvePath($path); + if (Filesystem::isValidPath($parent) and $storage) { + return $storage->getLocalFolder($internalPath); + } else { + return null; + } + } + + /** + * the following functions operate with arguments and return values identical + * to those of their PHP built-in equivalents. Mostly they are merely wrappers + * for \OC\Files\Storage\Storage via basicOperation(). + */ + public function mkdir($path) { + return $this->basicOperation('mkdir', $path, array('create', 'write')); + } + + public function rmdir($path) { + return $this->basicOperation('rmdir', $path, array('delete')); + } + + public function opendir($path) { + return $this->basicOperation('opendir', $path, array('read')); + } + + public function readdir($handle) { + $fsLocal = new Storage\Local(array('datadir' => '/')); + return $fsLocal->readdir($handle); + } + + public function is_dir($path) { + if ($path == '/') { + return true; + } + return $this->basicOperation('is_dir', $path); + } + + public function is_file($path) { + if ($path == '/') { + return false; + } + return $this->basicOperation('is_file', $path); + } + + public function stat($path) { + return $this->basicOperation('stat', $path); + } + + public function filetype($path) { + return $this->basicOperation('filetype', $path); + } + + public function filesize($path) { + return $this->basicOperation('filesize', $path); + } + + public function readfile($path) { + @ob_end_clean(); + $handle = $this->fopen($path, 'rb'); + if ($handle) { + $chunkSize = 8192; // 8 MB chunks + while (!feof($handle)) { + echo fread($handle, $chunkSize); + flush(); + } + $size = $this->filesize($path); + return $size; + } + return false; + } + + public function isCreatable($path) { + return $this->basicOperation('isCreatable', $path); + } + + public function isReadable($path) { + return $this->basicOperation('isReadable', $path); + } + + public function isUpdatable($path) { + return $this->basicOperation('isUpdatable', $path); + } + + public function isDeletable($path) { + return $this->basicOperation('isDeletable', $path); + } + + public function isSharable($path) { + return $this->basicOperation('isSharable', $path); + } + + public function file_exists($path) { + if ($path == '/') { + return true; + } + return $this->basicOperation('file_exists', $path); + } + + public function filemtime($path) { + return $this->basicOperation('filemtime', $path); + } + + public function touch($path, $mtime = null) { + if (!is_null($mtime) and !is_numeric($mtime)) { + $mtime = strtotime($mtime); + } + return $this->basicOperation('touch', $path, array('write'), $mtime); + } + + public function file_get_contents($path) { + return $this->basicOperation('file_get_contents', $path, array('read')); + } + + public function file_put_contents($path, $data) { + if (is_resource($data)) { //not having to deal with streams in file_put_contents makes life easier + $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); + if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && Filesystem::isValidPath($path)) { + $path = $this->getRelativePath($absolutePath); + $exists = $this->file_exists($path); + $run = true; + if ($this->fakeRoot == Filesystem::getRoot()) { + if (!$exists) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_create, + array( + Filesystem::signal_param_path => $path, + Filesystem::signal_param_run => &$run + ) + ); + } + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_write, + array( + Filesystem::signal_param_path => $path, + Filesystem::signal_param_run => &$run + ) + ); + } + if (!$run) { + return false; + } + $target = $this->fopen($path, 'w'); + if ($target) { + $count = \OC_Helper::streamCopy($data, $target); + fclose($target); + fclose($data); + if ($this->fakeRoot == Filesystem::getRoot()) { + if (!$exists) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_create, + array(Filesystem::signal_param_path => $path) + ); + } + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_write, + array(Filesystem::signal_param_path => $path) + ); + } + \OC_FileProxy::runPostProxies('file_put_contents', $absolutePath, $count); + return $count > 0; + } else { + return false; + } + } else { + return false; + } + } else { + return $this->basicOperation('file_put_contents', $path, array('create', 'write'), $data); + } + } + + public function unlink($path) { + return $this->basicOperation('unlink', $path, array('delete')); + } + + public function deleteAll($directory, $empty = false) { + return $this->basicOperation('deleteAll', $directory, array('delete'), $empty); + } + + public function rename($path1, $path2) { + $postFix1 = (substr($path1, -1, 1) === '/') ? '/' : ''; + $postFix2 = (substr($path2, -1, 1) === '/') ? '/' : ''; + $absolutePath1 = Filesystem::normalizePath($this->getAbsolutePath($path1)); + $absolutePath2 = Filesystem::normalizePath($this->getAbsolutePath($path2)); + if (\OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2)) { + $path1 = $this->getRelativePath($absolutePath1); + $path2 = $this->getRelativePath($absolutePath2); + + if ($path1 == null or $path2 == null) { + return false; + } + $run = true; + if ($this->fakeRoot == Filesystem::getRoot()) { + \OC_Hook::emit( + Filesystem::CLASSNAME, Filesystem::signal_rename, + array( + Filesystem::signal_param_oldpath => $path1, + Filesystem::signal_param_newpath => $path2, + Filesystem::signal_param_run => &$run + ) + ); + } + if ($run) { + $mp1 = $this->getMountPoint($path1 . $postFix1); + $mp2 = $this->getMountPoint($path2 . $postFix2); + if ($mp1 == $mp2) { + list($storage, $internalPath1) = Filesystem::resolvePath($absolutePath1 . $postFix1); + list(, $internalPath2) = Filesystem::resolvePath($absolutePath2 . $postFix2); + if ($storage) { + $result = $storage->rename($internalPath1, $internalPath2); + } else { + $result = false; + } + } else { + $source = $this->fopen($path1 . $postFix1, 'r'); + $target = $this->fopen($path2 . $postFix2, 'w'); + $count = \OC_Helper::streamCopy($source, $target); + list($storage1, $internalPath1) = Filesystem::resolvePath($absolutePath1 . $postFix1); + $storage1->unlink($internalPath1); + $result = $count > 0; + } + if ($this->fakeRoot == Filesystem::getRoot()) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_rename, + array( + Filesystem::signal_param_oldpath => $path1, + Filesystem::signal_param_newpath => $path2 + ) + ); + } + return $result; + } else { + return false; + } + } else { + return false; + } + } + + public function copy($path1, $path2) { + $postFix1 = (substr($path1, -1, 1) === '/') ? '/' : ''; + $postFix2 = (substr($path2, -1, 1) === '/') ? '/' : ''; + $absolutePath1 = Filesystem::normalizePath($this->getAbsolutePath($path1)); + $absolutePath2 = Filesystem::normalizePath($this->getAbsolutePath($path2)); + if (\OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2)) { + $path1 = $this->getRelativePath($absolutePath1); + $path2 = $this->getRelativePath($absolutePath2); + + if ($path1 == null or $path2 == null) { + return false; + } + $run = true; + $exists = $this->file_exists($path2); + if ($this->fakeRoot == Filesystem::getRoot()) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_copy, + array( + Filesystem::signal_param_oldpath => $path1, + Filesystem::signal_param_newpath => $path2, + Filesystem::signal_param_run => &$run + ) + ); + if ($run and !$exists) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_create, + array( + Filesystem::signal_param_path => $path2, + Filesystem::signal_param_run => &$run + ) + ); + } + if ($run) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_write, + array( + Filesystem::signal_param_path => $path2, + Filesystem::signal_param_run => &$run + ) + ); + } + } + if ($run) { + $mp1 = $this->getMountPoint($path1 . $postFix1); + $mp2 = $this->getMountPoint($path2 . $postFix2); + if ($mp1 == $mp2) { + list($storage, $internalPath1) = Filesystem::resolvePath($absolutePath1 . $postFix1); + list(, $internalPath2) = Filesystem::resolvePath($absolutePath2 . $postFix2); + if ($storage) { + $result = $storage->copy($internalPath1, $internalPath2); + } else { + $result = false; + } + } else { + $source = $this->fopen($path1 . $postFix1, 'r'); + $target = $this->fopen($path2 . $postFix2, 'w'); + $result = \OC_Helper::streamCopy($source, $target); + } + if ($this->fakeRoot == Filesystem::getRoot()) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_copy, + array( + Filesystem::signal_param_oldpath => $path1, + Filesystem::signal_param_newpath => $path2 + ) + ); + if (!$exists) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_create, + array(Filesystem::signal_param_path => $path2) + ); + } + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_write, + array(Filesystem::signal_param_path => $path2) + ); + } + return $result; + } else { + return false; + } + } else { + return false; + } + } + + public function fopen($path, $mode) { + $hooks = array(); + switch ($mode) { + case 'r': + case 'rb': + $hooks[] = 'read'; + break; + case 'r+': + case 'rb+': + case 'w+': + case 'wb+': + case 'x+': + case 'xb+': + case 'a+': + case 'ab+': + $hooks[] = 'read'; + $hooks[] = 'write'; + break; + case 'w': + case 'wb': + case 'x': + case 'xb': + case 'a': + case 'ab': + $hooks[] = 'write'; + break; + default: + \OC_Log::write('core', 'invalid mode (' . $mode . ') for ' . $path, \OC_Log::ERROR); + } + + return $this->basicOperation('fopen', $path, $hooks, $mode); + } + + public function toTmpFile($path) { + if (Filesystem::isValidPath($path)) { + $source = $this->fopen($path, 'r'); + if ($source) { + $extension = ''; + $extOffset = strpos($path, '.'); + if ($extOffset !== false) { + $extension = substr($path, strrpos($path, '.')); + } + $tmpFile = \OC_Helper::tmpFile($extension); + file_put_contents($tmpFile, $source); + return $tmpFile; + } else { + return false; + } + } else { + return false; + } + } + + public function fromTmpFile($tmpFile, $path) { + if (Filesystem::isValidPath($path)) { + if (!$tmpFile) { + debug_print_backtrace(); + } + $source = fopen($tmpFile, 'r'); + if ($source) { + $this->file_put_contents($path, $source); + unlink($tmpFile); + return true; + } else { + return false; + } + } else { + return false; + } + } + + public function getMimeType($path) { + return $this->basicOperation('getMimeType', $path); + } + + public function hash($type, $path, $raw = false) { + $postFix = (substr($path, -1, 1) === '/') ? '/' : ''; + $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); + if (\OC_FileProxy::runPreProxies('hash', $absolutePath) && Filesystem::isValidPath($path)) { + $path = $this->getRelativePath($absolutePath); + if ($path == null) { + return false; + } + if (Filesystem::$loaded && $this->fakeRoot == Filesystem::getRoot()) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_read, + array(Filesystem::signal_param_path => $path) + ); + } + list($storage, $internalPath) = Filesystem::resolvePath($absolutePath . $postFix); + if ($storage) { + $result = $storage->hash($type, $internalPath, $raw); + $result = \OC_FileProxy::runPostProxies('hash', $absolutePath, $result); + return $result; + } + } + return null; + } + + public function free_space($path = '/') { + return $this->basicOperation('free_space', $path); + } + + /** + * @brief abstraction layer for basic filesystem functions: wrapper for \OC\Files\Storage\Storage + * @param string $operation + * @param string $path + * @param array $hooks (optional) + * @param mixed $extraParam (optional) + * @return mixed + * + * This method takes requests for basic filesystem functions (e.g. reading & writing + * files), processes hooks and proxies, sanitises paths, and finally passes them on to + * \OC\Files\Storage\Storage for delegation to a storage backend for execution + */ + private function basicOperation($operation, $path, $hooks = array(), $extraParam = null) { + $postFix = (substr($path, -1, 1) === '/') ? '/' : ''; + $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); + if (\OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam) and Filesystem::isValidPath($path)) { + $path = $this->getRelativePath($absolutePath); + if ($path == null) { + return false; + } + $run = $this->runHooks($hooks, $path); + list($storage, $internalPath) = Filesystem::resolvePath($absolutePath . $postFix); + if ($run and $storage) { + if (!is_null($extraParam)) { + $result = $storage->$operation($internalPath, $extraParam); + } else { + $result = $storage->$operation($internalPath); + } + $result = \OC_FileProxy::runPostProxies($operation, $this->getAbsolutePath($path), $result); + if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot()) { + if ($operation != 'fopen') { //no post hooks for fopen, the file stream is still open + $this->runHooks($hooks, $path, true); + } + } + return $result; + } + } + return null; + } + + private function runHooks($hooks, $path, $post = false) { + $prefix = ($post) ? 'post_' : ''; + $run = true; + if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot()) { + foreach ($hooks as $hook) { + if ($hook != 'read') { + \OC_Hook::emit( + Filesystem::CLASSNAME, + $prefix . $hook, + array( + Filesystem::signal_param_run => &$run, + Filesystem::signal_param_path => $path + ) + ); + } elseif (!$post) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + $prefix . $hook, + array( + Filesystem::signal_param_path => $path + ) + ); + } + } + } + return $run; + } + + /** + * check if a file or folder has been updated since $time + * + * @param string $path + * @param int $time + * @return bool + */ + public function hasUpdated($path, $time) { + return $this->basicOperation('hasUpdated', $path, array(), $time); + } + + /** + * get the filesystem info + * + * @param string $path + * @return array + * + * returns an associative array with the following keys: + * - size + * - mtime + * - mimetype + * - encrypted + * - versioned + */ + public function getFileInfo($path) { + $data = array(); + if (!Filesystem::isValidPath($path)) { + return $data; + } + $path = Filesystem::normalizePath($this->fakeRoot . '/' . $path); + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = Filesystem::resolvePath($path); + if ($storage) { + $cache = $storage->getCache($internalPath); + $permissionsCache = $storage->getPermissionsCache($internalPath); + $user = \OC_User::getUser(); + + if (!$cache->inCache($internalPath)) { + $scanner = $storage->getScanner($internalPath); + $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW); + } else { + $watcher = $storage->getWatcher($internalPath); + $watcher->checkUpdate($internalPath); + } + + $data = $cache->get($internalPath); + + if ($data and $data['fileid']) { + if ($data['mimetype'] === 'httpd/unix-directory') { + //add the sizes of other mountpoints to the folder + $mountPoints = Filesystem::getMountPoints($path); + foreach ($mountPoints as $mountPoint) { + $subStorage = Filesystem::getStorage($mountPoint); + if ($subStorage) { + $subCache = $subStorage->getCache(''); + $rootEntry = $subCache->get(''); + $data['size'] += $rootEntry['size']; + } + } + } + + $permissions = $permissionsCache->get($data['fileid'], $user); + if ($permissions === -1) { + $permissions = $storage->getPermissions($internalPath); + $permissionsCache->set($data['fileid'], $user, $permissions); + } + $data['permissions'] = $permissions; + } + } + return $data; + } + + /** + * get the content of a directory + * + * @param string $directory path under datadirectory + * @return array + */ + public function getDirectoryContent($directory, $mimetype_filter = '') { + $result = array(); + if (!Filesystem::isValidPath($directory)) { + return $result; + } + $path = Filesystem::normalizePath($this->fakeRoot . '/' . $directory); + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = Filesystem::resolvePath($path); + if ($storage) { + $cache = $storage->getCache($internalPath); + $permissionsCache = $storage->getPermissionsCache($internalPath); + $user = \OC_User::getUser(); + + if ($cache->getStatus($internalPath) < Cache\Cache::COMPLETE) { + $scanner = $storage->getScanner($internalPath); + $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW); + } else { + $watcher = $storage->getWatcher($internalPath); + $watcher->checkUpdate($internalPath); + } + + $files = $cache->getFolderContents($internalPath); //TODO: mimetype_filter + + $ids = array(); + foreach ($files as $i => $file) { + $files[$i]['type'] = $file['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file'; + $ids[] = $file['fileid']; + + $permissions = $permissionsCache->get($file['fileid'], $user); + if ($permissions === -1) { + $permissions = $storage->getPermissions($file['path']); + $permissionsCache->set($file['fileid'], $user, $permissions); + } + $files[$i]['permissions'] = $permissions; + } + + //add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders + $mountPoints = Filesystem::getMountPoints($path); + $dirLength = strlen($path); + foreach ($mountPoints as $mountPoint) { + $subStorage = Filesystem::getStorage($mountPoint); + if ($subStorage) { + $subCache = $subStorage->getCache(''); + + if ($subCache->getStatus('') === Cache\Cache::NOT_FOUND) { + $subScanner = $subStorage->getScanner(''); + $subScanner->scanFile(''); + } + + $rootEntry = $subCache->get(''); + if ($rootEntry) { + $relativePath = trim(substr($mountPoint, $dirLength), '/'); + if ($pos = strpos($relativePath, '/')) { //mountpoint inside subfolder add size to the correct folder + $entryName = substr($relativePath, 0, $pos); + foreach ($files as &$entry) { + if ($entry['name'] === $entryName) { + $entry['size'] += $rootEntry['size']; + } + } + } else { //mountpoint in this folder, add an entry for it + $rootEntry['name'] = $relativePath; + $rootEntry['type'] = $rootEntry['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file'; + $subPermissionsCache = $subStorage->getPermissionsCache(''); + $permissions = $subPermissionsCache->get($rootEntry['fileid'], $user); + if ($permissions === -1) { + $permissions = $subStorage->getPermissions($rootEntry['path']); + $subPermissionsCache->set($rootEntry['fileid'], $user, $permissions); + } + $rootEntry['permissions'] = $permissions; + + //remove any existing entry with the same name + foreach ($files as $i => $file) { + if ($file['name'] === $rootEntry['name']) { + unset($files[$i]); + break; + } + } + $files[] = $rootEntry; + } + } + } + } + + if ($mimetype_filter) { + foreach ($files as $file) { + if (strpos($mimetype_filter, '/')) { + if ($file['mimetype'] === $mimetype_filter) { + $result[] = $file; + } + } else { + if ($file['mimepart'] === $mimetype_filter) { + $result[] = $file; + } + } + } + } else { + $result = $files; + } + } + return $result; + } + + /** + * change file metadata + * + * @param string $path + * @param array $data + * @return int + * + * returns the fileid of the updated file + */ + public function putFileInfo($path, $data) { + $path = Filesystem::normalizePath($this->fakeRoot . '/' . $path); + /** + * @var \OC\Files\Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = Filesystem::resolvePath($path); + if ($storage) { + $cache = $storage->getCache($path); + + if (!$cache->inCache($internalPath)) { + $scanner = $storage->getScanner($internalPath); + $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW); + } + + return $cache->put($internalPath, $data); + } else { + return -1; + } + } + + /** + * search for files with the name matching $query + * + * @param string $query + * @return array + */ + public function search($query) { + return $this->searchCommon('%' . $query . '%', 'search'); + } + + /** + * search for files by mimetype + * + * @param string $query + * @return array + */ + public function searchByMime($mimetype) { + return $this->searchCommon($mimetype, 'searchByMime'); + } + + /** + * @param string $query + * @param string $method + * @return array + */ + private function searchCommon($query, $method) { + $files = array(); + $rootLength = strlen($this->fakeRoot); + + $mountPoint = Filesystem::getMountPoint($this->fakeRoot); + $storage = Filesystem::getStorage($mountPoint); + if ($storage) { + $cache = $storage->getCache(''); + + $results = $cache->$method($query); + foreach ($results as $result) { + if (substr($mountPoint . $result['path'], 0, $rootLength) === $this->fakeRoot) { + $result['path'] = substr($mountPoint . $result['path'], $rootLength); + $files[] = $result; + } + } + + $mountPoints = Filesystem::getMountPoints($this->fakeRoot); + foreach ($mountPoints as $mountPoint) { + $storage = Filesystem::getStorage($mountPoint); + if ($storage) { + $cache = $storage->getCache(''); + + $relativeMountPoint = substr($mountPoint, $rootLength); + $results = $cache->$method($query); + foreach ($results as $result) { + $result['path'] = $relativeMountPoint . $result['path']; + $files[] = $result; + } + } + } + } + return $files; + } + + /** + * Get the owner for a file or folder + * + * @param string $path + * @return string + */ + public function getOwner($path) { + return $this->basicOperation('getOwner', $path); + } + + /** + * get the ETag for a file or folder + * + * @param string $path + * @return string + */ + public function getETag($path) { + /** + * @var Storage\Storage $storage + * @var string $internalPath + */ + list($storage, $internalPath) = $this->resolvePath($path); + if ($storage) { + return $storage->getETag($internalPath); + } else { + return null; + } + } + + /** + * Get the path of a file by id, relative to the view + * + * Note that the resulting path is not guarantied to be unique for the id, multiple paths can point to the same file + * + * @param int $id + * @return string + */ + public function getPath($id) { + list($storage, $internalPath) = Cache\Cache::getById($id); + $mounts = Mount::findById($storage); + foreach ($mounts as $mount) { + /** + * @var \OC\Files\Mount $mount + */ + $fullPath = $mount->getMountPoint() . $internalPath; + if (!is_null($path = $this->getRelativePath($fullPath))) { + return $path; + } + } + return null; + } +} diff --git a/lib/filestorage.php b/lib/filestorage.php deleted file mode 100644 index 2e03c4cb6da..00000000000 --- a/lib/filestorage.php +++ /dev/null @@ -1,67 +0,0 @@ -. -*/ - -/** - * Provide a common interface to all different storage options - */ -abstract class OC_Filestorage{ - abstract public function __construct($parameters); - abstract public function mkdir($path); - abstract public function rmdir($path); - abstract public function opendir($path); - abstract public function is_dir($path); - abstract public function is_file($path); - abstract public function stat($path); - abstract public function filetype($path); - abstract public function filesize($path); - abstract public function isCreatable($path); - abstract public function isReadable($path); - abstract public function isUpdatable($path); - abstract public function isDeletable($path); - abstract public function isSharable($path); - abstract public function file_exists($path); - abstract public function filectime($path); - abstract public function filemtime($path); - abstract public function file_get_contents($path); - abstract public function file_put_contents($path, $data); - abstract public function unlink($path); - abstract public function rename($path1, $path2); - abstract public function copy($path1, $path2); - abstract public function fopen($path, $mode); - abstract public function getMimeType($path); - abstract public function hash($type, $path, $raw = false); - abstract public function free_space($path); - abstract public function search($query); - abstract public function touch($path, $mtime=null); - abstract public function getLocalFile($path);// get a path to a local version of the file, whether the original file is local or remote - abstract public function getLocalFolder($path);// get a path to a local version of the folder, whether the original file is local or remote - /** - * check if a file or folder has been updated since $time - * @param int $time - * @return bool - * - * hasUpdated for folders should return at least true if a file inside the folder is add, removed or renamed. - * returning true for other changes in the folder is optional - */ - abstract public function hasUpdated($path, $time); - abstract public function getOwner($path); -} diff --git a/lib/filestorage/temporary.php b/lib/filestorage/temporary.php deleted file mode 100644 index 876ba045a63..00000000000 --- a/lib/filestorage/temporary.php +++ /dev/null @@ -1,17 +0,0 @@ -datadir=OC_Helper::tmpFolder(); - } - - public function cleanUp() { - OC_Helper::rmdirr($this->datadir); - } - - public function __destruct() { - $this->cleanUp(); - } -} diff --git a/lib/filesystem.php b/lib/filesystem.php index f185d777def..57cca902303 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -1,26 +1,11 @@ . -* -*/ - + * Copyright (c) 2012 Robin Appelman + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ /** * Class for abstraction of filesystem functions @@ -31,578 +16,397 @@ * read(path) * write(path, &run) * post_write(path) - * create(path, &run) (when a file is created, both create and write will be emited in that order) + * create(path, &run) (when a file is created, both create and write will be emitted in that order) * post_create(path) * delete(path, &run) * post_delete(path) - * rename(oldpath, newpath, &run) - * post_rename(oldpath, newpath) - * copy(oldpath, newpath, &run) (if the newpath doesn't exists yes, copy, create and write will be emited in that order) - * post_rename(oldpath, newpath) + * rename(oldpath,newpath, &run) + * post_rename(oldpath,newpath) + * copy(oldpath,newpath, &run) (if the newpath doesn't exists yes, copy, create and write will be emitted in that order) + * post_rename(oldpath,newpath) * - * the &run parameter can be set to false to prevent the operation from occuring + * the &run parameter can be set to false to prevent the operation from occurring */ -class OC_Filesystem{ - static private $storages=array(); - static private $mounts=array(); - static private $loadedUsers=array(); - public static $loaded=false; - /** - * @var OC_Filestorage $defaultInstance - */ - static private $defaultInstance; - - - /** - * classname which used for hooks handling - * used as signalclass in OC_Hooks::emit() - */ - const CLASSNAME = 'OC_Filesystem'; - - /** - * signalname emited before file renaming - * @param oldpath - * @param newpath - */ - const signal_rename = 'rename'; - - /** - * signal emited after file renaming - * @param oldpath - * @param newpath - */ - const signal_post_rename = 'post_rename'; - - /** - * signal emited before file/dir creation - * @param path - * @param run changing this flag to false in hook handler will cancel event - */ - const signal_create = 'create'; - - /** - * signal emited after file/dir creation - * @param path - * @param run changing this flag to false in hook handler will cancel event - */ - const signal_post_create = 'post_create'; - - /** - * signal emits before file/dir copy - * @param oldpath - * @param newpath - * @param run changing this flag to false in hook handler will cancel event - */ - const signal_copy = 'copy'; - - /** - * signal emits after file/dir copy - * @param oldpath - * @param newpath - */ - const signal_post_copy = 'post_copy'; - - /** - * signal emits before file/dir save - * @param path - * @param run changing this flag to false in hook handler will cancel event - */ - const signal_write = 'write'; - - /** - * signal emits after file/dir save - * @param path - */ - const signal_post_write = 'post_write'; - - /** - * signal emits when reading file/dir - * @param path - */ - const signal_read = 'read'; - - /** - * signal emits when removing file/dir - * @param path - */ - const signal_delete = 'delete'; - - /** - * parameters definitions for signals - */ - const signal_param_path = 'path'; - const signal_param_oldpath = 'oldpath'; - const signal_param_newpath = 'newpath'; - - /** - * run - changing this flag to false in hook handler will cancel event - */ - const signal_param_run = 'run'; - +/** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ +class OC_Filesystem { /** * get the mountpoint of the storage object for a path - ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account * - * @param string path - * @return string - */ - static public function getMountPoint($path) { - OC_Hook::emit(self::CLASSNAME, 'get_mountpoint', array('path'=>$path)); - if(!$path) { - $path='/'; - } - if($path[0]!=='/') { - $path='/'.$path; - } - $path=str_replace('//', '/', $path); - $foundMountPoint=''; - $mountPoints=array_keys(OC_Filesystem::$mounts); - foreach($mountPoints as $mountpoint) { - if($mountpoint==$path) { - return $mountpoint; - } - if(strpos($path, $mountpoint)===0 and strlen($mountpoint)>strlen($foundMountPoint)) { - $foundMountPoint=$mountpoint; - } - } - return $foundMountPoint; - } - - /** - * get the part of the path relative to the mountpoint of the storage it's stored in - * @param string path - * @return bool - */ - static public function getInternalPath($path) { - $mountPoint=self::getMountPoint($path); - $internalPath=substr($path, strlen($mountPoint)); - return $internalPath; - } - - static private function mountPointsLoaded($user) { - return in_array($user, self::$loadedUsers); - } - - /** - * get the storage object for a path - * @param string path - * @return OC_Filestorage - */ - static public function getStorage($path) { - $user = ltrim(substr($path, 0, strpos($path, '/', 1)), '/'); - // check mount points if file was shared from a different user - if ($user != OC_User::getUser() && !self::mountPointsLoaded($user)) { - OC_Util::loadUserMountPoints($user); - self::loadSystemMountPoints($user); - self::$loadedUsers[] = $user; - } - - $mountpoint=self::getMountPoint($path); - if($mountpoint) { - if(!isset(OC_Filesystem::$storages[$mountpoint])) { - $mount=OC_Filesystem::$mounts[$mountpoint]; - OC_Filesystem::$storages[$mountpoint]=OC_Filesystem::createStorage($mount['class'], $mount['arguments']); - } - return OC_Filesystem::$storages[$mountpoint]; - } - } - - static private function loadSystemMountPoints($user) { - if(is_file(OC::$SERVERROOT.'/config/mount.php')) { - $mountConfig=include OC::$SERVERROOT.'/config/mount.php'; - if(isset($mountConfig['global'])) { - foreach($mountConfig['global'] as $mountPoint=>$options) { - self::mount($options['class'], $options['options'], $mountPoint); - } - } - - if(isset($mountConfig['group'])) { - foreach($mountConfig['group'] as $group=>$mounts) { - if(OC_Group::inGroup($user, $group)) { - foreach($mounts as $mountPoint=>$options) { - $mountPoint=self::setUserVars($mountPoint, $user); - foreach($options as &$option) { - $option=self::setUserVars($option, $user); - } - self::mount($options['class'], $options['options'], $mountPoint); - } - } - } - } - - if(isset($mountConfig['user'])) { - foreach($mountConfig['user'] as $mountUser=>$mounts) { - if($user==='all' or strtolower($mountUser)===strtolower($user)) { - foreach($mounts as $mountPoint=>$options) { - $mountPoint=self::setUserVars($mountPoint, $user); - foreach($options as &$option) { - $option=self::setUserVars($option, $user); - } - self::mount($options['class'], $options['options'], $mountPoint); - } - } - } - } - - $mtime=filemtime(OC::$SERVERROOT.'/config/mount.php'); - $previousMTime=OC_Appconfig::getValue('files', 'mountconfigmtime', 0); - if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated - OC_FileCache::triggerUpdate(); - OC_Appconfig::setValue('files', 'mountconfigmtime', $mtime); - } - } - } - - static public function init($root, $user = '') { - if(self::$defaultInstance) { - return false; - } - self::$defaultInstance=new OC_FilesystemView($root); - - //load custom mount config - if (!isset($user)) { - $user = OC_User::getUser(); - } - self::loadSystemMountPoints($user); - - self::$loaded=true; - } - - /** - * fill in the correct values for $user, and $password placeholders - * @param string intput + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path * @return string */ - private static function setUserVars($input, $user) { - if (isset($user)) { - return str_replace('$user', $user, $input); - } else { - return str_replace('$user', OC_User::getUser(), $input); - } + static public function getMountPoint($path) { + return \OC\Files\Filesystem::getMountPoint($path); + } + + /** + * resolve a path to a storage and internal path + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path + * @return array consisting of the storage and the internal path + */ + static public function resolvePath($path) { + return \OC\Files\Filesystem::resolvePath($path); + } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ + static public function init($root) { + return \OC\Files\Filesystem::init($root); } /** * get the default filesystem view - * @return OC_FilesystemView + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @return \OC\Files\View */ static public function getView() { - return self::$defaultInstance; + return \OC\Files\Filesystem::getView(); } /** * tear down the filesystem, removing all storage providers + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem */ static public function tearDown() { - self::$storages=array(); - } - - /** - * create a new storage of a specific type - * @param string type - * @param array arguments - * @return OC_Filestorage - */ - static private function createStorage($class, $arguments) { - if(class_exists($class)) { - try { - return new $class($arguments); - } catch (Exception $exception) { - OC_Log::write('core', $exception->getMessage(), OC_Log::ERROR); - return false; - } - }else{ - OC_Log::write('core', 'storage backend '.$class.' not found', OC_Log::ERROR); - return false; - } - } - - /** - * change the root to a fake root - * @param string fakeRoot - * @return bool - */ - static public function chroot($fakeRoot) { - return self::$defaultInstance->chroot($fakeRoot); + \OC\Files\Filesystem::tearDown(); } /** * @brief get the relative path of the root data directory for the current user * @return string * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem * Returns path like /admin/files */ static public function getRoot() { - return self::$defaultInstance->getRoot(); + return \OC\Files\Filesystem::getRoot(); } /** * clear all mounts and storage backends + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem */ public static function clearMounts() { - self::$mounts=array(); - self::$storages=array(); + \OC\Files\Filesystem::clearMounts(); } /** - * mount an OC_Filestorage in our virtual filesystem - * @param OC_Filestorage storage - * @param string mountpoint - */ + * mount an \OC\Files\Storage\Storage in our virtual filesystem + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param \OC\Files\Storage\Storage $class + * @param array $arguments + * @param string $mountpoint + */ static public function mount($class, $arguments, $mountpoint) { - if($mountpoint[0]!='/') { - $mountpoint='/'.$mountpoint; - } - if(substr($mountpoint, -1)!=='/') { - $mountpoint=$mountpoint.'/'; - } - self::$mounts[$mountpoint]=array('class'=>$class, 'arguments'=>$arguments); + \OC\Files\Filesystem::mount($class, $arguments, $mountpoint); } /** - * return the path to a local version of the file - * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed - * @param string path - * @return string - */ + * return the path to a local version of the file + * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path + * @return string + */ static public function getLocalFile($path) { - return self::$defaultInstance->getLocalFile($path); + return \OC\Files\Filesystem::getLocalFile($path); } + /** - * @param string path + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path * @return string */ static public function getLocalFolder($path) { - return self::$defaultInstance->getLocalFolder($path); + return \OC\Files\Filesystem::getLocalFolder($path); } /** - * return path to file which reflects one visible in browser - * @param string path - * @return string - */ + * return path to file which reflects one visible in browser + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path + * @return string + */ static public function getLocalPath($path) { - $datadir = OC_User::getHome(OC_User::getUser()).'/files'; - $newpath = $path; - if (strncmp($newpath, $datadir, strlen($datadir)) == 0) { - $newpath = substr($path, strlen($datadir)); - } - return $newpath; + return \OC\Files\Filesystem::getLocalPath($path); } /** * check if the requested path is valid - * @param string path + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path * @return bool */ static public function isValidPath($path) { - $path = self::normalizePath($path); - if(!$path || $path[0]!=='/') { - $path='/'.$path; - } - if(strstr($path, '/../') || strrchr($path, '/') === '/..' ) { - return false; - } - if(self::isFileBlacklisted($path)) { - return false; - } - return true; + return \OC\Files\Filesystem::isValidPath($path); } /** - * checks if a file is blacklsited for storage in the filesystem + * checks if a file is blacklisted for storage in the filesystem * Listens to write and rename hooks + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem * @param array $data from hook */ static public function isBlacklisted($data) { - if (isset($data['path'])) { - $path = $data['path']; - } else if (isset($data['newpath'])) { - $path = $data['newpath']; - } - if (isset($path)) { - $data['run'] = !self::isFileBlacklisted($path); - } - } - - static public function isFileBlacklisted($path) { - $blacklist = array('.htaccess'); - $filename = strtolower(basename($path)); - return in_array($filename, $blacklist); + \OC\Files\Filesystem::isBlacklisted($data); } /** - * following functions are equivilent to their php buildin equivilents for arguments/return values. + * following functions are equivalent to their php builtin equivalents for arguments/return values. + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem */ static public function mkdir($path) { - return self::$defaultInstance->mkdir($path); + return \OC\Files\Filesystem::mkdir($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function rmdir($path) { - return self::$defaultInstance->rmdir($path); + return \OC\Files\Filesystem::rmdir($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function opendir($path) { - return self::$defaultInstance->opendir($path); + return \OC\Files\Filesystem::opendir($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function readdir($path) { - return self::$defaultInstance->readdir($path); + return \OC\Files\Filesystem::readdir($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function is_dir($path) { - return self::$defaultInstance->is_dir($path); + return \OC\Files\Filesystem::is_dir($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function is_file($path) { - return self::$defaultInstance->is_file($path); + return \OC\Files\Filesystem::is_file($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function stat($path) { - return self::$defaultInstance->stat($path); + return \OC\Files\Filesystem::stat($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function filetype($path) { - return self::$defaultInstance->filetype($path); + return \OC\Files\Filesystem::filetype($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function filesize($path) { - return self::$defaultInstance->filesize($path); + return \OC\Files\Filesystem::filesize($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function readfile($path) { - return self::$defaultInstance->readfile($path); + return \OC\Files\Filesystem::readfile($path); } + /** - * @deprecated Replaced by isReadable() as part of CRUDS - */ + * @deprecated Replaced by isReadable() as part of CRUDS + */ static public function is_readable($path) { - return self::$defaultInstance->is_readable($path); + return \OC\Files\Filesystem::isReadable($path); } + /** - * @deprecated Replaced by isCreatable(), isUpdatable(), isDeletable() as part of CRUDS - */ - static public function is_writable($path) { - return self::$defaultInstance->is_writable($path); - } + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function isCreatable($path) { - return self::$defaultInstance->isCreatable($path); + return \OC\Files\Filesystem::isCreatable($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function isReadable($path) { - return self::$defaultInstance->isReadable($path); + return \OC\Files\Filesystem::isReadable($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function isUpdatable($path) { - return self::$defaultInstance->isUpdatable($path); + return \OC\Files\Filesystem::isUpdatable($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function isDeletable($path) { - return self::$defaultInstance->isDeletable($path); + return \OC\Files\Filesystem::isDeletable($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function isSharable($path) { - return self::$defaultInstance->isSharable($path); + return \OC\Files\Filesystem::isSharable($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function file_exists($path) { - return self::$defaultInstance->file_exists($path); - } - static public function filectime($path) { - return self::$defaultInstance->filectime($path); + return \OC\Files\Filesystem::file_exists($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function filemtime($path) { - return self::$defaultInstance->filemtime($path); + return \OC\Files\Filesystem::filemtime($path); } - static public function touch($path, $mtime=null) { - return self::$defaultInstance->touch($path, $mtime); + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ + static public function touch($path, $mtime = null) { + return \OC\Files\Filesystem::touch($path, $mtime); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function file_get_contents($path) { - return self::$defaultInstance->file_get_contents($path); + return \OC\Files\Filesystem::file_get_contents($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function file_put_contents($path, $data) { - return self::$defaultInstance->file_put_contents($path, $data); + return \OC\Files\Filesystem::file_put_contents($path, $data); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function unlink($path) { - return self::$defaultInstance->unlink($path); + return \OC\Files\Filesystem::unlink($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function rename($path1, $path2) { - return self::$defaultInstance->rename($path1, $path2); + return \OC\Files\Filesystem::rename($path1, $path2); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function copy($path1, $path2) { - return self::$defaultInstance->copy($path1, $path2); + return \OC\Files\Filesystem::copy($path1, $path2); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function fopen($path, $mode) { - return self::$defaultInstance->fopen($path, $mode); + return \OC\Files\Filesystem::fopen($path, $mode); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function toTmpFile($path) { - return self::$defaultInstance->toTmpFile($path); + return \OC\Files\Filesystem::toTmpFile($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function fromTmpFile($tmpFile, $path) { - return self::$defaultInstance->fromTmpFile($tmpFile, $path); + return \OC\Files\Filesystem::fromTmpFile($tmpFile, $path); } + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function getMimeType($path) { - return self::$defaultInstance->getMimeType($path); + return \OC\Files\Filesystem::getMimeType($path); } + + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function hash($type, $path, $raw = false) { - return self::$defaultInstance->hash($type, $path, $raw); + return \OC\Files\Filesystem::hash($type, $path, $raw); } - static public function free_space($path='/') { - return self::$defaultInstance->free_space($path); + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ + static public function free_space($path = '/') { + return \OC\Files\Filesystem::free_space($path); } + /** + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + */ static public function search($query) { - return OC_FileCache::search($query); + return \OC\Files\Filesystem::search($query); } /** * check if a file or folder has been updated since $time + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path * @param int $time * @return bool */ static public function hasUpdated($path, $time) { - return self::$defaultInstance->hasUpdated($path, $time); - } - - static public function removeETagHook($params, $root = false) { - if (isset($params['path'])) { - $path=$params['path']; - } else { - $path=$params['oldpath']; - } - - if ($root) { // reduce path to the required part of it (no 'username/files') - $fakeRootView = new OC_FilesystemView($root); - $count = 1; - $path=str_replace(OC_App::getStorage("files")->getAbsolutePath(), "", $fakeRootView->getAbsolutePath($path), $count); - } - - $path = self::normalizePath($path); - OC_Connector_Sabre_Node::removeETagPropertyForPath($path); + return \OC\Files\Filesystem::hasUpdated($path, $time); } /** * normalize a path - * @param string path + * + * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem + * @param string $path * @param bool $stripTrailingSlash * @return string */ - public static function normalizePath($path, $stripTrailingSlash=true) { - if($path=='') { - return '/'; - } - //no windows style slashes - $path=str_replace('\\', '/', $path); - //add leading slash - if($path[0]!=='/') { - $path='/'.$path; - } - //remove trainling slash - if($stripTrailingSlash and strlen($path)>1 and substr($path, -1, 1)==='/') { - $path=substr($path, 0, -1); - } - //remove duplicate slashes - while(strpos($path, '//')!==false) { - $path=str_replace('//', '/', $path); - } - //normalize unicode if possible - if(class_exists('Normalizer')) { - $path=Normalizer::normalize($path); - } - return $path; + public static function normalizePath($path, $stripTrailingSlash = true) { + return \OC\Files\Filesystem::normalizePath($path, $stripTrailingSlash); } } -OC_Hook::connect('OC_Filesystem', 'post_write', 'OC_Filesystem', 'removeETagHook'); -OC_Hook::connect('OC_Filesystem', 'post_delete', 'OC_Filesystem', 'removeETagHook'); -OC_Hook::connect('OC_Filesystem', 'post_rename', 'OC_Filesystem', 'removeETagHook'); - -OC_Util::setupFS(); -require_once 'filecache.php'; diff --git a/lib/filesystemview.php b/lib/filesystemview.php index 1fc8e83d68f..d6bca62e06a 100644 --- a/lib/filesystemview.php +++ b/lib/filesystemview.php @@ -1,662 +1,9 @@ . - */ + * Copyright (c) 2012 Robin Appelman + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. */ - -/** - * Class to provide access to ownCloud filesystem via a "view", and methods for - * working with files within that view (e.g. read, write, delete, etc.). Each - * view is restricted to a set of directories via a virtual root. The default view - * uses the currently logged in user's data directory as root (parts of - * OC_Filesystem are merely a wrapper for OC_FilesystemView). - * - * Apps that need to access files outside of the user data folders (to modify files - * belonging to a user other than the one currently logged in, for example) should - * use this class directly rather than using OC_Filesystem, or making use of PHP's - * built-in file manipulation functions. This will ensure all hooks and proxies - * are triggered correctly. - * - * Filesystem functions are not called directly; they are passed to the correct - * OC_Filestorage object - * - * @note default root (if $root is empty or '/') is /data/[user]/ - * @note If you don't include a leading slash, you may encounter problems. - * e.g. use $v = new \OC_FilesystemView( '/' . $params['uid'] ); not - * $v = new \OC_FilesystemView( $params['uid'] ); - */ -class OC_FilesystemView { - private $fakeRoot=''; - private $internal_path_cache=array(); - private $storage_cache=array(); - - public function __construct($root) { - $this->fakeRoot=$root; - } - - public function getAbsolutePath($path = '/') { - if(!$path || $path[0]!=='/') { - $path='/'.$path; - } - return $this->fakeRoot.$path; - } - - /** - * change the root to a fake toor - * @param string fakeRoot - * @return bool - */ - public function chroot($fakeRoot) { - if(!$fakeRoot=='') { - if($fakeRoot[0]!=='/') { - $fakeRoot='/'.$fakeRoot; - } - } - $this->fakeRoot=$fakeRoot; - } - - /** - * get the fake root - * @return string - */ - public function getRoot() { - return $this->fakeRoot; - } - - /** - * get the part of the path relative to the mountpoint of the storage it's stored in - * @param string path - * @return bool - */ - public function getInternalPath($path) { - if (!isset($this->internal_path_cache[$path])) { - $this->internal_path_cache[$path] = OC_Filesystem::getInternalPath($this->getAbsolutePath($path)); - } - return $this->internal_path_cache[$path]; - } - - /** - * get path relative to the root of the view - * @param string path - * @return string - */ - public function getRelativePath($path) { - if($this->fakeRoot=='') { - return $path; - } - if(strpos($path, $this->fakeRoot)!==0) { - return null; - }else{ - $path=substr($path, strlen($this->fakeRoot)); - if(strlen($path)===0) { - return '/'; - }else{ - return $path; - } - } - } - - /** - * get the storage object for a path - * @param string path - * @return OC_Filestorage - */ - public function getStorage($path) { - if (!isset($this->storage_cache[$path])) { - $this->storage_cache[$path] = OC_Filesystem::getStorage($this->getAbsolutePath($path)); - } - return $this->storage_cache[$path]; - } - - /** - * get the mountpoint of the storage object for a path - ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account - * - * @param string path - * @return string - */ - public function getMountPoint($path) { - return OC_Filesystem::getMountPoint($this->getAbsolutePath($path)); - } - - /** - * return the path to a local version of the file - * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed - * @param string path - * @return string - */ - public function getLocalFile($path) { - $parent=substr($path, 0, strrpos($path, '/')); - if(OC_Filesystem::isValidPath($parent) and $storage=$this->getStorage($path)) { - return $storage->getLocalFile($this->getInternalPath($path)); - } - } - /** - * @param string path - * @return string - */ - public function getLocalFolder($path) { - $parent=substr($path, 0, strrpos($path, '/')); - if(OC_Filesystem::isValidPath($parent) and $storage=$this->getStorage($path)) { - return $storage->getLocalFolder($this->getInternalPath($path)); - } - } - - /** - * the following functions operate with arguments and return values identical - * to those of their PHP built-in equivalents. Mostly they are merely wrappers - * for OC_Filestorage via basicOperation(). - */ - public function mkdir($path) { - return $this->basicOperation('mkdir', $path, array('create', 'write')); - } - public function rmdir($path) { - return $this->basicOperation('rmdir', $path, array('delete')); - } - public function opendir($path) { - return $this->basicOperation('opendir', $path, array('read')); - } - public function readdir($handle) { - $fsLocal= new OC_Filestorage_Local( array( 'datadir' => '/' ) ); - return $fsLocal->readdir( $handle ); - } - public function is_dir($path) { - if($path=='/') { - return true; - } - return $this->basicOperation('is_dir', $path); - } - public function is_file($path) { - if($path=='/') { - return false; - } - return $this->basicOperation('is_file', $path); - } - public function stat($path) { - return $this->basicOperation('stat', $path); - } - public function filetype($path) { - return $this->basicOperation('filetype', $path); - } - public function filesize($path) { - return $this->basicOperation('filesize', $path); - } - public function readfile($path) { - OC_Util::obEnd(); - $handle=$this->fopen($path, 'rb'); - if ($handle) { - $chunkSize = 8192;// 8 MB chunks - while (!feof($handle)) { - echo fread($handle, $chunkSize); - flush(); - } - $size=$this->filesize($path); - return $size; - } - return false; - } - /** - * @deprecated Replaced by isReadable() as part of CRUDS - */ - public function is_readable($path) { - return $this->basicOperation('isReadable', $path); - } - /** - * @deprecated Replaced by isCreatable(), isUpdatable(), isDeletable() as part of CRUDS - */ - public function is_writable($path) { - return $this->basicOperation('isUpdatable', $path); - } - public function isCreatable($path) { - return $this->basicOperation('isCreatable', $path); - } - public function isReadable($path) { - return $this->basicOperation('isReadable', $path); - } - public function isUpdatable($path) { - return $this->basicOperation('isUpdatable', $path); - } - public function isDeletable($path) { - return $this->basicOperation('isDeletable', $path); - } - public function isSharable($path) { - return $this->basicOperation('isSharable', $path); - } - public function file_exists($path) { - if($path=='/') { - return true; - } - return $this->basicOperation('file_exists', $path); - } - public function filectime($path) { - return $this->basicOperation('filectime', $path); - } - public function filemtime($path) { - return $this->basicOperation('filemtime', $path); - } - public function touch($path, $mtime=null) { - if(!is_null($mtime) and !is_numeric($mtime)) { - $mtime = strtotime($mtime); - } - return $this->basicOperation('touch', $path, array('write'), $mtime); - } - public function file_get_contents($path) { - return $this->basicOperation('file_get_contents', $path, array('read')); - } - public function file_put_contents($path, $data) { - if(is_resource($data)) {//not having to deal with streams in file_put_contents makes life easier - $absolutePath = OC_Filesystem::normalizePath($this->getAbsolutePath($path)); - if (OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && OC_Filesystem::isValidPath($path)) { - $path = $this->getRelativePath($absolutePath); - $exists = $this->file_exists($path); - $run = true; - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - if(!$exists) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_create, - array( - OC_Filesystem::signal_param_path => $path, - OC_Filesystem::signal_param_run => &$run - ) - ); - } - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_write, - array( - OC_Filesystem::signal_param_path => $path, - OC_Filesystem::signal_param_run => &$run - ) - ); - } - if(!$run) { - return false; - } - $target=$this->fopen($path, 'w'); - if($target) { - $count=OC_Helper::streamCopy($data, $target); - fclose($target); - fclose($data); - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - if(!$exists) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_create, - array( OC_Filesystem::signal_param_path => $path) - ); - } - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_write, - array( OC_Filesystem::signal_param_path => $path) - ); - } - OC_FileProxy::runPostProxies('file_put_contents', $absolutePath, $count); - return $count > 0; - }else{ - return false; - } - } - }else{ - return $this->basicOperation('file_put_contents', $path, array('create', 'write'), $data); - } - } - public function unlink($path) { - return $this->basicOperation('unlink', $path, array('delete')); - } - public function deleteAll( $directory, $empty = false ) { - return $this->basicOperation( 'deleteAll', $directory, array('delete'), $empty ); - } - public function rename($path1, $path2) { - $postFix1=(substr($path1, -1, 1)==='/')?'/':''; - $postFix2=(substr($path2, -1, 1)==='/')?'/':''; - $absolutePath1 = OC_Filesystem::normalizePath($this->getAbsolutePath($path1)); - $absolutePath2 = OC_Filesystem::normalizePath($this->getAbsolutePath($path2)); - if(OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2) and OC_Filesystem::isValidPath($path2)) { - $path1 = $this->getRelativePath($absolutePath1); - $path2 = $this->getRelativePath($absolutePath2); - - if($path1 == null or $path2 == null) { - return false; - } - $run=true; - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, OC_Filesystem::signal_rename, - array( - OC_Filesystem::signal_param_oldpath => $path1, - OC_Filesystem::signal_param_newpath => $path2, - OC_Filesystem::signal_param_run => &$run - ) - ); - } - if($run) { - $mp1 = $this->getMountPoint($path1.$postFix1); - $mp2 = $this->getMountPoint($path2.$postFix2); - if($mp1 == $mp2) { - if($storage = $this->getStorage($path1)) { - $result = $storage->rename($this->getInternalPath($path1.$postFix1), $this->getInternalPath($path2.$postFix2)); - } - } else { - $source = $this->fopen($path1.$postFix1, 'r'); - $target = $this->fopen($path2.$postFix2, 'w'); - $count = OC_Helper::streamCopy($source, $target); - $storage1 = $this->getStorage($path1); - $storage1->unlink($this->getInternalPath($path1.$postFix1)); - $result = $count>0; - } - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_rename, - array( - OC_Filesystem::signal_param_oldpath => $path1, - OC_Filesystem::signal_param_newpath => $path2 - ) - ); - } - return $result; - } - } - } - public function copy($path1, $path2) { - $postFix1=(substr($path1, -1, 1)==='/')?'/':''; - $postFix2=(substr($path2, -1, 1)==='/')?'/':''; - $absolutePath1 = OC_Filesystem::normalizePath($this->getAbsolutePath($path1)); - $absolutePath2 = OC_Filesystem::normalizePath($this->getAbsolutePath($path2)); - if(OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2) and OC_Filesystem::isValidPath($path2)) { - $path1 = $this->getRelativePath($absolutePath1); - $path2 = $this->getRelativePath($absolutePath2); - - if($path1 == null or $path2 == null) { - return false; - } - $run=true; - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_copy, - array( - OC_Filesystem::signal_param_oldpath => $path1, - OC_Filesystem::signal_param_newpath=>$path2, - OC_Filesystem::signal_param_run => &$run - ) - ); - $exists=$this->file_exists($path2); - if($run and !$exists) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_create, - array( - OC_Filesystem::signal_param_path => $path2, - OC_Filesystem::signal_param_run => &$run - ) - ); - } - if($run) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_write, - array( - OC_Filesystem::signal_param_path => $path2, - OC_Filesystem::signal_param_run => &$run - ) - ); - } - } - if($run) { - $mp1=$this->getMountPoint($path1.$postFix1); - $mp2=$this->getMountPoint($path2.$postFix2); - if($mp1 == $mp2) { - if($storage = $this->getStorage($path1.$postFix1)) { - $result=$storage->copy($this->getInternalPath($path1.$postFix1), $this->getInternalPath($path2.$postFix2)); - } - } else { - $source = $this->fopen($path1.$postFix1, 'r'); - $target = $this->fopen($path2.$postFix2, 'w'); - $result = OC_Helper::streamCopy($source, $target); - } - if( $this->fakeRoot==OC_Filesystem::getRoot() ) { - // If the file to be copied originates within - // the user's data directory - - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_copy, - array( - OC_Filesystem::signal_param_oldpath => $path1, - OC_Filesystem::signal_param_newpath=>$path2 - ) - ); - if(!$exists) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_create, - array(OC_Filesystem::signal_param_path => $path2) - ); - } - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_post_write, - array( OC_Filesystem::signal_param_path => $path2) - ); - - } else { - // If this is not a normal file copy operation - // and the file originates somewhere else - // (e.g. a version rollback operation), do not - // perform all the other post_write actions - - // Update webdav properties - OC_Filesystem::removeETagHook(array("path" => $path2), $this->fakeRoot); - - $splitPath2 = explode( '/', $path2 ); - - // Only cache information about files - // that are being copied from within - // the user files directory. Caching - // other files, like VCS backup files, - // serves no purpose - if ( $splitPath2[1] == 'files' ) { - - OC_FileCache_Update::update($path2, $this->fakeRoot); - - } - - } - - return $result; - - } - } - } - public function fopen($path, $mode) { - $hooks=array(); - switch($mode) { - case 'r': - case 'rb': - $hooks[]='read'; - break; - case 'r+': - case 'rb+': - case 'w+': - case 'wb+': - case 'x+': - case 'xb+': - case 'a+': - case 'ab+': - $hooks[]='read'; - $hooks[]='write'; - break; - case 'w': - case 'wb': - case 'x': - case 'xb': - case 'a': - case 'ab': - $hooks[]='write'; - break; - default: - OC_Log::write('core', 'invalid mode ('.$mode.') for '.$path, OC_Log::ERROR); - } - - return $this->basicOperation('fopen', $path, $hooks, $mode); - } - public function toTmpFile($path) { - if(OC_Filesystem::isValidPath($path)) { - $source = $this->fopen($path, 'r'); - if($source) { - $extension=''; - $extOffset=strpos($path, '.'); - if($extOffset !== false) { - $extension=substr($path, strrpos($path, '.')); - } - $tmpFile = OC_Helper::tmpFile($extension); - file_put_contents($tmpFile, $source); - return $tmpFile; - } - } - } - public function fromTmpFile($tmpFile, $path) { - if(OC_Filesystem::isValidPath($path)) { - if(!$tmpFile) { - debug_print_backtrace(); - } - $source=fopen($tmpFile, 'r'); - if($source) { - $this->file_put_contents($path, $source); - unlink($tmpFile); - return true; - } else { - } - } else { - return false; - } - } - - public function getMimeType($path) { - return $this->basicOperation('getMimeType', $path); - } - public function hash($type, $path, $raw = false) { - $postFix=(substr($path, -1, 1)==='/')?'/':''; - $absolutePath = OC_Filesystem::normalizePath($this->getAbsolutePath($path)); - if (OC_FileProxy::runPreProxies('hash', $absolutePath) && OC_Filesystem::isValidPath($path)) { - $path = $this->getRelativePath($absolutePath); - if ($path == null) { - return false; - } - if (OC_Filesystem::$loaded && $this->fakeRoot == OC_Filesystem::getRoot()) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_read, - array( OC_Filesystem::signal_param_path => $path) - ); - } - if ($storage = $this->getStorage($path.$postFix)) { - $result = $storage->hash($type, $this->getInternalPath($path.$postFix), $raw); - $result = OC_FileProxy::runPostProxies('hash', $absolutePath, $result); - return $result; - } - } - return null; - } - - public function free_space($path='/') { - return $this->basicOperation('free_space', $path); - } - - /** - * @brief abstraction layer for basic filesystem functions: wrapper for OC_Filestorage - * @param string $operation - * @param string #path - * @param array (optional) hooks - * @param mixed (optional) $extraParam - * @return mixed - * - * This method takes requests for basic filesystem functions (e.g. reading & writing - * files), processes hooks and proxies, sanitises paths, and finally passes them on to - * OC_Filestorage for delegation to a storage backend for execution - */ - private function basicOperation($operation, $path, $hooks=array(), $extraParam=null) { - $postFix=(substr($path, -1, 1)==='/')?'/':''; - $absolutePath = OC_Filesystem::normalizePath($this->getAbsolutePath($path)); - if(OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam) and OC_Filesystem::isValidPath($path)) { - $path = $this->getRelativePath($absolutePath); - if($path == null) { - return false; - } - $internalPath = $this->getInternalPath($path.$postFix); - $run=$this->runHooks($hooks, $path); - if($run and $storage = $this->getStorage($path.$postFix)) { - if(!is_null($extraParam)) { - $result = $storage->$operation($internalPath, $extraParam); - } else { - $result = $storage->$operation($internalPath); - } - $result = OC_FileProxy::runPostProxies($operation, $this->getAbsolutePath($path), $result); - if(OC_Filesystem::$loaded and $this->fakeRoot==OC_Filesystem::getRoot()) { - if($operation!='fopen') {//no post hooks for fopen, the file stream is still open - $this->runHooks($hooks, $path, true); - } - } - return $result; - } - } - return null; - } - - private function runHooks($hooks, $path, $post=false) { - $prefix=($post)?'post_':''; - $run=true; - if(OC_Filesystem::$loaded and $this->fakeRoot==OC_Filesystem::getRoot()) { - foreach($hooks as $hook) { - if($hook!='read') { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - $prefix.$hook, - array( - OC_Filesystem::signal_param_run => &$run, - OC_Filesystem::signal_param_path => $path - ) - ); - } elseif(!$post) { - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - $prefix.$hook, - array( - OC_Filesystem::signal_param_path => $path - ) - ); - } - } - } - return $run; - } - - /** - * check if a file or folder has been updated since $time - * @param int $time - * @return bool - */ - public function hasUpdated($path, $time) { - return $this->basicOperation('hasUpdated', $path, array(), $time); - } -} +class OC_FilesystemView extends \OC\Files\View {} diff --git a/lib/group/database.php b/lib/group/database.php index c5dd402b212..1e2328f4c08 100644 --- a/lib/group/database.php +++ b/lib/group/database.php @@ -219,21 +219,14 @@ class OC_Group_Database extends OC_Group_Backend { */ public function DisplayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { $displayNames = ''; - /* - - SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo - FROM Persons - INNER JOIN Orders - ON Persons.P_Id=Orders.P_Id - ORDER BY Persons.LastName - */ + $stmt = OC_DB::prepare('SELECT `*PREFIX*users`.`uid`, `*PREFIX*users`.`displayname` FROM `*PREFIX*users` INNER JOIN `*PREFIX*group_user` ON `*PREFIX*group_user`.`uid` = `*PREFIX*users`.`uid` WHERE `gid` = ? AND `*PREFIX*group_user.uid` LIKE ?', $limit, $offset); $result = $stmt->execute(array($gid, $search.'%')); $users = array(); while ($row = $result->fetchRow()) { $displayName = trim($row['displayname'], ' '); $displayNames[$row['uid']] = empty($displayName) ? $row['uid'] : $displayName; - } + } return $displayNames; } } diff --git a/lib/helper.php b/lib/helper.php index 425dc138c5a..0e549d006a1 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -324,7 +324,7 @@ class OC_Helper { self::copyr("$src/$file", "$dest/$file"); } } - }elseif(file_exists($src) && !OC_Filesystem::isFileBlacklisted($src)) { + }elseif(file_exists($src) && !\OC\Files\Filesystem::isFileBlacklisted($src)) { copy($src, $dest); } } @@ -618,7 +618,7 @@ class OC_Helper { $newpath = $path . '/' . $filename; $counter = 2; - while (OC_Filesystem::file_exists($newpath)) { + while (\OC\Files\Filesystem::file_exists($newpath)) { $newname = $name . ' (' . $counter . ')' . $ext; $newpath = $path . '/' . $newname; $counter++; @@ -757,7 +757,7 @@ class OC_Helper { $post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size')); $maxUploadFilesize = min($upload_max_filesize, $post_max_size); - $freeSpace = OC_Filesystem::free_space($dir); + $freeSpace = \OC\Files\Filesystem::free_space($dir); $freeSpace = max($freeSpace, 0); return min($maxUploadFilesize, $freeSpace); @@ -787,12 +787,12 @@ class OC_Helper { * Calculate the disc space */ public static function getStorageInfo() { - $rootInfo = OC_FileCache::get(''); + $rootInfo = \OC\Files\Filesystem::getFileInfo('/'); $used = $rootInfo['size']; if ($used < 0) { $used = 0; } - $free = OC_Filesystem::free_space(); + $free = \OC\Files\Filesystem::free_space(); $total = $free + $used; if ($total == 0) { $total = 1; // prevent division by zero diff --git a/lib/image.php b/lib/image.php index cfc6d477395..eaa35350bcb 100644 --- a/lib/image.php +++ b/lib/image.php @@ -455,7 +455,7 @@ class OC_Image { default: // this is mostly file created from encrypted file - $this->resource = imagecreatefromstring(\OC_Filesystem::file_get_contents(\OC_Filesystem::getLocalPath($imagepath))); + $this->resource = imagecreatefromstring(\OC\Files\Filesystem::file_get_contents(\OC\Files\Filesystem::getLocalPath($imagepath))); $itype = IMAGETYPE_PNG; OC_Log::write('core', 'OC_Image->loadFromFile, Default', OC_Log::DEBUG); break; diff --git a/lib/installer.php b/lib/installer.php index 7dc8b0cef8d..c86f801b5fc 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -141,13 +141,17 @@ class OC_Installer{ return false; } - //check if an app with the same id is already installed - if(self::isInstalled( $info['id'] )) { - OC_Log::write('core', 'App already installed', OC_Log::WARN); + // check if shipped tag is set which is only allowed for apps that are shipped with ownCloud + if(isset($info['shipped']) and ($info['shipped']=='true')) { + OC_Log::write('core', 'App can\'t be installed because it contains the true tag which is not allowed for non shipped apps', OC_Log::ERROR); + OC_Helper::rmdirr($extractDir); + return false; + } + + // check if the ocs version is the same as the version in info.xml/version + if(!isset($info['version']) or ($info['version']<>$data['appdata']['version'])) { + OC_Log::write('core', 'App can\'t be installed because the version in info.xml/version is not the same as the version reported from the app store', OC_Log::ERROR); OC_Helper::rmdirr($extractDir); - if($data['source']=='http') { - unlink($path); - } return false; } @@ -226,7 +230,6 @@ class OC_Installer{ /** * @brief Update an application * @param $data array with all information - * @returns integer * * This function installs an app. All information needed are passed in the * associative array $data. @@ -250,9 +253,55 @@ class OC_Installer{ * * upgrade.php can determine the current installed version of the app using "OC_Appconfig::getValue($appid, 'installed_version')" */ - public static function upgradeApp( $data = array()) { - // TODO: write function - return true; + public static function updateApp( $app ) { + $ocsid=OC_Appconfig::getValue( $app, 'ocsid'); + OC_App::disable($app); + OC_App::enable($ocsid); + return(true); + } + + /** + * @brief Check if an update for the app is available + * @param $name name of the application + * @returns empty string is no update available or the version number of the update + * + * The function will check if an update for a version is available + */ + public static function isUpdateAvailable( $app ) { + $ocsid=OC_Appconfig::getValue( $app, 'ocsid', ''); + + if($ocsid<>''){ + + $ocsdata=OC_OCSClient::getApplication($ocsid); + $ocsversion= (string) $ocsdata['version']; + $currentversion=OC_App::getAppVersion($app); + if($ocsversion<>$currentversion){ + return($ocsversion); + + }else{ + return(''); + } + + }else{ + return(''); + } + + } + + /** + * @brief Check if app is already downloaded + * @param $name name of the application to remove + * @returns true/false + * + * The function will check if the app is already downloaded in the apps repository + */ + public static function isDownloaded( $name ) { + + $downloaded=false; + foreach(OC::$APPSROOTS as $dir) { + if(is_dir($dir['path'].'/'.$name)) $downloaded=true; + } + return($downloaded); } /** @@ -276,8 +325,36 @@ class OC_Installer{ * this has to be done by the function oc_app_uninstall(). */ public static function removeApp( $name, $options = array()) { - // TODO: write function - return true; + + if(isset($options['keeppreferences']) and $options['keeppreferences']==false ){ + // todo + // remove preferences + } + + if(isset($options['keepappconfig']) and $options['keepappconfig']==false ){ + // todo + // remove app config + } + + if(isset($options['keeptables']) and $options['keeptables']==false ){ + // todo + // remove app database tables + } + + if(isset($options['keepfiles']) and $options['keepfiles']==false ){ + // todo + // remove user files + } + + if(OC_Installer::isDownloaded( $name )) { + $appdir=OC_App::getInstallPath().'/'.$name; + OC_Helper::rmdirr($appdir); + + }else{ + OC_Log::write('core', 'can\'t remove app '.$name.'. It is not installed.', OC_Log::ERROR); + + } + } /** diff --git a/lib/l10n.php b/lib/l10n.php index ca53b3cf65c..ee879009265 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -287,7 +287,7 @@ class OC_L10N{ } if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $accepted_languages = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']); + $accepted_languages = preg_split('/,\s*/', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])); if(is_array($app)) { $available = $app; } diff --git a/lib/l10n/af_ZA.php b/lib/l10n/af_ZA.php new file mode 100644 index 00000000000..38e91288fbe --- /dev/null +++ b/lib/l10n/af_ZA.php @@ -0,0 +1,8 @@ + "Hulp", +"Personal" => "Persoonlik", +"Settings" => "Instellings", +"Users" => "Gebruikers", +"Apps" => "Toepassings", +"Admin" => "Admin" +); diff --git a/lib/l10n/fa.php b/lib/l10n/fa.php index 8cbdcb03b3b..bbb04290a5c 100644 --- a/lib/l10n/fa.php +++ b/lib/l10n/fa.php @@ -3,17 +3,28 @@ "Personal" => "شخصی", "Settings" => "تنظیمات", "Users" => "کاربران", +"Apps" => " برنامه ها", "Admin" => "مدیر", +"ZIP download is turned off." => "دانلود به صورت فشرده غیر فعال است", +"Files need to be downloaded one by one." => "فایل ها باید به صورت یکی یکی دانلود شوند", +"Back to Files" => "بازگشت به فایل ها", +"Selected files too large to generate zip file." => "فایل های انتخاب شده بزرگتر از آن هستند که بتوان یک فایل فشرده تولید کرد", +"Application is not enabled" => "برنامه فعال نشده است", "Authentication error" => "خطا در اعتبار سنجی", "Files" => "پرونده‌ها", "Text" => "متن", +"Images" => "تصاویر", "seconds ago" => "ثانیه‌ها پیش", "1 minute ago" => "1 دقیقه پیش", "%d minutes ago" => "%d دقیقه پیش", "1 hour ago" => "1 ساعت پیش", +"%d hours ago" => "%d ساعت پیش", "today" => "امروز", "yesterday" => "دیروز", +"%d days ago" => "%d روز پیش", "last month" => "ماه قبل", +"%d months ago" => "%dماه پیش", "last year" => "سال قبل", -"years ago" => "سال‌های قبل" +"years ago" => "سال‌های قبل", +"Could not find category \"%s\"" => "دسته بندی %s یافت نشد" ); diff --git a/lib/l10n/ko.php b/lib/l10n/ko.php index c4716f9f8bd..859657f46b4 100644 --- a/lib/l10n/ko.php +++ b/lib/l10n/ko.php @@ -9,6 +9,7 @@ "Files need to be downloaded one by one." => "파일을 개별적으로 다운로드해야 합니다.", "Back to Files" => "파일로 돌아가기", "Selected files too large to generate zip file." => "선택한 파일들은 ZIP 파일을 생성하기에 너무 큽니다.", +"couldn't be determined" => "결정할 수 없음", "Application is not enabled" => "앱이 활성화되지 않았습니다", "Authentication error" => "인증 오류", "Token expired. Please reload page." => "토큰이 만료되었습니다. 페이지를 새로 고치십시오.", diff --git a/lib/l10n/lv.php b/lib/l10n/lv.php index 3330d0e6b70..9f2a0dea749 100644 --- a/lib/l10n/lv.php +++ b/lib/l10n/lv.php @@ -3,6 +3,33 @@ "Personal" => "Personīgi", "Settings" => "Iestatījumi", "Users" => "Lietotāji", -"Authentication error" => "Ielogošanās kļūme", -"Files" => "Faili" +"Apps" => "Lietotnes", +"Admin" => "Administratori", +"ZIP download is turned off." => "ZIP lejupielādēšana ir izslēgta.", +"Files need to be downloaded one by one." => "Datnes var lejupielādēt tikai katru atsevišķi.", +"Back to Files" => "Atpakaļ pie datnēm", +"Selected files too large to generate zip file." => "Izvēlētās datnes ir pārāk lielas, lai izveidotu zip datni.", +"couldn't be determined" => "nevarēja noteikt", +"Application is not enabled" => "Lietotne nav aktivēta", +"Authentication error" => "Autentifikācijas kļūda", +"Token expired. Please reload page." => "Pilnvarai ir beidzies termiņš. Lūdzu, pārlādējiet lapu.", +"Files" => "Datnes", +"Text" => "Teksts", +"Images" => "Attēli", +"seconds ago" => "sekundes atpakaļ", +"1 minute ago" => "pirms 1 minūtes", +"%d minutes ago" => "pirms %d minūtēm", +"1 hour ago" => "pirms 1 stundas", +"%d hours ago" => "pirms %d stundām", +"today" => "šodien", +"yesterday" => "vakar", +"%d days ago" => "pirms %d dienām", +"last month" => "pagājušajā mēnesī", +"%d months ago" => "pirms %d mēnešiem", +"last year" => "gājušajā gadā", +"years ago" => "gadus atpakaļ", +"%s is available. Get more information" => "%s ir pieejams. Iegūt vairāk informācijas", +"up to date" => "ir aktuāls", +"updates check is disabled" => "atjauninājumu pārbaude ir deaktivēta", +"Could not find category \"%s\"" => "Nevarēja atrast kategoriju “%s”" ); diff --git a/lib/l10n/sr.php b/lib/l10n/sr.php index 34ae89a6219..1161b0a44b7 100644 --- a/lib/l10n/sr.php +++ b/lib/l10n/sr.php @@ -1,10 +1,10 @@ "Помоћ", "Personal" => "Лично", -"Settings" => "Подешавања", +"Settings" => "Поставке", "Users" => "Корисници", "Apps" => "Апликације", -"Admin" => "Администрација", +"Admin" => "Администратор", "ZIP download is turned off." => "Преузимање ZIP-а је искључено.", "Files need to be downloaded one by one." => "Датотеке морате преузимати једну по једну.", "Back to Files" => "Назад на датотеке", @@ -29,7 +29,7 @@ "last year" => "прошле године", "years ago" => "година раније", "%s is available. Get more information" => "%s је доступна. Погледајте више информација.", -"up to date" => "је ажурна.", -"updates check is disabled" => "провера ажурирања је онемогућена.", +"up to date" => "је ажурна", +"updates check is disabled" => "провера ажурирања је онемогућена", "Could not find category \"%s\"" => "Не могу да пронађем категорију „%s“." ); diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php index 2d18b1db3f2..179ed8f3107 100644 --- a/lib/ocs/cloud.php +++ b/lib/ocs/cloud.php @@ -45,11 +45,11 @@ class OC_OCS_Cloud { if(OC_User::userExists($parameters['user'])) { // calculate the disc space $userDir = '/'.$parameters['user'].'/files'; - OC_Filesystem::init($userDir); - $rootInfo = OC_FileCache::get(''); - $sharedInfo = OC_FileCache::get('/Shared'); + \OC\Files\Filesystem::init($useDir); + $rootInfo = \OC\Files\Filesystem::getFileInfo(''); + $sharedInfo = \OC\Files\Filesystem::getFileInfo('/Shared'); $used = $rootInfo['size'] - $sharedInfo['size']; - $free = OC_Filesystem::free_space(); + $free = \OC\Files\Filesystem::free_space(); $total = $free + $used; if($total===0) $total = 1; // prevent division by zero $relative = round(($used/$total)*10000)/100; diff --git a/lib/ocsclient.php b/lib/ocsclient.php index ca0665da436..30163c1e403 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -123,6 +123,8 @@ class OC_OCSClient{ $app=array(); $app['id']=(string)$tmp[$i]->id; $app['name']=(string)$tmp[$i]->name; + $app['label']=(string)$tmp[$i]->label; + $app['version']=(string)$tmp[$i]->version; $app['type']=(string)$tmp[$i]->typeid; $app['typename']=(string)$tmp[$i]->typename; $app['personid']=(string)$tmp[$i]->personid; @@ -162,7 +164,9 @@ class OC_OCSClient{ $app=array(); $app['id']=$tmp->id; $app['name']=$tmp->name; + $app['version']=$tmp->version; $app['type']=$tmp->typeid; + $app['label']=$tmp->label; $app['typename']=$tmp->typename; $app['personid']=$tmp->personid; $app['detailpage']=$tmp->detailpage; diff --git a/lib/public/files.php b/lib/public/files.php index 75e1d2fbbc1..f6b3e0ee38a 100644 --- a/lib/public/files.php +++ b/lib/public/files.php @@ -99,7 +99,7 @@ class Files { /** * @param string appid * @param $app app - * @return OC_FilesystemView + * @return \OC\Files\View */ public static function getStorage( $app ) { return \OC_App::getStorage( $app ); diff --git a/lib/public/share.php b/lib/public/share.php index e1d77e652d5..7d806fafd04 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -37,8 +37,7 @@ class Share { const SHARE_TYPE_REMOTE = 6; /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask - * Construct permissions for share() and setPermissions with Or (|) - * e.g. Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE + * Construct permissions for share() and setPermissions with Or (|) e.g. Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE * Check if permission is granted with And (&) e.g. Check if delete is granted: if ($permissions & PERMISSION_DELETE) * Remove permissions with And (&) and Not (~) e.g. Remove the update permission: $permissions &= ~PERMISSION_UPDATE * Apps are required to handle permissions on their own, this class only stores and manages the permissions of shares @@ -67,17 +66,14 @@ class Share { public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { if (self::isEnabled()) { if (!isset(self::$backendTypes[$itemType])) { - self::$backendTypes[$itemType] = array('class' => $class, - 'collectionOf' => $collectionOf, - 'supportedFileExtensions' => $supportedFileExtensions); + self::$backendTypes[$itemType] = array('class' => $class, 'collectionOf' => $collectionOf, 'supportedFileExtensions' => $supportedFileExtensions); if(count(self::$backendTypes) === 1) { \OC_Util::addScript('core', 'share'); \OC_Util::addStyle('core', 'share'); } return true; } - \OC_Log::write('OCP\Share', 'Sharing backend '.$class.' not registered, ' - .self::$backendTypes[$itemType]['class'].' is already registered for '.$itemType, \OC_Log::WARN); + \OC_Log::write('OCP\Share', 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'].' is already registered for '.$itemType, \OC_Log::WARN); } return false; } @@ -103,20 +99,8 @@ class Share { * @param int Number of items to return (optional) Returns all by default * @return Return depends on format */ - public static function getItemsSharedWith($itemType, - $format = self::FORMAT_NONE, - $parameters = null, - $limit = -1, - $includeCollections = false) { - return self::getItems($itemType, - null, - self::$shareTypeUserAndGroups, - \OC_User::getUser(), - null, - $format, - $parameters, - $limit, - $includeCollections); + public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, $limit, $includeCollections); } /** @@ -126,20 +110,8 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemSharedWith($itemType, - $itemTarget, - $format = self::FORMAT_NONE, - $parameters = null, - $includeCollections = false) { - return self::getItems($itemType, - $itemTarget, - self::$shareTypeUserAndGroups, - \OC_User::getUser(), - null, - $format, - $parameters, - 1, - $includeCollections); + public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections); } /** @@ -149,20 +121,8 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemSharedWithBySource($itemType, - $itemSource, - $format = self::FORMAT_NONE, - $parameters = null, - $includeCollections = false) { - return self::getItems($itemType, - $itemSource, - self::$shareTypeUserAndGroups, - \OC_User::getUser(), - null, - $format, - $parameters, - 1, - $includeCollections, true); + public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections, true); } /** @@ -173,14 +133,7 @@ class Share { * @return Item */ public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { - return self::getItems($itemType, - $itemSource, - self::SHARE_TYPE_LINK, - null, - $uidOwner, - self::FORMAT_NONE, - null, - 1); + return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1); } /** @@ -189,7 +142,7 @@ class Share { * @return Item */ public static function getShareByToken($token) { - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?', 1); + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?',1); $result = $query->execute(array($token)); if (\OC_DB::isError($result)) { \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', token=' . $token, \OC_Log::ERROR); @@ -204,20 +157,8 @@ class Share { * @param int Number of items to return (optional) Returns all by default * @return Return depends on format */ - public static function getItemsShared($itemType, - $format = self::FORMAT_NONE, - $parameters = null, - $limit = -1, - $includeCollections = false) { - return self::getItems($itemType, - null, - null, - null, - \OC_User::getUser(), - $format, - $parameters, - $limit, - $includeCollections); + public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, $parameters, $limit, $includeCollections); } /** @@ -227,20 +168,8 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemShared($itemType, - $itemSource, - $format = self::FORMAT_NONE, - $parameters = null, - $includeCollections = false) { - return self::getItems($itemType, - $itemSource, - null, - null, - \OC_User::getUser(), - $format, - $parameters, - -1, - $includeCollections); + public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, $parameters, -1, $includeCollections); } /** @@ -270,26 +199,14 @@ class Share { if ($sharingPolicy == 'groups_only') { $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); if (empty($inGroup)) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is not a member' - .' of any groups that '.$uidOwner.' is a member of'; + $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } } // Check if the item source is already shared with the user, either from the same owner or a different user - $checkExists = self::getItems($itemType, - $itemSource, - self::$shareTypeUserAndGroups, - $shareWith, - null, - self::FORMAT_NONE, - null, - 1, - true, - true); - if ($checkExists) { - // Only allow the same share to occur again if it is the same owner and is not a user share, - // this use case is for increasing permissions for a specific user + if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same owner and is not a user share, this use case is for increasing permissions for a specific user if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); @@ -303,26 +220,14 @@ class Share { throw new \Exception($message); } if ($sharingPolicy == 'groups_only' && !\OC_Group::inGroup($uidOwner, $shareWith)) { - $message = 'Sharing '.$itemSource.' failed, because '.$uidOwner - .' is not a member of the group '.$shareWith; + $message = 'Sharing '.$itemSource.' failed, because '.$uidOwner.' is not a member of the group '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } // Check if the item source is already shared with the group, either from the same owner or a different user // The check for each user in the group is done inside the put() function - $checkExists = self::getItems($itemType, - $itemSource, - self::SHARE_TYPE_GROUP, - $shareWith, - null, - self::FORMAT_NONE, - null, - 1, - true, - true); - if ($checkExists) { - // Only allow the same share to occur again if it is the same owner and is not a group share, - // this use case is for increasing permissions for a specific user + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same owner and is not a group share, this use case is for increasing permissions for a specific user if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); @@ -337,15 +242,7 @@ class Share { } else if ($shareType === self::SHARE_TYPE_LINK) { if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { // when updating a link share - $checkExists = self::getItems($itemType, - $itemSource, - self::SHARE_TYPE_LINK, - null, - $uidOwner, - self::FORMAT_NONE, - null, - 1); - if ($checkExists) { + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1)) { // remember old token $oldToken = $checkExists['token']; //delete the old share @@ -365,14 +262,7 @@ class Share { } else { $token = \OC_Util::generate_random_bytes(self::TOKEN_LENGTH); } - $result = self::put($itemType, - $itemSource, - $shareType, - $shareWith, - $uidOwner, - $permissions, - null, - $token); + $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, $token); if ($result) { return $token; } else { @@ -410,41 +300,36 @@ class Share { throw new \Exception($message); } // If the item is a folder, scan through the folder looking for equivalent item types - if ($itemType == 'folder') { - $parentFolder = self::put('folder', $itemSource, $shareType, $shareWith, $uidOwner, $permissions, true); - if ($parentFolder && $files = \OC_Files::getDirectoryContent($itemSource)) { - for ($i = 0; $i < count($files); $i++) { - $name = substr($files[$i]['name'], strpos($files[$i]['name'], $itemSource) - strlen($itemSource)); - if ($files[$i]['mimetype'] == 'httpd/unix-directory' - && $children = \OC_Files::getDirectoryContent($name, '/') - ) { - // Continue scanning into child folders - array_push($files, $children); - } else { - // Check file extension for an equivalent item type to convert to - $extension = strtolower(substr($itemSource, strrpos($itemSource, '.') + 1)); - foreach (self::$backends as $type => $backend) { - if (isset($backend->dependsOn) - && $backend->dependsOn == 'file' - && isset($backend->supportedFileExtensions) - && in_array($extension, $backend->supportedFileExtensions) - ) { - $itemType = $type; - break; - } - } - // Pass on to put() to check if this item should be converted, - // the item won't be inserted into the database unless it can be converted - self::put($itemType, $name, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder); - } - } - return true; - } - return false; - } else { +// if ($itemType == 'folder') { +// $parentFolder = self::put('folder', $itemSource, $shareType, $shareWith, $uidOwner, $permissions, true); +// if ($parentFolder && $files = \OC\Files\Filesystem::getDirectoryContent($itemSource)) { +// for ($i = 0; $i < count($files); $i++) { +// $name = substr($files[$i]['name'], strpos($files[$i]['name'], $itemSource) - strlen($itemSource)); +// if ($files[$i]['mimetype'] == 'httpd/unix-directory' +// && $children = \OC\Files\Filesystem::getDirectoryContent($name, '/') +// ) { +// // Continue scanning into child folders +// array_push($files, $children); +// } else { +// // Check file extension for an equivalent item type to convert to +// $extension = strtolower(substr($itemSource, strrpos($itemSource, '.') + 1)); +// foreach (self::$backends as $type => $backend) { +// if (isset($backend->dependsOn) && $backend->dependsOn == 'file' && isset($backend->supportedFileExtensions) && in_array($extension, $backend->supportedFileExtensions)) { +// $itemType = $type; +// break; +// } +// } +// // Pass on to put() to check if this item should be converted, the item won't be inserted into the database unless it can be converted +// self::put($itemType, $name, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder); +// } +// } +// return true; +// } +// return false; +// } else { // Put the item into the database return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions); - } +// } } /** @@ -456,15 +341,7 @@ class Share { * @return Returns true on success or false on failure */ public static function unshare($itemType, $itemSource, $shareType, $shareWith) { - $item = self::getItems($itemType, - $itemSource, - $shareType, - $shareWith, - \OC_User::getUser(), - self::FORMAT_NONE, - null, - 1); - if ($item) { + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1)) { self::delete($item['id']); return true; } @@ -478,8 +355,7 @@ class Share { * @return Returns true on success or false on failure */ public static function unshareAll($itemType, $itemSource) { - $shares = self::getItemShared($itemType, $itemSource); - if ($shares) { + if ($shares = self::getItemShared($itemType, $itemSource)) { foreach ($shares as $share) { self::delete($share['id']); } @@ -498,27 +374,11 @@ class Share { * */ public static function unshareFromSelf($itemType, $itemTarget) { - $item = self::getItemSharedWith($itemType, $itemTarget); - if ($item) { + if ($item = self::getItemSharedWith($itemType, $itemTarget)) { if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { - // Insert an extra row for the group share and set permission to 0 - // to prevent it from showing up for the user - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (' - .'`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, ' - .'`uid_owner`, `permissions`, `stime`, `file_source`, `file_target`' - .') VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - $query->execute(array( - $item['item_type'], - $item['item_source'], - $item['item_target'], - $item['id'], - self::$shareTypeGroupUserUnique, - \OC_User::getUser(), - $item['uid_owner'], - 0, - $item['stime'], - $item['file_source'], - $item['file_target'])); + // Insert an extra row for the group share and set permission to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], $item['id'], self::$shareTypeGroupUserUnique, \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], $item['file_target'])); \OC_DB::insertid('*PREFIX*share'); // Delete all reshares by this user of the group share self::delete($item['id'], true, \OC_User::getUser()); @@ -545,24 +405,13 @@ class Share { * @return Returns true on success or false on failure */ public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { - $item = self::getItems($itemType, - $itemSource, - $shareType, - $shareWith, - \OC_User::getUser(), - self::FORMAT_NONE, - null, - 1, - false); - if ($item) { - // Check if this item is a reshare and - // verify that the permissions granted don't exceed the parent shared item + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { + // Check if this item is a reshare and verify that the permissions granted don't exceed the parent shared item if (isset($item['parent'])) { $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); $result = $query->execute(array($item['parent']))->fetchRow(); if (~(int)$result['permissions'] & $permissions) { - $message = 'Setting permissions for '.$itemSource.' failed, ' - .'because the permissions exceed permissions granted to '.\OC_User::getUser(); + $message = 'Setting permissions for '.$itemSource.' failed, because the permissions exceed permissions granted to '.\OC_User::getUser(); \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } @@ -579,12 +428,9 @@ class Share { $parents = array($item['id']); while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - $query = \OC_DB::prepare('SELECT `id`, `permissions`' - .' FROM `*PREFIX*share`' - .' WHERE `parent` IN ('.$parents.')'); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); - // Reset parents array, - // only go through loop again if items are found that need permissions removed + // Reset parents array, only go through loop again if items are found that need permissions removed $parents = array(); while ($item = $result->fetchRow()) { // Check if permissions need to be removed @@ -598,9 +444,7 @@ class Share { // Remove the permissions for all reshares of this item if (!empty($ids)) { $ids = "'".implode("','", $ids)."'"; - $query = \OC_DB::prepare('UPDATE `*PREFIX*share`' - .' SET `permissions` = `permissions` & ?' - .' WHERE `id` IN ('.$ids.')'); + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ? WHERE `id` IN ('.$ids.')'); $query->execute(array($permissions)); } } @@ -613,16 +457,7 @@ class Share { } public static function setExpirationDate($itemType, $itemSource, $date) { - $items = self::getItems($itemType, - $itemSource, - null, - null, - \OC_User::getUser(), - self::FORMAT_NONE, - null, - -1, - false); - if ($items) { + if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { if (!empty($items)) { if ($date == '') { $date = null; @@ -681,11 +516,11 @@ class Share { $collectionTypes[] = $type; } } - if (!self::getBackend($itemType) instanceof Share_Backend_Collection) { + // TODO Add option for collections to be collection of themselves, only 'folder' does it now... + if (!self::getBackend($itemType) instanceof Share_Backend_Collection || $itemType != 'folder') { unset($collectionTypes[0]); } - // Return array if collections were found or the item type is a collection itself - // - collections can be inside collections + // Return array if collections were found or the item type is a collection itself - collections can be inside collections if (count($collectionTypes) > 0) { return $collectionTypes; } @@ -696,8 +531,7 @@ class Share { * @brief Get shared items from the database * @param string Item type * @param string Item source or target (optional) - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, - * $shareTypeUserAndGroups, or $shareTypeGroupUserUnique + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique * @param string User or group the item is being shared with * @param string User that is the owner of shared items (optional) * @param int Format to convert items to with formatItems() @@ -709,16 +543,7 @@ class Share { * See public functions getItem(s)... for parameter usage * */ - private static function getItems($itemType, - $item = null, - $shareType = null, - $shareWith = null, - $uidOwner = null, - $format = self::FORMAT_NONE, - $parameters = null, - $limit = -1, - $includeCollections = false, - $itemShareWithBySource = false) { + private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false) { if (!self::isEnabled()) { if ($limit == 1 || (isset($uidOwner) && isset($item))) { return false; @@ -727,11 +552,10 @@ class Share { } } $backend = self::getBackend($itemType); - // Get filesystem root to add it to the file target and remove from the file source, - // match file_source with the file cache + // Get filesystem root to add it to the file target and remove from the file source, match file_source with the file cache if ($itemType == 'file' || $itemType == 'folder') { - $root = \OC_Filesystem::getRoot(); - $where = 'INNER JOIN `*PREFIX*fscache` ON `file_source` = `*PREFIX*fscache`.`id`'; + $root = \OC\Files\Filesystem::getRoot(); + $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid`'; if (!isset($item)) { $where .= ' WHERE `file_target` IS NOT NULL'; } @@ -817,7 +641,7 @@ class Share { } else { if ($itemType == 'file' || $itemType == 'folder') { $where .= ' `file_target` = ?'; - $item = \OC_Filesystem::normalizePath($item); + $item = \OC\Files\Filesystem::normalizePath($item); } else { $where .= ' `item_target` = ?'; } @@ -831,8 +655,7 @@ class Share { } if ($limit != -1 && !$includeCollections) { if ($shareType == self::$shareTypeUserAndGroups) { - // Make sure the unique user target is returned if it exists, - // unique targets should follow the group share in the database + // Make sure the unique user target is returned if it exists, unique targets should follow the group share in the database // If the limit is not 1, the filtering can be done later $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; } @@ -848,34 +671,29 @@ class Share { // TODO Optimize selects if ($format == self::FORMAT_STATUSES) { if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, ' - .'`share_type`, `file_source`, `path`, `expiration`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `file_source`, `path`, `expiration`'; } else { $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `expiration`'; } } else { if (isset($uidOwner)) { if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, ' - .'`share_with`, `file_source`, `path`, `permissions`, `stime`, `expiration`, `token`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`, `expiration`, `token`'; } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, ' - .'`permissions`, `stime`, `file_source`, `expiration`, `token`'; + $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`, `stime`, `file_source`, `expiration`, `token`'; } } else { if ($fileDependent) { if (($itemType == 'file' || $itemType == 'folder') - && $format == \OC_Share_Backend_File::FORMAT_FILE_APP + && $format == \OC_Share_Backend_File::FORMAT_GET_FOLDER_CONTENTS || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT ) { $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `uid_owner`, ' - .'`share_type`, `share_with`, `file_source`, `path`, `file_target`, `permissions`, ' - .'`expiration`, `name`, `ctime`, `mtime`, `mimetype`, `size`, `encrypted`, ' - .'`versioned`, `writable`'; + .'`share_type`, `share_with`, `file_source`, `path`, `file_target`, ' + .'`permissions`, `expiration`, `storage`, `*PREFIX*filecache`.`parent` as `file_parent`, ' + .'`name` `mtime`, `mimetype`, `mimepart`, `size`, `encrypted`, `etag`'; } else { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, ' - .'`*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, `file_source`, ' - .'`path`, `file_target`, `permissions`, `stime`, `expiration`, `token`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`, `token`'; } } else { $select = '*'; @@ -886,9 +704,7 @@ class Share { $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); $result = $query->execute($queryArgs); if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) - . ', select=' . $select - . ' where=' . $where, \OC_Log::ERROR); + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, \OC_Log::ERROR); } $items = array(); $targets = array(); @@ -905,8 +721,7 @@ class Share { } else if (!isset($uidOwner)) { // Check if the same target already exists if (isset($targets[$row[$column]])) { - // Check if the same owner shared with the user twice through a group and user share - // - this is allowed + // Check if the same owner shared with the user twice through a group and user share - this is allowed $id = $targets[$row[$column]]; if ($items[$id]['uid_owner'] == $row['uid_owner']) { // Switch to group share type to ensure resharing conditions aren't bypassed @@ -914,11 +729,8 @@ class Share { $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; $items[$id]['share_with'] = $row['share_with']; } - // Switch ids if sharing permission is granted on only one share - // to ensure correct parent is used if resharing - if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE - && (int)$row['permissions'] & PERMISSION_SHARE - ) { + // Switch ids if sharing permission is granted on only one share to ensure correct parent is used if resharing + if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE && (int)$row['permissions'] & PERMISSION_SHARE) { $items[$row['id']] = $items[$id]; unset($items[$id]); $id = $row['id']; @@ -936,7 +748,8 @@ class Share { if (isset($row['parent'])) { $row['path'] = '/Shared/'.basename($row['path']); } else { - $row['path'] = substr($row['path'], $root); + // Strip 'files' from path + $row['path'] = substr($row['path'], 5); } } if (isset($row['expiration'])) { @@ -961,7 +774,7 @@ class Share { $collectionItems = array(); foreach ($items as &$row) { // Return only the item instead of a 2-dimensional array - if ($limit == 1 && $row['item_type'] == $itemType && $row[$column] == $item) { + if ($limit == 1 && $row[$column] == $item && ($row['item_type'] == $itemType || $itemType == 'file')) { if ($format == self::FORMAT_NONE) { return $row; } else { @@ -970,9 +783,7 @@ class Share { } // Check if this is a collection of the requested item type if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { - if (($collectionBackend = self::getBackend($row['item_type'])) - && $collectionBackend instanceof Share_Backend_Collection - ) { + if (($collectionBackend = self::getBackend($row['item_type'])) && $collectionBackend instanceof Share_Backend_Collection) { // Collections can be inside collections, check if the item is a collection if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { $collectionItems[] = $row; @@ -996,9 +807,10 @@ class Share { if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { $childItem['file_source'] = $child['source']; } else { - $childItem['file_source'] = \OC_FileCache::getId($child['file_path']); + $meta = \OC\Files\Filesystem::getFileInfo($child['file_path']); + $childItem['file_source'] = $meta['fileid']; } - $childItem['file_target'] = \OC_Filesystem::normalizePath($child['file_path']); + $childItem['file_target'] = \OC\Files\Filesystem::normalizePath($child['file_path']); } if (isset($item)) { if ($childItem[$column] == $item) { @@ -1029,6 +841,9 @@ class Share { if (!empty($collectionItems)) { $items = array_merge($items, $collectionItems); } + if (empty($items) && $limit == 1) { + return false; + } if ($format == self::FORMAT_NONE) { return $items; } else if ($format == self::FORMAT_STATUSES) { @@ -1064,18 +879,10 @@ class Share { * @param bool|array Parent folder target (optional) * @return bool Returns true on success or false on failure */ - private static function put($itemType, - $itemSource, - $shareType, - $shareWith, - $uidOwner, - $permissions, - $parentFolder = null, - $token = null) { + private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder = null, $token = null) { $backend = self::getBackend($itemType); // Check if this is a reshare - $checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true); - if ($checkReshare) { + if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { // Check if attempting to share back to owner if ($checkReshare['uid_owner'] == $shareWith && $shareType == self::SHARE_TYPE_USER) { $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is the original sharer'; @@ -1085,8 +892,7 @@ class Share { // Check if share permissions is granted if ((int)$checkReshare['permissions'] & PERMISSION_SHARE) { if (~(int)$checkReshare['permissions'] & $permissions) { - $message = 'Sharing '.$itemSource.' failed, ' - .'because the permissions exceed permissions granted to '.$uidOwner; + $message = 'Sharing '.$itemSource.' failed, because the permissions exceed permissions granted to '.$uidOwner; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } else { @@ -1108,8 +914,7 @@ class Share { $suggestedItemTarget = null; $suggestedFileTarget = null; if (!$backend->isValidSource($itemSource, $uidOwner)) { - $message = 'Sharing '.$itemSource.' failed, ' - .'because the sharing backend for '.$itemType.' could not find its source'; + $message = 'Sharing '.$itemSource.' failed, because the sharing backend for '.$itemType.' could not find its source'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } @@ -1119,7 +924,8 @@ class Share { if ($itemType == 'file' || $itemType == 'folder') { $fileSource = $itemSource; } else { - $fileSource = \OC_FileCache::getId($filePath); + $meta = \OC\Files\Filesystem::getFileInfo($filePath); + $fileSource = $meta['fileid']; } if ($fileSource == -1) { $message = 'Sharing '.$itemSource.' failed, because the file could not be found in the file cache'; @@ -1131,27 +937,14 @@ class Share { $fileSource = null; } } - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`,' - .' `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`, `token`' - .') VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`, `token`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); // Share with a group if ($shareType == self::SHARE_TYPE_GROUP) { - $groupItemTarget = self::generateTarget($itemType, - $itemSource, - $shareType, - $shareWith['group'], - $uidOwner, - $suggestedItemTarget); + $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], $uidOwner, $suggestedItemTarget); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $groupFileTarget = self::generateTarget('file', - $filePath, - $shareType, - $shareWith['group'], - $uidOwner, - $suggestedFileTarget); + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); // Set group default file target for future use $parentFolders[0]['folder'] = $groupFileTarget; } else { @@ -1160,50 +953,21 @@ class Share { $parent = $parentFolder[0]['id']; } } else { - $groupFileTarget = self::generateTarget('file', - $filePath, - $shareType, - $shareWith['group'], - $uidOwner, - $suggestedFileTarget); + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); } } else { $groupFileTarget = null; } - $query->execute(array( - $itemType, - $itemSource, - $groupItemTarget, - $parent, - $shareType, - $shareWith['group'], - $uidOwner, - $permissions, - time(), - $fileSource, - $groupFileTarget, - $token)); + $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); // Save this id, any extra rows for this group share will need to reference it $parent = \OC_DB::insertid('*PREFIX*share'); // Loop through all users of this group in case we need to add an extra row foreach ($shareWith['users'] as $uid) { - $itemTarget = self::generateTarget($itemType, - $itemSource, - self::SHARE_TYPE_USER, - $uid, - $uidOwner, - $suggestedItemTarget, - $parent); + $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedItemTarget, $parent); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', - $filePath, - self::SHARE_TYPE_USER, - $uid, - $uidOwner, - $suggestedFileTarget, - $parent); + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); if ($fileTarget != $groupFileTarget) { $parentFolders[$uid]['folder'] = $fileTarget; } @@ -1212,13 +976,7 @@ class Share { $parent = $parentFolder[$uid]['id']; } } else { - $fileTarget = self::generateTarget('file', - $filePath, - self::SHARE_TYPE_USER, - $uid, - $uidOwner, - $suggestedFileTarget, - $parent); + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); } } else { $fileTarget = null; @@ -1239,19 +997,7 @@ class Share { )); // Insert an extra row for the group share if the item or file target is unique for this user if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { - $query->execute(array( - $itemType, - $itemSource, - $itemTarget, - $parent, - self::$shareTypeGroupUserUnique, - $uid, - $uidOwner, - $permissions, - time(), - $fileSource, - $fileTarget, - $token)); + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), $fileSource, $fileTarget, $token)); $id = \OC_DB::insertid('*PREFIX*share'); } } @@ -1260,50 +1006,23 @@ class Share { return $parentFolders; } } else { - $itemTarget = self::generateTarget($itemType, - $itemSource, - $shareType, - $shareWith, - $uidOwner, - $suggestedItemTarget); + $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedItemTarget); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', - $filePath, - $shareType, - $shareWith, - $uidOwner, - $suggestedFileTarget); + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); $parentFolders['folder'] = $fileTarget; } else { $fileTarget = $parentFolder['folder'].$itemSource; $parent = $parentFolder['id']; } } else { - $fileTarget = self::generateTarget('file', - $filePath, - $shareType, - $shareWith, - $uidOwner, - $suggestedFileTarget); + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); } } else { $fileTarget = null; } - $query->execute(array( - $itemType, - $itemSource, - $itemTarget, - $parent, - $shareType, - $shareWith, - $uidOwner, - $permissions, - time(), - $fileSource, - $fileTarget, - $token)); + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, $permissions, time(), $fileSource, $fileTarget, $token)); $id = \OC_DB::insertid('*PREFIX*share'); \OC_Hook::emit('OCP\Share', 'post_shared', array( 'itemType' => $itemType, @@ -1338,13 +1057,7 @@ class Share { * @param int The id of the parent group share (optional) * @return string Item target */ - private static function generateTarget($itemType, - $itemSource, - $shareType, - $shareWith, - $uidOwner, - $suggestedTarget = null, - $groupParent = null) { + private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null) { $backend = self::getBackend($itemType); if ($shareType == self::SHARE_TYPE_LINK) { if (isset($suggestedTarget)) { @@ -1396,7 +1109,8 @@ class Share { } if ($item['uid_owner'] == $uidOwner) { if ($itemType == 'file' || $itemType == 'folder') { - if ($item['file_source'] == \OC_FileCache::getId($itemSource)) { + $meta = \OC\Files\Filesystem::getFileInfo($itemSource); + if ($item['file_source'] == $meta['fileid']) { return $target; } } else if ($item['item_source'] == $itemSource) { @@ -1410,43 +1124,18 @@ class Share { // Find similar targets to improve backend's chances to generate a unqiue target if ($userAndGroups) { if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'`' - .' FROM `*PREFIX*share`' - .' WHERE `item_type` IN (\'file\', \'folder\')' - .' AND `share_type` IN (?,?,?)' - .' AND `share_with`' - .' IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array( - self::SHARE_TYPE_USER, - self::SHARE_TYPE_GROUP, - self::$shareTypeGroupUserUnique)); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'`' - .' FROM `*PREFIX*share`' - .' WHERE `item_type` = ?' - .' AND `share_type` IN (?,?,?)' - .' AND `share_with`' - .' IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array( - $itemType, - self::SHARE_TYPE_USER, - self::SHARE_TYPE_GROUP, - self::$shareTypeGroupUserUnique)); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); } } else { if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'`' - .' FROM `*PREFIX*share`' - .' WHERE `item_type` IN (\'file\', \'folder\')' - .' AND `share_type` = ?' - .' AND `share_with` = ?'); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` = ? AND `share_with` = ?'); $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'`' - .' FROM `*PREFIX*share`' - .' WHERE `item_type` = ?' - .' AND `share_type` = ?' - .' AND `share_with` = ?'); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); } } @@ -1474,43 +1163,21 @@ class Share { $parents = array($parent); while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - // Check the owner on the first search of reshares, - // useful for finding and deleting the reshares by a single user of a group share + // Check the owner on the first search of reshares, useful for finding and deleting the reshares by a single user of a group share if (count($ids) == 1 && isset($uidOwner)) { - $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`' - .' FROM `*PREFIX*share`' - .' WHERE `parent` IN ('.$parents.')' - .' AND `uid_owner` = ?'); + $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); $result = $query->execute(array($uidOwner)); } else { - $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`' - .' FROM `*PREFIX*share`' - .' WHERE `parent` IN ('.$parents.')'); + $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); } // Reset parents array, only go through loop again if items are found $parents = array(); while ($item = $result->fetchRow()) { - // Search for a duplicate parent share, - // this occurs when an item is shared to the same user through a group and user - // or the same item is shared by different users + // Search for a duplicate parent share, this occurs when an item is shared to the same user through a group and user or the same item is shared by different users $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); - $query = \OC_DB::prepare('SELECT `id`, `permissions`' - .' FROM `*PREFIX*share`' - .' WHERE `item_type` = ?' - .' AND `item_target` = ?' - .' AND `share_type` IN (?,?,?)' - .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')' - .' AND `uid_owner` != ?' - .' AND `id` != ?'); - $duplicateParent = $query->execute(array( - $item['item_type'], - $item['item_target'], - self::SHARE_TYPE_USER, - self::SHARE_TYPE_GROUP, - self::$shareTypeGroupUserUnique, - $item['uid_owner'], - $item['parent']))->fetchRow(); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `item_type` = ? AND `item_target` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\') AND `uid_owner` != ? AND `id` != ?'); + $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, $item['uid_owner'], $item['parent']))->fetchRow(); if ($duplicateParent) { // Change the parent to the other item id if share permission is granted if ($duplicateParent['permissions'] & PERMISSION_SHARE) { @@ -1539,10 +1206,7 @@ class Share { public static function post_deleteUser($arguments) { // Delete any items shared with the deleted user - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`' - .' WHERE `share_with` = ?' - .' AND `share_type` = ?' - .' OR `share_type` = ?'); + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); // Delete any items the deleted user shared $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); @@ -1556,46 +1220,21 @@ class Share { // Find the group shares and check if the user needs a unique target $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`,' - .' `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' - .' `file_target`)' - .' VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); while ($item = $result->fetchRow()) { if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { $itemTarget = null; } else { - $itemTarget = self::generateTarget($item['item_type'], - $item['item_source'], - self::SHARE_TYPE_USER, - $arguments['uid'], - $item['uid_owner'], - $item['item_target'], - $item['id']); + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); } if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], - $item['item_source'], - self::SHARE_TYPE_USER, - $arguments['uid'], - $item['uid_owner'], - $item['file_target'], - $item['id']); + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); } else { $fileTarget = null; } // Insert an extra row for the group share if the item or file target is unique for this user if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], - $item['item_source'], - $itemTarget, - $item['id'], - self::$shareTypeGroupUserUnique, - $arguments['uid'], - $item['uid_owner'], - $item['permissions'], - $item['stime'], - $item['file_source'], - $fileTarget)); + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], $item['stime'], $item['file_source'], $fileTarget)); \OC_DB::insertid('*PREFIX*share'); } } @@ -1603,15 +1242,8 @@ class Share { public static function post_removeFromGroup($arguments) { // TODO Don't call if user deleted? - $query = \OC_DB::prepare('SELECT `id`, `share_type`' - .' FROM `*PREFIX*share`' - .' WHERE (`share_type` = ? AND `share_with` = ?)' - .' OR (`share_type` = ? AND `share_with` = ?)'); - $result = $query->execute(array( - self::SHARE_TYPE_GROUP, - $arguments['gid'], - self::$shareTypeGroupUserUnique, - $arguments['uid'])); + $query = \OC_DB::prepare('SELECT `id`, `share_type` FROM `*PREFIX*share` WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, $arguments['uid'])); while ($item = $result->fetchRow()) { if ($item['share_type'] == self::SHARE_TYPE_GROUP) { // Delete all reshares by this user of the group share @@ -1668,13 +1300,10 @@ interface Share_Backend { * @param int Format * @return ? * - * The items array is a 3-dimensional array with the item_source as the first key - * and the share id as the second key to an array with the share info. + * The items array is a 3-dimensional array with the item_source as the first key and the share id as the second key to an array with the share info. * The key/value pairs included in the share info depend on the function originally called: - * If called by getItem(s)Shared: id, item_type, item, item_source, - * share_type, share_with, permissions, stime, file_source - * If called by getItem(s)SharedWith: id, item_type, item, item_source, - * item_target, share_type, share_with, permissions, stime, file_source, file_target + * If called by getItem(s)Shared: id, item_type, item, item_source, share_type, share_with, permissions, stime, file_source + * If called by getItem(s)SharedWith: id, item_type, item, item_source, item_target, share_type, share_with, permissions, stime, file_source, file_target * This function allows the backend to control the output of shared items with custom formats. * It is only called through calls to the public getItem(s)Shared(With) functions. */ @@ -1707,8 +1336,7 @@ interface Share_Backend_Collection extends Share_Backend { /** * @brief Get the sources of the children of the item * @param string Item source - * @return array Returns an array of children each inside an array with the keys: - * source, target, and file_path if applicable + * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable */ public function getChildren($itemSource); diff --git a/lib/public/util.php b/lib/public/util.php index 413dbcccd28..a78a52f326e 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -218,6 +218,28 @@ class Util { return(\OC_Request::serverProtocol()); } + /** + * @brief Returns the request uri + * @returns the request uri + * + * Returns the request uri, even if the website uses one or more + * reverse proxies + */ + public static function getRequestUri() { + return(\OC_Request::requestUri()); + } + + /** + * @brief Returns the script name + * @returns the script name + * + * Returns the script name, even if the website uses one or more + * reverse proxies + */ + public static function getScriptName() { + return(\OC_Request::scriptName()); + } + /** * @brief Creates path to an image * @param string $app app diff --git a/lib/request.php b/lib/request.php index f2f15c21103..1661a1406ca 100755 --- a/lib/request.php +++ b/lib/request.php @@ -7,6 +7,15 @@ */ class OC_Request { + /** + * @brief Check overwrite condition + * @returns true/false + */ + private static function isOverwriteCondition() { + $regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/'; + return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1; + } + /** * @brief Returns the server host * @returns the server host @@ -18,7 +27,7 @@ class OC_Request { if(OC::$CLI) { return 'localhost'; } - if(OC_Config::getValue('overwritehost', '')<>'') { + if(OC_Config::getValue('overwritehost', '')<>'' and self::isOverwriteCondition()) { return OC_Config::getValue('overwritehost'); } if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { @@ -43,7 +52,7 @@ class OC_Request { * Returns the server protocol. It respects reverse proxy servers and load balancers */ public static function serverProtocol() { - if(OC_Config::getValue('overwriteprotocol', '')<>'') { + if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) { return OC_Config::getValue('overwriteprotocol'); } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { @@ -58,6 +67,38 @@ class OC_Request { return $proto; } + /** + * @brief Returns the request uri + * @returns the request uri + * + * Returns the request uri, even if the website uses one or more + * reverse proxies + */ + public static function requestUri() { + $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; + if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { + $uri = self::scriptName() . substr($uri, strlen($_SERVER['SCRIPT_NAME'])); + } + return $uri; + } + + /** + * @brief Returns the script name + * @returns the script name + * + * Returns the script name, even if the website uses one or more + * reverse proxies + */ + public static function scriptName() { + $name = $_SERVER['SCRIPT_NAME']; + if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { + $serverroot = str_replace("\\", '/', substr(__DIR__, 0, -4)); + $suburi = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen($serverroot))); + $name = OC_Config::getValue('overwritewebroot', '') . $suburi; + } + return $name; + } + /** * @brief get Path info from request * @returns string Path info or false when not found diff --git a/lib/search.php b/lib/search.php index 3c3378ad13c..e5a65f7157d 100644 --- a/lib/search.php +++ b/lib/search.php @@ -57,6 +57,22 @@ class OC_Search{ } return $results; } + + /** + * remove an existing search provider + * @param string $provider class name of a OC_Search_Provider + */ + public static function removeProvider($provider) { + self::$registeredProviders = array_filter( + self::$registeredProviders, + function ($element) use ($provider) { + return ($element['class'] != $provider); + } + ); + // force regeneration of providers on next search + self::$providers=array(); + } + /** * create instances of all the registered search providers diff --git a/lib/search/provider/file.php b/lib/search/provider/file.php index ea536ef77de..4d88c2a87f1 100644 --- a/lib/search/provider/file.php +++ b/lib/search/provider/file.php @@ -2,7 +2,7 @@ class OC_Search_Provider_File extends OC_Search_Provider{ function search($query) { - $files=OC_FileCache::search($query, true); + $files=\OC\Files\Filesystem::search($query, true); $results=array(); $l=OC_L10N::get('lib'); foreach($files as $fileData) { diff --git a/lib/template.php b/lib/template.php index 238d8a8ad0f..fb9f7ad62d9 100644 --- a/lib/template.php +++ b/lib/template.php @@ -192,7 +192,7 @@ class OC_Template{ // Content Security Policy // If you change the standard policy, please also change it in config.sample.php - $policy = OC_Config::getValue('custom_csp_policy', 'default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *'); + $policy = OC_Config::getValue('custom_csp_policy', 'default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:'); header('Content-Security-Policy:'.$policy); // Standard header('X-WebKit-CSP:'.$policy); // Older webkit browsers diff --git a/lib/user/database.php b/lib/user/database.php index 7deeb0c4697..8dfd9534a96 100644 --- a/lib/user/database.php +++ b/lib/user/database.php @@ -156,12 +156,23 @@ class OC_User_Database extends OC_User_Backend { public function getDisplayNames($search = '', $limit = null, $offset = null) { $displayNames = array(); $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset); - $result = $query->execute(array($search.'%')); + $result = $query->execute(array($search.'%')); $users = array(); - while ($row = $result->fetchRow()) { - $displayName = trim($row['displayname'], ' '); - $displayNames[$row['uid']] = empty($displayName) ? $row['uid'] : $displayName; - } + while ($row = $result->fetchRow()) { + $displayNames[$row['uid']] = $row['displayname']; + } + + // let's see if we can also find some users who don't have a display name yet + $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset); + $result = $query->execute(array($search.'%')); + while ($row = $result->fetchRow()) { + $displayName = trim($row['displayname'], ' '); + if ( empty($displayName) ) { + $displayNames[$row['uid']] = $row['uid']; + } + } + + return $displayNames; } diff --git a/lib/util.php b/lib/util.php index 0543df979d3..363e3f105c0 100755 --- a/lib/util.php +++ b/lib/util.php @@ -39,7 +39,7 @@ class OC_Util { $CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ); //first set up the local "root" storage if(!self::$rootMounted) { - OC_Filesystem::mount('OC_Filestorage_Local', array('datadir'=>$CONFIG_DATADIRECTORY), '/'); + \OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$CONFIG_DATADIRECTORY), '/'); self::$rootMounted=true; } @@ -51,51 +51,30 @@ class OC_Util { mkdir( $userdirectory, 0755, true ); } //jail the user into his "home" directory - OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => $user_root), $user); - OC_Filesystem::init($user_dir, $user); + \OC\Files\Filesystem::init($user_dir); + $quotaProxy=new OC_FileProxy_Quota(); $fileOperationProxy = new OC_FileProxy_FileOperations(); OC_FileProxy::register($quotaProxy); OC_FileProxy::register($fileOperationProxy); - // Load personal mount config - self::loadUserMountPoints($user); + OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir)); } + return true; } public static function tearDownFS() { - OC_Filesystem::tearDown(); + \OC\Files\Filesystem::tearDown(); self::$fsSetup=false; } - public static function loadUserMountPoints($user) { - $user_dir = '/'.$user.'/files'; - $user_root = OC_User::getHome($user); - $userdirectory = $user_root . '/files'; - if (is_file($user_root.'/mount.php')) { - $mountConfig = include $user_root.'/mount.php'; - if (isset($mountConfig['user'][$user])) { - foreach ($mountConfig['user'][$user] as $mountPoint => $options) { - OC_Filesystem::mount($options['class'], $options['options'], $mountPoint); - } - } - - $mtime=filemtime($user_root.'/mount.php'); - $previousMTime=OC_Preferences::getValue($user, 'files', 'mountconfigmtime', 0); - if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated - OC_FileCache::triggerUpdate($user); - OC_Preferences::setValue($user, 'files', 'mountconfigmtime', $mtime); - } - } - } - /** * get the current installed version of ownCloud * @return array */ public static function getVersion() { // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4.90.0. This is not visible to the user - return array(4, 91, 03); + return array(4, 91, 9); } /** @@ -157,14 +136,14 @@ class OC_Util { * @param string $text the text content for the element */ public static function addHeader( $tag, $attributes, $text='') { - self::$headers[]=array('tag'=>$tag,'attributes'=>$attributes, 'text'=>$text); + self::$headers[] = array('tag'=>$tag, 'attributes'=>$attributes, 'text'=>$text); } /** * formats a timestamp in the "right" way * * @param int timestamp $timestamp - * @param bool dateOnly option to ommit time from the result + * @param bool dateOnly option to omit time from the result */ public static function formatDate( $timestamp, $dateOnly=false) { if(isset($_SESSION['timezone'])) {//adjust to clients timezone if we know it @@ -207,45 +186,20 @@ class OC_Util { in owncloud or disabling the appstore in the config file."); } } - $CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ); - //check for correct file permissions - if(!stristr(PHP_OS, 'WIN')) { - $permissionsModHint="Please change the permissions to 0770 so that the directory cannot be listed by other users."; - $prems=substr(decoct(@fileperms($CONFIG_DATADIRECTORY)), -3); - if(substr($prems, -1)!='0') { - OC_Helper::chmodr($CONFIG_DATADIRECTORY, 0770); - clearstatcache(); - $prems=substr(decoct(@fileperms($CONFIG_DATADIRECTORY)), -3); - if(substr($prems, 2, 1)!='0') { - $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') is readable for other users
', 'hint'=>$permissionsModHint); - } - } - if( OC_Config::getValue( "enablebackup", false )) { - $CONFIG_BACKUPDIRECTORY = OC_Config::getValue( "backupdirectory", OC::$SERVERROOT."/backup" ); - $prems=substr(decoct(@fileperms($CONFIG_BACKUPDIRECTORY)), -3); - if(substr($prems, -1)!='0') { - OC_Helper::chmodr($CONFIG_BACKUPDIRECTORY, 0770); - clearstatcache(); - $prems=substr(decoct(@fileperms($CONFIG_BACKUPDIRECTORY)), -3); - if(substr($prems, 2, 1)!='0') { - $errors[]=array('error'=>'Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable for other users
', 'hint'=>$permissionsModHint); - } - } - } - }else{ - //TODO: permissions checks for windows hosts - } // Create root dir. if(!is_dir($CONFIG_DATADIRECTORY)) { $success=@mkdir($CONFIG_DATADIRECTORY); - if(!$success) { + if ($success) { + $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); + } else { $errors[]=array('error'=>"Can't create data directory (".$CONFIG_DATADIRECTORY.")", 'hint'=>"You can usually fix this by giving the webserver write access to the ownCloud directory '".OC::$SERVERROOT."' (in a terminal, use the command 'chown -R www-data:www-data /path/to/your/owncloud/install/data' "); } } else if(!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) { $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud
', 'hint'=>$permissionsHint); + } else { + $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); } - // check if all required php modules are present if(!class_exists('ZipArchive')) { $errors[]=array('error'=>'PHP module zip not installed.
', 'hint'=>'Please ask your server administrator to install the module.'); @@ -289,6 +243,17 @@ class OC_Util { $web_server_restart= false; } + $handler = ini_get("session.save_handler"); + if($handler == "files") { + $tmpDir = session_save_path(); + if($tmpDir != ""){ + if(!@is_writable($tmpDir)){ + $errors[]=array('error' => 'The temporary folder used by PHP to save the session data is either incorrect or not writable! Please check : '.session_save_path().'
', + 'hint'=>'Please ask your server administrator to grant write access or define another temporary folder.'); + } + } + } + if($web_server_restart) { $errors[]=array('error'=>'PHP modules have been installed, but they are still listed as missing?
', 'hint'=>'Please ask your server administrator to restart the web server.'); } @@ -296,6 +261,29 @@ class OC_Util { return $errors; } + /** + * Check for correct file permissions of data directory + * @return array arrays with error messages and hints + */ + public static function checkDataDirectoryPermissions($dataDirectory) { + $errors = array(); + if (stristr(PHP_OS, 'WIN')) { + //TODO: permissions checks for windows hosts + } else { + $permissionsModHint = 'Please change the permissions to 0770 so that the directory cannot be listed by other users.'; + $prems = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($prems, -1) != '0') { + OC_Helper::chmodr($dataDirectory, 0770); + clearstatcache(); + $prems = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($prems, 2, 1) != '0') { + $errors[] = array('error' => 'Data directory ('.$dataDirectory.') is readable for other users
', 'hint' => $permissionsModHint); + } + } + } + return $errors; + } + public static function displayLoginPage($errors = array()) { $parameters = array(); foreach( $errors as $key => $value ) { @@ -333,7 +321,7 @@ class OC_Util { public static function checkLoggedIn() { // Check if we are a user if( !OC_User::isLoggedIn()) { - header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', array('redirect_url' => $_SERVER["REQUEST_URI"]))); + header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', array('redirect_url' => OC_Request::requestUri()))); exit(); } } @@ -397,6 +385,17 @@ class OC_Util { return $id; } + /** + * @brief Static lifespan (in seconds) when a request token expires. + * @see OC_Util::callRegister() + * @see OC_Util::isCallRegistered() + * @description + * Also required for the client side to compute the piont in time when to + * request a fresh token. The client will do so when nearly 97% of the + * timespan coded here has expired. + */ + public static $callLifespan = 3600; // 3600 secs = 1 hour + /** * @brief Register an get/post call. Important to prevent CSRF attacks. * @todo Write howto: CSRF protection guide @@ -405,6 +404,8 @@ class OC_Util { * Creates a 'request token' (random) and stores it inside the session. * Ever subsequent (ajax) request must use such a valid token to succeed, * otherwise the request will be denied as a protection against CSRF. + * The tokens expire after a fixed lifespan. + * @see OC_Util::$callLifespan * @see OC_Util::isCallRegistered() */ public static function callRegister() { @@ -423,6 +424,7 @@ class OC_Util { /** * @brief Check an ajax get/post call if the request token is valid. * @return boolean False if request token is not set or is invalid. + * @see OC_Util::$callLifespan * @see OC_Util::callRegister() */ public static function isCallRegistered() { diff --git a/ocs/providers.php b/ocs/providers.php index 0c7cbaeff08..bf94b85dcfb 100644 --- a/ocs/providers.php +++ b/ocs/providers.php @@ -23,7 +23,7 @@ require_once '../lib/base.php'; -$url=OCP\Util::getServerProtocol().'://'.substr(OCP\Util::getServerHost().$_SERVER['REQUEST_URI'], 0, -17).'ocs/v1.php/'; +$url=OCP\Util::getServerProtocol().'://'.substr(OCP\Util::getServerHost().OCP\Util::getRequestUri(), 0, -17).'ocs/v1.php/'; echo(' diff --git a/settings/ajax/apps/ocs.php b/settings/ajax/apps/ocs.php index 1ffba26ad1d..d0205a1ba34 100644 --- a/settings/ajax/apps/ocs.php +++ b/settings/ajax/apps/ocs.php @@ -44,6 +44,11 @@ if(is_array($catagoryNames)) { } else { $pre=$app['preview']; } + if($app['label']=='recommended') { + $label='3rd Party App'; + } else { + $label='Recommended'; + } $apps[]=array( 'name'=>$app['name'], 'id'=>$app['id'], @@ -53,7 +58,8 @@ if(is_array($catagoryNames)) { 'license'=>$app['license'], 'preview'=>$pre, 'internal'=>false, - 'internallabel'=>'3rd Party App', + 'internallabel'=>$label, + 'update'=>false, ); } } diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php new file mode 100644 index 00000000000..77c0bbc3e36 --- /dev/null +++ b/settings/ajax/updateapp.php @@ -0,0 +1,17 @@ + array('appid' => $appid))); +} else { + $l = OC_L10N::get('settings'); + OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't update app.") ))); +} + + + diff --git a/settings/apps.php b/settings/apps.php index b6426a31c97..b9ed2cac93a 100644 --- a/settings/apps.php +++ b/settings/apps.php @@ -31,13 +31,17 @@ OC_App::setActiveNavigationEntry( "core_apps" ); function app_sort( $a, $b ) { if ($a['active'] != $b['active']) { - + return $b['active'] - $a['active']; - + } - + + if ($a['internal'] != $b['internal']) { + return $b['internal'] - $a['internal']; + } + return strcmp($a['name'], $b['name']); - + } $combinedApps = OC_App::listAllApps(); @@ -52,3 +56,4 @@ $appid = (isset($_GET['appid'])?strip_tags($_GET['appid']):''); $tmpl->assign('appid', $appid); $tmpl->printPage(); + diff --git a/settings/css/settings.css b/settings/css/settings.css index 4d0f6efd2c8..5a3ab2c6e97 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -22,13 +22,13 @@ form { display:inline; } table:not(.nostyle) th { height:2em; color:#999; } table:not(.nostyle) th, table:not(.nostyle) td { border-bottom:1px solid #ddd; padding:0 .5em; padding-left:.8em; text-align:left; font-weight:normal; } td.name, td.password { padding-left:.8em; } -td.password>img, td.remove>a, td.quota>img { visibility:hidden; } -td.password, td.quota { width:12em; cursor:pointer; } -td.password>span, td.quota>span { margin-right: 1.2em; color: #C7C7C7; } +td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidden; } +td.password, td.quota, td.displayName { width:12em; cursor:pointer; } +td.password>span, td.quota>span, rd.displayName>span { margin-right: 1.2em; color: #C7C7C7; } td.remove { width:1em; padding-right:1em; } -tr:hover>td.password>span { margin:0; cursor:pointer; } -tr:hover>td.remove>a, tr:hover>td.password>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; } +tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; } +tr:hover>td.remove>a, tr:hover>td.password>img,tr:hover>td.displayName>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; } tr:hover>td.remove>a { float:right; } li.selected { background-color:#ddd; } #content>table:not(.nostyle) { margin-top:3em; } @@ -36,7 +36,7 @@ table:not(.nostyle) { width:100%; } #rightcontent { padding-left: 1em; } div.quota { float:right; display:block; position:absolute; right:25em; top:0; } div.quota-select-wrapper { position: relative; } -select.quota { position:absolute; left:0; top:0; width:10em; } +select.quota { position:absolute; left:0; top:0.5em; width:10em; } select.quota-user { position:relative; left:0; top:0; width:10em; } input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; box-shadow:none; } div.quota>span { position:absolute; right:0; white-space:nowrap; top:.7em; color:#888; text-shadow:0 1px 0 #fff; } @@ -50,10 +50,13 @@ li { color:#888; } li.active { color:#000; } small.externalapp { color:#FFF; background-color:#BBB; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;} small.externalapp.list { float: right; } +small.recommendedapp { color:#FFF; background-color:#888; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;} +small.recommendedapp.list { float: right; } span.version { margin-left:1em; margin-right:1em; color:#555; } .app { position: relative; display: inline-block; padding: 0.2em 0 0.2em 0 !important; text-overflow: hidden; overflow: hidden; white-space: nowrap; /*transition: .2s max-width linear; -o-transition: .2s max-width linear; -moz-transition: .2s max-width linear; -webkit-transition: .2s max-width linear; -ms-transition: .2s max-width linear;*/ } -.app.externalapp { max-width: 12.5em; z-index: 100; } +.app.externalapp { max-width: 12.5em; } +.app.recommendedapp { max-width: 12.5em; } /* Transition to complete width! */ .app:hover, .app:active { max-width: inherit; } diff --git a/settings/img/admin.png b/settings/img/admin.png index 13d653f92a8..d883f0b61a3 100644 Binary files a/settings/img/admin.png and b/settings/img/admin.png differ diff --git a/settings/img/admin.svg b/settings/img/admin.svg index b3c4a32451d..1ea226231b3 100644 --- a/settings/img/admin.svg +++ b/settings/img/admin.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="apps.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/apps.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="admin.svg" + inkscape:export-filename="admin.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> - - - - - - - - - - - - - - - - + + diff --git a/settings/img/apps.png b/settings/img/apps.png index e9845d012be..de5ccbd2c5f 100644 Binary files a/settings/img/apps.png and b/settings/img/apps.png differ diff --git a/settings/img/apps.svg b/settings/img/apps.svg index cda246bc4a8..d3415921209 100644 --- a/settings/img/apps.svg +++ b/settings/img/apps.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="file.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/file.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="apps.svg" + inkscape:export-filename="apps.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> - - - - - - - - - - - - - - + + diff --git a/settings/img/help.png b/settings/img/help.png index 37ccb356830..c0200096735 100644 Binary files a/settings/img/help.png and b/settings/img/help.png differ diff --git a/settings/img/help.svg b/settings/img/help.svg index 1e07aed8527..55b68e6baf2 100644 --- a/settings/img/help.svg +++ b/settings/img/help.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="users.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/users.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="help.svg" + inkscape:export-filename="help.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> - - - - - + + diff --git a/settings/img/personal.png b/settings/img/personal.png index 8edc5a16cd6..c80fed1b62b 100644 Binary files a/settings/img/personal.png and b/settings/img/personal.png differ diff --git a/settings/img/personal.svg b/settings/img/personal.svg index 61318619993..2f3a77d07a2 100644 --- a/settings/img/personal.svg +++ b/settings/img/personal.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="image.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/image.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="personal.svg" + inkscape:export-filename="personal.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> - - - - - - + + diff --git a/settings/img/users.png b/settings/img/users.png index 79ad3d667e1..a811af47c1c 100644 Binary files a/settings/img/users.png and b/settings/img/users.png differ diff --git a/settings/img/users.svg b/settings/img/users.svg index 1c8c8955693..5ef31b763bb 100644 --- a/settings/img/users.svg +++ b/settings/img/users.svg @@ -14,9 +14,9 @@ width="16" height="16" id="svg11300" - inkscape:version="0.48.1 r9760" - sodipodi:docname="personal.svg" - inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/personal.png" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="users.svg" + inkscape:export-filename="users.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> - - - - - - - + + diff --git a/settings/js/apps.js b/settings/js/apps.js index c4c36b4bb12..8bee958ec57 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -24,6 +24,14 @@ OC.Settings.Apps = OC.Settings.Apps || { page.find('span.author').text(app.author); page.find('span.licence').text(app.licence); + if (app.update != false) { + page.find('input.update').show(); + page.find('input.update').data('appid', app.id); + page.find('input.update').attr('value',t('settings', 'Update to {appversion}', {appversion:app.update})); + } else { + page.find('input.update').hide(); + } + page.find('input.enable').show(); page.find('input.enable').val((app.active) ? t('settings', 'Disable') : t('settings', 'Enable')); page.find('input.enable').data('appid', app.id); @@ -44,6 +52,7 @@ OC.Settings.Apps = OC.Settings.Apps || { appData = appitem.data('app'); appData.active = !active; appitem.data('app', appData); + element.val(t('settings','Please wait....')); if(active) { $.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appid},function(result) { if(!result || result.status!='success') { @@ -70,6 +79,20 @@ OC.Settings.Apps = OC.Settings.Apps || { $('#leftcontent li[data-id="'+appid+'"]').addClass('active'); } }, + updateApp:function(appid, element) { + console.log('updateApp:', appid, element); + element.val(t('settings','Updating....')); + $.post(OC.filePath('settings','ajax','updateapp.php'),{appid:appid},function(result) { + if(!result || result.status!='success') { + OC.dialogs.alert(t('settings','Error while updating app'),t('settings','Error')); + } + else { + element.val(t('settings','Updated')); + element.hide(); + } + },'json'); + }, + insertApp:function(appdata) { var applist = $('#leftcontent li'); var app = @@ -109,12 +132,12 @@ OC.Settings.Apps = OC.Settings.Apps || { var container = $('#apps'); if(container.children('li[data-id="'+entry.id+'"]').length === 0){ - var li=$('
  • '); + var li=$('
  • ').attr({class: 'enabled-app'}); li.attr('data-id', entry.id); - var a=$(''); - a.attr('style', 'background-image: url('+entry.icon+')'); + var img= $('').attr({ src: entry.icon, class:'icon'}); + li.append(img); + var a=$('').attr('href', entry.href); a.text(entry.name); - a.attr('href', entry.href); li.append(a); container.append(li); } @@ -154,6 +177,13 @@ $(document).ready(function(){ OC.Settings.Apps.enableApp(appid, active, element); } }); + $('#rightcontent input.update').click(function(){ + var element = $(this); + var appid=$(this).data('appid'); + if(appid) { + OC.Settings.Apps.updateApp(appid, element); + } + }); if(appid) { var item = $('#leftcontent li[data-id="'+appid+'"]'); diff --git a/settings/js/users.js b/settings/js/users.js index 424d00b51a7..094cddda294 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -237,12 +237,14 @@ var UserList = { }); } } -} +}; $(document).ready(function () { $('tbody tr:last').bind('inview', function (event, isInView, visiblePartX, visiblePartY) { - UserList.update(); + OC.Router.registerLoadedCallback(function(){ + UserList.update(); + }); }); function setQuota(uid, quota, ready) { @@ -257,12 +259,11 @@ $(document).ready(function () { ); } - $('select[multiple]').each(function (index, element) { UserList.applyMultiplySelect($(element)); }); - $('td.remove>a').live('click', function (event) { + $('table').on('click', 'td.remove>a', function (event) { var row = $(this).parent().parent(); var uid = $(row).attr('data-uid'); $(row).hide(); @@ -270,7 +271,7 @@ $(document).ready(function () { UserList.do_delete(uid); }); - $('td.password>img').live('click', function (event) { + $('table').on('click', 'td.password>img', function (event) { event.stopPropagation(); var img = $(this); var uid = img.parent().parent().attr('data-uid'); @@ -298,11 +299,11 @@ $(document).ready(function () { img.css('display', ''); }); }); - $('td.password').live('click', function (event) { + $('table').on('click', 'td.password', function (event) { $(this).children('img').click(); }); - $('td.displayName>img').live('click', function (event) { + $('table').on('click', 'td.displayName>img', function (event) { event.stopPropagation(); var img = $(this); var uid = img.parent().parent().attr('data-uid'); @@ -331,12 +332,12 @@ $(document).ready(function () { img.css('display', ''); }); }); - $('td.displayName').live('click', function (event) { + $('table').on('click', 'td.displayName', function (event) { $(this).children('img').click(); }); - $('select.quota, select.quota-user').live('change', function () { + $('select.quota, select.quota-user').on('change', function () { var select = $(this); var uid = $(this).parent().parent().parent().attr('data-uid'); var quota = $(this).val(); @@ -355,7 +356,7 @@ $(document).ready(function () { $(select).data('previous', $(select).val()); }) - $('input.quota-other').live('change', function () { + $('input.quota-other').on('change', function () { var uid = $(this).parent().parent().parent().attr('data-uid'); var quota = $(this).val(); var select = $(this).prev(); @@ -391,7 +392,7 @@ $(document).ready(function () { } }); - $('input.quota-other').live('blur', function () { + $('input.quota-other').on('blur', function () { $(this).change(); }) @@ -438,7 +439,7 @@ $(document).ready(function () { }); // Handle undo notifications OC.Notification.hide(); - $('#notification .undo').live('click', function () { + $('#notification').on('click', '.undo', function () { if ($('#notification').data('deleteuser')) { $('tbody tr').filterAttr('data-uid', UserList.deleteUid).show(); UserList.deleteCanceled = true; diff --git a/settings/l10n/af_ZA.php b/settings/l10n/af_ZA.php new file mode 100644 index 00000000000..f32b79b80f4 --- /dev/null +++ b/settings/l10n/af_ZA.php @@ -0,0 +1,4 @@ + "Wagwoord", +"New password" => "Nuwe wagwoord" +); diff --git a/settings/l10n/ar.php b/settings/l10n/ar.php index 2870527781a..402d91c48fe 100644 --- a/settings/l10n/ar.php +++ b/settings/l10n/ar.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "فشل إزالة المستخدم من المجموعة %s", "Disable" => "إيقاف", "Enable" => "تفعيل", +"Error" => "خطأ", "Saving..." => "حفظ", "__language_name__" => "__language_name__", "Add your App" => "أضف تطبيقاتك", @@ -22,6 +23,7 @@ "Select an App" => "إختر تطبيقاً", "See application page at apps.owncloud.com" => "راجع صفحة التطبيق على apps.owncloud.com", "-licensed by " => "-ترخيص من قبل ", +"Update" => "حدث", "User Documentation" => "كتاب توثيق المستخدم", "Administrator Documentation" => "كتاب توثيق المدير", "Online Documentation" => "توثيق متوفر على الشبكة", diff --git a/settings/l10n/bg_BG.php b/settings/l10n/bg_BG.php index bee057a998f..1cbbd5321c1 100644 --- a/settings/l10n/bg_BG.php +++ b/settings/l10n/bg_BG.php @@ -2,6 +2,8 @@ "Authentication error" => "Възникна проблем с идентификацията", "Invalid request" => "Невалидна заявка", "Enable" => "Включено", +"Error" => "Грешка", +"Update" => "Обновяване", "Password" => "Парола", "Email" => "E-mail", "Groups" => "Групи", diff --git a/settings/l10n/bn_BD.php b/settings/l10n/bn_BD.php index fc85e705750..60ddcfdde6d 100644 --- a/settings/l10n/bn_BD.php +++ b/settings/l10n/bn_BD.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না", "Disable" => "নিষ্ক্রিয়", "Enable" => "সক্রিয় ", +"Error" => "সমস্যা", "Saving..." => "সংরক্ষণ করা হচ্ছে..", "__language_name__" => "__language_name__", "Add your App" => "আপনার অ্যাপটি যোগ করুন", @@ -22,6 +23,7 @@ "Select an App" => "অ্যাপ নির্বাচন করুন", "See application page at apps.owncloud.com" => "apps.owncloud.com এ অ্যাপ্লিকেসন পৃষ্ঠা দেখুন", "-licensed by " => "-লাইসেন্সধারী ", +"Update" => "পরিবর্ধন", "User Documentation" => "ব্যবহারকারী সহায়িকা", "Administrator Documentation" => "প্রশাসক সহায়িকা", "Online Documentation" => "অনলাইন সহায়িকা", diff --git a/settings/l10n/ca.php b/settings/l10n/ca.php index 1f23c2cfd66..40b19c3b1c3 100644 --- a/settings/l10n/ca.php +++ b/settings/l10n/ca.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Els administradors no es poden eliminar del grup admin", "Unable to add user to group %s" => "No es pot afegir l'usuari al grup %s", "Unable to remove user from group %s" => "No es pot eliminar l'usuari del grup %s", +"Couldn't update app." => "No s'ha pogut actualitzar l'aplicació.", +"Update to {appversion}" => "Actualitza a {appversion}", "Disable" => "Desactiva", "Enable" => "Activa", +"Please wait...." => "Espereu...", +"Updating...." => "Actualitzant...", +"Error while updating app" => "Error en actualitzar l'aplicació", +"Error" => "Error", +"Updated" => "Actualitzada", "Saving..." => "S'està desant...", "__language_name__" => "Català", "Add your App" => "Afegiu la vostra aplicació", @@ -22,6 +29,7 @@ "Select an App" => "Seleccioneu una aplicació", "See application page at apps.owncloud.com" => "Mireu la pàgina d'aplicacions a apps.owncloud.com", "-licensed by " => "-propietat de ", +"Update" => "Actualitza", "User Documentation" => "Documentació d'usuari", "Administrator Documentation" => "Documentació d'administrador", "Online Documentation" => "Documentació en línia", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Useu aquesta adreça per connectar amb ownCloud des del gestor de fitxers", "Version" => "Versió", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Desenvolupat per la comunitat ownCloud, el codi font té llicència AGPL.", +"Login Name" => "Nom d'accés", "Groups" => "Grups", "Create" => "Crea", "Default Storage" => "Emmagatzemament per defecte", "Unlimited" => "Il·limitat", "Other" => "Un altre", +"Display Name" => "Nom a mostrar", "Group Admin" => "Grup Admin", "Storage" => "Emmagatzemament", +"change display name" => "canvia el nom a mostrar", +"set new password" => "estableix nova contrasenya", "Default" => "Per defecte", "Delete" => "Suprimeix" ); diff --git a/settings/l10n/cs_CZ.php b/settings/l10n/cs_CZ.php index be75a679c65..f1fd0b0b139 100644 --- a/settings/l10n/cs_CZ.php +++ b/settings/l10n/cs_CZ.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Správci se nemohou odebrat sami ze skupiny správců", "Unable to add user to group %s" => "Nelze přidat uživatele do skupiny %s", "Unable to remove user from group %s" => "Nelze odstranit uživatele ze skupiny %s", +"Couldn't update app." => "Nelze aktualizovat aplikaci.", +"Update to {appversion}" => "Aktualizovat na {appversion}", "Disable" => "Zakázat", "Enable" => "Povolit", +"Please wait...." => "Čekejte prosím...", +"Updating...." => "Aktualizuji...", +"Error while updating app" => "Chyba při aktualizaci aplikace", +"Error" => "Chyba", +"Updated" => "Aktualizováno", "Saving..." => "Ukládám...", "__language_name__" => "Česky", "Add your App" => "Přidat Vaší aplikaci", @@ -22,6 +29,7 @@ "Select an App" => "Vyberte aplikaci", "See application page at apps.owncloud.com" => "Více na stránce s aplikacemi na apps.owncloud.com", "-licensed by " => "-licencováno ", +"Update" => "Aktualizovat", "User Documentation" => "Uživatelská dokumentace", "Administrator Documentation" => "Dokumentace správce", "Online Documentation" => "Online dokumentace", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Použijte tuto adresu pro připojení k vašemu ownCloud skrze správce souborů", "Version" => "Verze", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Vyvinuto komunitou ownCloud, zdrojový kód je licencován pod AGPL.", +"Login Name" => "Přihlašovací jméno", "Groups" => "Skupiny", "Create" => "Vytvořit", "Default Storage" => "Výchozí úložiště", "Unlimited" => "Neomezeně", "Other" => "Jiná", +"Display Name" => "Zobrazované jméno", "Group Admin" => "Správa skupiny", "Storage" => "Úložiště", +"change display name" => "změnit zobrazované jméno", +"set new password" => "nastavit nové heslo", "Default" => "Výchozí", "Delete" => "Smazat" ); diff --git a/settings/l10n/da.php b/settings/l10n/da.php index f0842922d62..01c59d242c7 100644 --- a/settings/l10n/da.php +++ b/settings/l10n/da.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Brugeren kan ikke fjernes fra gruppen %s", "Disable" => "Deaktiver", "Enable" => "Aktiver", +"Error" => "Fejl", "Saving..." => "Gemmer...", "__language_name__" => "Dansk", "Add your App" => "Tilføj din App", @@ -22,6 +23,7 @@ "Select an App" => "Vælg en App", "See application page at apps.owncloud.com" => "Se applikationens side på apps.owncloud.com", "-licensed by " => "-licenseret af ", +"Update" => "Opdater", "User Documentation" => "Brugerdokumentation", "Administrator Documentation" => "Administrator Dokumentation", "Online Documentation" => "Online dokumentation", diff --git a/settings/l10n/de.php b/settings/l10n/de.php index d2a9a826aaf..04f65222b01 100644 --- a/settings/l10n/de.php +++ b/settings/l10n/de.php @@ -15,6 +15,8 @@ "Unable to remove user from group %s" => "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", "Disable" => "Deaktivieren", "Enable" => "Aktivieren", +"Error while updating app" => "Fehler beim Aktualisieren der App", +"Error" => "Fehler", "Saving..." => "Speichern...", "__language_name__" => "Deutsch (Persönlich)", "Add your App" => "Füge Deine Anwendung hinzu", @@ -22,6 +24,7 @@ "Select an App" => "Wähle eine Anwendung aus", "See application page at apps.owncloud.com" => "Weitere Anwendungen findest Du auf apps.owncloud.com", "-licensed by " => "-lizenziert von ", +"Update" => "Update durchführen", "User Documentation" => "Dokumentation für Benutzer", "Administrator Documentation" => "Dokumentation für Administratoren", "Online Documentation" => "Online-Dokumentation", @@ -49,13 +52,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Verwende diese Adresse, um Deinen Dateimanager mit Deiner ownCloud zu verbinden", "Version" => "Version", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Entwickelt von der ownCloud-Community, der Quellcode ist unter der AGPL lizenziert.", +"Login Name" => "Loginname", "Groups" => "Gruppen", "Create" => "Anlegen", "Default Storage" => "Standard-Speicher", "Unlimited" => "Unbegrenzt", "Other" => "Andere", +"Display Name" => "Anzeigename", "Group Admin" => "Gruppenadministrator", "Storage" => "Speicher", +"change display name" => "Anzeigenamen ändern", +"set new password" => "Neues Passwort setzen", "Default" => "Standard", "Delete" => "Löschen" ); diff --git a/settings/l10n/de_DE.php b/settings/l10n/de_DE.php index cb735adfdf9..5358212dbcd 100644 --- a/settings/l10n/de_DE.php +++ b/settings/l10n/de_DE.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Administratoren können sich nicht selbst aus der admin-Gruppe löschen", "Unable to add user to group %s" => "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden", "Unable to remove user from group %s" => "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", +"Couldn't update app." => "Die App konnte nicht geupdated werden.", +"Update to {appversion}" => "Update zu {appversion}", "Disable" => "Deaktivieren", "Enable" => "Aktivieren", +"Please wait...." => "Bitte warten....", +"Updating...." => "Update...", +"Error while updating app" => "Es ist ein Fehler während des Updates aufgetreten", +"Error" => "Fehler", +"Updated" => "Geupdated", "Saving..." => "Speichern...", "__language_name__" => "Deutsch (Förmlich: Sie)", "Add your App" => "Fügen Sie Ihre Anwendung hinzu", @@ -22,6 +29,7 @@ "Select an App" => "Wählen Sie eine Anwendung aus", "See application page at apps.owncloud.com" => "Weitere Anwendungen finden Sie auf apps.owncloud.com", "-licensed by " => "-lizenziert von ", +"Update" => "Update durchführen", "User Documentation" => "Dokumentation für Benutzer", "Administrator Documentation" => "Dokumentation für Administratoren", "Online Documentation" => "Online-Dokumentation", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Verwenden Sie diese Adresse, um Ihren Dateimanager mit Ihrer ownCloud zu verbinden", "Version" => "Version", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Entwickelt von der ownCloud-Community. Der Quellcode ist unter der AGPL lizenziert.", +"Login Name" => "Loginname", "Groups" => "Gruppen", "Create" => "Anlegen", "Default Storage" => "Standard-Speicher", "Unlimited" => "Unbegrenzt", "Other" => "Andere", +"Display Name" => "Anzeigename", "Group Admin" => "Gruppenadministrator", "Storage" => "Speicher", +"change display name" => "Anzeigenamen ändern", +"set new password" => "Neues Passwort setzen", "Default" => "Standard", "Delete" => "Löschen" ); diff --git a/settings/l10n/el.php b/settings/l10n/el.php index beacb5e6147..90335ceaf02 100644 --- a/settings/l10n/el.php +++ b/settings/l10n/el.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s", "Disable" => "Απενεργοποίηση", "Enable" => "Ενεργοποίηση", +"Error" => "Σφάλμα", "Saving..." => "Αποθήκευση...", "__language_name__" => "__όνομα_γλώσσας__", "Add your App" => "Πρόσθεστε τη Δικιά σας Εφαρμογή", @@ -22,6 +23,7 @@ "Select an App" => "Επιλέξτε μια Εφαρμογή", "See application page at apps.owncloud.com" => "Δείτε την σελίδα εφαρμογών στο apps.owncloud.com", "-licensed by " => "-άδεια από ", +"Update" => "Ενημέρωση", "User Documentation" => "Τεκμηρίωση Χρήστη", "Administrator Documentation" => "Τεκμηρίωση Διαχειριστή", "Online Documentation" => "Τεκμηρίωση στο Διαδίκτυο", diff --git a/settings/l10n/eo.php b/settings/l10n/eo.php index e17380441cf..d9a7595255c 100644 --- a/settings/l10n/eo.php +++ b/settings/l10n/eo.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Ne eblis forigi la uzantan el la grupo %s", "Disable" => "Malkapabligi", "Enable" => "Kapabligi", +"Error" => "Eraro", "Saving..." => "Konservante...", "__language_name__" => "Esperanto", "Add your App" => "Aldonu vian aplikaĵon", @@ -22,6 +23,7 @@ "Select an App" => "Elekti aplikaĵon", "See application page at apps.owncloud.com" => "Vidu la paĝon pri aplikaĵoj ĉe apps.owncloud.com", "-licensed by " => "-permesilhavigita de ", +"Update" => "Ĝisdatigi", "User Documentation" => "Dokumentaro por uzantoj", "Administrator Documentation" => "Dokumentaro por administrantoj", "Online Documentation" => "Reta dokumentaro", diff --git a/settings/l10n/es.php b/settings/l10n/es.php index 2bc2a12a5a9..0b82c3b7f01 100644 --- a/settings/l10n/es.php +++ b/settings/l10n/es.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Imposible eliminar al usuario del grupo %s", "Disable" => "Desactivar", "Enable" => "Activar", +"Error" => "Error", "Saving..." => "Guardando...", "__language_name__" => "Castellano", "Add your App" => "Añade tu aplicación", @@ -22,6 +23,7 @@ "Select an App" => "Seleccionar una aplicación", "See application page at apps.owncloud.com" => "Echa un vistazo a la web de aplicaciones apps.owncloud.com", "-licensed by " => "-licenciado por ", +"Update" => "Actualizar", "User Documentation" => "Documentación del usuario", "Administrator Documentation" => "Documentación del adminsitrador", "Online Documentation" => "Documentación en linea", diff --git a/settings/l10n/es_AR.php b/settings/l10n/es_AR.php index bbf45bc5620..3ef0756ede7 100644 --- a/settings/l10n/es_AR.php +++ b/settings/l10n/es_AR.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "No es posible eliminar al usuario del grupo %s", "Disable" => "Desactivar", "Enable" => "Activar", +"Error" => "Error", "Saving..." => "Guardando...", "__language_name__" => "Castellano (Argentina)", "Add your App" => "Añadí tu aplicación", @@ -22,9 +23,10 @@ "Select an App" => "Seleccionar una aplicación", "See application page at apps.owncloud.com" => "Mirá la web de aplicaciones apps.owncloud.com", "-licensed by " => "-licenciado por ", +"Update" => "Actualizar", "User Documentation" => "Documentación de Usuario", "Administrator Documentation" => "Documentación de Administrador", -"Online Documentation" => "Documentación en linea", +"Online Documentation" => "Documentación en línea", "Forum" => "Foro", "Bugtracker" => "Informar errores", "Commercial Support" => "Soporte comercial", @@ -49,11 +51,13 @@ "Use this address to connect to your ownCloud in your file manager" => "Utiliza esta dirección para conectarte con ownCloud en tu Administrador de Archivos", "Version" => "Versión", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Desarrollado por la comunidad ownCloud, el código fuente está bajo licencia AGPL.", +"Login Name" => "Nombre de ", "Groups" => "Grupos", "Create" => "Crear", "Default Storage" => "Almacenamiento Predeterminado", "Unlimited" => "Ilimitado", "Other" => "Otro", +"Display Name" => "Nombre a mostrar", "Group Admin" => "Grupo Administrador", "Storage" => "Almacenamiento", "Default" => "Predeterminado", diff --git a/settings/l10n/et_EE.php b/settings/l10n/et_EE.php index 751c88ecb59..3f99aed1b88 100644 --- a/settings/l10n/et_EE.php +++ b/settings/l10n/et_EE.php @@ -14,6 +14,7 @@ "Unable to remove user from group %s" => "Kasutajat ei saa eemaldada grupist %s", "Disable" => "Lülita välja", "Enable" => "Lülita sisse", +"Error" => "Viga", "Saving..." => "Salvestamine...", "__language_name__" => "Eesti", "Add your App" => "Lisa oma rakendus", @@ -21,6 +22,7 @@ "Select an App" => "Vali programm", "See application page at apps.owncloud.com" => "Vaata rakenduste lehte aadressil apps.owncloud.com", "-licensed by " => "-litsenseeritud ", +"Update" => "Uuenda", "Clients" => "Kliendid", "Password" => "Parool", "Your password was changed" => "Sinu parooli on muudetud", diff --git a/settings/l10n/eu.php b/settings/l10n/eu.php index 29e3a810ca4..4a6cdc365ec 100644 --- a/settings/l10n/eu.php +++ b/settings/l10n/eu.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Ezin izan da erabiltzailea %s taldetik ezabatu", "Disable" => "Ez-gaitu", "Enable" => "Gaitu", +"Error" => "Errorea", "Saving..." => "Gordetzen...", "__language_name__" => "Euskera", "Add your App" => "Gehitu zure aplikazioa", @@ -22,6 +23,7 @@ "Select an App" => "Aukeratu programa bat", "See application page at apps.owncloud.com" => "Ikusi programen orria apps.owncloud.com en", "-licensed by " => "-lizentziatua ", +"Update" => "Eguneratu", "User Documentation" => "Erabiltzaile dokumentazioa", "Administrator Documentation" => "Administradore dokumentazioa", "Online Documentation" => "Online dokumentazioa", @@ -49,11 +51,13 @@ "Use this address to connect to your ownCloud in your file manager" => "Erabili helbide hau zure fitxategi kudeatzailean zure ownCloudera konektatzeko", "Version" => "Bertsioa", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "ownCloud komunitateak garatuta, itubruru kodeaAGPL lizentziarekin banatzen da.", +"Login Name" => "Sarrera Izena", "Groups" => "Taldeak", "Create" => "Sortu", "Default Storage" => "Lehenetsitako Biltegiratzea", "Unlimited" => "Mugarik gabe", "Other" => "Besteak", +"Display Name" => "Bistaratze Izena", "Group Admin" => "Talde administradorea", "Storage" => "Biltegiratzea", "Default" => "Lehenetsia", diff --git a/settings/l10n/fa.php b/settings/l10n/fa.php index 59865c697cb..349af0e503f 100644 --- a/settings/l10n/fa.php +++ b/settings/l10n/fa.php @@ -7,6 +7,7 @@ "Invalid request" => "درخواست غیر قابل قبول", "Disable" => "غیرفعال", "Enable" => "فعال", +"Error" => "خطا", "Saving..." => "درحال ذخیره ...", "__language_name__" => "__language_name__", "Add your App" => "برنامه خود را بیافزایید", diff --git a/settings/l10n/fi_FI.php b/settings/l10n/fi_FI.php index 84b18902b99..c1763dca15e 100644 --- a/settings/l10n/fi_FI.php +++ b/settings/l10n/fi_FI.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä", "Unable to add user to group %s" => "Käyttäjän tai ryhmän %s lisääminen ei onnistu", "Unable to remove user from group %s" => "Käyttäjän poistaminen ryhmästä %s ei onnistu", +"Couldn't update app." => "Sovelluksen päivitys epäonnistui.", +"Update to {appversion}" => "Päivitä versioon {appversion}", "Disable" => "Poista käytöstä", "Enable" => "Käytä", +"Please wait...." => "Odota hetki...", +"Updating...." => "Päivitetään...", +"Error while updating app" => "Virhe sovellusta päivittäessä", +"Error" => "Virhe", +"Updated" => "Päivitetty", "Saving..." => "Tallennetaan...", "__language_name__" => "_kielen_nimi_", "Add your App" => "Lisää sovelluksesi", @@ -22,6 +29,7 @@ "Select an App" => "Valitse sovellus", "See application page at apps.owncloud.com" => "Katso sovellussivu osoitteessa apps.owncloud.com", "-licensed by " => "-lisensoija ", +"Update" => "Päivitä", "User Documentation" => "Käyttäjäohjeistus", "Administrator Documentation" => "Ylläpito-ohjeistus", "Online Documentation" => "Verkko-ohjeistus", @@ -49,11 +57,15 @@ "Use this address to connect to your ownCloud in your file manager" => "Käytä tätä osoitetta yhdistäessäsi ownCloudiisi tiedostonhallintaa käyttäen", "Version" => "Versio", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Kehityksestä on vastannut ownCloud-yhteisö, lähdekoodi on julkaistu lisenssin AGPL alaisena.", +"Login Name" => "Kirjautumisnimi", "Groups" => "Ryhmät", "Create" => "Luo", "Unlimited" => "Rajoittamaton", "Other" => "Muu", +"Display Name" => "Näyttönimi", "Group Admin" => "Ryhmän ylläpitäjä", +"change display name" => "vaihda näyttönimi", +"set new password" => "aseta uusi salasana", "Default" => "Oletus", "Delete" => "Poista" ); diff --git a/settings/l10n/fr.php b/settings/l10n/fr.php index 5b9495b566d..1e80ce13c1e 100644 --- a/settings/l10n/fr.php +++ b/settings/l10n/fr.php @@ -13,8 +13,14 @@ "Admins can't remove themself from the admin group" => "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin", "Unable to add user to group %s" => "Impossible d'ajouter l'utilisateur au groupe %s", "Unable to remove user from group %s" => "Impossible de supprimer l'utilisateur du groupe %s", +"Couldn't update app." => "Impossible de mettre à jour l'application", +"Update to {appversion}" => "Mettre à jour vers {appversion}", "Disable" => "Désactiver", "Enable" => "Activer", +"Please wait...." => "Veuillez patienter…", +"Error while updating app" => "Erreur lors de la mise à jour de l'application", +"Error" => "Erreur", +"Updated" => "Mise à jour effectuée avec succès", "Saving..." => "Sauvegarde...", "__language_name__" => "Français", "Add your App" => "Ajoutez votre application", @@ -22,6 +28,7 @@ "Select an App" => "Sélectionner une Application", "See application page at apps.owncloud.com" => "Voir la page des applications à l'url apps.owncloud.com", "-licensed by " => "Distribué sous licence , par ", +"Update" => "Mettre à jour", "User Documentation" => "Documentation utilisateur", "Administrator Documentation" => "Documentation administrateur", "Online Documentation" => "Documentation en ligne", @@ -49,13 +56,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Utiliser cette adresse pour vous connecter à ownCloud dans votre gestionnaire de fichiers", "Version" => "Version", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Développé par la communauté ownCloud, le code source est publié sous license AGPL.", +"Login Name" => "Nom de la connexion", "Groups" => "Groupes", "Create" => "Créer", "Default Storage" => "Support de stockage par défaut", "Unlimited" => "Illimité", "Other" => "Autre", +"Display Name" => "Nom affiché", "Group Admin" => "Groupe Admin", "Storage" => "Support de stockage", +"change display name" => "Changer le nom affiché", +"set new password" => "Changer le mot de passe", "Default" => "Défaut", "Delete" => "Supprimer" ); diff --git a/settings/l10n/gl.php b/settings/l10n/gl.php index d3359f19513..595248f7c55 100644 --- a/settings/l10n/gl.php +++ b/settings/l10n/gl.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Non é posíbel eliminar o usuario do grupo %s", "Disable" => "Desactivar", "Enable" => "Activar", +"Error" => "Erro", "Saving..." => "Gardando...", "__language_name__" => "Galego", "Add your App" => "Engada o seu aplicativo", @@ -22,6 +23,7 @@ "Select an App" => "Escolla un aplicativo", "See application page at apps.owncloud.com" => "Consulte a páxina do aplicativo en apps.owncloud.com", "-licensed by " => "-licenciado por", +"Update" => "Actualizar", "User Documentation" => "Documentación do usuario", "Administrator Documentation" => "Documentación do administrador", "Online Documentation" => "Documentación na Rede", diff --git a/settings/l10n/he.php b/settings/l10n/he.php index b7e76fbaeda..a3db2b9a36c 100644 --- a/settings/l10n/he.php +++ b/settings/l10n/he.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "לא ניתן להסיר משתמש מהקבוצה %s", "Disable" => "בטל", "Enable" => "הפעל", +"Error" => "שגיאה", "Saving..." => "שומר..", "__language_name__" => "עברית", "Add your App" => "הוספת היישום שלך", @@ -22,6 +23,7 @@ "Select an App" => "בחירת יישום", "See application page at apps.owncloud.com" => "צפה בעמוד הישום ב apps.owncloud.com", "-licensed by " => "ברישיון לטובת ", +"Update" => "עדכון", "User Documentation" => "תיעוד משתמש", "Administrator Documentation" => "תיעוד מנהלים", "Online Documentation" => "תיעוד מקוון", diff --git a/settings/l10n/hr.php b/settings/l10n/hr.php index 010303eb44f..0548b0f84c7 100644 --- a/settings/l10n/hr.php +++ b/settings/l10n/hr.php @@ -7,6 +7,7 @@ "Invalid request" => "Neispravan zahtjev", "Disable" => "Isključi", "Enable" => "Uključi", +"Error" => "Greška", "Saving..." => "Spremanje...", "__language_name__" => "__ime_jezika__", "Add your App" => "Dodajte vašu aplikaciju", diff --git a/settings/l10n/hu_HU.php b/settings/l10n/hu_HU.php index 2e096099360..d56ff7aa58a 100644 --- a/settings/l10n/hu_HU.php +++ b/settings/l10n/hu_HU.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "A felhasználó nem távolítható el ebből a csoportból: %s", "Disable" => "Letiltás", "Enable" => "Engedélyezés", +"Error" => "Hiba", "Saving..." => "Mentés...", "__language_name__" => "__language_name__", "Add your App" => "Az alkalmazás hozzáadása", @@ -22,6 +23,7 @@ "Select an App" => "Válasszon egy alkalmazást", "See application page at apps.owncloud.com" => "Lásd apps.owncloud.com, alkalmazások oldal", "-licensed by " => "-a jogtuladonos ", +"Update" => "Frissítés", "User Documentation" => "Felhasználói leírás", "Administrator Documentation" => "Üzemeltetői leírás", "Online Documentation" => "Online leírás", diff --git a/settings/l10n/ia.php b/settings/l10n/ia.php index 121a1175e79..fe26eea5e28 100644 --- a/settings/l10n/ia.php +++ b/settings/l10n/ia.php @@ -4,6 +4,7 @@ "__language_name__" => "Interlingua", "Add your App" => "Adder tu application", "Select an App" => "Selectionar un app", +"Update" => "Actualisar", "Clients" => "Clientes", "Password" => "Contrasigno", "Unable to change your password" => "Non pote cambiar tu contrasigno", diff --git a/settings/l10n/id.php b/settings/l10n/id.php index 0f04563fa3e..6a4d7a292b5 100644 --- a/settings/l10n/id.php +++ b/settings/l10n/id.php @@ -6,11 +6,13 @@ "Invalid request" => "Permintaan tidak valid", "Disable" => "NonAktifkan", "Enable" => "Aktifkan", +"Error" => "kesalahan", "Saving..." => "Menyimpan...", "__language_name__" => "__language_name__", "Add your App" => "Tambahkan App anda", "Select an App" => "Pilih satu aplikasi", "See application page at apps.owncloud.com" => "Lihat halaman aplikasi di apps.owncloud.com", +"Update" => "Pembaruan", "Clients" => "Klien", "Password" => "Password", "Unable to change your password" => "Tidak dapat merubah password anda", diff --git a/settings/l10n/is.php b/settings/l10n/is.php index 58730575343..2421916a5c3 100644 --- a/settings/l10n/is.php +++ b/settings/l10n/is.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Ekki tókst að fjarlægja notanda úr hópnum %s", "Disable" => "Gera óvirkt", "Enable" => "Virkja", +"Error" => "Villa", "Saving..." => "Er að vista ...", "__language_name__" => "__nafn_tungumáls__", "Add your App" => "Bæta við forriti", @@ -22,6 +23,7 @@ "Select an App" => "Veldu forrit", "See application page at apps.owncloud.com" => "Skoða síðu forrits hjá apps.owncloud.com", "-licensed by " => "-leyfi skráð af ", +"Update" => "Uppfæra", "User Documentation" => "Notenda handbók", "Administrator Documentation" => "Stjórnenda handbók", "Online Documentation" => "Handbók á netinu", diff --git a/settings/l10n/it.php b/settings/l10n/it.php index 2199f7d8db8..714c5c29c4c 100644 --- a/settings/l10n/it.php +++ b/settings/l10n/it.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione", "Unable to add user to group %s" => "Impossibile aggiungere l'utente al gruppo %s", "Unable to remove user from group %s" => "Impossibile rimuovere l'utente dal gruppo %s", +"Couldn't update app." => "Impossibile aggiornate l'applicazione.", +"Update to {appversion}" => "Aggiorna a {appversion}", "Disable" => "Disabilita", "Enable" => "Abilita", +"Please wait...." => "Attendere...", +"Updating...." => "Aggiornamento in corso...", +"Error while updating app" => "Errore durante l'aggiornamento", +"Error" => "Errore", +"Updated" => "Aggiornato", "Saving..." => "Salvataggio in corso...", "__language_name__" => "Italiano", "Add your App" => "Aggiungi la tua applicazione", @@ -22,6 +29,7 @@ "Select an App" => "Seleziona un'applicazione", "See application page at apps.owncloud.com" => "Vedere la pagina dell'applicazione su apps.owncloud.com", "-licensed by " => "-licenziato da ", +"Update" => "Aggiorna", "User Documentation" => "Documentazione utente", "Administrator Documentation" => "Documentazione amministratore", "Online Documentation" => "Documentazione in linea", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Usa questo indirizzo per connetterti al tuo ownCloud dal tuo gestore file", "Version" => "Versione", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Sviluppato dalla comunità di ownCloud, il codice sorgente è licenziato nei termini della AGPL.", +"Login Name" => "Nome utente", "Groups" => "Gruppi", "Create" => "Crea", "Default Storage" => "Archiviazione predefinita", "Unlimited" => "Illimitata", "Other" => "Altro", +"Display Name" => "Nome visualizzato", "Group Admin" => "Gruppi amministrati", "Storage" => "Archiviazione", +"change display name" => "cambia il nome visualizzato", +"set new password" => "imposta una nuova password", "Default" => "Predefinito", "Delete" => "Elimina" ); diff --git a/settings/l10n/ja_JP.php b/settings/l10n/ja_JP.php index dbf8d7d13e8..41f16051fe8 100644 --- a/settings/l10n/ja_JP.php +++ b/settings/l10n/ja_JP.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "管理者は自身を管理者グループから削除できません。", "Unable to add user to group %s" => "ユーザをグループ %s に追加できません", "Unable to remove user from group %s" => "ユーザをグループ %s から削除できません", +"Couldn't update app." => "アプリを更新出来ませんでした。", +"Update to {appversion}" => "{appversion} に更新", "Disable" => "無効", "Enable" => "有効", +"Please wait...." => "しばらくお待ちください。", +"Updating...." => "更新中....", +"Error while updating app" => "アプリの更新中にエラーが発生", +"Error" => "エラー", +"Updated" => "更新済み", "Saving..." => "保存中...", "__language_name__" => "Japanese (日本語)", "Add your App" => "アプリを追加", @@ -22,6 +29,7 @@ "Select an App" => "アプリを選択してください", "See application page at apps.owncloud.com" => "apps.owncloud.com でアプリケーションのページを見てください", "-licensed by " => "-ライセンス: ", +"Update" => "更新", "User Documentation" => "ユーザドキュメント", "Administrator Documentation" => "管理者ドキュメント", "Online Documentation" => "オンラインドキュメント", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "ファイルマネージャでownCloudに接続する際はこのアドレスを利用してください", "Version" => "バージョン", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "ownCloud communityにより開発されています、ソースコードライセンスは、AGPL ライセンスにより提供されています。", +"Login Name" => "ログイン名", "Groups" => "グループ", "Create" => "作成", "Default Storage" => "デフォルトストレージ", "Unlimited" => "無制限", "Other" => "その他", +"Display Name" => "表示名", "Group Admin" => "グループ管理者", "Storage" => "ストレージ", +"change display name" => "表示名を変更", +"set new password" => "新しいパスワードを設定", "Default" => "デフォルト", "Delete" => "削除" ); diff --git a/settings/l10n/ka_GE.php b/settings/l10n/ka_GE.php index 2bc2e7d5de7..346c89dbc7d 100644 --- a/settings/l10n/ka_GE.php +++ b/settings/l10n/ka_GE.php @@ -14,6 +14,7 @@ "Unable to remove user from group %s" => "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s", "Disable" => "გამორთვა", "Enable" => "ჩართვა", +"Error" => "შეცდომა", "Saving..." => "შენახვა...", "__language_name__" => "__language_name__", "Add your App" => "დაამატე შენი აპლიკაცია", @@ -21,6 +22,7 @@ "Select an App" => "აირჩიეთ აპლიკაცია", "See application page at apps.owncloud.com" => "ნახეთ აპლიკაციის გვერდი apps.owncloud.com –ზე", "-licensed by " => "-ლიცენსირებულია ", +"Update" => "განახლება", "Clients" => "კლიენტები", "Password" => "პაროლი", "Your password was changed" => "თქვენი პაროლი შეიცვალა", diff --git a/settings/l10n/ko.php b/settings/l10n/ko.php index 3a794eb3ceb..e82ecaeba6b 100644 --- a/settings/l10n/ko.php +++ b/settings/l10n/ko.php @@ -15,22 +15,24 @@ "Unable to remove user from group %s" => "그룹 %s에서 사용자를 삭제할 수 없습니다.", "Disable" => "비활성화", "Enable" => "활성화", +"Error" => "오류", "Saving..." => "저장 중...", "__language_name__" => "한국어", "Add your App" => "앱 추가", "More Apps" => "더 많은 앱", "Select an App" => "앱 선택", "See application page at apps.owncloud.com" => "apps.owncloud.com에 있는 앱 페이지를 참고하십시오", -"-licensed by " => "-라이선스 보유자 ", -"User Documentation" => "유저 문서", +"-licensed by " => "-라이선스됨: ", +"Update" => "업데이트", +"User Documentation" => "사용자 문서", "Administrator Documentation" => "관리자 문서", "Online Documentation" => "온라인 문서", "Forum" => "포럼", -"Bugtracker" => "버그트래커", +"Bugtracker" => "버그 트래커", "Commercial Support" => "상업용 지원", "You have used %s of the available %s" => "현재 공간 %s/%s을(를) 사용 중입니다", -"Clients" => "고객", -"Download Desktop Clients" => "데스크탑 클라이언트 다운로드", +"Clients" => "클라이언트", +"Download Desktop Clients" => "데스크톱 클라이언트 다운로드", "Download Android Client" => "안드로이드 클라이언트 다운로드", "Download iOS Client" => "iOS 클라이언트 다운로드", "Password" => "암호", @@ -46,16 +48,20 @@ "Language" => "언어", "Help translate" => "번역 돕기", "WebDAV" => "WebDAV", -"Use this address to connect to your ownCloud in your file manager" => "파일 매니저에서 사용자의 ownCloud에 접속하기 위해 이 주소를 사용하십시요.", -"Version" => "버젼", +"Use this address to connect to your ownCloud in your file manager" => "파일 관리자에서 ownCloud에 접속하려면 이 주소를 사용하십시오.", +"Version" => "버전", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "ownCloud 커뮤니티에 의해서 개발되었습니다. 원본 코드AGPL에 따라 사용이 허가됩니다.", +"Login Name" => "로그인 이름", "Groups" => "그룹", "Create" => "만들기", "Default Storage" => "기본 저장소", "Unlimited" => "무제한", "Other" => "기타", +"Display Name" => "표시 이름", "Group Admin" => "그룹 관리자", "Storage" => "저장소", +"change display name" => "표시 이름 변경", +"set new password" => "새 암호 설정", "Default" => "기본값", "Delete" => "삭제" ); diff --git a/settings/l10n/ku_IQ.php b/settings/l10n/ku_IQ.php index ef9e806e595..a7d2daa70ba 100644 --- a/settings/l10n/ku_IQ.php +++ b/settings/l10n/ku_IQ.php @@ -1,6 +1,8 @@ "چالاککردن", +"Error" => "هه‌ڵه", "Saving..." => "پاشکه‌وتده‌کات...", +"Update" => "نوێکردنه‌وه", "Password" => "وشەی تێپەربو", "New password" => "وشەی نهێنی نوێ", "Email" => "ئیمه‌یل" diff --git a/settings/l10n/lb.php b/settings/l10n/lb.php index 04acf53de43..1c8cff81b0f 100644 --- a/settings/l10n/lb.php +++ b/settings/l10n/lb.php @@ -7,6 +7,7 @@ "Invalid request" => "Ongülteg Requête", "Disable" => "Ofschalten", "Enable" => "Aschalten", +"Error" => "Fehler", "Saving..." => "Speicheren...", "__language_name__" => "__language_name__", "Add your App" => "Setz deng App bei", diff --git a/settings/l10n/lt_LT.php b/settings/l10n/lt_LT.php index e8c1577c7fb..335505b4539 100644 --- a/settings/l10n/lt_LT.php +++ b/settings/l10n/lt_LT.php @@ -8,12 +8,14 @@ "Invalid request" => "Klaidinga užklausa", "Disable" => "Išjungti", "Enable" => "Įjungti", +"Error" => "Klaida", "Saving..." => "Saugoma..", "__language_name__" => "Kalba", "Add your App" => "Pridėti programėlę", "More Apps" => "Daugiau aplikacijų", "Select an App" => "Pasirinkite programą", "-licensed by " => "- autorius", +"Update" => "Atnaujinti", "Clients" => "Klientai", "Password" => "Slaptažodis", "Your password was changed" => "Jūsų slaptažodis buvo pakeistas", diff --git a/settings/l10n/lv.php b/settings/l10n/lv.php index 4cafe3ab71d..efbbc8f1abd 100644 --- a/settings/l10n/lv.php +++ b/settings/l10n/lv.php @@ -1,44 +1,73 @@ "Nebija iespējams lejuplādēt sarakstu no aplikāciju veikala", +"Unable to load list from App Store" => "Nevar lejupielādēt sarakstu no lietotņu veikala", "Group already exists" => "Grupa jau eksistē", "Unable to add group" => "Nevar pievienot grupu", -"Could not enable app. " => "Nevar ieslēgt aplikāciju.", -"Email saved" => "Epasts tika saglabāts", -"Invalid email" => "Nepareizs epasts", +"Could not enable app. " => "Nevarēja aktivēt lietotni.", +"Email saved" => "E-pasts tika saglabāts", +"Invalid email" => "Nederīgs epasts", "Unable to delete group" => "Nevar izdzēst grupu", -"Authentication error" => "Ielogošanās kļūme", +"Authentication error" => "Autentifikācijas kļūda", "Unable to delete user" => "Nevar izdzēst lietotāju", "Language changed" => "Valoda tika nomainīta", -"Invalid request" => "Nepareizs vaicājums", +"Invalid request" => "Nederīgs pieprasījums", +"Admins can't remove themself from the admin group" => "Administratori nevar izņemt paši sevi no administratoru grupas", "Unable to add user to group %s" => "Nevar pievienot lietotāju grupai %s", -"Unable to remove user from group %s" => "Nevar noņemt lietotāju no grupas %s", -"Disable" => "Atvienot", -"Enable" => "Pievienot", +"Unable to remove user from group %s" => "Nevar izņemt lietotāju no grupas %s", +"Couldn't update app." => "Nevarēja atjaunināt lietotni.", +"Update to {appversion}" => "Atjaunināt uz {appversion}", +"Disable" => "Deaktivēt", +"Enable" => "Aktivēt", +"Please wait...." => "Lūdzu, uzgaidiet....", +"Updating...." => "Atjaunina....", +"Error while updating app" => "Kļūda, atjauninot lietotni", +"Error" => "Kļūda", +"Updated" => "Atjaunināta", "Saving..." => "Saglabā...", "__language_name__" => "__valodas_nosaukums__", -"Add your App" => "Pievieno savu aplikāciju", -"More Apps" => "Vairāk aplikāciju", -"Select an App" => "Izvēlies aplikāciju", -"See application page at apps.owncloud.com" => "Apskatie aplikāciju lapu - apps.owncloud.com", +"Add your App" => "Pievieno savu lietotni", +"More Apps" => "Vairāk lietotņu", +"Select an App" => "Izvēlies lietotni", +"See application page at apps.owncloud.com" => "Apskati lietotņu lapu — apps.owncloud.com", "-licensed by " => "-licencēts no ", +"Update" => "Atjaunināt", +"User Documentation" => "Lietotāja dokumentācija", +"Administrator Documentation" => "Administratora dokumentācija", +"Online Documentation" => "Tiešsaistes dokumentācija", +"Forum" => "Forums", +"Bugtracker" => "Kļūdu sekotājs", +"Commercial Support" => "Komerciālais atbalsts", "You have used %s of the available %s" => "Jūs lietojat %s no pieejamajiem %s", "Clients" => "Klienti", +"Download Desktop Clients" => "Lejupielādēt darbvirsmas klientus", +"Download Android Client" => "Lejupielādēt Android klientu", +"Download iOS Client" => "Lejupielādēt iOS klientu", "Password" => "Parole", "Your password was changed" => "Jūru parole tika nomainīta", -"Unable to change your password" => "Nav iespējams nomainīt jūsu paroli", +"Unable to change your password" => "Nevar nomainīt jūsu paroli", "Current password" => "Pašreizējā parole", "New password" => "Jauna parole", "show" => "parādīt", -"Change password" => "Nomainīt paroli", -"Email" => "Epasts", -"Your email address" => "Jūsu epasta adrese", -"Fill in an email address to enable password recovery" => "Ievadiet epasta adresi, lai vēlak būtu iespēja atgūt paroli, ja būs nepieciešamība", +"Change password" => "Mainīt paroli", +"Email" => "E-pasts", +"Your email address" => "Jūsu e-pasta adrese", +"Fill in an email address to enable password recovery" => "Ievadiet epasta adresi, lai vēlāk varētu atgūt paroli, ja būs nepieciešamība", "Language" => "Valoda", "Help translate" => "Palīdzi tulkot", +"WebDAV" => "WebDAV", +"Use this address to connect to your ownCloud in your file manager" => "Izmanto šo adresi, lai, izmantojot datņu pārvaldnieku, savienotos ar savu ownCloud", +"Version" => "Versija", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "IzstrādājusiownCloud kopiena,pirmkodukurš ir licencēts zem AGPL.", +"Login Name" => "Ierakstīšanās vārds", "Groups" => "Grupas", "Create" => "Izveidot", +"Default Storage" => "Noklusējuma krātuve", +"Unlimited" => "Neierobežota", "Other" => "Cits", +"Display Name" => "Redzamais vārds", "Group Admin" => "Grupas administrators", -"Delete" => "Izdzēst" +"Storage" => "Krātuve", +"change display name" => "mainīt redzamo vārdu", +"set new password" => "iestatīt jaunu paroli", +"Default" => "Noklusējuma", +"Delete" => "Dzēst" ); diff --git a/settings/l10n/mk.php b/settings/l10n/mk.php index b041d41923a..7705b870b37 100644 --- a/settings/l10n/mk.php +++ b/settings/l10n/mk.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Неможе да избришам корисник од група %s", "Disable" => "Оневозможи", "Enable" => "Овозможи", +"Error" => "Грешка", "Saving..." => "Снимам...", "__language_name__" => "__language_name__", "Add your App" => "Додадете ја Вашата апликација", @@ -22,6 +23,7 @@ "Select an App" => "Избери аппликација", "See application page at apps.owncloud.com" => "Види ја страницата со апликации на apps.owncloud.com", "-licensed by " => "-лиценцирано од ", +"Update" => "Ажурирај", "User Documentation" => "Корисничка документација", "Administrator Documentation" => "Администраторска документација", "Online Documentation" => "Документација на интернет", diff --git a/settings/l10n/ms_MY.php b/settings/l10n/ms_MY.php index e2537679a69..22114cfc2dd 100644 --- a/settings/l10n/ms_MY.php +++ b/settings/l10n/ms_MY.php @@ -6,11 +6,13 @@ "Invalid request" => "Permintaan tidak sah", "Disable" => "Nyahaktif", "Enable" => "Aktif", +"Error" => "Ralat", "Saving..." => "Simpan...", "__language_name__" => "_nama_bahasa_", "Add your App" => "Tambah apps anda", "Select an App" => "Pilih aplikasi", "See application page at apps.owncloud.com" => "Lihat halaman applikasi di apps.owncloud.com", +"Update" => "Kemaskini", "Clients" => "klien", "Password" => "Kata laluan ", "Unable to change your password" => "Gagal mengubah kata laluan anda ", diff --git a/settings/l10n/nb_NO.php b/settings/l10n/nb_NO.php index ecd1466e7ee..0e627120bd6 100644 --- a/settings/l10n/nb_NO.php +++ b/settings/l10n/nb_NO.php @@ -14,12 +14,14 @@ "Unable to remove user from group %s" => "Kan ikke slette bruker fra gruppen %s", "Disable" => "Slå avBehandle ", "Enable" => "Slå på", +"Error" => "Feil", "Saving..." => "Lagrer...", "__language_name__" => "__language_name__", "Add your App" => "Legg til din App", "More Apps" => "Flere Apps", "Select an App" => "Velg en app", "See application page at apps.owncloud.com" => "Se applikasjonens side på apps.owncloud.org", +"Update" => "Oppdater", "User Documentation" => "Brukerdokumentasjon", "Administrator Documentation" => "Administratordokumentasjon", "Commercial Support" => "Kommersiell støtte", diff --git a/settings/l10n/nl.php b/settings/l10n/nl.php index af76f376683..72c9108ef9c 100644 --- a/settings/l10n/nl.php +++ b/settings/l10n/nl.php @@ -13,8 +13,14 @@ "Admins can't remove themself from the admin group" => "Admins kunnen zichzelf niet uit de admin groep verwijderen", "Unable to add user to group %s" => "Niet in staat om gebruiker toe te voegen aan groep %s", "Unable to remove user from group %s" => "Niet in staat om gebruiker te verwijderen uit groep %s", +"Couldn't update app." => "Kon de app niet bijwerken.", +"Update to {appversion}" => "Bijwerken naar {appversion}", "Disable" => "Uitschakelen", "Enable" => "Inschakelen", +"Please wait...." => "Even geduld aub....", +"Error while updating app" => "Fout bij bijwerken app", +"Error" => "Fout", +"Updated" => "Bijgewerkt", "Saving..." => "Aan het bewaren.....", "__language_name__" => "Nederlands", "Add your App" => "App toevoegen", @@ -22,6 +28,7 @@ "Select an App" => "Selecteer een app", "See application page at apps.owncloud.com" => "Zie de applicatiepagina op apps.owncloud.com", "-licensed by " => "-Gelicenseerd door ", +"Update" => "Bijwerken", "User Documentation" => "Gebruikersdocumentatie", "Administrator Documentation" => "Beheerdersdocumentatie", "Online Documentation" => "Online documentatie", @@ -49,13 +56,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Gebruik dit adres om te verbinden met uw ownCloud in uw bestandsbeheer", "Version" => "Versie", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Ontwikkeld door de ownCloud gemeenschap, de bron code is gelicenseerd onder de AGPL.", +"Login Name" => "Inlognaam", "Groups" => "Groepen", "Create" => "Creëer", "Default Storage" => "Default opslag", "Unlimited" => "Ongelimiteerd", "Other" => "Andere", +"Display Name" => "Weergavenaam", "Group Admin" => "Groep beheerder", "Storage" => "Opslag", +"change display name" => "wijzig weergavenaam", +"set new password" => "Instellen nieuw wachtwoord", "Default" => "Default", "Delete" => "verwijderen" ); diff --git a/settings/l10n/nn_NO.php b/settings/l10n/nn_NO.php index 778e7afc265..279939b3d34 100644 --- a/settings/l10n/nn_NO.php +++ b/settings/l10n/nn_NO.php @@ -7,8 +7,10 @@ "Invalid request" => "Ugyldig førespurnad", "Disable" => "Slå av", "Enable" => "Slå på", +"Error" => "Feil", "__language_name__" => "Nynorsk", "Select an App" => "Vel ein applikasjon", +"Update" => "Oppdater", "Clients" => "Klientar", "Password" => "Passord", "Unable to change your password" => "Klarte ikkje å endra passordet", diff --git a/settings/l10n/oc.php b/settings/l10n/oc.php index e8ed2d52758..c89fa2ae505 100644 --- a/settings/l10n/oc.php +++ b/settings/l10n/oc.php @@ -14,6 +14,7 @@ "Unable to remove user from group %s" => "Pas capable de tira un usancièr del grop %s", "Disable" => "Desactiva", "Enable" => "Activa", +"Error" => "Error", "Saving..." => "Enregistra...", "__language_name__" => "__language_name__", "Add your App" => "Ajusta ton App", diff --git a/settings/l10n/pl.php b/settings/l10n/pl.php index 656636b258e..9c05904f259 100644 --- a/settings/l10n/pl.php +++ b/settings/l10n/pl.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Nie można usunąć użytkownika z grupy %s", "Disable" => "Wyłącz", "Enable" => "Włącz", +"Error" => "Błąd", "Saving..." => "Zapisywanie...", "__language_name__" => "Polski", "Add your App" => "Dodaj aplikacje", @@ -22,6 +23,7 @@ "Select an App" => "Zaznacz aplikacje", "See application page at apps.owncloud.com" => "Zobacz stronę aplikacji na apps.owncloud.com", "-licensed by " => "-licencjonowane przez ", +"Update" => "Zaktualizuj", "User Documentation" => "Dokumentacja użytkownika", "Administrator Documentation" => "Dokumentacja Administratora", "Online Documentation" => "Dokumentacja Online", diff --git a/settings/l10n/pl_PL.php b/settings/l10n/pl_PL.php index ab81cb23465..7dcd2fdfae8 100644 --- a/settings/l10n/pl_PL.php +++ b/settings/l10n/pl_PL.php @@ -1,3 +1,4 @@ "Uaktualnienie", "Email" => "Email" ); diff --git a/settings/l10n/pt_BR.php b/settings/l10n/pt_BR.php index f14233d7e58..a9285d8c407 100644 --- a/settings/l10n/pt_BR.php +++ b/settings/l10n/pt_BR.php @@ -1,29 +1,39 @@ "Não foi possivel carregar lista da App Store", +"Unable to load list from App Store" => "Não foi possível carregar lista da App Store", "Group already exists" => "Grupo já existe", -"Unable to add group" => "Não foi possivel adicionar grupo", -"Could not enable app. " => "Não pôde habilitar aplicação", -"Email saved" => "Email gravado", -"Invalid email" => "Email inválido", -"Unable to delete group" => "Não foi possivel remover grupo", -"Authentication error" => "erro de autenticação", -"Unable to delete user" => "Não foi possivel remover usuário", -"Language changed" => "Mudou Idioma", +"Unable to add group" => "Não foi possível adicionar grupo", +"Could not enable app. " => "Não foi possível habilitar aplicativo.", +"Email saved" => "E-mail guardado", +"Invalid email" => "E-mail inválido", +"Unable to delete group" => "Não foi possível remover grupo", +"Authentication error" => "Erro de autenticação", +"Unable to delete user" => "Não foi possível remover usuário", +"Language changed" => "Idioma alterado", "Invalid request" => "Pedido inválido", "Admins can't remove themself from the admin group" => "Admins não podem se remover do grupo admin", -"Unable to add user to group %s" => "Não foi possivel adicionar usuário ao grupo %s", -"Unable to remove user from group %s" => "Não foi possivel remover usuário ao grupo %s", -"Disable" => "Desabilitado", -"Enable" => "Habilitado", -"Saving..." => "Gravando...", -"__language_name__" => "Português do Brasil", +"Unable to add user to group %s" => "Não foi possível adicionar usuário ao grupo %s", +"Unable to remove user from group %s" => "Não foi possível remover usuário do grupo %s", +"Disable" => "Desabilitar", +"Enable" => "Habilitar", +"Error" => "Erro", +"Saving..." => "Guardando...", +"__language_name__" => "Português (Brasil)", "Add your App" => "Adicione seu Aplicativo", "More Apps" => "Mais Apps", -"Select an App" => "Selecione uma Aplicação", +"Select an App" => "Selecione um Aplicativo", "See application page at apps.owncloud.com" => "Ver página do aplicativo em apps.owncloud.com", "-licensed by " => "-licenciado por ", +"Update" => "Atualizar", +"User Documentation" => "Documentação de Usuário", +"Administrator Documentation" => "Documentação de Administrador", +"Online Documentation" => "Documentação Online", +"Forum" => "Fórum", +"Commercial Support" => "Suporte Comercial", "You have used %s of the available %s" => "Você usou %s do seu espaço de %s", "Clients" => "Clientes", +"Download Desktop Clients" => "Baixar Clientes Desktop", +"Download Android Client" => "Baixar Cliente Android", +"Download iOS Client" => "Baixar Cliente iOS", "Password" => "Senha", "Your password was changed" => "Sua senha foi alterada", "Unable to change your password" => "Não é possivel alterar a sua senha", @@ -31,15 +41,24 @@ "New password" => "Nova senha", "show" => "mostrar", "Change password" => "Alterar senha", -"Email" => "Email", -"Your email address" => "Seu endereço de email", -"Fill in an email address to enable password recovery" => "Preencha um endereço de email para habilitar a recuperação de senha", +"Email" => "E-mail", +"Your email address" => "Seu endereço de e-mail", +"Fill in an email address to enable password recovery" => "Preencha um endereço de e-mail para habilitar a recuperação de senha", "Language" => "Idioma", "Help translate" => "Ajude a traduzir", +"WebDAV" => "WebDAV", +"Use this address to connect to your ownCloud in your file manager" => "Usar este endereço para conectar-se ao seu ownCloud no seu gerenciador de arquivos", +"Version" => "Versão", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Desenvolvido pela comunidade ownCloud, o código fonte está licenciado sob AGPL.", +"Login Name" => "Nome de Login", "Groups" => "Grupos", "Create" => "Criar", +"Default Storage" => "Armazenamento Padrão", +"Unlimited" => "Ilimitado", "Other" => "Outro", +"Display Name" => "Nome de Exibição", "Group Admin" => "Grupo Administrativo", +"Storage" => "Armazenamento", +"Default" => "Padrão", "Delete" => "Apagar" ); diff --git a/settings/l10n/pt_PT.php b/settings/l10n/pt_PT.php index af5dfbf6e47..243dbeb8562 100644 --- a/settings/l10n/pt_PT.php +++ b/settings/l10n/pt_PT.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Os administradores não se podem remover a eles mesmos do grupo admin.", "Unable to add user to group %s" => "Impossível acrescentar utilizador ao grupo %s", "Unable to remove user from group %s" => "Impossível apagar utilizador do grupo %s", +"Couldn't update app." => "Não foi possível actualizar a aplicação.", +"Update to {appversion}" => "Actualizar para a versão {appversion}", "Disable" => "Desactivar", "Enable" => "Activar", +"Please wait...." => "Por favor aguarde...", +"Updating...." => "A Actualizar...", +"Error while updating app" => "Erro enquanto actualizava a aplicação", +"Error" => "Erro", +"Updated" => "Actualizado", "Saving..." => "A guardar...", "__language_name__" => "__language_name__", "Add your App" => "Adicione a sua aplicação", @@ -22,6 +29,7 @@ "Select an App" => "Selecione uma aplicação", "See application page at apps.owncloud.com" => "Ver a página da aplicação em apps.owncloud.com", "-licensed by " => "-licenciado por ", +"Update" => "Actualizar", "User Documentation" => "Documentação de Utilizador", "Administrator Documentation" => "Documentação de administrador.", "Online Documentation" => "Documentação Online", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Use este endereço no seu gestor de ficheiros para ligar à sua ownCloud", "Version" => "Versão", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Desenvolvido pela comunidade ownCloud, ocódigo fonte está licenciado sob a AGPL.", +"Login Name" => "Nome de utilizador", "Groups" => "Grupos", "Create" => "Criar", "Default Storage" => "Armazenamento Padrão", "Unlimited" => "Ilimitado", "Other" => "Outro", +"Display Name" => "Nome público", "Group Admin" => "Grupo Administrador", "Storage" => "Armazenamento", +"change display name" => "modificar nome exibido", +"set new password" => "definir nova palavra-passe", "Default" => "Padrão", "Delete" => "Apagar" ); diff --git a/settings/l10n/ro.php b/settings/l10n/ro.php index 17a091c569c..d244bad31ba 100644 --- a/settings/l10n/ro.php +++ b/settings/l10n/ro.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Nu s-a putut elimina utilizatorul din grupul %s", "Disable" => "Dezactivați", "Enable" => "Activați", +"Error" => "Eroare", "Saving..." => "Salvez...", "__language_name__" => "_language_name_", "Add your App" => "Adaugă aplicația ta", @@ -22,6 +23,7 @@ "Select an App" => "Selectează o aplicație", "See application page at apps.owncloud.com" => "Vizualizează pagina applicației pe apps.owncloud.com", "-licensed by " => "-licențiat ", +"Update" => "Actualizare", "User Documentation" => "Documentație utilizator", "Administrator Documentation" => "Documentație administrator", "Online Documentation" => "Documentație online", diff --git a/settings/l10n/ru.php b/settings/l10n/ru.php index 2194c886f1d..c364be95e51 100644 --- a/settings/l10n/ru.php +++ b/settings/l10n/ru.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Невозможно удалить пользователя из группы %s", "Disable" => "Выключить", "Enable" => "Включить", +"Error" => "Ошибка", "Saving..." => "Сохранение...", "__language_name__" => "Русский ", "Add your App" => "Добавить приложение", @@ -22,6 +23,7 @@ "Select an App" => "Выберите приложение", "See application page at apps.owncloud.com" => "Смотрите дополнения на apps.owncloud.com", "-licensed by " => " лицензия. Автор ", +"Update" => "Обновить", "User Documentation" => "Пользовательская документация", "Administrator Documentation" => "Документация администратора", "Online Documentation" => "Online документация", diff --git a/settings/l10n/ru_RU.php b/settings/l10n/ru_RU.php index 50c3b136c47..8d9ecf7e55e 100644 --- a/settings/l10n/ru_RU.php +++ b/settings/l10n/ru_RU.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Невозможно удалить пользователя из группы %s", "Disable" => "Отключить", "Enable" => "Включить", +"Error" => "Ошибка", "Saving..." => "Сохранение", "__language_name__" => "__язык_имя__", "Add your App" => "Добавить Ваше приложение", @@ -22,6 +23,7 @@ "Select an App" => "Выбрать приложение", "See application page at apps.owncloud.com" => "Обратитесь к странице приложений на apps.owncloud.com", "-licensed by " => "-licensed by ", +"Update" => "Обновить", "User Documentation" => "Документация пользователя", "Administrator Documentation" => "Документация администратора", "Online Documentation" => "Документация online", @@ -56,6 +58,7 @@ "Other" => "Другой", "Group Admin" => "Группа Admin", "Storage" => "Хранилище", +"set new password" => "назначить новый пароль", "Default" => "По умолчанию", "Delete" => "Удалить" ); diff --git a/settings/l10n/si_LK.php b/settings/l10n/si_LK.php index 8d7bc7adf5a..4dbe31b9910 100644 --- a/settings/l10n/si_LK.php +++ b/settings/l10n/si_LK.php @@ -13,10 +13,12 @@ "Unable to remove user from group %s" => "පරිශීලකයා %s කණ්ඩායමින් ඉවත් කළ නොහැක", "Disable" => "අක්‍රිය කරන්න", "Enable" => "ක්‍රියත්මක කරන්න", +"Error" => "දෝෂයක්", "Saving..." => "සුරැකෙමින් පවතී...", "Add your App" => "යෙදුමක් එක් කිරීම", "More Apps" => "තවත් යෙදුම්", "Select an App" => "යෙදුමක් තොරන්න", +"Update" => "යාවත්කාල කිරීම", "Clients" => "සේවාලාභීන්", "Password" => "මුරපදය", "Your password was changed" => "ඔබගේ මුර පදය වෙනස් කෙරුණි", diff --git a/settings/l10n/sk_SK.php b/settings/l10n/sk_SK.php index 3941bd51ae7..6148f1476a2 100644 --- a/settings/l10n/sk_SK.php +++ b/settings/l10n/sk_SK.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Administrátori nesmú odstrániť sami seba zo skupiny admin", "Unable to add user to group %s" => "Nie je možné pridať užívateľa do skupiny %s", "Unable to remove user from group %s" => "Nie je možné odstrániť používateľa zo skupiny %s", +"Couldn't update app." => "Nemožno aktualizovať aplikáciu.", +"Update to {appversion}" => "Aktualizovať na {appversion}", "Disable" => "Zakázať", "Enable" => "Povoliť", +"Please wait...." => "Čakajte prosím...", +"Updating...." => "Aktualizujem...", +"Error while updating app" => "hyba pri aktualizácii aplikácie", +"Error" => "Chyba", +"Updated" => "Aktualizované", "Saving..." => "Ukladám...", "__language_name__" => "Slovensky", "Add your App" => "Pridať vašu aplikáciu", @@ -22,6 +29,7 @@ "Select an App" => "Vyberte aplikáciu", "See application page at apps.owncloud.com" => "Pozrite si stránku aplikácií na apps.owncloud.com", "-licensed by " => "-licencované ", +"Update" => "Aktualizovať", "User Documentation" => "Príručka používateľa", "Administrator Documentation" => "Príručka správcu", "Online Documentation" => "Online príručka", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Použite túto adresu pre pripojenie vášho ownCloud k súborovému správcovi", "Version" => "Verzia", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Vyvinuté komunitou ownCloud,zdrojový kód je licencovaný pod AGPL.", +"Login Name" => "Prihlasovacie meno", "Groups" => "Skupiny", "Create" => "Vytvoriť", "Default Storage" => "Predvolené úložisko", "Unlimited" => "Nelimitované", "Other" => "Iné", +"Display Name" => "Zobrazované meno", "Group Admin" => "Správca skupiny", "Storage" => "Úložisko", +"change display name" => "zmeniť zobrazované meno", +"set new password" => "nastaviť nové heslo", "Default" => "Predvolené", "Delete" => "Odstrániť" ); diff --git a/settings/l10n/sl.php b/settings/l10n/sl.php index 98d34518478..1524f3c33da 100644 --- a/settings/l10n/sl.php +++ b/settings/l10n/sl.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Uporabnika ni mogoče odstraniti iz skupine %s", "Disable" => "Onemogoči", "Enable" => "Omogoči", +"Error" => "Napaka", "Saving..." => "Poteka shranjevanje ...", "__language_name__" => "__ime_jezika__", "Add your App" => "Dodaj program", @@ -22,6 +23,7 @@ "Select an App" => "Izberite program", "See application page at apps.owncloud.com" => "Obiščite spletno stran programa na apps.owncloud.com", "-licensed by " => "-z dovoljenjem s strani ", +"Update" => "Posodobi", "User Documentation" => "Uporabniška dokumentacija", "Administrator Documentation" => "Administratorjeva dokumentacija", "Online Documentation" => "Spletna dokumentacija", diff --git a/settings/l10n/sr.php b/settings/l10n/sr.php index 9f0d428c2e1..e9c12e2ea0a 100644 --- a/settings/l10n/sr.php +++ b/settings/l10n/sr.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Не могу да уклоним корисника из групе %s", "Disable" => "Искључи", "Enable" => "Укључи", +"Error" => "Грешка", "Saving..." => "Чување у току...", "__language_name__" => "__language_name__", "Add your App" => "Додајте ваш програм", @@ -22,6 +23,7 @@ "Select an App" => "Изаберите програм", "See application page at apps.owncloud.com" => "Погледајте страницу са програмима на apps.owncloud.com", "-licensed by " => "-лиценцирао ", +"Update" => "Ажурирај", "You have used %s of the available %s" => "Искористили сте %s од дозвољених %s", "Clients" => "Клијенти", "Password" => "Лозинка", diff --git a/settings/l10n/sv.php b/settings/l10n/sv.php index 4c30873b3ca..239948a0f40 100644 --- a/settings/l10n/sv.php +++ b/settings/l10n/sv.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "Administratörer kan inte ta bort sig själva från admingruppen", "Unable to add user to group %s" => "Kan inte lägga till användare i gruppen %s", "Unable to remove user from group %s" => "Kan inte radera användare från gruppen %s", +"Couldn't update app." => "Kunde inte uppdatera appen", +"Update to {appversion}" => "Uppdaterar till {appversion}", "Disable" => "Deaktivera", "Enable" => "Aktivera", +"Please wait...." => "Var god vänta...", +"Updating...." => "Uppdaterar...", +"Error while updating app" => "Fel uppstod vid uppdatering av appen", +"Error" => "Fel", +"Updated" => "Uppdaterad", "Saving..." => "Sparar...", "__language_name__" => "__language_name__", "Add your App" => "Lägg till din applikation", @@ -22,6 +29,7 @@ "Select an App" => "Välj en App", "See application page at apps.owncloud.com" => "Se programsida på apps.owncloud.com", "-licensed by " => "-licensierad av ", +"Update" => "Uppdatera", "User Documentation" => "Användardokumentation", "Administrator Documentation" => "Administratördokumentation", "Online Documentation" => "Onlinedokumentation", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "Använd denna adress för att ansluta till ownCloud i din filhanterare", "Version" => "Version", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Utvecklad av ownCloud kommunity, källkoden är licenserad under AGPL.", +"Login Name" => "Inloggningsnamn", "Groups" => "Grupper", "Create" => "Skapa", "Default Storage" => "Förvald lagring", "Unlimited" => "Obegränsad", "Other" => "Annat", +"Display Name" => "Visat namn", "Group Admin" => "Gruppadministratör", "Storage" => "Lagring", +"change display name" => "ändra visat namn", +"set new password" => "ange nytt lösenord", "Default" => "Förvald", "Delete" => "Radera" ); diff --git a/settings/l10n/ta_LK.php b/settings/l10n/ta_LK.php index 84f6026ca32..e383a297c4f 100644 --- a/settings/l10n/ta_LK.php +++ b/settings/l10n/ta_LK.php @@ -14,6 +14,7 @@ "Unable to remove user from group %s" => "குழு %s இலிருந்து பயனாளரை நீக்கமுடியாது", "Disable" => "இயலுமைப்ப", "Enable" => "செயலற்றதாக்குக", +"Error" => "வழு", "Saving..." => "இயலுமைப்படுத்துக", "__language_name__" => "_மொழி_பெயர்_", "Add your App" => "உங்களுடைய செயலியை சேர்க்க", @@ -21,6 +22,7 @@ "Select an App" => "செயலி ஒன்றை தெரிவுசெய்க", "See application page at apps.owncloud.com" => "apps.owncloud.com இல் செயலி பக்கத்தை பார்க்க", "-licensed by " => "-அனுமதி பெற்ற ", +"Update" => "இற்றைப்படுத்தல்", "You have used %s of the available %s" => "நீங்கள் %s இலுள்ள %sபயன்படுத்தியுள்ளீர்கள்", "Clients" => "வாடிக்கையாளர்கள்", "Password" => "கடவுச்சொல்", diff --git a/settings/l10n/th_TH.php b/settings/l10n/th_TH.php index 3ef68cf7fe4..9350b78297b 100644 --- a/settings/l10n/th_TH.php +++ b/settings/l10n/th_TH.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้", "Unable to add user to group %s" => "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้", "Unable to remove user from group %s" => "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้", +"Couldn't update app." => "ไม่สามารถอัพเดทแอปฯ", +"Update to {appversion}" => "อัพเดทไปเป็นรุ่น {appversion}", "Disable" => "ปิดใช้งาน", "Enable" => "เปิดใช้งาน", +"Please wait...." => "กรุณารอสักครู่...", +"Updating...." => "กำลังอัพเดทข้อมูล...", +"Error while updating app" => "เกิดข้อผิดพลาดในระหว่างการอัพเดทแอปฯ", +"Error" => "ข้อผิดพลาด", +"Updated" => "อัพเดทแล้ว", "Saving..." => "กำลังบันทึุกข้อมูล...", "__language_name__" => "ภาษาไทย", "Add your App" => "เพิ่มแอปของคุณ", @@ -22,6 +29,7 @@ "Select an App" => "เลือก App", "See application page at apps.owncloud.com" => "ดูหน้าแอพพลิเคชั่นที่ apps.owncloud.com", "-licensed by " => "-ลิขสิทธิ์การใช้งานโดย ", +"Update" => "อัพเดท", "User Documentation" => "เอกสารคู่มือการใช้งานสำหรับผู้ใช้งาน", "Administrator Documentation" => "เอกสารคู่มือการใช้งานสำหรับผู้ดูแลระบบ", "Online Documentation" => "เอกสารคู่มือการใช้งานออนไลน์", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "ใช้ที่อยู่นี้เพื่อเชื่อมต่อกับ ownCloud ในโปรแกรมจัดการไฟล์ของคุณ", "Version" => "รุ่น", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "พัฒนาโดย the ชุมชนผู้ใช้งาน ownCloud, the ซอร์สโค้ดอยู่ภายใต้สัญญาอนุญาตของ AGPL.", +"Login Name" => "ชื่อที่ใช้สำหรับเข้าสู่ระบบ", "Groups" => "กลุ่ม", "Create" => "สร้าง", "Default Storage" => "พื้นที่จำกัดข้อมูลเริ่มต้น", "Unlimited" => "ไม่จำกัดจำนวน", "Other" => "อื่นๆ", +"Display Name" => "ชื่อที่ต้องการแสดง", "Group Admin" => "ผู้ดูแลกลุ่ม", "Storage" => "พื้นที่จัดเก็บข้อมูล", +"change display name" => "เปลี่ยนชื่อที่ต้องการให้แสดง", +"set new password" => "ตั้งค่ารหัสผ่านใหม่", "Default" => "ค่าเริ่มต้น", "Delete" => "ลบ" ); diff --git a/settings/l10n/tr.php b/settings/l10n/tr.php index 281e01e1162..89c8cf2829e 100644 --- a/settings/l10n/tr.php +++ b/settings/l10n/tr.php @@ -13,12 +13,14 @@ "Unable to add user to group %s" => "Kullanıcı %s grubuna eklenemiyor", "Disable" => "Etkin değil", "Enable" => "Etkin", +"Error" => "Hata", "Saving..." => "Kaydediliyor...", "__language_name__" => "__dil_adı__", "Add your App" => "Uygulamanı Ekle", "More Apps" => "Daha fazla App", "Select an App" => "Bir uygulama seçin", "See application page at apps.owncloud.com" => "Uygulamanın sayfasına apps.owncloud.com adresinden bakın ", +"Update" => "Güncelleme", "User Documentation" => "Kullanıcı Belgelendirmesi", "Administrator Documentation" => "Yönetici Belgelendirmesi", "Online Documentation" => "Çevrimiçi Belgelendirme", diff --git a/settings/l10n/uk.php b/settings/l10n/uk.php index dc2c537b4fb..035dbec3910 100644 --- a/settings/l10n/uk.php +++ b/settings/l10n/uk.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Не вдалося видалити користувача із групи %s", "Disable" => "Вимкнути", "Enable" => "Включити", +"Error" => "Помилка", "Saving..." => "Зберігаю...", "__language_name__" => "__language_name__", "Add your App" => "Додати свою програму", @@ -22,6 +23,7 @@ "Select an App" => "Вибрати додаток", "See application page at apps.owncloud.com" => "Перегляньте сторінку програм на apps.owncloud.com", "-licensed by " => "-licensed by ", +"Update" => "Оновити", "User Documentation" => "Документація Користувача", "Administrator Documentation" => "Документація Адміністратора", "Online Documentation" => "Он-Лайн Документація", diff --git a/settings/l10n/vi.php b/settings/l10n/vi.php index 39b09aa9382..3a133460a38 100644 --- a/settings/l10n/vi.php +++ b/settings/l10n/vi.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "Không thể xóa người dùng từ nhóm %s", "Disable" => "Tắt", "Enable" => "Bật", +"Error" => "Lỗi", "Saving..." => "Đang tiến hành lưu ...", "__language_name__" => "__Ngôn ngữ___", "Add your App" => "Thêm ứng dụng của bạn", @@ -22,6 +23,7 @@ "Select an App" => "Chọn một ứng dụng", "See application page at apps.owncloud.com" => "Xem nhiều ứng dụng hơn tại apps.owncloud.com", "-licensed by " => "-Giấy phép được cấp bởi ", +"Update" => "Cập nhật", "You have used %s of the available %s" => "Bạn đã sử dụng %s có sẵn %s ", "Clients" => "Khách hàng", "Password" => "Mật khẩu", diff --git a/settings/l10n/zh_CN.GB2312.php b/settings/l10n/zh_CN.GB2312.php index f8e37ac749f..6a957518564 100644 --- a/settings/l10n/zh_CN.GB2312.php +++ b/settings/l10n/zh_CN.GB2312.php @@ -14,6 +14,7 @@ "Unable to remove user from group %s" => "未能将用户从群组 %s 移除", "Disable" => "禁用", "Enable" => "启用", +"Error" => "出错", "Saving..." => "保存中...", "__language_name__" => "Chinese", "Add your App" => "添加你的应用程序", @@ -21,6 +22,7 @@ "Select an App" => "选择一个程序", "See application page at apps.owncloud.com" => "在owncloud.com上查看应用程序", "-licensed by " => "授权协议 ", +"Update" => "更新", "Clients" => "客户", "Password" => "密码", "Your password was changed" => "您的密码以变更", diff --git a/settings/l10n/zh_CN.php b/settings/l10n/zh_CN.php index dfcf7bf7bfe..48f890fb0c9 100644 --- a/settings/l10n/zh_CN.php +++ b/settings/l10n/zh_CN.php @@ -15,6 +15,7 @@ "Unable to remove user from group %s" => "无法从组%s中移除用户", "Disable" => "禁用", "Enable" => "启用", +"Error" => "错误", "Saving..." => "正在保存", "__language_name__" => "简体中文", "Add your App" => "添加应用", @@ -22,6 +23,7 @@ "Select an App" => "选择一个应用", "See application page at apps.owncloud.com" => "查看在 app.owncloud.com 的应用程序页面", "-licensed by " => "-核准: ", +"Update" => "更新", "User Documentation" => "用户文档", "Administrator Documentation" => "管理员文档", "Online Documentation" => "在线文档", diff --git a/settings/l10n/zh_TW.php b/settings/l10n/zh_TW.php index 5fe555d14f0..b540549524d 100644 --- a/settings/l10n/zh_TW.php +++ b/settings/l10n/zh_TW.php @@ -13,8 +13,15 @@ "Admins can't remove themself from the admin group" => "管理者帳號無法從管理者群組中移除", "Unable to add user to group %s" => "使用者加入群組%s錯誤", "Unable to remove user from group %s" => "使用者移出群組%s錯誤", +"Couldn't update app." => "無法更新應用程式", +"Update to {appversion}" => "更新至 {appversion}", "Disable" => "停用", "Enable" => "啟用", +"Please wait...." => "請稍候...", +"Updating...." => "更新中...", +"Error while updating app" => "更新應用程式錯誤", +"Error" => "錯誤", +"Updated" => "已更新", "Saving..." => "儲存中...", "__language_name__" => "__語言_名稱__", "Add your App" => "添加你的 App", @@ -22,6 +29,7 @@ "Select an App" => "選擇一個應用程式", "See application page at apps.owncloud.com" => "查看應用程式頁面於 apps.owncloud.com", "-licensed by " => "-核准: ", +"Update" => "更新", "User Documentation" => "用戶說明文件", "Administrator Documentation" => "管理者說明文件", "Online Documentation" => "線上說明文件", @@ -49,13 +57,17 @@ "Use this address to connect to your ownCloud in your file manager" => "在您的檔案管理員中使用這個地址來連線到 ownCloud", "Version" => "版本", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "由ownCloud 社區開發,源代碼AGPL許可證下發布。", +"Login Name" => "登入名稱", "Groups" => "群組", "Create" => "創造", "Default Storage" => "預設儲存區", "Unlimited" => "無限制", "Other" => "其他", +"Display Name" => "顯示名稱", "Group Admin" => "群組 管理員", "Storage" => "儲存區", +"change display name" => "修改顯示名稱", +"set new password" => "設定新密碼", "Default" => "預設", "Delete" => "刪除" ); diff --git a/settings/routes.php b/settings/routes.php index 0a5b2fbfd38..0a8af0dde2b 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -53,6 +53,8 @@ $this->create('settings_ajax_enableapp', '/settings/ajax/enableapp.php') ->actionInclude('settings/ajax/enableapp.php'); $this->create('settings_ajax_disableapp', '/settings/ajax/disableapp.php') ->actionInclude('settings/ajax/disableapp.php'); +$this->create('settings_ajax_updateapp', '/settings/ajax/updateapp.php') + ->actionInclude('settings/ajax/updateapp.php'); $this->create('settings_ajax_navigationdetect', '/settings/ajax/navigationdetect.php') ->actionInclude('settings/ajax/navigationdetect.php'); $this->create('apps_custom', '/settings/js/apps-custom.js') diff --git a/settings/templates/apps.php b/settings/templates/apps.php index d418b9a66a1..3f0d2a9d1c6 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -7,7 +7,7 @@
      @@ -15,7 +15,7 @@
    • data-id="" data-type="" data-installed="1"> - 3rd party' ?> + '.$app['internallabel'].'' ?>
    @@ -28,5 +28,6 @@ + - \ No newline at end of file + diff --git a/tests/lib/cache/file.php b/tests/lib/cache/file.php index d64627198e0..5dcd3268804 100644 --- a/tests/lib/cache/file.php +++ b/tests/lib/cache/file.php @@ -38,8 +38,8 @@ class Test_Cache_File extends Test_Cache { } //set up temporary storage - OC_Filesystem::clearMounts(); - OC_Filesystem::mount('OC_Filestorage_Temporary', array(), '/'); + \OC\Files\Filesystem::clearMounts(); + \OC\Files\Filesystem::mount('\OC\Files\Storage\Temporary',array(),'/'); OC_User::clearBackends(); OC_User::useBackend(new OC_User_Dummy()); @@ -51,7 +51,7 @@ class Test_Cache_File extends Test_Cache { OC_User::setUserId('test'); //set up the users dir - $rootView=new OC_FilesystemView(''); + $rootView=new \OC\Files\View(''); $rootView->mkdir('/test'); $this->instance=new OC_Cache_File(); diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php new file mode 100644 index 00000000000..c466fbb63e7 --- /dev/null +++ b/tests/lib/files/cache/cache.php @@ -0,0 +1,215 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Cache; + +class Cache extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Files\Storage\Temporary $storage; + */ + private $storage; + + /** + * @var \OC\Files\Cache\Cache $cache + */ + private $cache; + + public function testSimple() { + $file1 = 'foo'; + $file2 = 'foo/bar'; + $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder'); + $data2 = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + + $this->assertFalse($this->cache->inCache($file1)); + $this->assertEquals($this->cache->get($file1), null); + + $id1 = $this->cache->put($file1, $data1); + $this->assertTrue($this->cache->inCache($file1)); + $cacheData1 = $this->cache->get($file1); + foreach ($data1 as $key => $value) { + $this->assertEquals($value, $cacheData1[$key]); + } + $this->assertEquals($cacheData1['mimepart'], 'foo'); + $this->assertEquals($cacheData1['fileid'], $id1); + $this->assertEquals($id1, $this->cache->getId($file1)); + + $this->assertFalse($this->cache->inCache($file2)); + $id2 = $this->cache->put($file2, $data2); + $this->assertTrue($this->cache->inCache($file2)); + $cacheData2 = $this->cache->get($file2); + foreach ($data2 as $key => $value) { + $this->assertEquals($value, $cacheData2[$key]); + } + $this->assertEquals($cacheData1['fileid'], $cacheData2['parent']); + $this->assertEquals($cacheData2['fileid'], $id2); + $this->assertEquals($id2, $this->cache->getId($file2)); + $this->assertEquals($id1, $this->cache->getParentId($file2)); + + $newSize = 1050; + $newId2 = $this->cache->put($file2, array('size' => $newSize)); + $cacheData2 = $this->cache->get($file2); + $this->assertEquals($newId2, $id2); + $this->assertEquals($cacheData2['size'], $newSize); + $this->assertEquals($cacheData1, $this->cache->get($file1)); + + $this->cache->remove($file2); + $this->assertFalse($this->cache->inCache($file2)); + $this->assertEquals($this->cache->get($file2), null); + $this->assertTrue($this->cache->inCache($file1)); + + $this->assertEquals($cacheData1, $this->cache->get($id1)); + } + + public function testPartial() { + $file1 = 'foo'; + + $this->cache->put($file1, array('size' => 10)); + $this->assertEquals(array('size' => 10), $this->cache->get($file1)); + + $this->cache->put($file1, array('mtime' => 15)); + $this->assertEquals(array('size' => 10, 'mtime' => 15), $this->cache->get($file1)); + + $this->cache->put($file1, array('size' => 12)); + $this->assertEquals(array('size' => 12, 'mtime' => 15), $this->cache->get($file1)); + } + + public function testFolder() { + $file1 = 'folder'; + $file2 = 'folder/bar'; + $file3 = 'folder/foo'; + $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory'); + $fileData = array(); + $fileData['bar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file'); + + $this->cache->put($file1, $data1); + $this->cache->put($file2, $fileData['bar']); + $this->cache->put($file3, $fileData['foo']); + + $content = $this->cache->getFolderContents($file1); + $this->assertEquals(count($content), 2); + foreach ($content as $cachedData) { + $data = $fileData[$cachedData['name']]; + foreach ($data as $name => $value) { + $this->assertEquals($value, $cachedData[$name]); + } + } + + $file4 = 'folder/unkownSize'; + $fileData['unkownSize'] = array('size' => -1, 'mtime' => 25, 'mimetype' => 'foo/file'); + $this->cache->put($file4, $fileData['unkownSize']); + + $this->assertEquals(-1, $this->cache->calculateFolderSize($file1)); + + $fileData['unkownSize'] = array('size' => 5, 'mtime' => 25, 'mimetype' => 'foo/file'); + $this->cache->put($file4, $fileData['unkownSize']); + + $this->assertEquals(1025, $this->cache->calculateFolderSize($file1)); + + $this->cache->remove('folder'); + $this->assertFalse($this->cache->inCache('folder/foo')); + $this->assertFalse($this->cache->inCache('folder/bar')); + } + + function testStatus() { + $this->assertEquals(\OC\Files\Cache\Cache::NOT_FOUND, $this->cache->getStatus('foo')); + $this->cache->put('foo', array('size' => -1)); + $this->assertEquals(\OC\Files\Cache\Cache::PARTIAL, $this->cache->getStatus('foo')); + $this->cache->put('foo', array('size' => -1, 'mtime' => 20, 'mimetype' => 'foo/file')); + $this->assertEquals(\OC\Files\Cache\Cache::SHALLOW, $this->cache->getStatus('foo')); + $this->cache->put('foo', array('size' => 10)); + $this->assertEquals(\OC\Files\Cache\Cache::COMPLETE, $this->cache->getStatus('foo')); + } + + function testSearch() { + $file1 = 'folder'; + $file2 = 'folder/foobar'; + $file3 = 'folder/foo'; + $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder'); + $fileData = array(); + $fileData['foobar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file'); + + $this->cache->put($file1, $data1); + $this->cache->put($file2, $fileData['foobar']); + $this->cache->put($file3, $fileData['foo']); + + $this->assertEquals(2, count($this->cache->search('%foo%'))); + $this->assertEquals(1, count($this->cache->search('foo'))); + $this->assertEquals(1, count($this->cache->search('%folder%'))); + $this->assertEquals(1, count($this->cache->search('folder%'))); + $this->assertEquals(3, count($this->cache->search('%'))); + + $this->assertEquals(3, count($this->cache->searchByMime('foo'))); + $this->assertEquals(2, count($this->cache->searchByMime('foo/file'))); + } + + function testMove() { + $file1 = 'folder'; + $file2 = 'folder/bar'; + $file3 = 'folder/foo'; + $file4 = 'folder/foo/1'; + $file5 = 'folder/foo/2'; + $data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/bar'); + + $this->cache->put($file1, $data); + $this->cache->put($file2, $data); + $this->cache->put($file3, $data); + $this->cache->put($file4, $data); + $this->cache->put($file5, $data); + + $this->cache->move('folder/foo', 'folder/foobar'); + + $this->assertFalse($this->cache->inCache('folder/foo')); + $this->assertFalse($this->cache->inCache('folder/foo/1')); + $this->assertFalse($this->cache->inCache('folder/foo/2')); + + $this->assertTrue($this->cache->inCache('folder/bar')); + $this->assertTrue($this->cache->inCache('folder/foobar')); + $this->assertTrue($this->cache->inCache('folder/foobar/1')); + $this->assertTrue($this->cache->inCache('folder/foobar/2')); + } + + function testGetIncomplete() { + $file1 = 'folder1'; + $file2 = 'folder2'; + $file3 = 'folder3'; + $file4 = 'folder4'; + $data = array('size' => 10, 'mtime' => 50, 'mimetype' => 'foo/bar'); + + $this->cache->put($file1, $data); + $data['size'] = -1; + $this->cache->put($file2, $data); + $this->cache->put($file3, $data); + $data['size'] = 12; + $this->cache->put($file4, $data); + + $this->assertEquals($file3, $this->cache->getIncomplete()); + } + + function testNonExisting() { + $this->assertFalse($this->cache->get('foo.txt')); + $this->assertEquals(array(), $this->cache->getFolderContents('foo')); + } + + function testGetById() { + $storageId = $this->storage->getId(); + $data = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $id = $this->cache->put('foo', $data); + $this->assertEquals(array($storageId, 'foo'), \OC\Files\Cache\Cache::getById($id)); + } + + public function tearDown() { + $this->cache->clear(); + } + + public function setUp() { + $this->storage = new \OC\Files\Storage\Temporary(array()); + $this->cache = new \OC\Files\Cache\Cache($this->storage); + } +} diff --git a/tests/lib/files/cache/permissions.php b/tests/lib/files/cache/permissions.php new file mode 100644 index 00000000000..56dbbc4518e --- /dev/null +++ b/tests/lib/files/cache/permissions.php @@ -0,0 +1,56 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Cache; + +class Permissions extends \PHPUnit_Framework_TestCase { + /*** + * @var \OC\Files\Cache\Permissions $permissionsCache + */ + private $permissionsCache; + + function setUp(){ + $this->permissionsCache=new \OC\Files\Cache\Permissions('dummy'); + } + + function testSimple() { + $ids = range(1, 10); + $user = uniqid(); + + $this->assertEquals(-1, $this->permissionsCache->get(1, $user)); + $this->permissionsCache->set(1, $user, 1); + $this->assertEquals(1, $this->permissionsCache->get(1, $user)); + $this->assertEquals(-1, $this->permissionsCache->get(2, $user)); + $this->assertEquals(-1, $this->permissionsCache->get(1, $user . '2')); + + $this->permissionsCache->set(1, $user, 2); + $this->assertEquals(2, $this->permissionsCache->get(1, $user)); + + $this->permissionsCache->set(2, $user, 1); + $this->assertEquals(1, $this->permissionsCache->get(2, $user)); + + $this->permissionsCache->remove(1, $user); + $this->assertEquals(-1, $this->permissionsCache->get(1, $user)); + $this->permissionsCache->remove(1, $user . '2'); + $this->assertEquals(1, $this->permissionsCache->get(2, $user)); + + $expected = array(); + foreach ($ids as $id) { + $this->permissionsCache->set($id, $user, 10 + $id); + $expected[$id] = 10 + $id; + } + $this->assertEquals($expected, $this->permissionsCache->getMultiple($ids, $user)); + + $this->permissionsCache->removeMultiple(array(10, 9), $user); + unset($expected[9]); + unset($expected[10]); + $this->assertEquals($expected, $this->permissionsCache->getMultiple($ids, $user)); + + $this->permissionsCache->removeMultiple($ids, $user); + } +} diff --git a/tests/lib/files/cache/scanner.php b/tests/lib/files/cache/scanner.php new file mode 100644 index 00000000000..3885c99e6d3 --- /dev/null +++ b/tests/lib/files/cache/scanner.php @@ -0,0 +1,141 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Cache; + +class Scanner extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Files\Storage\Storage $storage + */ + private $storage; + + /** + * @var \OC\Files\Cache\Scanner $scanner + */ + private $scanner; + + /** + * @var \OC\Files\Cache\Cache $cache + */ + private $cache; + + function testFile() { + $data = "dummy file data\n"; + $this->storage->file_put_contents('foo.txt', $data); + $this->scanner->scanFile('foo.txt'); + + $this->assertEquals($this->cache->inCache('foo.txt'), true); + $cachedData = $this->cache->get('foo.txt'); + $this->assertEquals($cachedData['size'], strlen($data)); + $this->assertEquals($cachedData['mimetype'], 'text/plain'); + $this->assertNotEquals($cachedData['parent'], -1); //parent folders should be scanned automatically + + $data = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $this->storage->file_put_contents('foo.png', $data); + $this->scanner->scanFile('foo.png'); + + $this->assertEquals($this->cache->inCache('foo.png'), true); + $cachedData = $this->cache->get('foo.png'); + $this->assertEquals($cachedData['size'], strlen($data)); + $this->assertEquals($cachedData['mimetype'], 'image/png'); + } + + private function fillTestFolders() { + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $this->storage->mkdir('folder'); + $this->storage->file_put_contents('foo.txt', $textData); + $this->storage->file_put_contents('foo.png', $imgData); + $this->storage->file_put_contents('folder/bar.txt', $textData); + } + + function testFolder() { + $this->fillTestFolders(); + + $this->scanner->scan(''); + $this->assertEquals($this->cache->inCache(''), true); + $this->assertEquals($this->cache->inCache('foo.txt'), true); + $this->assertEquals($this->cache->inCache('foo.png'), true); + $this->assertEquals($this->cache->inCache('folder'), true); + $this->assertEquals($this->cache->inCache('folder/bar.txt'), true); + + $cachedDataText = $this->cache->get('foo.txt'); + $cachedDataText2 = $this->cache->get('foo.txt'); + $cachedDataImage = $this->cache->get('foo.png'); + $cachedDataFolder = $this->cache->get(''); + $cachedDataFolder2 = $this->cache->get('folder'); + + $this->assertEquals($cachedDataImage['parent'], $cachedDataText['parent']); + $this->assertEquals($cachedDataFolder['fileid'], $cachedDataImage['parent']); + $this->assertEquals($cachedDataFolder['size'], $cachedDataImage['size'] + $cachedDataText['size'] + $cachedDataText2['size']); + $this->assertEquals($cachedDataFolder2['size'], $cachedDataText2['size']); + } + + function testShallow() { + $this->fillTestFolders(); + + $this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW); + $this->assertEquals($this->cache->inCache(''), true); + $this->assertEquals($this->cache->inCache('foo.txt'), true); + $this->assertEquals($this->cache->inCache('foo.png'), true); + $this->assertEquals($this->cache->inCache('folder'), true); + $this->assertEquals($this->cache->inCache('folder/bar.txt'), false); + + $cachedDataFolder = $this->cache->get(''); + $cachedDataFolder2 = $this->cache->get('folder'); + + $this->assertEquals(-1, $cachedDataFolder['size']); + $this->assertEquals(-1, $cachedDataFolder2['size']); + + $this->scanner->scan('folder', \OC\Files\Cache\Scanner::SCAN_SHALLOW); + + $cachedDataFolder2 = $this->cache->get('folder'); + + $this->assertNotEquals($cachedDataFolder2['size'], -1); + + $this->cache->correctFolderSize('folder'); + + $cachedDataFolder = $this->cache->get(''); + $this->assertNotEquals($cachedDataFolder['size'], -1); + } + + function testBackgroundScan(){ + $this->fillTestFolders(); + $this->storage->mkdir('folder2'); + $this->storage->file_put_contents('folder2/bar.txt', 'foobar'); + + $this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW); + $this->assertFalse($this->cache->inCache('folder/bar.txt')); + $this->assertFalse($this->cache->inCache('folder/2bar.txt')); + $cachedData = $this->cache->get(''); + $this->assertEquals(-1, $cachedData['size']); + + $this->scanner->backgroundScan(); + + $this->assertTrue($this->cache->inCache('folder/bar.txt')); + $this->assertTrue($this->cache->inCache('folder/bar.txt')); + + $cachedData = $this->cache->get(''); + $this->assertnotEquals(-1, $cachedData['size']); + + $this->assertFalse($this->cache->getIncomplete()); + } + + function setUp() { + $this->storage = new \OC\Files\Storage\Temporary(array()); + $this->scanner = new \OC\Files\Cache\Scanner($this->storage); + $this->cache = new \OC\Files\Cache\Cache($this->storage); + } + + function tearDown() { + $ids = $this->cache->getAll(); + $permissionsCache = $this->storage->getPermissionsCache(); + $permissionsCache->removeMultiple($ids, \OC_User::getUser()); + $this->cache->clear(); + } +} diff --git a/tests/lib/files/cache/updater.php b/tests/lib/files/cache/updater.php new file mode 100644 index 00000000000..b83dd0c26e5 --- /dev/null +++ b/tests/lib/files/cache/updater.php @@ -0,0 +1,147 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Cache; + +use \OC\Files\Filesystem as Filesystem; + +class Updater extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Files\Storage\Storage $storage + */ + private $storage; + + /** + * @var \OC\Files\Cache\Scanner $scanner + */ + private $scanner; + + /** + * @var \OC\Files\Cache\Cache $cache + */ + private $cache; + + private static $user; + + public function setUp() { + $this->storage = new \OC\Files\Storage\Temporary(array()); + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $this->storage->mkdir('folder'); + $this->storage->file_put_contents('foo.txt', $textData); + $this->storage->file_put_contents('foo.png', $imgData); + $this->storage->file_put_contents('folder/bar.txt', $textData); + $this->storage->file_put_contents('folder/bar2.txt', $textData); + + $this->scanner = $this->storage->getScanner(); + $this->scanner->scan(''); + $this->cache = $this->storage->getCache(); + + if (!self::$user) { + if (!\OC\Files\Filesystem::getView()) { + self::$user = uniqid(); + \OC\Files\Filesystem::init('/' . self::$user . '/files'); + } else { + self::$user = \OC_User::getUser(); + } + } + + Filesystem::clearMounts(); + Filesystem::mount($this->storage, array(), '/' . self::$user . '/files'); + + \OC_Hook::connect('OC_Filesystem', 'post_write', '\OC\Files\Cache\Updater', 'writeHook'); + \OC_Hook::connect('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Updater', 'deleteHook'); + \OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook'); + + } + + public function tearDown() { + if ($this->cache) { + $this->cache->clear(); + } + Filesystem::tearDown(); + } + + public function testWrite() { + $textSize = strlen("dummy file data\n"); + $imageSize = filesize(\OC::$SERVERROOT . '/core/img/logo.png'); + $rootCachedData = $this->cache->get(''); + $this->assertEquals(3 * $textSize + $imageSize, $rootCachedData['size']); + + $fooCachedData = $this->cache->get('foo.txt'); + Filesystem::file_put_contents('foo.txt', 'asd'); + $cachedData = $this->cache->get('foo.txt'); + $this->assertEquals(3, $cachedData['size']); + $this->assertNotEquals($fooCachedData['etag'], $cachedData['etag']); + $mtime = $cachedData['mtime']; + $cachedData = $this->cache->get(''); + $this->assertEquals(2 * $textSize + $imageSize + 3, $cachedData['size']); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $this->assertGreaterThanOrEqual($rootCachedData['mtime'], $mtime); + $rootCachedData = $cachedData; + + $this->assertFalse($this->cache->inCache('bar.txt')); + Filesystem::file_put_contents('bar.txt', 'asd'); + $this->assertTrue($this->cache->inCache('bar.txt')); + $cachedData = $this->cache->get('bar.txt'); + $this->assertEquals(3, $cachedData['size']); + $mtime = $cachedData['mtime']; + $cachedData = $this->cache->get(''); + $this->assertEquals(2 * $textSize + $imageSize + 2 * 3, $cachedData['size']); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $this->assertGreaterThanOrEqual($rootCachedData['mtime'], $mtime); + } + + public function testDelete() { + $textSize = strlen("dummy file data\n"); + $imageSize = filesize(\OC::$SERVERROOT . '/core/img/logo.png'); + $rootCachedData = $this->cache->get(''); + $this->assertEquals(3 * $textSize + $imageSize, $rootCachedData['size']); + + $this->assertTrue($this->cache->inCache('foo.txt')); + Filesystem::unlink('foo.txt', 'asd'); + $this->assertFalse($this->cache->inCache('foo.txt')); + $cachedData = $this->cache->get(''); + $this->assertEquals(2 * $textSize + $imageSize, $cachedData['size']); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $this->assertGreaterThanOrEqual($rootCachedData['mtime'], $cachedData['mtime']); + $rootCachedData = $cachedData; + + Filesystem::mkdir('bar_folder'); + $this->assertTrue($this->cache->inCache('bar_folder')); + $cachedData = $this->cache->get(''); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $rootCachedData = $cachedData; + Filesystem::rmdir('bar_folder'); + $this->assertFalse($this->cache->inCache('bar_folder')); + $cachedData = $this->cache->get(''); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $this->assertGreaterThanOrEqual($rootCachedData['mtime'], $cachedData['mtime']); + } + + public function testRename() { + $textSize = strlen("dummy file data\n"); + $imageSize = filesize(\OC::$SERVERROOT . '/core/img/logo.png'); + $rootCachedData = $this->cache->get(''); + $this->assertEquals(3 * $textSize + $imageSize, $rootCachedData['size']); + + $this->assertTrue($this->cache->inCache('foo.txt')); + $fooCachedData = $this->cache->get('foo.txt'); + $this->assertFalse($this->cache->inCache('bar.txt')); + Filesystem::rename('foo.txt', 'bar.txt'); + $this->assertFalse($this->cache->inCache('foo.txt')); + $this->assertTrue($this->cache->inCache('bar.txt')); + $cachedData = $this->cache->get('bar.txt'); + $this->assertNotEquals($fooCachedData['etag'], $cachedData['etag']); + $mtime = $cachedData['mtime']; + $cachedData = $this->cache->get(''); + $this->assertEquals(3 * $textSize + $imageSize, $cachedData['size']); + $this->assertNotEquals($rootCachedData['etag'], $cachedData['etag']); + $this->assertEquals($mtime, $cachedData['mtime']); + } +} diff --git a/tests/lib/files/cache/watcher.php b/tests/lib/files/cache/watcher.php new file mode 100644 index 00000000000..e8a1689cab0 --- /dev/null +++ b/tests/lib/files/cache/watcher.php @@ -0,0 +1,121 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Cache; + +class Watcher extends \PHPUnit_Framework_TestCase { + + /** + * @var \OC\Files\Storage\Storage[] $storages; + */ + private $storages = array(); + + public function setUp() { + \OC\Files\Filesystem::clearMounts(); + } + + public function tearDown() { + foreach ($this->storages as $storage) { + $cache = $storage->getCache(); + $ids = $cache->getAll(); + $permissionsCache = $storage->getPermissionsCache(); + $permissionsCache->removeMultiple($ids, \OC_User::getUser()); + $cache->clear(); + } + } + + function testWatcher() { + $storage = $this->getTestStorage(); + $cache = $storage->getCache(); + $updater = $storage->getWatcher(); + + //set the mtime to the past so it can detect an mtime change + $cache->put('', array('mtime' => 10)); + + $this->assertTrue($cache->inCache('folder/bar.txt')); + $this->assertTrue($cache->inCache('folder/bar2.txt')); + + $this->assertFalse($cache->inCache('bar.test')); + $storage->file_put_contents('bar.test', 'foo'); + $updater->checkUpdate(''); + $this->assertTrue($cache->inCache('bar.test')); + $cachedData = $cache->get('bar.test'); + $this->assertEquals(3, $cachedData['size']); + + $cache->put('bar.test', array('mtime' => 10)); + $storage->file_put_contents('bar.test', 'test data'); + + $updater->checkUpdate('bar.test'); + $cachedData = $cache->get('bar.test'); + $this->assertEquals(9, $cachedData['size']); + + $cache->put('folder', array('mtime' => 10)); + + $storage->unlink('folder/bar2.txt'); + $updater->checkUpdate('folder'); + + $this->assertTrue($cache->inCache('folder/bar.txt')); + $this->assertFalse($cache->inCache('folder/bar2.txt')); + } + + public function testFileToFolder() { + $storage = $this->getTestStorage(); + $cache = $storage->getCache(); + $updater = $storage->getWatcher(); + + //set the mtime to the past so it can detect an mtime change + $cache->put('', array('mtime' => 10)); + + $storage->unlink('foo.txt'); + $storage->rename('folder', 'foo.txt'); + $updater->checkUpdate(''); + + $entry = $cache->get('foo.txt'); + $this->assertEquals(-1, $entry['size']); + $this->assertEquals('httpd/unix-directory', $entry['mimetype']); + $this->assertFalse($cache->inCache('folder')); + $this->assertFalse($cache->inCache('folder/bar.txt')); + + $storage = $this->getTestStorage(); + $cache = $storage->getCache(); + $updater = $storage->getWatcher(); + + //set the mtime to the past so it can detect an mtime change + $cache->put('foo.txt', array('mtime' => 10)); + + $storage->unlink('foo.txt'); + $storage->rename('folder', 'foo.txt'); + $updater->checkUpdate('foo.txt'); + + $entry = $cache->get('foo.txt'); + $this->assertEquals('httpd/unix-directory', $entry['mimetype']); + $this->assertTrue($cache->inCache('foo.txt/bar.txt')); + } + + /** + * @param bool $scan + * @return \OC\Files\Storage\Storage + */ + private function getTestStorage($scan = true) { + $storage = new \OC\Files\Storage\Temporary(array()); + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $storage->mkdir('folder'); + $storage->file_put_contents('foo.txt', $textData); + $storage->file_put_contents('foo.png', $imgData); + $storage->file_put_contents('folder/bar.txt', $textData); + $storage->file_put_contents('folder/bar2.txt', $textData); + + if ($scan) { + $scanner = $storage->getScanner(); + $scanner->scan(''); + } + $this->storages[] = $storage; + return $storage; + } +} diff --git a/tests/lib/files/filesystem.php b/tests/lib/files/filesystem.php new file mode 100644 index 00000000000..5837093fdd6 --- /dev/null +++ b/tests/lib/files/filesystem.php @@ -0,0 +1,110 @@ +. + * + */ + +namespace Test\Files; + +class Filesystem extends \PHPUnit_Framework_TestCase { + /** + * @var array tmpDirs + */ + private $tmpDirs=array(); + + /** + * @return array + */ + private function getStorageData() { + $dir = \OC_Helper::tmpFolder(); + $this->tmpDirs[] = $dir; + return array('datadir' => $dir); + } + + public function tearDown() { + foreach ($this->tmpDirs as $dir) { + \OC_Helper::rmdirr($dir); + } + } + + public function setUp() { + \OC\Files\Filesystem::clearMounts(); + } + + public function testMount() { + \OC\Files\Filesystem::mount('\OC\Files\Storage\Local',self::getStorageData(),'/'); + $this->assertEquals('/',\OC\Files\Filesystem::getMountPoint('/')); + $this->assertEquals('/',\OC\Files\Filesystem::getMountPoint('/some/folder')); + list( , $internalPath)=\OC\Files\Filesystem::resolvePath('/'); + $this->assertEquals('',$internalPath); + list( , $internalPath)=\OC\Files\Filesystem::resolvePath('/some/folder'); + $this->assertEquals('some/folder',$internalPath); + + \OC\Files\Filesystem::mount('\OC\Files\Storage\Local',self::getStorageData(),'/some'); + $this->assertEquals('/',\OC\Files\Filesystem::getMountPoint('/')); + $this->assertEquals('/some/',\OC\Files\Filesystem::getMountPoint('/some/folder')); + $this->assertEquals('/some/',\OC\Files\Filesystem::getMountPoint('/some/')); + $this->assertEquals('/some/',\OC\Files\Filesystem::getMountPoint('/some')); + list( , $internalPath)=\OC\Files\Filesystem::resolvePath('/some/folder'); + $this->assertEquals('folder',$internalPath); + } + + public function testNormalize() { + $this->assertEquals('/path', \OC\Files\Filesystem::normalizePath('/path/')); + $this->assertEquals('/path/', \OC\Files\Filesystem::normalizePath('/path/', false)); + $this->assertEquals('/path', \OC\Files\Filesystem::normalizePath('path')); + $this->assertEquals('/path', \OC\Files\Filesystem::normalizePath('\path')); + $this->assertEquals('/foo/bar', \OC\Files\Filesystem::normalizePath('/foo//bar/')); + $this->assertEquals('/foo/bar', \OC\Files\Filesystem::normalizePath('/foo////bar')); + if (class_exists('Normalizer')) { + $this->assertEquals("/foo/bar\xC3\xBC", \OC\Files\Filesystem::normalizePath("/foo/baru\xCC\x88")); + } + } + + public function testHooks() { + if(\OC\Files\Filesystem::getView()){ + $user = \OC_User::getUser(); + }else{ + $user=uniqid(); + \OC\Files\Filesystem::init('/'.$user.'/files'); + } + \OC_Hook::clear('OC_Filesystem'); + \OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook'); + + \OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/'); + + $rootView=new \OC\Files\View(''); + $rootView->mkdir('/'.$user); + $rootView->mkdir('/'.$user.'/files'); + + \OC\Files\Filesystem::file_put_contents('/foo', 'foo'); + \OC\Files\Filesystem::mkdir('/bar'); + \OC\Files\Filesystem::file_put_contents('/bar//foo', 'foo'); + + $tmpFile = \OC_Helper::tmpFile(); + file_put_contents($tmpFile, 'foo'); + $fh = fopen($tmpFile, 'r'); + \OC\Files\Filesystem::file_put_contents('/bar//foo', $fh); + } + + public function dummyHook($arguments) { + $path = $arguments['path']; + $this->assertEquals($path, \OC\Files\Filesystem::normalizePath($path)); //the path passed to the hook should already be normalized + } +} diff --git a/tests/lib/files/mount.php b/tests/lib/files/mount.php new file mode 100644 index 00000000000..f223f0f6c53 --- /dev/null +++ b/tests/lib/files/mount.php @@ -0,0 +1,41 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files; + +use \OC\Files\Storage\Temporary; + +class Mount extends \PHPUnit_Framework_TestCase { + public function setup() { + \OC_Util::setupFS(); + \OC\Files\Mount::clear(); + } + + public function testFind() { + $this->assertNull(\OC\Files\Mount::find('/')); + + $rootMount = new \OC\Files\Mount(new Temporary(array()), '/'); + $this->assertEquals($rootMount, \OC\Files\Mount::find('/')); + $this->assertEquals($rootMount, \OC\Files\Mount::find('/foo/bar')); + + $storage = new Temporary(array()); + $mount = new \OC\Files\Mount($storage, '/foo'); + $this->assertEquals($rootMount, \OC\Files\Mount::find('/')); + $this->assertEquals($mount, \OC\Files\Mount::find('/foo/bar')); + + $this->assertEquals(1, count(\OC\Files\Mount::findIn('/'))); + new \OC\Files\Mount(new Temporary(array()), '/bar'); + $this->assertEquals(2, count(\OC\Files\Mount::findIn('/'))); + + $id = $mount->getStorageId(); + $this->assertEquals(array($mount), \OC\Files\Mount::findById($id)); + + $mount2 = new \OC\Files\Mount($storage, '/foo/bar'); + $this->assertEquals(array($mount, $mount2), \OC\Files\Mount::findById($id)); + } +} diff --git a/tests/lib/filestorage/commontest.php b/tests/lib/files/storage/commontest.php similarity index 74% rename from tests/lib/filestorage/commontest.php rename to tests/lib/files/storage/commontest.php index 6719fcff4e8..ce53c884f32 100644 --- a/tests/lib/filestorage/commontest.php +++ b/tests/lib/files/storage/commontest.php @@ -20,21 +20,19 @@ * */ -class Test_Filestorage_CommonTest extends Test_FileStorage { +namespace Test\Files\Storage; + +class CommonTest extends Storage { /** * @var string tmpDir */ private $tmpDir; public function setUp() { - $this->tmpDir=get_temp_dir().'/filestoragecommon'; - if(!file_exists($this->tmpDir)) { - mkdir($this->tmpDir); - } - $this->instance=new OC_Filestorage_CommonTest(array('datadir'=>$this->tmpDir)); + $this->tmpDir=\OC_Helper::tmpFolder(); + $this->instance=new \OC\Files\Storage\CommonTest(array('datadir'=>$this->tmpDir)); } public function tearDown() { - OC_Helper::rmdirr($this->tmpDir); + \OC_Helper::rmdirr($this->tmpDir); } } - diff --git a/tests/lib/filestorage/local.php b/tests/lib/files/storage/local.php similarity index 79% rename from tests/lib/filestorage/local.php rename to tests/lib/files/storage/local.php index d7d71e8f372..1aad138aa33 100644 --- a/tests/lib/filestorage/local.php +++ b/tests/lib/files/storage/local.php @@ -20,18 +20,20 @@ * */ -class Test_Filestorage_Local extends Test_FileStorage { +namespace Test\Files\Storage; + +class Local extends Storage { /** * @var string tmpDir */ private $tmpDir; public function setUp() { - $this->tmpDir=OC_Helper::tmpFolder(); - $this->instance=new OC_Filestorage_Local(array('datadir'=>$this->tmpDir)); + $this->tmpDir=\OC_Helper::tmpFolder(); + $this->instance=new \OC\Files\Storage\Local(array('datadir'=>$this->tmpDir)); } public function tearDown() { - OC_Helper::rmdirr($this->tmpDir); + \OC_Helper::rmdirr($this->tmpDir); } } diff --git a/tests/lib/filestorage.php b/tests/lib/files/storage/storage.php similarity index 91% rename from tests/lib/filestorage.php rename to tests/lib/files/storage/storage.php index c408efb7543..781c0f92c92 100644 --- a/tests/lib/filestorage.php +++ b/tests/lib/files/storage/storage.php @@ -20,9 +20,11 @@ * */ -abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { +namespace Test\Files\Storage; + +abstract class Storage extends \PHPUnit_Framework_TestCase { /** - * @var OC_Filestorage instance + * @var \OC\Files\Storage\Storage instance */ protected $instance; @@ -36,7 +38,7 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { $this->assertFalse($this->instance->is_file('/'), 'Root folder is a file'); $this->assertEquals('dir', $this->instance->filetype('/')); - //without this, any further testing would be useless, not an acutal requirement for filestorage though + //without this, any further testing would be useless, not an actual requirement for filestorage though $this->assertTrue($this->instance->isUpdatable('/'), 'Root folder is not writable'); } @@ -83,7 +85,7 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { * test the various uses of file_get_contents and file_put_contents */ public function testGetPutContents() { - $sourceFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $sourceFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $sourceText = file_get_contents($sourceFile); //fill a file with string data @@ -103,21 +105,21 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { $this->assertEquals('httpd/unix-directory', $this->instance->getMimeType('/')); $this->assertEquals(false, $this->instance->getMimeType('/non/existing/file')); - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile, 'r')); $this->assertEquals('text/plain', $this->instance->getMimeType('/lorem.txt')); - $pngFile = OC::$SERVERROOT . '/tests/data/logo-wide.png'; + $pngFile = \OC::$SERVERROOT . '/tests/data/logo-wide.png'; $this->instance->file_put_contents('/logo-wide.png', file_get_contents($pngFile, 'r')); $this->assertEquals('image/png', $this->instance->getMimeType('/logo-wide.png')); - $svgFile = OC::$SERVERROOT . '/tests/data/logo-wide.svg'; + $svgFile = \OC::$SERVERROOT . '/tests/data/logo-wide.svg'; $this->instance->file_put_contents('/logo-wide.svg', file_get_contents($svgFile, 'r')); $this->assertEquals('image/svg+xml', $this->instance->getMimeType('/logo-wide.svg')); } public function testCopyAndMove() { - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents('/source.txt', file_get_contents($textFile)); $this->instance->copy('/source.txt', '/target.txt'); $this->assertTrue($this->instance->file_exists('/target.txt')); @@ -130,7 +132,7 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { } public function testLocal() { - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile)); $localFile = $this->instance->getLocalFile('/lorem.txt'); $this->assertTrue(file_exists($localFile)); @@ -151,7 +153,7 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { } public function testStat() { - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $ctimeStart = time(); $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile)); $this->assertTrue($this->instance->isReadable('/lorem.txt')); @@ -200,11 +202,11 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { } public function testSearch() { - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile, 'r')); - $pngFile = OC::$SERVERROOT . '/tests/data/logo-wide.png'; + $pngFile = \OC::$SERVERROOT . '/tests/data/logo-wide.png'; $this->instance->file_put_contents('/logo-wide.png', file_get_contents($pngFile, 'r')); - $svgFile = OC::$SERVERROOT . '/tests/data/logo-wide.svg'; + $svgFile = \OC::$SERVERROOT . '/tests/data/logo-wide.svg'; $this->instance->file_put_contents('/logo-wide.svg', file_get_contents($svgFile, 'r')); $result = $this->instance->search('logo'); $this->assertEquals(2, count($result)); @@ -213,7 +215,7 @@ abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { } public function testFOpen() { - $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $fh = @$this->instance->fopen('foo', 'r'); if ($fh) { diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php new file mode 100644 index 00000000000..a064e44f3ef --- /dev/null +++ b/tests/lib/files/view.php @@ -0,0 +1,251 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. */ + +namespace Test\Files; + +class View extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Files\Storage\Storage[] $storages; + */ + private $storages = array(); + + public function setUp() { + \OC\Files\Filesystem::clearMounts(); + } + + public function tearDown() { + foreach ($this->storages as $storage) { + $cache = $storage->getCache(); + $ids = $cache->getAll(); + $permissionsCache = $storage->getPermissionsCache(); + $permissionsCache->removeMultiple($ids, \OC_User::getUser()); + $cache->clear(); + } + } + + public function testCacheAPI() { + $storage1 = $this->getTestStorage(); + $storage2 = $this->getTestStorage(); + $storage3 = $this->getTestStorage(); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/substorage'); + \OC\Files\Filesystem::mount($storage3, array(), '/folder/anotherstorage'); + $textSize = strlen("dummy file data\n"); + $imageSize = filesize(\OC::$SERVERROOT . '/core/img/logo.png'); + $storageSize = $textSize * 2 + $imageSize; + + $rootView = new \OC\Files\View(''); + + $cachedData = $rootView->getFileInfo('/foo.txt'); + $this->assertEquals($textSize, $cachedData['size']); + $this->assertEquals('text/plain', $cachedData['mimetype']); + $this->assertNotEquals(-1, $cachedData['permissions']); + + $cachedData = $rootView->getFileInfo('/'); + $this->assertEquals($storageSize * 3, $cachedData['size']); + $this->assertEquals('httpd/unix-directory', $cachedData['mimetype']); + + $cachedData = $rootView->getFileInfo('/folder'); + $this->assertEquals($storageSize + $textSize, $cachedData['size']); + $this->assertEquals('httpd/unix-directory', $cachedData['mimetype']); + + $folderData = $rootView->getDirectoryContent('/'); + /** + * expected entries: + * folder + * foo.png + * foo.txt + * substorage + */ + $this->assertEquals(4, count($folderData)); + $this->assertEquals('folder', $folderData[0]['name']); + $this->assertEquals('foo.png', $folderData[1]['name']); + $this->assertEquals('foo.txt', $folderData[2]['name']); + $this->assertEquals('substorage', $folderData[3]['name']); + + $this->assertEquals($storageSize + $textSize, $folderData[0]['size']); + $this->assertEquals($imageSize, $folderData[1]['size']); + $this->assertEquals($textSize, $folderData[2]['size']); + $this->assertEquals($storageSize, $folderData[3]['size']); + + $folderData = $rootView->getDirectoryContent('/substorage'); + /** + * expected entries: + * folder + * foo.png + * foo.txt + */ + $this->assertEquals(3, count($folderData)); + $this->assertEquals('folder', $folderData[0]['name']); + $this->assertEquals('foo.png', $folderData[1]['name']); + $this->assertEquals('foo.txt', $folderData[2]['name']); + + $folderView = new \OC\Files\View('/folder'); + $this->assertEquals($rootView->getFileInfo('/folder'), $folderView->getFileInfo('/')); + + $cachedData = $rootView->getFileInfo('/foo.txt'); + $this->assertFalse($cachedData['encrypted']); + $id = $rootView->putFileInfo('/foo.txt', array('encrypted' => true)); + $cachedData = $rootView->getFileInfo('/foo.txt'); + $this->assertTrue($cachedData['encrypted']); + $this->assertEquals($cachedData['fileid'], $id); + + $this->assertFalse($rootView->getFileInfo('/non/existing')); + $this->assertEquals(array(), $rootView->getDirectoryContent('/non/existing')); + } + + function testGetPath() { + $storage1 = $this->getTestStorage(); + $storage2 = $this->getTestStorage(); + $storage3 = $this->getTestStorage(); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/substorage'); + \OC\Files\Filesystem::mount($storage3, array(), '/folder/anotherstorage'); + + $rootView = new \OC\Files\View(''); + + $cachedData = $rootView->getFileInfo('/foo.txt'); + $id1 = $cachedData['fileid']; + $this->assertEquals('/foo.txt', $rootView->getPath($id1)); + + $cachedData = $rootView->getFileInfo('/substorage/foo.txt'); + $id2 = $cachedData['fileid']; + $this->assertEquals('/substorage/foo.txt', $rootView->getPath($id2)); + + $folderView = new \OC\Files\View('/substorage'); + $this->assertEquals('/foo.txt', $folderView->getPath($id2)); + $this->assertNull($folderView->getPath($id1)); + } + + function testMountPointOverwrite() { + $storage1 = $this->getTestStorage(false); + $storage2 = $this->getTestStorage(); + $storage1->mkdir('substorage'); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/substorage'); + + $rootView = new \OC\Files\View(''); + $folderContent = $rootView->getDirectoryContent('/'); + $this->assertEquals(4, count($folderContent)); + } + + function testCacheIncompleteFolder() { + $storage1 = $this->getTestStorage(false); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + $rootView = new \OC\Files\View(''); + + $entries = $rootView->getDirectoryContent('/'); + $this->assertEquals(3, count($entries)); + + // /folder will already be in the cache but not scanned + $entries = $rootView->getDirectoryContent('/folder'); + $this->assertEquals(1, count($entries)); + } + + public function testAutoScan() { + $storage1 = $this->getTestStorage(false); + $storage2 = $this->getTestStorage(false); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/substorage'); + $textSize = strlen("dummy file data\n"); + + $rootView = new \OC\Files\View(''); + + $cachedData = $rootView->getFileInfo('/'); + $this->assertEquals('httpd/unix-directory', $cachedData['mimetype']); + $this->assertEquals(-1, $cachedData['size']); + + $folderData = $rootView->getDirectoryContent('/substorage/folder'); + $this->assertEquals('text/plain', $folderData[0]['mimetype']); + $this->assertEquals($textSize, $folderData[0]['size']); + } + + function testSearch() { + $storage1 = $this->getTestStorage(); + $storage2 = $this->getTestStorage(); + $storage3 = $this->getTestStorage(); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/substorage'); + \OC\Files\Filesystem::mount($storage3, array(), '/folder/anotherstorage'); + + $rootView = new \OC\Files\View(''); + + $results = $rootView->search('foo'); + $this->assertEquals(6, count($results)); + $paths = array(); + foreach ($results as $result) { + $this->assertEquals($result['path'], \OC\Files\Filesystem::normalizePath($result['path'])); + $paths[] = $result['path']; + } + $this->assertContains('/foo.txt', $paths); + $this->assertContains('/foo.png', $paths); + $this->assertContains('/substorage/foo.txt', $paths); + $this->assertContains('/substorage/foo.png', $paths); + $this->assertContains('/folder/anotherstorage/foo.txt', $paths); + $this->assertContains('/folder/anotherstorage/foo.png', $paths); + + $folderView = new \OC\Files\View('/folder'); + $results = $folderView->search('bar'); + $this->assertEquals(2, count($results)); + $paths = array(); + foreach ($results as $result) { + $paths[] = $result['path']; + } + $this->assertContains('/anotherstorage/folder/bar.txt', $paths); + $this->assertContains('/bar.txt', $paths); + + $results = $folderView->search('foo'); + $this->assertEquals(2, count($results)); + $paths = array(); + foreach ($results as $result) { + $paths[] = $result['path']; + } + $this->assertContains('/anotherstorage/foo.txt', $paths); + $this->assertContains('/anotherstorage/foo.png', $paths); + + $this->assertEquals(6, count($rootView->searchByMime('text'))); + $this->assertEquals(3, count($folderView->searchByMime('text'))); + } + + function testWatcher() { + $storage1 = $this->getTestStorage(); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + + $rootView = new \OC\Files\View(''); + + $cachedData = $rootView->getFileInfo('foo.txt'); + $this->assertEquals(16, $cachedData['size']); + + $rootView->putFileInfo('foo.txt', array('mtime' => 10)); + $storage1->file_put_contents('foo.txt', 'foo'); + clearstatcache(); + + $cachedData = $rootView->getFileInfo('foo.txt'); + $this->assertEquals(3, $cachedData['size']); + } + + /** + * @param bool $scan + * @return \OC\Files\Storage\Storage + */ + private function getTestStorage($scan = true) { + $storage = new \OC\Files\Storage\Temporary(array()); + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $storage->mkdir('folder'); + $storage->file_put_contents('foo.txt', $textData); + $storage->file_put_contents('foo.png', $imgData); + $storage->file_put_contents('folder/bar.txt', $textData); + + if ($scan) { + $scanner = $storage->getScanner(); + $scanner->scan(''); + } + $this->storages[] = $storage; + return $storage; + } +} diff --git a/tests/lib/filesystem.php b/tests/lib/filesystem.php deleted file mode 100644 index ee31ef4364d..00000000000 --- a/tests/lib/filesystem.php +++ /dev/null @@ -1,139 +0,0 @@ -. - * - */ - -class Test_Filesystem extends PHPUnit_Framework_TestCase { - /** - * @var array tmpDirs - */ - private $tmpDirs = array(); - - /** - * @return array - */ - private function getStorageData() { - $dir = OC_Helper::tmpFolder(); - $this->tmpDirs[] = $dir; - return array('datadir' => $dir); - } - - public function tearDown() { - foreach ($this->tmpDirs as $dir) { - OC_Helper::rmdirr($dir); - } - } - - public function setUp() { - OC_Filesystem::clearMounts(); - } - - public function testMount() { - OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/'); - $this->assertEquals('/', OC_Filesystem::getMountPoint('/')); - $this->assertEquals('/', OC_Filesystem::getMountPoint('/some/folder')); - $this->assertEquals('', OC_Filesystem::getInternalPath('/')); - $this->assertEquals('some/folder', OC_Filesystem::getInternalPath('/some/folder')); - - OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/some'); - $this->assertEquals('/', OC_Filesystem::getMountPoint('/')); - $this->assertEquals('/some/', OC_Filesystem::getMountPoint('/some/folder')); - $this->assertEquals('/some/', OC_Filesystem::getMountPoint('/some/')); - $this->assertEquals('/', OC_Filesystem::getMountPoint('/some')); - $this->assertEquals('folder', OC_Filesystem::getInternalPath('/some/folder')); - } - - public function testNormalize() { - $this->assertEquals('/path', OC_Filesystem::normalizePath('/path/')); - $this->assertEquals('/path/', OC_Filesystem::normalizePath('/path/', false)); - $this->assertEquals('/path', OC_Filesystem::normalizePath('path')); - $this->assertEquals('/path', OC_Filesystem::normalizePath('\path')); - $this->assertEquals('/foo/bar', OC_Filesystem::normalizePath('/foo//bar/')); - $this->assertEquals('/foo/bar', OC_Filesystem::normalizePath('/foo////bar')); - if (class_exists('Normalizer')) { - $this->assertEquals("/foo/bar\xC3\xBC", OC_Filesystem::normalizePath("/foo/baru\xCC\x88")); - } - } - - public function testBlacklist() { - OC_Hook::clear('OC_Filesystem'); - OC::registerFilesystemHooks(); - - $run = true; - OC_Hook::emit( - OC_Filesystem::CLASSNAME, - OC_Filesystem::signal_write, - array( - OC_Filesystem::signal_param_path => '/test/.htaccess', - OC_Filesystem::signal_param_run => &$run - ) - ); - $this->assertFalse($run); - - if (OC_Filesystem::getView()) { - $user = OC_User::getUser(); - } else { - $user = uniqid(); - OC_Filesystem::init('/' . $user . '/files'); - } - - OC_Filesystem::mount('OC_Filestorage_Temporary', array(), '/'); - - $rootView = new OC_FilesystemView(''); - $rootView->mkdir('/' . $user); - $rootView->mkdir('/' . $user . '/files'); - - $this->assertFalse((bool)$rootView->file_put_contents('/.htaccess', 'foo')); - $this->assertFalse((bool)OC_Filesystem::file_put_contents('/.htaccess', 'foo')); - $fh = fopen(__FILE__, 'r'); - $this->assertFalse((bool)OC_Filesystem::file_put_contents('/.htaccess', $fh)); - } - - public function testHooks() { - if (OC_Filesystem::getView()) { - $user = OC_User::getUser(); - } else { - $user = uniqid(); - OC_Filesystem::init('/' . $user . '/files'); - } - OC_Hook::clear('OC_Filesystem'); - OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook'); - - OC_Filesystem::mount('OC_Filestorage_Temporary', array(), '/'); - - $rootView = new OC_FilesystemView(''); - $rootView->mkdir('/' . $user); - $rootView->mkdir('/' . $user . '/files'); - - OC_Filesystem::file_put_contents('/foo', 'foo'); - OC_Filesystem::mkdir('/bar'); - OC_Filesystem::file_put_contents('/bar//foo', 'foo'); - - $tmpFile = OC_Helper::tmpFile(); - file_put_contents($tmpFile, 'foo'); - $fh = fopen($tmpFile, 'r'); - OC_Filesystem::file_put_contents('/bar//foo', $fh); - } - - public function dummyHook($arguments) { - $path = $arguments['path']; - $this->assertEquals($path, OC_Filesystem::normalizePath($path)); //the path passed to the hook should already be normalized - } -} diff --git a/tests/lib/streamwrappers.php b/tests/lib/streamwrappers.php index aebbc93b902..2237ee7d378 100644 --- a/tests/lib/streamwrappers.php +++ b/tests/lib/streamwrappers.php @@ -1,41 +1,41 @@ . -* -*/ + * ownCloud + * + * @author Robin Appelman + * @copyright 2012 Robin Appelman icewind@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + * + */ class Test_StreamWrappers extends PHPUnit_Framework_TestCase { public function testFakeDir() { - $items=array('foo', 'bar'); - OC_FakeDirStream::$dirs['test']=$items; - $dh=opendir('fakedir://test'); - $result=array(); - while($file=readdir($dh)) { - $result[]=$file; + $items = array('foo', 'bar'); + \OC\Files\Stream\Dir::register('test', $items); + $dh = opendir('fakedir://test'); + $result = array(); + while ($file = readdir($dh)) { + $result[] = $file; $this->assertContains($file, $items); } $this->assertEquals(count($items), count($result)); } public function testStaticStream() { - $sourceFile=OC::$SERVERROOT.'/tests/data/lorem.txt'; - $staticFile='static://test'; + $sourceFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $staticFile = 'static://test'; $this->assertFalse(file_exists($staticFile)); file_put_contents($staticFile, file_get_contents($sourceFile)); $this->assertTrue(file_exists($staticFile)); @@ -47,27 +47,27 @@ class Test_StreamWrappers extends PHPUnit_Framework_TestCase { public function testCloseStream() { //ensure all basic stream stuff works - $sourceFile=OC::$SERVERROOT.'/tests/data/lorem.txt'; - $tmpFile=OC_Helper::TmpFile('.txt'); - $file='close://'.$tmpFile; + $sourceFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; + $tmpFile = OC_Helper::TmpFile('.txt'); + $file = 'close://' . $tmpFile; $this->assertTrue(file_exists($file)); file_put_contents($file, file_get_contents($sourceFile)); $this->assertEquals(file_get_contents($sourceFile), file_get_contents($file)); unlink($file); clearstatcache(); $this->assertFalse(file_exists($file)); - + //test callback - $tmpFile=OC_Helper::TmpFile('.txt'); - $file='close://'.$tmpFile; - OC_CloseStreamWrapper::$callBacks[$tmpFile]=array('Test_StreamWrappers', 'closeCallBack'); - $fh=fopen($file, 'w'); + $tmpFile = OC_Helper::TmpFile('.txt'); + $file = 'close://' . $tmpFile; + \OC\Files\Stream\Close::registerCallback($tmpFile, array('Test_StreamWrappers', 'closeCallBack')); + $fh = fopen($file, 'w'); fwrite($fh, 'asd'); - try{ + try { fclose($fh); $this->fail('Expected exception'); - }catch(Exception $e) { - $path=$e->getMessage(); + } catch (Exception $e) { + $path = $e->getMessage(); $this->assertEquals($path, $tmpFile); } } @@ -75,4 +75,23 @@ class Test_StreamWrappers extends PHPUnit_Framework_TestCase { public static function closeCallBack($path) { throw new Exception($path); } + + public function testOC() { + \OC\Files\Mount::clear(); + $storage = new \OC\Files\Storage\Temporary(array()); + $storage->file_put_contents('foo.txt', 'asd'); + new \OC\Files\Mount($storage, '/'); + + $this->assertTrue(file_exists('oc:///foo.txt')); + $this->assertEquals('asd', file_get_contents('oc:///foo.txt')); + $this->assertEquals(array('.', '..', 'foo.txt'), scandir('oc:///')); + + file_put_contents('oc:///bar.txt', 'qwerty'); + $this->assertEquals('qwerty', $storage->file_get_contents('bar.txt')); + $this->assertEquals(array('.', '..', 'bar.txt', 'foo.txt'), scandir('oc:///')); + $this->assertEquals('qwerty', file_get_contents('oc:///bar.txt')); + + unlink('oc:///foo.txt'); + $this->assertEquals(array('.', '..', 'bar.txt'), scandir('oc:///')); + } }