From 5b44714f4cbd75138519789f55fd8b6f4b5d4241 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Tue, 13 Nov 2012 15:11:02 +0100 Subject: [PATCH 001/170] =?UTF-8?q?first=20version=20of=20the=20new=20prev?= =?UTF-8?q?iewer=20lib.=20It=20currently=20only=20created=20previews/thumb?= =?UTF-8?q?nails=20for=20images.=20It=20get=C2=B4s=20more=20interesting=20?= =?UTF-8?q?when=20we=20add=20PDFs,=20movies,=20mp3,=20text=20files=20and?= =?UTF-8?q?=20more...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/preview.php | 131 +++++++++++++++++++++++++++++++++++++++++ lib/public/preview.php | 50 ++++++++++++++++ 2 files changed, 181 insertions(+) create mode 100755 lib/preview.php create mode 100644 lib/public/preview.php diff --git a/lib/preview.php b/lib/preview.php new file mode 100755 index 0000000000..8b1a42925a --- /dev/null +++ b/lib/preview.php @@ -0,0 +1,131 @@ +show(); + }else{ + header('Content-type: image/png'); + OC_PreviewUnknown::getThumbnail($maxX,$maxY); + } + } + + +} + + + +class OC_PreviewImage { + + // the thumbnail cache folder + const THUMBNAILS_FOLDER = 'thumbnails'; + + public static function getThumbnail($path,$maxX,$maxY,$scalingup) { + $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.self::THUMBNAILS_FOLDER); + + // is a preview already in the cache? + if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { + return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); + } + + // does the sourcefile exist? + if (!\OC_Filesystem::file_exists($path)) { + \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); + return false; + } + + // open the source image + $image = new \OC_Image(); + $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); + if (!$image->valid()) return false; + + // fix the orientation + $image->fixOrientation(); + + // calculate the right preview size + $Xsize=$image->width(); + $Ysize=$image->height(); + if (($Xsize/$Ysize)>($maxX/$maxY)) { + $factor=$maxX/$Xsize; + } else { + $factor=$maxY/$Ysize; + } + + // only scale up if requested + if($scalingup==false) { + if($factor>1) $factor=1; + } + $newXsize=$Xsize*$factor; + $newYsize=$Ysize*$factor; + + // resize + $ret = $image->preciseResize($newXsize, $newYsize); + if (!$ret) { + \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); + unset($image); + return false; + } + + // store in cache + $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); + $image->save($l); + + return $image; + } + + + +} + + +class OC_PreviewUnknown { + public static function getThumbnail($maxX,$maxY) { + + // check if GD is installed + if(!extension_loaded('gd') || !function_exists('gd_info')) { + OC_Log::write('preview', __METHOD__.'(): GD module not installed', OC_Log::ERROR); + return false; + } + + // create a white image + $image = imagecreatetruecolor($maxX, $maxY); + $color = imagecolorallocate($image, 255, 255, 255); + imagefill($image, 0, 0, $color); + + // output the image + imagepng($image); + imagedestroy($image); + } + +} + diff --git a/lib/public/preview.php b/lib/public/preview.php new file mode 100644 index 0000000000..a7487c485f --- /dev/null +++ b/lib/public/preview.php @@ -0,0 +1,50 @@ +. +* +*/ + +/** + * Public interface of ownCloud for apps to use. + * Preview Class. + * + */ + +// use OCP namespace for all classes that are considered public. +// This means that they should be used by apps instead of the internal ownCloud classes +namespace OCP; + +/** + * This class provides functions to render and show thumbnails and previews of files + */ +class Preview { + + /** + * @brief return a preview of a file + * @param $file The path to the file where you want a thumbnail from + * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image + * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly + * @return image + */ + public static function show($file,$maxX=100,$maxY=75,$scaleup=false) { + return(\OC_Preview::show($file,$maxX,$maxY,$scaleup)); + } + +} From e484811e24f6332df49eb35c7e2adffca81d2005 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Tue, 13 Nov 2012 16:14:16 +0100 Subject: [PATCH 002/170] add some documentation, remove a debug hack, move folder name definition to main class --- lib/preview.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 8b1a42925a..3fa494a2e0 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -19,21 +19,28 @@ TODO: class OC_Preview { - + + // the thumbnail cache folder + const THUMBNAILS_FOLDER = 'thumbnails'; /** * @brief return a preview of a file * @param $file The path to the file where you want a thumbnail from * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return image */ - static public function show($file,$maxX,$maxY) { + static public function show($file,$maxX,$maxY,$scalingup) { + // get the mimetype of the file $mimetype=explode('/',OC_FileSystem::getMimeType($file)); - if($mimetype[0]=='imaage'){ + + // it´s an image + if($mimetype[0]=='image'){ OCP\Response::enableCaching(3600 * 24); // 24 hour - $image=OC_PreviewImage::getThumbnail($file,$maxX,$maxY,false); + $image=OC_PreviewImage::getThumbnail($file,$maxX,$maxY,$scalingup); $image->show(); + // it´s something else. Let´s create a dummy preview }else{ header('Content-type: image/png'); OC_PreviewUnknown::getThumbnail($maxX,$maxY); @@ -47,11 +54,8 @@ class OC_Preview { class OC_PreviewImage { - // the thumbnail cache folder - const THUMBNAILS_FOLDER = 'thumbnails'; - public static function getThumbnail($path,$maxX,$maxY,$scalingup) { - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.self::THUMBNAILS_FOLDER); + $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); // is a preview already in the cache? if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { From eb27c0b2a84da44f8e42f7e4aca0102c969eb195 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Mon, 14 Jan 2013 15:51:47 +0100 Subject: [PATCH 003/170] snapshor of the preview lib. movies are not yet working --- lib/preview.php | 94 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 26 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 3fa494a2e0..d49e9d3bde 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -9,6 +9,7 @@ /* TODO: - delete thumbnails if files change. + - make it work with external filesystem files. - movies support - pdf support - mp3/id3 support @@ -34,12 +35,17 @@ class OC_Preview { static public function show($file,$maxX,$maxY,$scalingup) { // get the mimetype of the file $mimetype=explode('/',OC_FileSystem::getMimeType($file)); - // it´s an image if($mimetype[0]=='image'){ OCP\Response::enableCaching(3600 * 24); // 24 hour $image=OC_PreviewImage::getThumbnail($file,$maxX,$maxY,$scalingup); $image->show(); + + // it´s a video + }elseif($mimetype[0]=='video'){ + OCP\Response::enableCaching(3600 * 24); // 24 hour + OC_PreviewMovie::getThumbnail($file,$maxX,$maxY,$scalingup); + // it´s something else. Let´s create a dummy preview }else{ header('Content-type: image/png'); @@ -55,56 +61,59 @@ class OC_Preview { class OC_PreviewImage { public static function getThumbnail($path,$maxX,$maxY,$scalingup) { - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); - // is a preview already in the cache? + $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); + + // is a preview already in the cache? if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); } - - // does the sourcefile exist? + + // does the sourcefile exist? if (!\OC_Filesystem::file_exists($path)) { \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); return false; } - // open the source image + // open the source image $image = new \OC_Image(); $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); if (!$image->valid()) return false; - // fix the orientation + // fix the orientation $image->fixOrientation(); - - // calculate the right preview size - $Xsize=$image->width(); - $Ysize=$image->height(); - if (($Xsize/$Ysize)>($maxX/$maxY)) { - $factor=$maxX/$Xsize; - } else { - $factor=$maxY/$Ysize; - } - - // only scale up if requested - if($scalingup==false) { - if($factor>1) $factor=1; - } - $newXsize=$Xsize*$factor; - $newYsize=$Ysize*$factor; - // resize + // calculate the right preview size + $Xsize=$image->width(); + $Ysize=$image->height(); + if (($Xsize/$Ysize)>($maxX/$maxY)) { + $factor=$maxX/$Xsize; + } else { + $factor=$maxY/$Ysize; + } + + // only scale up if requested + if($scalingup==false) { + if($factor>1) $factor=1; + } + $newXsize=$Xsize*$factor; + $newYsize=$Ysize*$factor; + + // resize $ret = $image->preciseResize($newXsize, $newYsize); if (!$ret) { \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); unset($image); return false; } - - // store in cache + + // store in cache $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); $image->save($l); return $image; + + } @@ -112,6 +121,39 @@ class OC_PreviewImage { } +class OC_PreviewMovie { + + public static function isAvailable() { + $check=shell_exec('ffmpeg'); + if($check==NULL) return(false); else return(true); + } + + public static function getThumbnail($path,$maxX,$maxY,$scalingup) { + $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); + + // is a preview already in the cache? + if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { + return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); + } + + // does the sourcefile exist? + if (!\OC_Filesystem::file_exists($path)) { + \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); + return false; + } + + // call ffmpeg to do the screenshot + shell_exec('ffmpeg -y -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}'); + + // output the generated Preview + $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); + unset($thumbnails_view); + } + + +} + + class OC_PreviewUnknown { public static function getThumbnail($maxX,$maxY) { From 9ef449842a369c2517f5c34932b502b754393ce0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 25 Apr 2013 11:18:45 +0200 Subject: [PATCH 004/170] save current work state of Preview Lib --- lib/preview.php | 384 +++++++++++++++++++++++++++++------------------- 1 file changed, 232 insertions(+), 152 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index d49e9d3bde..c704763321 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -1,28 +1,139 @@ getFileInfo($file); + $fileid = self::$fileinfo['fileid']; + + //echo self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid; + if(!self::$fileview->is_dir(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid)){ + return false; + } + + //does a preview with the wanted height and width already exist? + if(self::$fileview->file_exists(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png')){ + return self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png'; + } + + $wantedaspectratio = $maxX / $maxY; + + //array for usable cached thumbnails + $possiblethumbnails = array(); + + $allthumbnails = self::$fileview->getDirectoryContent(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid); + foreach($allthumbnails as $thumbnail){ + $size = explode('-', $thumbnail['name']); + $x = $size[0]; + $y = $size[1]; + + $aspectratio = $x / $y; + if($aspectratio != $wantedaspectratio){ + continue; + } + + if($x < $maxX || $y < $maxY){ + if($scalingup){ + $scalefactor = $maxX / $x; + if($scalefactor > self::MAX_SCALE_FACTOR){ + continue; + } + }else{ + continue; + } + } + + $possiblethumbnails[$x] = $thumbnail['path']; + } + + if(count($possiblethumbnails) === 0){ + return false; + } + + if(count($possiblethumbnails) === 1){ + return current($possiblethumbnails); + } + + ksort($possiblethumbnails); + + if(key(reset($possiblethumbnails)) > $maxX){ + return current(reset($possiblethumbnails)); + } + + if(key(end($possiblethumbnails)) < $maxX){ + return current(end($possiblethumbnails)); + } + + foreach($possiblethumbnails as $width => $path){ + if($width < $maxX){ + continue; + }else{ + return $path; + } + } + } + + /** + * @brief delete a preview with a specfic height and width + * @param $file path to the file + * @param $x width of preview + * @param $y height of preview + * @return image + */ + public static function deletePreview($file, $x, $y){ + self::init(); + + $fileinfo = self::$fileview->getFileInfo($file); + $fileid = self::$fileinfo['fileid']; + + return self::$fileview->unlink(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png'); + } + + /** + * @brief deletes all previews of a file + * @param $file path of file + * @return bool + */ + public static function deleteAllPrevies($file){ + self::init(); + + $fileinfo = self::$fileview->getFileInfo($file); + $fileid = self::$fileinfo['fileid']; + + return self::$fielview->rmdir(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid); + } /** * @brief return a preview of a file @@ -32,146 +143,115 @@ class OC_Preview { * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return image */ - static public function show($file,$maxX,$maxY,$scalingup) { - // get the mimetype of the file - $mimetype=explode('/',OC_FileSystem::getMimeType($file)); - // it´s an image - if($mimetype[0]=='image'){ - OCP\Response::enableCaching(3600 * 24); // 24 hour - $image=OC_PreviewImage::getThumbnail($file,$maxX,$maxY,$scalingup); - $image->show(); + public static function getPreview($file, $maxX, $maxY, $scalingup){ + self::init(); + + $cached = self::isCached($file, $maxX, $maxY); + if($cached){ + $image = new \OC_Image($cached); + if($image->width() != $maxX && $image->height != $maxY){ + $image->preciseResize($maxX, $maxY); + } + return $image; + } + + $mimetype = self::$fileview->getMimeType($file); + + $preview; + + foreach(self::$providers as $supportedmimetype => $provider){ + if(!preg_match($supportedmimetype, $mimetype)){ + continue; + } + + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup); + + if(!$preview){ + continue; + } + + if(!($preview instanceof \OC_Image)){ + $preview = @new \OC_Image($preview); + } + + //cache thumbnail + $preview->save(self::$filesview->getAbsolutePath(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png')); + + break; + } + + return $preview; + } - // it´s a video - }elseif($mimetype[0]=='video'){ - OCP\Response::enableCaching(3600 * 24); // 24 hour - OC_PreviewMovie::getThumbnail($file,$maxX,$maxY,$scalingup); - - // it´s something else. Let´s create a dummy preview - }else{ - header('Content-type: image/png'); - OC_PreviewUnknown::getThumbnail($maxX,$maxY); + /** + * @brief return a preview of a file + * @param $file The path to the file where you want a thumbnail from + * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image + * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly + * @return image + */ + public static function showPreview($file, $maxX, $maxY, $scalingup = true, $fontsize = 12){ + OCP\Response::enableCaching(3600 * 24); // 24 hour + $preview = self::getPreview($file, $maxX, $maxY, $scalingup, $fontsize); + $preview->show(); + } + + /** + * @brief check whether or not providers and views are initialized and initialize if not + * @return void + */ + private static function init(){ + if(empty(self::$providers)){ + self::initProviders(); + } + if(is_null(self::$thumbnailsview) || is_null(self::$userlandview)){ + self::initViews(); } } + /** + * @brief register a new preview provider to be used + * @param string $provider class name of a OC_Preview_Provider + * @return void + */ + public static function registerProvider($class, $options=array()){ + self::$registeredProviders[]=array('class'=>$class, 'options'=>$options); + } -} - - - -class OC_PreviewImage { - - public static function getThumbnail($path,$maxX,$maxY,$scalingup) { - - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); - - // is a preview already in the cache? - if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { - return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); - } - - // does the sourcefile exist? - if (!\OC_Filesystem::file_exists($path)) { - \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); - return false; - } - - // open the source image - $image = new \OC_Image(); - $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); - if (!$image->valid()) return false; - - // fix the orientation - $image->fixOrientation(); - - // calculate the right preview size - $Xsize=$image->width(); - $Ysize=$image->height(); - if (($Xsize/$Ysize)>($maxX/$maxY)) { - $factor=$maxX/$Xsize; - } else { - $factor=$maxY/$Ysize; - } - - // only scale up if requested - if($scalingup==false) { - if($factor>1) $factor=1; - } - $newXsize=$Xsize*$factor; - $newYsize=$Ysize*$factor; - - // resize - $ret = $image->preciseResize($newXsize, $newYsize); - if (!$ret) { - \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); - unset($image); - return false; - } - - // store in cache - $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); - $image->save($l); - - return $image; - - - } - - - -} - - -class OC_PreviewMovie { - - public static function isAvailable() { - $check=shell_exec('ffmpeg'); - if($check==NULL) return(false); else return(true); - } - - public static function getThumbnail($path,$maxX,$maxY,$scalingup) { - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); - - // is a preview already in the cache? - if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { - return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); - } - - // does the sourcefile exist? - if (!\OC_Filesystem::file_exists($path)) { - \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); - return false; - } - - // call ffmpeg to do the screenshot - shell_exec('ffmpeg -y -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}'); - - // output the generated Preview - $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); - unset($thumbnails_view); - } - - -} - - -class OC_PreviewUnknown { - public static function getThumbnail($maxX,$maxY) { - - // check if GD is installed - if(!extension_loaded('gd') || !function_exists('gd_info')) { - OC_Log::write('preview', __METHOD__.'(): GD module not installed', OC_Log::ERROR); - return false; + /** + * @brief create instances of all the registered preview providers + * @return void + */ + private static function initProviders(){ + if(count(self::$providers)>0) { + return; } - - // create a white image - $image = imagecreatetruecolor($maxX, $maxY); - $color = imagecolorallocate($image, 255, 255, 255); - imagefill($image, 0, 0, $color); - - // output the image - imagepng($image); - imagedestroy($image); - } - -} - + + foreach(self::$registeredProviders as $provider) { + $class=$provider['class']; + $options=$provider['options']; + + $object = new $class($options); + + self::$providers[$object->getMimeType()] = $object; + } + + $keys = array_map('strlen', array_keys(self::$providers)); + array_multisort($keys, SORT_DESC, self::$providers); + } + + /** + * @brief initialize a new \OC\Files\View object + * @return void + */ + private static function initViews(){ + if(is_null(self::$fileview)){ + self::$fileview = new OC\Files\View(); + } + } + + public static function previewRouter($params){ + var_dump($params); + } +} \ No newline at end of file From f02aca3f6ee295485d5bb9bc99b85b5573716f17 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 25 Apr 2013 11:42:40 +0200 Subject: [PATCH 005/170] add route for previews --- core/routes.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/routes.php b/core/routes.php index be19b66bf7..be5766cea9 100644 --- a/core/routes.php +++ b/core/routes.php @@ -42,7 +42,8 @@ $this->create('js_config', '/core/js/config.js') // Routing $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); - +$this->create('core_ajax_preview', '/core/preview.png') + ->action('OC_Preview', 'previewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() From 8c1925425b26d9b2889632c724ec455ceeed4dd4 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 25 Apr 2013 12:51:44 +0200 Subject: [PATCH 006/170] save current work state --- lib/preview.php | 32 ++++++++++++++++-- lib/preview/images.php | 71 ++++++++++++++++++++++++++++++++++++++++ lib/preview/movies.php | 42 ++++++++++++++++++++++++ lib/preview/mp3.php | 1 + lib/preview/pdf.php | 0 lib/preview/provider.php | 20 +++++++++++ lib/preview/unknown.php | 34 +++++++++++++++++++ 7 files changed, 197 insertions(+), 3 deletions(-) create mode 100644 lib/preview/images.php create mode 100644 lib/preview/movies.php create mode 100644 lib/preview/mp3.php create mode 100644 lib/preview/pdf.php create mode 100644 lib/preview/provider.php create mode 100644 lib/preview/unknown.php diff --git a/lib/preview.php b/lib/preview.php index c704763321..de79b42407 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -205,7 +205,7 @@ class OC_Preview { if(empty(self::$providers)){ self::initProviders(); } - if(is_null(self::$thumbnailsview) || is_null(self::$userlandview)){ + if(is_null(self::$fileview)){ self::initViews(); } } @@ -247,11 +247,37 @@ class OC_Preview { */ private static function initViews(){ if(is_null(self::$fileview)){ - self::$fileview = new OC\Files\View(); + //does this work with LDAP? + self::$fileview = new OC\Files\View(OC_User::getUser()); } } public static function previewRouter($params){ - var_dump($params); + self::init(); + + $file = (string) urldecode($_GET['file']); + $maxX = (int) $_GET['x']; + $maxY = (int) $_GET['y']; + $scalingup = (bool) $_GET['scalingup']; + + $path = 'files/' . $file; + + if($maxX === 0 || $maxY === 0){ + OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::DEBUG); + exit; + } + + var_dump(self::$fileview->file_exists($path)); + var_dump(self::$fileview->getDirectoryContent()); + var_dump(self::$fileview->getDirectoryContent('files/')); + var_dump($path); + var_dump(self::$fileview->filesize($path)); + var_dump(self::$fileview->getAbsolutePath('/')); + + if(!self::$fileview->filesize($path)){ + OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND); + } + + self::showPreview($file, $maxX, $maxY, $scalingup); } } \ No newline at end of file diff --git a/lib/preview/images.php b/lib/preview/images.php new file mode 100644 index 0000000000..6b6e8e3599 --- /dev/null +++ b/lib/preview/images.php @@ -0,0 +1,71 @@ +file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { + return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); + } + + // does the sourcefile exist? + if (!\OC_Filesystem::file_exists($path)) { + \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); + return false; + } + + // open the source image + $image = new \OC_Image(); + $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); + if (!$image->valid()) return false; + + // fix the orientation + $image->fixOrientation(); + + // calculate the right preview size + $Xsize=$image->width(); + $Ysize=$image->height(); + if (($Xsize/$Ysize)>($maxX/$maxY)) { + $factor=$maxX/$Xsize; + } else { + $factor=$maxY/$Ysize; + } + + // only scale up if requested + if($scalingup==false) { + if($factor>1) $factor=1; + } + $newXsize=$Xsize*$factor; + $newYsize=$Ysize*$factor; + + // resize + $ret = $image->preciseResize($newXsize, $newYsize); + if (!$ret) { + \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); + unset($image); + return false; + } + + // store in cache + $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); + $image->save($l); + + return $image; + } + +} + +OC_Preview::registerProvider('OC_Preview_Image'); \ No newline at end of file diff --git a/lib/preview/movies.php b/lib/preview/movies.php new file mode 100644 index 0000000000..afa27c0b14 --- /dev/null +++ b/lib/preview/movies.php @@ -0,0 +1,42 @@ +file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { + return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); + } + + // does the sourcefile exist? + if (!\OC_Filesystem::file_exists($path)) { + \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); + return false; + } + + // call ffmpeg to do the screenshot + shell_exec('ffmpeg -y -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}'); + + // output the generated Preview + $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); + unset($thumbnails_view); + } + + } + + OC_Preview::registerProvider('OC_Preview_Movie'); +} \ No newline at end of file diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php new file mode 100644 index 0000000000..645e6fa623 --- /dev/null +++ b/lib/preview/mp3.php @@ -0,0 +1 @@ +///audio\/mpeg/ \ No newline at end of file diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/preview/provider.php b/lib/preview/provider.php new file mode 100644 index 0000000000..c45edbba44 --- /dev/null +++ b/lib/preview/provider.php @@ -0,0 +1,20 @@ +options=$options; + } + + abstract public function getMimeType(); + + /** + * search for $query + * @param string $query + * @return + */ + abstract public function getThumbnail($path, $maxX, $maxY, $scalingup); +} diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php new file mode 100644 index 0000000000..1cd270db68 --- /dev/null +++ b/lib/preview/unknown.php @@ -0,0 +1,34 @@ + Date: Thu, 9 May 2013 23:59:16 +0200 Subject: [PATCH 007/170] implement OC_Preview --- lib/preview.php | 527 +++++++++++++++++++++++++++++---------- lib/preview/images.php | 53 +--- lib/preview/movies.php | 4 +- lib/preview/mp3.php | 21 +- lib/preview/pdf.php | 29 +++ lib/preview/provider.php | 2 +- lib/preview/unknown.php | 2 +- 7 files changed, 451 insertions(+), 187 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index de79b42407..c062a06887 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -5,21 +5,38 @@ * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. - */ -/* + * * Thumbnails: * structure of filename: * /data/user/thumbnails/pathhash/x-y.png * */ +require_once('preview/images.php'); +require_once('preview/movies.php'); +require_once('preview/mp3.php'); +require_once('preview/pdf.php'); +require_once('preview/unknown.php'); class OC_Preview { //the thumbnail folder const THUMBNAILS_FOLDER = 'thumbnails'; - const MAX_SCALE_FACTOR = 2; + + //config + private $max_scale_factor; + private $max_x; + private $max_y; //fileview object - static private $fileview = null; + private $fileview = null; + private $userview = null; + + //vars + private $file; + private $maxX; + private $maxY; + private $scalingup; + + private $preview; //preview providers static private $providers = array(); @@ -27,6 +44,8 @@ class OC_Preview { /** * @brief check if thumbnail or bigger version of thumbnail of file is cached + * @param $user userid + * @param $root path of root * @param $file The path to the file where you want a thumbnail from * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image @@ -34,68 +53,223 @@ class OC_Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - private static function isCached($file, $maxX, $maxY, $scalingup){ - $fileinfo = self::$fileview->getFileInfo($file); - $fileid = self::$fileinfo['fileid']; + public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = false){ + //set config + $this->max_x = OC_Config::getValue('preview_max_x', null); + $this->max_y = OC_Config::getValue('preview_max_y', null); + $this->max_scale_factor = OC_Config::getValue('preview_max_scale_factor', 10); - //echo self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid; - if(!self::$fileview->is_dir(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid)){ + //save parameters + $this->file = $file; + $this->maxX = $maxX; + $this->maxY = $maxY; + $this->scalingup = $scalingup; + + //init fileviews + $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); + $this->userview = new \OC\Files\View('/' . $user); + + if(!is_null($this->max_x)){ + if($this->maxX > $this->max_x){ + OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG); + $this->maxX = $this->max_x; + } + } + + if(!is_null($this->max_y)){ + if($this->maxY > $this->max_y){ + OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, OC_Log::DEBUG); + $this->maxY = $this->max_y; + } + } + + //init providers + if(empty(self::$providers)){ + self::initProviders(); + } + + //check if there are any providers at all + if(empty(self::$providers)){ + OC_Log::write('core', 'No preview providers exist', OC_Log::ERROR); + throw new Exception('No providers'); + } + + //validate parameters + if($file === ''){ + OC_Log::write('core', 'No filename passed', OC_Log::ERROR); + throw new Exception('File not found'); + } + + //check if file exists + if(!$this->fileview->file_exists($file)){ + OC_Log::write('core', 'File:"' . $file . '" not found', OC_Log::ERROR); + throw new Exception('File not found'); + } + + //check if given size makes sense + if($maxX === 0 || $maxY === 0){ + OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::ERROR); + throw new Exception('Height and/or width set to 0'); + } + } + + /** + * @brief returns the path of the file you want a thumbnail from + * @return string + */ + public function getFile(){ + return $this->file; + } + + /** + * @brief returns the max width of the preview + * @return integer + */ + public function getMaxX(){ + return $this->maxX; + } + + /** + * @brief returns the max height of the preview + * @return integer + */ + public function getMaxY(){ + return $this->maxY; + } + + /** + * @brief returns whether or not scalingup is enabled + * @return bool + */ + public function getScalingup(){ + return $this->scalingup; + } + + /** + * @brief returns the name of the thumbnailfolder + * @return string + */ + public function getThumbnailsfolder(){ + return self::THUMBNAILS_FOLDER; + } + + /** + * @brief returns the max scale factor + * @return integer + */ + public function getMaxScaleFactor(){ + return $this->max_scale_factor; + } + + /** + * @brief returns the max width set in ownCloud's config + * @return integer + */ + public function getConfigMaxX(){ + return $this->max_x; + } + + /** + * @brief returns the max height set in ownCloud's config + * @return integer + */ + public function getConfigMaxY(){ + return $this->max_y; + } + + /** + * @brief deletes previews of a file with specific x and y + * @return bool + */ + public function deletePreview(){ + $fileinfo = $this->fileview->getFileInfo($this->file); + $fileid = $fileinfo['fileid']; + + return $this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png'); + } + + /** + * @brief deletes all previews of a file + * @return bool + */ + public function deleteAllPrevies(){ + $fileinfo = $this->fileview->getFileInfo($this->file); + $fileid = $fileinfo['fileid']; + + return $this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid); + } + + /** + * @brief check if thumbnail or bigger version of thumbnail of file is cached + * @return mixed (bool / string) + * false if thumbnail does not exist + * path to thumbnail if thumbnail exists + */ + private function isCached(){ + $file = $this->file; + $maxX = $this->maxX; + $maxY = $this->maxY; + $scalingup = $this->scalingup; + + $fileinfo = $this->fileview->getFileInfo($file); + $fileid = $fileinfo['fileid']; + + if(!$this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid)){ return false; } - + //does a preview with the wanted height and width already exist? - if(self::$fileview->file_exists(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png')){ - return self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png'; + if($this->userview->file_exists(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')){ + return self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; } - + $wantedaspectratio = $maxX / $maxY; - + //array for usable cached thumbnails $possiblethumbnails = array(); - - $allthumbnails = self::$fileview->getDirectoryContent(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid); + + $allthumbnails = $this->userview->getDirectoryContent(self::THUMBNAILS_FOLDER . '/' . $fileid); foreach($allthumbnails as $thumbnail){ $size = explode('-', $thumbnail['name']); $x = $size[0]; $y = $size[1]; - + $aspectratio = $x / $y; if($aspectratio != $wantedaspectratio){ continue; } - + if($x < $maxX || $y < $maxY){ if($scalingup){ $scalefactor = $maxX / $x; - if($scalefactor > self::MAX_SCALE_FACTOR){ + if($scalefactor > $this->max_scale_factor){ continue; } }else{ continue; } } - $possiblethumbnails[$x] = $thumbnail['path']; } - + if(count($possiblethumbnails) === 0){ return false; } - + if(count($possiblethumbnails) === 1){ return current($possiblethumbnails); } - + ksort($possiblethumbnails); - + if(key(reset($possiblethumbnails)) > $maxX){ return current(reset($possiblethumbnails)); } - + if(key(end($possiblethumbnails)) < $maxX){ return current(end($possiblethumbnails)); } - + foreach($possiblethumbnails as $width => $path){ if($width < $maxX){ continue; @@ -105,36 +279,6 @@ class OC_Preview { } } - /** - * @brief delete a preview with a specfic height and width - * @param $file path to the file - * @param $x width of preview - * @param $y height of preview - * @return image - */ - public static function deletePreview($file, $x, $y){ - self::init(); - - $fileinfo = self::$fileview->getFileInfo($file); - $fileid = self::$fileinfo['fileid']; - - return self::$fileview->unlink(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png'); - } - - /** - * @brief deletes all previews of a file - * @param $file path of file - * @return bool - */ - public static function deleteAllPrevies($file){ - self::init(); - - $fileinfo = self::$fileview->getFileInfo($file); - $fileid = self::$fileinfo['fileid']; - - return self::$fielview->rmdir(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid); - } - /** * @brief return a preview of a file * @param $file The path to the file where you want a thumbnail from @@ -143,44 +287,49 @@ class OC_Preview { * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return image */ - public static function getPreview($file, $maxX, $maxY, $scalingup){ - self::init(); - - $cached = self::isCached($file, $maxX, $maxY); + public function getPreview(){ + $file = $this->file; + $maxX = $this->maxX; + $maxY = $this->maxY; + $scalingup = $this->scalingup; + + $fileinfo = $this->fileview->getFileInfo($file); + $fileid = $fileinfo['fileid']; + + $cached = self::isCached(); + if($cached){ - $image = new \OC_Image($cached); - if($image->width() != $maxX && $image->height != $maxY){ - $image->preciseResize($maxX, $maxY); + $image = new \OC_Image($this->userview->getLocalFile($cached)); + $this->preview = $image; + }else{ + $mimetype = $this->fileview->getMimeType($file); + + $preview; + + foreach(self::$providers as $supportedmimetype => $provider){ + if(!preg_match($supportedmimetype, $mimetype)){ + continue; + } + + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); + + if(!$preview){ + continue; + } + + if(!($preview instanceof \OC_Image)){ + $preview = @new \OC_Image($preview); + } + + //cache thumbnail + $preview->save($this->userview->getLocalFile(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')); + + break; } - return $image; + $this->preview = $preview; } - - $mimetype = self::$fileview->getMimeType($file); - - $preview; - - foreach(self::$providers as $supportedmimetype => $provider){ - if(!preg_match($supportedmimetype, $mimetype)){ - continue; - } - - $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup); - - if(!$preview){ - continue; - } - - if(!($preview instanceof \OC_Image)){ - $preview = @new \OC_Image($preview); - } - - //cache thumbnail - $preview->save(self::$filesview->getAbsolutePath(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png')); - - break; - } - - return $preview; + $this->resizeAndCrop(); + return $this->preview; } /** @@ -189,24 +338,109 @@ class OC_Preview { * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly - * @return image - */ - public static function showPreview($file, $maxX, $maxY, $scalingup = true, $fontsize = 12){ - OCP\Response::enableCaching(3600 * 24); // 24 hour - $preview = self::getPreview($file, $maxX, $maxY, $scalingup, $fontsize); - $preview->show(); - } - - /** - * @brief check whether or not providers and views are initialized and initialize if not * @return void */ - private static function init(){ - if(empty(self::$providers)){ - self::initProviders(); + public function showPreview(){ + OCP\Response::enableCaching(3600 * 24); // 24 hour + $preview = $this->getPreview(); + if($preview){ + $preview->show(); } - if(is_null(self::$fileview)){ - self::initViews(); + } + + /** + * @brief resize, crop and fix orientation + * @return image + */ + public function resizeAndCrop(){ + $image = $this->preview; + $x = $this->maxX; + $y = $this->maxY; + $scalingup = $this->scalingup; + + $image->fixOrientation(); + + if(!($image instanceof \OC_Image)){ + OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', OC_Log::DEBUG); + return; + } + + $realx = (int) $image->width(); + $realy = (int) $image->height(); + + if($x === $realx && $y === $realy){ + return $image; + } + + $factorX = $x / $realx; + $factorY = $y / $realy; + + if($factorX >= $factorY){ + $factor = $factorX; + }else{ + $factor = $factorY; + } + + // only scale up if requested + if($scalingup === false) { + if($factor>1) $factor=1; + } + if(!is_null($this->max_scale_factor)){ + if($factor > $this->max_scale_factor){ + OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $this->max_scale_factor, OC_Log::DEBUG); + $factor = $this->max_scale_factor; + } + } + $newXsize = $realx * $factor; + $newYsize = $realy * $factor; + + // resize + $image->preciseResize($newXsize, $newYsize); + + if($newXsize === $x && $newYsize === $y){ + $this->preview = $image; + return; + } + + if($newXsize >= $x && $newYsize >= $y){ + $cropX = floor(abs($x - $newXsize) * 0.5); + $cropY = floor(abs($y - $newYsize) * 0.5); + + $image->crop($cropX, $cropY, $x, $y); + + $this->preview = $image; + return; + } + + if($newXsize < $x || $newYsize < $y){ + if($newXsize > $x){ + $cropX = floor(($newXsize - $x) * 0.5); + $image->crop($cropX, 0, $x, $newYsize); + } + + if($newYsize > $y){ + $cropY = floor(($newYsize - $y) * 0.5); + $image->crop(0, $cropY, $newXsize, $y); + } + + $newXsize = (int) $image->width(); + $newYsize = (int) $image->height(); + + //create transparent background layer + $transparentlayer = imagecreatetruecolor($x, $y); + $black = imagecolorallocate($transparentlayer, 0, 0, 0); + $image = $image->resource(); + imagecolortransparent($transparentlayer, $black); + + $mergeX = floor(abs($x - $newXsize) * 0.5); + $mergeY = floor(abs($y - $newYsize) * 0.5); + + imagecopymerge($transparentlayer, $image, $mergeX, $mergeY, 0, 0, $newXsize, $newYsize, 100); + + $image = new \OC_Image($transparentlayer); + + $this->preview = $image; + return; } } @@ -236,48 +470,75 @@ class OC_Preview { self::$providers[$object->getMimeType()] = $object; } - + $keys = array_map('strlen', array_keys(self::$providers)); array_multisort($keys, SORT_DESC, self::$providers); } /** - * @brief initialize a new \OC\Files\View object + * @brief method that handles preview requests from users that are logged in * @return void */ - private static function initViews(){ - if(is_null(self::$fileview)){ - //does this work with LDAP? - self::$fileview = new OC\Files\View(OC_User::getUser()); + public static function previewRouter($params){ + OC_Util::checkLoggedIn(); + + $file = ''; + $maxX = 0; + $maxY = 0; + /* + * use: ?scalingup=0 / ?scalingup = 1 + * do not use ?scalingup=false / ?scalingup = true as these will always be true + */ + $scalingup = false; + + if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); + if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; + if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; + if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; + + if($file !== '' && $maxX !== 0 && $maxY !== 0){ + $preview = new OC_Preview(OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); + $preview->showPreview(); + }else{ + OC_Response::setStatus(404); + exit; } } - public static function previewRouter($params){ - self::init(); + /** + * @brief method that handles preview requests from users that are not logged in / view shared folders that are public + * @return void + */ + public static function publicPreviewRouter($params){ + $file = ''; + $maxX = 0; + $maxY = 0; + $scalingup = false; + $token = ''; - $file = (string) urldecode($_GET['file']); - $maxX = (int) $_GET['x']; - $maxY = (int) $_GET['y']; - $scalingup = (bool) $_GET['scalingup']; + $user = null; + $path = null; - $path = 'files/' . $file; + if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); + if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; + if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; + if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; + if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - if($maxX === 0 || $maxY === 0){ - OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::DEBUG); + $linkItem = OCP\Share::getShareByToken($token); + if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { + $userid = $linkItem['uid_owner']; + OC_Util::setupFS($fileOwner); + $path = $linkItem['file_source']; + } + + if($user !== null && $path !== null){ + $preview = new OC_Preview($userid, $path, $file, $maxX, $maxY, $scalingup); + $preview->showPreview(); + }else{ + OC_Response::setStatus(404); exit; } - var_dump(self::$fileview->file_exists($path)); - var_dump(self::$fileview->getDirectoryContent()); - var_dump(self::$fileview->getDirectoryContent('files/')); - var_dump($path); - var_dump(self::$fileview->filesize($path)); - var_dump(self::$fileview->getAbsolutePath('/')); - - if(!self::$fileview->filesize($path)){ - OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND); - } - - self::showPreview($file, $maxX, $maxY, $scalingup); } } \ No newline at end of file diff --git a/lib/preview/images.php b/lib/preview/images.php index 6b6e8e3599..6766cdb214 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -12,60 +12,15 @@ class OC_Preview_Image extends OC_Preview_Provider{ return '/image\/.*/'; } - public static function getThumbnail($path,$maxX,$maxY,$scalingup) { - - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); - - // is a preview already in the cache? - if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { - return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); - } - - // does the sourcefile exist? - if (!\OC_Filesystem::file_exists($path)) { - \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); - return false; - } - - // open the source image + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + //new image object $image = new \OC_Image(); - $image->loadFromFile(\OC_Filesystem::getLocalFile($path)); + $image->loadFromFile($fileview->getLocalFile($path)); + //check if image object is valid if (!$image->valid()) return false; - // fix the orientation - $image->fixOrientation(); - - // calculate the right preview size - $Xsize=$image->width(); - $Ysize=$image->height(); - if (($Xsize/$Ysize)>($maxX/$maxY)) { - $factor=$maxX/$Xsize; - } else { - $factor=$maxY/$Ysize; - } - - // only scale up if requested - if($scalingup==false) { - if($factor>1) $factor=1; - } - $newXsize=$Xsize*$factor; - $newYsize=$Ysize*$factor; - - // resize - $ret = $image->preciseResize($newXsize, $newYsize); - if (!$ret) { - \OC_Log::write('Preview', 'Couldn\'t resize image', \OC_Log::ERROR); - unset($image); - return false; - } - - // store in cache - $l = $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); - $image->save($l); - return $image; } - } OC_Preview::registerProvider('OC_Preview_Image'); \ No newline at end of file diff --git a/lib/preview/movies.php b/lib/preview/movies.php index afa27c0b14..c994240424 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -6,7 +6,7 @@ * later. * See the COPYING-README file. */ -if(!is_null(shell_exec('ffmpeg'))){ +if(!is_null(shell_exec('ffmpeg -version'))){ class OC_Preview_Movie extends OC_Preview_Provider{ @@ -14,7 +14,7 @@ if(!is_null(shell_exec('ffmpeg'))){ return '/video\/.*/'; } - public static function getThumbnail($path,$maxX,$maxY,$scalingup) { + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); // is a preview already in the cache? diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 645e6fa623..2481e74378 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -1 +1,20 @@ -///audio\/mpeg/ \ No newline at end of file +getLocalFile($path) . '[0]'); + $pdf->setImageFormat('png'); + + //new image object + $image = new \OC_Image(); + $image->loadFromFile($fileview->getLocalFile($path)); + //check if image object is valid + if (!$image->valid()) return false; + + return $image; + } +} + +OC_Preview::registerProvider('OC_Preview_PDF'); \ No newline at end of file diff --git a/lib/preview/provider.php b/lib/preview/provider.php index c45edbba44..e926403014 100644 --- a/lib/preview/provider.php +++ b/lib/preview/provider.php @@ -16,5 +16,5 @@ abstract class OC_Preview_Provider{ * @param string $query * @return */ - abstract public function getThumbnail($path, $maxX, $maxY, $scalingup); + abstract public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview); } diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 1cd270db68..5089a56d67 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -12,7 +12,7 @@ class OC_Preview_Unknown extends OC_Preview_Provider{ return '/.*/'; } - public static function getThumbnail($maxX,$maxY) { + public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { // check if GD is installed if(!extension_loaded('gd') || !function_exists('gd_info')) { OC_Log::write('preview', __METHOD__.'(): GD module not installed', OC_Log::ERROR); From 837c6ed597f1c549cac5b0b439b257d81ea02b1d Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 09:43:25 +0200 Subject: [PATCH 008/170] implement pdf preview backend --- lib/preview/pdf.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index d86ad64391..695f856953 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -14,11 +14,10 @@ class OC_Preview_PDF extends OC_Preview_Provider{ public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { //create imagick object from pdf $pdf = new imagick($fileview->getLocalFile($path) . '[0]'); - $pdf->setImageFormat('png'); - + $pdf->setImageFormat('jpg'); + //new image object - $image = new \OC_Image(); - $image->loadFromFile($fileview->getLocalFile($path)); + $image = new \OC_Image($pdf); //check if image object is valid if (!$image->valid()) return false; From 8dba46912d19bf976b24e0c097368f2e56ccb97b Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 11:28:49 +0200 Subject: [PATCH 009/170] Disable transparent backgrounds for now --- lib/preview.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index c062a06887..44b551006f 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -427,17 +427,21 @@ class OC_Preview { $newYsize = (int) $image->height(); //create transparent background layer - $transparentlayer = imagecreatetruecolor($x, $y); - $black = imagecolorallocate($transparentlayer, 0, 0, 0); + $backgroundlayer = imagecreatetruecolor($x, $y); + $white = imagecolorallocate($backgroundlayer, 255, 255, 255); + imagefill($backgroundlayer, 0, 0, $white); + $image = $image->resource(); - imagecolortransparent($transparentlayer, $black); $mergeX = floor(abs($x - $newXsize) * 0.5); $mergeY = floor(abs($y - $newYsize) * 0.5); - imagecopymerge($transparentlayer, $image, $mergeX, $mergeY, 0, 0, $newXsize, $newYsize, 100); + imagecopy($backgroundlayer, $image, $mergeX, $mergeY, 0, 0, $newXsize, $newYsize); - $image = new \OC_Image($transparentlayer); + //$black = imagecolorallocate(0,0,0); + //imagecolortransparent($transparentlayer, $black); + + $image = new \OC_Image($backgroundlayer); $this->preview = $image; return; From f29b8cf68531844c23c45a210e280769a8cece73 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 11:30:44 +0200 Subject: [PATCH 010/170] set default value of scalingup to true --- lib/preview.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 44b551006f..3b6e0ae131 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -53,7 +53,7 @@ class OC_Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = false){ + public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true){ //set config $this->max_x = OC_Config::getValue('preview_max_x', null); $this->max_y = OC_Config::getValue('preview_max_y', null); @@ -493,7 +493,7 @@ class OC_Preview { * use: ?scalingup=0 / ?scalingup = 1 * do not use ?scalingup=false / ?scalingup = true as these will always be true */ - $scalingup = false; + $scalingup = true; if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; @@ -517,7 +517,7 @@ class OC_Preview { $file = ''; $maxX = 0; $maxY = 0; - $scalingup = false; + $scalingup = true; $token = ''; $user = null; From 04a4234b9eba85dc1a2f690c12e6a59381a74a54 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 11:32:42 +0200 Subject: [PATCH 011/170] implement mp3 preview backend --- lib/preview/mp3.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 2481e74378..f5fac0b836 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -5,14 +5,30 @@ * later. * See the COPYING-README file. */ +require_once('getid3/getid3.php'); + class OC_Preview_MP3 extends OC_Preview_Provider{ public function getMimeType(){ return '/audio\/mpeg/'; } - public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + $getID3 = new getID3(); + //Todo - add stream support + $tags = $getID3->analyze($fileview->getLocalFile($path)); + getid3_lib::CopyTagsToComments($tags); + $picture = @$tags['id3v2']['APIC'][0]['data']; + $image = new \OC_Image($picture); + if (!$image->valid()) return $this->getNoCoverThumbnail($maxX, $maxY); + + return $image; + } + + public function getNoCoverThumbnail($maxX, $maxY){ + $image = new \OC_Image(); + return $image; } } From 8b39a085121fae7823046f209eecc3484cf5c936 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 12:00:32 +0200 Subject: [PATCH 012/170] fix typo --- lib/preview/images.php | 2 +- lib/preview/movies.php | 2 +- lib/preview/mp3.php | 2 +- lib/preview/pdf.php | 2 +- lib/preview/unknown.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index 6766cdb214..589c7d829d 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -1,7 +1,7 @@ Date: Fri, 17 May 2013 15:06:37 +0200 Subject: [PATCH 013/170] implement movie previews --- lib/preview/movies.php | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 1f0ceb3ace..868755a120 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -7,7 +7,6 @@ * See the COPYING-README file. */ if(!is_null(shell_exec('ffmpeg -version'))){ - class OC_Preview_Movie extends OC_Preview_Provider{ public function getMimeType(){ @@ -15,28 +14,18 @@ if(!is_null(shell_exec('ffmpeg -version'))){ } public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER); - - // is a preview already in the cache? - if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) { - return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)); - } - - // does the sourcefile exist? - if (!\OC_Filesystem::file_exists($path)) { - \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN); - return false; - } - - // call ffmpeg to do the screenshot - shell_exec('ffmpeg -y -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}'); - - // output the generated Preview - $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup); - unset($thumbnails_view); + $abspath = $fileview->getLocalfile($path); + + $tmppath = OC_Helper::tmpFile(); + + $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; + shell_exec($cmd); + + $image = new \OC_Image($tmppath); + if (!$image->valid()) return false; + + return $image; } - } - OC_Preview::registerProvider('OC_Preview_Movie'); } \ No newline at end of file From dd06387a9c65dfaf8d95e6545586f7a042bfd44e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 17 May 2013 19:08:16 +0200 Subject: [PATCH 014/170] remove whitespace --- lib/preview.php | 79 ++++++++++++++++++++-------------------- lib/preview/images.php | 2 +- lib/preview/movies.php | 10 ++--- lib/preview/mp3.php | 2 +- lib/preview/pdf.php | 2 +- lib/preview/provider.php | 2 +- lib/preview/unknown.php | 21 +++-------- 7 files changed, 53 insertions(+), 65 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 3b6e0ae131..d6c7260352 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -20,7 +20,7 @@ require_once('preview/unknown.php'); class OC_Preview { //the thumbnail folder const THUMBNAILS_FOLDER = 'thumbnails'; - + //config private $max_scale_factor; private $max_x; @@ -35,7 +35,7 @@ class OC_Preview { private $maxX; private $maxY; private $scalingup; - + private $preview; //preview providers @@ -58,7 +58,7 @@ class OC_Preview { $this->max_x = OC_Config::getValue('preview_max_x', null); $this->max_y = OC_Config::getValue('preview_max_y', null); $this->max_scale_factor = OC_Config::getValue('preview_max_scale_factor', 10); - + //save parameters $this->file = $file; $this->maxX = $maxX; @@ -112,7 +112,7 @@ class OC_Preview { throw new Exception('Height and/or width set to 0'); } } - + /** * @brief returns the path of the file you want a thumbnail from * @return string @@ -120,7 +120,7 @@ class OC_Preview { public function getFile(){ return $this->file; } - + /** * @brief returns the max width of the preview * @return integer @@ -136,7 +136,7 @@ class OC_Preview { public function getMaxY(){ return $this->maxY; } - + /** * @brief returns whether or not scalingup is enabled * @return bool @@ -144,7 +144,7 @@ class OC_Preview { public function getScalingup(){ return $this->scalingup; } - + /** * @brief returns the name of the thumbnailfolder * @return string @@ -176,7 +176,7 @@ class OC_Preview { public function getConfigMaxY(){ return $this->max_y; } - + /** * @brief deletes previews of a file with specific x and y * @return bool @@ -303,27 +303,27 @@ class OC_Preview { $this->preview = $image; }else{ $mimetype = $this->fileview->getMimeType($file); - + $preview; - + foreach(self::$providers as $supportedmimetype => $provider){ if(!preg_match($supportedmimetype, $mimetype)){ continue; } - + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); if(!$preview){ continue; } - + if(!($preview instanceof \OC_Image)){ $preview = @new \OC_Image($preview); } - + //cache thumbnail $preview->save($this->userview->getLocalFile(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')); - + break; } $this->preview = $preview; @@ -396,12 +396,12 @@ class OC_Preview { // resize $image->preciseResize($newXsize, $newYsize); - + if($newXsize === $x && $newYsize === $y){ $this->preview = $image; return; } - + if($newXsize >= $x && $newYsize >= $y){ $cropX = floor(abs($x - $newXsize) * 0.5); $cropY = floor(abs($y - $newYsize) * 0.5); @@ -411,38 +411,38 @@ class OC_Preview { $this->preview = $image; return; } - + if($newXsize < $x || $newYsize < $y){ if($newXsize > $x){ $cropX = floor(($newXsize - $x) * 0.5); $image->crop($cropX, 0, $x, $newYsize); } - + if($newYsize > $y){ $cropY = floor(($newYsize - $y) * 0.5); $image->crop(0, $cropY, $newXsize, $y); } - + $newXsize = (int) $image->width(); $newYsize = (int) $image->height(); - + //create transparent background layer $backgroundlayer = imagecreatetruecolor($x, $y); $white = imagecolorallocate($backgroundlayer, 255, 255, 255); imagefill($backgroundlayer, 0, 0, $white); - + $image = $image->resource(); - + $mergeX = floor(abs($x - $newXsize) * 0.5); $mergeY = floor(abs($y - $newYsize) * 0.5); - + imagecopy($backgroundlayer, $image, $mergeX, $mergeY, 0, 0, $newXsize, $newYsize); - + //$black = imagecolorallocate(0,0,0); //imagecolortransparent($transparentlayer, $black); - + $image = new \OC_Image($backgroundlayer); - + $this->preview = $image; return; } @@ -465,27 +465,27 @@ class OC_Preview { if(count(self::$providers)>0) { return; } - + foreach(self::$registeredProviders as $provider) { $class=$provider['class']; $options=$provider['options']; - + $object = new $class($options); - + self::$providers[$object->getMimeType()] = $object; } - + $keys = array_map('strlen', array_keys(self::$providers)); array_multisort($keys, SORT_DESC, self::$providers); } - + /** * @brief method that handles preview requests from users that are logged in * @return void */ public static function previewRouter($params){ OC_Util::checkLoggedIn(); - + $file = ''; $maxX = 0; $maxY = 0; @@ -494,12 +494,12 @@ class OC_Preview { * do not use ?scalingup=false / ?scalingup = true as these will always be true */ $scalingup = true; - + if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; - + if($file !== '' && $maxX !== 0 && $maxY !== 0){ $preview = new OC_Preview(OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); $preview->showPreview(); @@ -508,7 +508,7 @@ class OC_Preview { exit; } } - + /** * @brief method that handles preview requests from users that are not logged in / view shared folders that are public * @return void @@ -519,23 +519,23 @@ class OC_Preview { $maxY = 0; $scalingup = true; $token = ''; - + $user = null; $path = null; - + if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - + $linkItem = OCP\Share::getShareByToken($token); if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { $userid = $linkItem['uid_owner']; OC_Util::setupFS($fileOwner); $path = $linkItem['file_source']; } - + if($user !== null && $path !== null){ $preview = new OC_Preview($userid, $path, $file, $maxX, $maxY, $scalingup); $preview->showPreview(); @@ -543,6 +543,5 @@ class OC_Preview { OC_Response::setStatus(404); exit; } - } } \ No newline at end of file diff --git a/lib/preview/images.php b/lib/preview/images.php index 589c7d829d..a0df337d58 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -11,7 +11,7 @@ class OC_Preview_Image extends OC_Preview_Provider{ public function getMimeType(){ return '/image\/.*/'; } - + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { //new image object $image = new \OC_Image(); diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 868755a120..8144956c99 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -12,18 +12,18 @@ if(!is_null(shell_exec('ffmpeg -version'))){ public function getMimeType(){ return '/video\/.*/'; } - + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { $abspath = $fileview->getLocalfile($path); - + $tmppath = OC_Helper::tmpFile(); - + $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; shell_exec($cmd); - + $image = new \OC_Image($tmppath); if (!$image->valid()) return false; - + return $image; } } diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 5194e16581..6fb4b051f4 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -25,7 +25,7 @@ class OC_Preview_MP3 extends OC_Preview_Provider{ return $image; } - + public function getNoCoverThumbnail($maxX, $maxY){ $image = new \OC_Image(); return $image; diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index f1b7f3eee7..bf1d8b2b3b 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -15,7 +15,7 @@ class OC_Preview_PDF extends OC_Preview_Provider{ //create imagick object from pdf $pdf = new imagick($fileview->getLocalFile($path) . '[0]'); $pdf->setImageFormat('jpg'); - + //new image object $image = new \OC_Image($pdf); //check if image object is valid diff --git a/lib/preview/provider.php b/lib/preview/provider.php index e926403014..2f2a0e6848 100644 --- a/lib/preview/provider.php +++ b/lib/preview/provider.php @@ -8,7 +8,7 @@ abstract class OC_Preview_Provider{ public function __construct($options) { $this->options=$options; } - + abstract public function getMimeType(); /** diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 746b0ebb47..290c18a72d 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -12,23 +12,12 @@ class OC_Preview_Unknown extends OC_Preview_Provider{ return '/.*/'; } - public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { - // check if GD is installed - if(!extension_loaded('gd') || !function_exists('gd_info')) { - OC_Log::write('preview', __METHOD__.'(): GD module not installed', OC_Log::ERROR); - return false; - } - - // create a white image - $image = imagecreatetruecolor($maxX, $maxY); - $color = imagecolorallocate($image, 255, 255, 255); - imagefill($image, 0, 0, $color); - - // output the image - imagepng($image); - imagedestroy($image); - } + public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { + + $mimetype = $this->fileview->getMimeType($file); + return new \OC_Image(); + } } OC_Preview::registerProvider('OC_Preview_Unknown'); \ No newline at end of file From 13c6ef1ba9c3f857150679d164852d8724ab946f Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 21 May 2013 12:23:31 +0200 Subject: [PATCH 015/170] add svg backend --- lib/preview.php | 1 + lib/preview/svg.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 lib/preview/svg.php diff --git a/lib/preview.php b/lib/preview.php index d6c7260352..572c85057b 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -15,6 +15,7 @@ require_once('preview/images.php'); require_once('preview/movies.php'); require_once('preview/mp3.php'); require_once('preview/pdf.php'); +require_once('preview/svg.php'); require_once('preview/unknown.php'); class OC_Preview { diff --git a/lib/preview/svg.php b/lib/preview/svg.php new file mode 100644 index 0000000000..12b93f696e --- /dev/null +++ b/lib/preview/svg.php @@ -0,0 +1,28 @@ +readImageBlob($fileview->file_get_contents($path)); + $svg->setImageFormat('jpg'); + + //new image object + $image = new \OC_Image($svg); + //check if image object is valid + if (!$image->valid()) return false; + + return $image; + } +} + +OC_Preview::registerProvider('OC_Preview_SVG'); \ No newline at end of file From 00985068ca249f4087f9f5b634e628afb8e8f7b1 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 22 May 2013 15:12:25 +0200 Subject: [PATCH 016/170] add previews for public files --- core/routes.php | 2 ++ lib/preview.php | 24 +++++++++++++++++++----- lib/preview/unknown.php | 10 ++++++---- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/core/routes.php b/core/routes.php index be5766cea9..c45ffee26f 100644 --- a/core/routes.php +++ b/core/routes.php @@ -44,6 +44,8 @@ $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); $this->create('core_ajax_preview', '/core/preview.png') ->action('OC_Preview', 'previewRouter'); +$this->create('core_ajax_public_preview', '/core/publicpreview.png') + ->action('OC_Preview', 'publicPreviewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() diff --git a/lib/preview.php b/lib/preview.php index 572c85057b..39a87ed539 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -529,16 +529,30 @@ class OC_Preview { if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - + $linkItem = OCP\Share::getShareByToken($token); + if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { $userid = $linkItem['uid_owner']; - OC_Util::setupFS($fileOwner); - $path = $linkItem['file_source']; + OC_Util::setupFS($userid); + $pathid = $linkItem['file_source']; + $path = \OC\Files\Filesystem::getPath($pathid); + } + + //clean up file parameter + $file = \OC\Files\Filesystem::normalizePath($file); + if(!\OC\Files\Filesystem::isValidPath($file)){ + OC_Response::setStatus(403); + exit; } - if($user !== null && $path !== null){ - $preview = new OC_Preview($userid, $path, $file, $maxX, $maxY, $scalingup); + $path = \OC\Files\Filesystem::normalizePath($path, false); + if(substr($path, 0, 1) == '/'){ + $path = substr($path, 1); + } + + if($userid !== null && $path !== null){ + $preview = new OC_Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); $preview->showPreview(); }else{ OC_Response::setStatus(404); diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 290c18a72d..5bbdcf847f 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -13,11 +13,13 @@ class OC_Preview_Unknown extends OC_Preview_Provider{ } public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { - - - $mimetype = $this->fileview->getMimeType($file); + /*$mimetype = $fileview->getMimeType($path); + $info = $fileview->getFileInfo($path); + $name = array_key_exists('name', $info) ? $info['name'] : ''; + $size = array_key_exists('size', $info) ? $info['size'] : 0; + $isencrypted = array_key_exists('encrypted', $info) ? $info['encrypted'] : false;*/ // show little lock return new \OC_Image(); } } -OC_Preview::registerProvider('OC_Preview_Unknown'); \ No newline at end of file +OC_Preview::registerProvider('OC_Preview_Unknown'); From 1bed3253abfc627a6dd698fc62a617285c1d7c84 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sat, 25 May 2013 11:05:37 +0200 Subject: [PATCH 017/170] add sample config for previews --- config/config.sample.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/config.sample.php b/config/config.sample.php index 7283400920..db6eaf852a 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -183,4 +183,12 @@ $CONFIG = array( 'customclient_desktop' => '', //http://owncloud.org/sync-clients/ 'customclient_android' => '', //https://play.google.com/store/apps/details?id=com.owncloud.android 'customclient_ios' => '' //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8 + +// PREVIEW +/* the max width of a generated preview, if value is null, there is no limit */ +'preview_max_x' => null, +/* the max height of a generated preview, if value is null, there is no limit */ +'preview_max_y' => null, +/* the max factor to scale a preview, default is set to 10 */ +'preview_max_scale_factor' => 10, ); From f78e00209692d28253b91a432eb02d432c96a695 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 27 May 2013 10:45:21 +0200 Subject: [PATCH 018/170] make image preview backend work with encryption --- lib/preview/images.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index a0df337d58..52aad67ca8 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -14,11 +14,10 @@ class OC_Preview_Image extends OC_Preview_Provider{ public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { //new image object - $image = new \OC_Image(); - $image->loadFromFile($fileview->getLocalFile($path)); + $image = new \OC_Image($fileview->fopen($path, 'r')); //check if image object is valid if (!$image->valid()) return false; - + return $image; } } From 62411965f9ccfbe66584e91bc325d156e08196d2 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 27 May 2013 11:09:55 +0200 Subject: [PATCH 019/170] make svg preview backend work with encryption --- lib/preview/svg.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 12b93f696e..8f4697dce0 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -13,7 +13,8 @@ class OC_Preview_SVG extends OC_Preview_Provider{ public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { $svg = new Imagick(); - $svg->readImageBlob($fileview->file_get_contents($path)); + $svg->setResolution($maxX, $maxY); + $svg->readImageBlob('' . $fileview->file_get_contents($path)); $svg->setImageFormat('jpg'); //new image object From 005d8e98706fc98d8dc5aa4927bb3ab0e6b00ac2 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 10:21:02 +0200 Subject: [PATCH 020/170] update images.php --- lib/preview/images.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index 52aad67ca8..a8f203528c 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -13,11 +13,20 @@ class OC_Preview_Image extends OC_Preview_Provider{ } public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - //new image object - $image = new \OC_Image($fileview->fopen($path, 'r')); + //get fileinfo + $fileinfo = $fileview->getFileInfo($path); + + //check if file is encrypted + if($fileinfo['encrypted'] === true){ + $image = new \OC_Image($fileview->fopen($path, 'r')); + }else{ + $image = new \OC_Image(); + $image->loadFromFile($fileview->getLocalFile($path)); + } + //check if image object is valid if (!$image->valid()) return false; - + return $image; } } From 707f52f1dbb063595541331f94b3796f0f96ce9a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 10:23:40 +0200 Subject: [PATCH 021/170] check if the imagick extension is loaded --- lib/preview/svg.php | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 8f4697dce0..415b7751c2 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -5,25 +5,29 @@ * later. * See the COPYING-README file. */ -class OC_Preview_SVG extends OC_Preview_Provider{ +if (extension_loaded('imagick')){ - public function getMimeType(){ - return '/image\/svg\+xml/'; + class OC_Preview_SVG extends OC_Preview_Provider{ + + public function getMimeType(){ + return '/image\/svg\+xml/'; + } + + public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + $svg = new Imagick(); + $svg->setResolution($maxX, $maxY); + $svg->readImageBlob('' . $fileview->file_get_contents($path)); + $svg->setImageFormat('jpg'); + + //new image object + $image = new \OC_Image($svg); + //check if image object is valid + if (!$image->valid()) return false; + + return $image; + } } - public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - $svg = new Imagick(); - $svg->setResolution($maxX, $maxY); - $svg->readImageBlob('' . $fileview->file_get_contents($path)); - $svg->setImageFormat('jpg'); + OC_Preview::registerProvider('OC_Preview_SVG'); - //new image object - $image = new \OC_Image($svg); - //check if image object is valid - if (!$image->valid()) return false; - - return $image; - } -} - -OC_Preview::registerProvider('OC_Preview_SVG'); \ No newline at end of file +} \ No newline at end of file From 5ae1333c76fd1331e21fff0fc7343888c473c8d4 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 11:29:01 +0200 Subject: [PATCH 022/170] add preview backend for text based files --- lib/preview/txt.php | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/preview/txt.php diff --git a/lib/preview/txt.php b/lib/preview/txt.php new file mode 100644 index 0000000000..2b5d8edb89 --- /dev/null +++ b/lib/preview/txt.php @@ -0,0 +1,49 @@ +fopen($path, 'r'); + $content = stream_get_contents($content); + + $lines = preg_split("/\r\n|\n|\r/", $content); + $numoflines = count($lines); + + $fontsize = 5; //5px + $linesize = ceil($fontsize * 1.25); + + $image = imagecreate($maxX, $maxY); + $imagecolor = imagecolorallocate($image, 255, 255, 255); + $textcolor = imagecolorallocate($image, 0, 0, 0); + + foreach($lines as $index => $line){ + $index = $index + 1; + + $x = (int) 1; + $y = (int) ($index * $linesize) - $fontsize; + + imagestring($image, 1, $x, $y, $line, $textcolor); + + if(($index * $linesize) >= $maxY){ + break; + } + } + + $image = new \OC_Image($image); + + if (!$image->valid()) return false; + + return $image; + } +} + +OC_Preview::registerProvider('OC_Preview_TXT'); \ No newline at end of file From 7555332d58c6e684cfbde72d5676e8e1902ae4f3 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 11:31:48 +0200 Subject: [PATCH 023/170] remove whitespace --- lib/preview/txt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 2b5d8edb89..1e88aec69f 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -39,7 +39,7 @@ class OC_Preview_TXT extends OC_Preview_Provider{ } $image = new \OC_Image($image); - + if (!$image->valid()) return false; return $image; From 4d52dfb0a0517a7fd52d20572085aba2ec0e4ad0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 11:48:02 +0200 Subject: [PATCH 024/170] make movie backend work with encryption --- lib/preview/movies.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 8144956c99..1e517b3818 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -14,18 +14,25 @@ if(!is_null(shell_exec('ffmpeg -version'))){ } public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - $abspath = $fileview->getLocalfile($path); + //get fileinfo + $fileinfo = $fileview->getFileInfo($path); + $abspath = $fileview->toTmpFile($path); $tmppath = OC_Helper::tmpFile(); $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; shell_exec($cmd); + unlink($abspath); + $image = new \OC_Image($tmppath); if (!$image->valid()) return false; + unlink($tmppath); + return $image; } } + OC_Preview::registerProvider('OC_Preview_Movie'); } \ No newline at end of file From 738cc48a85f48f8dca2b42d5667d6662810a688b Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 11:49:18 +0200 Subject: [PATCH 025/170] make mp3 backend work with encryption --- lib/preview/mp3.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 6fb4b051f4..18f5cfde37 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -14,15 +14,20 @@ class OC_Preview_MP3 extends OC_Preview_Provider{ } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $getID3 = new getID3(); + $getID3 = new getID3(); + + $tmppath = $fileview->toTmpFile($path); + //Todo - add stream support - $tags = $getID3->analyze($fileview->getLocalFile($path)); + $tags = $getID3->analyze($tmppath); getid3_lib::CopyTagsToComments($tags); $picture = @$tags['id3v2']['APIC'][0]['data']; - + + unlink($tmppath); + $image = new \OC_Image($picture); if (!$image->valid()) return $this->getNoCoverThumbnail($maxX, $maxY); - + return $image; } From 55b00fe819079d78224989eee91d5886233738ab Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 11:59:20 +0200 Subject: [PATCH 026/170] make pdf backend work with encryption --- lib/preview/pdf.php | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index bf1d8b2b3b..de5263f91d 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -5,24 +5,31 @@ * later. * See the COPYING-README file. */ -class OC_Preview_PDF extends OC_Preview_Provider{ +if (extension_loaded('imagick')){ - public function getMimeType(){ - return '/application\/pdf/'; + class OC_Preview_PDF extends OC_Preview_Provider{ + + public function getMimeType(){ + return '/application\/pdf/'; + } + + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + $tmppath = $fileview->toTmpFile($path); + + //create imagick object from pdf + $pdf = new imagick($tmppath . '[0]'); + $pdf->setImageFormat('jpg'); + + unlink($tmppath); + + //new image object + $image = new \OC_Image($pdf); + //check if image object is valid + if (!$image->valid()) return false; + + return $image; + } } - public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { - //create imagick object from pdf - $pdf = new imagick($fileview->getLocalFile($path) . '[0]'); - $pdf->setImageFormat('jpg'); - - //new image object - $image = new \OC_Image($pdf); - //check if image object is valid - if (!$image->valid()) return false; - - return $image; - } + OC_Preview::registerProvider('OC_Preview_PDF'); } - -OC_Preview::registerProvider('OC_Preview_PDF'); \ No newline at end of file From 08a022aaa48a6bae95ff75204a763a7c16a8253e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 12:09:46 +0200 Subject: [PATCH 027/170] don't give ffmpeg wanted size, cause it doesn't care about aspect ratio --- lib/preview/movies.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 1e517b3818..d2aaf730d6 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -20,7 +20,8 @@ if(!is_null(shell_exec('ffmpeg -version'))){ $abspath = $fileview->toTmpFile($path); $tmppath = OC_Helper::tmpFile(); - $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; + //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; + $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . $tmppath; shell_exec($cmd); unlink($abspath); From a03787bc422563d129359d34673eb361b0173f51 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 16:04:39 +0200 Subject: [PATCH 028/170] make preview cache work with encryption and improve error handling --- lib/preview.php | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 39a87ed539..6fc166b9c7 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -16,6 +16,7 @@ require_once('preview/movies.php'); require_once('preview/mp3.php'); require_once('preview/pdf.php'); require_once('preview/svg.php'); +require_once('preview/txt.php'); require_once('preview/unknown.php'); class OC_Preview { @@ -300,7 +301,7 @@ class OC_Preview { $cached = self::isCached(); if($cached){ - $image = new \OC_Image($this->userview->getLocalFile($cached)); + $image = new \OC_Image($this->userview->file_get_contents($cached, 'r')); $this->preview = $image; }else{ $mimetype = $this->fileview->getMimeType($file); @@ -313,17 +314,22 @@ class OC_Preview { } $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); - + if(!$preview){ continue; } - if(!($preview instanceof \OC_Image)){ - $preview = @new \OC_Image($preview); + //are there any cached thumbnails yet + if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/') === false){ + $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/'); } //cache thumbnail - $preview->save($this->userview->getLocalFile(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')); + $cachepath = self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; + if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/') === false){ + $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); + } + $this->userview->file_put_contents($cachepath, $preview->data()); break; } @@ -354,13 +360,13 @@ class OC_Preview { * @return image */ public function resizeAndCrop(){ + $this->preview->fixOrientation(); + $image = $this->preview; $x = $this->maxX; $y = $this->maxY; $scalingup = $this->scalingup; - $image->fixOrientation(); - if(!($image instanceof \OC_Image)){ OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', OC_Log::DEBUG); return; @@ -502,8 +508,14 @@ class OC_Preview { if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; if($file !== '' && $maxX !== 0 && $maxY !== 0){ - $preview = new OC_Preview(OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); - $preview->showPreview(); + try{ + $preview = new OC_Preview(OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); + $preview->showPreview(); + }catch(Exception $e){ + OC_Response::setStatus(404); + OC_Log::write('core', $e->getmessage(), OC_Log::ERROR); + exit; + } }else{ OC_Response::setStatus(404); exit; @@ -552,8 +564,14 @@ class OC_Preview { } if($userid !== null && $path !== null){ - $preview = new OC_Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); - $preview->showPreview(); + try{ + $preview = new OC_Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); + $preview->showPreview(); + }catch(Exception $e){ + OC_Response::setStatus(404); + OC_Log::write('core', $e->getmessage(), OC_Log::ERROR); + exit; + } }else{ OC_Response::setStatus(404); exit; From eebc15dce0da88dff91dc5249938341cd50b8a85 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 12:01:43 +0200 Subject: [PATCH 029/170] connect preview lib to filesystem hooks --- lib/base.php | 9 ++++ lib/preview.php | 106 ++++++++++++++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 44 deletions(-) diff --git a/lib/base.php b/lib/base.php index 724bd250a5..ae384225be 100644 --- a/lib/base.php +++ b/lib/base.php @@ -474,6 +474,7 @@ class OC { self::registerCacheHooks(); self::registerFilesystemHooks(); + self::registerPreviewHooks(); self::registerShareHooks(); //make sure temporary files are cleaned up @@ -539,6 +540,14 @@ class OC { OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted'); } + /** + * register hooks for previews + */ + public static function registerPreviewHooks() { + OC_Hook::connect('OC_Filesystem', 'post_write', 'OC_Preview', 'post_write'); + OC_Hook::connect('OC_Filesystem', 'delete', 'OC_Preview', 'post_delete'); + } + /** * register hooks for sharing */ diff --git a/lib/preview.php b/lib/preview.php index 6fc166b9c7..7c4db971df 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -55,7 +55,7 @@ class OC_Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true){ + public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true, $force = false){ //set config $this->max_x = OC_Config::getValue('preview_max_x', null); $this->max_y = OC_Config::getValue('preview_max_y', null); @@ -71,47 +71,49 @@ class OC_Preview { $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); $this->userview = new \OC\Files\View('/' . $user); - if(!is_null($this->max_x)){ - if($this->maxX > $this->max_x){ - OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG); - $this->maxX = $this->max_x; + if($force !== true){ + if(!is_null($this->max_x)){ + if($this->maxX > $this->max_x){ + OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG); + $this->maxX = $this->max_x; + } } - } - - if(!is_null($this->max_y)){ - if($this->maxY > $this->max_y){ - OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, OC_Log::DEBUG); - $this->maxY = $this->max_y; + + if(!is_null($this->max_y)){ + if($this->maxY > $this->max_y){ + OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, OC_Log::DEBUG); + $this->maxY = $this->max_y; + } + } + + //init providers + if(empty(self::$providers)){ + self::initProviders(); + } + + //check if there are any providers at all + if(empty(self::$providers)){ + OC_Log::write('core', 'No preview providers exist', OC_Log::ERROR); + throw new Exception('No providers'); + } + + //validate parameters + if($file === ''){ + OC_Log::write('core', 'No filename passed', OC_Log::ERROR); + throw new Exception('File not found'); + } + + //check if file exists + if(!$this->fileview->file_exists($file)){ + OC_Log::write('core', 'File:"' . $file . '" not found', OC_Log::ERROR); + throw new Exception('File not found'); + } + + //check if given size makes sense + if($maxX === 0 || $maxY === 0){ + OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::ERROR); + throw new Exception('Height and/or width set to 0'); } - } - - //init providers - if(empty(self::$providers)){ - self::initProviders(); - } - - //check if there are any providers at all - if(empty(self::$providers)){ - OC_Log::write('core', 'No preview providers exist', OC_Log::ERROR); - throw new Exception('No providers'); - } - - //validate parameters - if($file === ''){ - OC_Log::write('core', 'No filename passed', OC_Log::ERROR); - throw new Exception('File not found'); - } - - //check if file exists - if(!$this->fileview->file_exists($file)){ - OC_Log::write('core', 'File:"' . $file . '" not found', OC_Log::ERROR); - throw new Exception('File not found'); - } - - //check if given size makes sense - if($maxX === 0 || $maxY === 0){ - OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::ERROR); - throw new Exception('Height and/or width set to 0'); } } @@ -186,19 +188,22 @@ class OC_Preview { public function deletePreview(){ $fileinfo = $this->fileview->getFileInfo($this->file); $fileid = $fileinfo['fileid']; - - return $this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png'); + + $this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png'); + return; } /** * @brief deletes all previews of a file * @return bool */ - public function deleteAllPrevies(){ + public function deleteAllPreviews(){ $fileinfo = $this->fileview->getFileInfo($this->file); $fileid = $fileinfo['fileid']; - return $this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid); + $this->userview->deleteAll(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); + $this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); + return; } /** @@ -577,4 +582,17 @@ class OC_Preview { exit; } } + + public static function post_write($args){ + self::post_delete($args); + } + + public static function post_delete($args){ + $path = $args['path']; + if(substr($path, 0, 1) == '/'){ + $path = substr($path, 1); + } + $preview = new OC_Preview(OC_User::getUser(), 'files/', $path, 0, 0, false, true); + $preview->deleteAllPreviews(); + } } \ No newline at end of file From fa6b96090abc341da4f9320af02ee75b29a204e6 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 12:33:24 +0200 Subject: [PATCH 030/170] move to OC namespace --- core/routes.php | 4 +-- lib/base.php | 4 +-- lib/preview.php | 64 +++++++++++++++++++++------------------- lib/preview/images.php | 6 ++-- lib/preview/movies.php | 8 +++-- lib/preview/mp3.php | 10 ++++--- lib/preview/pdf.php | 8 +++-- lib/preview/provider.php | 4 ++- lib/preview/svg.php | 16 +++++++--- lib/preview/txt.php | 6 ++-- lib/preview/unknown.php | 6 ++-- 11 files changed, 80 insertions(+), 56 deletions(-) diff --git a/core/routes.php b/core/routes.php index c45ffee26f..4b3ad53da0 100644 --- a/core/routes.php +++ b/core/routes.php @@ -43,9 +43,9 @@ $this->create('js_config', '/core/js/config.js') $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); $this->create('core_ajax_preview', '/core/preview.png') - ->action('OC_Preview', 'previewRouter'); + ->action('OC\Preview', 'previewRouter'); $this->create('core_ajax_public_preview', '/core/publicpreview.png') - ->action('OC_Preview', 'publicPreviewRouter'); + ->action('OC\Preview', 'publicPreviewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() diff --git a/lib/base.php b/lib/base.php index ae384225be..525b259f67 100644 --- a/lib/base.php +++ b/lib/base.php @@ -544,8 +544,8 @@ class OC { * register hooks for previews */ public static function registerPreviewHooks() { - OC_Hook::connect('OC_Filesystem', 'post_write', 'OC_Preview', 'post_write'); - OC_Hook::connect('OC_Filesystem', 'delete', 'OC_Preview', 'post_delete'); + OC_Hook::connect('OC_Filesystem', 'post_write', 'OC\Preview', 'post_write'); + OC_Hook::connect('OC_Filesystem', 'delete', 'OC\Preview', 'post_delete'); } /** diff --git a/lib/preview.php b/lib/preview.php index 7c4db971df..31812035c4 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -11,6 +11,8 @@ * /data/user/thumbnails/pathhash/x-y.png * */ +namespace OC; + require_once('preview/images.php'); require_once('preview/movies.php'); require_once('preview/mp3.php'); @@ -19,7 +21,7 @@ require_once('preview/svg.php'); require_once('preview/txt.php'); require_once('preview/unknown.php'); -class OC_Preview { +class Preview { //the thumbnail folder const THUMBNAILS_FOLDER = 'thumbnails'; @@ -57,9 +59,9 @@ class OC_Preview { */ public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true, $force = false){ //set config - $this->max_x = OC_Config::getValue('preview_max_x', null); - $this->max_y = OC_Config::getValue('preview_max_y', null); - $this->max_scale_factor = OC_Config::getValue('preview_max_scale_factor', 10); + $this->max_x = \OC_Config::getValue('preview_max_x', null); + $this->max_y = \OC_Config::getValue('preview_max_y', null); + $this->max_scale_factor = \OC_Config::getValue('preview_max_scale_factor', 10); //save parameters $this->file = $file; @@ -74,14 +76,14 @@ class OC_Preview { if($force !== true){ if(!is_null($this->max_x)){ if($this->maxX > $this->max_x){ - OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG); + \OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, \OC_Log::DEBUG); $this->maxX = $this->max_x; } } if(!is_null($this->max_y)){ if($this->maxY > $this->max_y){ - OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, OC_Log::DEBUG); + \OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, \OC_Log::DEBUG); $this->maxY = $this->max_y; } } @@ -93,26 +95,26 @@ class OC_Preview { //check if there are any providers at all if(empty(self::$providers)){ - OC_Log::write('core', 'No preview providers exist', OC_Log::ERROR); - throw new Exception('No providers'); + \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); + throw new \Exception('No providers'); } //validate parameters if($file === ''){ - OC_Log::write('core', 'No filename passed', OC_Log::ERROR); - throw new Exception('File not found'); + \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); + throw new \Exception('File not found'); } //check if file exists if(!$this->fileview->file_exists($file)){ - OC_Log::write('core', 'File:"' . $file . '" not found', OC_Log::ERROR); - throw new Exception('File not found'); + \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); + throw new \Exception('File not found'); } //check if given size makes sense if($maxX === 0 || $maxY === 0){ - OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::ERROR); - throw new Exception('Height and/or width set to 0'); + \OC_Log::write('core', 'Can not create preview with 0px width or 0px height', \OC_Log::ERROR); + throw new \Exception('Height and/or width set to 0'); } } } @@ -353,7 +355,7 @@ class OC_Preview { * @return void */ public function showPreview(){ - OCP\Response::enableCaching(3600 * 24); // 24 hour + \OCP\Response::enableCaching(3600 * 24); // 24 hour $preview = $this->getPreview(); if($preview){ $preview->show(); @@ -373,7 +375,7 @@ class OC_Preview { $scalingup = $this->scalingup; if(!($image instanceof \OC_Image)){ - OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', OC_Log::DEBUG); + OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', \OC_Log::DEBUG); return; } @@ -399,7 +401,7 @@ class OC_Preview { } if(!is_null($this->max_scale_factor)){ if($factor > $this->max_scale_factor){ - OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $this->max_scale_factor, OC_Log::DEBUG); + \OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $this->max_scale_factor, \OC_Log::DEBUG); $factor = $this->max_scale_factor; } } @@ -462,7 +464,7 @@ class OC_Preview { /** * @brief register a new preview provider to be used - * @param string $provider class name of a OC_Preview_Provider + * @param string $provider class name of a Preview_Provider * @return void */ public static function registerProvider($class, $options=array()){ @@ -496,7 +498,7 @@ class OC_Preview { * @return void */ public static function previewRouter($params){ - OC_Util::checkLoggedIn(); + \OC_Util::checkLoggedIn(); $file = ''; $maxX = 0; @@ -514,15 +516,15 @@ class OC_Preview { if($file !== '' && $maxX !== 0 && $maxY !== 0){ try{ - $preview = new OC_Preview(OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); + $preview = new Preview(\OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); $preview->showPreview(); }catch(Exception $e){ - OC_Response::setStatus(404); - OC_Log::write('core', $e->getmessage(), OC_Log::ERROR); + \OC_Response::setStatus(404); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; } }else{ - OC_Response::setStatus(404); + \OC_Response::setStatus(404); exit; } } @@ -547,11 +549,11 @@ class OC_Preview { if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - $linkItem = OCP\Share::getShareByToken($token); + $linkItem = \OCP\Share::getShareByToken($token); if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { $userid = $linkItem['uid_owner']; - OC_Util::setupFS($userid); + \OC_Util::setupFS($userid); $pathid = $linkItem['file_source']; $path = \OC\Files\Filesystem::getPath($pathid); } @@ -559,7 +561,7 @@ class OC_Preview { //clean up file parameter $file = \OC\Files\Filesystem::normalizePath($file); if(!\OC\Files\Filesystem::isValidPath($file)){ - OC_Response::setStatus(403); + \OC_Response::setStatus(403); exit; } @@ -570,15 +572,15 @@ class OC_Preview { if($userid !== null && $path !== null){ try{ - $preview = new OC_Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); + $preview = new Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); $preview->showPreview(); }catch(Exception $e){ - OC_Response::setStatus(404); - OC_Log::write('core', $e->getmessage(), OC_Log::ERROR); + \OC_Response::setStatus(404); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; } }else{ - OC_Response::setStatus(404); + \OC_Response::setStatus(404); exit; } } @@ -592,7 +594,7 @@ class OC_Preview { if(substr($path, 0, 1) == '/'){ $path = substr($path, 1); } - $preview = new OC_Preview(OC_User::getUser(), 'files/', $path, 0, 0, false, true); + $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); $preview->deleteAllPreviews(); } } \ No newline at end of file diff --git a/lib/preview/images.php b/lib/preview/images.php index a8f203528c..c62fc5397e 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -6,7 +6,9 @@ * later. * See the COPYING-README file. */ -class OC_Preview_Image extends OC_Preview_Provider{ +namespace OC\Preview; + +class Image extends Provider{ public function getMimeType(){ return '/image\/.*/'; @@ -31,4 +33,4 @@ class OC_Preview_Image extends OC_Preview_Provider{ } } -OC_Preview::registerProvider('OC_Preview_Image'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\Image'); \ No newline at end of file diff --git a/lib/preview/movies.php b/lib/preview/movies.php index d2aaf730d6..14ac97b552 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -6,8 +6,10 @@ * later. * See the COPYING-README file. */ +namespace OC\Preview; + if(!is_null(shell_exec('ffmpeg -version'))){ - class OC_Preview_Movie extends OC_Preview_Provider{ + class Movie extends Provider{ public function getMimeType(){ return '/video\/.*/'; @@ -18,7 +20,7 @@ if(!is_null(shell_exec('ffmpeg -version'))){ $fileinfo = $fileview->getFileInfo($path); $abspath = $fileview->toTmpFile($path); - $tmppath = OC_Helper::tmpFile(); + $tmppath = \OC_Helper::tmpFile(); //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . $tmppath; @@ -35,5 +37,5 @@ if(!is_null(shell_exec('ffmpeg -version'))){ } } - OC_Preview::registerProvider('OC_Preview_Movie'); + \OC\Preview::registerProvider('OC\Preview\Movie'); } \ No newline at end of file diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 18f5cfde37..d62c723078 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -5,22 +5,24 @@ * later. * See the COPYING-README file. */ +namespace OC\Preview; + require_once('getid3/getid3.php'); -class OC_Preview_MP3 extends OC_Preview_Provider{ +class MP3 extends Provider{ public function getMimeType(){ return '/audio\/mpeg/'; } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $getID3 = new getID3(); + $getID3 = new \getID3(); $tmppath = $fileview->toTmpFile($path); //Todo - add stream support $tags = $getID3->analyze($tmppath); - getid3_lib::CopyTagsToComments($tags); + \getid3_lib::CopyTagsToComments($tags); $picture = @$tags['id3v2']['APIC'][0]['data']; unlink($tmppath); @@ -38,4 +40,4 @@ class OC_Preview_MP3 extends OC_Preview_Provider{ } -OC_Preview::registerProvider('OC_Preview_MP3'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\MP3'); \ No newline at end of file diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index de5263f91d..4dd4538545 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -5,9 +5,11 @@ * later. * See the COPYING-README file. */ +namespace OC\Preview; + if (extension_loaded('imagick')){ - class OC_Preview_PDF extends OC_Preview_Provider{ + class PDF extends Provider{ public function getMimeType(){ return '/application\/pdf/'; @@ -17,7 +19,7 @@ if (extension_loaded('imagick')){ $tmppath = $fileview->toTmpFile($path); //create imagick object from pdf - $pdf = new imagick($tmppath . '[0]'); + $pdf = new \imagick($tmppath . '[0]'); $pdf->setImageFormat('jpg'); unlink($tmppath); @@ -31,5 +33,5 @@ if (extension_loaded('imagick')){ } } - OC_Preview::registerProvider('OC_Preview_PDF'); + \OC\Preview::registerProvider('OC\Preview\PDF'); } diff --git a/lib/preview/provider.php b/lib/preview/provider.php index 2f2a0e6848..1e8d537adc 100644 --- a/lib/preview/provider.php +++ b/lib/preview/provider.php @@ -2,7 +2,9 @@ /** * provides search functionalty */ -abstract class OC_Preview_Provider{ +namespace OC\Preview; + +abstract class Provider{ private $options; public function __construct($options) { diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 415b7751c2..70be263189 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -5,18 +5,26 @@ * later. * See the COPYING-README file. */ +namespace OC\Preview; + if (extension_loaded('imagick')){ - class OC_Preview_SVG extends OC_Preview_Provider{ + class SVG extends Provider{ public function getMimeType(){ return '/image\/svg\+xml/'; } public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - $svg = new Imagick(); + $svg = new \Imagick(); $svg->setResolution($maxX, $maxY); - $svg->readImageBlob('' . $fileview->file_get_contents($path)); + + $content = stream_get_contents($fileview->fopen($path, 'r')); + if(substr($content, 0, 5) !== '' . $content; + } + + $svg->readImageBlob($content); $svg->setImageFormat('jpg'); //new image object @@ -28,6 +36,6 @@ if (extension_loaded('imagick')){ } } - OC_Preview::registerProvider('OC_Preview_SVG'); + \OC\Preview::registerProvider('OC\Preview\SVG'); } \ No newline at end of file diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 1e88aec69f..4004ecd3fc 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -5,7 +5,9 @@ * later. * See the COPYING-README file. */ -class OC_Preview_TXT extends OC_Preview_Provider{ +namespace OC\Preview; + +class TXT extends Provider{ public function getMimeType(){ return '/text\/.*/'; @@ -46,4 +48,4 @@ class OC_Preview_TXT extends OC_Preview_Provider{ } } -OC_Preview::registerProvider('OC_Preview_TXT'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\TXT'); \ No newline at end of file diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 5bbdcf847f..6a8d2fbb75 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -6,7 +6,9 @@ * later. * See the COPYING-README file. */ -class OC_Preview_Unknown extends OC_Preview_Provider{ +namespace OC\Preview; + +class Unknown extends Provider{ public function getMimeType(){ return '/.*/'; @@ -22,4 +24,4 @@ class OC_Preview_Unknown extends OC_Preview_Provider{ } } -OC_Preview::registerProvider('OC_Preview_Unknown'); +\OC\Preview::registerProvider('OC\Preview\Unknown'); From 268246fac833837d7b9e7a6a2a4559cfadc0a7ab Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 12:48:21 +0200 Subject: [PATCH 031/170] namespace fix --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 31812035c4..855d5a9da0 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -375,7 +375,7 @@ class Preview { $scalingup = $this->scalingup; if(!($image instanceof \OC_Image)){ - OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', \OC_Log::DEBUG); + \OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', \OC_Log::DEBUG); return; } From 7408ab660af2c681ca6abfb15d6230382f35dd7c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 13:03:33 +0200 Subject: [PATCH 032/170] respect coding style guidelines --- lib/preview.php | 136 +++++++++++++++++++-------------------- lib/preview/images.php | 6 +- lib/preview/movies.php | 6 +- lib/preview/mp3.php | 4 +- lib/preview/pdf.php | 4 +- lib/preview/provider.php | 2 +- lib/preview/svg.php | 6 +- lib/preview/txt.php | 8 +-- lib/preview/unknown.php | 4 +- 9 files changed, 88 insertions(+), 88 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 855d5a9da0..1150681e64 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -57,7 +57,7 @@ class Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true, $force = false){ + public function __construct($user=null, $root='', $file='', $maxX=0, $maxY=0, $scalingup=true, $force=false) { //set config $this->max_x = \OC_Config::getValue('preview_max_x', null); $this->max_y = \OC_Config::getValue('preview_max_y', null); @@ -73,46 +73,46 @@ class Preview { $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); $this->userview = new \OC\Files\View('/' . $user); - if($force !== true){ - if(!is_null($this->max_x)){ - if($this->maxX > $this->max_x){ + if($force !== true) { + if(!is_null($this->max_x)) { + if($this->maxX > $this->max_x) { \OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, \OC_Log::DEBUG); $this->maxX = $this->max_x; } } - if(!is_null($this->max_y)){ - if($this->maxY > $this->max_y){ + if(!is_null($this->max_y)) { + if($this->maxY > $this->max_y) { \OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, \OC_Log::DEBUG); $this->maxY = $this->max_y; } } //init providers - if(empty(self::$providers)){ + if(empty(self::$providers)) { self::initProviders(); } //check if there are any providers at all - if(empty(self::$providers)){ + if(empty(self::$providers)) { \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); throw new \Exception('No providers'); } //validate parameters - if($file === ''){ + if($file === '') { \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); throw new \Exception('File not found'); } //check if file exists - if(!$this->fileview->file_exists($file)){ + if(!$this->fileview->file_exists($file)) { \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); throw new \Exception('File not found'); } //check if given size makes sense - if($maxX === 0 || $maxY === 0){ + if($maxX === 0 || $maxY === 0) { \OC_Log::write('core', 'Can not create preview with 0px width or 0px height', \OC_Log::ERROR); throw new \Exception('Height and/or width set to 0'); } @@ -123,7 +123,7 @@ class Preview { * @brief returns the path of the file you want a thumbnail from * @return string */ - public function getFile(){ + public function getFile() { return $this->file; } @@ -131,7 +131,7 @@ class Preview { * @brief returns the max width of the preview * @return integer */ - public function getMaxX(){ + public function getMaxX() { return $this->maxX; } @@ -139,7 +139,7 @@ class Preview { * @brief returns the max height of the preview * @return integer */ - public function getMaxY(){ + public function getMaxY() { return $this->maxY; } @@ -147,7 +147,7 @@ class Preview { * @brief returns whether or not scalingup is enabled * @return bool */ - public function getScalingup(){ + public function getScalingup() { return $this->scalingup; } @@ -155,7 +155,7 @@ class Preview { * @brief returns the name of the thumbnailfolder * @return string */ - public function getThumbnailsfolder(){ + public function getThumbnailsfolder() { return self::THUMBNAILS_FOLDER; } @@ -163,7 +163,7 @@ class Preview { * @brief returns the max scale factor * @return integer */ - public function getMaxScaleFactor(){ + public function getMaxScaleFactor() { return $this->max_scale_factor; } @@ -171,7 +171,7 @@ class Preview { * @brief returns the max width set in ownCloud's config * @return integer */ - public function getConfigMaxX(){ + public function getConfigMaxX() { return $this->max_x; } @@ -179,7 +179,7 @@ class Preview { * @brief returns the max height set in ownCloud's config * @return integer */ - public function getConfigMaxY(){ + public function getConfigMaxY() { return $this->max_y; } @@ -187,7 +187,7 @@ class Preview { * @brief deletes previews of a file with specific x and y * @return bool */ - public function deletePreview(){ + public function deletePreview() { $fileinfo = $this->fileview->getFileInfo($this->file); $fileid = $fileinfo['fileid']; @@ -199,7 +199,7 @@ class Preview { * @brief deletes all previews of a file * @return bool */ - public function deleteAllPreviews(){ + public function deleteAllPreviews() { $fileinfo = $this->fileview->getFileInfo($this->file); $fileid = $fileinfo['fileid']; @@ -214,7 +214,7 @@ class Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - private function isCached(){ + private function isCached() { $file = $this->file; $maxX = $this->maxX; $maxY = $this->maxY; @@ -223,12 +223,12 @@ class Preview { $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; - if(!$this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid)){ + if(!$this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid)) { return false; } //does a preview with the wanted height and width already exist? - if($this->userview->file_exists(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')){ + if($this->userview->file_exists(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')) { return self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; } @@ -238,20 +238,20 @@ class Preview { $possiblethumbnails = array(); $allthumbnails = $this->userview->getDirectoryContent(self::THUMBNAILS_FOLDER . '/' . $fileid); - foreach($allthumbnails as $thumbnail){ + foreach($allthumbnails as $thumbnail) { $size = explode('-', $thumbnail['name']); $x = $size[0]; $y = $size[1]; $aspectratio = $x / $y; - if($aspectratio != $wantedaspectratio){ + if($aspectratio != $wantedaspectratio) { continue; } - if($x < $maxX || $y < $maxY){ - if($scalingup){ + if($x < $maxX || $y < $maxY) { + if($scalingup) { $scalefactor = $maxX / $x; - if($scalefactor > $this->max_scale_factor){ + if($scalefactor > $this->max_scale_factor) { continue; } }else{ @@ -261,26 +261,26 @@ class Preview { $possiblethumbnails[$x] = $thumbnail['path']; } - if(count($possiblethumbnails) === 0){ + if(count($possiblethumbnails) === 0) { return false; } - if(count($possiblethumbnails) === 1){ + if(count($possiblethumbnails) === 1) { return current($possiblethumbnails); } ksort($possiblethumbnails); - if(key(reset($possiblethumbnails)) > $maxX){ + if(key(reset($possiblethumbnails)) > $maxX) { return current(reset($possiblethumbnails)); } - if(key(end($possiblethumbnails)) < $maxX){ + if(key(end($possiblethumbnails)) < $maxX) { return current(end($possiblethumbnails)); } - foreach($possiblethumbnails as $width => $path){ - if($width < $maxX){ + foreach($possiblethumbnails as $width => $path) { + if($width < $maxX) { continue; }else{ return $path; @@ -296,7 +296,7 @@ class Preview { * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return image */ - public function getPreview(){ + public function getPreview() { $file = $this->file; $maxX = $this->maxX; $maxY = $this->maxY; @@ -307,7 +307,7 @@ class Preview { $cached = self::isCached(); - if($cached){ + if($cached) { $image = new \OC_Image($this->userview->file_get_contents($cached, 'r')); $this->preview = $image; }else{ @@ -315,25 +315,25 @@ class Preview { $preview; - foreach(self::$providers as $supportedmimetype => $provider){ - if(!preg_match($supportedmimetype, $mimetype)){ + foreach(self::$providers as $supportedmimetype => $provider) { + if(!preg_match($supportedmimetype, $mimetype)) { continue; } $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); - if(!$preview){ + if(!$preview) { continue; } //are there any cached thumbnails yet - if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/') === false){ + if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/') === false) { $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/'); } //cache thumbnail $cachepath = self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; - if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/') === false){ + if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/') === false) { $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); } $this->userview->file_put_contents($cachepath, $preview->data()); @@ -354,10 +354,10 @@ class Preview { * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return void */ - public function showPreview(){ + public function showPreview() { \OCP\Response::enableCaching(3600 * 24); // 24 hour $preview = $this->getPreview(); - if($preview){ + if($preview) { $preview->show(); } } @@ -366,7 +366,7 @@ class Preview { * @brief resize, crop and fix orientation * @return image */ - public function resizeAndCrop(){ + public function resizeAndCrop() { $this->preview->fixOrientation(); $image = $this->preview; @@ -374,7 +374,7 @@ class Preview { $y = $this->maxY; $scalingup = $this->scalingup; - if(!($image instanceof \OC_Image)){ + if(!($image instanceof \OC_Image)) { \OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', \OC_Log::DEBUG); return; } @@ -382,14 +382,14 @@ class Preview { $realx = (int) $image->width(); $realy = (int) $image->height(); - if($x === $realx && $y === $realy){ + if($x === $realx && $y === $realy) { return $image; } $factorX = $x / $realx; $factorY = $y / $realy; - if($factorX >= $factorY){ + if($factorX >= $factorY) { $factor = $factorX; }else{ $factor = $factorY; @@ -399,8 +399,8 @@ class Preview { if($scalingup === false) { if($factor>1) $factor=1; } - if(!is_null($this->max_scale_factor)){ - if($factor > $this->max_scale_factor){ + if(!is_null($this->max_scale_factor)) { + if($factor > $this->max_scale_factor) { \OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $this->max_scale_factor, \OC_Log::DEBUG); $factor = $this->max_scale_factor; } @@ -411,12 +411,12 @@ class Preview { // resize $image->preciseResize($newXsize, $newYsize); - if($newXsize === $x && $newYsize === $y){ + if($newXsize === $x && $newYsize === $y) { $this->preview = $image; return; } - if($newXsize >= $x && $newYsize >= $y){ + if($newXsize >= $x && $newYsize >= $y) { $cropX = floor(abs($x - $newXsize) * 0.5); $cropY = floor(abs($y - $newYsize) * 0.5); @@ -426,13 +426,13 @@ class Preview { return; } - if($newXsize < $x || $newYsize < $y){ - if($newXsize > $x){ + if($newXsize < $x || $newYsize < $y) { + if($newXsize > $x) { $cropX = floor(($newXsize - $x) * 0.5); $image->crop($cropX, 0, $x, $newYsize); } - if($newYsize > $y){ + if($newYsize > $y) { $cropY = floor(($newYsize - $y) * 0.5); $image->crop(0, $cropY, $newXsize, $y); } @@ -467,7 +467,7 @@ class Preview { * @param string $provider class name of a Preview_Provider * @return void */ - public static function registerProvider($class, $options=array()){ + public static function registerProvider($class, $options=array()) { self::$registeredProviders[]=array('class'=>$class, 'options'=>$options); } @@ -475,7 +475,7 @@ class Preview { * @brief create instances of all the registered preview providers * @return void */ - private static function initProviders(){ + private static function initProviders() { if(count(self::$providers)>0) { return; } @@ -497,7 +497,7 @@ class Preview { * @brief method that handles preview requests from users that are logged in * @return void */ - public static function previewRouter($params){ + public static function previewRouter($params) { \OC_Util::checkLoggedIn(); $file = ''; @@ -514,11 +514,11 @@ class Preview { if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; - if($file !== '' && $maxX !== 0 && $maxY !== 0){ + if($file !== '' && $maxX !== 0 && $maxY !== 0) { try{ $preview = new Preview(\OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); $preview->showPreview(); - }catch(Exception $e){ + }catch(Exception $e) { \OC_Response::setStatus(404); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; @@ -533,7 +533,7 @@ class Preview { * @brief method that handles preview requests from users that are not logged in / view shared folders that are public * @return void */ - public static function publicPreviewRouter($params){ + public static function publicPreviewRouter($params) { $file = ''; $maxX = 0; $maxY = 0; @@ -560,21 +560,21 @@ class Preview { //clean up file parameter $file = \OC\Files\Filesystem::normalizePath($file); - if(!\OC\Files\Filesystem::isValidPath($file)){ + if(!\OC\Files\Filesystem::isValidPath($file)) { \OC_Response::setStatus(403); exit; } $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) == '/'){ + if(substr($path, 0, 1) == '/') { $path = substr($path, 1); } - if($userid !== null && $path !== null){ + if($userid !== null && $path !== null) { try{ $preview = new Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); $preview->showPreview(); - }catch(Exception $e){ + }catch(Exception $e) { \OC_Response::setStatus(404); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; @@ -585,13 +585,13 @@ class Preview { } } - public static function post_write($args){ + public static function post_write($args) { self::post_delete($args); } - public static function post_delete($args){ + public static function post_delete($args) { $path = $args['path']; - if(substr($path, 0, 1) == '/'){ + if(substr($path, 0, 1) == '/') { $path = substr($path, 1); } $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); diff --git a/lib/preview/images.php b/lib/preview/images.php index c62fc5397e..933d65ec59 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -10,16 +10,16 @@ namespace OC\Preview; class Image extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/image\/.*/'; } - public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { //get fileinfo $fileinfo = $fileview->getFileInfo($path); //check if file is encrypted - if($fileinfo['encrypted'] === true){ + if($fileinfo['encrypted'] === true) { $image = new \OC_Image($fileview->fopen($path, 'r')); }else{ $image = new \OC_Image(); diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 14ac97b552..aa97c3f43f 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -8,14 +8,14 @@ */ namespace OC\Preview; -if(!is_null(shell_exec('ffmpeg -version'))){ +if(!is_null(shell_exec('ffmpeg -version'))) { class Movie extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/video\/.*/'; } - public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { //get fileinfo $fileinfo = $fileview->getFileInfo($path); diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index d62c723078..cfe78f3272 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -11,7 +11,7 @@ require_once('getid3/getid3.php'); class MP3 extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/audio\/mpeg/'; } @@ -33,7 +33,7 @@ class MP3 extends Provider{ return $image; } - public function getNoCoverThumbnail($maxX, $maxY){ + public function getNoCoverThumbnail($maxX, $maxY) { $image = new \OC_Image(); return $image; } diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 4dd4538545..66570b05aa 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -7,11 +7,11 @@ */ namespace OC\Preview; -if (extension_loaded('imagick')){ +if (extension_loaded('imagick')) { class PDF extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/application\/pdf/'; } diff --git a/lib/preview/provider.php b/lib/preview/provider.php index 1e8d537adc..58e7ad7f45 100644 --- a/lib/preview/provider.php +++ b/lib/preview/provider.php @@ -18,5 +18,5 @@ abstract class Provider{ * @param string $query * @return */ - abstract public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview); + abstract public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview); } diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 70be263189..746315d6e6 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -7,11 +7,11 @@ */ namespace OC\Preview; -if (extension_loaded('imagick')){ +if (extension_loaded('imagick')) { class SVG extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/image\/svg\+xml/'; } @@ -20,7 +20,7 @@ if (extension_loaded('imagick')){ $svg->setResolution($maxX, $maxY); $content = stream_get_contents($fileview->fopen($path, 'r')); - if(substr($content, 0, 5) !== '' . $content; } diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 4004ecd3fc..5961761aaa 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -9,11 +9,11 @@ namespace OC\Preview; class TXT extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/text\/.*/'; } - public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $content = $fileview->fopen($path, 'r'); $content = stream_get_contents($content); @@ -27,7 +27,7 @@ class TXT extends Provider{ $imagecolor = imagecolorallocate($image, 255, 255, 255); $textcolor = imagecolorallocate($image, 0, 0, 0); - foreach($lines as $index => $line){ + foreach($lines as $index => $line) { $index = $index + 1; $x = (int) 1; @@ -35,7 +35,7 @@ class TXT extends Provider{ imagestring($image, 1, $x, $y, $line, $textcolor); - if(($index * $linesize) >= $maxY){ + if(($index * $linesize) >= $maxY) { break; } } diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 6a8d2fbb75..2977cd6892 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -10,11 +10,11 @@ namespace OC\Preview; class Unknown extends Provider{ - public function getMimeType(){ + public function getMimeType() { return '/.*/'; } - public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { /*$mimetype = $fileview->getMimeType($path); $info = $fileview->getFileInfo($path); $name = array_key_exists('name', $info) ? $info['name'] : ''; From 6b90416891e9e0943a7b19f29017bf7d8140eb0a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 13:09:38 +0200 Subject: [PATCH 033/170] add php preview backend --- lib/preview/txt.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 5961761aaa..def6806860 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -48,4 +48,14 @@ class TXT extends Provider{ } } -\OC\Preview::registerProvider('OC\Preview\TXT'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\TXT'); + +class PHP extends TXT { + + public function getMimeType() { + return '/application\/x-php/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\PHP'); \ No newline at end of file From 1e252b67635aeed7fa8180a0868abd6442a3c42c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 29 May 2013 13:11:43 +0200 Subject: [PATCH 034/170] more style fixes --- lib/preview/images.php | 2 +- lib/preview/movies.php | 3 ++- lib/preview/mp3.php | 4 ++-- lib/preview/pdf.php | 2 +- lib/preview/provider.php | 2 +- lib/preview/svg.php | 2 +- lib/preview/txt.php | 2 +- lib/preview/unknown.php | 2 +- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index 933d65ec59..080e424e5b 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -8,7 +8,7 @@ */ namespace OC\Preview; -class Image extends Provider{ +class Image extends Provider { public function getMimeType() { return '/image\/.*/'; diff --git a/lib/preview/movies.php b/lib/preview/movies.php index aa97c3f43f..18e9d4f778 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -9,7 +9,8 @@ namespace OC\Preview; if(!is_null(shell_exec('ffmpeg -version'))) { - class Movie extends Provider{ + + class Movie extends Provider { public function getMimeType() { return '/video\/.*/'; diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index cfe78f3272..303626e022 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -1,4 +1,4 @@ - Date: Wed, 29 May 2013 13:13:47 +0200 Subject: [PATCH 035/170] fix c&p fail --- lib/preview/mp3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 303626e022..3c6be5c922 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -1,4 +1,4 @@ -Provider{ Date: Thu, 30 May 2013 10:44:23 +0200 Subject: [PATCH 036/170] validate size of file --- lib/preview.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 1150681e64..be3abc2cd4 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -87,7 +87,15 @@ class Preview { $this->maxY = $this->max_y; } } - + + $fileinfo = $this->fileview->getFileInfo($this->file); + if(array_key_exists('size', $fileinfo)){ + if((int) $fileinfo['size'] === 0){ + \OC_Log::write('core', 'You can\'t generate a preview of a 0 byte file (' . $this->file . ')', \OC_Log::ERROR); + throw new \Exception('0 byte file given'); + } + } + //init providers if(empty(self::$providers)) { self::initProviders(); @@ -518,7 +526,7 @@ class Preview { try{ $preview = new Preview(\OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); $preview->showPreview(); - }catch(Exception $e) { + }catch(\Exception $e) { \OC_Response::setStatus(404); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; @@ -574,7 +582,7 @@ class Preview { try{ $preview = new Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); $preview->showPreview(); - }catch(Exception $e) { + }catch(\Exception $e) { \OC_Response::setStatus(404); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); exit; From a014662c52f5295a7e86cd43b7dd62b89e3f1085 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 30 May 2013 11:06:52 +0200 Subject: [PATCH 037/170] improve imagick error handling --- lib/preview/pdf.php | 9 +++++++-- lib/preview/svg.php | 21 +++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 85878a122a..f1d0a33dc6 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -19,8 +19,13 @@ if (extension_loaded('imagick')) { $tmppath = $fileview->toTmpFile($path); //create imagick object from pdf - $pdf = new \imagick($tmppath . '[0]'); - $pdf->setImageFormat('jpg'); + try{ + $pdf = new \imagick($tmppath . '[0]'); + $pdf->setImageFormat('jpg'); + }catch(\Exception $e){ + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + return false; + } unlink($tmppath); diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 8bceeaf60d..76d81589ba 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -16,17 +16,22 @@ if (extension_loaded('imagick')) { } public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { - $svg = new \Imagick(); - $svg->setResolution($maxX, $maxY); + try{ + $svg = new \Imagick(); + $svg->setResolution($maxX, $maxY); - $content = stream_get_contents($fileview->fopen($path, 'r')); - if(substr($content, 0, 5) !== '' . $content; + $content = stream_get_contents($fileview->fopen($path, 'r')); + if(substr($content, 0, 5) !== '' . $content; + } + + $svg->readImageBlob($content); + $svg->setImageFormat('jpg'); + }catch(\Exception $e){ + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + return false; } - $svg->readImageBlob($content); - $svg->setImageFormat('jpg'); - //new image object $image = new \OC_Image($svg); //check if image object is valid From b944b1c5d29393e1b6f0bc51cf50db6eba356e64 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 30 May 2013 11:12:12 +0200 Subject: [PATCH 038/170] add javascript preview backend --- lib/preview/txt.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 4eb0e82040..f18da66c3b 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -58,4 +58,14 @@ class PHP extends TXT { } -\OC\Preview::registerProvider('OC\Preview\PHP'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\PHP'); + +class JavaScript extends TXT { + + public function getMimeType() { + return '/application\/javascript/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file From f7c80a391d192a15d594c3eaf7909a3d78df1a29 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 30 May 2013 15:29:38 +0200 Subject: [PATCH 039/170] load getID3 only if needed --- lib/preview/mp3.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 3c6be5c922..660e9fc3ce 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -7,8 +7,6 @@ */ namespace OC\Preview; -require_once('getid3/getid3.php'); - class MP3 extends Provider { public function getMimeType() { @@ -16,6 +14,8 @@ class MP3 extends Provider { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + require_once('getid3/getid3.php'); + $getID3 = new \getID3(); $tmppath = $fileview->toTmpFile($path); From a11a40d9a96685d41e5acae096752f16785b16b5 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 31 May 2013 12:23:51 +0200 Subject: [PATCH 040/170] add backend for microsoft office 2007 documents --- lib/preview.php | 2 + lib/preview/msoffice.php | 109 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 lib/preview/msoffice.php diff --git a/lib/preview.php b/lib/preview.php index be3abc2cd4..a73f4cb1ac 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -20,6 +20,8 @@ require_once('preview/pdf.php'); require_once('preview/svg.php'); require_once('preview/txt.php'); require_once('preview/unknown.php'); +require_once('preview/msoffice.php'); +//require_once('preview/opendocument.php'); class Preview { //the thumbnail folder diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php new file mode 100644 index 0000000000..c99ca313c7 --- /dev/null +++ b/lib/preview/msoffice.php @@ -0,0 +1,109 @@ +toTmpFile($path); + + $transformdoc = new \TransformDoc(); + $transformdoc->setStrFile($tmpdoc); + $transformdoc->generatePDF($tmpdoc); + + $pdf = new \imagick($tmpdoc . '[0]'); + $pdf->setImageFormat('jpg'); + + unlink($tmpdoc); + + //new image object + $image = new \OC_Image($pdf); + //check if image object is valid + if (!$image->valid()) return false; + + return $image; + } +} + +class DOC extends MSOffice2003 { + + public function getMimeType() { + return '/application\/msword/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\DOC'); + +class DOCX extends MSOffice2007 { + + public function getMimeType() { + return '/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\DOCX'); + +class XLS extends MSOffice2003 { + + public function getMimeType() { + return '/application\/vnd.ms-excel/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\XLS'); + +class XLSX extends MSOffice2007 { + + public function getMimeType() { + return '/application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\XLSX'); + +class PPT extends MSOffice2003 { + + public function getMimeType() { + return '/application\/vnd.ms-powerpoint/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\PPT'); + +class PPTX extends MSOffice2007 { + + public function getMimeType() { + return '/application\/vnd.openxmlformats-officedocument.presentationml.presentation/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\PPTX'); \ No newline at end of file From 34decf357697a81c23e844ef606c04a20a08c597 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 3 Jun 2013 11:24:31 +0200 Subject: [PATCH 041/170] save current work state --- lib/preview.php | 2 +- lib/preview/libreoffice-cl.php | 0 lib/preview/office.php | 13 +++++++++++++ lib/preview/opendocument.php | 0 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 lib/preview/libreoffice-cl.php create mode 100644 lib/preview/office.php create mode 100644 lib/preview/opendocument.php diff --git a/lib/preview.php b/lib/preview.php index a73f4cb1ac..4705efe210 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -20,7 +20,7 @@ require_once('preview/pdf.php'); require_once('preview/svg.php'); require_once('preview/txt.php'); require_once('preview/unknown.php'); -require_once('preview/msoffice.php'); +//require_once('preview/msoffice.php'); //require_once('preview/opendocument.php'); class Preview { diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/preview/office.php b/lib/preview/office.php new file mode 100644 index 0000000000..c66f5584f0 --- /dev/null +++ b/lib/preview/office.php @@ -0,0 +1,13 @@ + Date: Wed, 5 Jun 2013 10:50:20 +0200 Subject: [PATCH 042/170] save current work state of libreoffice preview backend --- lib/preview/libreoffice-cl.php | 129 +++++++++++++++++++++++++++++++++ lib/preview/office.php | 4 +- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index e69de29bb2..1408e69e8c 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -0,0 +1,129 @@ +initCmd(); + if(is_null($this->cmd)) { + return false; + } + + $abspath = $fileview->toTmpFile($path); + + chdir(get_temp_dir()); + + $exec = 'libreoffice --headless -convert-to pdf ' . escapeshellarg($abspath); + exec($exec) + + //create imagick object from pdf + try{ + $pdf = new \imagick($abspath . '.pdf' . '[0]'); + $pdf->setImageFormat('jpg'); + }catch(\Exception $e){ + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + return false; + } + + $image = new \OC_Image($pdf); + + unlink($abspath); + unlink($tmppath); + if (!$image->valid()) return false; + + return $image; + } + + private function initCmd() { + $cmd = ''; + + if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { + $cmd = \OC_Config::getValue('preview_libreoffice_path', null); + } + + if($cmd === '' && shell_exec('libreoffice --headless --version')) { + $cmd = 'libreoffice'; + } + + if($cmd === '' && shell_exec('openoffice --headless --version')) { + $cmd = 'openoffice'; + } + + if($cmd === '') { + $cmd = null; + } + + $this->cmd = $cmd; + } + } +} + +//.doc, .dot +class MSOfficeDoc extends Office { + + public function getMimeType() { + return '/application\/msword/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc'); + +//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m) +class MSOffice2003 extends Office { + + public function getMimeType() { + return '/application\/vnd.ms-.*/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\MSOffice2003'); + +//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx +class MSOffice2007 extends Office { + + public function getMimeType() { + return '/application\/vnd.openxmlformats-officedocument.*/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\MSOffice2007'); + +//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt +class OpenDocument extends Office { + + public function getMimeType() { + return '/application\/vnd.oasis.opendocument.*/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\OpenDocument'); + +//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm +class StarOffice extends Office { + + public function getMimeType() { + return '/application\/vnd.sun.xml.*/'; + } + +} + +\OC\Preview::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file diff --git a/lib/preview/office.php b/lib/preview/office.php index c66f5584f0..cc1addf399 100644 --- a/lib/preview/office.php +++ b/lib/preview/office.php @@ -5,9 +5,11 @@ * later. * See the COPYING-README file. */ -if(shell_exec('libreoffice') || shell_exec('openoffice')) { +//let's see if there is libreoffice or openoffice on this machine +if(shell_exec('libreoffice --headless --version') || shell_exec('openoffice --headless --version') || is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { require_once('libreoffice-cl.php'); }else{ + //in case there isn't, use our fallback require_once('msoffice.php'); require_once('opendocument.php'); } \ No newline at end of file From 749c33f39d9452e2c1fdca718e3abcdb7c4a9dd0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 10:53:16 +0200 Subject: [PATCH 043/170] escape tmppath shell arg --- lib/preview/movies.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 18e9d4f778..8cd50263e2 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -24,7 +24,7 @@ if(!is_null(shell_exec('ffmpeg -version'))) { $tmppath = \OC_Helper::tmpFile(); //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; - $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . $tmppath; + $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); shell_exec($cmd); unlink($abspath); From f437673f1a03ba5b2eeb3e79d24bf6ad3265aa0b Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 10:55:57 +0200 Subject: [PATCH 044/170] update require_once block in preview.php --- lib/preview.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 4705efe210..f9f1288cb9 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -20,8 +20,7 @@ require_once('preview/pdf.php'); require_once('preview/svg.php'); require_once('preview/txt.php'); require_once('preview/unknown.php'); -//require_once('preview/msoffice.php'); -//require_once('preview/opendocument.php'); +require_once('preview/office.php'); class Preview { //the thumbnail folder From bab8b20cbdc65888d92477f9a5810ea4b114ada1 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 11:06:36 +0200 Subject: [PATCH 045/170] use ->cmd instead of hardcoded libreoffice --- lib/preview/libreoffice-cl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 1408e69e8c..49c574c952 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -28,7 +28,7 @@ if (extension_loaded('imagick')) { chdir(get_temp_dir()); - $exec = 'libreoffice --headless -convert-to pdf ' . escapeshellarg($abspath); + $exec = $this->cmd . ' --headless -convert-to pdf ' . escapeshellarg($abspath); exec($exec) //create imagick object from pdf From 8c5fceba296ae76a0f22f3ed0324dec46ef16019 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 11:13:13 +0200 Subject: [PATCH 046/170] fix syntax error --- lib/preview/libreoffice-cl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 49c574c952..1b8e482fb2 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -29,7 +29,7 @@ if (extension_loaded('imagick')) { chdir(get_temp_dir()); $exec = $this->cmd . ' --headless -convert-to pdf ' . escapeshellarg($abspath); - exec($exec) + exec($exec); //create imagick object from pdf try{ From 78e8712366e2a198973f9a887c771894bef9a905 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 11:17:29 +0200 Subject: [PATCH 047/170] update config.sample.php --- config/config.sample.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/config.sample.php b/config/config.sample.php index db6eaf852a..2f437771f2 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -191,4 +191,6 @@ $CONFIG = array( 'preview_max_y' => null, /* the max factor to scale a preview, default is set to 10 */ 'preview_max_scale_factor' => 10, +/* custom path for libreoffice / openoffice binary */ +'preview_libreoffice_path' => '/usr/bin/libreoffice'; ); From 5c1d4fc186b692508f718c06218621bddcfd8f22 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 11:18:57 +0200 Subject: [PATCH 048/170] yet another update for config.sample.php --- config/config.sample.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 2f437771f2..2812d84813 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -192,5 +192,5 @@ $CONFIG = array( /* the max factor to scale a preview, default is set to 10 */ 'preview_max_scale_factor' => 10, /* custom path for libreoffice / openoffice binary */ -'preview_libreoffice_path' => '/usr/bin/libreoffice'; +'preview_libreoffice_path' => '/usr/bin/libreoffice', ); From 21cc4f6960618c41e81ca7e785a6d9e21c21ecf9 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 12:44:31 +0200 Subject: [PATCH 049/170] make libreoffice preview backend work :D --- lib/preview/libreoffice-cl.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 1b8e482fb2..5121a4c5a0 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -26,11 +26,13 @@ if (extension_loaded('imagick')) { $abspath = $fileview->toTmpFile($path); - chdir(get_temp_dir()); + $tmpdir = get_temp_dir(); + + $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpdir) . ' ' . escapeshellarg($abspath); + $export = 'export HOME=/tmp'; + + shell_exec($export . "\n" . $exec); - $exec = $this->cmd . ' --headless -convert-to pdf ' . escapeshellarg($abspath); - exec($exec); - //create imagick object from pdf try{ $pdf = new \imagick($abspath . '.pdf' . '[0]'); @@ -43,7 +45,8 @@ if (extension_loaded('imagick')) { $image = new \OC_Image($pdf); unlink($abspath); - unlink($tmppath); + unlink($abspath . '.pdf'); + if (!$image->valid()) return false; return $image; From f80aba48935e7325effaa65f899922927157028a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 5 Jun 2013 12:58:39 +0200 Subject: [PATCH 050/170] use tmpdir var instead of hardcoded /tmp --- lib/preview/libreoffice-cl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 5121a4c5a0..33fa7a04e5 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -29,7 +29,7 @@ if (extension_loaded('imagick')) { $tmpdir = get_temp_dir(); $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpdir) . ' ' . escapeshellarg($abspath); - $export = 'export HOME=/tmp'; + $export = 'export HOME=/' . $tmpdir; shell_exec($export . "\n" . $exec); From 25e8ac1c2f51e7f3f35eaec013aa1b3f8356f17b Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 10 Jun 2013 11:01:12 +0200 Subject: [PATCH 051/170] implement previews for single shared files --- lib/preview.php | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index f9f1288cb9..904689bc4e 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -557,31 +557,40 @@ class Preview { if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - + $linkItem = \OCP\Share::getShareByToken($token); - + if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { $userid = $linkItem['uid_owner']; \OC_Util::setupFS($userid); + $pathid = $linkItem['file_source']; $path = \OC\Files\Filesystem::getPath($pathid); - } - - //clean up file parameter - $file = \OC\Files\Filesystem::normalizePath($file); - if(!\OC\Files\Filesystem::isValidPath($file)) { - \OC_Response::setStatus(403); - exit; + $pathinfo = \OC\Files\Filesystem::getFileInfo($path); + + $sharedfile = null; + if($linkItem['item_type'] === 'folder') { + //clean up file parameter + $sharedfile = \OC\Files\Filesystem::normalizePath($file); + if(!\OC\Files\Filesystem::isValidPath($file)) { + \OC_Response::setStatus(403); + exit; + } + } else if($linkItem['item_type'] === 'file') { + $parent = $pathinfo['parent']; + $path = \OC\Files\Filesystem::getPath($parent); + $sharedfile = $pathinfo['name']; + } + + $path = \OC\Files\Filesystem::normalizePath($path, false); + if(substr($path, 0, 1) == '/') { + $path = substr($path, 1); + } } - $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) == '/') { - $path = substr($path, 1); - } - - if($userid !== null && $path !== null) { + if($userid !== null && $path !== null && $sharedfile !== null) { try{ - $preview = new Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup); + $preview = new Preview($userid, 'files/' . $path, $sharedfile, $maxX, $maxY, $scalingup); $preview->showPreview(); }catch(\Exception $e) { \OC_Response::setStatus(404); From 0e4f5001d5143f55a9d051b501fe32de900917c5 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 11 Jun 2013 10:45:50 +0200 Subject: [PATCH 052/170] don't crop Y axis --- lib/preview.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 904689bc4e..ed33e7b09d 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -427,7 +427,8 @@ class Preview { if($newXsize >= $x && $newYsize >= $y) { $cropX = floor(abs($x - $newXsize) * 0.5); - $cropY = floor(abs($y - $newYsize) * 0.5); + //$cropY = floor(abs($y - $newYsize) * 0.5); + $cropY = 0; $image->crop($cropX, $cropY, $x, $y); From 2ff97917e9e72b674de07ca05dc04dd3bea14f07 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 11 Jun 2013 10:56:16 +0200 Subject: [PATCH 053/170] code optimization --- lib/preview/images.php | 5 +---- lib/preview/movies.php | 5 ++--- lib/preview/mp3.php | 4 +--- lib/preview/pdf.php | 4 +--- lib/preview/svg.php | 4 +--- lib/preview/txt.php | 4 +--- 6 files changed, 7 insertions(+), 19 deletions(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index 080e424e5b..e4041538e9 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -26,10 +26,7 @@ class Image extends Provider { $image->loadFromFile($fileview->getLocalFile($path)); } - //check if image object is valid - if (!$image->valid()) return false; - - return $image; + return $image->valid() ? $image : false; } } diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 8cd50263e2..cb959a962a 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -27,14 +27,13 @@ if(!is_null(shell_exec('ffmpeg -version'))) { $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); shell_exec($cmd); - unlink($abspath); $image = new \OC_Image($tmppath); - if (!$image->valid()) return false; + unlink($abspath); unlink($tmppath); - return $image; + return $image->valid() ? $image : false; } } diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 660e9fc3ce..60dfb5ff46 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -28,9 +28,7 @@ class MP3 extends Provider { unlink($tmppath); $image = new \OC_Image($picture); - if (!$image->valid()) return $this->getNoCoverThumbnail($maxX, $maxY); - - return $image; + return $image->valid() ? $image : $this->getNoCoverThumbnail($maxX, $maxY); } public function getNoCoverThumbnail($maxX, $maxY) { diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index f1d0a33dc6..3eabd20115 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -32,9 +32,7 @@ if (extension_loaded('imagick')) { //new image object $image = new \OC_Image($pdf); //check if image object is valid - if (!$image->valid()) return false; - - return $image; + return $image->valid() ? $image : false; } } diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 76d81589ba..bafaf71b15 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -35,9 +35,7 @@ if (extension_loaded('imagick')) { //new image object $image = new \OC_Image($svg); //check if image object is valid - if (!$image->valid()) return false; - - return $image; + return $image->valid() ? $image : false; } } diff --git a/lib/preview/txt.php b/lib/preview/txt.php index f18da66c3b..c7b8fabc6b 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -42,9 +42,7 @@ class TXT extends Provider { $image = new \OC_Image($image); - if (!$image->valid()) return false; - - return $image; + return $image->valid() ? $image : false; } } From 28cf63d37d6a2b90ae32a2b5b7193a5f5c69830d Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 11 Jun 2013 11:00:44 +0200 Subject: [PATCH 054/170] check if imagick is loaded in office.php, not in libreoffice-cl.php --- lib/preview/libreoffice-cl.php | 93 ++++++++++++++++------------------ lib/preview/office.php | 17 ++++--- 2 files changed, 54 insertions(+), 56 deletions(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 33fa7a04e5..2749c4867e 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -8,71 +8,66 @@ namespace OC\Preview; //we need imagick to convert -if (extension_loaded('imagick')) { +class Office extends Provider { - class Office extends Provider { + private $cmd; - private $cmd; + public function getMimeType() { + return null; + } - public function getMimeType() { - return null; + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + $this->initCmd(); + if(is_null($this->cmd)) { + return false; } - public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $this->initCmd(); - if(is_null($this->cmd)) { - return false; - } + $abspath = $fileview->toTmpFile($path); - $abspath = $fileview->toTmpFile($path); + $tmpdir = get_temp_dir(); - $tmpdir = get_temp_dir(); + $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpdir) . ' ' . escapeshellarg($abspath); + $export = 'export HOME=/' . $tmpdir; - $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpdir) . ' ' . escapeshellarg($abspath); - $export = 'export HOME=/' . $tmpdir; + shell_exec($export . "\n" . $exec); - shell_exec($export . "\n" . $exec); - - //create imagick object from pdf - try{ - $pdf = new \imagick($abspath . '.pdf' . '[0]'); - $pdf->setImageFormat('jpg'); - }catch(\Exception $e){ - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - return false; - } - - $image = new \OC_Image($pdf); - - unlink($abspath); - unlink($abspath . '.pdf'); - - if (!$image->valid()) return false; - - return $image; + //create imagick object from pdf + try{ + $pdf = new \imagick($abspath . '.pdf' . '[0]'); + $pdf->setImageFormat('jpg'); + }catch(\Exception $e){ + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + return false; } - private function initCmd() { - $cmd = ''; + $image = new \OC_Image($pdf); - if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { - $cmd = \OC_Config::getValue('preview_libreoffice_path', null); - } + unlink($abspath); + unlink($abspath . '.pdf'); - if($cmd === '' && shell_exec('libreoffice --headless --version')) { - $cmd = 'libreoffice'; - } + return $image->valid() ? $image : false; + } - if($cmd === '' && shell_exec('openoffice --headless --version')) { - $cmd = 'openoffice'; - } + private function initCmd() { + $cmd = ''; - if($cmd === '') { - $cmd = null; - } - - $this->cmd = $cmd; + if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { + $cmd = \OC_Config::getValue('preview_libreoffice_path', null); } + + if($cmd === '' && shell_exec('libreoffice --headless --version')) { + $cmd = 'libreoffice'; + } + + if($cmd === '' && shell_exec('openoffice --headless --version')) { + $cmd = 'openoffice'; + } + + if($cmd === '') { + $cmd = null; + } + + $this->cmd = $cmd; } } diff --git a/lib/preview/office.php b/lib/preview/office.php index cc1addf399..20f545ef33 100644 --- a/lib/preview/office.php +++ b/lib/preview/office.php @@ -5,11 +5,14 @@ * later. * See the COPYING-README file. */ -//let's see if there is libreoffice or openoffice on this machine -if(shell_exec('libreoffice --headless --version') || shell_exec('openoffice --headless --version') || is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { - require_once('libreoffice-cl.php'); -}else{ - //in case there isn't, use our fallback - require_once('msoffice.php'); - require_once('opendocument.php'); +//both, libreoffice backend and php fallback, need imagick +if (extension_loaded('imagick')) { + //let's see if there is libreoffice or openoffice on this machine + if(shell_exec('libreoffice --headless --version') || shell_exec('openoffice --headless --version') || is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { + require_once('libreoffice-cl.php'); + }else{ + //in case there isn't, use our fallback + require_once('msoffice.php'); + require_once('opendocument.php'); + } } \ No newline at end of file From 67816da0bfe16ecb58d3a3bdb70c1fb9a79cff75 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 11 Jun 2013 13:15:24 +0200 Subject: [PATCH 055/170] save current work state of office fallback --- lib/preview/msoffice.php | 111 ++++++++++++++++++++++++----------- lib/preview/opendocument.php | 12 ++++ 2 files changed, 89 insertions(+), 34 deletions(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index c99ca313c7..4fedb735c9 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -7,22 +7,24 @@ */ namespace OC\Preview; -class MSOffice2003 extends Provider { +class DOC extends Provider { - public function getMimeType(){ - return null; + public function getMimeType() { + return '/application\/msword/'; } - public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview){ - return false; + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + } + } +\OC\Preview::registerProvider('OC\Preview\DOC'); -class MSOffice2007 extends Provider { +class DOCX extends Provider { - public function getMimeType(){ - return null; + public function getMimeType() { + return '/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/'; } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { @@ -39,36 +41,50 @@ class MSOffice2007 extends Provider { unlink($tmpdoc); - //new image object $image = new \OC_Image($pdf); - //check if image object is valid - if (!$image->valid()) return false; - - return $image; - } -} - -class DOC extends MSOffice2003 { - - public function getMimeType() { - return '/application\/msword/'; - } - -} - -\OC\Preview::registerProvider('OC\Preview\DOC'); - -class DOCX extends MSOffice2007 { - - public function getMimeType() { - return '/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/'; + + return $image->valid() ? $image : false; } } \OC\Preview::registerProvider('OC\Preview\DOCX'); -class XLS extends MSOffice2003 { +class MSOfficeExcel extends Provider { + + public function getMimeType() { + return null; + } + + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + require_once('PHPExcel/Classes/PHPExcel.php'); + require_once('PHPExcel/Classes/PHPExcel/IOFactory.php'); + //require_once('mpdf/mpdf.php'); + + $abspath = $fileview->toTmpFile($path); + $tmppath = \OC_Helper::tmpFile(); + + $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF; + $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/dompdf'; + + \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath); + + $phpexcel = new \PHPExcel($abspath); + $excel = \PHPExcel_IOFactory::createWriter($phpexcel, 'PDF'); + $excel->save($tmppath); + + $pdf = new \imagick($tmppath . '[0]'); + $pdf->setImageFormat('jpg'); + + unlink($abspath); + unlink($tmppath); + + return $image->valid() ? $image : false; + } + +} + +class XLS extends MSOfficeExcel { public function getMimeType() { return '/application\/vnd.ms-excel/'; @@ -78,7 +94,7 @@ class XLS extends MSOffice2003 { \OC\Preview::registerProvider('OC\Preview\XLS'); -class XLSX extends MSOffice2007 { +class XLSX extends MSOfficeExcel { public function getMimeType() { return '/application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/'; @@ -88,7 +104,34 @@ class XLSX extends MSOffice2007 { \OC\Preview::registerProvider('OC\Preview\XLSX'); -class PPT extends MSOffice2003 { +class MSOfficePowerPoint extends Provider { + + public function getMimeType() { + return null; + } + + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { + //require_once(''); + //require_once(''); + + $abspath = $fileview->toTmpFile($path); + $tmppath = \OC_Helper::tmpFile(); + + $excel = PHPPowerPoint_IOFactory::createWriter($abspath, 'PDF'); + $excel->save($tmppath); + + $pdf = new \imagick($tmppath . '[0]'); + $pdf->setImageFormat('jpg'); + + unlink($abspath); + unlink($tmppath); + + return $image->valid() ? $image : false; + } + +} + +class PPT extends MSOfficePowerPoint { public function getMimeType() { return '/application\/vnd.ms-powerpoint/'; @@ -98,7 +141,7 @@ class PPT extends MSOffice2003 { \OC\Preview::registerProvider('OC\Preview\PPT'); -class PPTX extends MSOffice2007 { +class PPTX extends MSOfficePowerPoint { public function getMimeType() { return '/application\/vnd.openxmlformats-officedocument.presentationml.presentation/'; diff --git a/lib/preview/opendocument.php b/lib/preview/opendocument.php index e69de29bb2..786a038ff8 100644 --- a/lib/preview/opendocument.php +++ b/lib/preview/opendocument.php @@ -0,0 +1,12 @@ + Date: Wed, 12 Jun 2013 11:40:01 +0200 Subject: [PATCH 056/170] finish implementation of Excel preview fallback --- lib/preview/msoffice.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index 4fedb735c9..c2e39d00d9 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -42,7 +42,7 @@ class DOCX extends Provider { unlink($tmpdoc); $image = new \OC_Image($pdf); - + return $image->valid() ? $image : false; } @@ -65,7 +65,7 @@ class MSOfficeExcel extends Provider { $tmppath = \OC_Helper::tmpFile(); $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF; - $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/dompdf'; + $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/3rdparty/dompdf'; \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath); @@ -79,6 +79,8 @@ class MSOfficeExcel extends Provider { unlink($abspath); unlink($tmppath); + $image = new \OC_Image($pdf); + return $image->valid() ? $image : false; } From 1f52ad0363e2cff05e2058d31317b580c27e2c31 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 12 Jun 2013 13:20:59 +0200 Subject: [PATCH 057/170] work on powerpoint fallback --- lib/preview/msoffice.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index c2e39d00d9..65886169e9 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -59,7 +59,6 @@ class MSOfficeExcel extends Provider { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { require_once('PHPExcel/Classes/PHPExcel.php'); require_once('PHPExcel/Classes/PHPExcel/IOFactory.php'); - //require_once('mpdf/mpdf.php'); $abspath = $fileview->toTmpFile($path); $tmppath = \OC_Helper::tmpFile(); @@ -113,14 +112,12 @@ class MSOfficePowerPoint extends Provider { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - //require_once(''); - //require_once(''); + return false; $abspath = $fileview->toTmpFile($path); $tmppath = \OC_Helper::tmpFile(); - $excel = PHPPowerPoint_IOFactory::createWriter($abspath, 'PDF'); - $excel->save($tmppath); + null; $pdf = new \imagick($tmppath . '[0]'); $pdf->setImageFormat('jpg'); @@ -128,6 +125,8 @@ class MSOfficePowerPoint extends Provider { unlink($abspath); unlink($tmppath); + $image = new \OC_Image($pdf); + return $image->valid() ? $image : false; } From f89a23b463884e1a9b89c84fdcb1c34afba62645 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 12 Jun 2013 16:18:16 +0200 Subject: [PATCH 058/170] implement unknown preview backend --- lib/preview/unknown.php | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 6b16142491..6e1dc06c1b 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -15,12 +15,24 @@ class Unknown extends Provider { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - /*$mimetype = $fileview->getMimeType($path); - $info = $fileview->getFileInfo($path); - $name = array_key_exists('name', $info) ? $info['name'] : ''; - $size = array_key_exists('size', $info) ? $info['size'] : 0; - $isencrypted = array_key_exists('encrypted', $info) ? $info['encrypted'] : false;*/ // show little lock - return new \OC_Image(); + $mimetype = $fileview->getMimeType($path); + if(substr_count($mimetype, '/')) { + list($type, $subtype) = explode('/', $mimetype); + } + + $iconsroot = \OC::$SERVERROOT . '/core/img/filetypes/'; + + $icons = array($mimetype, $type, 'text'); + foreach($icons as $icon) { + $icon = str_replace('/', '-', $icon); + + $iconpath = $iconsroot . $icon . '.png'; + + if(file_exists($iconpath)) { + return new \OC_Image($iconpath); + } + } + return false; } } From 25981a079a185080ad3ca2d2a23dd827efbd9d05 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 13 Jun 2013 09:52:39 +0200 Subject: [PATCH 059/170] some whitespace fixes --- lib/preview.php | 11 ++++++----- lib/preview/unknown.php | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index ed33e7b09d..3564fe3df4 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -41,6 +41,7 @@ class Preview { private $maxY; private $scalingup; + //preview images object private $preview; //preview providers @@ -81,7 +82,7 @@ class Preview { $this->maxX = $this->max_x; } } - + if(!is_null($this->max_y)) { if($this->maxY > $this->max_y) { \OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, \OC_Log::DEBUG); @@ -101,25 +102,25 @@ class Preview { if(empty(self::$providers)) { self::initProviders(); } - + //check if there are any providers at all if(empty(self::$providers)) { \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); throw new \Exception('No providers'); } - + //validate parameters if($file === '') { \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); throw new \Exception('File not found'); } - + //check if file exists if(!$this->fileview->file_exists($file)) { \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); throw new \Exception('File not found'); } - + //check if given size makes sense if($maxX === 0 || $maxY === 0) { \OC_Log::write('core', 'Can not create preview with 0px width or 0px height', \OC_Log::ERROR); diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 6e1dc06c1b..4e1ca7de74 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -36,4 +36,4 @@ class Unknown extends Provider { } } -\OC\Preview::registerProvider('OC\Preview\Unknown'); +\OC\Preview::registerProvider('OC\Preview\Unknown'); \ No newline at end of file From 6082a0649cefd356370d4ca8034041c1af3875ff Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 17 Jun 2013 12:27:26 +0200 Subject: [PATCH 060/170] stream first mb of movie to create preview --- lib/preview/movies.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index cb959a962a..8531050d11 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -17,16 +17,18 @@ if(!is_null(shell_exec('ffmpeg -version'))) { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - //get fileinfo - $fileinfo = $fileview->getFileInfo($path); - - $abspath = $fileview->toTmpFile($path); + $abspath = \OC_Helper::tmpFile(); $tmppath = \OC_Helper::tmpFile(); - //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; - $cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); - shell_exec($cmd); + $handle = $fileview->fopen($path, 'rb'); + $firstmb = stream_get_contents($handle, 1048576); //1024 * 1024 = 1048576 + file_put_contents($abspath, $firstmb); + + //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; + $cmd = 'ffmpeg -an -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); + + shell_exec($cmd); $image = new \OC_Image($tmppath); From bea4376fd48e714b121e1abb54f9bd786e89c877 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 18 Jun 2013 11:04:08 +0200 Subject: [PATCH 061/170] remove opendocument.php --- lib/preview/office.php | 1 - lib/preview/opendocument.php | 12 ------------ 2 files changed, 13 deletions(-) delete mode 100644 lib/preview/opendocument.php diff --git a/lib/preview/office.php b/lib/preview/office.php index 20f545ef33..b6783bc579 100644 --- a/lib/preview/office.php +++ b/lib/preview/office.php @@ -13,6 +13,5 @@ if (extension_loaded('imagick')) { }else{ //in case there isn't, use our fallback require_once('msoffice.php'); - require_once('opendocument.php'); } } \ No newline at end of file diff --git a/lib/preview/opendocument.php b/lib/preview/opendocument.php deleted file mode 100644 index 786a038ff8..0000000000 --- a/lib/preview/opendocument.php +++ /dev/null @@ -1,12 +0,0 @@ - Date: Tue, 18 Jun 2013 13:53:02 +0200 Subject: [PATCH 062/170] use ppt icon instead of preview --- lib/preview/msoffice.php | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index 65886169e9..262582f021 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -14,7 +14,7 @@ class DOC extends Provider { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - + require_once(); } } @@ -105,6 +105,7 @@ class XLSX extends MSOfficeExcel { \OC\Preview::registerProvider('OC\Preview\XLSX'); +/* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ... class MSOfficePowerPoint extends Provider { public function getMimeType() { @@ -113,21 +114,6 @@ class MSOfficePowerPoint extends Provider { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { return false; - - $abspath = $fileview->toTmpFile($path); - $tmppath = \OC_Helper::tmpFile(); - - null; - - $pdf = new \imagick($tmppath . '[0]'); - $pdf->setImageFormat('jpg'); - - unlink($abspath); - unlink($tmppath); - - $image = new \OC_Image($pdf); - - return $image->valid() ? $image : false; } } @@ -150,4 +136,5 @@ class PPTX extends MSOfficePowerPoint { } -\OC\Preview::registerProvider('OC\Preview\PPTX'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\PPTX'); +*/ \ No newline at end of file From 1fcbf8dd7ac69bfce888cc61084a72919503fd05 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 19 Jun 2013 10:21:55 +0200 Subject: [PATCH 063/170] implemenet getNoCoverThumbnail --- lib/preview/mp3.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 60dfb5ff46..835ff52900 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -20,7 +20,6 @@ class MP3 extends Provider { $tmppath = $fileview->toTmpFile($path); - //Todo - add stream support $tags = $getID3->analyze($tmppath); \getid3_lib::CopyTagsToComments($tags); $picture = @$tags['id3v2']['APIC'][0]['data']; @@ -32,8 +31,14 @@ class MP3 extends Provider { } public function getNoCoverThumbnail($maxX, $maxY) { - $image = new \OC_Image(); - return $image; + $icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.png'; + + if(!file_exists($icon)) { + return false; + } + + $image = new \OC_Image($icon); + return $image->valid() ? $image : false; } } From fb67b458412241cb91c01bdb339d1a4317aeacab Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 19 Jun 2013 13:40:57 +0200 Subject: [PATCH 064/170] comment out old code --- lib/preview/msoffice.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index 262582f021..ccf1d674c7 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -7,6 +7,7 @@ */ namespace OC\Preview; +/* //There is no (good) php-only solution for converting 2003 word documents to pdfs / pngs ... class DOC extends Provider { public function getMimeType() { @@ -14,12 +15,13 @@ class DOC extends Provider { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - require_once(); + require_once(''); } } \OC\Preview::registerProvider('OC\Preview\DOC'); +*/ class DOCX extends Provider { From efe4bfc693ce98fc45e6a003f9bedd0d9da1d1af Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 19 Jun 2013 13:43:11 +0200 Subject: [PATCH 065/170] update 3rdparty submodule --- 3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty b/3rdparty index 3ef9f738a9..0a8f54ed44 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 3ef9f738a9107879dddc7d97842cf4d2198fae4c +Subproject commit 0a8f54ed446d9c0d56f8abff3bdb18fcaa6f561b From 1a8e4399b0084a2769bbf43f0ba417c547ac931c Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Tue, 25 Jun 2013 15:08:51 +0200 Subject: [PATCH 066/170] increase Files row height to tappable 44px, more breathing space --- apps/files/css/files.css | 56 +++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 108dcd741c..be29186cbb 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -62,7 +62,10 @@ color:#888; text-shadow:#fff 0 1px 0; } #filestable { position: relative; top:37px; width:100%; } -tbody tr { background-color:#fff; height:2.5em; } +tbody tr { + background-color: #fff; + height: 44px; +} tbody tr:hover, tbody tr:active { background-color: rgb(240,240,240); } @@ -75,12 +78,25 @@ span.extension { text-transform:lowercase; -ms-filter:"progid:DXImageTransform.M tr:hover span.extension { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; color:#777; } table tr.mouseOver td { background-color:#eee; } table th { height:2em; padding:0 .5em; color:#999; } -table th .name { float:left; margin-left:.5em; } +table th .name { + float: left; + margin-left: 17px; +} table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } -table td { border-bottom:1px solid #eee; font-style:normal; background-position:1em .5em; background-repeat:no-repeat; } +table td { + border-bottom: 1px solid #eee; + font-style: normal; + background-position: 8px center; + background-repeat: no-repeat; +} table th#headerName { width:100em; /* not really sure why this works better than 100% … table styling */ } table th#headerSize, table td.filesize { min-width:3em; padding:0 1em; text-align:right; } -table th#headerDate, table td.date { min-width:11em; padding:0 .1em 0 1em; text-align:left; } +table th#headerDate, table td.date { + position: relative; + min-width: 11em; + padding:0 .1em 0 1em; + text-align:left; +} /* Multiselect bar */ #filestable.multiselect { top:63px; } @@ -93,13 +109,29 @@ table.multiselect thead th { } table.multiselect #headerName { width: 100%; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } -table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; } +table td.filename a.name { + box-sizing: border-box; + display: block; + height: 44px; + vertical-align: middle; + margin-left: 50px; +} table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename input.filename { width:100%; cursor:text; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } +.modified { + position: absolute; + top: 10px; +} /* TODO fix usability bug (accidental file/folder selection) */ -table td.filename .nametext { overflow:hidden; text-overflow:ellipsis; max-width:800px; } +table td.filename .nametext { + position: absolute; + top: 10px; + overflow: hidden; + text-overflow: ellipsis; + max-width: 800px; +} table td.filename .uploadtext { font-weight:normal; margin-left:.5em; } table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } @@ -119,8 +151,10 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } /* File actions */ .fileactions { - position:absolute; top:.6em; right:0; - font-size:.8em; + position: absolute; + top: 13px; + right: 0; + font-size: 11px; } #fileList .name { position:relative; /* Firefox needs to explicitly have this default set … */ } #fileList tr:hover .fileactions { /* background to distinguish when overlaying with file names */ @@ -132,7 +166,11 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } box-shadow: -5px 0 7px rgba(230,230,230,.9); } #fileList .fileactions a.action img { position:relative; top:.2em; } -#fileList a.action { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; } +#fileList a.action { + display: inline; + margin: -.5em 0; + padding: 16px 8px !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; } From dc65482d50ae274b0db12cadce25f6fff0c86671 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Tue, 25 Jun 2013 17:57:38 +0200 Subject: [PATCH 067/170] first round of replacing small filetype icons with proper ones, from Elementary --- core/img/filetypes/application-pdf.png | Bin 591 -> 1759 bytes core/img/filetypes/application-pdf.svg | 277 +++++++ core/img/filetypes/application-rss+xml.png | Bin 691 -> 1098 bytes core/img/filetypes/application-rss+xml.svg | 914 +++++++++++++++++++++ core/img/filetypes/application.png | Bin 464 -> 1235 bytes core/img/filetypes/application.svg | 320 ++++++++ core/img/filetypes/audio.png | Bin 385 -> 858 bytes core/img/filetypes/audio.svg | 274 ++++++ core/img/filetypes/code.png | Bin 603 -> 908 bytes core/img/filetypes/code.svg | 359 ++++++++ core/img/filetypes/file.png | Bin 294 -> 374 bytes core/img/filetypes/file.svg | 197 +++++ core/img/filetypes/flash.png | Bin 580 -> 954 bytes core/img/filetypes/flash.svg | 310 +++++++ core/img/filetypes/folder.png | Bin 537 -> 709 bytes core/img/filetypes/folder.svg | 329 ++++++++ core/img/filetypes/font.png | Bin 813 -> 1793 bytes core/img/filetypes/font.svg | 338 ++++++++ core/img/filetypes/image-svg+xml.png | Bin 481 -> 959 bytes core/img/filetypes/image-svg+xml.svg | 666 +++++++++++++++ core/img/filetypes/image.png | Bin 606 -> 978 bytes core/img/filetypes/image.svg | 321 ++++++++ core/img/filetypes/text-html.png | Bin 578 -> 741 bytes core/img/filetypes/text-html.svg | 280 +++++++ core/img/filetypes/text.png | Bin 342 -> 757 bytes core/img/filetypes/text.svg | 228 +++++ 26 files changed, 4813 insertions(+) create mode 100644 core/img/filetypes/application-pdf.svg create mode 100644 core/img/filetypes/application-rss+xml.svg create mode 100644 core/img/filetypes/application.svg create mode 100644 core/img/filetypes/audio.svg create mode 100644 core/img/filetypes/code.svg create mode 100644 core/img/filetypes/file.svg create mode 100644 core/img/filetypes/flash.svg create mode 100644 core/img/filetypes/folder.svg create mode 100644 core/img/filetypes/font.svg create mode 100644 core/img/filetypes/image-svg+xml.svg create mode 100644 core/img/filetypes/image.svg create mode 100644 core/img/filetypes/text-html.svg create mode 100644 core/img/filetypes/text.svg diff --git a/core/img/filetypes/application-pdf.png b/core/img/filetypes/application-pdf.png index 8f8095e46fa4965700afe1f9d065d8a37b101676..2cbcb741d84a8e1303608089a33e22180a0e4510 100644 GIT binary patch literal 1759 zcmV<51|a!~P)6y0bI$p6Bu6%zn&%#0xKS<6+L6nR(B9p8xxQ{?GrMF{;XqZ1#pm|33gATKwgs z#^mqmS+{FoZDmj7TmcKl7_b&hbCNa9p%uHRpo(EmQv#@;2)(;|HsMqT>8W{l9OP8^=S#UY1*NHHNRW*QsctO2@ zDyX7rFrugp=}>Eso(*(;;mgDwolK97@#pV+o6^iQao+&%Uwgl0$?35%EQB>OAGEO= z08v3j!bEFPtIZTBh`}cbxsN|g=O-S)ILE~kf8ebj{ebqwkpZT&!ct#rOitpO!BqrV zf}oWF2mnMuB`8c3v4&{JPP!la3{iVKS*^y|AHKrn-~NV5xj-p$%+xdD&Q8Kj3(Z<}bW;-~er!QOYM2qX;94_zY7l zh4Ne)!`MJ(Grdc5)B>Q^@X6Z!FM@LmKZF>w?{cmIqzbt(%3^d&rRVZ%0 zgT8OQNbZx5B3?iRBVaTb3#zRwSl4p@;+}50jj4Jg%v}O*nFvoj^DONH{jAx(o%Q$K z%laoi$Mn{_`1i{%W2YwP8E66S72~26Oei$B;a2LICtbk_muLVA@4d^FW5+qOe?Pzb z;?rCi8lwDxEeyQ$eHgr>sRL>0;w78|R(Sl`YL()~jbxb+>2f!00T3BeZ;NBP(wOcv zCB66#C!cwiH(xq{Nm2&B{sQLCElt`(UC-4xa||r%^;+1Lla5aEy|>`zuB`?@2^(LG zrQ{rKE@n-dFmdcSukYQ5iZHNmA9m~Ah{$|b5v+?^o?N`AR;z(3k#nrM{{b4AUzVj7 z0Mab4K&uiPD7%REIHrE~EGM7ai)5Znd%s5fq3sI{hy?py^z^gUSF5FoQACu2agKcD9C! zVvQw@la{oUw{4^0rM5U`iw}%eXMXX{)b!(hy}fZ1g-d2}$s0%%5})zcgNNAhjThMP z)Kgp=8zbrLB+Ie@#u(BxZP_vFv$MQ$_=t?oR$p5j)67k(R4Q#{Yd77VWshu0bGtC6 zqa`&jNvF?Te`&m(yX;U%d)z2?&|pX`25k?+~~jO{{au3n480DmkIy?002ovPDHLkV1k

~O9lw>B8WRlD)Gm}Jrz31u-X&&gn2lvjs=i{7nIaL6v2==uw+8Lcs(8j27 z;|c`rmSv@Lx!heopGP^^Ieb3f=R!%Lpp$}iMS-&P3EJ)s48wrJ_Ni0~k|c47D2nj= z{jS6bt|kFpFf|p5cM`_&0Zh|`rfEp0(}=}lT#(6RpzAsUfxv^LSYX>WlAaN$>)*J5 z0#sE+JRUD8iT9*fz{)_^7@6P&!sEjTcD+I9Z4YjT1`wH@fV{cEvneYGFU%maIEU2s55&K(LixD|{p-uiS@?KNj zk-Go8G$hH6g002ovPDHLkV1hVj1#|!a diff --git a/core/img/filetypes/application-pdf.svg b/core/img/filetypes/application-pdf.svg new file mode 100644 index 0000000000..3f9ad528af --- /dev/null +++ b/core/img/filetypes/application-pdf.svg @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application-rss+xml.png b/core/img/filetypes/application-rss+xml.png index 315c4f4fa62cb720326ba3f54259666ba3999e42..e5bb322c5733e7d2961fd27e049e4249a0d2a5c1 100644 GIT binary patch literal 1098 zcmV-Q1hxB#P)a7G#|~(yYCzq z@9WOI*UT(}ap8kI_ua?4_y0Tpb3fjQnX#Fd+f?=c0sadB_3j7fp1*$%XG0(xEM=gw zcH28AcdQFw=+M|xQw>4D2}oM9Hd(t$!&0HNwzQ~W80U{1DRn6WsA6Ylu&WE;93l=} zT0)p^2n$42^V&?4_SWr~YHxs84ZH^*fjG=L5SP0lJpe3-noQgjyidmN1%N8%74bfe zI1^7CuuQlTfWmgu0>TXQDNHW_GfUFo4G{ye)OAVbWnTbEZDFlS)vj9tP*w1W3kcu@ zgT(sO{cEp~Oq?_o1%P->#_s8W8s=lnD<*=tgxXR7sfs>u!BURQ5!3YE$5=mez$~%f zVof4-X~be66mC@NXKA1_4H$S!RzxoVRYQG}21Ky9Y`aT>k1 zAZjUG52Md+!*Mg~v&b_yV#VUVQjpM^SDLS%Krj4^{&|}C!YuJG-yjt>cK6Sr0vPdq zuYx!SkdYgxjZ9M8J;?x|f6TJ>(QD|XbL$ZV03_)$z$>b89}Z~Yz|!|H*e{0)YNjfoeVpZT=EEKST864DR!H8GQT|wmdk+ z;1jQ6s3xxGex_dd2h`3A!;e~4_mk@l%$w2prO z1A{c4Ie^B3MyYTYjD^qQejNzrz`_gnv9SLEqMyE^e*0dU&mP2LSpE2I^snEk-MWYR zT@#(6QI~kwu9yR52duEp%%NBQX7Q~l+CO|r{f@m1J~V}{EYmvqDFC%y;}ua`DGlbe zawn`vLE*sY^ii%q^exid!SZ|401VvoFzS`)>?r{1V|zMsUzLWu^s@?76^mjtQlj&x zk)dI9WeJx(!D!<{m4x#cW&R-(B;K^tCj2s z?)N)2U4Hq{25xwiGYdbpQb1=l6TxbDZwj&S={?7%qx-u`rsG(Zp`-rh=e^=%((1yvsuf5d=&62Zj)Y zH&JviNS_F4_Hj|T(1j4$p-!}kixP9&dB4uv^MveG?dGf%sUCoc2!IFxD6wHRA2^dX zXRVk!-qSfk(jcaUKn#RP48(whfPlJUpApdrA!TQi_4D+fVoM;3I0gZ8{=Xv~Po;geVA+Em9@0Wq2 zr>OTZEGR05L=gf1T;ucCxq6Q6EgJiH@@-lVaAlQyw`jIF^c=&IVnj|95hHbE_cnt| zTzZQ?F4Ne@(bH(~&3nM%m)I@ID{@jJ2qZPjr)jhpe9hViOwH5k&|T#EmmL3(vHeUQ zq^!t^Al6JD;=mHq^Bg?J-8-zG2Od7gZbknG;K9czYjPqG*xjPo0k(c4%lPXTpw(qq z@aGMnxtFS(np+2kC} z7P02O874ZkJH$v#nCUVx$({yDN`IX@o2wyvTD#e`qN`_w5<}$3F+_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application.png b/core/img/filetypes/application.png index 1dee9e366094e87db68c606d0522d72d4b939818..3518d3116d2a6d0fadd6b09b3b592a2cb322bdce 100644 GIT binary patch literal 1235 zcmV;^1T6cBP)zpC!G631~st$=$LjuDnvM`SqpI###sn8@8#)w6&qwSNGIL1Hskx^mf7_ukXz+^#B% zs;c;vCVy%5{{aAg{mYXlPksx6;AvG=4_4=Xf+-=y-(^|;_4x7Q(MABC=RJ+0=wY|p zmA>yIr9?`J=Xo2)Qhp}T7~@=Py>YCR@`uCW!?Uw9fIl|^P)a@UJWsxU{n{1tecydr z_dL%5u>iEzXsuC7Ik(>}kY=+fl~NDtHJ1PwV|=?<2tid<7-Nu9y0O+8fU2t27_hNb zRk`)`@t1l3s{mFLtOg4q+*G zL9f>%iX!qnUn_ns2CQXSMzh(Zsw&rrM@L8W`+Wcgg8?5td_V|+F@~L;9kMK2(tj%k z>L_j3W?6<(is^I;Kv|abdOiC6K3SFl(C_!rTJ!$>dxQ`S1_So@_X&c4cDw!GBse=e zLrRGd0x2a*DQ?}m#p&s(TQi@}IXpaMFc=U70Yy=8adCk$W~~pllAzAOYC{@h$n)Io z4e+^7R`p)poVI4b2H3>+@84%WpEDc|xw^VSYt3jhqSNUtC5q$N?UuW{yL7u<_V)J3 z^Lz=+wHUBZ8HOQ25b)x~3#61JNkUN+gkcE4cswS{GJM}hDaGBpcWJlVEEWrw>sk!h zASoqjnj(Z?GMPA8q?C-uW70GQKuU@4`)>a9^pt~xgC!ZaW?=Oo5khczc}bEaNGU1H z()EPz`%WsQlw&N8W2&m6)oLxBigkIdt(^sRq}HP-A`C;c)*KxjadL7(v)Od>&1RF6 zlM}k#E?R5CFm#(&-LEBqy$=W>$n%`z<71}NDZ9J7eERf>D2m)^7)2362ztF9w{PF3 z-EK1&43_k_3~VLADga{)uU@_4#*G_%{P^*6;1|s;aC2p|l@cDLJoc6D_XCQ0%;;BBn(0WbcEP)8e6`gpm!y1M!N^ZV(=IC*t) z{^;nqJv-tM$9J1L2QJ2DN!#51=1_l@G`2=6e0lehL%sic%`_4--LFM}IF!KzJCseW zq1I3__Z40|e?qyK1__gzP(qrBf-G7SQbQ`#Lw94WVe(o`qg+f4hy;Qju)q#I(9{`% zQmAGomzhQ!b|gq>KqL@IkO~$=Koi}a$u6d07kiS}NoYVMJjAeZpaB*;wwcDdEbK@K zNP;B7RzhQ|H9AlUO<`J>m1(5R)Pb-iLBb@7Jp)}LHdAb-VVgYxVoTzGoqu{~a>6uj zeqCRFI9pC#h09bGwy9;oHcp6(RB%jeY^F=Ll!S+9JkVe4nDG7tJMQiP0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/audio.png b/core/img/filetypes/audio.png index a8b3ede3df956f8d505543b190bc8d1b5b4dce75..cd9821ec047ff066ac222f7434fd318f1968a6c6 100644 GIT binary patch literal 858 zcmV-g1Eu_lP)NI9*~1SCT_Gs%VjNDv0ZoG^URyES=V*=%*HvDbeh9Q z)6-KtJw1^GhEh7vfK7xk*1OF%Vtb_Px}Fs09BG^)&#sMb)+~*6VeDx!8uy>8ZGn)_~baRl~(% zfvTz;axnt-mducRgsSs|35u?Clbynh-6_%cfPW9< zc^(*;&*y{HlS*N~1!))yL7JvGIXOXDmPnEW^Z6WUnmVs2$_uef7^MMImZg+9I5@!B z*%`FfsO#Fv7z&&s5+&g0zTY;R4K|z2;O{X4V;&^DC<@GGGXQkq`J3i>z|kEuKNdxi zuU4xcLWmgv&KMIPg8oiI0nkdR-+7*YUoMv`hX4Q^9UV=TQeToJ$+XrVN`P~&+P0NK kh^j2hK87q7?|;$$0M}CEus3`j`~Uy|07*qoM6N<$f-drfxBvhE literal 385 zcmV-{0e=38P)klCE>?a@fNhGaV ftv%qM$TQzJ6;XjO8erVL00000NkvXXu0mjfw}q7O diff --git a/core/img/filetypes/audio.svg b/core/img/filetypes/audio.svg new file mode 100644 index 0000000000..f742383d63 --- /dev/null +++ b/core/img/filetypes/audio.svg @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/code.png b/core/img/filetypes/code.png index 0c76bd1297751b66230f74719504b2adb02b1615..753d151f538842c2636a94e0f9231fc4ef1c301f 100644 GIT binary patch literal 908 zcmV;719SX|P)calP19IDZ2()FQp&u6e`_n%%{zg$fG7#T{5*f}IRMSI>v=OdjnCu4>voZt znPW?hPD@=iTLOB~5Jdr)Y0pJEa=yN{%|#bpscy*t7w(Ved`-dieEc?x&*Netogt`u z`S@*?pkB$>*%X8OwmT1SwzsWdcjjEj0WLm#Y4L9j=)9Ynv78NbHd0sREeKcA68^C> zJ*~E+NNfG7Vyi(E1@O;bLv!$xOH(;t*NGbD#y*gGov;-O4DNOg!2ArKuCe%iyBhKB zYRoH8$jX|)*yXP|U;EK&7G8WJ^=i_RQ`r{6+qJ2ncu@d`VOWB@PHnIzgg4<0+rW7=;1;izPJMweME|Xz{et{60wL$2{xyZsozNH~rfs{rgt?xf;zwoCoU4ghY9O#pDX zJO3q>uWrcz2lZoFhfgA-hNZKCj*YfX9S68OdlSE+qkeHS`E&}8$3uUAe>PbWYY))p zJ%B(!y+nqVVoJ5L0d8Nv4S?V8Cz(vLzrK@7;U*JLqK5or;z_iIDvbF>+^s@ zb}6InA?}RFIn+^y$ED^4$XC0l2{1H7jjA&6+pnrBQc4c*sI%l9@2+1_#9X&@fQkxR z;F>R?rfIm{?vh1Tvp<*IssKU=Wn^R|F*-ULbX0w*enJSLNGWsIqA*hlAq1c=2XoNU iz>GABigJEWC+!!w&Od^wnO&v;0000^~*-1fljz_B$LUvK}k?BNXe#Y!m=zM!!V#}8bncK5m;8VP zw86G*RI63?Cd%b9bX|ueNlZ|wR6rj|r_)VIP@r2imh3?SN+^{|kY%~8B{maJ@F*OK z&VH9LwOeGt#DRjj0~v~8`>iO7!Ybi;zE$va`A^T#yW`y44;k^#O~K5*jD=qcUhPSc zvyy~q;5H_1WT1l~cqje9yfa+l!hu6xjdOJ8s;8E^+=QQ$tw p?%p!Hy#YapB=@+^9(46X{{RQg%9y;OKjr`c002ovPDHLkV1g7l326WT diff --git a/core/img/filetypes/code.svg b/core/img/filetypes/code.svg new file mode 100644 index 0000000000..1dee047b11 --- /dev/null +++ b/core/img/filetypes/code.svg @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/file.png b/core/img/filetypes/file.png index 8b8b1ca0000bc8fa8d0379926736029f8fabe364..c20f13c2e13af5bccf96b77dd66a6a0df0508c90 100644 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt-QDT^vIq zTHj9H&D(4s(Dq)Z+eliWEkR@z&jFT~D>P5CyqVw|WW>-jq3h5tZ(${F>&}jI2ZR1h zzjpKc-ODG=B&=TdIyg{7mF0p(-}Qa(&wra4C;hZC&dj$s#H-UvT`A-CHOq3KHP0&9 zl6y27uEm8v;4O|7c5LGF}$;v{gPaVutPR)C#5QQ<|d}62BjvZR2H60wE-&H;pyTSqH(@-Vl>|&1p(LP>kg~E zYiz5X^`c$+%8#zC{u)yfe-5 zmgid={Z3k(ERKCKrE7DF;=x4^O+ pzO8rLO8p|Ip=x)jHOtWj`bJBmKdh_V<`47(gQu&X%Q~loCIFbEay|e6 diff --git a/core/img/filetypes/file.svg b/core/img/filetypes/file.svg new file mode 100644 index 0000000000..f0c0f1daf7 --- /dev/null +++ b/core/img/filetypes/file.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/core/img/filetypes/flash.png b/core/img/filetypes/flash.png index 9f5db634a4fb42ad33c7a78f5488f03308d3317c..bcde641da3ca196a8212a5b6d91a62013f1430ab 100644 GIT binary patch literal 954 zcmV;r14aCaP)8=ZhVsRlE5JVI@Zd?wX?nDHR%jISl z78YJM3?tIyQc9MVmICVm007r@>2x}g0$7$d71}a;+Y*Hii>bv@N<|LQ7r^ZtqE-N) zTm7Bb0bR^UTd=dfPH}aW(%KrPWYo~BGOXL$NVhG%J2g4u$pwpp47*;x^eo#2uS*qfY+W6C@s) z#dX~S!`w}-8^VEF;Cmj$<@d>rXNWsCrfu?9+oQO0j!$N1_~MzTwSGDcbP<(5{g~mQ z7{enYIJQYgDss6=rY0xw+djYl_DjG&x{F9Du77lvsm$HP9TU?uF%{UBf$T`!RvW_* zS^%B;K882HynxwmkxWlw$75W+{434M%>y>avf0q_`r3h88%3_Yy-05A9)^xNRCX&2 zP2S5>pM4YXuhnXSwZQ?DqVfGY*WP-AiLp`A;~5Oc;zntknRm`otyXVeWd_~#ADG7TyifoGzXkqYh3VzF*APPBc^<7+i)zn=hXn{d1HB3}<%8<~`B(g(16Y!Kav9LZ#I-!JhChA6D-Iv8UfilU%gE+d!ANl7-FMJko@B=v9?3Fv}pny_sf z=E*mhpTB_ZBv7eTkk99(z%UF@k#stJCutT?*giObx$qWlViRogHB?nap-^ZUi83t$ z=kGt5(=*`f%P^*A!PYjsQHsT)>?D)PJRsm4)^;3x^8<|7M{rS<(>t*|l29kKk5Z}B zUcfJY! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder.png b/core/img/filetypes/folder.png index 784e8fa48234f4f64b6922a6758f254ee0ca08ec..b7be63d58369d5da485f12ead9ca6982c8e8e563 100644 GIT binary patch literal 709 zcmV;$0y_PPP)M_{T#OD zL*!f7*x1-vsEwk95U>jf7J?W|NZj3IbMMS~T9|!>kgRdc^k2sZ#MOqsjx?%!t$0I=ZhpQcF+A>0EnJ3t8GHUPLgnEA-0vMdKV zcTc!(*WK49003Gd^3lwW%{DWL$W)a&EQ+GIKl~n_==FLaqLco2s%W)Z6XW3Sc+g&Y ze0g#4>783Q+p5|qAkTArUj6c}^LyjPn^!NN7XWbe+Vw}v%g@?Ho;SMqARaC~X|JrT ztONK9NGknr8$F26=UQmx0GmZ%{|u;jO(d|qMAMIB2!N|X#p)q|g=1m?P|O7&Dqz!U z2oTjeu_Dg^Ygmwl0Aqo$j8%Z8A{G>-%>|$&P~j1P64#Lh=ggtjEFjMSVnJjZZ2?oP z6Du-p9$*e6QBaB_K%`WW2ugLx900_MNNEH}v8qTEEo&a&07wK>)g!>}PQOYdIByQt z=DXxXf>`y&D$v{9BN4DVSdV`V|1UBSGxj>&y&+(G^Jm4Z5N*B!0S*#Hck9OpK>a>P zCML6z{;2}TU=N*kL}KlCIy3|TK&n$B;xfqrz^pGO%aCFn2g3otV~Ug#Bgw&j;0VA; zY?h<0V*+5~fS|FqOBZqglRZHbC*oI%!!i#5J8K_azx}%U{)&6EO+g63l;ReEKCs`C r?N1Z{F5+MbW*-V**WG0Ta9Z&Pj@y0dwwZ6q00000NkvXXu0mjfO6e%^ literal 537 zcmV+!0_OdRP)x(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n z6o8--^T(=hkBNQ_k{-_GWE;FMW7!p}f{NG3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E zW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/font.png b/core/img/filetypes/font.png index 81e41de7d3a9bcc50267b34d0005487d5c7cc7c0..df44a7fc47db6c6edce188fa5e00ead07456bf97 100644 GIT binary patch literal 1793 zcmV+c2mbhpP)kn#o@63d#~SKd+oK^#LT#!OYK22X zLr*dD$ihD}KYHN6f#6 zT>yCNt~>4(zWzFd`lNsB&FuB{1f&&6NstsM=i=ek{$mdx{luLkw~rlp0l2~zG@H#q z0DYe4Ax%>U;FXDqiPr&~$@3gx7!rVoMw-pu$-CFR#8L2ycT4{RvbV>j({tJU@zNhLykMF8XxI?P9+5%Q%XkxcAQ|vW0o}e{A3;Ewr_1 z3APT|TpG42?R|?|{C)tw?{85`IUxkv?RE~}Y3|%y6B83>r4VCTmcjEpoGu(4Ki8gY z?mPTgw{rk+N{&R!Z>+hbK>E-3U`QVC*1Ru(5MoCV1a;>evMggE#812XKVyr;wcBvc zL1~RAt=UL(xs>xpqtVCAo3z%*^Be#s_wL<$ zVsYa2>o?y8Y-V<_)BFi`kLlQz&RLQV~kHkJDGVW01!Yw)LtNF=E2NxLO9R&rPjLYoLj63FW<5L9^aFz07N&rBuR?`6Vr9eAPGBdQ+l;`0wYaWU1{?%2lssu2Vl&zyeZr>BypE>6s zgn$5jv?YacNf}#4khe>v1tHCBRxqY63qV9Wq?C2%9E>q3Gw&K7AAhS`^ZeSu_yd`# z`T{Uc=qNXjjs@~}Wm#@jN(m{2dP6yC=6H!f_Y|4AnFNp+pfnc)EY^WWqtORolMv#3 zb~{I9S^j$I0ArElg+-Yg+yD~@rn|Sa@Srf3m>G}~2Nlr_lkfX9d^VrE!t<2=uwCn8Nms`J%Eq|X-o z#8l4hvnAnO1Dq`xbJk&P#$e~b%pgG#fUnKwMS8|K%o@OB@_U7liG?+melU9S;LjHU z8jZ%s0rYi34`$X=Q&X=2hycirDFFK0({CJ`w#AQ*6=nOhahNfT6S*ye`8;>l7M_la?YV+yIZYR3qW@<;Evg! z%p7_0tSP=VUAiNuOZ)eCO!13D|C;%n1I{hXK}6nUudid{etWXC#p%Mnea01E{?5#s z-vq$ixwvTIZAe5OfUvVt2OtAbEF6%fxzK@ET@liqi0KY!4j=_!K2_-pk0xj4-v&wm jmb)IL^#8}{^#=GivXWu0)28I700000NkvXXu0mjfbU9WX literal 813 zcmV+|1JeA7P)%S8Yz4}?d^ZEOv#Sc!)mtIgHXaEQ+_ullV zJO1Y8v8UhuAAS7ozvIlitK{;}YszGvVI*jPQs)gu{RuZGF1qsJqxF>Ai*mOY zeUVJ^Xn04=g+vNN2-6q_7DHe6!8fa@! z^ZEB_2Vebf-umoI@{HTtK!PIfdyIp7Zk$|p=*|D=N%#IIE_w1_EaGe}ST5wWclgx% z|Fx4ZY{8likTKA?G12oM|4&}@o+);3yYs=L?ao)At-(S*$63Le zJ&q^>ZEbL?y!O>L=h9<7rvvdA2Do?L{p8zs_rGt?o&P=^cm5ltT|5S~l@laqmU8i; rSIv!oK>XjU`o@3v@@qdCD9z3Q7_5=EFk?|V00000NkvXXu0mjffa;^e diff --git a/core/img/filetypes/font.svg b/core/img/filetypes/font.svg new file mode 100644 index 0000000000..404f622ea7 --- /dev/null +++ b/core/img/filetypes/font.svg @@ -0,0 +1,338 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/image-svg+xml.png b/core/img/filetypes/image-svg+xml.png index a1291c2dfad75b289f88ab762a3a32ccb436c1ed..e3dd52489d3772962e22cdf47569b53616fe73eb 100644 GIT binary patch literal 959 zcmV;w13>(VP)z_|7@MbH1CXD&v&%^iqNC6zjp|aZmRb{Gb&4rJudU0!ZU@;&b3ZQ(98X^?H zWA8xK;(sR4OFtmbu7hREXXnht<1ls^P5+Io>_&Q$$hxv%*pp~*1m@GVjosx1A1$O!tmFaOWz|qKZPajp#bXMf;k|@K;T0$j~atHdzARr z_ld3V#cuD!YK-ALwUXxEw}?NHK>H8Yj1wB5QnK$etYym~pM|T#hz8iJo=5y_$qF+_ zJ_Gq_63=zR#3=gt{;D_&KLbmYBQi07i&EL={_ zi4n~^uyGr5{a5tH6~s#;K@KU*fR{!*_bxyNEBPuW(Gd!u?iSSCL%{6#7y_T%i4X54 zpT_d0kemyCj_ICv@n1iT*|NK;m}uUCL< zy_+D`9LhHoKqxh}Vy)hU?`Du+E{1Yh@IzF~nkI&6ac)8^jy>29H?Bn2f%&Xu{2N;T zIEUC4Xh8AJKAh8su)jME?w`>E*n|D0DosG!*q1bq4+2n_%%CftCRnwm6m0w&v6BZL z3Lw-qbiO?WKvQ;vvf;J@<<+Oz~z@wR`0ef1}Tm-j^vP}s1o%CXF$G_-YMUg(`O7a2elivAr~AVj4e zdk6lX0FL7jkH;egxcA9D5I{t%fq{X^p`oFUNVDIMKPe)Xs?L6kQcfiz0<>0wMJON0 hXjxKO%u^pm{{i;%Y;-~x&NBc2002ovPDHLkV1mQAx^@5n literal 481 zcmV<70UrK|P)SXcnW4?r|Fc?Kd3cm$;%kZi#G`Sa_VnwmC}YZ26Y zhXbnt^XAQKXm4+SUQ}H6r(?sz`|0x@O--EjU}EI72kk(5e$=!F(*t|%| zOO`#}*s$)|C0u^?YPrGY(Rf4Gt^S&sOU+enjCclWzS^+v`E5dh=Tv=F*rDQzDn?3c zT=(o=$L8ms2^j#wwxyStFa(R1K0Y&H$BX|!zZw%`2!=rX%m*7M?R@p$v*kt(Sq6Bw z+-#h< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/image.png b/core/img/filetypes/image.png index 4a158fef7e0da8fd19525f574f2c4966443866cf..83d20fdb7762d4b52b398c80e4ecc3fb6f2d5470 100644 GIT binary patch literal 978 zcmV;@11@dUJ z_uS{qnOPyFq@AX;75#q#fES=pD6}OJy1KfA7r;tHA;ez+wkLj-fDnSEr6o$GQgxDj zqP<^l%)PLEj%k_>Us+kHjyV*_<#JU5KVcT2l(O1d-wp*#(?keSv$IClY>pko4Q_88 z1gr%O!*C2XGs7_OcsveZx73Y@*f*fqS-0vP9UV+gPU7)+&~=?krGlnuXqrZ)QfcbC zt~*Gyq=1wX!!S@31w~O98yjP2Xoy@c$I;PI(;d6}R;cTSz?$r~P$g4gS< z0*sE1GBGhhAP``Gf1ka*y_#LyO;MD_1neQOFY@s4!13`h!^6V_gF$p%C!J0ckH_in z?+2huhgt6OBgc>FHs4d6}oDC!*0Pi;Ig$DOp`z zKw=y@8NH9A)i>j*R^LcJ>ZvnW!zvuh=8&y?VSXf|ZXNQA> zgQg|jt$^bgetv$E&1QLjf9LJ(jjyjSd_Es@b91Pw3V^DrOifKWS^&S_PcoULv$M0N z9@I<5nqw%Xq*yGX>$-#S$Hxb$RElsoOg^6{nM_vQvaPKxUSD5%d3m8wDExT{8r6aG z^K(qoWO{mq=bD-72)CKr9v`7z}c9a>C)^Ar}`HWHK2tnGAP#cNB}omhX^%J%(-x1AzcD zGc%-8DWsIFudh4CudlCL0=BGa4!GF?%+JrWySs~F7{3MdBLsSTdkKX?+}zy!2zWh= znh;n;Ls#OM)^b%<9R!4wl5{%VmRE5+9v6xbLiybX$xpcu zLJ@!fV!%H@$6wlf8OQ-oqLoMJe`#(1HETP8UxCcTx6i@D5&!@I07*qoM6N<$f_;y! A`2YX_ literal 606 zcmV-k0-^nhP)Q2rnAt>LM%-F zK|rtwgcU)}7x~z1Hrcs5bH*ZO$!>xO8K#?==bZPQ_ecnV>#P`H`QzGaRhd62G_&rC zTLU$c7_x*nFP_dW#Q+*);mMHE?j)HexK784D4x9l_tfpz2$@1y}9rkF+ zI+J5NMWeZyObc!d+rUc=>D+uOdAOg#%+Ej6h+wn5^xPmVVH*Eu446Y0A_@ zo$rlds-+sL10Db + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-html.png b/core/img/filetypes/text-html.png index 55d1072eafda48abb0a5fcecb98b114d866077b9..de11613f25f41a5918b041f358a66cd38366eaaf 100644 GIT binary patch literal 741 zcmVba;AtS^`X`Q)aW-{s5~WK@i}19;H%=YPFh5sFb4L?{j~Dk1>X7wMwZ} z!t*?WAV?J6*#V^#gTa7eu}HmMCyJsJz{|@E7Z(>?UtcfhNWEUCSS&Ia3{Xn#=783E z89W}30cbXx#BrP|uC=Dy?Q(m2i>lnJOi{m&v4B?hm;gCY1K&@6I48y~YVI0Ra8jWR7EcUzIE;lzf zsU};*G#ZV}zFF5_U&S9EAK11{rBX@Q`0((6lrr^b%H>~QU6y4fzN!wI1yV|`uCCBp z^Zx!0fbaXMWB`|!msplX7>1d7_W}S2f*`Zty0V%z7l1?cWdTk;j!*8u*95R_oAdMY zTmcrd<*hNZ(J00000NkvXXu0mjf_EbrX literal 578 zcmV-I0=@l-P)dis)>+`f+#3Rv=dSV4I&~|Vk?LiBG~#L1X~NSQGbAyogj#ie_$n8 z*oYwUieR#5zw>=_v)By?+NE%sVPM|5yzfjE5$wfk_Go)9(A<0e{hvFiJ0eb2MFf%t zDJxl&RDw>Nl#~WweRba-&_F#fn|ifCG!S=00#QfIDe64k{5mZFusu=CnSq>Qvt$j5 zI$4b(K~|@Tvozn3#yaJ|Be;BKfh@+AwFR!7UF7D*61OfavvGQ!VN-Ga+zO*%#qEoS z8E0dX4NpRyRS|XCrXq{e4r(61{zg^7gBPDUwmjg}k(Q%NLkD6fm6*tZ=)6^ARRw9CNHr!!-b)EovamKwdDMpr>=!|-tf?S+boQE&JP}G_9P5@nR zSOjlBPI$jHA&U_KsTjQko(uJ_ROpKn!K^ckXTHmZd+_Mh7C&~BUYvvb=Xi2w6%i+L zP+hwJF0QUE^66)$h?CXHvdjEbu3a_69GS^`e5Gac*$0~K9VHcGVKhe>RE(rT+Ca5J zv_?D-3(OpKFrQAl`$E;pyKkaTN=V?@iK2u!kqwFy=F?aM-2b}R>c4;EZ`t2+*gqpJ QK>z>%07*qoM6N<$f@8}2CIA2c diff --git a/core/img/filetypes/text-html.svg b/core/img/filetypes/text-html.svg new file mode 100644 index 0000000000..bf29fbcbbf --- /dev/null +++ b/core/img/filetypes/text-html.svg @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text.png b/core/img/filetypes/text.png index 813f712f726c935f9adf8d2f2dd0d7683791ef11..2b96638d16c9af6b5f98350c4ec102d4975c1b64 100644 GIT binary patch literal 757 zcmVr^#nd|{2jDfVx`$1`XC^PkIDD5WqlpU;1cMx#5v z0GrL`_v7Q^Pt#^)7x}(_cYlBXz0qjYdbpI5#bS}O=Li5qQN(VytCfId6&^)lnAx<{ zfqgy;X(^>@CsB!jxnaFt5C9}=0364m-|y3Iw@ZoT2>D-+VUx9;AS|c(qyqq@vaT9mgSxB0SGSN=Y2YD5X+rbh}*!gTdh` zkW!`yOeT}Uja8uiNh!+-m>U3IUS0rbwOS~plJ@jG41fDgB+erKo`na zOv9s!aJgIp`8Ev05Zkti;~2+rk`~nOKR!MfkH;yWMJOFarxal=gGei2+cr|l%56BE zPETvYo12@mC3}%A+=B_23OqkQ1JG`_iQ^d8b=hvWxULI)DxmAb{Jpxm%H17D5jaJG zYz-VlAbS_og`@8Ror0pfK=q#u5CgH zf*`=MESk+G7Z(@wdcDMF5lU;|R0Xu3N;P2O>FEh5&U+99oS&c5Y&HqQkju-(g(B`YhYXo=00000NkvXXu0mjfEhtiT literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%6;pyTSA|c6o&@eC9QG)Hj&ExYL zO&oVL^)+cM^qd@ApywS>pwx0H@RDN}hq;7mU-SKczYQ-hnrr=;iDAQMZQ+*g=YOM= z!QlMQEn7FbaD->uKAYgo_j9)W&$$zS*W9}m(ey0q$&7l-XEWO0Y(9M=SnhLbwy;d>@~SY$Ku*0xPvIOQeV1x7u_z-2-X>_74(yfh7C znXL|3GZ+d2`3re2hs?MK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + From c7fdf00e8497af9804b0cfd4fa081940bf53bc96 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 21 Jun 2013 14:24:52 +0200 Subject: [PATCH 068/170] add unit tests for preview lib to make @DeepDiver1975 happy --- tests/lib/preview.php | 108 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 tests/lib/preview.php diff --git a/tests/lib/preview.php b/tests/lib/preview.php new file mode 100644 index 0000000000..2599da400c --- /dev/null +++ b/tests/lib/preview.php @@ -0,0 +1,108 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test; + +class Preview extends \PHPUnit_Framework_TestCase { + + public function testIsPreviewDeleted() { + $user = $this->initFS(); + + $rootView = new \OC\Files\View(''); + $rootView->mkdir('/'.$user); + $rootView->mkdir('/'.$user.'/files'); + + $samplefile = '/'.$user.'/files/test.txt'; + + $rootView->file_put_contents($samplefile, 'dummy file data'); + + $x = 50; + $y = 50; + + $preview = new \OC\Preview($user, 'files/', 'test.txt', $x, $y); + $preview->getPreview(); + + $fileinfo = $rootView->getFileInfo($samplefile); + $fileid = $fileinfo['fileid']; + + $thumbcachefile = '/' . $user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $x . '-' . $y . '.png'; + + $this->assertEquals($rootView->file_exists($thumbcachefile), true); + + $preview->deletePreview(); + + $this->assertEquals($rootView->file_exists($thumbcachefile), false); + } + + public function testAreAllPreviewsDeleted() { + $user = $this->initFS(); + + $rootView = new \OC\Files\View(''); + $rootView->mkdir('/'.$user); + $rootView->mkdir('/'.$user.'/files'); + + $samplefile = '/'.$user.'/files/test.txt'; + + $rootView->file_put_contents($samplefile, 'dummy file data'); + + $x = 50; + $y = 50; + + $preview = new \OC\Preview($user, 'files/', 'test.txt', $x, $y); + $preview->getPreview(); + + $fileinfo = $rootView->getFileInfo($samplefile); + $fileid = $fileinfo['fileid']; + + $thumbcachefolder = '/' . $user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileid . '/'; + + $this->assertEquals($rootView->is_dir($thumbcachefolder), true); + + $preview->deleteAllPreviews(); + + $this->assertEquals($rootView->is_dir($thumbcachefolder), false); + } + + public function testIsMaxSizeWorking() { + $user = $this->initFS(); + + $maxX = 250; + $maxY = 250; + + \OC_Config::getValue('preview_max_x', $maxX); + \OC_Config::getValue('preview_max_y', $maxY); + + $rootView = new \OC\Files\View(''); + $rootView->mkdir('/'.$user); + $rootView->mkdir('/'.$user.'/files'); + + $samplefile = '/'.$user.'/files/test.txt'; + + $rootView->file_put_contents($samplefile, 'dummy file data'); + + $preview = new \OC\Preview($user, 'files/', 'test.txt', 1000, 1000); + $image = $preview->getPreview(); + + $this->assertEquals($image->width(), $maxX); + $this->assertEquals($image->height(), $maxY); + } + + private function initFS() { + if(\OC\Files\Filesystem::getView()){ + $user = \OC_User::getUser(); + }else{ + $user=uniqid(); + \OC_User::setUserId($user); + \OC\Files\Filesystem::init($user, '/'.$user.'/files'); + } + + \OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/'); + + return $user; + } +} \ No newline at end of file From a98391b976ba7dd544af6a0d16b324efb2fc7a3c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 26 Jun 2013 10:57:37 +0200 Subject: [PATCH 069/170] some minor improvements to preview lib --- lib/preview.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 3564fe3df4..87e2e78d1d 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -323,7 +323,7 @@ class Preview { }else{ $mimetype = $this->fileview->getMimeType($file); - $preview; + $preview = null; foreach(self::$providers as $supportedmimetype => $provider) { if(!preg_match($supportedmimetype, $mimetype)) { @@ -350,6 +350,11 @@ class Preview { break; } + + if(is_null($preview) || $preview === false) { + $preview = new \OC_Image(); + } + $this->preview = $preview; } $this->resizeAndCrop(); From 9b7efef39d3f7eae45741f0adf0bc0d52945d842 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 26 Jun 2013 14:28:40 +0200 Subject: [PATCH 070/170] improve Image Provider --- lib/preview/images.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview/images.php b/lib/preview/images.php index e4041538e9..987aa9aef0 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -20,7 +20,7 @@ class Image extends Provider { //check if file is encrypted if($fileinfo['encrypted'] === true) { - $image = new \OC_Image($fileview->fopen($path, 'r')); + $image = new \OC_Image(stream_get_contents($fileview->fopen($path, 'r'))); }else{ $image = new \OC_Image(); $image->loadFromFile($fileview->getLocalFile($path)); From 39c387eed4e5da7bddb6f7cd48a8f8b607f3b8dd Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 26 Jun 2013 18:04:18 +0200 Subject: [PATCH 071/170] implement server side use of previews --- apps/files/templates/part.list.php | 3 ++- lib/helper.php | 11 +++++++++++ lib/public/template.php | 9 +++++++++ lib/template.php | 12 ++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 1e94275dcb..6dabd7d697 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -1,6 +1,7 @@ style="background-image:url()" - style="background-image:url()" + style="background-image:url()" > diff --git a/lib/helper.php b/lib/helper.php index a315c640d1..e8cc81774d 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -223,6 +223,17 @@ class OC_Helper { } } + /** + * @brief get path to preview of file + * @param string $path path + * @return string the url + * + * Returns the path to the preview of the file. + */ + public static function previewIcon($path) { + return self::linkToRoute( 'core_ajax_preview', array('x' => 32, 'y' => 32, 'file' => $path)); + } + /** * @brief Make a human file size * @param int $bytes file size in bytes diff --git a/lib/public/template.php b/lib/public/template.php index ccf19cf052..5f9888f9f2 100644 --- a/lib/public/template.php +++ b/lib/public/template.php @@ -54,6 +54,15 @@ function mimetype_icon( $mimetype ) { return(\mimetype_icon( $mimetype )); } +/** + * @brief make preview_icon available as a simple function + * Returns the path to the preview of the image. + * @param $path path of file + * @returns link to the preview + */ +function preview_icon( $path ) { + return(\preview_icon( $path )); +} /** * @brief make OC_Helper::humanFileSize available as a simple function diff --git a/lib/template.php b/lib/template.php index ae9ea18744..048d172f1c 100644 --- a/lib/template.php +++ b/lib/template.php @@ -62,6 +62,18 @@ function image_path( $app, $image ) { return OC_Helper::imagePath( $app, $image ); } +/** + * @brief make preview_icon available as a simple function + * Returns the path to the preview of the image. + * @param $path path of file + * @returns link to the preview + * + * For further information have a look at OC_Helper::previewIcon + */ +function preview_icon( $path ) { + return OC_Helper::previewIcon( $path ); +} + /** * @brief make OC_Helper::mimetypeIcon available as a simple function * @param string $mimetype mimetype From 806f3bddecbd8182f1da90ec91e2a03a1a6e2c3b Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 26 Jun 2013 18:19:10 +0200 Subject: [PATCH 072/170] increase size of preview to size of row --- apps/files/css/files.css | 2 +- lib/helper.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index be29186cbb..222cc9c83e 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -118,7 +118,7 @@ table td.filename a.name { } table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename input.filename { width:100%; cursor:text; } -table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; } +table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em .3em; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } .modified { position: absolute; diff --git a/lib/helper.php b/lib/helper.php index e8cc81774d..0a8962a531 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -231,7 +231,7 @@ class OC_Helper { * Returns the path to the preview of the file. */ public static function previewIcon($path) { - return self::linkToRoute( 'core_ajax_preview', array('x' => 32, 'y' => 32, 'file' => $path)); + return self::linkToRoute( 'core_ajax_preview', array('x' => 44, 'y' => 44, 'file' => $path)); } /** From d332b1d4a2e9382aaa8e8a11b6200efaadb18768 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 2 Jul 2013 11:13:22 +0200 Subject: [PATCH 073/170] implement preview loading after upload --- apps/files/js/filelist.js | 5 +++-- apps/files/js/files.js | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index e19a35bbc5..11bf028d93 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -172,8 +172,9 @@ var FileList={ if (id != null) { tr.attr('data-id', id); } - getMimeIcon(mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = $('#dir').val()+'/'+name; + getPreviewIcon(path, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); tr.find('td.filename').draggable(dragOptions); }, diff --git a/apps/files/js/files.js b/apps/files/js/files.js index a79d34c9b2..224167b99c 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -513,8 +513,9 @@ $(document).ready(function() { var tr=$('tr').filterAttr('data-file',name); tr.attr('data-mime',result.data.mime); tr.attr('data-id', result.data.id); - getMimeIcon(result.data.mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = $('#dir').val()+'/'+name; + getPreviewIcon(path, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); } else { OC.dialogs.alert(result.data.message, t('core', 'Error')); @@ -577,8 +578,9 @@ $(document).ready(function() { var tr=$('tr').filterAttr('data-file',localName); tr.data('mime',mime).data('id',id); tr.attr('data-id', id); - getMimeIcon(mime,function(path){ - tr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = $('#dir').val()+'/'+localName; + getPreviewIcon(path, function(previewpath){ + tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); }); eventSource.listen('error',function(error){ @@ -769,8 +771,9 @@ var createDragShadow = function(event){ if (elem.type === 'dir') { newtr.find('td.filename').attr('style','background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')'); } else { - getMimeIcon(elem.mime,function(path){ - newtr.find('td.filename').attr('style','background-image:url('+path+')'); + var path = $('#dir').val()+'/'+elem.name; + getPreviewIcon(path, function(previewpath){ + newtr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); } }); @@ -956,6 +959,10 @@ function getMimeIcon(mime, ready){ } getMimeIcon.cache={}; +function getPreviewIcon(path, ready){ + ready(OC.Router.generate('core_ajax_preview', {file:path, x:44, y:44})); +} + function getUniqueName(name){ if($('tr').filterAttr('data-file',name).length>0){ var parts=name.split('.'); From 6e864e6599602609b5808ae4d043b273a9fe5071 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 2 Jul 2013 16:30:58 +0200 Subject: [PATCH 074/170] fix size of icons in 'new' dropdown menu - I hope @jancborchardt knows a better solution coz this won't work in most IE versions ... --- apps/files/templates/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index b576253f4f..c4a15c5fa6 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -6,9 +6,9 @@

t('New'));?>
    -
  • t('Text file'));?>

  • -
  • t('Folder'));?>

  • t('From link'));?>

  • From 04292ff16c56d85216ddbd6f644e8055413c0170 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 8 Jul 2013 10:53:53 +0200 Subject: [PATCH 075/170] implement use of preview icons in thrashbin app --- apps/files_trashbin/lib/trash.php | 4 +++ apps/files_trashbin/templates/part.list.php | 2 +- core/routes.php | 2 ++ lib/preview.php | 35 ++++++++++++++++++--- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index 7b8d3cb425..e82a597c61 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -850,4 +850,8 @@ class Trashbin { //Listen to delete user signal \OCP\Util::connectHook('OC_User', 'pre_deleteUser', "OCA\Files_Trashbin\Hooks", "deleteUser_hook"); } + + public static function preview_icon($path) { + return \OC_Helper::linkToRoute( 'core_ajax_trashbin_preview', array('x' => 44, 'y' => 44, 'file' => $path)); + } } diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php index 92a38bd263..d53e38549d 100644 --- a/apps/files_trashbin/templates/part.list.php +++ b/apps/files_trashbin/templates/part.list.php @@ -27,7 +27,7 @@ style="background-image:url()" - style="background-image:url()" + style="background-image:url()" > diff --git a/core/routes.php b/core/routes.php index 4b3ad53da0..41e82f8a73 100644 --- a/core/routes.php +++ b/core/routes.php @@ -44,6 +44,8 @@ $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); $this->create('core_ajax_preview', '/core/preview.png') ->action('OC\Preview', 'previewRouter'); +$this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png') + ->action('OC\Preview', 'trashbinPreviewRouter'); $this->create('core_ajax_public_preview', '/core/publicpreview.png') ->action('OC\Preview', 'publicPreviewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; diff --git a/lib/preview.php b/lib/preview.php index 87e2e78d1d..f12107c9f5 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -519,10 +519,6 @@ class Preview { $file = ''; $maxX = 0; $maxY = 0; - /* - * use: ?scalingup=0 / ?scalingup = 1 - * do not use ?scalingup=false / ?scalingup = true as these will always be true - */ $scalingup = true; if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); @@ -610,6 +606,37 @@ class Preview { } } + public static function trashbinPreviewRouter() { + if(!\OC_App::isEnabled('files_trashbin')){ + exit; + } + \OC_Util::checkLoggedIn(); + + $file = ''; + $maxX = 0; + $maxY = 0; + $scalingup = true; + + if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); + if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; + if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; + if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; + + if($file !== '' && $maxX !== 0 && $maxY !== 0) { + try{ + $preview = new Preview(\OC_User::getUser(), 'files_trashbin/files', $file, $maxX, $maxY, $scalingup); + $preview->showPreview(); + }catch(\Exception $e) { + \OC_Response::setStatus(404); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + exit; + } + }else{ + \OC_Response::setStatus(404); + exit; + } + } + public static function post_write($args) { self::post_delete($args); } From d699135c5e9cc56b7c3bcbb2263ffa5946b0b8b6 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 8 Jul 2013 15:14:25 +0200 Subject: [PATCH 076/170] fix for previews in trashbin app --- apps/files_trashbin/templates/part.list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php index d53e38549d..3f26086758 100644 --- a/apps/files_trashbin/templates/part.list.php +++ b/apps/files_trashbin/templates/part.list.php @@ -27,7 +27,7 @@ style="background-image:url()" - style="background-image:url()" + style="background-image:url()" > From 8eefaba719160eb92dcb6747b5e70b7e04736cea Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 9 Jul 2013 11:40:09 +0200 Subject: [PATCH 077/170] some style adjustments --- apps/files/css/files.css | 4 ++-- apps/files/templates/index.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 222cc9c83e..d7843ab353 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -19,9 +19,9 @@ background:#f8f8f8; border:1px solid #ddd; border-radius:10px; border-top-left-radius:0; box-shadow:0 2px 7px rgba(170,170,170,.4); } -#new>ul>li { height:20px; margin:.3em; padding-left:2em; padding-bottom:0.1em; +#new>ul>li { height:36px; margin:.3em; padding-left:3em; padding-bottom:0.1em; background-repeat:no-repeat; cursor:pointer; } -#new>ul>li>p { cursor:pointer; } +#new>ul>li>p { cursor:pointer; padding-top: 7px; padding-bottom: 7px;} #new>ul>li>form>input { padding:0.3em; margin:-0.3em; } #trash { height:17px; margin: 0 1em; z-index:1010; float: right; } diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index c4a15c5fa6..89e270fd14 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -6,11 +6,11 @@
    t('New'));?>
      -
    • t('Text file'));?>

    • -
    • t('Folder'));?>

    • -
    • t('From link'));?>

    From cf449d42e87b21dff0de35c394031c5fa28b56aa Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 11:25:28 +0200 Subject: [PATCH 078/170] properly encode path --- apps/files/js/files.js | 2 +- apps/files_trashbin/lib/trash.php | 2 +- lib/helper.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 224167b99c..06d193bf8f 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -960,7 +960,7 @@ function getMimeIcon(mime, ready){ getMimeIcon.cache={}; function getPreviewIcon(path, ready){ - ready(OC.Router.generate('core_ajax_preview', {file:path, x:44, y:44})); + ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:44, y:44})); } function getUniqueName(name){ diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index e82a597c61..fb99fca5b3 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -852,6 +852,6 @@ class Trashbin { } public static function preview_icon($path) { - return \OC_Helper::linkToRoute( 'core_ajax_trashbin_preview', array('x' => 44, 'y' => 44, 'file' => $path)); + return \OC_Helper::linkToRoute( 'core_ajax_trashbin_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path) )); } } diff --git a/lib/helper.php b/lib/helper.php index 0a8962a531..326f2567f9 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -231,7 +231,7 @@ class OC_Helper { * Returns the path to the preview of the file. */ public static function previewIcon($path) { - return self::linkToRoute( 'core_ajax_preview', array('x' => 44, 'y' => 44, 'file' => $path)); + return self::linkToRoute( 'core_ajax_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path) )); } /** From 832779804d36d27c47325d1dcce09e566c8cee60 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 12:18:17 +0200 Subject: [PATCH 079/170] add two new icons - for copyright see filetypes/readme-2.txt --- core/img/web.png | Bin 0 -> 4472 bytes core/img/web.svg | 183 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 core/img/web.png create mode 100644 core/img/web.svg diff --git a/core/img/web.png b/core/img/web.png new file mode 100644 index 0000000000000000000000000000000000000000..bdc2f4a84a53f20d2501f8addd72d299b6f098fc GIT binary patch literal 4472 zcmai12Q-}P)*iy>y|-YrQAdk1h7lQz&gen}VWN$}V3ZLPAzCC#5{clDq8(jCZxJne z2_b5PIC>4yF6W+m?z!i#`~Tls@Atjm-p{-Dv!AusUh9oDHP)r0=B5S!0Cajt1nT@N zaK0{60?*$@)V$&V0GY7+wQHt&*RBbe`uVuId$|GtDojz9Gd`0RtQxUCs8{T80UO=> zaUV)7&9B$+a2K@$^-^B1>9fCH9+wbafGWr4^H5AKR~49q5|x3+B$}TuF(6@rbU^3O z&-=}ldgk{f3iObn-`f}jMc2qJ=jsBT#mw96_kMmlcPo?4JwQbkd+lVATFArN*zmT^qlUHA3Xdy6h?~YH`~omCg7%*bR8XwSf_#0jGSeR;cLYMnm|fa=G+$rsm1(AYYFmSj5==zC^Ip{Zk4|zRlOblWsbJNIUpww4lyfvl z=a{`#>nOoCb(Pt`%|DYI^E+3p%JQIDUX?13r>{~Pv_MMIA<-6ir$*0E&D=o2Y0harCeJaCV`N6n;~tmV8)1S3LGlDl5FhHM#8Fpx7`+XZ-Xh~vWDo&n0LR)bKHMwBvD;2&rMy8Yb+(W1 z3grgczxehf4iC+Y6GO&s#GABr%qx(-%d9`RaUfdy=F;A23X3chI_oWEDAK7gp8@r? z(%z-Ur4RHvgac>jbMy)WKPh#yS${4mC=sU$>#mk}7}dSc)~m?Y{|&4ZRNc@T|5CUy z5|sG;>hw{gcHk7P_xg3j{j*lJ6|39V^H>OLjC)Po6VaQ-VT%em@f3Tt4f9Jckqf{i zb7<+z5#O@G{1oopAU@)UWxp6gjbEAjtXP>_%@K6QKIpmww*~m(y?7*9&c_B77HR8$ zK2OFj7Ks)(9S;DI2Dw|<;B1Txp)Nk&GETRAoLyz`-q>?A006^7&$r&LI41$Tw-?4A zidP5yj)0!;FU$~-!0!;8r#i^S$W-8(kDsf+6&X1hd5{LRfPetZ@0J@Bh0yuq`1zkY z=r#_Ag+d@fK|wM>3Nk)^Xo#GuswzZQ9wIL#2f;gGA#yUZkUt}zAB3IP2)*X# z>V)(0v+(ip(zu}Jj`8$&al*P@5QIVgj`$-b406HaFT8#)`Xc1t?EfEMoV(kWJv4Bme+)kRIZy1(GhnIyAvzl<#zE=}XPdmuC+9 zvA@#9d<0FBJLZYdFv-2)o}`S{${8ig8?9{g_Uy*E2v2bG6uD2dRW9@2&VK9eO-YU# z$dfJyzNK-nxiv^=?puciqSrHyG*0@a_^w@7#r|mQQ=bWHoCykVQXq9nkQw`Vbo9ZY zE|C2AB>I$KJ+QhEkZnr znIC(5B=g$>t=0`JWXzQH2WNdgC*V-arDR=D0oDD+bDVM{~s7i{8C4xV68 z3~QN@#FD5O+P?;#siu5T!P4}ZaM?i*z@!9c3curi1Sci^*?&I3_9Gp?Ja+dan7Qqj zKl6)nLx_}G8l`b_3v`r`jg^U4{qoo@q^T>%BSEnr?QYAs=MgKx(IFO}QgeC&!JLUu z)bqxkftu0uWvyvmVXJS&QmEEc#ixEreA?3-H<}dDqWvsyx62GwVXKeZe)wV)p z6ny7p>i+$!rg%a{q9lg_lir)-0}jYi(fIJCrit}%HY(a6J(_H$4c!~zib?wQD(3k^ zl`e<+wO5CR-IGyzeh*09rPnNirtDBFJYcN7pTDZ}Cn?)3h9u<>{ag9$(EVw%CYL!a z@pNOj#G@|V@E7;5YSxXgIMZeFL>n}PFRiOtScYi8gOmI`JQ?*q8GIm~SZF9Ci4W3N z^tyLl!Il!2W&Pm&af7cV$R$$9u#UiFaI zvhO7QORM6~e$&~XY4k!Jfp@iwq@ATQW%WOF)A6q#E_d~&D;tFVSl6b=F(n$ME8SnZ zg}T#8alo;pOR93Ue8TSVMk$T$7j&>cc%36FeF6(8T%0Oh7$ zQpu#SX?Vn{z$hkTznf9O7VpuT!dnTv%sksZ%V6al{E9qn=9xHam!fp1s1tyg^B`Wl zW+4RSY@00Xefi7FWLQCiu}qqQrG zMetK@ip6R{qLG-1^Eaktsi8I1PbeJiBQnHH71BuA++*2DSnQ?}ym^%`tuM>Gr8OWg z!X)|E$eYn&6%0Of)zWHttd&sy8vdx7t)WN1WSwsHjER;LUG1~8c|)%A!tWw zr(B_MD?L)f4M?r~SiHkw&9Vy-$CW}Jkkec{_blkW1~0_uOa(u>Ev3kZ-rutKQV z<5;@16H6u7;_?z0^mP+gw-4edjjAzI(3)i1fVRqU>BMQ?+t1uOznTjV(~1)#u`yq; z^2||`mq^nhBU|@+)J*B6pX90bS-&%5x79z1V9* zXqXe@Gu*yzW%uGqe$Rrbi)wN!8Aw1bF)BZW)yG5WLD=)c=J))};FD!bGmBv=RI&v$ zAf~6w$yviuC+4!ULNh5xbmUhqvF3jKBDd={V-P;W;+QWDJk*e`JXkT)@D!(J;uZ{~ z>TZ_kc7_=u^ll=h*Ct2F#G0=oXInY7#Fs6LvT2GPuikjA+2@s6P{UOIMt5#e0;su` zPEnF^SW%;*7L%rX5Aoq^!&VjDZnpx1X*$MS@D35dD&63#+BFE=_8NY~+Cn|JC1&`+ zHf&v`Q|TsGzGufoU$QwT1<_oVMW`s;>^4$7r(gUMBZ(l>Yw&Wf15&f&QJNz29vSmP zBjhdIWHjBY0txjWJ2OLF_Rs9tuP7|m+(q-KewKNvLL@ji3~+i!$UO~i&kcX8so^Hs zEth7f^F>_>6e|Um3*F~jP|^}v)S7=;@<3|@(e=Sod~hqk!^=UBqz4^|AWv-iwwRv3 zu|@Iyr?#AYoA9+m#AWde$y|-3OntA1A@%2MUs|fo#hbd{s z5Shf(OjkWtRJiMXvzBAEZ~?ZC_dbaGaFgD;nMg#V(fPS(HuaND_TN7Bn^U=flg~=# zPI?xr>%mdfSW-|hKZTWyNur?qq;n@M`%8~5BO^BkS%P}C-FbhZ$MF3<8^0^&&h7RO z2J(@;?l;=ZMGY!i$5-%aE5dE{~9|c%-(RHRaLTUP}2ayUNmpp#wN@N zTztP~vym-vS3?*JPDKn5uEDB;9 zEdT;e9k&&`--8sDm5xD z3{})2Z{BulG_b3Uymf_yv|=uVLGNbRWl9n<8{|!6l164w66FXDa#)d@hsS^Cu$~ka zD`{?RJyz%Ut^278I4eFzldAScN!p^~Hw_+qabx6sa{X*z^k=dvCU6M5VRp3bJT|-j z0Mkfbon;$)p; zibBdL*`6e^$>K(TdsHMv*TeWE8%Zh+FRP+^-xEw+8hb|(u~gu>;-ws&E?QAmdR`bp z**-|xwZgW_`2%(E$0yRgq5G@B@AmoN@i9zib3_<4$ReJl>WQ&|#nlWh{1G{%lt0yc z>yB(Tx9m)6n)L_yE94_q3&9GS#poU-vc+dP-)wV)yTS@ZcvUvvm7O}kmwC9j#C^$= zyMzORf@T<|3lER@)B?d_{7|1(#$yAKUs18zFS*`!8!D;d4+K6e+qfJRt$afsvlB;* ziK+C+%PiXDEP$Y6{jG-CU!@HDIoVu#TOuinrs}fJ1S6(3!jJJ|L$3{#NygV!S9>s1 zwE;YtcSeSW=64(&1WEFmTMmKQZ=z8}?7VRuqqmg`Ep`sM7=u{|;aOgF1rA16uIP=k zzsECi4w#Y7Tt3>(${qU=ID_BK2>O(en7GZiIe9J$4Lu)pw{Eo1`p%^>GmJjx2K{V3 zS!bC6o8}!(CmCLPbo}*u*&s_vHm)a+Su$l598%mm`e=v8p9$74-BR_925CZI!e*L+!zc%?$%C>xgzR>~l^kZ0ITNBOoYN3KD`*m8ax2e*m)=v>S zk>m5J+A~3Awy5!YdF6qstvWi1_gtT#s|iQ@zIVe=UTYI?KZb^cOb-M!9Ja->Fz~Bj fZ$jD^##iAE!=tD$;plG{cO5-#V??pm&Aa~qFUaxB literal 0 HcmV?d00001 diff --git a/core/img/web.svg b/core/img/web.svg new file mode 100644 index 0000000000..bc6c6bde65 --- /dev/null +++ b/core/img/web.svg @@ -0,0 +1,183 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 45d16916718ea103b371da9c7bef0385717d8cef Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 13:38:42 +0200 Subject: [PATCH 080/170] fix orientation before caching preview --- lib/preview.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index f12107c9f5..6173fc8aa6 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -332,7 +332,7 @@ class Preview { $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); - if(!$preview) { + if(!($preview instanceof \OC_Image)) { continue; } @@ -346,6 +346,8 @@ class Preview { if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/') === false) { $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); } + + $preview->fixOrientation(); $this->userview->file_put_contents($cachepath, $preview->data()); break; @@ -382,8 +384,6 @@ class Preview { * @return image */ public function resizeAndCrop() { - $this->preview->fixOrientation(); - $image = $this->preview; $x = $this->maxX; $y = $this->maxY; From 7091d7a6d2c495901383d89aaa0030366bf61d02 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 17:57:04 +0200 Subject: [PATCH 081/170] clean up oc\preview --- lib/preview.php | 305 +++++++++++++++++++++++++++++------------------- 1 file changed, 183 insertions(+), 122 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 6173fc8aa6..8ecad15915 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -23,7 +23,7 @@ require_once('preview/unknown.php'); require_once('preview/office.php'); class Preview { - //the thumbnail folder + //the thumbnail folder const THUMBNAILS_FOLDER = 'thumbnails'; //config @@ -50,7 +50,7 @@ class Preview { /** * @brief check if thumbnail or bigger version of thumbnail of file is cached - * @param $user userid + * @param $user userid - if no user is given, OC_User::getUser will be used * @param $root path of root * @param $file The path to the file where you want a thumbnail from * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image @@ -59,73 +59,35 @@ class Preview { * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - public function __construct($user=null, $root='', $file='', $maxX=0, $maxY=0, $scalingup=true, $force=false) { + public function __construct($user='', $root='/', $file='', $maxX=1, $maxY=1, $scalingup=true) { //set config $this->max_x = \OC_Config::getValue('preview_max_x', null); $this->max_y = \OC_Config::getValue('preview_max_y', null); $this->max_scale_factor = \OC_Config::getValue('preview_max_scale_factor', 10); //save parameters - $this->file = $file; - $this->maxX = $maxX; - $this->maxY = $maxY; - $this->scalingup = $scalingup; + $this->setFile($file); + $this->setMaxX($maxX); + $this->setMaxY($maxY); + $this->setScalingUp($scalingup); //init fileviews + if($user === ''){ + $user = OC_User::getUser(); + } $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); $this->userview = new \OC\Files\View('/' . $user); + + $this->preview = null; - if($force !== true) { - if(!is_null($this->max_x)) { - if($this->maxX > $this->max_x) { - \OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, \OC_Log::DEBUG); - $this->maxX = $this->max_x; - } - } + //check if there are preview backends + if(empty(self::$providers)) { + self::initProviders(); + } - if(!is_null($this->max_y)) { - if($this->maxY > $this->max_y) { - \OC_Log::write('core', 'maxY reduced from ' . $this->maxY . ' to ' . $this->max_y, \OC_Log::DEBUG); - $this->maxY = $this->max_y; - } - } - - $fileinfo = $this->fileview->getFileInfo($this->file); - if(array_key_exists('size', $fileinfo)){ - if((int) $fileinfo['size'] === 0){ - \OC_Log::write('core', 'You can\'t generate a preview of a 0 byte file (' . $this->file . ')', \OC_Log::ERROR); - throw new \Exception('0 byte file given'); - } - } - - //init providers - if(empty(self::$providers)) { - self::initProviders(); - } - - //check if there are any providers at all - if(empty(self::$providers)) { - \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); - throw new \Exception('No providers'); - } - - //validate parameters - if($file === '') { - \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); - throw new \Exception('File not found'); - } - - //check if file exists - if(!$this->fileview->file_exists($file)) { - \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); - throw new \Exception('File not found'); - } - - //check if given size makes sense - if($maxX === 0 || $maxY === 0) { - \OC_Log::write('core', 'Can not create preview with 0px width or 0px height', \OC_Log::ERROR); - throw new \Exception('Height and/or width set to 0'); - } + if(empty(self::$providers)) { + \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); + throw new \Exception('No preview providers'); } } @@ -165,7 +127,7 @@ class Preview { * @brief returns the name of the thumbnailfolder * @return string */ - public function getThumbnailsfolder() { + public function getThumbnailsFolder() { return self::THUMBNAILS_FOLDER; } @@ -193,16 +155,97 @@ class Preview { return $this->max_y; } + /** + * @brief set the path of the file you want a thumbnail from + * @return $this + */ + public function setFile($file) { + $this->file = $file; + return $this; + } + + /** + * @brief set the the max width of the preview + * @return $this + */ + public function setMaxX($maxX=1) { + if($maxX === 0) { + throw new \Exception('Cannot set width of 0!'); + } + $configMaxX = $this->getConfigMaxX(); + if(!is_null($configMaxX)) { + if($maxX > $configMaxX) { + \OC_Log::write('core', 'maxX reduced from ' . $maxX . ' to ' . $configMaxX, \OC_Log::DEBUG); + $maxX = $configMaxX; + } + } + $this->maxX = $maxX; + return $this; + } + + /** + * @brief set the the max height of the preview + * @return $this + */ + public function setMaxY($maxY=1) { + if($maxY === 0) { + throw new \Exception('Cannot set height of 0!'); + } + $configMaxY = $this->getConfigMaxY(); + if(!is_null($configMaxY)) { + if($maxY > $configMaxY) { + \OC_Log::write('core', 'maxX reduced from ' . $maxY . ' to ' . $configMaxY, \OC_Log::DEBUG); + $maxY = $configMaxY; + } + } + $this->maxY = $maxY; + return $this; + } + + /** + * @brief set whether or not scalingup is enabled + * @return $this + */ + public function setScalingup($scalingup) { + if($this->getMaxScaleFactor() === 1) { + $scalingup = false; + } + $this->scalingup = $scalingup; + return $this; + } + + /** + * @brief check if all parameters are valid + * @return integer + */ + public function isFileValid() { + $file = $this->getFile(); + if($file === '') { + \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); + return false; + } + + if(!$this->fileview->file_exists($file)) { + \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); + return false; + } + + return true; + } + /** * @brief deletes previews of a file with specific x and y * @return bool */ public function deletePreview() { - $fileinfo = $this->fileview->getFileInfo($this->file); + $file = $this->getFile(); + + $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; - $this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png'); - return; + $previepath = $this->getThumbnailsFolder() . '/' . $fileid . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; + $this->userview->unlink($previepath); + return $this->userview->file_exists($previepath); } /** @@ -210,12 +253,15 @@ class Preview { * @return bool */ public function deleteAllPreviews() { - $fileinfo = $this->fileview->getFileInfo($this->file); - $fileid = $fileinfo['fileid']; + $file = $this->getFile(); - $this->userview->deleteAll(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); - $this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); - return; + $fileinfo = $this->fileview->getFileInfo($file); + $fileid = $fileinfo['fileid']; + + $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; + $this->userview->deleteAll($previewpath); + $this->userview->rmdir($previewpath); + return $this->userview->is_dir($previepath); } /** @@ -225,21 +271,23 @@ class Preview { * path to thumbnail if thumbnail exists */ private function isCached() { - $file = $this->file; - $maxX = $this->maxX; - $maxY = $this->maxY; - $scalingup = $this->scalingup; + $file = $this->getFile(); + $maxX = $this->getMaxX(); + $maxY = $this->getMaxY(); + $scalingup = $this->getScalingup(); + $maxscalefactor = $this->getMaxScaleFactor(); $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; - if(!$this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid)) { + $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; + if(!$this->userview->is_dir($previewpath)) { return false; } //does a preview with the wanted height and width already exist? - if($this->userview->file_exists(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png')) { - return self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; + if($this->userview->file_exists($previewpath . $maxX . '-' . $maxY . '.png')) { + return $previewpath . $maxX . '-' . $maxY . '.png'; } $wantedaspectratio = $maxX / $maxY; @@ -247,7 +295,7 @@ class Preview { //array for usable cached thumbnails $possiblethumbnails = array(); - $allthumbnails = $this->userview->getDirectoryContent(self::THUMBNAILS_FOLDER . '/' . $fileid); + $allthumbnails = $this->userview->getDirectoryContent($previewpath); foreach($allthumbnails as $thumbnail) { $size = explode('-', $thumbnail['name']); $x = $size[0]; @@ -261,7 +309,7 @@ class Preview { if($x < $maxX || $y < $maxY) { if($scalingup) { $scalefactor = $maxX / $x; - if($scalefactor > $this->max_scale_factor) { + if($scalefactor > $maxscalefactor) { continue; } }else{ @@ -307,22 +355,28 @@ class Preview { * @return image */ public function getPreview() { - $file = $this->file; - $maxX = $this->maxX; - $maxY = $this->maxY; - $scalingup = $this->scalingup; + if(!is_null($this->preview) && $this->preview->valid()){ + return $this->preview; + } + + $this->preview = null; + $file = $this->getFile(); + $maxX = $this->getMaxX(); + $maxY = $this->getMaxY(); + $scalingup = $this->getScalingup(); $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; - $cached = self::isCached(); + $cached = $this->isCached(); if($cached) { $image = new \OC_Image($this->userview->file_get_contents($cached, 'r')); - $this->preview = $image; - }else{ - $mimetype = $this->fileview->getMimeType($file); + $this->preview = $image->valid() ? $image : null; + } + if(is_null($this->preview)) { + $mimetype = $this->fileview->getMimeType($file); $preview = null; foreach(self::$providers as $supportedmimetype => $provider) { @@ -336,35 +390,35 @@ class Preview { continue; } - //are there any cached thumbnails yet - if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/') === false) { - $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/'); + $this->preview = $preview; + $this->resizeAndCrop(); + + $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; + $cachepath = $previewpath . $maxX . '-' . $maxY . '.png'; + + if($this->userview->is_dir($this->getThumbnailsFolder() . '/') === false) { + $this->userview->mkdir($this->getThumbnailsFolder() . '/'); } - //cache thumbnail - $cachepath = self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $maxX . '-' . $maxY . '.png'; - if($this->userview->is_dir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/') === false) { - $this->userview->mkdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/'); + if($this->userview->is_dir($previewpath) === false) { + $this->userview->mkdir($previewpath); } - $preview->fixOrientation(); $this->userview->file_put_contents($cachepath, $preview->data()); break; } - - if(is_null($preview) || $preview === false) { - $preview = new \OC_Image(); - } - - $this->preview = $preview; } - $this->resizeAndCrop(); + + if(is_null($this->preview)) { + $this->preview = new \OC_Image(); + } + return $this->preview; } /** - * @brief return a preview of a file + * @brief show preview * @param $file The path to the file where you want a thumbnail from * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image @@ -372,67 +426,74 @@ class Preview { * @return void */ public function showPreview() { - \OCP\Response::enableCaching(3600 * 24); // 24 hour - $preview = $this->getPreview(); - if($preview) { - $preview->show(); + \OCP\Response::enableCaching(3600 * 24); // 24 hours + if(is_null($this->preview)) { + $this->getPreview(); } + $this->preview->show(); } /** * @brief resize, crop and fix orientation * @return image */ - public function resizeAndCrop() { + private function resizeAndCrop() { $image = $this->preview; - $x = $this->maxX; - $y = $this->maxY; - $scalingup = $this->scalingup; + $x = $this->getMaxX(); + $y = $this->getMaxY(); + $scalingup = $this->getScalingup(); + $maxscalefactor = $this->getMaxScaleFactor(); if(!($image instanceof \OC_Image)) { - \OC_Log::write('core', 'Object passed to resizeAndCrop is not an instance of OC_Image', \OC_Log::DEBUG); + \OC_Log::write('core', '$this->preview is not an instance of OC_Image', \OC_Log::DEBUG); return; } + $image->fixOrientation(); + $realx = (int) $image->width(); $realy = (int) $image->height(); if($x === $realx && $y === $realy) { - return $image; + $this->preview = $image; + return true; } $factorX = $x / $realx; $factorY = $y / $realy; - + if($factorX >= $factorY) { $factor = $factorX; }else{ $factor = $factorY; } - - // only scale up if requested + if($scalingup === false) { - if($factor>1) $factor=1; - } - if(!is_null($this->max_scale_factor)) { - if($factor > $this->max_scale_factor) { - \OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $this->max_scale_factor, \OC_Log::DEBUG); - $factor = $this->max_scale_factor; + if($factor > 1) { + $factor = 1; } } - $newXsize = $realx * $factor; - $newYsize = $realy * $factor; - // resize + if(!is_null($maxscalefactor)) { + if($factor > $maxscalefactor) { + \OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $maxscalefactor, \OC_Log::DEBUG); + $factor = $maxscalefactor; + } + } + + $newXsize = (int) ($realx * $factor); + $newYsize = (int) ($realy * $factor); + $image->preciseResize($newXsize, $newYsize); - if($newXsize === $x && $newYsize === $y) { + if($newXsize == $x && $newYsize === $y) { $this->preview = $image; return; } if($newXsize >= $x && $newYsize >= $y) { $cropX = floor(abs($x - $newXsize) * 0.5); + //don't crop previews on the Y axis, this sucks if it's a document. //$cropY = floor(abs($y - $newYsize) * 0.5); $cropY = 0; From f14b0fa6e0dfad28f2f6573ec517019ac12342cf Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 18:01:04 +0200 Subject: [PATCH 082/170] update some comments in preview lib --- lib/preview.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 8ecad15915..0a8ab43836 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -348,10 +348,6 @@ class Preview { /** * @brief return a preview of a file - * @param $file The path to the file where you want a thumbnail from - * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image - * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image - * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return image */ public function getPreview() { @@ -419,10 +415,6 @@ class Preview { /** * @brief show preview - * @param $file The path to the file where you want a thumbnail from - * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image - * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image - * @param $scaleup Scale smaller images up to the thumbnail size or not. Might look ugly * @return void */ public function showPreview() { @@ -431,6 +423,7 @@ class Preview { $this->getPreview(); } $this->preview->show(); + return; } /** @@ -486,7 +479,7 @@ class Preview { $image->preciseResize($newXsize, $newYsize); - if($newXsize == $x && $newYsize === $y) { + if($newXsize === $x && $newYsize === $y) { $this->preview = $image; return; } From 5c31b843fc62b2be43d85ca680eeffa3e6f292dd Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 10 Jul 2013 18:04:13 +0200 Subject: [PATCH 083/170] fix typo --- lib/preview.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 0a8ab43836..f018fa3885 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -243,9 +243,9 @@ class Preview { $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; - $previepath = $this->getThumbnailsFolder() . '/' . $fileid . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; - $this->userview->unlink($previepath); - return $this->userview->file_exists($previepath); + $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; + $this->userview->unlink($previewpath); + return $this->userview->file_exists($previewpath); } /** @@ -261,7 +261,7 @@ class Preview { $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; $this->userview->deleteAll($previewpath); $this->userview->rmdir($previewpath); - return $this->userview->is_dir($previepath); + return $this->userview->is_dir($previewpath); } /** From 7f71ae60b0fefe697aa9da2cda40853736df0580 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 10:10:07 +0200 Subject: [PATCH 084/170] improve validation of oc\preview and implement preview of error icon if something went wrong --- lib/preview.php | 249 ++++++++++++++++++++++++++++++------------------ 1 file changed, 156 insertions(+), 93 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index f018fa3885..94e0cd96e7 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -426,6 +426,14 @@ class Preview { return; } + /** + * @brief show preview + * @return void + */ + public function show() { + return $this->showPreview(); + } + /** * @brief resize, crop and fix orientation * @return image @@ -567,30 +575,40 @@ class Preview { * @brief method that handles preview requests from users that are logged in * @return void */ - public static function previewRouter($params) { + public static function previewRouter() { \OC_Util::checkLoggedIn(); - $file = ''; - $maxX = 0; - $maxY = 0; - $scalingup = true; + $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; + $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; + $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; + $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; - if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); - if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; - if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; - if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; + if($file === '') { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } - if($file !== '' && $maxX !== 0 && $maxY !== 0) { - try{ - $preview = new Preview(\OC_User::getUser(), 'files', $file, $maxX, $maxY, $scalingup); - $preview->showPreview(); - }catch(\Exception $e) { - \OC_Response::setStatus(404); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - exit; - } - }else{ - \OC_Response::setStatus(404); + if($maxX === 0 || $maxY === 0) { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } + + try{ + $preview = new Preview(\OC_User::getUser(), 'files'); + $preview->setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingup); + + $preview->show(); + }catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + self::showErrorPreview(); exit; } } @@ -599,94 +617,132 @@ class Preview { * @brief method that handles preview requests from users that are not logged in / view shared folders that are public * @return void */ - public static function publicPreviewRouter($params) { - $file = ''; - $maxX = 0; - $maxY = 0; - $scalingup = true; - $token = ''; - - $user = null; - $path = null; - - if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); - if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; - if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; - if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; - if(array_key_exists('t', $_GET)) $token = (string) $_GET['t']; - - $linkItem = \OCP\Share::getShareByToken($token); - - if (is_array($linkItem) && isset($linkItem['uid_owner']) && isset($linkItem['file_source'])) { - $userid = $linkItem['uid_owner']; - \OC_Util::setupFS($userid); - - $pathid = $linkItem['file_source']; - $path = \OC\Files\Filesystem::getPath($pathid); - $pathinfo = \OC\Files\Filesystem::getFileInfo($path); - - $sharedfile = null; - if($linkItem['item_type'] === 'folder') { - //clean up file parameter - $sharedfile = \OC\Files\Filesystem::normalizePath($file); - if(!\OC\Files\Filesystem::isValidPath($file)) { - \OC_Response::setStatus(403); - exit; - } - } else if($linkItem['item_type'] === 'file') { - $parent = $pathinfo['parent']; - $path = \OC\Files\Filesystem::getPath($parent); - $sharedfile = $pathinfo['name']; - } - - $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) == '/') { - $path = substr($path, 1); - } + public static function publicPreviewRouter() { + if(!\OC_App::isEnabled('files_sharing')){ + exit; } - if($userid !== null && $path !== null && $sharedfile !== null) { - try{ - $preview = new Preview($userid, 'files/' . $path, $sharedfile, $maxX, $maxY, $scalingup); - $preview->showPreview(); - }catch(\Exception $e) { - \OC_Response::setStatus(404); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; + $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; + $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; + $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; + $token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : ''; + + if($token === ''){ + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'No token parameter was passed', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } + + $linkedItem = \OCP\Share::getShareByToken($token); + if($linkedItem === false || ($linkedItem['item_type'] !== 'file' && $linkedItem['item_type'] !== 'folder')) { + \OC_Response::setStatus(404); + \OC_Log::write('core-preview', 'Passed token parameter is not valid', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } + + if(!isset($linkedItem['uid_owner']) || !isset($linkedItem['file_source'])) { + \OC_Response::setStatus(500); + \OC_Log::write('core-preview', 'Passed token seems to be valid, but it does not contain all necessary information . ("' . $token . '")'); + self::showErrorPreview(); + exit; + } + + $userid = $linkedItem['uid_owner']; + \OC_Util::setupFS($userid); + + $pathid = $linkedItem['file_source']; + $path = \OC\Files\Filesystem::getPath($pathid); + $pathinfo = \OC\Files\Filesystem::getFileInfo($path); + $sharedfile = null; + + if($linkedItem['item_type'] === 'folder') { + $isvalid = \OC\File\Filesystem::isValidPath($file); + if(!$isvalid) { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'Passed filename is not valid, might be malicious (file:"' . $file . '";ip:"' . $_SERVER['REMOTE_ADDR'] . '")', \OC_Log::WARN); + self::showErrorPreview(); exit; } - }else{ - \OC_Response::setStatus(404); + $sharedfile = \OC\Files\Filesystem::normalizePath($file); + } + + if($linkedItem['item_type'] === 'file') { + $parent = $pathinfo['parent']; + $path = \OC\Files\Filesystem::getPath($parent); + $sharedfile = $pathinfo['name']; + } + + $path = \OC\Files\Filesystem::normalizePath($path, false); + if(substr($path, 0, 1) == '/') { + $path = substr($path, 1); + } + + if($maxX === 0 || $maxY === 0) { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } + + $root = 'files/' . $path; + + try{ + $preview = new Preview($userid, $path); + $preview->setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingup); + + $preview->show(); + }catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + self::showErrorPreview(); exit; } } public static function trashbinPreviewRouter() { + \OC_Util::checkLoggedIn(); + if(!\OC_App::isEnabled('files_trashbin')){ exit; } - \OC_Util::checkLoggedIn(); - $file = ''; - $maxX = 0; - $maxY = 0; - $scalingup = true; + $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; + $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; + $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; + $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; - if(array_key_exists('file', $_GET)) $file = (string) urldecode($_GET['file']); - if(array_key_exists('x', $_GET)) $maxX = (int) $_GET['x']; - if(array_key_exists('y', $_GET)) $maxY = (int) $_GET['y']; - if(array_key_exists('scalingup', $_GET)) $scalingup = (bool) $_GET['scalingup']; + if($file === '') { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } - if($file !== '' && $maxX !== 0 && $maxY !== 0) { - try{ - $preview = new Preview(\OC_User::getUser(), 'files_trashbin/files', $file, $maxX, $maxY, $scalingup); - $preview->showPreview(); - }catch(\Exception $e) { - \OC_Response::setStatus(404); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - exit; - } - }else{ - \OC_Response::setStatus(404); + if($maxX === 0 || $maxY === 0) { + \OC_Response::setStatus(400); //400 Bad Request + \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); + self::showErrorPreview(); + exit; + } + + try{ + $preview = new Preview(\OC_User::getUser(), 'files_trashbin/files'); + $preview->setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingup); + + $preview->showPreview(); + }catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + self::showErrorPreview(); exit; } } @@ -703,4 +759,11 @@ class Preview { $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); $preview->deleteAllPreviews(); } + + private static function showErrorPreview() { + $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; + $preview = new \OC_Image($path); + $preview->preciseResize(44, 44); + $preview->show(); + } } \ No newline at end of file From 4bbbba1dc8288462881d9bfdf979b3f207572d2e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 11:43:53 +0200 Subject: [PATCH 085/170] fix typo --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 94e0cd96e7..5b2ee2cddd 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -659,7 +659,7 @@ class Preview { $sharedfile = null; if($linkedItem['item_type'] === 'folder') { - $isvalid = \OC\File\Filesystem::isValidPath($file); + $isvalid = \OC\Files\Filesystem::isValidPath($file); if(!$isvalid) { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'Passed filename is not valid, might be malicious (file:"' . $file . '";ip:"' . $_SERVER['REMOTE_ADDR'] . '")', \OC_Log::WARN); From 06eca985ce493bba65293003bd52aed10566c6d6 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 11:57:19 +0200 Subject: [PATCH 086/170] use $root instead of $path --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 5b2ee2cddd..62bcf4873b 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -690,7 +690,7 @@ class Preview { $root = 'files/' . $path; try{ - $preview = new Preview($userid, $path); + $preview = new Preview($userid, $root); $preview->setFile($file); $preview->setMaxX($maxX); $preview->setMaxY($maxY); From 53830f2f751151d2d326b253471e63d9b1cf8eb1 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 11:58:52 +0200 Subject: [PATCH 087/170] implement use of previews in sharing app --- apps/files/index.php | 1 + apps/files/templates/part.list.php | 9 ++++++++- apps/files_sharing/public.php | 3 +++ lib/helper.php | 4 ++++ lib/public/template.php | 10 ++++++++++ lib/template.php | 4 ++++ 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/apps/files/index.php b/apps/files/index.php index 2338cf439e..156febd87f 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -95,6 +95,7 @@ $list->assign('files', $files); $list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir='); $list->assign('downloadURL', OCP\Util::linkToRoute('download', array('file' => '/'))); $list->assign('disableSharing', false); +$list->assign('isPublic', false); $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb); $breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir='); diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 38d1314392..9e62c99197 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -30,7 +30,14 @@ $totalsize = 0; ?> style="background-image:url()" - style="background-image:url()" + + + style="background-image:url()" + + style="background-image:url()" + > diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 9462844a82..0c4150f74d 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -191,6 +191,9 @@ if (isset($path)) { $list->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path='); $list->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path='); + $list->assign('isPublic', true); + $list->assign('sharingtoken', $token); + $list->assign('sharingroot', ($path)); $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb); $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path='); diff --git a/lib/helper.php b/lib/helper.php index 856dba625b..6153f31872 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -234,6 +234,10 @@ class OC_Helper { return self::linkToRoute( 'core_ajax_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path) )); } + public static function publicPreview_icon( $path, $token ) { + return self::linkToRoute( 'core_ajax_public_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path), 't' => $token)); + } + /** * @brief Make a human file size * @param int $bytes file size in bytes diff --git a/lib/public/template.php b/lib/public/template.php index 5f9888f9f2..69997ad42b 100644 --- a/lib/public/template.php +++ b/lib/public/template.php @@ -64,6 +64,16 @@ function preview_icon( $path ) { return(\preview_icon( $path )); } +/** + * @brief make publicpreview_icon available as a simple function + * Returns the path to the preview of the image. + * @param $path path of file + * @returns link to the preview + */ +function publicPreview_icon ( $path, $token ) { + return(\publicPreview_icon( $path, $token )); +} + /** * @brief make OC_Helper::humanFileSize available as a simple function * Makes 2048 to 2 kB. diff --git a/lib/template.php b/lib/template.php index 048d172f1c..842c332535 100644 --- a/lib/template.php +++ b/lib/template.php @@ -74,6 +74,10 @@ function preview_icon( $path ) { return OC_Helper::previewIcon( $path ); } +function publicPreview_icon ( $path, $token ) { + return OC_Helper::publicPreview_icon( $path, $token ); +} + /** * @brief make OC_Helper::mimetypeIcon available as a simple function * @param string $mimetype mimetype From ec75e1904d9d4c77d1a6c1c656e7deeae07a8804 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 12:28:41 +0200 Subject: [PATCH 088/170] make jenkins happy --- lib/preview/unknown.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index 4e1ca7de74..a31b365722 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -22,7 +22,11 @@ class Unknown extends Provider { $iconsroot = \OC::$SERVERROOT . '/core/img/filetypes/'; - $icons = array($mimetype, $type, 'text'); + if(isset($type)){ + $icons = array($mimetype, $type, 'text'); + }else{ + $icons = array($mimetype, 'text'); + } foreach($icons as $icon) { $icon = str_replace('/', '-', $icon); From 89554bd917f9cbc7d16cc31b754a47d9f942b0b1 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 13:39:10 +0200 Subject: [PATCH 089/170] it's setValue not getValue, damn type --- tests/lib/preview.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/lib/preview.php b/tests/lib/preview.php index 2599da400c..c4894f848f 100644 --- a/tests/lib/preview.php +++ b/tests/lib/preview.php @@ -74,8 +74,8 @@ class Preview extends \PHPUnit_Framework_TestCase { $maxX = 250; $maxY = 250; - \OC_Config::getValue('preview_max_x', $maxX); - \OC_Config::getValue('preview_max_y', $maxY); + \OC_Config::setValue('preview_max_x', $maxX); + \OC_Config::setValue('preview_max_y', $maxY); $rootView = new \OC\Files\View(''); $rootView->mkdir('/'.$user); @@ -87,7 +87,10 @@ class Preview extends \PHPUnit_Framework_TestCase { $preview = new \OC\Preview($user, 'files/', 'test.txt', 1000, 1000); $image = $preview->getPreview(); - + + var_dump($image->width()); + var_dump($image->height()); + $this->assertEquals($image->width(), $maxX); $this->assertEquals($image->height(), $maxY); } From 7f3dbb6936cded830cbbf135f887a84ebd50b77c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 13:41:09 +0200 Subject: [PATCH 090/170] remove debug code ... --- tests/lib/preview.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/lib/preview.php b/tests/lib/preview.php index c4894f848f..bebdc12b50 100644 --- a/tests/lib/preview.php +++ b/tests/lib/preview.php @@ -87,10 +87,7 @@ class Preview extends \PHPUnit_Framework_TestCase { $preview = new \OC\Preview($user, 'files/', 'test.txt', 1000, 1000); $image = $preview->getPreview(); - - var_dump($image->width()); - var_dump($image->height()); - + $this->assertEquals($image->width(), $maxX); $this->assertEquals($image->height(), $maxY); } From 7b2aa5d830efeea7e68a71ddc33bc6e9add1409d Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 19:03:21 +0200 Subject: [PATCH 091/170] OC\Preview - use camelCase --- lib/preview.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 62bcf4873b..327a45d8d1 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -27,9 +27,9 @@ class Preview { const THUMBNAILS_FOLDER = 'thumbnails'; //config - private $max_scale_factor; - private $max_x; - private $max_y; + private $maxScaleFactor; + private $configMaxX; + private $configMaxY; //fileview object private $fileview = null; @@ -61,9 +61,9 @@ class Preview { */ public function __construct($user='', $root='/', $file='', $maxX=1, $maxY=1, $scalingup=true) { //set config - $this->max_x = \OC_Config::getValue('preview_max_x', null); - $this->max_y = \OC_Config::getValue('preview_max_y', null); - $this->max_scale_factor = \OC_Config::getValue('preview_max_scale_factor', 10); + $this->configMaxX = \OC_Config::getValue('preview_max_x', null); + $this->configMaxY = \OC_Config::getValue('preview_max_y', null); + $this->maxScaleFactor = \OC_Config::getValue('preview_max_scale_factor', 10); //save parameters $this->setFile($file); @@ -136,7 +136,7 @@ class Preview { * @return integer */ public function getMaxScaleFactor() { - return $this->max_scale_factor; + return $this->maxScaleFactor; } /** @@ -144,7 +144,7 @@ class Preview { * @return integer */ public function getConfigMaxX() { - return $this->max_x; + return $this->configMaxX; } /** @@ -152,7 +152,7 @@ class Preview { * @return integer */ public function getConfigMaxY() { - return $this->max_y; + return $this->configMaxY; } /** From 1e8a646f51428d19f565fa702cbb935ca8267adb Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 19:21:37 +0200 Subject: [PATCH 092/170] OC\Preview - improve documentation --- lib/preview.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 327a45d8d1..fba1d893e0 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -50,11 +50,12 @@ class Preview { /** * @brief check if thumbnail or bigger version of thumbnail of file is cached - * @param $user userid - if no user is given, OC_User::getUser will be used - * @param $root path of root - * @param $file The path to the file where you want a thumbnail from - * @param $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image - * @param $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param string $user userid - if no user is given, OC_User::getUser will be used + * @param string $root path of root + * @param string $file The path to the file where you want a thumbnail from + * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image + * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param bool $scalingup Disable/Enable upscaling of previews * @return mixed (bool / string) * false if thumbnail does not exist * path to thumbnail if thumbnail exists @@ -157,6 +158,7 @@ class Preview { /** * @brief set the path of the file you want a thumbnail from + * @param string $file * @return $this */ public function setFile($file) { @@ -166,6 +168,7 @@ class Preview { /** * @brief set the the max width of the preview + * @param int $maxX * @return $this */ public function setMaxX($maxX=1) { @@ -185,6 +188,7 @@ class Preview { /** * @brief set the the max height of the preview + * @param int $maxY * @return $this */ public function setMaxY($maxY=1) { @@ -204,6 +208,7 @@ class Preview { /** * @brief set whether or not scalingup is enabled + * @param bool $scalingup * @return $this */ public function setScalingup($scalingup) { @@ -216,7 +221,7 @@ class Preview { /** * @brief check if all parameters are valid - * @return integer + * @return bool */ public function isFileValid() { $file = $this->getFile(); @@ -543,6 +548,7 @@ class Preview { /** * @brief register a new preview provider to be used * @param string $provider class name of a Preview_Provider + * @param array $options * @return void */ public static function registerProvider($class, $options=array()) { From c6849bed9da49b488497eb44c81059630bade2e0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 20:02:59 +0200 Subject: [PATCH 093/170] OC\Preview - remove unneeded comment --- lib/preview/provider.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/preview/provider.php b/lib/preview/provider.php index 44e1d11ba0..e4a730bafc 100644 --- a/lib/preview/provider.php +++ b/lib/preview/provider.php @@ -1,7 +1,4 @@ Date: Thu, 11 Jul 2013 20:15:30 +0200 Subject: [PATCH 094/170] OC\Preview - fix logic of two return values --- lib/preview.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index fba1d893e0..cc287595f4 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -250,7 +250,7 @@ class Preview { $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; $this->userview->unlink($previewpath); - return $this->userview->file_exists($previewpath); + return !$this->userview->file_exists($previewpath); } /** @@ -266,7 +266,7 @@ class Preview { $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; $this->userview->deleteAll($previewpath); $this->userview->rmdir($previewpath); - return $this->userview->is_dir($previewpath); + return !$this->userview->is_dir($previewpath); } /** From 14a35267c15115a1e7d2901ddd9b8c5c7e1b9a31 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 11 Jul 2013 20:35:55 +0200 Subject: [PATCH 095/170] OC\Preview - outsource static methods --- core/routes.php | 7 ++++--- lib/preview.php | 29 +++++++++++++++++++---------- lib/preview/images.php | 2 +- lib/preview/libreoffice-cl.php | 10 +++++----- lib/preview/movies.php | 2 +- lib/preview/mp3.php | 2 +- lib/preview/msoffice.php | 12 ++++++------ lib/preview/pdf.php | 2 +- lib/preview/svg.php | 2 +- lib/preview/txt.php | 6 +++--- lib/preview/unknown.php | 2 +- 11 files changed, 43 insertions(+), 33 deletions(-) diff --git a/core/routes.php b/core/routes.php index 41e82f8a73..c0e658b26d 100644 --- a/core/routes.php +++ b/core/routes.php @@ -42,12 +42,13 @@ $this->create('js_config', '/core/js/config.js') // Routing $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); +OC::$CLASSPATH['OC\PreviewManager'] = 'lib/preview.php'; $this->create('core_ajax_preview', '/core/preview.png') - ->action('OC\Preview', 'previewRouter'); + ->action('OC\PreviewManager', 'previewRouter'); $this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png') - ->action('OC\Preview', 'trashbinPreviewRouter'); + ->action('OC\PreviewManager', 'trashbinPreviewRouter'); $this->create('core_ajax_public_preview', '/core/publicpreview.png') - ->action('OC\Preview', 'publicPreviewRouter'); + ->action('OC\PreviewManager', 'publicPreviewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() diff --git a/lib/preview.php b/lib/preview.php index cc287595f4..73e01a9e55 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -44,10 +44,6 @@ class Preview { //preview images object private $preview; - //preview providers - static private $providers = array(); - static private $registeredProviders = array(); - /** * @brief check if thumbnail or bigger version of thumbnail of file is cached * @param string $user userid - if no user is given, OC_User::getUser will be used @@ -82,11 +78,13 @@ class Preview { $this->preview = null; //check if there are preview backends - if(empty(self::$providers)) { - self::initProviders(); + $providers = PreviewManager::getProviders(); + if(empty($providers)) { + PreviewManager::initProviders(); } - if(empty(self::$providers)) { + $providers = PreviewManager::getProviders(); + if(empty($providers)) { \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); throw new \Exception('No preview providers'); } @@ -380,7 +378,8 @@ class Preview { $mimetype = $this->fileview->getMimeType($file); $preview = null; - foreach(self::$providers as $supportedmimetype => $provider) { + $providers = PreviewManager::getProviders(); + foreach($providers as $supportedmimetype => $provider) { if(!preg_match($supportedmimetype, $mimetype)) { continue; } @@ -544,6 +543,16 @@ class Preview { return; } } +} + +class PreviewManager { + //preview providers + static private $providers = array(); + static private $registeredProviders = array(); + + public static function getProviders() { + return self::$providers; + } /** * @brief register a new preview provider to be used @@ -559,7 +568,7 @@ class Preview { * @brief create instances of all the registered preview providers * @return void */ - private static function initProviders() { + public static function initProviders() { if(count(self::$providers)>0) { return; } @@ -766,7 +775,7 @@ class Preview { $preview->deleteAllPreviews(); } - private static function showErrorPreview() { + public static function showErrorPreview() { $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; $preview = new \OC_Image($path); $preview->preciseResize(44, 44); diff --git a/lib/preview/images.php b/lib/preview/images.php index 987aa9aef0..84ab9f1ae4 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -30,4 +30,4 @@ class Image extends Provider { } } -\OC\Preview::registerProvider('OC\Preview\Image'); \ No newline at end of file +\OC\PreviewManager::registerProvider('OC\Preview\Image'); \ No newline at end of file diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 2749c4867e..ffe8de505f 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -80,7 +80,7 @@ class MSOfficeDoc extends Office { } -\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc'); +\OC\PreviewManager::registerProvider('OC\Preview\MSOfficeDoc'); //.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m) class MSOffice2003 extends Office { @@ -91,7 +91,7 @@ class MSOffice2003 extends Office { } -\OC\Preview::registerProvider('OC\Preview\MSOffice2003'); +\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2003'); //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx class MSOffice2007 extends Office { @@ -102,7 +102,7 @@ class MSOffice2007 extends Office { } -\OC\Preview::registerProvider('OC\Preview\MSOffice2007'); +\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2007'); //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt class OpenDocument extends Office { @@ -113,7 +113,7 @@ class OpenDocument extends Office { } -\OC\Preview::registerProvider('OC\Preview\OpenDocument'); +\OC\PreviewManager::registerProvider('OC\Preview\OpenDocument'); //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm class StarOffice extends Office { @@ -124,4 +124,4 @@ class StarOffice extends Office { } -\OC\Preview::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file +\OC\PreviewManager::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 8531050d11..f4452e02fc 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -39,5 +39,5 @@ if(!is_null(shell_exec('ffmpeg -version'))) { } } - \OC\Preview::registerProvider('OC\Preview\Movie'); + \OC\PreviewManager::registerProvider('OC\Preview\Movie'); } \ No newline at end of file diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 835ff52900..baa24ad129 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -43,4 +43,4 @@ class MP3 extends Provider { } -\OC\Preview::registerProvider('OC\Preview\MP3'); \ No newline at end of file +\OC\PreviewManager::registerProvider('OC\Preview\MP3'); \ No newline at end of file diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index ccf1d674c7..9f6ea7f74c 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -20,7 +20,7 @@ class DOC extends Provider { } -\OC\Preview::registerProvider('OC\Preview\DOC'); +\OC\PreviewManager::registerProvider('OC\Preview\DOC'); */ class DOCX extends Provider { @@ -50,7 +50,7 @@ class DOCX extends Provider { } -\OC\Preview::registerProvider('OC\Preview\DOCX'); +\OC\PreviewManager::registerProvider('OC\Preview\DOCX'); class MSOfficeExcel extends Provider { @@ -95,7 +95,7 @@ class XLS extends MSOfficeExcel { } -\OC\Preview::registerProvider('OC\Preview\XLS'); +\OC\PreviewManager::registerProvider('OC\Preview\XLS'); class XLSX extends MSOfficeExcel { @@ -105,7 +105,7 @@ class XLSX extends MSOfficeExcel { } -\OC\Preview::registerProvider('OC\Preview\XLSX'); +\OC\PreviewManager::registerProvider('OC\Preview\XLSX'); /* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ... class MSOfficePowerPoint extends Provider { @@ -128,7 +128,7 @@ class PPT extends MSOfficePowerPoint { } -\OC\Preview::registerProvider('OC\Preview\PPT'); +\OC\PreviewManager::registerProvider('OC\Preview\PPT'); class PPTX extends MSOfficePowerPoint { @@ -138,5 +138,5 @@ class PPTX extends MSOfficePowerPoint { } -\OC\Preview::registerProvider('OC\Preview\PPTX'); +\OC\PreviewManager::registerProvider('OC\Preview\PPTX'); */ \ No newline at end of file diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 3eabd20115..0d289e9db9 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -36,5 +36,5 @@ if (extension_loaded('imagick')) { } } - \OC\Preview::registerProvider('OC\Preview\PDF'); + \OC\PreviewManager::registerProvider('OC\Preview\PDF'); } diff --git a/lib/preview/svg.php b/lib/preview/svg.php index bafaf71b15..5507686af9 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -39,6 +39,6 @@ if (extension_loaded('imagick')) { } } - \OC\Preview::registerProvider('OC\Preview\SVG'); + \OC\PreviewManager::registerProvider('OC\Preview\SVG'); } \ No newline at end of file diff --git a/lib/preview/txt.php b/lib/preview/txt.php index c7b8fabc6b..acbf34c5e4 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -46,7 +46,7 @@ class TXT extends Provider { } } -\OC\Preview::registerProvider('OC\Preview\TXT'); +\OC\PreviewManager::registerProvider('OC\Preview\TXT'); class PHP extends TXT { @@ -56,7 +56,7 @@ class PHP extends TXT { } -\OC\Preview::registerProvider('OC\Preview\PHP'); +\OC\PreviewManager::registerProvider('OC\Preview\PHP'); class JavaScript extends TXT { @@ -66,4 +66,4 @@ class JavaScript extends TXT { } -\OC\Preview::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file +\OC\PreviewManager::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index a31b365722..f9f6fe957b 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -40,4 +40,4 @@ class Unknown extends Provider { } } -\OC\Preview::registerProvider('OC\Preview\Unknown'); \ No newline at end of file +\OC\PreviewManager::registerProvider('OC\Preview\Unknown'); \ No newline at end of file From 10cc0511af5e1c5a37314ff2fabe0e27f9482e27 Mon Sep 17 00:00:00 2001 From: kondou Date: Fri, 12 Jul 2013 01:36:10 +0200 Subject: [PATCH 096/170] Optimize images with optipng and scour --- core/img/filetypes/application-pdf.png | Bin 1759 -> 1746 bytes core/img/filetypes/application-pdf.svg | 323 ++----- core/img/filetypes/application-rss+xml.svg | 950 +-------------------- core/img/filetypes/application.png | Bin 1235 -> 1018 bytes core/img/filetypes/application.svg | 373 ++------ core/img/filetypes/audio.png | Bin 858 -> 816 bytes core/img/filetypes/audio.svg | 317 +------ core/img/filetypes/code.svg | 419 ++------- core/img/filetypes/file.svg | 229 +---- core/img/filetypes/flash.svg | 366 ++------ core/img/filetypes/folder.svg | 385 ++------- core/img/filetypes/font.png | Bin 1793 -> 1697 bytes core/img/filetypes/font.svg | 371 +------- core/img/filetypes/image-svg+xml.svg | 716 ++-------------- core/img/filetypes/image.png | Bin 978 -> 976 bytes core/img/filetypes/image.svg | 376 ++------ core/img/filetypes/text-html.png | Bin 741 -> 654 bytes core/img/filetypes/text-html.svg | 323 +------ core/img/filetypes/text.png | Bin 757 -> 693 bytes core/img/filetypes/text.svg | 265 +----- 20 files changed, 634 insertions(+), 4779 deletions(-) diff --git a/core/img/filetypes/application-pdf.png b/core/img/filetypes/application-pdf.png index 2cbcb741d84a8e1303608089a33e22180a0e4510..a9ab6d279b6147ad8d0f6319ecdde08a637c8e70 100644 GIT binary patch delta 1655 zcmV--28j9J4blyeZhucnL_t(o!|j({h+S6|$AA0doO3_tqjx4rGo5s1l1|ea)0#A5 zY-w!}n-(c3#gr-(t5~5F^rellB9Wq?)KE|#>RS^LA!$)eA}vaUP(v)$geK!hX2`Tg zCut{4W|Fyc?>&1hAI_cW-1+K@kQX<1vFCF3-TQz3>%abMkAG2BuII2^=kb34e*TwF z8k4`PXU&d*)sp2S;(e2wPF_)R58qIN&pp96(eXG!t}_+@n5}pVeAiY zs8*K*aA!}~j>jI}`RXm(w?}b40b`l~O!hYhEZJ-_APQ(@6~(RFz*vlPbI$-ogiF6W zN_g)g=TDq?lz-nI`5bU~NdW6BH|*-|C`a`_9iw5uSc9<^nzLyF$$&w?5Z}L(j*oAn zF+I)MpTEQ%-}okIc5tm$BW)zQtB8+I)Vz+(!&UL!Ob8SU1B)wx-X znFGK$G2|~SIr_o3OsDEC(gsshh%R#-4#}t;;00I&O z4Fam5imJhgqBcv1T7&egqw6bQC+g^AYIKyp{NVePrl*Md2Do?|7AyGxs#H@!E8XO_+(qf`d+?PCqJJ<`t?~Y;zw-9JeY9yxDIZhx9wUl` z6jLl^<+<<-V>2?F>0Owk767$Ih*$4@9-Nym3@)EN!|=gFOr1VOrC6Yti^zKqq9}@} zVoU9dHebZ52r4Tw0LI6N1V9-(agvc&4pJQ+rkuodmkN|(Ph=hQyJ#8&jgw{0H)v2K zXn!{AN+J~H{Ncllojl3J&=9Uxr7cM)7xLs{N8&x!WI}Dh9VAoRlHH~WR+Pxt4=F?7 z--iyO6BBfKM^q>fdq*yESu2p)A~Lfd0D=fuw`2<1dV9HolD8JO#B;kKS=|2k<8%)U z&=JR!BS&Hl8UztR!@OJuL7JgKF)qRxi+{I{$a!*cLa9)s`__&4IFE{whOn{-0eW^m zNY4WgaCK;iOZ#6&M}|?8sXHspi~&QlR{&1I=5rJZ`6aUu_xBV2@psZjSd>1ypbF=r zxbZgnzV|%2&pwO<0TqmZ(acy-ZDql_mfz2hWWy~?)*IQ{6@5UIV^2Lz`#?XdwtsGA z?LBw1_OUN9wfPSI^Wuxx$%#1zT1BWB=a(>{Y`AqdQ%?iQ5>99rmSN%j_qcrID5v)B z<@aBGlFMh$QvS#$2446v4Bpn%fwY7K$?gG5y#7qJN^$*q(p2!e*bQ3%cw_2qQAAe~ z(VZkD7vAOgQ&02O3;Qr}!oatm!++eqsY!cQ*RwUwECchRUd!5Y+|fzC_a>aOG6PE1 z_#!MN=V)^gtCE=UBS(2-_a0P)fjxV$o9{$K=0ZiV&bPd|gg~uU1690pth)C;8fjRR zr4|6vEU%1KB{EQUp7toBe)=@WpV^J1fepLAMf9<)A21-2+4sD+pQ+A(W`B3bT#}>f z-uq}YLbi5!4d`55&w@adqP3L0Bb+(I@n@bzF$_Gr8~Xb*7MdcQC7@PsWcI9(BsoyX z-?$dv*SE+A7WrppI{E}VJ#&_!1HZsHOV8Jyq>*OkWV{CyRiR$50ZJT4 zIBVu;>Dc}WMAa<|APq9zNPpAp9@4y+X!D9DBIJyvU>)c8A7J92=O_;jQoR3Dgb?P+ zaAu~4ieil=iQ<;Dl(%f55u~=P4~$f&fBo*{)T4d9y^;6XBV$?`8?izhQvSC80NcLv z9P6HVf~%vW#GRd_X_|pCh9pT^I%a)lhBpr$l98F}D=ocpc2T8LX>coByW!R}eP~mX z+kr713%cr@0Vx;}@j)auSap_~2$3MJrKDPuJ9#c`93JxiH&Y_##>dAeTL1v8S+k}X zLTLBi$0FkXm;ZuUYeSl*b?4lbv9Ymhix{|G1YKNw;Z@X-yh2 zwzM{gO^XziVoDW?Rjg17deg>Okw{TcYAC1|^{$DCkW>_th@wOYHN;X)Xm>=`e#8qea^qpnoSAvgd!GOMfBw(^oPRN@%8hLHhDQHC03cfY z<)g;r@99~$YhZ0?K{9&jC1qX07Qh# zzdnwC_YxOQoqu|qUmg1taCAig8!I>M>Fp@T^*^4VVZc~}u@;)6X#xqrz+*@r+)c-a zchH!bVd%%NaMxG93K{~}YBjP(#>h`!rII*q?p_<;TDfV@ssJKPA*$E#jYgo|TCh4l zsxk8*8u=papZz?A!OherC;8LEso(*(;;mgDwolK97@#pV+o6^iQao+&%Uwgl0$?35%EQB>O zAGEO=08v3j!bEFPtIZTBh`}cbxsN|g=O-S)ILE~kf8ebj{ebqwkpZT&!ct#rOitpO z!BqrVf`6cu0SEv@K_w_m6tRYA$4O1VHOa?I2-;?7RO zO$*IhFsi6%bKUDO5CAkM8wD(GaFC8qKSt8mPnKm|9ebNMzxzGRKi{USl&6%$IAai1 zlD76`0l*?6AR79T)(SwCY9?rQGca^D9l!Cym#g=ymjCJZJJTaClsRy zBZ~M8Q!It@TpGjJKxQ+&OLNo$pw{ro+Wjwra|=I;a%JcoBZrSLefA8MVu4~VCLcv0 zilT@rw$#3C@nx)vpw|;23MNVr@qjXZ>NKOT9i}=mLOD(7E)^&x5wUeF-bFJnXp*iH z-+!Q95wBs?>xod53rCMKe)=?%!^5~*m9{jcT*#A49BC9`O%Q4eZZAP?E44YWqQu7j zmofzYb>uKQIZ0RKhzkXh$dQX(*a~E>h|Jsz051a8t(bzg-d?VvF>w?{cmIqzbt(% z3^d&rRVZ%0gT8OQNbZx5B3?iRBVaTb3#zRwSl4p@;+}50jj4Jg%v}O*nFvoj^M5Su z1O2SozMb{=-OKtXKF9RdyZHCZFJq@B=NV`L?iJ&r6-+2Jx8YXmnI~Pr372R93h%wk zm1D;_vwuIo`{L7F85*Mefh`QY^nDn-qp1UF>Eb1v16Fwa*=m*I#*Ji|5b1I^Yyl7% zQ*Vo7y3&~LG$p^mN#EIfPYC+2EP6R=FTlm+CyE>)i`quEb8@I*p`!yPV&9C z;O4Ha20#fLUyP;X9BnRUO`0%q>^QIQ-G_=Wux}rB>)nXRd{+^yi&~ysyr)*Hfhv)6 zthxUI8kt{~r4|6vEU!ST5*sMHi1s+9e)cRUpWBOMo=tndM*N}e3k-+^`+r{a^t07j z&~SFlr8&Cpe}G2AhqKcD9C!VvQw@la{oUw{4^0rM5U`iw}%eXMXX{)b!(hy}fZ1g-d2}$s0%% z5})zcgNNAhjThMP)Kgp=8zbrLB+Ie@#u(BxZP_vFv$MQ$_=t?oR()Sv9MjBAs#Gd% zWotLxo@I}0Nprg}rlTb{X8sKYBO;L(Neot - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application-rss+xml.svg b/core/img/filetypes/application-rss+xml.svg index 7b4f1127a9..4fd98545a7 100644 --- a/core/img/filetypes/application-rss+xml.svg +++ b/core/img/filetypes/application-rss+xml.svg @@ -1,914 +1,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application.png b/core/img/filetypes/application.png index 3518d3116d2a6d0fadd6b09b3b592a2cb322bdce..9152cc1b744f1c06d0d5ae87c2965311f117fc1c 100644 GIT binary patch delta 951 zcmV;o14#VS3Hk?+85aWp002a!ipBr{00VPENmK|32;1RL;E^#re*t|^OjJex|Nj>k z7ZMT@6ciMRiHR5(7#0>5FfcHTjEs(sj#E=pN=iyrR#u3Jh>eYnQBhH7XlSRWr%_Q+ zSXfwET3TIQU0z;ZUteEfU|?ZkVPaxpV`F1vWMpM!WoBk(XJ=<SYo}Qnd zpP-Uu_s;a81tE;T6tgWrBudlDLu&}YQv9hwV zv$M0bw6wLgwYIjlx3{;rxVXByy1To(yu7@=zP`Y~z{SPI$;rvf%gfEp&Ct-$($dn@ z)YRA4*V)R5(w?l1*+CK@^1RwR@u2*n!9b>`fBP0=5>BI0)Q;b8!PM!j2_DRssUB6ddpVVEz|Ca%XS@w3#>hofee=5Uf^Mfq~E%kBsr!sWj&qAZo zXv7$TL1aqq?reU#1Ok8|DM_N!NvGc)IRp>^R0Em;K@gqQ4f?Ht)tV-q9pF`$qDVP&)I(YIcvHfk&4`dkj0_W!`xKvW6gGxSDR}c@|I}Vq<#ICdvB*0_yqk zhUlMgX4YJ&mI1VYl0rzV9QYL`sS0c^k)4ekRZu<6LXK zajcZ`hr{8+v$HdRKQ{tUN_~K72q3fiZ@iogK0)Thf0k27l@(ZP#X5hEj^@bP7OOmh^f( z`u#pxmI2W3_t9GO{{4G|5DW$b_V@P*f`E3r{of=wJ3B*4i4X!QB}yr7-MYo;>8V>Y zpU*iwJY+B!5Cj25QE+i_fiY&S54Mt^&cJFz8e_=w-0cnUxldO0UfrCwX21s6#P{#t zXFi`Z9DfeEy1GJZ&1f{D)9EZFisRVrmb<&Vbh};l_V&p0d?gNGU1H()EPz`%WsQlw&N8W2&m6 z)oLxBigkIdt(^sRq}HP-A`C;c)*KxjadL7(v)Od>&1RF6lM}k#E?R5CFm#(&-LEBq zy$=W>$n%`z<71}NDZ9J7eERf>D2m)^7)2362ztF9w{PF3-EK1&43_k_3~VLADga{) zuYX>>;>L{|eEj(FbKn=vEpU4{-Mo3zy%DPylT8w=F<`G#Qp%!-48wM}+kJL* zbrmK_@;l&dtn%Zg7mLL|qtWPD7>4cfcsvCV^?%2mPG?VRec=0k!x-~Z0Z1veQmXJg jZxYAx-2T1<;8)ncR5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/audio.png b/core/img/filetypes/audio.png index cd9821ec047ff066ac222f7434fd318f1968a6c6..3f56a7e2a9a976c91965495dfe7bc76667df5f75 100644 GIT binary patch delta 747 zcmcb`wt;Peq&PDJ1B1(wu46!ox!B1wgoA_Q_Cx;%6Af+Z8Px)OLR|m<|1T~sE+ix* zA|fIoAt5Fv#>&dd!otGF#>URh4ph#`$;r*l4dFsWfC`XhxwyE13V3*U`1ttv`S}F| z1Ox>IAqGlHN=i#h%gM{0tEi}`s;a7~sj1hit7~XzXliO|X=!O|YwPIf z=<4d~>FMd~>l+vt7#bQH85tQH8=IJzn3|fJnVFfJn_E~|SXx?ISy@?ITie*!*xK6K z+1c6K+dDWoI668yIXO8yJG;2JxVpN!xw*N!yL)(eczSwzd3kwzd;9qK`1<<#`T6<# z`v(LB1O?Rxg@lBJhK7cPg@uQQM@B|QM@PrS#U&>vPntAo%9JTnr%s(VZQ6_(GiJ`5 zIcwIe$c}h_U?2*X1o;IsaPvtiC?7k269jHQe)>XHGGZ?S17p0Wi(`m{rnLz}IrdKV4$WFF9!?CegKJ{?Qq%UcvVBShY8Q@`=vST9FXD&oM3RoX)L7 z%H{|9PlcM^I^=ecxBa}a{6#ijXEUw%dH1iST@nlHT4bu8zuqpkD0oY&T1S{!`TJwn zb3!kP&C)h1POC4n+GClfy_DC?EpVIBbE9*LTDcdN6a*WsogL+}gm;#3_|#Cp9e2bQ zZDEY?w7k5Cb2m$1qvP&5My(4p_v~oU$i48*ox|x_p^}P{hxC?70zY=D3kW%OnPr@M zwSk|5g=L~y#K~1mJM?BL%x(=c+q3ZQ&O>2a7+0(*TmS9+yE64KPbDs%Sxm=%KCPAQ zTLV;`p*g#qU5<0o7REPmd)0o--eK){VAJlt2bzCNHJLh8o0e~Ra=(tbZil;Do&W#< delta 789 zcmV+w1M2*+2HFOY85jlt0047(dh`GQ00eVFNmK|32nc)#WQdV4Jbwb$NkljXNJ~TI#Lga&gFhy2 zv_i{eEm^T$ci!{No3UBfb@h zrTj(`5JD7JS65$s0)J*~2$;F~8sp|`2-xdp?eg;SmyPKV0DzmD8{FUDgE2;S18mQ` zuIsx!*IGOM`1m;ROyJY)cI&u}N>dx~`uZADN@t$|S4u%C)sO4C-c3Mj9RT|$v_Yhl zD9f^6H=s6f+qV68CxO^$DIx%{SS*|q`y}i>nn278K9T3=XMa3AJoG1xb-x87G$CM& zk@2Sp0l?ke9VU|r_V@RLQ=2|I1eBufu`y;0o}Zs%Z*LE`x3_4TX7Kc*Lg2gI2lkD2 zU57MHadB~hBuVi2_&BHo%A+I!D$ce+JJ!Hk>eh9Q)6-KtJw1^GhEh7vfK7xk*1OF% zVtb_Px}Fs09Diw=LQ3gqXefI~0#rGry6w`oZTq#u!$WAT!8s2~^e6(hT8DuBxZ3KL zQudkPgYP6@+-YKK0~o=@ZaM(Svdqc%U1113&@>IU+pVK=)2J)jH#(h8(KO8;OD;I zHk%DLn{v(I?=b>n9wfXd3e09R0CeH`o921I(H%2C7DbV-R;wREh#3IR7!x0Y{!T&x z&`PP_d7gh?E|)8Z000~v9Zi)|Uy>xrwALR=fOD?ewv|GNsw~SshAbBEf6@K`*HYuK TH+&xa00000NkvXXu0mjfDmixI diff --git a/core/img/filetypes/audio.svg b/core/img/filetypes/audio.svg index f742383d63..d5eda38e8a 100644 --- a/core/img/filetypes/audio.svg +++ b/core/img/filetypes/audio.svg @@ -1,274 +1,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/code.svg b/core/img/filetypes/code.svg index 1dee047b11..61a5c19f51 100644 --- a/core/img/filetypes/code.svg +++ b/core/img/filetypes/code.svg @@ -1,359 +1,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/file.svg b/core/img/filetypes/file.svg index f0c0f1daf7..3d91c34114 100644 --- a/core/img/filetypes/file.svg +++ b/core/img/filetypes/file.svg @@ -1,197 +1,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/flash.svg b/core/img/filetypes/flash.svg index 60cab4ad38..cb823703d9 100644 --- a/core/img/filetypes/flash.svg +++ b/core/img/filetypes/flash.svg @@ -1,310 +1,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder.svg b/core/img/filetypes/folder.svg index dd80b695bb..92d4cc2271 100644 --- a/core/img/filetypes/folder.svg +++ b/core/img/filetypes/folder.svg @@ -1,329 +1,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/font.png b/core/img/filetypes/font.png index df44a7fc47db6c6edce188fa5e00ead07456bf97..9404c3ca6ac330d3639a00e0b4c618e52172c2a2 100644 GIT binary patch delta 1606 zcmV-M2D$lx4xtT@Zhsz0L_t(oh3!^pY!r1AFNla>MWt6t>Gq)Aw$quNV`p}^d-Oi& zLFs`}0s+xL2obCj@hDNT5I-2sl(TAqaA|Eq6A&qsgdbmc zMx(JEowg(=Cx3U-vreb8VR=&e>YOvGgD)Cm7g>|p%1bG1wKbL9XHDe}Ta%c|OQvYk zV-dhwTPgkSh&u&Au;7_JFE0;}NDrP>d1TM(W0KA%vU|>%8E4DPjLttlcokX~O@Zs5 zO@kX{)8X2JBDj#qI?g4;O?@N+7`;f&DCOwvE;{?pn|~Bd1Cg2~Nq%Qc@zqT!y#4aD zw4UYyW5@Yy#5bv;F4sIbhpR;=*rlPUvdX$Cf@40W`ioF)^{5qNjA@bCUbK z1k2%|bECmv|5B&9a%O_At0~7|KV^u&c~Td*;Di!qKB2^9p42nT8nYC~-z(+WsS}-1~i*sHw5&bguW7gaj~) z;g>rtsJG~BbsSSPAOV_vT)hq=px5i$@%dfs{2&jiG+ax4 zZhtDwGaJBUH1?1jX6U}1P^;n2Hsz;7%d~tKYI%*lmSI8%B!JOaEfx!n9z}K=(cyuN z<>!P44e2P$J?#N6X5dXY-ldXgxw5h8*mfS?4uz&Ie#2b zLsG9G5nnVrq=w%8Cgb5csvR{Sqw)HAW+@Rvi*QF9J0Cn0^Ok0HY@Y_jN2`ZK!ahI$Z2I z5Gev-KVo-;2qsaYCZxTAeW11DeUY{%RBYH4eot;&nBXiQC*1j3B{_A}}y8-~rgWYSk*NS+fTH{r!+qK7OsvuNuJj{ViH+ zC#8h77C{gI!0pXubM1cxKqg1t^5Ie`8ZV`=Q-O_gpoA5MnfnqR1G7JkOQ2c558RzpqxSDvF|N ztJNA^0C?-JJMI;}{yK#Eq<`zp?Dh2oq!ma>kQ6BA;(y`R{$mdx{luLkw~rlp0l2~z zG@H#q0DYe4Ax%>U;FXDqiPr&~$@3gx7!rVoMw-pu$-CFR#8L2ycT4{RvbV>j({tJU zzN7N&rBuR?`6Vr9eAPGBdQ+l;`zEVmtGurKTo0(0w#$(ikIG=0IF$zK~gb+axL`tcuHRh{^ z#7%Xrs|$6F)1_e8Xq5j zt6TH@+QIk(nW_2$Fiz+wH;;}5@^@ufZdFPNDTR7NIcny3i9q)hnYoz+kQkse7XvKT zfkvaz2Vj#B;(T^HM`c<5dg%aTk>rI%nH$^y69}fex3ut}FqW7ZkP-(K(SHo&sBx4o zXba0^q3D^_8+JXtdN6(FgM*td0MJ@*6GGU|>H*;3p+kqxECnbT)AL4hW)*U)utJK; zkj0IXnXI*7W)yZIf;{8gJ_Xut8LDJnc>w@`$A~CmW>{v1Dq`xbJk&P#$e~b%pgG#fUnKwMS8|K%o@OB@_U7l ziG?+melU9S;LjHU8jZ%s0rYi34`$X=Q&X=2hycirDFFK0({CJ`w#AQ*6=nOhahNfT z6S*ye`8;>l7MD5bstAac&3 zW4l|eRtrFPG2o8bpUfP2@~kPoHC?(Rr%U_ycTDk%L;srjoCD4+%t1unWUsGd<9>Ux zw8iPdzJ10OU;fU_o8JV$+_|`D;cZAn9)Pg3QU@RdP%IpfrMb|7S6va(orviUXbvC+ xU_Mpp3y&se=HCWN03epT9;EdD$LaM3_&2hWVXo7r - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/image-svg+xml.svg b/core/img/filetypes/image-svg+xml.svg index f9b378887f..06df5f54da 100644 --- a/core/img/filetypes/image-svg+xml.svg +++ b/core/img/filetypes/image-svg+xml.svg @@ -1,666 +1,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/image.png b/core/img/filetypes/image.png index 83d20fdb7762d4b52b398c80e4ecc3fb6f2d5470..087f5dcdbdf61777512cbf7985715f0a12124a19 100644 GIT binary patch delta 908 zcmV;719SY+2hazQ85aWp002a!ipBr{00VPENmK|32;1RL;E^#re*v>lOjJex|Nj60 z00000000000000004OLZDJdx`Dk>{0D=aK5EiElBE-o)GFEB7LF)=YRGBPtWGc+_b zH8nLhHa0gmH#j&rIXO8xIyyT$J3Kr*Jv}`>K0ZG`KR`f0K|w)6LPA4BLqtSGMMXtM zMn*?RM@UFWNl8gce@aSAOG`{lOifKqPEJlwPft)#P*G7)Qc_Y=Q&Ut_R8>_~R#sM5 zS65hASXo(FT3T9LTU%UQTwPsVUS3{bUteHgU}0flVq#)rV`F4wWMyS#XJ=<>mzS5An3$WJo1UJYqN1XurKPEzrV=H$jQmc%F4>k&CSlv&d<-!(b3V;($dt_)YaA1*4Eb7*VowC*xTFN+}zyV z-QC{a-rwKff8gNY;o;%p;^O1ulq(=H}<;=jiC@>FMd}>gwz3>+J08?d|RE z?(XmJ@9^;O@$vEU^78ZZ^T0u}p#T5?26R$RQvd-19xO9ymSSiC00DhTL_t(I%f*sQ zYZOrwguin$vGXD_YJ`lD+2}^lg^_HsaiM$tCxU;(e}5wQ3lvw01`%9H%pyL>DEJ`Y zn0a-Ti|(HE7&ANZZ0?1sTc^&s1^>T-M^o_!4NRO08yYyC=h$Eu2gO~M?wJPWsDJXU zWZ8lS3cDr=U`v)&5KOM|!+ZuTNd=|wz_CKM_P*~Dl~tNV0&t$v+RAXZ!ezw-VY$`Y z%RJW`f1LZ43W8_qEp+CBo5{X*KI?2t7LYtPDfvTlWj;S#I?M2LzjUpNFp}ia&gRnA z$JI^0ew(VPOTu6v4Tm>Zv!gxsZ)Gqo@01lFP!bDO_IMY8`YsSGvbP zGal2x;`(Dh0e0(osa9>^?yLM{plXEn?7P3DrfLzy)t89~B7z8lAR-n@!b5=Tr-e3| iX_X>UOo_e4zpvk=^$&&_6P$Md0000SP4p68%qVTP}IsoR4heA zjrajZ)Trb`lFjbUQ*GGYe7t!ce4jM$fy3-D!`%1W=ggT|A*H09rnD9Pe*%CPpin5Z zB@w#1x`Y?NN<<;VUw;9%Cw`TH5Q3$pB}%1Ib&`Feyg4gS<0*sE1GBGhhAP``Gf1ka*y_#Ly zO;MD_1neQOFMsmz@WAo$F~h^d1cO0zT_>GR6OYH~@9zhoTrP8Yc}clkZkou}nhgo) zx?UrluIp@XZxfA1>FMcVd3l+qrzfJ(D2t1WNGVxeUFGWP3Povty|`6&5U?`Y0=F_Z zkw`E*JBzBS~G8rs#OM)^b%<9R!4wl5{%VmRE5+9v6xbLiybX$xpcuLJ@!fV!%H@$6wlf8OQ-o kqLoMJe`#(1HETP8UxCcTx6i@D5&!@I07*qoM6N<$f>aNnwEzGB diff --git a/core/img/filetypes/image.svg b/core/img/filetypes/image.svg index 440b6af7ac..50991f7359 100644 --- a/core/img/filetypes/image.svg +++ b/core/img/filetypes/image.svg @@ -1,321 +1,61 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + diff --git a/core/img/filetypes/text-html.png b/core/img/filetypes/text-html.png index de11613f25f41a5918b041f358a66cd38366eaaf..dd17b7501034216c35e9273dc7e3858d486d2aed 100644 GIT binary patch delta 584 zcmV-O0=NC;1&#%f85aWp002a!ipBr{00VPENmK|32;1RL;E^#re*o}MOjJex|Nj60 z0000000000006$ezM-L^mzS5BnVFuRo}i$hp`oFoqN1atqokyyrKP2&rlzN-r>Ll? zsi~=|s;aB2tE{Z7t*x!EudlGMu(7eRva+(Xv$M3cw6(Rhwzjsnx3{>sxVgExy1Kf% zySu!+yuH1>z`(%4f5E}R!otJD!^FhI$;rve%F4~n&Ck!z($dn_*4Ee8*Vx$D+}zyV z-QC{a-rwKf;Nall;o;)q;^X7vlt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF z?(gsK@bK{Q@$vHV^7Hfa^z`)g_4WPz{r~^}4?0_v00007e{@n#Qvd-14-@F=?TSR& z0002}Nkl~m> z5!8BK=WNbCi6o^9lT?xtNt!S343_hg0Nwz;2r~F4*nA46qMvN|13@P7hV}M1xm{Zk z<=zAE_JH4)f9E|^WmW)$*9ApZR&ftu(=Td(b^nUG=x;(4;WYIC-OF_YekvCUDZ36} zb1?zB9cgrCK5(@pJ>52vYB$KEGY_+#3*eXl!S!Z`_)MSU;Q1y1j@+O1&?e&y?u!n{ z#z}i#R5KdF_5d&(HP*AL`dD>c{nxvH6>*svT%Lp^CafL}Rw4NiXuV0xNeCt_lHLKP Wy+U7gQ>a@20000@UpU)i9kYL*p9o?oy783U3|Y)CwUF9H)#u;UE(>D}t7^B~Ka4SDjvyh#&sMATeRa=X57JtfTdfwBW#w92 zYfZb|PTg1vz!*amMSm!zas{w$n{~GVQnzW0$qYPHoAPEla14l@09JqVhS&<=N%JkP`T{f*Zb%lCae&)ax?FM!!>#&kN}2+-+tczSwT0!*h?UtcfhNWEUCSS&Ia3{Xn#=783E89W}30cbXx#BrP|uC=Dy?Q(m2 zi>lnJOi{m&< zCKIA4O8vRl>wj@~cZZZRu^&YdlgR|fad2HXGxt^wgkeanR-;fTFdPmO&-3;56)7c^ zN+s1d!{LxZp+K!xBMigCj$s_fG#ZU%Pb~Jk-7YsbH>oCD#55X>%)VLIUth%^A0ODZ zO{G#v*!b}9fRr-zXv*bZUtN}ECBCW-ngvoyuCA`oT72{V{tkfe`>A9AmzS4VmPHtb znR)jD00@F0v*5b2nl%@IL-l0=PCkxL?!easux*?3^YdH*7PI7!073}s@$vEP`T6-< zuGN3%e-lDj#+c<;6suH12mv_jU^z+wzF8?Mj@k9w=o57qG24cv!y^Cy002ovPDHLk FV1gQzIw$}D diff --git a/core/img/filetypes/text-html.svg b/core/img/filetypes/text-html.svg index bf29fbcbbf..c41964738d 100644 --- a/core/img/filetypes/text-html.svg +++ b/core/img/filetypes/text-html.svg @@ -1,280 +1,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text.png b/core/img/filetypes/text.png index 2b96638d16c9af6b5f98350c4ec102d4975c1b64..6b069c82c119a5bc115cd657b9752215b8cd1044 100644 GIT binary patch delta 623 zcmV-#0+9Xn1+@i`85aWp002a!ipBr{00VPENmK|32;1RL;E^#re*ouDOjJex|Nj60 z0000000000003lUWK&a9c6N4nczAhvd3$?%e0+RsxVgExy1Kf%ySu!+yuH1>zP`S{zrVo1z`?=6!otGC z!^6bH#KpzM#>U3Tf5^zm$;ryf%FN8n&CSiu&d$%z&(YD*+S=OO+}z#W-QM2b-{0Th z;Naom;o{=ruz*=jZ3>=;-O`>FVn0>+9?6?CkCB?e6aG@9*#M@bK~R z@$&NW^Yioc^z`-h_5J<*|NsAsvZUAm000qmQchC<0Rj&be{*}LrlzK*rlzK*t-3L% zIDt{%g4(scvqhP-tQwEXTGu}!N<5}Kh44bjnP3$mu9WY)iKb_v{k)n{q1JI#E z6Lqjtf2Rk_pE1b)*S@L?fF1w^OsWf?_s|~!YNCn&>5F@moo@|Sp}XMVyv_gs002ov JPDHLkV1i{gTR8v# delta 688 zcmV;h0#E(51@#4x85jlt0047(dh`GQ00eVFNmK|32nc)#WQdV4JbwamNkl=Wc2_Dxnwh@dAgkch$;iOg(~ z9cz4Hjln7QZ@|YhXa4h_%UCF-FfpIce~d<>JH7y$&F1&xSw9LJ&G@6&F#ONr$O=;-x9*VoqwAy7&ogh;K^b|ClPd^Y_aq=312 zwORqBqSgN$$03R$JkLW)NgT&0rBZ5iyIlr@!Qm;8QlU3I zUS0rbwOS~plJ@jG41fDgB+erKo`naOv9s!aJgIp`8Ev05Zkti;~2+r zk`~nOKR!MfkAKH0pG7DgM5h#CErUoaVB0oQ%F1mxolZ|{!<(C%vL$}H!>?LT|BKhx*Od^Wp_EG42vZvIIlRARiPeZ5uvNyPqV8N*#UF(t W?ly-EnGJFP0000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 33ac4d93d63b98761cf9c09467dcad7bc5d34bf0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 12 Jul 2013 10:03:25 +0200 Subject: [PATCH 097/170] OC\Preview - use !== and === instead of != and == --- lib/preview.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 73e01a9e55..5576981225 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -305,7 +305,7 @@ class Preview { $y = $size[1]; $aspectratio = $x / $y; - if($aspectratio != $wantedaspectratio) { + if($aspectratio !== $wantedaspectratio) { continue; } @@ -691,7 +691,7 @@ class PreviewManager { } $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) == '/') { + if(substr($path, 0, 1) === '/') { $path = substr($path, 1); } @@ -768,7 +768,7 @@ class PreviewManager { public static function post_delete($args) { $path = $args['path']; - if(substr($path, 0, 1) == '/') { + if(substr($path, 0, 1) === '/') { $path = substr($path, 1); } $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); From 21abebf96a45323b81ddf057d3851d25085b59ad Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 12 Jul 2013 11:50:24 +0200 Subject: [PATCH 098/170] OC\Preview - proper handling of a cached previews's filename --- lib/preview.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 5576981225..08c0b7e20d 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -283,6 +283,10 @@ class Preview { $fileinfo = $this->fileview->getFileInfo($file); $fileid = $fileinfo['fileid']; + if(is_null($fileid)) { + return false; + } + $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; if(!$this->userview->is_dir($previewpath)) { return false; @@ -293,18 +297,19 @@ class Preview { return $previewpath . $maxX . '-' . $maxY . '.png'; } - $wantedaspectratio = $maxX / $maxY; + $wantedaspectratio = (float) ($maxX / $maxY); //array for usable cached thumbnails $possiblethumbnails = array(); $allthumbnails = $this->userview->getDirectoryContent($previewpath); foreach($allthumbnails as $thumbnail) { - $size = explode('-', $thumbnail['name']); - $x = $size[0]; - $y = $size[1]; + $name = rtrim($thumbnail['name'], '.png'); + $size = explode('-', $name); + $x = (int) $size[0]; + $y = (int) $size[1]; - $aspectratio = $x / $y; + $aspectratio = (float) ($x / $y); if($aspectratio !== $wantedaspectratio) { continue; } From c834d93e8778bbbe008c992e6fab5250296ec216 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 12 Jul 2013 14:16:06 +0200 Subject: [PATCH 099/170] OC\Preview - update git submodule --- 3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty b/3rdparty index 2176267239..31ed0ab78e 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 217626723957161191572ea50172a3943c30696d +Subproject commit 31ed0ab78e48d7515740b05f64c07a2b0648421f From 1303fe0f9fe7c67764fb48cbb84fcb30e4a32b33 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sun, 14 Jul 2013 00:00:10 +0200 Subject: [PATCH 100/170] OC\Preview - set scale factor down to 2 and upscale cached preview - this got lost in a git stash ... --- lib/preview.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 08c0b7e20d..03aaaceb9c 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -60,7 +60,7 @@ class Preview { //set config $this->configMaxX = \OC_Config::getValue('preview_max_x', null); $this->configMaxY = \OC_Config::getValue('preview_max_y', null); - $this->maxScaleFactor = \OC_Config::getValue('preview_max_scale_factor', 10); + $this->maxScaleFactor = \OC_Config::getValue('preview_max_scale_factor', 2); //save parameters $this->setFile($file); @@ -377,6 +377,7 @@ class Preview { if($cached) { $image = new \OC_Image($this->userview->file_get_contents($cached, 'r')); $this->preview = $image->valid() ? $image : null; + $this->resizeAndCrop(); } if(is_null($this->preview)) { From 65affdc9b32629ab4692f77ffd4dff77e026b1dc Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 29 Jul 2013 14:40:26 +0200 Subject: [PATCH 101/170] make previews in files app smaller --- lib/helper.php | 4 ++-- lib/preview.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/helper.php b/lib/helper.php index 6153f31872..0853c79275 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -231,11 +231,11 @@ class OC_Helper { * Returns the path to the preview of the file. */ public static function previewIcon($path) { - return self::linkToRoute( 'core_ajax_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path) )); + return self::linkToRoute( 'core_ajax_preview', array('x' => 36, 'y' => 36, 'file' => urlencode($path) )); } public static function publicPreview_icon( $path, $token ) { - return self::linkToRoute( 'core_ajax_public_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path), 't' => $token)); + return self::linkToRoute( 'core_ajax_public_preview', array('x' => 36, 'y' => 36, 'file' => urlencode($path), 't' => $token)); } /** diff --git a/lib/preview.php b/lib/preview.php index 03aaaceb9c..c570a17e4a 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -784,7 +784,7 @@ class PreviewManager { public static function showErrorPreview() { $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; $preview = new \OC_Image($path); - $preview->preciseResize(44, 44); + $preview->preciseResize(36, 36); $preview->show(); } } \ No newline at end of file From e01bc7de987ddb7d33feb75ad598bdf97c348105 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 29 Jul 2013 14:46:20 +0200 Subject: [PATCH 102/170] Revert "OC\Preview - outsource static methods" This reverts commit 14a35267c15115a1e7d2901ddd9b8c5c7e1b9a31. --- core/routes.php | 7 +++---- lib/preview.php | 37 +++++++++++++--------------------- lib/preview/images.php | 2 +- lib/preview/libreoffice-cl.php | 10 ++++----- lib/preview/movies.php | 2 +- lib/preview/mp3.php | 2 +- lib/preview/msoffice.php | 12 +++++------ lib/preview/pdf.php | 2 +- lib/preview/svg.php | 2 +- lib/preview/txt.php | 6 +++--- lib/preview/unknown.php | 2 +- 11 files changed, 37 insertions(+), 47 deletions(-) diff --git a/core/routes.php b/core/routes.php index c0e658b26d..41e82f8a73 100644 --- a/core/routes.php +++ b/core/routes.php @@ -42,13 +42,12 @@ $this->create('js_config', '/core/js/config.js') // Routing $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); -OC::$CLASSPATH['OC\PreviewManager'] = 'lib/preview.php'; $this->create('core_ajax_preview', '/core/preview.png') - ->action('OC\PreviewManager', 'previewRouter'); + ->action('OC\Preview', 'previewRouter'); $this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png') - ->action('OC\PreviewManager', 'trashbinPreviewRouter'); + ->action('OC\Preview', 'trashbinPreviewRouter'); $this->create('core_ajax_public_preview', '/core/publicpreview.png') - ->action('OC\PreviewManager', 'publicPreviewRouter'); + ->action('OC\Preview', 'publicPreviewRouter'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() diff --git a/lib/preview.php b/lib/preview.php index c570a17e4a..113b200c29 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -44,6 +44,10 @@ class Preview { //preview images object private $preview; + //preview providers + static private $providers = array(); + static private $registeredProviders = array(); + /** * @brief check if thumbnail or bigger version of thumbnail of file is cached * @param string $user userid - if no user is given, OC_User::getUser will be used @@ -78,13 +82,11 @@ class Preview { $this->preview = null; //check if there are preview backends - $providers = PreviewManager::getProviders(); - if(empty($providers)) { - PreviewManager::initProviders(); + if(empty(self::$providers)) { + self::initProviders(); } - $providers = PreviewManager::getProviders(); - if(empty($providers)) { + if(empty(self::$providers)) { \OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR); throw new \Exception('No preview providers'); } @@ -384,8 +386,7 @@ class Preview { $mimetype = $this->fileview->getMimeType($file); $preview = null; - $providers = PreviewManager::getProviders(); - foreach($providers as $supportedmimetype => $provider) { + foreach(self::$providers as $supportedmimetype => $provider) { if(!preg_match($supportedmimetype, $mimetype)) { continue; } @@ -549,16 +550,6 @@ class Preview { return; } } -} - -class PreviewManager { - //preview providers - static private $providers = array(); - static private $registeredProviders = array(); - - public static function getProviders() { - return self::$providers; - } /** * @brief register a new preview provider to be used @@ -574,7 +565,7 @@ class PreviewManager { * @brief create instances of all the registered preview providers * @return void */ - public static function initProviders() { + private static function initProviders() { if(count(self::$providers)>0) { return; } @@ -600,8 +591,8 @@ class PreviewManager { \OC_Util::checkLoggedIn(); $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; - $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; - $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; + $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36'; + $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36'; $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; if($file === '') { @@ -644,8 +635,8 @@ class PreviewManager { } $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; - $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; - $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; + $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36'; + $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36'; $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; $token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : ''; @@ -781,7 +772,7 @@ class PreviewManager { $preview->deleteAllPreviews(); } - public static function showErrorPreview() { + private static function showErrorPreview() { $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; $preview = new \OC_Image($path); $preview->preciseResize(36, 36); diff --git a/lib/preview/images.php b/lib/preview/images.php index 84ab9f1ae4..987aa9aef0 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -30,4 +30,4 @@ class Image extends Provider { } } -\OC\PreviewManager::registerProvider('OC\Preview\Image'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\Image'); \ No newline at end of file diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index ffe8de505f..2749c4867e 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -80,7 +80,7 @@ class MSOfficeDoc extends Office { } -\OC\PreviewManager::registerProvider('OC\Preview\MSOfficeDoc'); +\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc'); //.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m) class MSOffice2003 extends Office { @@ -91,7 +91,7 @@ class MSOffice2003 extends Office { } -\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2003'); +\OC\Preview::registerProvider('OC\Preview\MSOffice2003'); //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx class MSOffice2007 extends Office { @@ -102,7 +102,7 @@ class MSOffice2007 extends Office { } -\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2007'); +\OC\Preview::registerProvider('OC\Preview\MSOffice2007'); //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt class OpenDocument extends Office { @@ -113,7 +113,7 @@ class OpenDocument extends Office { } -\OC\PreviewManager::registerProvider('OC\Preview\OpenDocument'); +\OC\Preview::registerProvider('OC\Preview\OpenDocument'); //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm class StarOffice extends Office { @@ -124,4 +124,4 @@ class StarOffice extends Office { } -\OC\PreviewManager::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\StarOffice'); \ No newline at end of file diff --git a/lib/preview/movies.php b/lib/preview/movies.php index f4452e02fc..8531050d11 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -39,5 +39,5 @@ if(!is_null(shell_exec('ffmpeg -version'))) { } } - \OC\PreviewManager::registerProvider('OC\Preview\Movie'); + \OC\Preview::registerProvider('OC\Preview\Movie'); } \ No newline at end of file diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index baa24ad129..835ff52900 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -43,4 +43,4 @@ class MP3 extends Provider { } -\OC\PreviewManager::registerProvider('OC\Preview\MP3'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\MP3'); \ No newline at end of file diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index 9f6ea7f74c..ccf1d674c7 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -20,7 +20,7 @@ class DOC extends Provider { } -\OC\PreviewManager::registerProvider('OC\Preview\DOC'); +\OC\Preview::registerProvider('OC\Preview\DOC'); */ class DOCX extends Provider { @@ -50,7 +50,7 @@ class DOCX extends Provider { } -\OC\PreviewManager::registerProvider('OC\Preview\DOCX'); +\OC\Preview::registerProvider('OC\Preview\DOCX'); class MSOfficeExcel extends Provider { @@ -95,7 +95,7 @@ class XLS extends MSOfficeExcel { } -\OC\PreviewManager::registerProvider('OC\Preview\XLS'); +\OC\Preview::registerProvider('OC\Preview\XLS'); class XLSX extends MSOfficeExcel { @@ -105,7 +105,7 @@ class XLSX extends MSOfficeExcel { } -\OC\PreviewManager::registerProvider('OC\Preview\XLSX'); +\OC\Preview::registerProvider('OC\Preview\XLSX'); /* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ... class MSOfficePowerPoint extends Provider { @@ -128,7 +128,7 @@ class PPT extends MSOfficePowerPoint { } -\OC\PreviewManager::registerProvider('OC\Preview\PPT'); +\OC\Preview::registerProvider('OC\Preview\PPT'); class PPTX extends MSOfficePowerPoint { @@ -138,5 +138,5 @@ class PPTX extends MSOfficePowerPoint { } -\OC\PreviewManager::registerProvider('OC\Preview\PPTX'); +\OC\Preview::registerProvider('OC\Preview\PPTX'); */ \ No newline at end of file diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 0d289e9db9..3eabd20115 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -36,5 +36,5 @@ if (extension_loaded('imagick')) { } } - \OC\PreviewManager::registerProvider('OC\Preview\PDF'); + \OC\Preview::registerProvider('OC\Preview\PDF'); } diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 5507686af9..bafaf71b15 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -39,6 +39,6 @@ if (extension_loaded('imagick')) { } } - \OC\PreviewManager::registerProvider('OC\Preview\SVG'); + \OC\Preview::registerProvider('OC\Preview\SVG'); } \ No newline at end of file diff --git a/lib/preview/txt.php b/lib/preview/txt.php index acbf34c5e4..c7b8fabc6b 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -46,7 +46,7 @@ class TXT extends Provider { } } -\OC\PreviewManager::registerProvider('OC\Preview\TXT'); +\OC\Preview::registerProvider('OC\Preview\TXT'); class PHP extends TXT { @@ -56,7 +56,7 @@ class PHP extends TXT { } -\OC\PreviewManager::registerProvider('OC\Preview\PHP'); +\OC\Preview::registerProvider('OC\Preview\PHP'); class JavaScript extends TXT { @@ -66,4 +66,4 @@ class JavaScript extends TXT { } -\OC\PreviewManager::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\JavaScript'); \ No newline at end of file diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index f9f6fe957b..a31b365722 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -40,4 +40,4 @@ class Unknown extends Provider { } } -\OC\PreviewManager::registerProvider('OC\Preview\Unknown'); \ No newline at end of file +\OC\Preview::registerProvider('OC\Preview\Unknown'); \ No newline at end of file From 1e4ec2ac276b15232824da056b6253696d324d42 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 29 Jul 2013 15:47:17 +0200 Subject: [PATCH 103/170] add class='preview-icon' to rows in file app that make use of previews --- apps/files/templates/part.list.php | 12 ++++++++-- lib/preview.php | 18 +++++++++++++- lib/public/preview.php | 38 +++++++++--------------------- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 9e62c99197..b87000a899 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -34,9 +34,17 @@ $totalsize = 0; ?> - style="background-image:url()" + + style="background-image:url()" class="preview-icon" + + style="background-image:url()" + - style="background-image:url()" + + style="background-image:url()" class="preview-icon" + + style="background-image:url()" + > diff --git a/lib/preview.php b/lib/preview.php index 113b200c29..245ad64014 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -771,7 +771,23 @@ class Preview { $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); $preview->deleteAllPreviews(); } - + + public static function isMimeSupported($mimetype) { + //check if there are preview backends + if(empty(self::$providers)) { + self::initProviders(); + } + + //remove last element because it has the mimetype * + $providers = array_slice(self::$providers, 0, -1); + foreach($providers as $supportedmimetype => $provider) { + if(preg_match($supportedmimetype, $mimetype)) { + return true; + } + } + return false; + } + private static function showErrorPreview() { $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; $preview = new \OC_Image($path); diff --git a/lib/public/preview.php b/lib/public/preview.php index a7487c485f..e488eade4d 100644 --- a/lib/public/preview.php +++ b/lib/public/preview.php @@ -1,33 +1,11 @@ . -* -*/ - -/** - * Public interface of ownCloud for apps to use. - * Preview Class. - * + * Copyright (c) 2013 Frank Karlitschek frank@owncloud.org + * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. */ - -// use OCP namespace for all classes that are considered public. -// This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; /** @@ -47,4 +25,10 @@ class Preview { return(\OC_Preview::show($file,$maxX,$maxY,$scaleup)); } + + + public static function isMimeSupported($mimetype='*') { + return \OC\Preview::isMimeSupported($mimetype); + } + } From 2ea8ee613986216a420fad2795b5e7fa89519d5e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 29 Jul 2013 16:27:40 +0200 Subject: [PATCH 104/170] add class='preview-icon' in trashbin app as well --- apps/files_trashbin/lib/trash.php | 2 +- apps/files_trashbin/templates/part.list.php | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index 4174ef0d18..71e76770aa 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -858,6 +858,6 @@ class Trashbin { } public static function preview_icon($path) { - return \OC_Helper::linkToRoute( 'core_ajax_trashbin_preview', array('x' => 44, 'y' => 44, 'file' => urlencode($path) )); + return \OC_Helper::linkToRoute( 'core_ajax_trashbin_preview', array('x' => 36, 'y' => 36, 'file' => urlencode($path) )); } } diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php index 44e2fc7293..71b9a23882 100644 --- a/apps/files_trashbin/templates/part.list.php +++ b/apps/files_trashbin/templates/part.list.php @@ -25,7 +25,11 @@ style="background-image:url()" - style="background-image:url()" + + style="background-image:url()" class="preview-icon" + + style="background-image:url()" + > From b4a523927823ab8bc80c5f1fc0d5bd5ef61f8eb8 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 29 Jul 2013 16:30:04 +0200 Subject: [PATCH 105/170] fix syntax in config.sample.php --- config/config.sample.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index cacca78e97..7629414ef1 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -185,7 +185,7 @@ $CONFIG = array( //links to custom clients 'customclient_desktop' => '', //http://owncloud.org/sync-clients/ 'customclient_android' => '', //https://play.google.com/store/apps/details?id=com.owncloud.android -'customclient_ios' => '' //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8 +'customclient_ios' => '', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8 // PREVIEW /* the max width of a generated preview, if value is null, there is no limit */ From ac6a3133eca86b853da838ae310534b76e9fb662 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 30 Jul 2013 12:29:12 +0200 Subject: [PATCH 106/170] style fixes --- apps/files/js/files.js | 2 +- apps/files/templates/part.list.php | 2 +- apps/files_sharing/public.php | 2 +- core/ajax/preview.php | 42 ++++ core/ajax/publicpreview.php | 92 +++++++++ core/ajax/trashbinpreview.php | 46 +++++ core/routes.php | 6 +- lib/helper.php | 2 +- lib/preview.php | 308 +++++++---------------------- lib/preview/images.php | 7 +- lib/preview/libreoffice-cl.php | 24 ++- lib/preview/movies.php | 22 ++- lib/preview/mp3.php | 20 +- lib/preview/msoffice.php | 24 +-- lib/preview/office.php | 7 +- lib/preview/pdf.php | 8 +- lib/preview/txt.php | 15 +- lib/preview/unknown.php | 8 +- lib/template.php | 3 + lib/template/functions.php | 16 ++ 20 files changed, 348 insertions(+), 308 deletions(-) create mode 100644 core/ajax/preview.php create mode 100644 core/ajax/publicpreview.php create mode 100644 core/ajax/trashbinpreview.php diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 53c6de09dd..8b66ed6747 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -825,7 +825,7 @@ function getMimeIcon(mime, ready){ getMimeIcon.cache={}; function getPreviewIcon(path, ready){ - ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:44, y:44})); + ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:36, y:36})); } function getUniqueName(name){ diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index a957a94f33..ab1b91167d 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -3,7 +3,7 @@ $totaldirs = 0; $totalsize = 0; ?> 6 $totalsize += $file['size']; if ($file['type'] === 'dir') { $totaldirs++; diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 284b7a3020..650fa6a7c2 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -196,7 +196,7 @@ if (isset($path)) { OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path='); $list->assign('isPublic', true); $list->assign('sharingtoken', $token); - $list->assign('sharingroot', ($path)); + $list->assign('sharingroot', $basePath); $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb); $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path='); diff --git a/core/ajax/preview.php b/core/ajax/preview.php new file mode 100644 index 0000000000..a9d127ffcc --- /dev/null +++ b/core/ajax/preview.php @@ -0,0 +1,42 @@ +setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingUp); + + $preview->show(); +}catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + \OC\Preview::showErrorPreview(); + exit; +} \ No newline at end of file diff --git a/core/ajax/publicpreview.php b/core/ajax/publicpreview.php new file mode 100644 index 0000000000..aace24caa2 --- /dev/null +++ b/core/ajax/publicpreview.php @@ -0,0 +1,92 @@ +setFile($sharedFile); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingUp); + + $preview->show(); +}catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + \OC\Preview::showErrorPreview(); + exit; +} \ No newline at end of file diff --git a/core/ajax/trashbinpreview.php b/core/ajax/trashbinpreview.php new file mode 100644 index 0000000000..d018a57d37 --- /dev/null +++ b/core/ajax/trashbinpreview.php @@ -0,0 +1,46 @@ +setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingUp); + + $preview->showPreview(); +}catch(\Exception $e) { + \OC_Response::setStatus(500); + \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); + \OC\Preview::showErrorPreview(); + exit; +} \ No newline at end of file diff --git a/core/routes.php b/core/routes.php index 41e82f8a73..75cc4d511c 100644 --- a/core/routes.php +++ b/core/routes.php @@ -43,11 +43,11 @@ $this->create('js_config', '/core/js/config.js') $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); $this->create('core_ajax_preview', '/core/preview.png') - ->action('OC\Preview', 'previewRouter'); + ->actionInclude('core/ajax/preview.php'); $this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png') - ->action('OC\Preview', 'trashbinPreviewRouter'); + ->actionInclude('core/ajax/trashbinpreview.php'); $this->create('core_ajax_public_preview', '/core/publicpreview.png') - ->action('OC\Preview', 'publicPreviewRouter'); + ->actionInclude('core/ajax/publicpreview.php'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() diff --git a/lib/helper.php b/lib/helper.php index 460e5679b0..b74e4c4512 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -233,7 +233,7 @@ class OC_Helper { return self::linkToRoute( 'core_ajax_preview', array('x' => 36, 'y' => 36, 'file' => urlencode($path) )); } - public static function publicPreview_icon( $path, $token ) { + public static function publicPreviewIcon( $path, $token ) { return self::linkToRoute( 'core_ajax_public_preview', array('x' => 36, 'y' => 36, 'file' => urlencode($path), 't' => $token)); } diff --git a/lib/preview.php b/lib/preview.php index 245ad64014..9f4d20b465 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -55,12 +55,12 @@ class Preview { * @param string $file The path to the file where you want a thumbnail from * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image - * @param bool $scalingup Disable/Enable upscaling of previews + * @param bool $scalingUp Disable/Enable upscaling of previews * @return mixed (bool / string) * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ - public function __construct($user='', $root='/', $file='', $maxX=1, $maxY=1, $scalingup=true) { + public function __construct($user='', $root='/', $file='', $maxX=1, $maxY=1, $scalingUp=true) { //set config $this->configMaxX = \OC_Config::getValue('preview_max_x', null); $this->configMaxY = \OC_Config::getValue('preview_max_y', null); @@ -70,11 +70,11 @@ class Preview { $this->setFile($file); $this->setMaxX($maxX); $this->setMaxY($maxY); - $this->setScalingUp($scalingup); + $this->setScalingUp($scalingUp); //init fileviews if($user === ''){ - $user = OC_User::getUser(); + $user = \OC_User::getUser(); } $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); $this->userview = new \OC\Files\View('/' . $user); @@ -120,7 +120,7 @@ class Preview { * @brief returns whether or not scalingup is enabled * @return bool */ - public function getScalingup() { + public function getScalingUp() { return $this->scalingup; } @@ -172,8 +172,8 @@ class Preview { * @return $this */ public function setMaxX($maxX=1) { - if($maxX === 0) { - throw new \Exception('Cannot set width of 0!'); + if($maxX <= 0) { + throw new \Exception('Cannot set width of 0 or smaller!'); } $configMaxX = $this->getConfigMaxX(); if(!is_null($configMaxX)) { @@ -192,8 +192,8 @@ class Preview { * @return $this */ public function setMaxY($maxY=1) { - if($maxY === 0) { - throw new \Exception('Cannot set height of 0!'); + if($maxY <= 0) { + throw new \Exception('Cannot set height of 0 or smaller!'); } $configMaxY = $this->getConfigMaxY(); if(!is_null($configMaxY)) { @@ -208,14 +208,14 @@ class Preview { /** * @brief set whether or not scalingup is enabled - * @param bool $scalingup + * @param bool $scalingUp * @return $this */ - public function setScalingup($scalingup) { + public function setScalingup($scalingUp) { if($this->getMaxScaleFactor() === 1) { - $scalingup = false; + $scalingUp = false; } - $this->scalingup = $scalingup; + $this->scalingup = $scalingUp; return $this; } @@ -245,12 +245,12 @@ class Preview { public function deletePreview() { $file = $this->getFile(); - $fileinfo = $this->fileview->getFileInfo($file); - $fileid = $fileinfo['fileid']; + $fileInfo = $this->fileview->getFileInfo($file); + $fileId = $fileInfo['fileid']; - $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; - $this->userview->unlink($previewpath); - return !$this->userview->file_exists($previewpath); + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; + $this->userview->unlink($previewPath); + return !$this->userview->file_exists($previewPath); } /** @@ -260,13 +260,13 @@ class Preview { public function deleteAllPreviews() { $file = $this->getFile(); - $fileinfo = $this->fileview->getFileInfo($file); - $fileid = $fileinfo['fileid']; + $fileInfo = $this->fileview->getFileInfo($file); + $fileId = $fileInfo['fileid']; - $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; - $this->userview->deleteAll($previewpath); - $this->userview->rmdir($previewpath); - return !$this->userview->is_dir($previewpath); + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $this->userview->deleteAll($previewPath); + $this->userview->rmdir($previewPath); + return !$this->userview->is_dir($previewPath); } /** @@ -279,45 +279,45 @@ class Preview { $file = $this->getFile(); $maxX = $this->getMaxX(); $maxY = $this->getMaxY(); - $scalingup = $this->getScalingup(); + $scalingUp = $this->getScalingUp(); $maxscalefactor = $this->getMaxScaleFactor(); - $fileinfo = $this->fileview->getFileInfo($file); - $fileid = $fileinfo['fileid']; + $fileInfo = $this->fileview->getFileInfo($file); + $fileId = $fileInfo['fileid']; - if(is_null($fileid)) { + if(is_null($fileId)) { return false; } - $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; - if(!$this->userview->is_dir($previewpath)) { + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + if(!$this->userview->is_dir($previewPath)) { return false; } //does a preview with the wanted height and width already exist? - if($this->userview->file_exists($previewpath . $maxX . '-' . $maxY . '.png')) { - return $previewpath . $maxX . '-' . $maxY . '.png'; + if($this->userview->file_exists($previewPath . $maxX . '-' . $maxY . '.png')) { + return $previewPath . $maxX . '-' . $maxY . '.png'; } - $wantedaspectratio = (float) ($maxX / $maxY); + $wantedAspectRatio = (float) ($maxX / $maxY); //array for usable cached thumbnails - $possiblethumbnails = array(); + $possibleThumbnails = array(); - $allthumbnails = $this->userview->getDirectoryContent($previewpath); - foreach($allthumbnails as $thumbnail) { + $allThumbnails = $this->userview->getDirectoryContent($previewPath); + foreach($allThumbnails as $thumbnail) { $name = rtrim($thumbnail['name'], '.png'); $size = explode('-', $name); $x = (int) $size[0]; $y = (int) $size[1]; - $aspectratio = (float) ($x / $y); - if($aspectratio !== $wantedaspectratio) { + $aspectRatio = (float) ($x / $y); + if($aspectRatio !== $wantedAspectRatio) { continue; } if($x < $maxX || $y < $maxY) { - if($scalingup) { + if($scalingUp) { $scalefactor = $maxX / $x; if($scalefactor > $maxscalefactor) { continue; @@ -326,28 +326,28 @@ class Preview { continue; } } - $possiblethumbnails[$x] = $thumbnail['path']; + $possibleThumbnails[$x] = $thumbnail['path']; } - if(count($possiblethumbnails) === 0) { + if(count($possibleThumbnails) === 0) { return false; } - if(count($possiblethumbnails) === 1) { - return current($possiblethumbnails); + if(count($possibleThumbnails) === 1) { + return current($possibleThumbnails); } - ksort($possiblethumbnails); + ksort($possibleThumbnails); - if(key(reset($possiblethumbnails)) > $maxX) { - return current(reset($possiblethumbnails)); + if(key(reset($possibleThumbnails)) > $maxX) { + return current(reset($possibleThumbnails)); } - if(key(end($possiblethumbnails)) < $maxX) { - return current(end($possiblethumbnails)); + if(key(end($possibleThumbnails)) < $maxX) { + return current(end($possibleThumbnails)); } - foreach($possiblethumbnails as $width => $path) { + foreach($possibleThumbnails as $width => $path) { if($width < $maxX) { continue; }else{ @@ -358,7 +358,7 @@ class Preview { /** * @brief return a preview of a file - * @return image + * @return \OC_Image */ public function getPreview() { if(!is_null($this->preview) && $this->preview->valid()){ @@ -369,10 +369,10 @@ class Preview { $file = $this->getFile(); $maxX = $this->getMaxX(); $maxY = $this->getMaxY(); - $scalingup = $this->getScalingup(); + $scalingUp = $this->getScalingUp(); - $fileinfo = $this->fileview->getFileInfo($file); - $fileid = $fileinfo['fileid']; + $fileInfo = $this->fileview->getFileInfo($file); + $fileId = $fileInfo['fileid']; $cached = $this->isCached(); @@ -386,12 +386,12 @@ class Preview { $mimetype = $this->fileview->getMimeType($file); $preview = null; - foreach(self::$providers as $supportedmimetype => $provider) { - if(!preg_match($supportedmimetype, $mimetype)) { + foreach(self::$providers as $supportedMimetype => $provider) { + if(!preg_match($supportedMimetype, $mimetype)) { continue; } - $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup, $this->fileview); + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingUp, $this->fileview); if(!($preview instanceof \OC_Image)) { continue; @@ -400,18 +400,18 @@ class Preview { $this->preview = $preview; $this->resizeAndCrop(); - $previewpath = $this->getThumbnailsFolder() . '/' . $fileid . '/'; - $cachepath = $previewpath . $maxX . '-' . $maxY . '.png'; + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $cachePath = $previewPath . $maxX . '-' . $maxY . '.png'; if($this->userview->is_dir($this->getThumbnailsFolder() . '/') === false) { $this->userview->mkdir($this->getThumbnailsFolder() . '/'); } - if($this->userview->is_dir($previewpath) === false) { - $this->userview->mkdir($previewpath); + if($this->userview->is_dir($previewPath) === false) { + $this->userview->mkdir($previewPath); } - $this->userview->file_put_contents($cachepath, $preview->data()); + $this->userview->file_put_contents($cachePath, $preview->data()); break; } @@ -447,13 +447,13 @@ class Preview { /** * @brief resize, crop and fix orientation - * @return image + * @return void */ private function resizeAndCrop() { $image = $this->preview; $x = $this->getMaxX(); $y = $this->getMaxY(); - $scalingup = $this->getScalingup(); + $scalingUp = $this->getScalingUp(); $maxscalefactor = $this->getMaxScaleFactor(); if(!($image instanceof \OC_Image)) { @@ -480,7 +480,7 @@ class Preview { $factor = $factorY; } - if($scalingup === false) { + if($scalingUp === false) { if($factor > 1) { $factor = 1; } @@ -583,182 +583,6 @@ class Preview { array_multisort($keys, SORT_DESC, self::$providers); } - /** - * @brief method that handles preview requests from users that are logged in - * @return void - */ - public static function previewRouter() { - \OC_Util::checkLoggedIn(); - - $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; - $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36'; - $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36'; - $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; - - if($file === '') { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - if($maxX === 0 || $maxY === 0) { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - try{ - $preview = new Preview(\OC_User::getUser(), 'files'); - $preview->setFile($file); - $preview->setMaxX($maxX); - $preview->setMaxY($maxY); - $preview->setScalingUp($scalingup); - - $preview->show(); - }catch(\Exception $e) { - \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - self::showErrorPreview(); - exit; - } - } - - /** - * @brief method that handles preview requests from users that are not logged in / view shared folders that are public - * @return void - */ - public static function publicPreviewRouter() { - if(!\OC_App::isEnabled('files_sharing')){ - exit; - } - - $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; - $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36'; - $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36'; - $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; - $token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : ''; - - if($token === ''){ - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'No token parameter was passed', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - $linkedItem = \OCP\Share::getShareByToken($token); - if($linkedItem === false || ($linkedItem['item_type'] !== 'file' && $linkedItem['item_type'] !== 'folder')) { - \OC_Response::setStatus(404); - \OC_Log::write('core-preview', 'Passed token parameter is not valid', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - if(!isset($linkedItem['uid_owner']) || !isset($linkedItem['file_source'])) { - \OC_Response::setStatus(500); - \OC_Log::write('core-preview', 'Passed token seems to be valid, but it does not contain all necessary information . ("' . $token . '")'); - self::showErrorPreview(); - exit; - } - - $userid = $linkedItem['uid_owner']; - \OC_Util::setupFS($userid); - - $pathid = $linkedItem['file_source']; - $path = \OC\Files\Filesystem::getPath($pathid); - $pathinfo = \OC\Files\Filesystem::getFileInfo($path); - $sharedfile = null; - - if($linkedItem['item_type'] === 'folder') { - $isvalid = \OC\Files\Filesystem::isValidPath($file); - if(!$isvalid) { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'Passed filename is not valid, might be malicious (file:"' . $file . '";ip:"' . $_SERVER['REMOTE_ADDR'] . '")', \OC_Log::WARN); - self::showErrorPreview(); - exit; - } - $sharedfile = \OC\Files\Filesystem::normalizePath($file); - } - - if($linkedItem['item_type'] === 'file') { - $parent = $pathinfo['parent']; - $path = \OC\Files\Filesystem::getPath($parent); - $sharedfile = $pathinfo['name']; - } - - $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) === '/') { - $path = substr($path, 1); - } - - if($maxX === 0 || $maxY === 0) { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - $root = 'files/' . $path; - - try{ - $preview = new Preview($userid, $root); - $preview->setFile($file); - $preview->setMaxX($maxX); - $preview->setMaxY($maxY); - $preview->setScalingUp($scalingup); - - $preview->show(); - }catch(\Exception $e) { - \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - self::showErrorPreview(); - exit; - } - } - - public static function trashbinPreviewRouter() { - \OC_Util::checkLoggedIn(); - - if(!\OC_App::isEnabled('files_trashbin')){ - exit; - } - - $file = array_key_exists('file', $_GET) ? (string) urldecode($_GET['file']) : ''; - $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '44'; - $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '44'; - $scalingup = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; - - if($file === '') { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - if($maxX === 0 || $maxY === 0) { - \OC_Response::setStatus(400); //400 Bad Request - \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - self::showErrorPreview(); - exit; - } - - try{ - $preview = new Preview(\OC_User::getUser(), 'files_trashbin/files'); - $preview->setFile($file); - $preview->setMaxX($maxX); - $preview->setMaxY($maxY); - $preview->setScalingUp($scalingup); - - $preview->showPreview(); - }catch(\Exception $e) { - \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - self::showErrorPreview(); - exit; - } - } - public static function post_write($args) { self::post_delete($args); } @@ -780,8 +604,8 @@ class Preview { //remove last element because it has the mimetype * $providers = array_slice(self::$providers, 0, -1); - foreach($providers as $supportedmimetype => $provider) { - if(preg_match($supportedmimetype, $mimetype)) { + foreach($providers as $supportedMimetype => $provider) { + if(preg_match($supportedMimetype, $mimetype)) { return true; } } diff --git a/lib/preview/images.php b/lib/preview/images.php index 987aa9aef0..9aec967282 100644 --- a/lib/preview/images.php +++ b/lib/preview/images.php @@ -16,10 +16,13 @@ class Image extends Provider { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { //get fileinfo - $fileinfo = $fileview->getFileInfo($path); + $fileInfo = $fileview->getFileInfo($path); + if(!$fileInfo) { + return false; + } //check if file is encrypted - if($fileinfo['encrypted'] === true) { + if($fileInfo['encrypted'] === true) { $image = new \OC_Image(stream_get_contents($fileview->fopen($path, 'r'))); }else{ $image = new \OC_Image(); diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 2749c4867e..0f4ec3d034 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -22,28 +22,30 @@ class Office extends Provider { return false; } - $abspath = $fileview->toTmpFile($path); + $absPath = $fileview->toTmpFile($path); - $tmpdir = get_temp_dir(); + $tmpDir = get_temp_dir(); - $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpdir) . ' ' . escapeshellarg($abspath); - $export = 'export HOME=/' . $tmpdir; + $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); + $export = 'export HOME=/' . $tmpDir; shell_exec($export . "\n" . $exec); //create imagick object from pdf try{ - $pdf = new \imagick($abspath . '.pdf' . '[0]'); + $pdf = new \imagick($absPath . '.pdf' . '[0]'); $pdf->setImageFormat('jpg'); - }catch(\Exception $e){ + }catch (\Exception $e) { + unlink($absPath); + unlink($absPath . '.pdf'); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } $image = new \OC_Image($pdf); - unlink($abspath); - unlink($abspath . '.pdf'); + unlink($absPath); + unlink($absPath . '.pdf'); return $image->valid() ? $image : false; } @@ -55,11 +57,13 @@ class Office extends Provider { $cmd = \OC_Config::getValue('preview_libreoffice_path', null); } - if($cmd === '' && shell_exec('libreoffice --headless --version')) { + $whichLibreOffice = shell_exec('which libreoffice'); + if($cmd === '' && !empty($whichLibreOffice)) { $cmd = 'libreoffice'; } - if($cmd === '' && shell_exec('openoffice --headless --version')) { + $whichOpenOffice = shell_exec('which openoffice'); + if($cmd === '' && !empty($whichOpenOffice)) { $cmd = 'openoffice'; } diff --git a/lib/preview/movies.php b/lib/preview/movies.php index 8531050d11..e2a1b8eddd 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -8,7 +8,11 @@ */ namespace OC\Preview; -if(!is_null(shell_exec('ffmpeg -version'))) { +$isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions'))); +$whichFFMPEG = shell_exec('which ffmpeg'); +$isFFMPEGAvailable = !empty($whichFFMPEG); + +if($isShellExecEnabled && $isFFMPEGAvailable) { class Movie extends Provider { @@ -17,23 +21,23 @@ if(!is_null(shell_exec('ffmpeg -version'))) { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $abspath = \OC_Helper::tmpFile(); - $tmppath = \OC_Helper::tmpFile(); + $absPath = \OC_Helper::tmpFile(); + $tmpPath = \OC_Helper::tmpFile(); $handle = $fileview->fopen($path, 'rb'); $firstmb = stream_get_contents($handle, 1048576); //1024 * 1024 = 1048576 - file_put_contents($abspath, $firstmb); + file_put_contents($absPath, $firstmb); - //$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath; - $cmd = 'ffmpeg -an -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); + //$cmd = 'ffmpeg -y -i ' . escapeshellarg($absPath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmpPath; + $cmd = 'ffmpeg -an -y -i ' . escapeshellarg($absPath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmpPath); shell_exec($cmd); - $image = new \OC_Image($tmppath); + $image = new \OC_Image($tmpPath); - unlink($abspath); - unlink($tmppath); + unlink($absPath); + unlink($tmpPath); return $image->valid() ? $image : false; } diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php index 835ff52900..1eed566315 100644 --- a/lib/preview/mp3.php +++ b/lib/preview/mp3.php @@ -18,19 +18,21 @@ class MP3 extends Provider { $getID3 = new \getID3(); - $tmppath = $fileview->toTmpFile($path); + $tmpPath = $fileview->toTmpFile($path); - $tags = $getID3->analyze($tmppath); - \getid3_lib::CopyTagsToComments($tags); - $picture = @$tags['id3v2']['APIC'][0]['data']; + $tags = $getID3->analyze($tmpPath); + \getid3_lib::CopyTagsToComments($tags); + if(isset($tags['id3v2']['APIC'][0]['data'])) { + $picture = @$tags['id3v2']['APIC'][0]['data']; + unlink($tmpPath); + $image = new \OC_Image($picture); + return $image->valid() ? $image : $this->getNoCoverThumbnail(); + } - unlink($tmppath); - - $image = new \OC_Image($picture); - return $image->valid() ? $image : $this->getNoCoverThumbnail($maxX, $maxY); + return $this->getNoCoverThumbnail(); } - public function getNoCoverThumbnail($maxX, $maxY) { + private function getNoCoverThumbnail() { $icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.png'; if(!file_exists($icon)) { diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index ccf1d674c7..e69ab0ab8c 100644 --- a/lib/preview/msoffice.php +++ b/lib/preview/msoffice.php @@ -32,16 +32,16 @@ class DOCX extends Provider { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { require_once('phpdocx/classes/TransformDoc.inc'); - $tmpdoc = $fileview->toTmpFile($path); + $tmpDoc = $fileview->toTmpFile($path); $transformdoc = new \TransformDoc(); - $transformdoc->setStrFile($tmpdoc); - $transformdoc->generatePDF($tmpdoc); + $transformdoc->setStrFile($tmpDoc); + $transformdoc->generatePDF($tmpDoc); - $pdf = new \imagick($tmpdoc . '[0]'); + $pdf = new \imagick($tmpDoc . '[0]'); $pdf->setImageFormat('jpg'); - unlink($tmpdoc); + unlink($tmpDoc); $image = new \OC_Image($pdf); @@ -62,23 +62,23 @@ class MSOfficeExcel extends Provider { require_once('PHPExcel/Classes/PHPExcel.php'); require_once('PHPExcel/Classes/PHPExcel/IOFactory.php'); - $abspath = $fileview->toTmpFile($path); - $tmppath = \OC_Helper::tmpFile(); + $absPath = $fileview->toTmpFile($path); + $tmpPath = \OC_Helper::tmpFile(); $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF; $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/3rdparty/dompdf'; \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath); - $phpexcel = new \PHPExcel($abspath); + $phpexcel = new \PHPExcel($absPath); $excel = \PHPExcel_IOFactory::createWriter($phpexcel, 'PDF'); - $excel->save($tmppath); + $excel->save($tmpPath); - $pdf = new \imagick($tmppath . '[0]'); + $pdf = new \imagick($tmpPath . '[0]'); $pdf->setImageFormat('jpg'); - unlink($abspath); - unlink($tmppath); + unlink($absPath); + unlink($tmpPath); $image = new \OC_Image($pdf); diff --git a/lib/preview/office.php b/lib/preview/office.php index b6783bc579..b93e1e57c8 100644 --- a/lib/preview/office.php +++ b/lib/preview/office.php @@ -7,8 +7,13 @@ */ //both, libreoffice backend and php fallback, need imagick if (extension_loaded('imagick')) { + $isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions'))); + $whichLibreOffice = shell_exec('which libreoffice'); + $isLibreOfficeAvailable = !empty($whichLibreOffice); + $whichOpenOffice = shell_exec('which libreoffice'); + $isOpenOfficeAvailable = !empty($whichOpenOffice); //let's see if there is libreoffice or openoffice on this machine - if(shell_exec('libreoffice --headless --version') || shell_exec('openoffice --headless --version') || is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { + if($isShellExecEnabled && ($isLibreOfficeAvailable || $isOpenOfficeAvailable || is_string(\OC_Config::getValue('preview_libreoffice_path', null)))) { require_once('libreoffice-cl.php'); }else{ //in case there isn't, use our fallback diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 3eabd20115..723dc1d80d 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -16,18 +16,18 @@ if (extension_loaded('imagick')) { } public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { - $tmppath = $fileview->toTmpFile($path); + $tmpPath = $fileview->toTmpFile($path); //create imagick object from pdf try{ - $pdf = new \imagick($tmppath . '[0]'); + $pdf = new \imagick($tmpPath . '[0]'); $pdf->setImageFormat('jpg'); - }catch(\Exception $e){ + }catch (\Exception $e) { \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } - unlink($tmppath); + unlink($tmpPath); //new image object $image = new \OC_Image($pdf); diff --git a/lib/preview/txt.php b/lib/preview/txt.php index c7b8fabc6b..89927fd580 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -18,24 +18,23 @@ class TXT extends Provider { $content = stream_get_contents($content); $lines = preg_split("/\r\n|\n|\r/", $content); - $numoflines = count($lines); - $fontsize = 5; //5px - $linesize = ceil($fontsize * 1.25); + $fontSize = 5; //5px + $lineSize = ceil($fontSize * 1.25); $image = imagecreate($maxX, $maxY); - $imagecolor = imagecolorallocate($image, 255, 255, 255); - $textcolor = imagecolorallocate($image, 0, 0, 0); + imagecolorallocate($image, 255, 255, 255); + $textColor = imagecolorallocate($image, 0, 0, 0); foreach($lines as $index => $line) { $index = $index + 1; $x = (int) 1; - $y = (int) ($index * $linesize) - $fontsize; + $y = (int) ($index * $lineSize) - $fontSize; - imagestring($image, 1, $x, $y, $line, $textcolor); + imagestring($image, 1, $x, $y, $line, $textColor); - if(($index * $linesize) >= $maxY) { + if(($index * $lineSize) >= $maxY) { break; } } diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index a31b365722..ba13ca35d6 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -20,7 +20,7 @@ class Unknown extends Provider { list($type, $subtype) = explode('/', $mimetype); } - $iconsroot = \OC::$SERVERROOT . '/core/img/filetypes/'; + $iconsRoot = \OC::$SERVERROOT . '/core/img/filetypes/'; if(isset($type)){ $icons = array($mimetype, $type, 'text'); @@ -30,10 +30,10 @@ class Unknown extends Provider { foreach($icons as $icon) { $icon = str_replace('/', '-', $icon); - $iconpath = $iconsroot . $icon . '.png'; + $iconPath = $iconsRoot . $icon . '.png'; - if(file_exists($iconpath)) { - return new \OC_Image($iconpath); + if(file_exists($iconPath)) { + return new \OC_Image($iconPath); } } return false; diff --git a/lib/template.php b/lib/template.php index caa1e667c6..9b2c1211e6 100644 --- a/lib/template.php +++ b/lib/template.php @@ -23,6 +23,9 @@ require_once __DIR__.'/template/functions.php'; +/** + * This class provides the templates for ownCloud. + */ class OC_Template extends \OC\Template\Base { private $renderas; // Create a full page? private $path; // The path to the template diff --git a/lib/template/functions.php b/lib/template/functions.php index a864614c9a..842f28c90e 100644 --- a/lib/template/functions.php +++ b/lib/template/functions.php @@ -47,6 +47,22 @@ function image_path( $app, $image ) { return OC_Helper::imagePath( $app, $image ); } +/** + * @brief make preview_icon available as a simple function + * Returns the path to the preview of the image. + * @param $path path of file + * @returns link to the preview + * + * For further information have a look at OC_Helper::previewIcon + */ +function preview_icon( $path ) { + return OC_Helper::previewIcon( $path ); +} + +function publicPreview_icon ( $path, $token ) { + return OC_Helper::publicPreviewIcon( $path, $token ); +} + /** * @brief make OC_Helper::mimetypeIcon available as a simple function * @param string $mimetype mimetype From d84d8f71082ba17a9f37f86600a71d20e2481772 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 30 Jul 2013 12:35:39 +0200 Subject: [PATCH 107/170] fix merge conflicts --- lib/template/functions.php | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/lib/template/functions.php b/lib/template/functions.php index 842f28c90e..a892e31036 100644 --- a/lib/template/functions.php +++ b/lib/template/functions.php @@ -47,22 +47,6 @@ function image_path( $app, $image ) { return OC_Helper::imagePath( $app, $image ); } -/** - * @brief make preview_icon available as a simple function - * Returns the path to the preview of the image. - * @param $path path of file - * @returns link to the preview - * - * For further information have a look at OC_Helper::previewIcon - */ -function preview_icon( $path ) { - return OC_Helper::previewIcon( $path ); -} - -function publicPreview_icon ( $path, $token ) { - return OC_Helper::publicPreviewIcon( $path, $token ); -} - /** * @brief make OC_Helper::mimetypeIcon available as a simple function * @param string $mimetype mimetype @@ -87,7 +71,7 @@ function preview_icon( $path ) { } function publicPreview_icon ( $path, $token ) { - return OC_Helper::publicPreview_icon( $path, $token ); + return OC_Helper::publicPreviewIcon( $path, $token ); } /** From 640253fa31928ff52ba41e53cf50192c4b0002e9 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 30 Jul 2013 13:43:15 +0200 Subject: [PATCH 108/170] fix code style of try catch blocks --- core/ajax/publicpreview.php | 2 +- lib/preview/libreoffice-cl.php | 2 +- lib/preview/pdf.php | 2 +- lib/preview/svg.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/ajax/publicpreview.php b/core/ajax/publicpreview.php index aace24caa2..955fbc2626 100644 --- a/core/ajax/publicpreview.php +++ b/core/ajax/publicpreview.php @@ -84,7 +84,7 @@ try{ $preview->setScalingUp($scalingUp); $preview->show(); -}catch(\Exception $e) { +} catch (\Exception $e) { \OC_Response::setStatus(500); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); \OC\Preview::showErrorPreview(); diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 0f4ec3d034..2f1d08499e 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/libreoffice-cl.php @@ -35,7 +35,7 @@ class Office extends Provider { try{ $pdf = new \imagick($absPath . '.pdf' . '[0]'); $pdf->setImageFormat('jpg'); - }catch (\Exception $e) { + } catch (\Exception $e) { unlink($absPath); unlink($absPath . '.pdf'); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 723dc1d80d..cc974b6881 100644 --- a/lib/preview/pdf.php +++ b/lib/preview/pdf.php @@ -22,7 +22,7 @@ if (extension_loaded('imagick')) { try{ $pdf = new \imagick($tmpPath . '[0]'); $pdf->setImageFormat('jpg'); - }catch (\Exception $e) { + } catch (\Exception $e) { \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } diff --git a/lib/preview/svg.php b/lib/preview/svg.php index bafaf71b15..e939e526b1 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -27,7 +27,7 @@ if (extension_loaded('imagick')) { $svg->readImageBlob($content); $svg->setImageFormat('jpg'); - }catch(\Exception $e){ + } catch (\Exception $e) { \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } From 554b1990e23c76aea182e9b8c2687f8f8b939fb9 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 5 Aug 2013 14:23:30 +0200 Subject: [PATCH 109/170] suppress is_file error msg --- lib/image.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/image.php b/lib/image.php index c1b187608a..4bc38e20e5 100644 --- a/lib/image.php +++ b/lib/image.php @@ -392,7 +392,7 @@ class OC_Image { */ public function loadFromFile($imagepath=false) { // exif_imagetype throws "read error!" if file is less than 12 byte - if(!is_file($imagepath) || !file_exists($imagepath) || filesize($imagepath) < 12 || !is_readable($imagepath)) { + if(!@is_file($imagepath) || !file_exists($imagepath) || filesize($imagepath) < 12 || !is_readable($imagepath)) { // Debug output disabled because this method is tried before loadFromBase64? OC_Log::write('core', 'OC_Image->loadFromFile, couldn\'t load: '.$imagepath, OC_Log::DEBUG); return false; From 91bd4dd67b7d58f09a4dadff8060f63c6d6b691e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 7 Aug 2013 11:48:08 +0200 Subject: [PATCH 110/170] implement previews of single shared files --- apps/files_sharing/js/public.js | 2 +- apps/files_sharing/templates/public.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index 294223aa09..fbbe9b7f3c 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -16,7 +16,7 @@ $(document).ready(function() { if (typeof FileActions !== 'undefined') { var mimetype = $('#mimetype').val(); // Show file preview if previewer is available, images are already handled by the template - if (mimetype.substr(0, mimetype.indexOf('/')) != 'image') { + if (mimetype.substr(0, mimetype.indexOf('/')) != 'image' && $('.publicpreview').length() !== 0) { // Trigger default action if not download TODO var action = FileActions.getDefault(mimetype, 'file', OC.PERMISSION_READ); if (typeof action === 'undefined') { diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 746a715f3c..c164b3ea2b 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -79,6 +79,10 @@
+ +
+ +
  • From dcc92445a0bc3d9d47768ac0f640780f2b09a5fd Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 7 Aug 2013 11:51:08 +0200 Subject: [PATCH 111/170] allow permissions.user to be null as suggested by @butonic --- db_structure.xml | 2 +- lib/util.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db_structure.xml b/db_structure.xml index ef5de65303..4c192ba028 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -383,7 +383,7 @@ user text - true + false 64 diff --git a/lib/util.php b/lib/util.php index b7dc2207e6..dc13d31fd2 100755 --- a/lib/util.php +++ b/lib/util.php @@ -78,7 +78,7 @@ class OC_Util { public static function getVersion() { // hint: We only can count up. Reset minor/patchlevel when // updating major/minor version number. - return array(5, 80, 05); + return array(5, 80, 06); } /** From 41ba155a143d318377302e2672726d7ea588c3c4 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 7 Aug 2013 11:57:10 +0200 Subject: [PATCH 112/170] fix js error --- apps/files_sharing/js/public.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index fbbe9b7f3c..8cac8bf199 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -16,7 +16,7 @@ $(document).ready(function() { if (typeof FileActions !== 'undefined') { var mimetype = $('#mimetype').val(); // Show file preview if previewer is available, images are already handled by the template - if (mimetype.substr(0, mimetype.indexOf('/')) != 'image' && $('.publicpreview').length() !== 0) { + if (mimetype.substr(0, mimetype.indexOf('/')) != 'image' && $('.publicpreview').length === 0) { // Trigger default action if not download TODO var action = FileActions.getDefault(mimetype, 'file', OC.PERMISSION_READ); if (typeof action === 'undefined') { From 1c9d52774e165da3d916399510727de6b7c487fa Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 9 Aug 2013 09:31:53 +0200 Subject: [PATCH 113/170] update indexes of oc_permissions --- db_structure.xml | 2 -- lib/util.php | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/db_structure.xml b/db_structure.xml index 4c192ba028..1fcba9e224 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -397,8 +397,6 @@ id_user_index - true - true fileid ascending diff --git a/lib/util.php b/lib/util.php index dc13d31fd2..a7a83cf1a2 100755 --- a/lib/util.php +++ b/lib/util.php @@ -78,7 +78,7 @@ class OC_Util { public static function getVersion() { // hint: We only can count up. Reset minor/patchlevel when // updating major/minor version number. - return array(5, 80, 06); + return array(5, 80, 07); } /** From 3cbbe395eba76be37c16dcb00ac93760e965975e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 11:38:52 +0200 Subject: [PATCH 114/170] don't use hardcoded size for preview --- apps/files/js/files.js | 4 +++- apps/files/templates/index.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 8b66ed6747..180c23cbfa 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -825,7 +825,9 @@ function getMimeIcon(mime, ready){ getMimeIcon.cache={}; function getPreviewIcon(path, ready){ - ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:36, y:36})); + var x = $('#filestable').data('preview-x'); + var y = $('#filestable').data('preview-y'); + ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y})); } function getUniqueName(name){ diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index e434890467..311ada70df 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -59,7 +59,7 @@
    t('Nothing in here. Upload something!'))?>
    - +
    ').attr({ "class": "filename", - "style": 'background-image:url('+iconurl+'); background-size: 16px;' + "style": 'background-image:url('+iconurl+'); background-size: 32px;' }); td.append(''); var link_elem = $('').attr({ From 81a45cfcf1c7064615429bb3f9759e9455868614 Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Mon, 26 Aug 2013 15:16:41 +0200 Subject: [PATCH 146/170] fixes #4574 --- lib/base.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/base.php b/lib/base.php index 2613e88d05..c73eb9413d 100644 --- a/lib/base.php +++ b/lib/base.php @@ -795,11 +795,16 @@ class OC { ) { 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(); - $_SERVER['HTTP_REQUESTTOKEN'] = OC_Util::callRegister(); + // don't redo authentication if user is already logged in + // otherwise session would be invalidated in OC_User::login with + // session_regenerate_id at every page load + if (!OC_User::isLoggedIn()) { + 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(); + $_SERVER['HTTP_REQUESTTOKEN'] = OC_Util::callRegister(); + } } return true; } From b16a018da99259278ba2f93f1e0c2d2e2bce6fb0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 26 Aug 2013 16:33:51 +0200 Subject: [PATCH 147/170] use random string as id for checkbox --- apps/files/js/filelist.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7a48453488..cbeca1764e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -17,7 +17,8 @@ var FileList={ "class": "filename", "style": 'background-image:url('+iconurl+'); background-size: 32px;' }); - td.append(''); + var rand = Math.random().toString(16).slice(2); + td.append(''); var link_elem = $('').attr({ "class": "name", "href": linktarget From 70b6e2161ec654f7049027bf6dc5072c1eda4d5e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 29 Aug 2013 10:08:53 +0200 Subject: [PATCH 148/170] invert logic of disable_previews --- config/config.sample.php | 2 +- lib/preview.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index 76de97818d..6dd4516367 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -191,7 +191,7 @@ $CONFIG = array( 'customclient_ios' => '', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8 // PREVIEW -'disable_previews' => false, +'enable_previews' => true, /* the max width of a generated preview, if value is null, there is no limit */ 'preview_max_x' => null, /* the max height of a generated preview, if value is null, there is no limit */ diff --git a/lib/preview.php b/lib/preview.php index a8a8580e22..164ad10ba5 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -569,9 +569,9 @@ class Preview { * @return void */ private static function initProviders() { - if(\OC_Config::getValue('disable_previews', false)) { + if(!\OC_Config::getValue('enable_previews', true)) { $provider = new Preview\Unknown(); - self::$providers = array($provider); + self::$providers = array($provider->getMimeType() => $provider); return; } @@ -606,7 +606,7 @@ class Preview { } public static function isMimeSupported($mimetype) { - if(\OC_Config::getValue('disable_previews', false)) { + if(!\OC_Config::getValue('enable_previews', true)) { return false; } From 728fc7f123eeedb79f01dd1f38d469857a8e15cf Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 29 Aug 2013 16:13:16 +0200 Subject: [PATCH 149/170] fix parameter missing warning --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 164ad10ba5..b40ba191fb 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -570,7 +570,7 @@ class Preview { */ private static function initProviders() { if(!\OC_Config::getValue('enable_previews', true)) { - $provider = new Preview\Unknown(); + $provider = new Preview\Unknown(array()); self::$providers = array($provider->getMimeType() => $provider); return; } From 3a2534d3bd72501fea600284261dd426ea4c96b4 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 30 Aug 2013 10:20:39 +0200 Subject: [PATCH 150/170] fix coding style for controls bar --- core/css/styles.css | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index dee0778afb..dc91834e7b 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -149,14 +149,20 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b /* CONTENT ------------------------------------------------------------------ */ #controls { - position:fixed; - height:2.8em; width:100%; - padding:0 70px 0 0.5em; margin:0; - -moz-box-sizing:border-box; box-sizing:border-box; - -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; - background:#eee; border-bottom:1px solid #e7e7e7; z-index:50; + position: fixed; + height: 2.8em; + width: 100%; + padding: 0 70px 0 0.5em; + margin: 0; + background: #eee; + border-bottom: 1px solid #e7e7e7; + z-index: 50; + -moz-box-sizing: border-box; box-sizing: border-box; + -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; } -#controls .button { display:inline-block; } #content { position:relative; height:100%; width:100%; } #content .hascontrols { position: relative; top: 2.9em; } From a6c7b210db38d72438ac177f1d807b3a796da0c9 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 30 Aug 2013 10:26:41 +0200 Subject: [PATCH 151/170] adjust right padding of controls bar, fix #4650 --- core/css/styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index dc91834e7b..d5a79d349a 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -150,9 +150,9 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b /* CONTENT ------------------------------------------------------------------ */ #controls { position: fixed; - height: 2.8em; + height: 36px; width: 100%; - padding: 0 70px 0 0.5em; + padding: 0 75px 0 6px; margin: 0; background: #eee; border-bottom: 1px solid #e7e7e7; From c9c4ab22a489c373cf994da490353e2f3e1cadd1 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 30 Aug 2013 11:17:31 +0200 Subject: [PATCH 152/170] Apps management as sticky footer and rename to 'Apps', fix #4622 --- core/css/styles.css | 18 ++++++++++++++++++ core/templates/layout.user.php | 9 +++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index ce0d5abfc7..ad9fcb4346 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -501,6 +501,9 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; } #navigation:hover { overflow-y: auto; /* show scrollbar only on hover */ } +#apps { + height: 100%; +} #navigation a span { display: block; text-decoration: none; @@ -545,9 +548,24 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; } padding-top: 20px; } +/* Apps management as sticky footer, less obtrusive in the list */ +#navigation .wrapper { + min-height: 100%; + margin: 0 auto -72px; +} +#apps-management, #navigation .push { + height: 70px; +} #apps-management { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); opacity: .6; } +#apps-management .icon { + padding-bottom: 0; +} + + /* USER MENU */ diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 3c1114492c..1e0f4a75c3 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -78,6 +78,7 @@
    From e704c8e4dc41e69b4d4d8e8f3d1c1108920bb29a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 11:51:54 +0200 Subject: [PATCH 115/170] use web.svg instead of web.png --- apps/files/templates/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 311ada70df..89604c4fa0 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -10,7 +10,7 @@ data-type='file'>

    t('Text file'));?>

  • t('Folder'));?>

  • -
  • t('From link'));?>

  • From f9b281576726774c2109f8f909aceeb7320b4cae Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 12:21:27 +0200 Subject: [PATCH 116/170] remove \OC\Preview::showErrorPreview --- core/ajax/preview.php | 3 --- core/ajax/publicpreview.php | 6 ------ core/ajax/trashbinpreview.php | 3 --- lib/preview.php | 7 ------- 4 files changed, 19 deletions(-) diff --git a/core/ajax/preview.php b/core/ajax/preview.php index a9d127ffcc..486155831d 100644 --- a/core/ajax/preview.php +++ b/core/ajax/preview.php @@ -15,14 +15,12 @@ $scalingUp = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : if($file === '') { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } if($maxX === 0 || $maxY === 0) { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } @@ -37,6 +35,5 @@ try{ }catch(\Exception $e) { \OC_Response::setStatus(500); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - \OC\Preview::showErrorPreview(); exit; } \ No newline at end of file diff --git a/core/ajax/publicpreview.php b/core/ajax/publicpreview.php index 955fbc2626..83194d5349 100644 --- a/core/ajax/publicpreview.php +++ b/core/ajax/publicpreview.php @@ -18,7 +18,6 @@ $token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : ''; if($token === ''){ \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'No token parameter was passed', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } @@ -26,14 +25,12 @@ $linkedItem = \OCP\Share::getShareByToken($token); if($linkedItem === false || ($linkedItem['item_type'] !== 'file' && $linkedItem['item_type'] !== 'folder')) { \OC_Response::setStatus(404); \OC_Log::write('core-preview', 'Passed token parameter is not valid', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } if(!isset($linkedItem['uid_owner']) || !isset($linkedItem['file_source'])) { \OC_Response::setStatus(500); \OC_Log::write('core-preview', 'Passed token seems to be valid, but it does not contain all necessary information . ("' . $token . '")', \OC_Log::WARN); - \OC\Preview::showErrorPreview(); exit; } @@ -50,7 +47,6 @@ if($linkedItem['item_type'] === 'folder') { if(!$isvalid) { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'Passed filename is not valid, might be malicious (file:"' . $file . '";ip:"' . $_SERVER['REMOTE_ADDR'] . '")', \OC_Log::WARN); - \OC\Preview::showErrorPreview(); exit; } $sharedFile = \OC\Files\Filesystem::normalizePath($file); @@ -70,7 +66,6 @@ if(substr($path, 0, 1) === '/') { if($maxX === 0 || $maxY === 0) { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } @@ -87,6 +82,5 @@ try{ } catch (\Exception $e) { \OC_Response::setStatus(500); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - \OC\Preview::showErrorPreview(); exit; } \ No newline at end of file diff --git a/core/ajax/trashbinpreview.php b/core/ajax/trashbinpreview.php index d018a57d37..a916dcf229 100644 --- a/core/ajax/trashbinpreview.php +++ b/core/ajax/trashbinpreview.php @@ -19,14 +19,12 @@ $scalingUp = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : if($file === '') { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } if($maxX === 0 || $maxY === 0) { \OC_Response::setStatus(400); //400 Bad Request \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); - \OC\Preview::showErrorPreview(); exit; } @@ -41,6 +39,5 @@ try{ }catch(\Exception $e) { \OC_Response::setStatus(500); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - \OC\Preview::showErrorPreview(); exit; } \ No newline at end of file diff --git a/lib/preview.php b/lib/preview.php index 9f4d20b465..92cc87c589 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -611,11 +611,4 @@ class Preview { } return false; } - - private static function showErrorPreview() { - $path = \OC::$SERVERROOT . '/core/img/actions/delete.png'; - $preview = new \OC_Image($path); - $preview->preciseResize(36, 36); - $preview->show(); - } } \ No newline at end of file From 20855add94701432da093e2ae74477a76ddc7f48 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 12:33:41 +0200 Subject: [PATCH 117/170] add more file type icons, replace old ones --- core/img/filetypes/application-epub+zip.png | Bin 0 -> 1371 bytes core/img/filetypes/application-epub+zip.svg | 761 ++++++++++++++++++++ core/img/filetypes/calendar.png | Bin 0 -> 1333 bytes core/img/filetypes/calendar.svg | 94 +++ core/img/filetypes/database.png | Bin 390 -> 1372 bytes core/img/filetypes/database.svg | 54 ++ core/img/filetypes/folder-drag-accept.png | Bin 0 -> 757 bytes core/img/filetypes/folder-drag-accept.svg | 335 +++++++++ core/img/filetypes/link.png | Bin 923 -> 850 bytes core/img/filetypes/link.svg | 12 + core/img/filetypes/text-calendar.png | Bin 675 -> 0 bytes core/img/filetypes/text-vcard.png | Bin 533 -> 782 bytes core/img/filetypes/text-vcard.svg | 60 ++ core/img/filetypes/video.png | Bin 653 -> 1809 bytes core/img/filetypes/video.svg | 71 ++ 15 files changed, 1387 insertions(+) create mode 100644 core/img/filetypes/application-epub+zip.png create mode 100644 core/img/filetypes/application-epub+zip.svg create mode 100644 core/img/filetypes/calendar.png create mode 100644 core/img/filetypes/calendar.svg create mode 100644 core/img/filetypes/database.svg create mode 100644 core/img/filetypes/folder-drag-accept.png create mode 100644 core/img/filetypes/folder-drag-accept.svg create mode 100644 core/img/filetypes/link.svg delete mode 100644 core/img/filetypes/text-calendar.png create mode 100644 core/img/filetypes/text-vcard.svg create mode 100644 core/img/filetypes/video.svg diff --git a/core/img/filetypes/application-epub+zip.png b/core/img/filetypes/application-epub+zip.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e3b28b4d51b91305d967d445879de4cf25fcbe GIT binary patch literal 1371 zcmV-h1*H0kP)PkR2z4dmP8Z^$N@%IHD=9TqX`!H0M0c**kTkWr82b^E&Sc)q zJIBR)^XAP*$)pu8yt((y+;h+W{LlZLcSg*Nz>WHK3i-)H-#$8Zir9OA%< z0|Dm*K|lZl!%#IaP*Y67OwnjAmh${I_05(g0hk%Hv$Nc~b&Fgs$F`UIaL(bJ#IrcT zi9-Ys0W&Oi90F0*#H^%U7eP>$uf_n9>&g}0tAYbm6hsg#%zCs>)oScQRxr@gG62*b zVg{;;a}HGyu`v3IVFIK!us4FBR-pF*psLj%)KI_)D2j;0(Z_ZP7EBF|X0vE*w!9Qn zId_U^C_ceL07xwXK-q@Ksm3783~d%b@=`SfaH6P$$`>m1cV#wWz}(_Y$N*GFUS6Zk zGmvCK&2S1TVdP>F{bKY!vYnycaR7e(^K)*_{ZdIo{A3uWiix4kYM|=UC~^rYFN<$| z=P*OP`zZxJ07Jdwn8F`-uf$?ZvZ!tu8mKnb$hpMgdt%ko46WNwv9!q9%O4;JFO42& z+q!X7;l`bx8k`d}1mKniU{wWWL+1{*Z5YQd<@x&3dn|g_d3?b79Q#; zK!mmqkA?YZCcb@}SND9x$iTs<1`8tt2k?tICMJ)PcQdqiq!Vn0%r5IGC>yI9L6izr zrLEl~C)0d&{s@KQJw`SiWMtC;3dMVTdHx7FrfFO0p+U%6QbUajQ9}Sh5Y*_v;s{ig z74055xz34mhgtL&So9Y-aqcjAxz37}Uc9etS5Dyrr67n!7*ZX+2Vg~eiroASJ~{ac z0PU-aw6(XOfyP~9xguhq?g0VB8i2|i-jHce;Zh|4(itz|y!x$*5v5=m0FoLgzx~S5 zm$?A&TEaPW9=W$fe?XEtO9BlVzYUkvK=~cm d4#59C{srer&cwx7=JWsn002ovPDHLkV1n~YhkO74 literal 0 HcmV?d00001 diff --git a/core/img/filetypes/application-epub+zip.svg b/core/img/filetypes/application-epub+zip.svg new file mode 100644 index 0000000000..041f9f15e6 --- /dev/null +++ b/core/img/filetypes/application-epub+zip.svg @@ -0,0 +1,761 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/calendar.png b/core/img/filetypes/calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..d85b1db651c258b22d7707dbdf57a19bc92f832a GIT binary patch literal 1333 zcmV-51 z=jUBMpI_O^_E~(qdNH@&O{b(3p9{ywKms7~<#%*;cCxUrkeqw(z_#+Wfsb+UjW7LA zU(f&gFtmLl1>!4#>_-p_M@pp|t?nk&j;T5K1AGL@EhVR2{9u8jCX)XAD0))RE7Js)92HTMk$* z{A`zI3c-Q#n~9LKAqB2d*(YOhma;z~q(J%}tH%Z?7K^kb;;h~%AU%cfsv?A}2GH3W zxi(mBSbgJI)h8ZjsW5`AXq(iK( zGBzR?AZl|thqEpcaqzD@JUDcOw(GxOD*;YhtZ~SSMr-3EgrFAsrv=nj;haP|N5}nt zX!-gJb{~EVQ(l7_xsVdVwYXXotOH}|)K#C>HxFY2gEdugXoGfwsiQ}|qY$hkKw!1S z1O{mx&Il4MEwr9GP4MSDda(!sgs85*E&$aiI0p_AZ5`}7b(+eZ-zhH`T&+gX7VRXf zyNZf+1voGjjp}@@S_4vG%9^#=TUEmL&WOCBk{?$z&N)oEf|B909OguPTM z(cRsR5Q3SR8Pe%Ai9~`zp+Hwx7fPvZVSvfW$%uGM0pTqL5R1j4hQh1(+ zbB$p-?D9;kU2;Ed^l?LmWOUrI59YXe%sghgMT52!AhL zycqqL%jF_GJUrYKR!TLW0)T;m0RYCv#^~wkAs&x2GBQG6UmsFRhKGk492|@Y*TY(C za=Bb{DF}^%AONc2(^^O24T2!5@E{1HA~VKB_93nxYibu5W1_HYt+{&jYBb@MD_5dP zbGcmPbNTY+XgtI~BzD^=FvcK+Ad|^NDd_F(#rJ(iMn=eFGC1eBbm>w9K5^ni0}i7# zF)`8nE~tBHdFn6;R}$K6gzE{LPJs}jp^`^OMO^O6VubveLX!rzVG|bRlxG{GE-Ai72x~&@#wo?@7}$w`}glZ z*xTFtSu&X%YO00000NkvXXu0mjfE4gM( literal 0 HcmV?d00001 diff --git a/core/img/filetypes/calendar.svg b/core/img/filetypes/calendar.svg new file mode 100644 index 0000000000..0016749b93 --- /dev/null +++ b/core/img/filetypes/calendar.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/database.png b/core/img/filetypes/database.png index 3d09261a26eb97c6dedc1d3504cbc2cf915eb642..24788b2a37f04a4d44d09fabc5ef8c062015fa42 100644 GIT binary patch literal 1372 zcmV-i1*7_jP)* z*4hRDBJzl+4d4}kYLX&s(Nx zf^$9y04Svf3BwSM<8<5YHYG{Y)>{80rCh##{kn5vfP44ueW|tnHkZqr1@?t=4#pUylxVeDf$KUU5q-6^wDiNV0Qc|T|Ace?OFnZAi(c-aaIqhNJ^My23qTxA-IDbjYeHux^xMiw+E%vnE-IkVUK1}Z8V0o9|G_^ z51o#KbNL*CFofs%kW!v%V#6?C+gXg5CORDlp63mX83G_8>U13Veiy~!B&MfIAOd{9 z3vX`^v5cXVLY!*Xze15}DGUL7bQIaF1+9T73ejlnKuQTBqGJKVFl@%LoZ_6r_q$+> z!?G-xW&$C4!x`(T*8d#GJ*d7dz3&WkyIuHx7fF&JjwQk{Y#s|RJ3EW#&!3}Inno^X z5BjB)a9tOk=fQQo^ymTra=9FA+eR*Dr^g&j(;S=|1Ob}OI?kUzKePviItqotIAa`Z zYY$PWJc8rA@d0+C<~R;2l}A`xdkDrj3WdV>u`5uk)x^TWHAIm_wOYmF$B#ion3QHQ3Tg@5d=Q!^*VNUcd)g!1+6u**-^~S&S7EU8lFCV%C20wax_4v z(?P4%#?sOvwzs$OcE!f!Dcy|`OdewS63%cC^ zg~H^SSn%@YHi95HnFYS@Z(ZlzKQeBXx<0z!yE zvB?<2>#IpbgZ}I1h{t1YjrtlS>DN5>=k@jVZ`Rk>cK}GO zwLB6ah2Q`(=`Av@UcGv;P$+z8+xADC^Y^sY<4Ka_lO!1h0LIuJW6U93QCMgI5V5A^C4NF6506?cn(x^0XdesRIX-5Ja0z}6E e=%Xe)*!}^IMmcxN+me(30000;1k*-!zk~CMF9Bv_3(^PCOq; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder-drag-accept.png b/core/img/filetypes/folder-drag-accept.png new file mode 100644 index 0000000000000000000000000000000000000000..19c2d2eebd41e50454157f035df9c69dbcfc5717 GIT binary patch literal 757 zcmVPK2!hzQ_TEskU%234PbZxM067Xm>F4?9U0^} zPA}%x3G=$lyix!FP&LN9&GY=&=seG1j2XzO|4B-Dr~mx-j|Z8I*4mTi1`!q32X{g7 z&1lunRdB!%P7kMX&K7%_n6s8X6A** zFLvW3LuN7ZSwH|Hn<0sl9bo?~NVIOKNCVFJ$Y+5dLXv1`t($#-$Za*0QW%?dVD@Lh zu^1=(Kng+}D5y^B4?y$#ax(~gaCH*@%!1RC6y#I{l=9J7UvBgPI`s`VRY5pgt4-!y zIV8_;N+Sr^Q-Sgtt6m=ffcyE)%hzk4mM-Gho6*r*m6?u=Ct^-Q)dAoG0QK&GMC1UN n0dR-~Lz4yIGjmn|I4k`IiV;{$#ooxz00000NkvXXu0mjfIR`?8 literal 0 HcmV?d00001 diff --git a/core/img/filetypes/folder-drag-accept.svg b/core/img/filetypes/folder-drag-accept.svg new file mode 100644 index 0000000000..a7885c80be --- /dev/null +++ b/core/img/filetypes/folder-drag-accept.svg @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/link.png b/core/img/filetypes/link.png index 68f21d30116710e48a8bf462cb32441e51fad5f6..0e021d89f82366fecbb4896e852b958053125a16 100644 GIT binary patch literal 850 zcmV-Y1FigtP)v1 zer!LTi9pAG#pjrh?{FhxjPxWRl6OY=245t7n{gKhu^~q3Rw807@$JKp5i2XAD(sIE zz@IZd0hh5n*1t~tSCxF{;rEC+YdUfQS_#-SEK2$oVk@@cZ)}h4!#EMY`2&kfn5*y@ zty%$bwRgz>!HQD<9{hwa@fufSB#KfNoXHGqXY8A(6EKy4tjmD(;iLF|v}Q3*R;;bl zn92&kPzur|J=fuOjex@y-+deVhdOQPRy?jj2_cNfd0t)P_OPOTbQV{l?n+$*v{(Lq z?X;{KdB^TzX$E79b~aqeO~K6)NI$;9ZY;sM2E?h2S4=|-H**4>lmHgsqU!y>&Yojo zg@E7iB)102#M3vmmE)Nk9}VKjuWK7{Z?2;qDP;REczXEV5}HlmV! zpZIMu^So$k!?>=r5!G$QsjV#e_2U4Z_8{Pw_{?v`nZqcxjTI@iRQq1=e-A>c52MU+ z+_AG=&W6nm$?K2f2sUWug`{IUYXt0VK;G;^5&=idzIZ;yvW)K<-FM37SF)0bawHBV z{R7w+g>@Twmb_L#G9Brfc#gx`7tQ-k<~$en#sW&&QI(=OYy4vpB0;0_K7P%567W9C coc|ra1xC@JLcf37!~g&Q07*qoM6N<$f<=LeVgLXD literal 923 zcmV;M17!S(P)A9)b<7tX~vT z$e)FfZ+`X4_uKyq#wJHC;J3lH{lhQkUc~Wid;*pnjhM12xe-bPByd^xuQ9zgeM^Mm z*tc)|P}LtTnHXr@Gkmmbkg^O2bqyhO>LP|qjIwW2@Di+4EuKm~&tOO2!N3o{128Hl z9v%fgerM0C#)7P|PMvxr*!Gf?eGA8f{OT6fS`9l>LQCg)p=~c$Zr|AT_0+_?F*JJk zlapOT2Q(wWx-LMq(TxXxLn+U;!LV)MhNp~ommdh+fo8T*&g-yQbbG&ze&=>tC(Ar=&^1xlA;Jc(6 zcCi_xs8k}-S&#ONOHm%e@#nGC7F++8C~r29Or!_{(QGQEG)+O^J1BCPmgM4JAzC8I z`jS9bO>|}Jq_#$IRzp0d34>)&3L%7MN)eTv!0B!^nn}f4z2*vFE@jv3dn zG>H)u>FR7_d2JcsjvfZ$vkP~xik@T^(_N)nx=tqJV+tQjQ`owJ83bf`zX6Ear*=Mhzn5QUuXE|v zR33Qyi8G!0{H2r##d#6R6YmYbZz4NTssT;cXiGb6lxO+k@{ba@2D~*hKDY6N;Bkh> xhhCRLejsJkAIT{5sICHcfU`5>bKmUb{{y)0nR3PMMxX!y002ovPDHLkV1nl+t-}BS diff --git a/core/img/filetypes/link.svg b/core/img/filetypes/link.svg new file mode 100644 index 0000000000..b25013414b --- /dev/null +++ b/core/img/filetypes/link.svg @@ -0,0 +1,12 @@ + + + + + image/svg+xml + + + + + + + diff --git a/core/img/filetypes/text-calendar.png b/core/img/filetypes/text-calendar.png deleted file mode 100644 index 658913852d60fc6ca8557568d26b8e93e7d56525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)w!? zFisFv!T|cmRtW;1f$>$s0G>^*GP-h`H-mzTP&3`b(d;hDCL-{+T2LSiJi1S%34OTG znWn~v^Brk?FQB#MFuosf?qnt!t(A%g#tAAA`tV{p&t%~)6GMus628BV?|aP6=Lr0O zrxPn=6Fy3{fE84gngF`mQ;ZG4p#ul`mYb)mJw@Q%q_eddamvg>kv)yI#B0M!3sxev z!1s9dp#Z>KE{BK5@W%p1Kt!2cEYj2vBiUHDJ-HCTS{r%b!`Wj=!r&Tb+LFBfRN!=5 zl7aC&Ul)Foh{s4J>JU)^p9+C-Q44MR8(8|WK})8dx#e}T%`v`wFOp3_q9I1QsXihN zJVaEgK9Y|1KAJgEb`m$%VXVVh!8pM>`_Eli`}OBJfVb0i{tF{QT8%v&>u>-7002ov JPDHLkV1feuD8K*! diff --git a/core/img/filetypes/text-vcard.png b/core/img/filetypes/text-vcard.png index c02f315d20749098a50e79bd9525eed3cda7be6b..2e52d1ecb3a51b897b64d06b8db16e89c398b9e6 100644 GIT binary patch literal 782 zcmV+p1M&QcP)qY}R-bwLrQFm6eFB|ZHER1vRe0%5a zogpbD=9SCk@`s0qr}zPNI-S4OYW2_jn7%ye;Nal2SS4=|g& z3gG4C1@(Fz4-XGuW+V~`q|<2}9UZL%P$_V?>G%66l}a!S1KDgA*=!cNuA^Ko}RXti1}O%wfoACHfZAR?HiiT(Y3Twh-!l}agnq4j~mV1V&>jLBr;cFS(Ji|y@g zyuQBr`T`Z|u!rcfxL(P$|DUkl)uvc0`MJUu<3*Xt<*&C4`RkN?~E zfl8&acHw!AMk7y5mA+g9mSqJ3Se9Q6gnRk_4{hF+Y$E`4T}LDm2^B!K{~iD$(lVLM z{pIClLpl4KdVYSsCn8Ns>C(`AYUp2g`Lzrdq67d-&Mit|?{!dp0=w2pNBI@jk^lez M07*qoM6N<$f|W>DiU0rr literal 533 zcmV+w0_y#VP)~%#^24dF_nR2<@_W67)1?cUEu^twUb)isDIFhhds}=iK3R>bPJ|0e?$zQO{gfSb6 zAmw}l&+|y1)FDbOh~LB|8AsbZWx#U1r$+A&&@Nx#xl}^&O@y|4t-qIL8GGyFgudOB zMUBefj6^S-TgKXw9~(9fXO}l9u&h~_&1U!^@!0B?~s|2G5wL<6_)Q&2rqn4Ysi zYDkz=-^k9mUKoqT&@0!tb`xM{bJg4sMG?(rlN1C@+IG7gZnyh)fD-9^wOWPO>qRga zgu~$&m^wiaP%IV^2m}y`M05a#41+*G!W1YTk2ASkP8&9ThNn^~CX>l%T{(BmzyFOt XHe4|Dt4X diff --git a/core/img/filetypes/text-vcard.svg b/core/img/filetypes/text-vcard.svg new file mode 100644 index 0000000000..27054be57e --- /dev/null +++ b/core/img/filetypes/text-vcard.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/video.png b/core/img/filetypes/video.png index b0ce7bb198a3b268bd634d2b26e9b710f3797d37..13bf229fc45a63ba5866d77024bda31414aabbaf 100644 GIT binary patch literal 1809 zcmV+s2k!WZP)Enn)?}C53)b^#2D3Q~)@3?ATui2M7Nd zi^T*05JEze{#W0Z?sV?dmr}yAEV8t;^tXkDg=w{I@W*&Oo^)OJBLF6)Oi)T=ZKWCj zP)d`EqCiS%d!F}+5TZq+(LVry<2WCsluT9C1R*5mc^-riwYKdf0C3K2A;d=^gcgg% zb`e5;1Tal~&p78uBofnCuU^eMj(Lx*tq@L|l%%wTzW8A6Bv+;2h%aLy5p zMgvT>6QC2g+lj%!K@1NMZ~&!<{>K@ZrM;jEsz6X=w>tTU*<}g%F{| z2HUVR4V@8@QsUI9Q>fKyn46n}>$-4V7mA{QF&6aw_Ta$-R4NsmK7BeEa~vn&LpK)f z2JP$%A>g_$_V3@1=g*&q054s-gyG>~sHzIvwgVu>7#=-(gmgL$$8q4gZm{Z|a6%;X zKllnl2<+Om3(;s4<#IV>Oi>gZKYkoXj~>O-r%!SJ{(ZDsEeIh{DwUvV8j{H*Ha0dw zwtWYDOxiuz8BWJ>(9_ccDJ5#PS}^X{i*{wii4!Mq?%X-3stV8ZP^;Ad0K0eZ-j>d8 z!UrVu+3AzYZ|m#pkWwO%NMLhw6P)vaPykRU6maj}J>>KGAgp`$?gfBAw>tuz&!7hFI-2&gPGekB_6#Xkd1B_BZptBME=4IgW#=sVVgJ_2J5uE9mR% zgJoG@jG=x0hrUfsO$F)v-6ZVJjW1G45JFHYl`t_efwO1N;_~Iouq+EJD=Pqi{{DXG zx{if~1>CxI3(aOT6!x7su#JSj=0K->{`?s?Z{Ebr%nS}3IDr2CegMGS+#HIi`go#l9wlfOBpZi^a|N@89duXfz1`j^ork z&$A+t$XBYW8d6Hww!IDjnx=i-wr_IIHv#Cnt|xumfQ0Qja3i13rx;_az7fv(x195D zEz4S$Qi3tIn$PD`j^o_uC|Dsq%d!GJ+qOe`uIt|L52e6?4pzRCQVJ<$y*=g?3Wc>o zp|B=|@Y+nTODTmA;#~)$1HEGT>K7C+d;O_vS zD2m=T^i4XQK0^rkz9Ze^>2#V>N`JRraO@8Z3}`}#f2UHZOy{-BvMd;e@!wEU3fs1! z>pD2+P!t9J?bbg7R8@s#S%}4AAwAPHq3e3+&?}Wn&nTrsDgfBF{Zp}6{D+j%*v|c( zh0^d}UH7%_w}cR4GRA%~4C9wu@t2e@{&V^>7(MR{X|}OU00000NkvXXu0mjfEu&Q_ literal 653 zcmV;80&@L{P)WO3(`_cf+b25@DJ#zdQm}8GzWtq2-QnZ8W6mB^kfeK5f%S{ zUW%tGMCwrwic~ZrQcG=4f?5bkV+3dRk8hw6bk~y$KX#b!y*J4EJ~>;dRASqrSu;ZpM>?P}K~6AT zWv6Dmq?v&9LdXC(m%WCO6ma_di$R(v$@ad_>@R41N3N5lSJq9@6CGhX84-$%Xrd_6 z;){?{E|Ytt5$S-&Au>t4wDlIxdkfe-a22LMj``McG};r8@{GsRPm*+8fFey6C)@ifDBXVyTw(N@Xd41b45OFg6x_QA zpwLiigyy~cVoPxW^r~C7ZQpr%>1$*HKmv~AY-qJw4;gUecS--wnqslISSS=^KA&Ic n@BK|Onfz#3R%n{$a)0j^sqv5F(1NTL00000NkvXXu0mjf3S}fX diff --git a/core/img/filetypes/video.svg b/core/img/filetypes/video.svg new file mode 100644 index 0000000000..b499d1cd25 --- /dev/null +++ b/core/img/filetypes/video.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + From 5abf6ddea4b3e1246a1c66e876e420841322865f Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 12:36:31 +0200 Subject: [PATCH 118/170] replace same but differently named package graphics with one proper one --- .../filetypes/application-x-7z-compressed.png | Bin 650 -> 0 bytes .../application-x-bzip-compressed-tar.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-bzip.png | Bin 650 -> 0 bytes .../application-x-compressed-tar.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-deb.png | Bin 650 -> 0 bytes .../application-x-debian-package.png | Bin 539 -> 0 bytes core/img/filetypes/application-x-gzip.png | Bin 650 -> 0 bytes .../application-x-lzma-compressed-tar.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-rar.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-rpm.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-tar.png | Bin 650 -> 0 bytes core/img/filetypes/application-x-tarz.png | Bin 650 -> 0 bytes core/img/filetypes/application-zip.png | Bin 650 -> 0 bytes core/img/filetypes/package-x-generic.png | Bin 0 -> 794 bytes core/img/filetypes/package-x-generic.svg | 62 ++++++++++++++++++ core/img/filetypes/x-.png | Bin 555 -> 0 bytes 16 files changed, 62 insertions(+) delete mode 100644 core/img/filetypes/application-x-7z-compressed.png delete mode 100644 core/img/filetypes/application-x-bzip-compressed-tar.png delete mode 100644 core/img/filetypes/application-x-bzip.png delete mode 100644 core/img/filetypes/application-x-compressed-tar.png delete mode 100644 core/img/filetypes/application-x-deb.png delete mode 100644 core/img/filetypes/application-x-debian-package.png delete mode 100644 core/img/filetypes/application-x-gzip.png delete mode 100644 core/img/filetypes/application-x-lzma-compressed-tar.png delete mode 100644 core/img/filetypes/application-x-rar.png delete mode 100644 core/img/filetypes/application-x-rpm.png delete mode 100644 core/img/filetypes/application-x-tar.png delete mode 100644 core/img/filetypes/application-x-tarz.png delete mode 100644 core/img/filetypes/application-zip.png create mode 100644 core/img/filetypes/package-x-generic.png create mode 100644 core/img/filetypes/package-x-generic.svg delete mode 100644 core/img/filetypes/x-.png diff --git a/core/img/filetypes/application-x-7z-compressed.png b/core/img/filetypes/application-x-7z-compressed.png deleted file mode 100644 index 2cd08aebf954b1fbd87e53856815e091d7b29d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4swT@MmX-bxDQkZK@nQTs)aaNpePoH&IpmkZShf=L}QLc7T zvW;1?j#;*nUbmB9xRhbKmSVb>W4oASy^dqOmS4S^XTFM}YQT$Vz@BWu zjA+4(X~CXr!i;Icl4!!6XTqRu!<1^om2AYGXvCp!#g=Twp=`#aa>u52$fkA4r+3Pw zaLT81&8cPyhe`sYygZR2UhB z!CgwjKp2M6=lhwYwuOSw3zwk#UyExH1*=p@GLxCtE3Z9=e;H81%#hR@B-rE2TqbJU zUf)H)`T00!aXF`3C73Rm5Zdbcz1JRGt`Em)N<-SSE{PQ85^@WPM146}26b;s7s(j) z>pVBc_EX0oQMYw3&S?ASBJoo>gauuFZJ#7Ld)HeHe;VmYy4^4~mp%~Y$=wX-u!8Ow dZpI&J`~qx(SpY!aSHS=P002ovPDHLkV1i1#`r7~i diff --git a/core/img/filetypes/application-x-gzip.png b/core/img/filetypes/application-x-gzip.png deleted file mode 100644 index 2cd08aebf954b1fbd87e53856815e091d7b29d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4o`*ydp1@?@ZsHlN&VCM238tNOk z1QY5L2%4$Sp*Ub*AccTt{fDFtybNg1E#o)FJXdrr^;GCd7{{KH!!QJ_vs=ham zZe6(N?pOcjQV86?e0$>>KyY^+-aLOUgz#kT$dOUgjHm}gs;Xjf^)!yN`{^yEWJ=D= z+LrC@&#k*(x^idZc{OBXl+v_m8q5q+MO7)KU?d0?DuS8Lk1-q$Nij}=8&wFbi%9)xYwI_!XW|rq zH!olODT+x5tXDvN?D#20lNH931%{(V2IDb<;e@55X8|~NbdB8YlMfE)+FcIz_h|Qb z__+D5u2dZ}qs;c0A*jrdt|8Y028VhDU%z}nN+#zSrE4j(7BfTDsni@-K?uZD5kdsO zOi{@I#R53) zMp7lEM2Ni_H$$~oR7$3FGt9y-0L>tVyJM=vs`P-6=4vYsD`^WAyRc5Gk%8b%t)v)=jpW@f!Ms*3xh z;9kA|4*-BI3g14zdjshEHi{+)Jz0gDbrhn3zJC64|Kn^eZ^Eyi-mW8X$LkwwaTv}S zuP_!yu_tqOIony&*G!DFle53j`00yR`=>ww0dl9iQIfETLWG*L2@_AItgKTtVaAAL zm#4b`KKKD-Zji35rd5VYh5>}J@z$~`y$U33)JsR_e+H8P0suHX*xRPeZ6L77GHPVX z2#UaC%GW)noO3zL2rw2*?!n=~-u4s$B_2d+k`OV_`e2&%iPj-dgGLx7X*RkT0Qh17 zz?fjCzxF7waf+yyAne7kQ4HIQVN3{^G2Etr`tsV7@k73ru0EW;H<)c?a$vfIkOPy0 zkVDd64vvRsJ5vN!H@ED@=1Q*O#?0r?QEfv5D}7Jo;g8zn4aRtd;rL-Gj&ZTMWv2m% z2$-AaxJV-62QbyYdKBmN7YIOe1O9%dcGFW60GBhU)6D7j&+n}q)zKt@0s_=tdm*R( zj&cd8TMv{?wv1dW1K<`tpk3UwXu@I%xKM(&wyt@R5^k6RtrfabwQ{)x#0&aaOsg~n zRNDhLcxf$|s%XOIgQSatCYm4+7-ND-4|HOx;OTq1l8Ff-0%J^I0rV@6;>K*cm1cf- zUV^>_uq1g#*KyFssTaUF;Ux>edPnhXIIURB5wI43F7i39wBO-3FAqR104K`I%%(x- zMoE+vfU^Kb&e4(3@R@g)x=m6ji5vkK8C8Wb<}rZiPMl9d07zATP5ui`F!!5w2Sfny Y4=r&2?dYa8HUIzs07*qoM6N<$f=^&wX8-^I literal 0 HcmV?d00001 diff --git a/core/img/filetypes/package-x-generic.svg b/core/img/filetypes/package-x-generic.svg new file mode 100644 index 0000000000..13ab5b7550 --- /dev/null +++ b/core/img/filetypes/package-x-generic.svg @@ -0,0 +1,62 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/x-.png b/core/img/filetypes/x-.png deleted file mode 100644 index 8443c23eb944cf8ef49c9d13cd496502f46f1885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)i3lOYrtSl@<#7b-w zf}j{s!5HvocfT|9z82@(O@vrwU^wRt=bd>tXQpGD!`Kvuv@XEI8~tgUP2L`{+*)U@I@ zrVtr5X14??iAF(=0+k>q)v`Scm$9&=i`*knBsnaUVL1>ti*O1xfzmiD$%Md-h*6M( z@*iB)icu3eU424Ok{kp%Y!1dvp%f0`ac9vcupx^$vU0xuKpJcBvej0UYk%)EV>mIx2hV}QRf#LX^Uh(%`7hZ~|KEf#uQ31s002ovPDHLkV1hgQ{`mj^ From fc23649fa1afa5123bc6421378c9bc756db0ba7d Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 12:43:42 +0200 Subject: [PATCH 119/170] replace different icons for documents, spreadsheets and presentations with proper ones --- core/img/filetypes/application-msexcel.png | Bin 663 -> 0 bytes .../filetypes/application-mspowerpoint.png | Bin 588 -> 0 bytes core/img/filetypes/application-msword.png | Bin 651 -> 0 bytes ...ication-vnd.oasis.opendocument.formula.png | Bin 479 -> 0 bytes ...cation-vnd.oasis.opendocument.graphics.png | Bin 475 -> 0 bytes ...on-vnd.oasis.opendocument.presentation.png | Bin 333 -> 0 bytes ...ion-vnd.oasis.opendocument.spreadsheet.png | Bin 344 -> 0 bytes ...pplication-vnd.oasis.opendocument.text.png | Bin 347 -> 0 bytes core/img/filetypes/ms-excel.png | Bin 663 -> 0 bytes core/img/filetypes/ms-powerpoint.png | Bin 588 -> 0 bytes core/img/filetypes/presentation.png | Bin 519 -> 0 bytes core/img/filetypes/spreadsheet.png | Bin 566 -> 0 bytes core/img/filetypes/x-office-document.png | Bin 0 -> 930 bytes core/img/filetypes/x-office-document.svg | 60 ++++++++++ core/img/filetypes/x-office-presentation.png | Bin 0 -> 1102 bytes core/img/filetypes/x-office-presentation.svg | 109 ++++++++++++++++++ core/img/filetypes/x-office-spreadsheet.png | Bin 0 -> 789 bytes core/img/filetypes/x-office-spreadsheet.svg | 64 ++++++++++ 18 files changed, 233 insertions(+) delete mode 100644 core/img/filetypes/application-msexcel.png delete mode 100644 core/img/filetypes/application-mspowerpoint.png delete mode 100644 core/img/filetypes/application-msword.png delete mode 100644 core/img/filetypes/application-vnd.oasis.opendocument.formula.png delete mode 100644 core/img/filetypes/application-vnd.oasis.opendocument.graphics.png delete mode 100644 core/img/filetypes/application-vnd.oasis.opendocument.presentation.png delete mode 100644 core/img/filetypes/application-vnd.oasis.opendocument.spreadsheet.png delete mode 100644 core/img/filetypes/application-vnd.oasis.opendocument.text.png delete mode 100644 core/img/filetypes/ms-excel.png delete mode 100644 core/img/filetypes/ms-powerpoint.png delete mode 100644 core/img/filetypes/presentation.png delete mode 100644 core/img/filetypes/spreadsheet.png create mode 100644 core/img/filetypes/x-office-document.png create mode 100644 core/img/filetypes/x-office-document.svg create mode 100644 core/img/filetypes/x-office-presentation.png create mode 100644 core/img/filetypes/x-office-presentation.svg create mode 100644 core/img/filetypes/x-office-spreadsheet.png create mode 100644 core/img/filetypes/x-office-spreadsheet.svg diff --git a/core/img/filetypes/application-msexcel.png b/core/img/filetypes/application-msexcel.png deleted file mode 100644 index b977d7e52e2446ea01201c5c7209ac3a05f12c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)^@R5;6x zlTS!gQ5431_q{u#M2 zg&W%y6a}>qj1Z|7Vu&-DW6d~k-n;jnHsjb-q#u0C^W!_5^C=MlKq<8oNCQ6qS00!X z5eI;XP=g!^f}j{hku}E1zZ?XCjE;`p19k(Rh%^AQQ54xysU+ocx$c#f61Z4HnT#3u~FR(3>BnZniMIF4DouI8Hi4u>cAK%EN)5PO(ip3(% zIgBx+QYirR){Z8QwV$9Z(Mpt=L-Or3#bf-G@66}txq0yc*T(zNTBDT0T8rO^JeNbSI-Tzf5!pBioy4NwAN^?iN#{;fH1Jke4Xa`^fR8m z%h6dq%xX)S?7`zae))(Xst^Scp6B8FejQW?RLTM8@0=vnnntuRGBM2dpo>gbCnTD= z^<;=JuqdSf@O>Z8^XdR?s+KEfhDdB_#ahFj^giCtzT(s8kA$AViyTqaAR;KGaLzUU z<=GqA4bRwpX|IG~*x>pZ!@zLr`XQ`od>m(`;jz|M_*1GDO#$7;n74ppb8=eiqh760 x0yt}J1#p`gw$`o!R{d7zU9~!Un@nJV{4bstt4Au+Up@c;002ovPDHLkV1kWhGjjj{ diff --git a/core/img/filetypes/application-mspowerpoint.png b/core/img/filetypes/application-mspowerpoint.png deleted file mode 100644 index c4eff0387d5888c638ba09473ba6d2369f7b56f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)HU2HvUSp%6 z*n}iP63IK?dpo;h@sj9~pcxo;VVTc-XLiP@DgefqE#NE=@oyUd-&HjLpsLIuSFXV-EMck)oQ(A`s%*^&wf0(rNiNHsU%=0Rw;WC z(kbc37l6fo`-0uR!pYkYv8U^3?nsh^@pw!K0TH3uYyx1_2>|JbXPmfskJ|1YAw9w! z9`N)1^Aesr;y5Nr5-ODn)oOL|CGi}f9!&iVwpK$khlIX10X$H6^A_stBJqvLhU$?V`QXqKme*s~gVDJ4A;LTs_e15jhc1;By a82kqHEPVYFAD2!50000hkjP zNW|QGv-YFNLN^qH@tJycPNG5ti6B7;r4mEr#lr@*T8*M85D`{ZR^BWwF23T<%MYIh zdC)S*p=|xk^!~H=+HSZ183~y8v4|mYmZxt&)5{{~>J`>E223Q5>T$=~mtA71q-jdG z+eJhOAyBW^0k9Gk1+rX8)zFx((CG^&tDY>6XaS~Fy!WJON|Gdujg5^~Vzt@o%BcYLiNiTQSD`zL^ociBz_>bDlpw3kriQ@Z`bVsGz-_6N>$&gTDiKDTKR^ z-hB*tHa^>!oD~5TK^0UK5rZ}RBm50Bv}S-yA%s=Ha5RYb{)!z2N&$&64gfhybBu8p lh~_|?8^bu;BRYt{<}Yrwd83Y=s?Goa002ovPDHLkV1l%3CP4rI diff --git a/core/img/filetypes/application-vnd.oasis.opendocument.formula.png b/core/img/filetypes/application-vnd.oasis.opendocument.formula.png deleted file mode 100644 index e0cf49542d44e8a72f53a170b524bf73b6c94fef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)kl?b!hEF}^N)(TD2=$W+J?I!BhkpOgY zx`|{md52$;%jJ;GX7zPE9%nY2&BT}Ag3hT7+NGXYEXJ%>t4Rnf>ksJF?ps3V)GL?E zI+SoY%q$j*N$MFp!+>^+{^gsN&^h&r#UcuYf(|7Z45p-x!4%qs&j@^&0$G+nXozM` zAHfTc_#@S7Ri{#^=X>e3r^k`HLg+EMD^O`rgS!2JwxQ5K!MB@cDeK@spqPZy58;LkX;)RGWTdsBaJ` zio%*pM<;2xCTH;S`u;;eeS^U3^%?|E&w0p70OyxizYdl927%k{7J?F=!BTV;`^RUf z*7nkwYxou;LO^|kfZwYSY-}Isx6sVy&Y=)c-ym?gTnzsR^$h~2)5#nT$9=m{{|gwu V+0lueHkJSY002ovPDHLkV1n0f-g^K5 diff --git a/core/img/filetypes/application-vnd.oasis.opendocument.graphics.png b/core/img/filetypes/application-vnd.oasis.opendocument.graphics.png deleted file mode 100644 index b326a0543a5e4505ecea5aba7bbb0ebe07bfc902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)?xuc$zJqiVqDu%;VB`zp#>RqdirB%}70HTC5qdckM9`rw zUV;fTGekN>bx_i@r+FrJXvqzG;K$A~|M|_%Gb^OiX#o*MQOM`>#1388@o9KG9tUPk z1OS+zOd^J1+`*8lR;y5{RMIEa&UojuMX3C%@&-; zT(8$-U}dve;&eJ4!c_1A=JZ>b-MX;_=P}pmbfDdCGq94$WJwsCFTtqL9szA8Cmaqx zV-rQn3_=4B@J9^>0}J%_2nsl6=Gg6{{s}Ls>%fW z-`SdQDjZEdoVR$j`t>zYm4tAuI*s^pih-2{3OF$g<1@)%ym7evXVlggQi7K$YbHEm1JvLhq*+@Y~+vNhx zTLko8`4MnIBBR0La)cozGOVHR-7Xhk-Xie({RI9|n70UgJ|FRVy|q!n{1@Jd@s)7; Rl3f4*002ovPDHLkV1hy|(kTD{ diff --git a/core/img/filetypes/application-vnd.oasis.opendocument.presentation.png b/core/img/filetypes/application-vnd.oasis.opendocument.presentation.png deleted file mode 100644 index 7c6fd24684095b2e90d6706e80dfae9d4ad394a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)gFy?gh=|73s_ zD^`FFU|6JbpbMa^`>3_^Ga*~=M-1L#XgfzSrKN3P00000NkvXXu0mjf(l?Lc diff --git a/core/img/filetypes/application-vnd.oasis.opendocument.spreadsheet.png b/core/img/filetypes/application-vnd.oasis.opendocument.spreadsheet.png deleted file mode 100644 index 8b0e85b067039c2bd583db7fd94d746a6848547b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)M@H|fxMN!$Db-H!a3fH3% zY>cVI>gfwD%XM$a0(qYQ1h&WTv^knC1n2Ou(M4CyiOw%;vC(>_-O(HE^j{Z(b9ho4 zwt?2V5-a;pv@CM)zyev8eSbu6#un%eh97rkOn;&7AL;5=vnw38;~IfEQp(DH1Ei)I zzOes;G)4i4VE()@z0$87Njx0Dn)n|MEUUr<=FgXK^?Z?3Q2LC)VRxihXfPFVk0%8R|u zIlkhT_~a&+A?5&amG4tRDNU-L-&!{rlg7D!#$%GG`sqdl&aYt$z9I z<=a8xudT9fm$BS@TUK3Gw0rs14%vwj&wzUGM=a9X!Q}K~QN0mQb4!J7U(-yBKFeH= zns49jI~HZ=RaE$h&18z#;y7GzndQUMCIt>NUxs+C54H6mF4OtXeSRB6egrjET=x|| rFr7>0_{|WY^oHEo(bGyJxc|so{(IWaU}Cc$7-$Thu6{1-oD!M^@R5;6x zlTS!gQ5431_q{u#M2 zg&W%y6a}>qj1Z|7Vu&-DW6d~k-n;jnHsjb-q#u0C^W!_5^C=MlKq<8oNCQ6qS00!X z5eI;XP=g!^f}j{hku}E1zZ?XCjE;`p19k(Rh%^AQQ54xysU+ocx$c#f61Z4HnT#3u~FR(3>BnZniMIF4DouI8Hi4u>cAK%EN)5PO(ip3(% zIgBx+QYirR){Z8QwV$9Z(Mpt=L-Or3#bf-G@66}txq0yc*T(zNTBDT0T8rO^JeNbSI-Tzf5!pBioy4NwAN^?iN#{;fH1Jke4Xa`^fR8m z%h6dq%xX)S?7`zae))(Xst^Scp6B8FejQW?RLTM8@0=vnnntuRGBM2dpo>gbCnTD= z^<;=JuqdSf@O>Z8^XdR?s+KEfhDdB_#ahFj^giCtzT(s8kA$AViyTqaAR;KGaLzUU z<=GqA4bRwpX|IG~*x>pZ!@zLr`XQ`od>m(`;jz|M_*1GDO#$7;n74ppb8=eiqh760 x0yt}J1#p`gw$`o!R{d7zU9~!Un@nJV{4bstt4Au+Up@c;002ovPDHLkV1kWhGjjj{ diff --git a/core/img/filetypes/ms-powerpoint.png b/core/img/filetypes/ms-powerpoint.png deleted file mode 100644 index c4eff0387d5888c638ba09473ba6d2369f7b56f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)HU2HvUSp%6 z*n}iP63IK?dpo;h@sj9~pcxo;VVTc-XLiP@DgefqE#NE=@oyUd-&HjLpsLIuSFXV-EMck)oQ(A`s%*^&wf0(rNiNHsU%=0Rw;WC z(kbc37l6fo`-0uR!pYkYv8U^3?nsh^@pw!K0TH3uYyx1_2>|JbXPmfskJ|1YAw9w! z9`N)1^Aesr;y5Nr5-ODn)oOL|CGi}f9!&iVwpK$khlIX10X$H6^A_stBJqvLhU$?V`QXqKme*s~gVDJ4A;LTs_e15jhc1;By a82kqHEPVYFAD2!50000l0tqi6&npJ$x10^Z5HznC|jkhtXU{*?AXX+vSK$&lqrKo z4P`-MYRWlh-uHXoo+plGVQMtjm29&SnPTept1G}>;1qBiY)nF?X%bBWNhny_l)Z3d z&-N3@T)lWSVVldhUf%V8y7}mh3o^f*rno=*oe{IP>4|aPep(t*WGZD`whRe#WKrpOeww^A5*|8>ZEI3iJG3d@;ddSaaQQiv*3SWXm^*Pk(vkYVP=SQ%7gX+6s4|5yBQ}3^T_6XQ zZDbP)D!Ze~6zXIkQ9PYpWTZE?jfD>%Y1@{Swk5itNez`{Q)G&e7J>b9cP_BngG&!t zi|rp2nJV;T^4jymwofAMkUFri0;>ZDmaq-jpk-+0DUxkA;uk8$FcGE_?o$8&002ov JPDHLkV1i%8-68-0 diff --git a/core/img/filetypes/spreadsheet.png b/core/img/filetypes/spreadsheet.png deleted file mode 100644 index abcd93689a08ec9bdbf0984927e8da06c043c7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)>q?GuNnCdgP^*Bj5V_b?dAq2Ppn9^MBB^YUM zad0N-T{Ujg*A6d~mYV4na=hT4Nz+_}SGTgW|Iir!%$ z;@OGkWI6+j0H}~K4RYR%!7y|zM`O@*K>rL{*&}x3lR**HrMXC1->#slU>X|w!U1xQ zqcmiGvd%360=)b7gRlP?JPp4u-rPlgT-QpKPrw+s2_Y2Fl6Pf3WLrIvfJl`5 zRzR7_7k?Q605MS|LOp)*^z@V<2h(HGDZ1S*OG`^!US1}5_V=et z$gY4fh#8W|FyGtT17LM^H8)s%-fFc*@rL(BB)19^Dj?AhWmNzm2m*S&9-ikBh9T8z zm0qt$wOVB`7~uOp{eGW?g#|V@H^+z+SAa+dVn7hm_u>l7f^-FpF~tOssQ(cGTLUp- zEu>Me*SWg7qSb1#yu6%Cq>zA^h=iDE8qz2d)I6|#K!h+H5>b;YkVO%>@?$6?5oQTY z(?F45%K751QME>@jS&+cX*tI-L%cN(IMp5-ZkP)9G|9D?T_l7$Z_lAn^f-Us0K0Yinz{ z!Q%5tR$Yof;({iAw>1FMji}jd&TmA9krQSwZf|cV&q^s)R#wLDDy3*Pn`o`AgymZh zi!cNf7$fLm546@+!YtymJObr*0a5>rkz@?xQ0;abC?3O&jSXtGnnfTFIT|pdWt1T> z%Pz>PK&dgz6JfRjzVG9@F0SiZ<`ctl9CmkiClZ=YARG}eBFPxex((Aw%WJ?yNh2Q^ z7um_l2{5X_U@)Lot8smO4UCWG`uaLS5EPP}unmX1fJlt7_zw>c3j>aY%2c2f0U@;w ziN!Nh-a;}{324l1)l)PoE-0uiF5+PKZdT;=-y)!t(tkYv>&^GKudC4ky!`O_lWjNi z;o{=rqf$zXNWw;?OQRwit7nPbA#Q;yNhMX2dh>tbC$HZGw2l#K7ytkO07*qoM6N<$ Ef*p~X2LJ#7 literal 0 HcmV?d00001 diff --git a/core/img/filetypes/x-office-document.svg b/core/img/filetypes/x-office-document.svg new file mode 100644 index 0000000000..fc51a3a1b7 --- /dev/null +++ b/core/img/filetypes/x-office-document.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/x-office-presentation.png b/core/img/filetypes/x-office-presentation.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee552ba7c80dd6f285a4acd5b4a2cba62c140a9 GIT binary patch literal 1102 zcmV-U1hM;xP)Qxt zIoI6sH*(A|w~$-NDSsmOL^mA`29X?eG6WVRw3Y)=meuZPrmJ$8kL-A7t+gX1FEq^b zba%Z~^;Y$Wnel%jsG5B7;>A~H*1AhWA~HNUIQV`c0;;;Yx3_nf_BlO0U9BWGor34j zpZ^53fe*tlL_~^j)9a?^ONWWfIQQKlB7>(-pLPNO8xOta7hfYwbr8Y* zdB&5EpWG{f{&6FKfgIw1?L>9S|(tsNJaoxP2lkGu=H+b#a#aU=G;7#BM_$%FjWx1>03Ad zTbS9r6gWUY-j9H)G8&B-jYh;memVxw*LkpwsCv7z}7O zn>gpVzP@H}Z;vR7<{A&fkfo)i8Sg8rz*Ipqk&xzSXJ@ChaeaM#=Ac~di+Z2$n{7l+ ziwMBtW$1YxNs?54>-YPW=Y(Ncj=)WlG7`-fFHT^d_#hQv6&j63wFb;7X*xa3jDEjg zXrSBea&~qGz{7_RxxBn&cXyY1z0P<%UWjat>8eNxxPLTYLfVwf==FM~jnkS~Sy{o% z2*VKH_bYQNtIxZSYb{UOMy2%?Rgm`q0e$<=#M_W0$=tq>V7m@@N1d=?~d|0Rtj48_E0T`mW&JzT|%KHy*eN U6^wJ6Q2+n{07*qoM6N<$f>r1Fg#Z8m literal 0 HcmV?d00001 diff --git a/core/img/filetypes/x-office-presentation.svg b/core/img/filetypes/x-office-presentation.svg new file mode 100644 index 0000000000..821798d50f --- /dev/null +++ b/core/img/filetypes/x-office-presentation.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/x-office-spreadsheet.png b/core/img/filetypes/x-office-spreadsheet.png new file mode 100644 index 0000000000000000000000000000000000000000..dfdc74a8bf660ebd02baa99b0cf40d48478dd032 GIT binary patch literal 789 zcmV+w1M2*VP)P0b9sfl_KZH0<@@E7Fh&3_?( zfQKACgb;G@WITBBAk^FoT146sajCJ`YNgNwo0g<)5>VTK6%&$>Zf88yPG&aAW|K?> zzsr7a=J9=RzPCF|7-JB_FpM9JF%OO)2qD{kzyGwjrdvsrQjg#7ho)&tn^Q_*7)Hy% zS_Cl0P_Nfvnx;|#x~{`IZ2)LFCS$BEanR^gx9tRuLPSpj#AhfJa@?fapm4k7p+=+8 zmfBqfSk(rC4*>uZPaff3-~nIHZx!M7jc}YwXD~K;@oybq=EYO#Kz$1+*BU(kS+4Q? zTWJ?VCr)x)sWqg1@zeten0)q_=ZlliCH`W1j_0My9)1Z}nSk;80RX`As|kd|VZQ$U z(+ck1xY7|vB9ZU|LN*myKq>7mpxp$vvN-_2F#yTWDZaj%D_ATjbhKcg&v4l51psUpmZT8_u*J#5 z>#nsOO`xL%V76G~5A+!pH#PwPZUD)prUjW?QQ}##G69~EgFjyR`!a4_y)2Mni|60I zQFRefX}{U;A6QUrQ0(Rl006VHhYw%UoV&ImkKBr@4LZ00w@bs&@EHKWerW|a$1e$F z*y4}xrvFn5S|T;e(^xDfZ7moxJg+vWgq_sxI)Pv?*s-9KP-20K=t+RC>u|YTN(CJL zLI?qH+$v0Am;in=p(#=Ab+7RUMcLHz T8ak$900000NkvXXu0mjf5vx}z literal 0 HcmV?d00001 diff --git a/core/img/filetypes/x-office-spreadsheet.svg b/core/img/filetypes/x-office-spreadsheet.svg new file mode 100644 index 0000000000..af40bb252a --- /dev/null +++ b/core/img/filetypes/x-office-spreadsheet.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + From 14003b6d96396517875e39f46cd004ac867315bc Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 13:00:13 +0200 Subject: [PATCH 120/170] replace different icons for code with proper ones --- core/img/filetypes/application-sgf.png | Bin 702 -> 0 bytes core/img/filetypes/code-script.png | Bin 859 -> 0 bytes core/img/filetypes/model.png | Bin 452 -> 0 bytes core/img/filetypes/readme-2.txt | 28 ------ core/img/filetypes/readme.txt | 22 ----- core/img/filetypes/ruby.png | Bin 626 -> 0 bytes .../img/filetypes/{code.png => text-code.png} | Bin .../img/filetypes/{code.svg => text-code.svg} | 0 core/img/filetypes/text-css.png | Bin 524 -> 0 bytes core/img/filetypes/text-x-c++.png | Bin 621 -> 0 bytes core/img/filetypes/text-x-c.png | Bin 587 -> 1345 bytes core/img/filetypes/text-x-c.svg | 75 +++++++++++++++ core/img/filetypes/text-x-csharp.png | Bin 700 -> 0 bytes core/img/filetypes/text-x-h.png | Bin 603 -> 1242 bytes core/img/filetypes/text-x-h.svg | 79 ++++++++++++++++ core/img/filetypes/text-x-javascript.png | Bin 0 -> 1340 bytes core/img/filetypes/text-x-javascript.svg | 76 +++++++++++++++ core/img/filetypes/text-x-php.png | Bin 538 -> 0 bytes core/img/filetypes/text-x-python.png | Bin 0 -> 1469 bytes core/img/filetypes/text-x-python.svg | 87 ++++++++++++++++++ 20 files changed, 317 insertions(+), 50 deletions(-) delete mode 100644 core/img/filetypes/application-sgf.png delete mode 100644 core/img/filetypes/code-script.png delete mode 100644 core/img/filetypes/model.png delete mode 100644 core/img/filetypes/readme-2.txt delete mode 100644 core/img/filetypes/readme.txt delete mode 100644 core/img/filetypes/ruby.png rename core/img/filetypes/{code.png => text-code.png} (100%) rename core/img/filetypes/{code.svg => text-code.svg} (100%) delete mode 100644 core/img/filetypes/text-css.png delete mode 100644 core/img/filetypes/text-x-c++.png create mode 100644 core/img/filetypes/text-x-c.svg delete mode 100644 core/img/filetypes/text-x-csharp.png create mode 100644 core/img/filetypes/text-x-h.svg create mode 100644 core/img/filetypes/text-x-javascript.png create mode 100644 core/img/filetypes/text-x-javascript.svg delete mode 100644 core/img/filetypes/text-x-php.png create mode 100644 core/img/filetypes/text-x-python.png create mode 100644 core/img/filetypes/text-x-python.svg diff --git a/core/img/filetypes/application-sgf.png b/core/img/filetypes/application-sgf.png deleted file mode 100644 index 48996c54394314e0f78157c6b06e472d90ce6038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyY| z5)UXgb;nEq00KTqL_t(2&tv#cB49w~teF~JmE#%iZ)0PjXKSGo>}6b;>9~1jBo+;q z_q23X2Kss0Sz4HxnwaS8>uYLiDk&+-%SqdttM*m7qiFc?<#l7RpPRES5ZK$>+uGV$ zSXdYu8mgu| zHU(+eI3wEK$->go5~#t?%j=}3?i+d4*D%y2uLRM+!op&0EPHu(Bg4FoU=w3~Gcz-L zdj~I9x0C8RZ{$?qs7p>!TwI)&hZm?pMuKne!Wf3uVs}kV4FdxMkR^6@C)Bi%HFU_x zi-?GDad9y-GxPIuEbj6L+7P6pr3ws0kRB70qbeH68rq~}`T6}=NWn}@X=H_H8OR&zw}9d#LDAt9i1#l*x!MMZ^# zgn%K#$;k=yD^N8HGn1vE%(mGPh@?@KVXG)B!p+Ua4a8hr92}gitgOt;OhDB@QdeDU zT7xHQTH4*%kZZ52CJu}spc{aSn3xz@SeW>D*zL{aXEb?XPpuoLhn1&V`8uiTYlxfc kNr!oAwG}x6Lk3w50DkN_x`QMu@&Et;07*qoM6N<$f??@ABme*a diff --git a/core/img/filetypes/code-script.png b/core/img/filetypes/code-script.png deleted file mode 100644 index 63fe6ceff5bfcedb9670279d4bb8d25807f6ecee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmV-h1El5>jf6w4x#gTU%_MMNlkNp$oSbvBp&uHw9M;u0-4@=t5BI zP6Hx#-C_{5RMJ z0_P+Xkumexn8%)S+Y)#l(gR;YJP<6#1-=jjK0LONWPdJQIR8uK1HpvVIxBIQ2ztt+ zqoEx_X9S%QGMe=~(k#sebCL-an)%CR%a7YtUOQUgv+G>~?N~XSWhx=? z@$fx}0MB;$`JWcQ-Re{XV~5|{DvU(#*+NF*g)j^qk#b~G9_O!i*y&mZVZ=a3;Go(K z`DkskYn56Nhu+k@1Ke*uY|x zI&k6j$JfNe_a{GH%=n2rZOz$Z8R9V?Pe36hIk}jo+A-`;dt9vyvBu#Xm@veu&@v`| zzt%mwc_$nd0-sMVx2d)b0!MqGxmfCumx7yB#nIUWvA{!HOMfslMyW1iV&nY>zxwyj z8^JfLN|kT z4m^Q1mhO(_r4w@`V?H=YNkOf(i&bHT3Auc3bryK1_{hDSetLoLN{VLB^78ULiNFy^ zkUqqG$fjVkJj5tfWkOn|P5`HVEp5@-mGnc0wvJGHC=+39MC2TWT#i?t*~fNch*he_ zgtS^8dH$(KlW)EF1b4Fzv~?&0IQaNdg;W5&{t&Bmg9&N1-rBBr_;Rg8ekw^mn;@T# zlS{|Rq+-Nlg18i%UY;i|q1NnSwf>I@85#4U4002ovPDHLkV1mEDi4_0< diff --git a/core/img/filetypes/model.png b/core/img/filetypes/model.png deleted file mode 100644 index 7851cf34c946e5667221e3478668503eb1cd733f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)Pdwe5?6tW?r-ok|b$oDQj8FV%kZPq;(MWOV8?8;<)(iP}>hNMU> z7fbz%jjlr7h8uuoQ~J6}n}@Y@PdTk=)PxO{%7zmL?dchpZX*~n;I{!C>*(8cU;q(~ zAS%Po_@naEU!xidrBXD?;hN|x^%W|Ij)0y*r5vi|?W&Fub(NqJ@z0o=OZS(e|#C2>JN4>y}l*tQ*E7zP@R2CCJnkW?xa6bgk%(hgtZ z0=~d?U3i`+Mvi4!&~+WPT1^NX#{u6&QIx+DE(oR{&T5&-ovF?@wGw)P&AtpHZa|G%V*GUUqL@@!d4V$`8=##4)ytY959JG zdc&Kho)&AL70^i z!PEmeeDWCB-UbK(*4JST44^tV2z_J(dn~+vBMJT97_7rzFio=~XczIv?PQ5$v%u~y zu(bteXb5I1h2zCV{Jc2~V{{yzZipgsP6;k264$*#5q?GzCm|CPa9CKqm4b116h3Pu z?+%Cm52plC8|5P0@igf2GV1KkCfk{Zecu=G@VNrf>s%g9c5D%@cfxVb6$nY`1IW=4 zt10QqSps_2JLp0f3I0j0u>#qA;v!+T))KEbCg|mo3q0pG{OR}p0fPds8+K~d>Hq)$ M07*qoM6N<$g1S2e3jhEB diff --git a/core/img/filetypes/code.png b/core/img/filetypes/text-code.png similarity index 100% rename from core/img/filetypes/code.png rename to core/img/filetypes/text-code.png diff --git a/core/img/filetypes/code.svg b/core/img/filetypes/text-code.svg similarity index 100% rename from core/img/filetypes/code.svg rename to core/img/filetypes/text-code.svg diff --git a/core/img/filetypes/text-css.png b/core/img/filetypes/text-css.png deleted file mode 100644 index 23f3101811f2e402b8c581ba2e39977a675e0295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)`ZKMgf6%T?Ed*Cat6T(z(gze_Vj!CM zy6@eO?#%UBLOT}?40F9R=iD>%#+We%%UB#s+R_AGvw8Yw4_Zs>2F6fS)&oeXpp>-P z(4Hm2FoZ|N+3e;VNHZ};&)gBvnMk6jHRTlU@9U0$Oo&egxTGs^ATns~z)sFnC~aG*pjzb8G=xt@DLRNB;YZL<4tG!V^NUq+~Mv ztN7=;N57-Juq!r;ZvU(T-}ZaSebaUsBWyIhc|_vmN(Q*NXt96)H+}<~rjsF~CC`eaI+m%Y8jfzomMvZQaNUIT3LIrJ$h)_W{ zwF|LDNlB-g`Hb_G$;>3F$9JF3WYR|3fy2C+_wH}*xp!_4fF2UN4lt#d26oXwru}hT z0+0%Vz-l&|Tdh_L-Ng1G2*RBtBncRx;99K)&+}s0whhxXp{go}$g&Jk6k|vfypI5M z!1sNGVaV?!*L7i87Bo%cfO@?S`bajL{R<($@$|PtgBRcCGIJ_2a|&kO>G-s2aR3E4 zjssoScUa;zIdOeGHBnH13G)W-zt$kUQgNfG;96b=v&4NzRt&@7nN%v3HsG`<<+F$cumMs448N!W3r&2Z*b~D5^$^d6Jxn@SFK5Q8*uKSR7x{I|H-_N1f+AD zSYC5@2K4OKL$==F9U@CH;ONNL(W}oZICHn;d?~pw?GRIsH*x-68Oy6SuK`)`{E)46 z9^3(-HXa#X89SBv?uYTDR$`1BeYL^qy2ooL z9JGg!dj@bE2h%iBN-uI_FQ3~1aAJU;p94sV?vU@Vu~ zzYJVnaJh6}kUe&kYqf-!jn&kMV8u@`g~f@nQ6{h6=G`;>9L_o&0koYco59Oo$S(^a zPW~W&mlF~RTCGOX?B{Cc`@uU0na}7B#zvsJZ4aUE`&24rE}qoU7q1boR#*)bvt>m|>nH9zMx%F>ByuA^xhx~`M51sBF6ZkATK`k=zS2ZDywQ3z};VbDx?c~o&Y zm&URTbX{M!U1gwkQlrrz3_~d zrn#f<$I3v{48y>29BkWWY;25Tu}BaEq|<41T_+4fY}+P|V^XOUuIu8uE&zo>VT0dY z0pxNya=F}=kA{bbw~XziJ>3QSsmBHoLI_RUQk{F2rfCSV^>1|pfDpo%oSd|#r>9H% zP5`W|tXM(_Ln#%n$K0Hjhm_XS002U@Dc}}>|6Bh7M3;GZ2M~JY00000NkvXXu0mjf D!8m^? literal 587 zcmV-R0<`^!P)~7 zMNw2LQirBVQoa8G3P(rY+l;L4iy+JwSqmy$9JlSkk z&*$^Eg+c)@!R|v4gdc8+TTn&eWHO0VD&>$!B%o;;WLf4CNs=Inq9d`xA4otCWHK38 zmc{pkX`0Y=9g3oGK{}lVy~OYL|C5lQ&U^l;wrg|7w=BcA9L4-r411?K7f`@348&rw zXD#uW)DK;H`hxO}u%=@Cj{;#u#_;bb1_KgUOT2Hp6;)MvC6P$vQP3=g1O5#aU%I!K zZ1dc@f}YvG&*Spnplm2rIp^VdA^HydZ0X1axdms2!RKi5x-SFA4p@ zC@N|PI$ryHL@t-(!zBsf2-+sYAukhDHU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-csharp.png b/core/img/filetypes/text-x-csharp.png deleted file mode 100644 index ffb8fc932f321d19049a51e0134459e7d6549226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)WjsQrp;}0X?Bxrvf12IKW8>3t`e~W9|JS<{btTNbNT@EQIWBSNJTX8AMGXD z-SsH|s#>j9Xf~VMtyT-YMD}5^SWHTY5->o`k|d#AE_YQd79j`%GMS7FNvG3b7^Vy9 zn0HYCJy5MyQLoqKnW|JOp-?D*<2V^msZ>BOv0ANd2n7t@{=V;sZrQ>3c})5_%ms4z z7!qXwHHe~!QFj8aR~&*-3F?O|;#(ESIXP~Os%|~y^7c15*q5`gz2-5ol!fU92NIGT z_ves+>+Tf3gfcL?!nimYmR}cw*|BGULzI^7!;k#3K^YO#;!+vM@N~(99+<;fdqr zYPJm+pXYFYk;neQyXXEcTQDNQx57i`Okp9A#n?<7!{#tnKJdsF>utb@JH7dU01gfL zEK2hoPZAnO5+je3&^i*hWM`qCW^vLK!O*?U-#IvXV?#6koWqrwnD{j&K`7N>^tR3G z8zr1(qVOzcF#nF1&0MZ5C$l8*E^Uth0000oEl%}ChsqGN2zjk+KUJi~^*G_Eb zqx_^f?Cgx+XMXQH?^=ln!@7U}esyVS$>kMjcXwA`zkai?o@;Q& zaR|fk+35TjK)2hC<2Yv2nX^hMMYr3Hrvg}O5s`BT82t8BfMEqeKpe*?rEnaFIF9i= z4{Pn=^FYO7@l;S_0E5#HkK^WtU7E$Qqt;9W2!enh2uLQASZnb-52X}R{TtcdB8noC z`30h@*QnR)l*?sux!m~y3`Q7+q|<3SoeluG@4usX^&-km@cf6Lx%AcDnVdK=KsKAj z_kEyW#p!gKLZQGj$HCK02sQZ0nG5#R4vfCDq7ZGs7>u4R|HlD1$1NHJGsd8lLTinP zP^;C5wLxNojSa?_K2#Xe-Ppji+Y<|UssodN2C^0;Hi#9hwmkjv4))15e##{ZV@&!2 z%b$FPyRb0Tl_MP(j8>~fqtRf0f1gI9aX5NWjEx0}4TvSxsIq)waVt^CRQyrKH zAR<&M6;@YQDV0h?0CG?RioKSmaPuYt{iVLFiloKj0FKB3Y@-?!a)rgixtIa#!u`( ztJPxfuSYolHsR7T%WqyKm&*}pi&z0`h+|E?UZ>q|(|oeSoDswdVg!-#zA~z@8W>*O z{N-0tKmNqZ&L-ivcS%O^K_?W%^dXEL?vMf^h^3!`DfvGVV0c6Kx8GS^NRixFV|j6o zy@!7yBB+GhKcy9LToxA>DHe;&&*w1$VlCE4KUHVB1@0S{*nPB(brL*%yi0m@1rb4O z3$6!#3S%stPKPLp==ORT3r;2jPNIKXP6{yGh?Z}EOzqm+Jd7@o`REqCT$Wm`M(*8r zc+h}9YG9YjBoYaXF{GE5s3+%muEuj@7ABFzMc&Rx<-ArIh0w*`LlN$8k_fsfhqeDfiyJd zwZ^#<0QGu3sg!a>L?6Z+wdH^^`6>W_NJavV0sPHyRc>}g~)F_Qn`A>)C_iwK%Z zrIJ;xR)UI1Y4Ozts|-Nho;q zVk9-bX)%F~!;63iu$Fk=VJn3~fmb5S@@)ZqjBT2{f`vT`b2}zxb0$o;EF@G3&BHK^ zc)`1kUzo^Qkk$?KFKHNBD?nP-MJ3b@&4fg;g5l2wMi^g?9qj+~@b;62o_U1_S1J`g z7m^UMg25FX1MJ5AQxAJ5F5WDt=$=-@JV-!LHA2vuxl9kN>PS8x??^AINH6LjF*#nbk4}=n3gfWp$kEX5IpHS zYiQ{@d7Nl&d$#+7-TckP&Q}N91e- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-javascript.png b/core/img/filetypes/text-x-javascript.png new file mode 100644 index 0000000000000000000000000000000000000000..24d09ce978181c4b08b67c879553a75fc3c1e97a GIT binary patch literal 1340 zcmV-C1;hG@P)K~z|Uy_QdiWLFi3zjN!pSM^?XO?7peuI|xj!#L*OB48Hd zgb@N+L>z;lVpdsXlYs=>NJ16~WRpc88zltXh-N^A0T&Vwhk&?o5*LFeGKxWDLWk<< zbWhLBtE%^2y?gJ;qNgjB{+I4@;t$@UZe7m#-tV4s?h{pIQkO1W>MbrVTD}0SuCBV% zr%x|UuI)2zdiX=y%$a7U9HV<^k=+RpV|0C}EQRaLRmng3NHLZ0W<=K_QfP}MsQ zupRqz0Vb7Y8C6vwA{b++s){Iz2qBDrZ)<*jek!P40NZar`Runo>C#~w+iTB(09lri zWf^fCBOhMDhKfP}TPJ+w0rEU2NfOGkWMgB4rKKfWt=63b*nY~gWZ~Ukv+&@(fUth~ z16tpB9cg^|P)Vi+Xf~VF>vaHXQH?bJHwe^XyHy8AEYztT0MHOn??42+nW|F`4KNAf zy~kRMh5*ikKnS(Z0QmKf$S?i^>2FYrB7*mL=dfS@CiPR_#Was0B8LOmAIO8NKm-lZ z`2XtaKdJukQ;wgQCt8TWSiqv%VA%f~y*K_y=eb|)8~?x~==b|%Sw^GLpyfR3JtBg4 zj+K=a3N_6B{x$A7;gR+CDa;(3n}V%Dns_vLqI=Km*|z%vOisdXw@bI%1)y(g;1w0c zh~fD0PvGqduTs@m|^7+~oT8 z>-a~X;=`iL+O3p8jBx`Nk7eAQUSs&n7brite4qn+0_-IXihA9G2ormvI`YJej2?NG z|E$fh)^DO3Vai+FJ?|L&?q>(aK2#SZNy3bC<0A;ck!2ZWHiW8#sLr7EC5p$Nr|A8Q z!8^a@tDQPj1(ulLMo3gY{2bVG8Y&Y-7#Ni$ach?7=RZc~76|v8LgtrAXXo%vw;T(K zcL9vu*VzLdXt&$6TCJ_tlurRfg@uJKA#T9jEX&=J;mX_OS1qE@o>R0MQPL!|7pL!n zqA2j* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-php.png b/core/img/filetypes/text-x-php.png deleted file mode 100644 index 7868a25945cd5e5cb7daaca9591927511ca65c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)vYep8SaFV10Q$h+;hIUPX_=v5b}%>Tm<(&j1&5;I!55C)oN0s(P%ZB zP3Q#ahfpXKWF@S?jm4U#fv)QovMhrriclyNs6-G12#3R##4PSZ0VY(dRWJ;Lwuq{# zAW0Gwi$yA^R4RZ!;W+L`f&%x{=D^VK#BBWL4Ys{;*!A7Q;!=dN<&D8*GzGaF4`hV4 zDbY0{NrMX>ZqF=0((gR5-zL$kC*b)!fwu{Euru|XrG<$^n#@)7i_>rCmRxnDq>$Y%gJaCkRd|tE*a2x05Pe!I^e13o69#&RQZ36s0 zB=O|K2Yi(jsMqThn}9t?f5E-)L^naZ+db$&%M$!bCdm=jv7?t_lB?3&%Ltq(>ESw? c;MI421LCcoDG!2@;{X5v07*qoM6N<$f`UZt7XSbN diff --git a/core/img/filetypes/text-x-python.png b/core/img/filetypes/text-x-python.png new file mode 100644 index 0000000000000000000000000000000000000000..57148f4b90d401b26b324d3eaf530f11032b4726 GIT binary patch literal 1469 zcmV;u1w#6XP)+$HVFbF zIXI^lD9}rTTyjfu=%MH#*ZcuSkbj_eUvmx66gdWPQ6oTtByx}-zvLgHEK(B197S^Xd-*|GZt2$I9M?|tUY%$r9gBJ9S}$05ry3WWmJ+VS_1W@l#~3F;8QX!d(w)5iB^=_DDOWHS}O41Q*Cf0aQT@6K8r z+|mMxTN>LXNkXYqLTgR8+ojcNQLR=V55VxN_c;6XpP&Yy0819HkVYM{xJ&Wk-*KN> zK2eZI0to8Arc%z4v<*%HrCcbNQ0{YBw@GjHL$dOVc+Jg&S?QcH9&ioeT&pa}KGtJ0kG2{sdY_H#CqxdFw?uXpH^#!7QZ1fe? zGfSl1&!%qBNgMgt42)#61Tis6ffWZSUm!1EVEE(vm{j8`ji(aq&Mj>HGGfi{jDk}r zH~62QWE~NUI0~#*#{!H`L7st45#?g7Wpi^AfSI92tOb>0^8vlBA>Qg=n1B8)AZP2= z=Tv_80RU;|KX{#gQapW;WaCSM=yV8Ik6waNCBzEY9IU~0Jf2=W#bWRcq1VTC6^KPg z17;Rq!>^trEZin6tfJCQ#2Q3|?B2hq*CCXzv1yNC_)2^*-o!m1B3KcS98gqd&tty( zfV%rFXPYL#^B)~=6e700wch;O7zzSk> zB<;|sWwaJT%I-Q!-zGOctKa@WVfnA1JPNI=Y;SY`MOZD9-uncTY~Tkjl1B`71~|>D z4|fd3vbzKVNk1Y^16ym@kM@QVub^VjJ1r<@9Xketm< zOz^@Vke?3S#*+bd-|a4d^0@oc8ur{fRDX4mQt1qNKSJ_+-*dszn{@B~gXVmNg6A;2 z{W0a`8N^!B)TI>E5otd}28@6;pukwz&`q4INVN!26p^MWTI=z1gJMYOevjr{nQGM` z8Em0!K(CkMF8qG#6@O?Cj3BHCVl%|%SfdETkT49#j7#Qr7XotQ8z(44Cy zSh`(Ju<-iSJ7Rh%HiDQOziE?-Rrttha#5GCG|Oz!=2${e4+*T^H&vG3ec-QVQsH4b{t6_8jdKv}7aW z`m5K7q6n=uYR@$3Yk{}VXCx2e8Inpz1bU8Q-Rv$V8?=Xu0&jOTfX z2+rU(&n`E)^vo>Pz+t23(pA6VhdWzSd&py#Kt!0En`3Tn?$Gb8*1kVC^fu;MYk!C1 z6^RBz+*6l0_uAWlnz(Ey1~{o|FT6w6Ujr|oUY>p62Vj5Kd?Em)lyaPj_2~#X1og$E zEgT1>)X@!zQp&r2{kp%hvaw4=DX70RW_OAmAZ@|F`}N XL~gkR_@Yae00000NkvXXu0mjf_qV%N literal 0 HcmV?d00001 diff --git a/core/img/filetypes/text-x-python.svg b/core/img/filetypes/text-x-python.svg new file mode 100644 index 0000000000..00755e6d0c --- /dev/null +++ b/core/img/filetypes/text-x-python.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + From 4f525c864df7eb6caf1bc945c3c9e48b20bcce5e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 13:25:07 +0200 Subject: [PATCH 121/170] lazy load preview icons --- apps/files/js/filelist.js | 2 +- apps/files/js/files.js | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 288648693b..138329940b 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -186,7 +186,7 @@ var FileList={ tr.attr('data-id', id); } var path = $('#dir').val()+'/'+name; - getPreviewIcon(path, function(previewpath){ + lazyLoadPreview(path, mime, function(previewpath){ tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); tr.find('td.filename').draggable(dragOptions); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 180c23cbfa..7b01a5202d 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -366,8 +366,8 @@ $(document).ready(function() { var tr=$('tr').filterAttr('data-file',name); tr.attr('data-mime',result.data.mime); tr.attr('data-id', result.data.id); - var path = $('#dir').val()+'/'+name; - getPreviewIcon(path, function(previewpath){ + var path = $('#dir').val() + '/' + name; + lazyLoadPreview(path, result.data.mime, function(previewpath){ tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); } else { @@ -432,7 +432,7 @@ $(document).ready(function() { tr.data('mime',mime).data('id',id); tr.attr('data-id', id); var path = $('#dir').val()+'/'+localName; - getPreviewIcon(path, function(previewpath){ + lazyLoadPreview(path, mime, function(previewpath){ tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); }); @@ -639,7 +639,7 @@ var createDragShadow = function(event){ newtr.find('td.filename').attr('style','background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')'); } else { var path = $('#dir').val()+'/'+elem.name; - getPreviewIcon(path, function(previewpath){ + lazyLoadPreview(path, elem.mime, function(previewpath){ newtr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); } @@ -824,10 +824,18 @@ function getMimeIcon(mime, ready){ } getMimeIcon.cache={}; -function getPreviewIcon(path, ready){ +function lazyLoadPreview(path, mime, ready) { + getMimeIcon(mime,ready); var x = $('#filestable').data('preview-x'); var y = $('#filestable').data('preview-y'); - ready(OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y})); + var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y}); + $.ajax({ + url: previewURL, + type: 'GET', + success: function() { + ready(previewURL); + } + }); } function getUniqueName(name){ From 79a5e2a4cced4787635632f3857fe1d88cf64c71 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 13:45:20 +0200 Subject: [PATCH 122/170] adjustments of video and web icon --- core/img/filetypes/link.png | Bin 850 -> 0 bytes core/img/filetypes/link.svg | 12 --- core/img/filetypes/video.png | Bin 1809 -> 1362 bytes core/img/filetypes/video.svg | 110 ++++++++++++--------- core/img/filetypes/web.png | Bin 0 -> 2284 bytes core/img/filetypes/web.svg | 47 +++++++++ core/img/web.png | Bin 4472 -> 0 bytes core/img/web.svg | 183 ----------------------------------- 8 files changed, 109 insertions(+), 243 deletions(-) delete mode 100644 core/img/filetypes/link.png delete mode 100644 core/img/filetypes/link.svg create mode 100644 core/img/filetypes/web.png create mode 100644 core/img/filetypes/web.svg delete mode 100644 core/img/web.png delete mode 100644 core/img/web.svg diff --git a/core/img/filetypes/link.png b/core/img/filetypes/link.png deleted file mode 100644 index 0e021d89f82366fecbb4896e852b958053125a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmV-Y1FigtP)v1 zer!LTi9pAG#pjrh?{FhxjPxWRl6OY=245t7n{gKhu^~q3Rw807@$JKp5i2XAD(sIE zz@IZd0hh5n*1t~tSCxF{;rEC+YdUfQS_#-SEK2$oVk@@cZ)}h4!#EMY`2&kfn5*y@ zty%$bwRgz>!HQD<9{hwa@fufSB#KfNoXHGqXY8A(6EKy4tjmD(;iLF|v}Q3*R;;bl zn92&kPzur|J=fuOjex@y-+deVhdOQPRy?jj2_cNfd0t)P_OPOTbQV{l?n+$*v{(Lq z?X;{KdB^TzX$E79b~aqeO~K6)NI$;9ZY;sM2E?h2S4=|-H**4>lmHgsqU!y>&Yojo zg@E7iB)102#M3vmmE)Nk9}VKjuWK7{Z?2;qDP;REczXEV5}HlmV! zpZIMu^So$k!?>=r5!G$QsjV#e_2U4Z_8{Pw_{?v`nZqcxjTI@iRQq1=e-A>c52MU+ z+_AG=&W6nm$?K2f2sUWug`{IUYXt0VK;G;^5&=idzIZ;yvW)K<-FM37SF)0bawHBV z{R7w+g>@Twmb_L#G9Brfc#gx`7tQ-k<~$en#sW&&QI(=OYy4vpB0;0_K7P%567W9C coc|ra1xC@JLcf37!~g&Q07*qoM6N<$f<=LeVgLXD diff --git a/core/img/filetypes/link.svg b/core/img/filetypes/link.svg deleted file mode 100644 index b25013414b..0000000000 --- a/core/img/filetypes/link.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - image/svg+xml - - - - - - - diff --git a/core/img/filetypes/video.png b/core/img/filetypes/video.png index 13bf229fc45a63ba5866d77024bda31414aabbaf..045754df26fa90c64237a817fe5a151b1aa18ab7 100644 GIT binary patch delta 1269 zcmVY4+K#`qNunNbm79CAQB>Igt*Wkj8T+vmrUknl1cY;SDoXc`u5yA z?Y%@n;^7wkxYd9C_1Aw+b&HvCJ;Pns(fd>x#4gTQj)xW#l z0RWHF|)i^0LadrJGXiM{P{5HxV*fa0JMMpK~ry# z?9Onza*|y+Zhw?T0*S+dqFWxVTEf)^z1k8s8>CzUU}a@x>u+#-r6&X^%hIXpeVrnd zW%&bu1&z%s)&{ik-~`nAqqYHSLhR!ex@Q*QPNFwqp6Ak~ z+yQ~QuI=#Q!#_CZP*v)>769$Qk@%dc;k-g3bik2B8_*__ur@%q1oLnQ1jgfWxNzY@ zp9KdF97v-FLNr?AK@ACtr2%mgNg0?XmxD&h2l1 z$kxw4aew8DPtm#o0gUZs=#Hv}>lB!WJ0LI`jhw39KXL15G&&Or7#fsz%TpY=gY?!z z?0MiJ#-Du5=GR|>SzHFQNI+wM=}b5ecM^RT6h$%P)}kmn4@6gYcxaNMMad11J;BYd zze|4Sy{OmO78LE4U>@#(K$c}9(P$?`ge=Q?6Mw2#LfBT$%+NH$Egxk0nHM^BJjK|~Nt^4-v>#`uq>C}-Yu#|$BqEn{qU#z>T zXiBfZJlp{R=iH22os0JHAsX=}7e_HKm_XbJdJ2{JhxWC;X|@Req*+t zZ7+i&s0qF!aIIO;npx?+A8a|cdv1y1#+wkPJTNnCRKSP|sDUDcCPJB6=4b18Li{+1 z1Vm&n@c!!R>XXxoOyb9tm7TZ#QLL`6-m~MD2i_Bry=HcK@?|svZU9Cd!~ZG*Pyv_B ftb*>-?0Uvu3+(HXprTa400000NkvXXu0mjf?%Q`2 delta 1720 zcmV;p21ohQ3Xu+wZGQ%iNkl7fM7XGTb?RK|fc|l_Zm=TF_u8|N3n8iXI z!Xeto%bYe@1VWn032CGiNOQ@GBe8(PE*B0tt%Q^tK>>*iD}DkS5;!2C2nQoO#EBf) zAqHc2cXd}+&0*ZVZYMK4H}*-T?y9c$zE|&k^{SdkDe)zRet%K){|5(D062E+*k1<+ z2mcw1#RLElLPC@NSKpWJbneubQo^z*b&p78uBofnCuU^eMj~O05JF@!nT<>)v(7p9T-Sx?c^`XvdRQb9DRR!k9Pqser)IOoB8tJQ+%dGI_B zx~_*)AcWX)`}m-Ku2ZQLMn*;;gh07m#^T~4q?G9G?Zu%(hj94tVa&|TV0n2NLWls| zZ$b!g&Jm4915C9OpcA;;iNV1^3=a?E)vH%{`0ybZV<8Y#RWUR)gfnN(;P&m?SX^8T zIe*}Td!7f^bp!h$5_YfNe~-uG7#bSFlP6E`?Afyru>Z~&!<{>K@ZrM;jEsz6X=w>t zTU*<}g%F{|2HUVR4V@8@QsUI9Q>fKyn46n}>$-4V7mA{QF&6aw_Ta$-R4NsmK7BeE za~vn&LpK)f2JP$%A>g_$_V3@1=g*&q0DmuCx`g53VW_GK+qMHB#uy$wdW3X34aafd zx^A%Qop3@V^gs9tLI~{IwF}W`6y>M~@!G)2B~y|NecnS}h16P%4$6 zX&RErBsMlSLbiPed`#Ls*cnd8anRG#11TkHwOTOl*Nb*##EBCpaPHhWsHzIj^M6pQ z)c^pyckkYo&Thg7B=p(olge-F>+6tGB9Ta7b8{1%^MFtQP$(2|@7_J+^Z6jGd-v`I zfIzo90-evG5cw-^m)jtpwOS3;Y8A<360cvs4nW?%eT%zy?_zm*8QqdfrBJWeQLoo` z1m4C0DJ8bHwotFvgA(fRe?kc6=YQvs&1Nw_KOa=bYuB!A0|o%YFp$k=@%ZuM5LoB4 zla$ma-KS5VV45a4=i72MJ3EU;qk-}9@sNSe=8uh!kE79OV0L!)H}k(E34g6Qj)SSG zDfIRA;mVaO=CxI3(aOT6!x7su#JSj=0K->{`?s?Z{Ebr%nS}3IDr2C zegMGS+#HIi`go#l9wlfOBpZi^a|N z@89duXfz1`j^ork&$A+t$bVO=sv1&C*tWe60Gg(K-L`LX&Nl(*x~?aE+<=7bI&dSO z&!-q;tG*G=`L~?&Z!ODOmr{Z;wwll9Q;y@@=qOkrJHGv-Q($Wno>%Cw_b4U4-5=wLWqB-QmIVm zwac4oRP*DoowxR1fIOk9l1^(^UKLb=%g=JZY#bO~n(=?&$dg#zAl}gVjr9&zJ z*tY#su~__vl+xJF{V|<|((qqh_qFb~gb-pf#(pvk - - - + + + + - - - + + + + + + + + + + + + - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -56,16 +51,35 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/web.png b/core/img/filetypes/web.png new file mode 100644 index 0000000000000000000000000000000000000000..0868ca52747fcf3617e637c21636e448cc2979c2 GIT binary patch literal 2284 zcmViz=KkA;{%-(Z_~{=W@O1F)mX5Y|-xvl@pP-gV0x1FLUVS|sy~`=s zkc~r1LxW@Ga^=zAZoTu-{|R8zPo7+CrR--rI@?yAn~x00 z)$7O<7GWX@aY9#IAs72W@!a^kI+SPs#htT!#+S(3h2u zJGs=Gu`yl6^g?h1pvd+vMWkJ#=?T*99oS7-0OYh!b?6k9uqnU$S6Z%E&Gy>^ z&q7?wJ!j*s+w%j89e5)mjL~pryoi(xh7!vY_`$OrkKc!o(62C738dRedTaj$)+3Yih+# zWii@-0gRzq3z@7XDH-_>+`i@EC39=en~0?FwjxdE*u)fA0;3I?_C*w~x)wW=#z+lD zf;Jc>5JCVDP8117hv~ZRWqz3ITkvwNjJ*C5V~78Yn`HH0eSw3l?94k{aYCMnPiqFj3Xd7Wz}^wk3q6)0B_@jkq#~lWV56 zZyio1hp_6_3jqj0wsSc_@n0CF0E1QrDJAP~`3$L)#}m))Fp&g{Yf2$=r|_vr-`R0FiL~gBz}d` z(bw_Mo<_%VUK`w8JE@i)oJ=bkkW!K)2~iYr&FWQr?TdGCZQCR|4A9b_Jn;1P(nSCO zTIyF!Si(dBvN~B0qN>|!ltuY!}J+`#P*(DMO}t5hjVzNraIR zwv$FEFkuZH1?VWK9|tvb=+6So=t2nBb)5|xHe6RI6b=jw476B{;x^zl>JCqbw846(ceL)J53USW#MEC=+JKr!})6&V{~JxKHq{|E{E2d zAP6{m^r*jg@7_PgalBtjIpMnQla8j*^-GiIZ=g`QX(j?sgVrf9bVkCv-f0f#ub@=CwfKI1WdSycfUrr&piYzkh$x z^E`qeV9lB}eH%A!yk<_VdI(MZn;bRBVjyfN0BWcAJ-KV_g9Dpt@!0QTQ9hOE@_3@k z6`52LnN*TQl`DxZkH?~X$`aZ?e*Ac}cke6D@7}%p;h~|SU!Oa7PKIGfUteE-*|KF1 zHQwI9CDw$E(csRJGeUtyXtD^UO0lXIeQpIG7ZR#V4nyr?)gWH`{R>+jFvZ`FlfAUjPcu zkC>VBc>oO=Gv~nr0|S|SKL0{fQ`6FNx%}de9Xsxyx%O{-dy6@tdBYO`0000 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/web.png b/core/img/web.png deleted file mode 100644 index bdc2f4a84a53f20d2501f8addd72d299b6f098fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4472 zcmai12Q-}P)*iy>y|-YrQAdk1h7lQz&gen}VWN$}V3ZLPAzCC#5{clDq8(jCZxJne z2_b5PIC>4yF6W+m?z!i#`~Tls@Atjm-p{-Dv!AusUh9oDHP)r0=B5S!0Cajt1nT@N zaK0{60?*$@)V$&V0GY7+wQHt&*RBbe`uVuId$|GtDojz9Gd`0RtQxUCs8{T80UO=> zaUV)7&9B$+a2K@$^-^B1>9fCH9+wbafGWr4^H5AKR~49q5|x3+B$}TuF(6@rbU^3O z&-=}ldgk{f3iObn-`f}jMc2qJ=jsBT#mw96_kMmlcPo?4JwQbkd+lVATFArN*zmT^qlUHA3Xdy6h?~YH`~omCg7%*bR8XwSf_#0jGSeR;cLYMnm|fa=G+$rsm1(AYYFmSj5==zC^Ip{Zk4|zRlOblWsbJNIUpww4lyfvl z=a{`#>nOoCb(Pt`%|DYI^E+3p%JQIDUX?13r>{~Pv_MMIA<-6ir$*0E&D=o2Y0harCeJaCV`N6n;~tmV8)1S3LGlDl5FhHM#8Fpx7`+XZ-Xh~vWDo&n0LR)bKHMwBvD;2&rMy8Yb+(W1 z3grgczxehf4iC+Y6GO&s#GABr%qx(-%d9`RaUfdy=F;A23X3chI_oWEDAK7gp8@r? z(%z-Ur4RHvgac>jbMy)WKPh#yS${4mC=sU$>#mk}7}dSc)~m?Y{|&4ZRNc@T|5CUy z5|sG;>hw{gcHk7P_xg3j{j*lJ6|39V^H>OLjC)Po6VaQ-VT%em@f3Tt4f9Jckqf{i zb7<+z5#O@G{1oopAU@)UWxp6gjbEAjtXP>_%@K6QKIpmww*~m(y?7*9&c_B77HR8$ zK2OFj7Ks)(9S;DI2Dw|<;B1Txp)Nk&GETRAoLyz`-q>?A006^7&$r&LI41$Tw-?4A zidP5yj)0!;FU$~-!0!;8r#i^S$W-8(kDsf+6&X1hd5{LRfPetZ@0J@Bh0yuq`1zkY z=r#_Ag+d@fK|wM>3Nk)^Xo#GuswzZQ9wIL#2f;gGA#yUZkUt}zAB3IP2)*X# z>V)(0v+(ip(zu}Jj`8$&al*P@5QIVgj`$-b406HaFT8#)`Xc1t?EfEMoV(kWJv4Bme+)kRIZy1(GhnIyAvzl<#zE=}XPdmuC+9 zvA@#9d<0FBJLZYdFv-2)o}`S{${8ig8?9{g_Uy*E2v2bG6uD2dRW9@2&VK9eO-YU# z$dfJyzNK-nxiv^=?puciqSrHyG*0@a_^w@7#r|mQQ=bWHoCykVQXq9nkQw`Vbo9ZY zE|C2AB>I$KJ+QhEkZnr znIC(5B=g$>t=0`JWXzQH2WNdgC*V-arDR=D0oDD+bDVM{~s7i{8C4xV68 z3~QN@#FD5O+P?;#siu5T!P4}ZaM?i*z@!9c3curi1Sci^*?&I3_9Gp?Ja+dan7Qqj zKl6)nLx_}G8l`b_3v`r`jg^U4{qoo@q^T>%BSEnr?QYAs=MgKx(IFO}QgeC&!JLUu z)bqxkftu0uWvyvmVXJS&QmEEc#ixEreA?3-H<}dDqWvsyx62GwVXKeZe)wV)p z6ny7p>i+$!rg%a{q9lg_lir)-0}jYi(fIJCrit}%HY(a6J(_H$4c!~zib?wQD(3k^ zl`e<+wO5CR-IGyzeh*09rPnNirtDBFJYcN7pTDZ}Cn?)3h9u<>{ag9$(EVw%CYL!a z@pNOj#G@|V@E7;5YSxXgIMZeFL>n}PFRiOtScYi8gOmI`JQ?*q8GIm~SZF9Ci4W3N z^tyLl!Il!2W&Pm&af7cV$R$$9u#UiFaI zvhO7QORM6~e$&~XY4k!Jfp@iwq@ATQW%WOF)A6q#E_d~&D;tFVSl6b=F(n$ME8SnZ zg}T#8alo;pOR93Ue8TSVMk$T$7j&>cc%36FeF6(8T%0Oh7$ zQpu#SX?Vn{z$hkTznf9O7VpuT!dnTv%sksZ%V6al{E9qn=9xHam!fp1s1tyg^B`Wl zW+4RSY@00Xefi7FWLQCiu}qqQrG zMetK@ip6R{qLG-1^Eaktsi8I1PbeJiBQnHH71BuA++*2DSnQ?}ym^%`tuM>Gr8OWg z!X)|E$eYn&6%0Of)zWHttd&sy8vdx7t)WN1WSwsHjER;LUG1~8c|)%A!tWw zr(B_MD?L)f4M?r~SiHkw&9Vy-$CW}Jkkec{_blkW1~0_uOa(u>Ev3kZ-rutKQV z<5;@16H6u7;_?z0^mP+gw-4edjjAzI(3)i1fVRqU>BMQ?+t1uOznTjV(~1)#u`yq; z^2||`mq^nhBU|@+)J*B6pX90bS-&%5x79z1V9* zXqXe@Gu*yzW%uGqe$Rrbi)wN!8Aw1bF)BZW)yG5WLD=)c=J))};FD!bGmBv=RI&v$ zAf~6w$yviuC+4!ULNh5xbmUhqvF3jKBDd={V-P;W;+QWDJk*e`JXkT)@D!(J;uZ{~ z>TZ_kc7_=u^ll=h*Ct2F#G0=oXInY7#Fs6LvT2GPuikjA+2@s6P{UOIMt5#e0;su` zPEnF^SW%;*7L%rX5Aoq^!&VjDZnpx1X*$MS@D35dD&63#+BFE=_8NY~+Cn|JC1&`+ zHf&v`Q|TsGzGufoU$QwT1<_oVMW`s;>^4$7r(gUMBZ(l>Yw&Wf15&f&QJNz29vSmP zBjhdIWHjBY0txjWJ2OLF_Rs9tuP7|m+(q-KewKNvLL@ji3~+i!$UO~i&kcX8so^Hs zEth7f^F>_>6e|Um3*F~jP|^}v)S7=;@<3|@(e=Sod~hqk!^=UBqz4^|AWv-iwwRv3 zu|@Iyr?#AYoA9+m#AWde$y|-3OntA1A@%2MUs|fo#hbd{s z5Shf(OjkWtRJiMXvzBAEZ~?ZC_dbaGaFgD;nMg#V(fPS(HuaND_TN7Bn^U=flg~=# zPI?xr>%mdfSW-|hKZTWyNur?qq;n@M`%8~5BO^BkS%P}C-FbhZ$MF3<8^0^&&h7RO z2J(@;?l;=ZMGY!i$5-%aE5dE{~9|c%-(RHRaLTUP}2ayUNmpp#wN@N zTztP~vym-vS3?*JPDKn5uEDB;9 zEdT;e9k&&`--8sDm5xD z3{})2Z{BulG_b3Uymf_yv|=uVLGNbRWl9n<8{|!6l164w66FXDa#)d@hsS^Cu$~ka zD`{?RJyz%Ut^278I4eFzldAScN!p^~Hw_+qabx6sa{X*z^k=dvCU6M5VRp3bJT|-j z0Mkfbon;$)p; zibBdL*`6e^$>K(TdsHMv*TeWE8%Zh+FRP+^-xEw+8hb|(u~gu>;-ws&E?QAmdR`bp z**-|xwZgW_`2%(E$0yRgq5G@B@AmoN@i9zib3_<4$ReJl>WQ&|#nlWh{1G{%lt0yc z>yB(Tx9m)6n)L_yE94_q3&9GS#poU-vc+dP-)wV)yTS@ZcvUvvm7O}kmwC9j#C^$= zyMzORf@T<|3lER@)B?d_{7|1(#$yAKUs18zFS*`!8!D;d4+K6e+qfJRt$afsvlB;* ziK+C+%PiXDEP$Y6{jG-CU!@HDIoVu#TOuinrs}fJ1S6(3!jJJ|L$3{#NygV!S9>s1 zwE;YtcSeSW=64(&1WEFmTMmKQZ=z8}?7VRuqqmg`Ep`sM7=u{|;aOgF1rA16uIP=k zzsECi4w#Y7Tt3>(${qU=ID_BK2>O(en7GZiIe9J$4Lu)pw{Eo1`p%^>GmJjx2K{V3 zS!bC6o8}!(CmCLPbo}*u*&s_vHm)a+Su$l598%mm`e=v8p9$74-BR_925CZI!e*L+!zc%?$%C>xgzR>~l^kZ0ITNBOoYN3KD`*m8ax2e*m)=v>S zk>m5J+A~3Awy5!YdF6qstvWi1_gtT#s|iQ@zIVe=UTYI?KZb^cOb-M!9Ja->Fz~Bj fZ$jD^##iAE!=tD$;plG{cO5-#V??pm&Aa~qFUaxB diff --git a/core/img/web.svg b/core/img/web.svg deleted file mode 100644 index bc6c6bde65..0000000000 --- a/core/img/web.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 320bf0e8c1fda9560d2ec6046153eeef59c7da1e Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 16:19:02 +0200 Subject: [PATCH 123/170] fix breaking error due to ... a wrong icon link. Seriously? --- apps/files/templates/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 89604c4fa0..8598ead240 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -10,7 +10,7 @@ data-type='file'>

    t('Text file'));?>

  • t('Folder'));?>

  • -
  • t('From link'));?>

  • From a255cc60075e9dab831754ff09cb522c37ea421f Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 18:48:30 +0200 Subject: [PATCH 124/170] fix adding preview-icon to clss attribute --- apps/files/templates/part.list.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index ab1b91167d..e3420ca14c 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -25,7 +25,11 @@ $totalsize = 0; ?> data-mime="" data-size='' data-permissions=''> + +
    style="background-image:url()" @@ -34,13 +38,13 @@ $totalsize = 0; ?> $relativePath = substr($relativePath, strlen($_['sharingroot'])); ?> - style="background-image:url()" class="preview-icon" + style="background-image:url()" style="background-image:url()" - style="background-image:url()" class="preview-icon" + style="background-image:url()" style="background-image:url()" From cba0f696226d344e5caf25631eefb92213c8b6c2 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 20:41:20 +0200 Subject: [PATCH 125/170] increase row height to 50px, properly position everything, checkboxes, actions etc --- apps/files/css/files.css | 145 ++++++++++++++++++++++------- apps/files/js/filelist.js | 2 +- apps/files/templates/index.php | 25 ++--- apps/files/templates/part.list.php | 5 +- core/css/styles.css | 2 +- 5 files changed, 133 insertions(+), 46 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index c66484db53..de7be0a6a2 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -64,7 +64,7 @@ #filestable { position: relative; top:37px; width:100%; } tbody tr { background-color: #fff; - height: 44px; + height: 50px; } tbody tr:hover, tbody tr:active { background-color: rgb(240,240,240); @@ -79,8 +79,9 @@ tr:hover span.extension { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Op table tr.mouseOver td { background-color:#eee; } table th { height:2em; padding:0 .5em; color:#999; } table th .name { - float: left; - margin-left: 17px; + position: absolute; + left: 55px; + top: 15px; } table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; } table td { @@ -89,17 +90,33 @@ table td { background-position: 8px center; background-repeat: no-repeat; } -table th#headerName { width:100em; /* not really sure why this works better than 100% … table styling */ } -table th#headerSize, table td.filesize { min-width:3em; padding:0 1em; text-align:right; } +table th#headerName { + position: relative; + width: 100em; /* not really sure why this works better than 100% … table styling */ + padding: 0; +} +#headerName-container { + position: relative; + height: 50px; +} +table th#headerSize, table td.filesize { + min-width: 3em; + padding: 0 1em; + text-align: right; +} table th#headerDate, table td.date { + -moz-box-sizing: border-box; + box-sizing: border-box; position: relative; min-width: 11em; - padding:0 .1em 0 1em; - text-align:left; + display: block; + height: 51px; } /* Multiselect bar */ -#filestable.multiselect { top:63px; } +#filestable.multiselect { + top: 88px; +} table.multiselect thead { position:fixed; top:82px; z-index:1; -moz-box-sizing: border-box; box-sizing: border-box; left: 0; padding-left: 64px; width:100%; } table.multiselect thead th { background-color: rgba(210,210,210,.7); @@ -107,27 +124,41 @@ table.multiselect thead th { font-weight: bold; border-bottom: 0; } -table.multiselect #headerName { width: 100%; } +table.multiselect #headerName { + position: relative; + width: 100%; +} table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { + position:relative; /* Firefox needs to explicitly have this default set … */ + -moz-box-sizing: border-box; box-sizing: border-box; display: block; - height: 44px; + height: 50px; vertical-align: middle; - margin-left: 50px; + padding: 0; } table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename input.filename { width:100%; cursor:text; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em .3em; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } -.modified { + +#modified { position: absolute; - top: 10px; + top: 15px; } +.modified { + position: relative; + top: 11px; + left: 5px; +} + /* TODO fix usability bug (accidental file/folder selection) */ table td.filename .nametext { position: absolute; - top: 10px; + top: 16px; + left: 55px; + padding: 0; overflow: hidden; text-overflow: ellipsis; max-width: 800px; @@ -135,28 +166,58 @@ table td.filename .nametext { table td.filename .uploadtext { font-weight:normal; margin-left:.5em; } table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } + /* File checkboxes */ -#fileList tr td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; } -#fileList tr td.filename>input[type="checkbox"]:hover:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } -/* Always show checkbox when selected */ -#fileList tr td.filename>input[type="checkbox"]:checked:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } -#fileList tr.selected td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } +#fileList tr td.filename>input[type="checkbox"]:first-child { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; + float: left; + margin: 32px 0 0 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ +} +/* Show checkbox when hovering, checked, or selected */ +#fileList tr:hover td.filename>input[type="checkbox"]:first-child, +#fileList tr td.filename>input[type="checkbox"]:checked:first-child, +#fileList tr.selected td.filename>input[type="checkbox"]:first-child { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + opacity: 1; +} +/* Use label to have bigger clickable size for checkbox */ +#fileList tr td.filename>input[type="checkbox"] + label, +#select_all + label { + height: 50px; + position: absolute; + width: 50px; + z-index: 100; +} +#fileList tr td.filename>input[type="checkbox"] + label { + left: 0; +} +#select_all + label { + top: 0; +} +#select_all { + position: absolute; + top: 18px; + left: 18px; +} + #fileList tr td.filename { position:relative; width:100%; -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; } -#select_all { float:left; margin:.3em 0.6em 0 .5em; } + #uploadsize-message,#delete-confirm { display:none; } /* File actions */ .fileactions { position: absolute; - top: 13px; + top: 16px; right: 0; font-size: 11px; } -#fileList .name { position:relative; /* Firefox needs to explicitly have this default set … */ } #fileList tr:hover .fileactions { /* background to distinguish when overlaying with file names */ background-color: rgba(240,240,240,0.898); box-shadow: -5px 0 7px rgba(240,240,240,0.898); @@ -166,19 +227,39 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } box-shadow: -5px 0 7px rgba(230,230,230,.9); } #fileList .fileactions a.action img { position:relative; top:.2em; } + +#fileList img.move2trash { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; float:right; } +#fileList a.action.delete { + position: absolute; + right: 0; + top: 0; + margin: 0; + padding: 15px 14px 19px !important; +} +a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; } + +/* Actions for selected files */ +.selectedActions { + display: none; + position: absolute; + top: -1px; + right: 0; + padding: 15px 8px; +} +.selectedActions a { + display: inline; + padding: 17px 5px; +} +.selectedActions a img { + position:relative; + top:.3em; +} + + #fileList a.action { display: inline; margin: -.5em 0; - padding: 16px 8px !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; } - -#fileList a.action { + padding: 18px 8px !important; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 138329940b..3a6b118ec9 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -17,7 +17,7 @@ var FileList={ "class": "filename", "style": 'background-image:url('+iconurl+')' }); - td.append(''); + td.append(''); var link_elem = $('').attr({ "class": "name", "href": linktarget diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 8598ead240..714ff497f9 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -63,17 +63,20 @@
    - - t( 'Name' )); ?> - - - - Download" /> - t('Download'))?> - - - +
    + + + t( 'Name' )); ?> + + + + Download" /> + t('Download'))?> + + + +
    t('Size')); ?> diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index ab1b91167d..93d1aaf9dc 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -47,7 +47,10 @@ $totalsize = 0; ?> > - + + + + diff --git a/core/css/styles.css b/core/css/styles.css index 0dd66fb5b7..db7f01cfeb 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -142,7 +142,7 @@ a.disabled, a.disabled:hover, a.disabled:focus { .searchbox input[type="search"] { font-size:1.2em; padding:.2em .5em .2em 1.5em; background:#fff url('../img/actions/search.svg') no-repeat .5em center; border:0; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70);opacity:.7; -webkit-transition:opacity 300ms; -moz-transition:opacity 300ms; -o-transition:opacity 300ms; transition:opacity 300ms; margin-top:10px; float:right; } input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; } -#select_all{ margin-top:.4em !important;} + /* CONTENT ------------------------------------------------------------------ */ #controls { From e5761d90ef223a04205ad93eea7706439ef0b60e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 20:49:47 +0200 Subject: [PATCH 126/170] fix deleting old previews after file changed --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 92cc87c589..293accb188 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -592,7 +592,7 @@ class Preview { if(substr($path, 0, 1) === '/') { $path = substr($path, 1); } - $preview = new Preview(\OC_User::getUser(), 'files/', $path, 0, 0, false, true); + $preview = new Preview(\OC_User::getUser(), 'files/', $path); $preview->deleteAllPreviews(); } From 623f9ec817490c93e8abf0825bab372acf08c29e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 21:20:03 +0200 Subject: [PATCH 127/170] don't generate previews of empty txt files --- lib/preview/txt.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/preview/txt.php b/lib/preview/txt.php index 89927fd580..c06f445e82 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -17,6 +17,10 @@ class TXT extends Provider { $content = $fileview->fopen($path, 'r'); $content = stream_get_contents($content); + if(trim($content) === '') { + return false; + } + $lines = preg_split("/\r\n|\n|\r/", $content); $fontSize = 5; //5px From b2f666c98f462da43168ae93a39c8dc886ba847e Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Wed, 14 Aug 2013 21:26:06 +0200 Subject: [PATCH 128/170] fix file summary position --- apps/files/css/files.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index de7be0a6a2..4f2f10da4d 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -281,9 +281,8 @@ a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; } .summary { opacity: .5; } - .summary .info { - margin-left: 3em; + margin-left: 55px; } #scanning-message{ top:40%; left:40%; position:absolute; display:none; } From 2fd5178a0049abc474da551dbdb2ac71fc49dec1 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 15 Aug 2013 12:50:26 +0200 Subject: [PATCH 129/170] adjust New file dialog for new styles --- apps/files/css/files.css | 7 +++++-- apps/files/js/file-upload.js | 2 +- core/img/filetypes/web.png | Bin 2284 -> 2254 bytes core/img/filetypes/web.svg | 24 +++++++++++------------- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 4f2f10da4d..20eb5fd083 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -22,7 +22,10 @@ #new>ul>li { height:36px; margin:.3em; padding-left:3em; padding-bottom:0.1em; background-repeat:no-repeat; cursor:pointer; } #new>ul>li>p { cursor:pointer; padding-top: 7px; padding-bottom: 7px;} -#new>ul>li>form>input { padding:0.3em; margin:-0.3em; } +#new>ul>li>form>input { + padding: 5px; + margin: 2px 0; +} #trash { margin: 0 1em; z-index:1010; float: right; } @@ -189,7 +192,7 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } height: 50px; position: absolute; width: 50px; - z-index: 100; + z-index: 5; } #fileList tr td.filename>input[type="checkbox"] + label { left: 0; diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 942a07dfcc..02e940aa3c 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -221,7 +221,7 @@ $(document).ready(function() { $(this).data('text',text); $(this).children('p').remove(); var form=$('
    '); - var input=$(''); + var input=$(''); form.append(input); $(this).append(form); input.focus(); diff --git a/core/img/filetypes/web.png b/core/img/filetypes/web.png index 0868ca52747fcf3617e637c21636e448cc2979c2..c380231264555a13531b8fc6b1ed9d5c1f533a4e 100644 GIT binary patch delta 2167 zcmV--2#ELW5zY~iZhuQjL_t(og~gX^Y#h}U$A5QbcGq6N*3ZO_V~04zNuWt+d8VMM z5rUSs2#QDvQcHyZ7u2GZK4_(WXg^fqoj#&UQ7ckDw9pdhLs1LDsDdaoO&ZaHNP-gx zwu58G>s{}9*Ympfo_^T1afoT5t;9%wjb=wP=XcNfpEGxrh=1^59?pjv9q|5}hi=>c zY>RmDa^BQ(SzJ7J?gT70>-xA#NlRZ7waqdx3`I?rF)@J39a+K8IxFphz zzK!BwI#)+TqiwPijsna|fA8=oN6(TO-vI(ZCS z2e+n{mUS0W+tP`I8lsrq8jtjBes*MN=Ew*Of#l5i-U^|G=CDt_~UQW+}KL}$(Jc)vr~So zzx&LO?)~{4?VJe{n0*j>`s`C2w$db&uEpQL@`<>+#OxHLn$eHp2yW|V-N zNKsjb5Kd>&YtmpWXbVP2HMHQmwUoz3$sIjJ)>_tdbvBnu$9@m=|Hlkm z_nn>JY-(F}{%FA~FY70AYAKUWDjVIg>4rP{-xENqDev?=;{mR}-a1pE(;_?i}FXQLNiGSP%T-U4LxcSDevj8ITmutM5D5@Aq&(5Hn zL}gW_B95D?1dkWWR#mwU3)5VZI7Ls|V2ywk#9BlItYs!UMk=$^F^)O+Y!5`HTU$4+ zt4>ZfbdadaaQfxv39_fK+AbP&Axtu|0cv z?R2G`D?Wiz_LOqOwPyjuVowqj%OsYjtXLet0?Ku1=su6~#2bXuS;AtLWJ4>Nl^gNW z4QBu-Cy6*NT5CRi^_8S*l03S5kbi%SRea?L1T(qFlW_h^IbQ-}Wz_hkz{C+^Y$fH| zRt%?waC#DJEMh9-cIwD}!s)5AN&ya9YoaLP^2;veD_gJOqV5D(!5Tvxlw-j;b{4=( zzkMWUb$Qwb0XB-}9WSv(Vog-cRcdJ}ipxbNUwMJtk^R_6&jX0HXswCkn13(~*|`3E z?)>7lY&s`_#1URHSv>sW)2GfhAz-zAPJ$c~`bZeex0ls|SCc`Eyh{}jtK}VoilDWg zR~Uw@TDg+DZn=R^tVyGUzb-ll04%{Hjz2nPLmwN?RuqNUSW~y8ALS&m#$p#_B9-Z0 z09rBJTn6SKf*_!)tCKr#y?;qQx2dmhU|=A%D8Qj7e>`fn|5Nc#l_m7C!R)*gE{)wA z5mRYXTg?L2#mspi(pYQe0p1Of$z;?`TefU$X=!BDAxl8Q^)oK3Z)eFUF)dHbX6NcKrGjtbBZtBbUk4hB7Y)SYv*N*K`BKX z$MV!uPraJUNgy#kbm%UL#wO-gFTpG}C?jEj!a;P1=m;-SSItnlBEO7O z1I=Z?7(+6d#Bm&a-=|P0P$(2wyLRoGR4R4ITTluIZ~=GX@ZO2K)~*L?GxlDkTRN1R z0@p=3P6b2^^-I=36n|m~s~ND>`TtG{>gwvS))E8(M~@yY4-O9gF^ZynTI;DqB2h>r z5|i)V5zTE7<;}gn+0(l6f>+x6FWc^z`aVTnt#Vu%+gGE*5}sRw4a)O_s4|Q!)>P&| zGMVJ1{Rd3f(hl9!)RbDidUf5wg9leX_~3(I1tK66k$BF8dVhi9x%1SUFOMGm^UrRc zEsgHflFiy^1_?tvCsj>(siHGVVDLPT!-tPVFZ|{CNB8a9HOs`7!^xAs21bNuzaH_t{Bzm8P?L~Qff*yM{kF2*`8#<9s4W1G)L zDu2RJwtW2f@qch|@VP(i+O_Nck&%&Ko<4nA2SLE9RjZm-tXOehb@g&a7t9^iZb&SU zw?Ho7HZEP=T+`mwm8fl63K08+@nCXntT;ZD-?nYrL9O-QcI?=3E1-LOd)?b_zx}}G z&6}6`zR&RR@YMeO`#0^}xpN2>*%gb32DDNtsNSE0m~bE7RQH10JXq70@zZi zw0-yP-8<$=IXpZZPfkugF*7r>t+BDujiSh1;I;Sv-%u%~ssZOZX72h7fT~0mym(+> tpth;0X-|E9eQ!RW|I_yE+wY#c_b;%5#fX%|9&7*r002ovPDHLkV1hDKHd6oq delta 2198 zcmV;H2x<4u5$q9=ZhvV>L_t(og~gY9j9gV6$3N%3=C$3~oqcq>yM53uizQ7i&|0)hlX2!s;Frln9T2wF<%Yq#rm zx3fF5J3Dvo>pc8pX1BX-O^TW@$v1OvZtnek?)UdS=bj^sF@JoNKkFl{4mkhKO`CVT zTrf_uSU92=z(_MJqk4wszkb22Y=$mPi6A0q9}NYV+g6>MC}z$?0xOqA$&l*ENw6*K zbcVv!>&O%qVIm1}LRVZN7yCi+-1xgXly~j3h2uJGs=Gu`yl6^g?h1pvd+vMWkJ#=?T*99oS7-0OYh!b?6k9uqnU$S6Z%E&Gy>^&q7?wJ!j*s+wtR*QK`48N_<>4iBYtEa9r0}*PP3PFe6j%bI4Vm^u6t21! zJCnvp4Mu`C7$p!w01!?T2}XzMy6$E`;ExQFRHvy79-Rdlo0uZo)74=tXDhJfk`AaO zxqoG{T*hdP(FP~oM1I+7upEriXxUIKF^&G~NaCei@N%t;y#5knhyRS5YbDjXh^}?F zVtW~kHW;m`OidHls_QSAfzNLKVL@5$d!waFr^&VBWOHOYdP%jmV>uSWuFJ9oSdF(A zb&Dtdd5~Ih1dPEkidb8qHCh=g+e3u`R(~poXA;`8_PA%;SH1N34@&b|5Sw6e9K;#B zxtrXQRkKBn(rCakrk)8s7eEk9jNp$A&-VL1gU%%vNlaHIf_WPrioSW#Tk&0E-cY*uAR7AqIPZ=BQ>(-pD!-!Kr_X4qDXwd z?vm1ItpV7$;Z8Q+b|Whb0vS}XoHXe|FAEl5gOVELB}PGF^e|D?&ldVq>9!?=rPGv; z|BbjZhLdZiwQn6xCWo-<)(Zg$L4US$IYIGX7^MJ%Rt700>u>oCsg%bP&+g^zkrUXd zW`q{RVa3Pj;fny2HfIQ`p-RUH$0gIYoXL}Kprs_PlqnrONK4;3-0XsR0Jhgee%V@7 z9ASGI5MxLwky3Kw4WGpGJbv}miyTRMP)UpxR713xoswr;aNz0fB`y6)9e;-CI41F@ ziKizpN`uxUeudJ}*YVGuM#pkq8{Awwsg@p`Oe-3YQj#PIQ512_>Q#L0i+6Bs+ax*+ z(9)kg@bvc5MF0R=>Q_uy!bAbGI#~~*s@rOmMg}#ePW_$o@x$|ic>Y*p5VHR0F1oPQ5MxZMiQjOZx9ansnghfxVesYc4{VRLis^BkxLv@Y~{ z2WB9`Fr<6YLN?#C-hBEBJ~1#bkh&zm;otxKjF!PKOmNmWQAn=iN(440i7_(4NQF@f z+igN63LV#_W*}mT)@l~uLWq`pv)K6gyFOkh6#g`1?An zU@1eUc@ZXw(Mg1n5w?>?C@^6S9R=tps2>M4bm-3l%;-W0*L9r@8#Y{5C=?D13=Fhb zjp8=oHRO&SJA9vsN5*tmgCwatki-ZhXkK_VI%*UP8Vdc{bE7p%saXen3|em<;s;GOMj(Ohn+dCumBsd$Byh9%e8esl4;T3L8d!R5`ksmWDDrfZw$lv zYZ+s7W2!#if?O_#)|wy)IC}J`zjyE6KgMyqUrIUQy6%+gy2T6k1v9G?b8_EPFSIRR z`%dACwT}rQS2%9L%j6cKgDOH;n8vrDQ5}rI7>!mIQc66}9u4hbUb~5<<+|8wLsxG z4o8l>7r*wWSD)Cwe}B>QJc1x#&6+iR8#iveW=^eo2u=N)95u*dAZ#cAYNz)-xohl$ z1Dk5`*zaOdK7WD0x zH#ggH9NTlUcKLflQC|QG&X1Ux^LYRb88hd>0|Nt@d_Mm|Q&ZE@a=HBCjvYJhpSkvL Ye0z&Ip$~b(6951J07*qoM6N<$f=SFb?*IS* diff --git a/core/img/filetypes/web.svg b/core/img/filetypes/web.svg index 6ea49d59fb..67775a2233 100644 --- a/core/img/filetypes/web.svg +++ b/core/img/filetypes/web.svg @@ -14,34 +14,32 @@ - + - + - + - + - - - - - - - - - + + + + + + + From 7fe9320ffe60d9f8346f424a235bbc51c99f9484 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 15 Aug 2013 13:20:31 +0200 Subject: [PATCH 130/170] improve unknown backend --- lib/helper.php | 33 ++++++++++++++++++++++++++++++++- lib/preview/unknown.php | 22 +++------------------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/lib/helper.php b/lib/helper.php index b74e4c4512..6552bcce70 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -188,7 +188,38 @@ class OC_Helper { * Returns the path to the image of this file type. */ public static function mimetypeIcon($mimetype) { - $alias = array('application/xml' => 'code/xml'); + $alias = array( + 'application/xml' => 'code/xml', + 'application/msword' => 'x-office/document', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'x-office/document', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'x-office/document', + 'application/vnd.ms-word.document.macroEnabled.12' => 'x-office/document', + 'application/vnd.ms-word.template.macroEnabled.12' => 'x-office/document', + 'application/vnd.oasis.opendocument.text' => 'x-office/document', + 'application/vnd.oasis.opendocument.text-template' => 'x-office/document', + 'application/vnd.oasis.opendocument.text-web' => 'x-office/document', + 'application/vnd.oasis.opendocument.text-master' => 'x-office/document', + 'application/vnd.ms-powerpoint' => 'x-office/presentation', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'x-office/presentation', + 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'x-office/presentation', + 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'x-office/presentation', + 'application/vnd.ms-powerpoint.addin.macroEnabled.12' => 'x-office/presentation', + 'application/vnd.ms-powerpoint.presentation.macroEnabled.12' => 'x-office/presentation', + 'application/vnd.ms-powerpoint.template.macroEnabled.12' => 'x-office/presentation', + 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12' => 'x-office/presentation', + 'application/vnd.oasis.opendocument.presentation' => 'x-office/presentation', + 'application/vnd.oasis.opendocument.presentation-template' => 'x-office/presentation', + 'application/vnd.ms-excel' => 'x-office/spreadsheet', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'x-office/spreadsheet', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'x-office/spreadsheet', + 'application/vnd.ms-excel.sheet.macroEnabled.12' => 'x-office/spreadsheet', + 'application/vnd.ms-excel.template.macroEnabled.12' => 'x-office/spreadsheet', + 'application/vnd.ms-excel.addin.macroEnabled.12' => 'x-office/spreadsheet', + 'application/vnd.ms-excel.sheet.binary.macroEnabled.12' => 'x-office/spreadsheet', + 'application/vnd.oasis.opendocument.spreadsheet' => 'x-office/spreadsheet', + 'application/vnd.oasis.opendocument.spreadsheet-template' => 'x-office/spreadsheet', + ); + if (isset($alias[$mimetype])) { $mimetype = $alias[$mimetype]; } diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php index ba13ca35d6..9e6cd68d40 100644 --- a/lib/preview/unknown.php +++ b/lib/preview/unknown.php @@ -16,27 +16,11 @@ class Unknown extends Provider { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $mimetype = $fileview->getMimeType($path); - if(substr_count($mimetype, '/')) { - list($type, $subtype) = explode('/', $mimetype); - } - $iconsRoot = \OC::$SERVERROOT . '/core/img/filetypes/'; + $path = \OC_Helper::mimetypeIcon($mimetype); + $path = \OC::$SERVERROOT . substr($path, strlen(\OC::$WEBROOT)); - if(isset($type)){ - $icons = array($mimetype, $type, 'text'); - }else{ - $icons = array($mimetype, 'text'); - } - foreach($icons as $icon) { - $icon = str_replace('/', '-', $icon); - - $iconPath = $iconsRoot . $icon . '.png'; - - if(file_exists($iconPath)) { - return new \OC_Image($iconPath); - } - } - return false; + return new \OC_Image($path); } } From 825d8610d0abbf1063df3019533253908142ae43 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 15 Aug 2013 13:21:35 +0200 Subject: [PATCH 131/170] fix svg and cache transparency issue --- lib/image.php | 3 +++ lib/preview.php | 2 ++ lib/preview/svg.php | 8 +++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/image.php b/lib/image.php index 4bc38e20e5..53ffb24d18 100644 --- a/lib/image.php +++ b/lib/image.php @@ -496,6 +496,9 @@ class OC_Image { return false; } $this->resource = @imagecreatefromstring($str); + imagealphablending($this->resource, false); + imagesavealpha($this->resource, true); + if(!$this->resource) { OC_Log::write('core', 'OC_Image->loadFromData, couldn\'t load', OC_Log::DEBUG); return false; diff --git a/lib/preview.php b/lib/preview.php index 293accb188..e7dd327d02 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -391,6 +391,8 @@ class Preview { continue; } + \OC_Log::write('core', 'Generating preview for "' . $file . '" with "' . get_class($provider) . '"', \OC_Log::DEBUG); + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingUp, $this->fileview); if(!($preview instanceof \OC_Image)) { diff --git a/lib/preview/svg.php b/lib/preview/svg.php index e939e526b1..b49e51720f 100644 --- a/lib/preview/svg.php +++ b/lib/preview/svg.php @@ -18,7 +18,7 @@ if (extension_loaded('imagick')) { public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) { try{ $svg = new \Imagick(); - $svg->setResolution($maxX, $maxY); + $svg->setBackgroundColor(new \ImagickPixel('transparent')); $content = stream_get_contents($fileview->fopen($path, 'r')); if(substr($content, 0, 5) !== 'readImageBlob($content); - $svg->setImageFormat('jpg'); + $svg->setImageFormat('png32'); } catch (\Exception $e) { \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } + //new image object - $image = new \OC_Image($svg); + $image = new \OC_Image(); + $image->loadFromData($svg); //check if image object is valid return $image->valid() ? $image : false; } From 7a11911aead74e07ba2917be27e343ff93ca931f Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 15 Aug 2013 13:25:45 +0200 Subject: [PATCH 132/170] add comment to make @jancborchardt happy --- lib/preview/txt.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/preview/txt.php b/lib/preview/txt.php index c06f445e82..a487330691 100644 --- a/lib/preview/txt.php +++ b/lib/preview/txt.php @@ -17,6 +17,7 @@ class TXT extends Provider { $content = $fileview->fopen($path, 'r'); $content = stream_get_contents($content); + //don't create previews of empty text files if(trim($content) === '') { return false; } From 4574c5cf5cbb9efc4f787b264842573540f88439 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 15 Aug 2013 16:13:01 +0200 Subject: [PATCH 133/170] check if ->resource is a resource --- lib/image.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/image.php b/lib/image.php index 53ffb24d18..840b744ad7 100644 --- a/lib/image.php +++ b/lib/image.php @@ -496,8 +496,10 @@ class OC_Image { return false; } $this->resource = @imagecreatefromstring($str); - imagealphablending($this->resource, false); - imagesavealpha($this->resource, true); + if(is_resource($this->resource)) { + imagealphablending($this->resource, false); + imagesavealpha($this->resource, true); + } if(!$this->resource) { OC_Log::write('core', 'OC_Image->loadFromData, couldn\'t load', OC_Log::DEBUG); From 61370a765581851664bbe1924e2d0e2e86083326 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 15 Aug 2013 18:58:23 +0200 Subject: [PATCH 134/170] add folder icons for shared, public and external --- core/img/filetypes/folder-external.png | Bin 0 -> 1012 bytes core/img/filetypes/folder-external.svg | 68 +++++++++++++++++++++++++ core/img/filetypes/folder-public.png | Bin 0 -> 1397 bytes core/img/filetypes/folder-public.svg | 68 +++++++++++++++++++++++++ core/img/filetypes/folder-shared.png | Bin 0 -> 1229 bytes core/img/filetypes/folder-shared.svg | 68 +++++++++++++++++++++++++ 6 files changed, 204 insertions(+) create mode 100644 core/img/filetypes/folder-external.png create mode 100644 core/img/filetypes/folder-external.svg create mode 100644 core/img/filetypes/folder-public.png create mode 100644 core/img/filetypes/folder-public.svg create mode 100644 core/img/filetypes/folder-shared.png create mode 100644 core/img/filetypes/folder-shared.svg diff --git a/core/img/filetypes/folder-external.png b/core/img/filetypes/folder-external.png new file mode 100644 index 0000000000000000000000000000000000000000..997f07b2bacc1ae5bb09b5addb1539254fffb6c6 GIT binary patch literal 1012 zcmV5FZC7Idh8lO>34#dXMv#`;hGL~9Rw;@fP_+dsQWV=JHYTrm@4h=TXXdy_@;;Kh zn-3DZ=~>O0bI&oJPV+zc<)P{DwWED&+c{Rol(^*T>wB;M81wOuIL?OL_}6qspTZgvZ2 z(+Zn?IT`~R0zqQ41>nUO)(eoW8Q{{nQ(QXt`I7y&-}|5^fCRzEkhcINgr@a@G=W$` zaPq_B{CVxymcHx7*LZ3F>pXDZ7A}mP==#=&<>MsA5WOH?Ix65LcV5UUu@vCuA6Izy z{f}FEt?9Ylu+*(b>GtzI&XdF#f)j%HHh{CfS$JVfR6^_xV2t6~WW8(ehx4boJbs2O z?H*v)qXKCH&I^T)?G|`fG_4OLp&UT9yR<)EIL$9#jZsMxRN=W-4gqlS?8%-jhzeE$ z&K7Ne!r9!3Pzj2Z0niQ5S4qjz1OARzeun4w9cHSr{E@DJ6T#)pHo)widTyPtHTEWlr7gI1$MWdz zk=7dE>cug34DIU~1Hd|=$ZH)Hs7*GU2tFu2^u7(}0J`lrYekoyrAcWFNO0cMn4W30 z0H!AY&b<#vSX%|w^Nm4q5}3LDR~x|9>)wj@UbW&&X5it+2KnsRky3!coljC0!z7CJ z66({_wgmtL=fz6UN*Vp$H;(Y?n~Ps@-7;GU*QfHH_QWX8`vM4^0I{&%dWi#G+WlLM z^4mmx(as7N$1-N4O5t1q#7+RCwi&nerNG+W1napyZxuyk{+D0@Apd#%)Y+@woqq^b zv-XfZ;9yBCV@wq9{{eECf07wvw)Xe;-!CEqthEFy%VLO-Wm&z^XiTfBZ4Dtnnx?&` iXTz!jpsES;6Y?LpcNV5;-lI1F0000 + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder-public.png b/core/img/filetypes/folder-public.png new file mode 100644 index 0000000000000000000000000000000000000000..c716607e26e3c2cf8f82dd754e820d475cb99f70 GIT binary patch literal 1397 zcmV-*1&aEKP)!=lzgp|+)kcG~I8+_~TG z1H-h?sf;M$g_C@_>-m4bd(OG%`-JzN>uJGto&5&D4FDi9@+T)fK1u-0U9j-+O`BeBPK4n#o&2Ibx@KMT=FOYCfeQfAnp|6N2IH^X7POKa zKJX3QXHL@Haf&dJWZJBoX=uEK#j745nHqORjZ_HQxfqI#$QoZz%3z#F+p$M`TPq*G zy_rNP@Kz!7S!8~QDU<7|si|S-)(>cJYyC$J<2+IstZ@Y>7NIsemf8Rb##)`b+W%zx z`)~5pa~o+|xR_b98@XrMN`wgbWXpTJ@Y-7}S+SZ=w{F2$PeapfWp#uAV-4Ebs1yNX zZ9!^_v6Q8b3NgF3ZDIL+4={7yBF=R8(AnL?!F}J+(bYpuO%1ztZl`BR^5_#!a%BJ4 zM1{C~1T08xFxnJK09u}WZ(mwcw5m5;3_6Dz7GPGZ60<>UtYIk0O7xm=b^ z-&wSCq@`oUgOAX1Xz!SMN*S!t!zoZw7h-J~=RDSp&Ou*i`-Nk{;XS0&X?AaYhg`a! zFbME~)rweKf*@c>Inv!7C_7p!3_xi^tX(u*11c^^Z3%37fODN^@E*EOpW@G7zURz| zBRClm2vMq;b7#BAXS0m2u4T&XTZpnd&}9Ie2Wc!y#=`)yl94ioWU)#|7mmOKovp_h z=xWEwsC4h5)zsFJs;VvK+TfiV6F_N8tmH6&jH5^yOUji8m_B%K1u1Ht5J z(;4XNz2u#IK1WY?CsB5gx~Vg%s;ftr(ei*Y1{D>C0kT86NGiklVjsBN>Ko?LcD#i| zD3~*EA!|0g$f=`0vG0rR3=Q-FV2tLAcV9;c!Hl`{nK%EAvRVLA8R952{2R*5xx6x_ z7(O>@G%Z?1ZT(cdhg`luYj2hbjd$|&OK))R!;j-Vcn{-~A>$GOYN(&4MXSncY3os1 zlOGt&mjL?DbwyfR%oyD(Ed{Hecm@!h?KnyMvBUJ|6s_kYbh5exaG@Xt53PTev=n3X z0gp14!M?xpr4*=KPD`V;_C8rIZ{P`Q8(91NE9}|!A%E=u947+KxBt%BIxJfsKKqY$uhg1%!bg2;qz_hAl z1-{S|$FAs70*H=&_t{s!{kXRQ??pu_6_|%nT0#hCv_20+P~4IUA;wo#RZTR;R8v_9 z{*7G@VH1f&E}zd2c<*JY2m!({j4BlQPv*T3C|1bd+^2RL;@irX00000NkvXXu0mjf D`X`G_ literal 0 HcmV?d00001 diff --git a/core/img/filetypes/folder-public.svg b/core/img/filetypes/folder-public.svg new file mode 100644 index 0000000000..a949833f95 --- /dev/null +++ b/core/img/filetypes/folder-public.svg @@ -0,0 +1,68 @@ + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder-shared.png b/core/img/filetypes/folder-shared.png new file mode 100644 index 0000000000000000000000000000000000000000..e547a242062eb9687929fb640e99d33468e85500 GIT binary patch literal 1229 zcmV;;1Ty=HP)AfjSy#9#`Pk5I6sP$=!tnR)m7x@c!Q zL#H1SkPRof$=r9}IrlgJcka1Igb=u&7Twp~9{@Z60Fv5?5Mm?Hx*gYaz}B9fZ?5R<{OE<}H}yE@?kPYV$Nb)V;_%qb zYx@r!`0kqoV9ojsZ|vRsaZeJ*_jL1$y}ol-&%S;8t^kt&%Gu)iYXxlhf678O2IIYi zsT^=Nq*_~ioZ-J*jyJDg<@k|<4D|Q0y6YKU?AcDol4W!H2m!%4ob_oHz*r-du|P5> zz{t>Lh6c{@YS1yr_CpXi@af~xGH#ehXT79RbH4jOGnWL6OLg2K;Su+iwl}V+s z7fL=hr_YnRV4c=0Srt{Gt^aU>Wxe}=&?KV@zAR@QZIBTh060Ro_{MVHfQfQehh zveK3&KPgeIsd5oLF-j($EK(s%CQ>dD1gj82RG+!h7$=V$;B4>DYPuk1x81P z%EmaXo2fvqwVmC2zrbtBjjMwkKlD9=7y9S;${-LpS(*`RaxI{(WBkTH(*U|yG}36J zz0YV@e}=V#zTsQMk)Ww%1)`~i!2I>vT8*}iZq|U*#udlLbQJ(VrAldSGRodoL~63S z3~cIoo6aY?xOC$xr)bXGn>$y8RR6@Va> z)JhrD4C?xSJM1FbJ2$eq>p8MXOcDv=NZ_VUkTQ-!*)Tkz8y7VnlcrJuz7{|@nffJ* zVxYb!m`&_d8B*1_cg!WQJU{z=a8=2w%oTvbsbdF!>hC?eGK72E6bK=_)A9yTgsGNn rY9Rsg+%Cc0HwR3F5NsX5{jz@n19huHG^0YB00000NkvXXu0mjfD!?-g literal 0 HcmV?d00001 diff --git a/core/img/filetypes/folder-shared.svg b/core/img/filetypes/folder-shared.svg new file mode 100644 index 0000000000..56aa9634d2 --- /dev/null +++ b/core/img/filetypes/folder-shared.svg @@ -0,0 +1,68 @@ + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From e7c06935702dc794f7178cdc47ce947404752ec0 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 15 Aug 2013 19:40:39 +0200 Subject: [PATCH 135/170] checkstyle double quotes in HTML --- apps/files/templates/part.list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index bd1fe341f8..1ed8e0cf91 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -23,8 +23,8 @@ $totalsize = 0; ?> data-file="" data-type="" data-mime="" - data-size='' - data-permissions=''> + data-size="" + data-permissions="">
    From 164502477d8eac293ea002d39378be846bcc733c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 16 Aug 2013 17:24:45 +0200 Subject: [PATCH 136/170] use jQuery.get instead of jQuery.ajax --- apps/files/js/files.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 3178ff65af..fd18cf21ee 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -821,12 +821,8 @@ function lazyLoadPreview(path, mime, ready) { var x = $('#filestable').data('preview-x'); var y = $('#filestable').data('preview-y'); var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y}); - $.ajax({ - url: previewURL, - type: 'GET', - success: function() { - ready(previewURL); - } + $.get(previewURL, function() { + ready(previewURL); }); } From 7e4dcd268f6cb6618600718a51c4d882e9027829 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Sat, 17 Aug 2013 10:46:03 +0200 Subject: [PATCH 137/170] vertically center rename input box --- apps/files/css/files.css | 10 ++++++++-- apps/files/js/filelist.js | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 20eb5fd083..be42a0056d 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -142,7 +142,13 @@ table td.filename a.name { padding: 0; } table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } -table td.filename input.filename { width:100%; cursor:text; } +table td.filename input.filename { + width: 80%; + font-size: 14px; + margin-top: 8px; + margin-left: 2px; + cursor: text; +} table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em .3em; } table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0; } @@ -176,7 +182,7 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } filter: alpha(opacity=0); opacity: 0; float: left; - margin: 32px 0 0 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ + margin: 32px 0 4px 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ } /* Show checkbox when hovering, checked, or selected */ #fileList tr:hover td.filename>input[type="checkbox"]:first-child, diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 536becad49..10a297ddad 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -199,7 +199,7 @@ var FileList={ tr=$('tr').filterAttr('data-file',name); tr.data('renaming',true); td=tr.children('td.filename'); - input=$('').val(name); + input=$('').val(name); form=$('
    '); form.append(input); td.children('a.name').hide(); From 48f0c54261bfa2d2f20864b0d41db8f1df6f1777 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 19 Aug 2013 12:16:55 +0200 Subject: [PATCH 138/170] style fixes for preview lib --- apps/files/templates/part.list.php | 3 +- config/config.sample.php | 2 + core/ajax/preview.php | 9 ++- lib/preview.php | 76 +++++++++---------- lib/preview/{images.php => image.php} | 0 .../{libreoffice-cl.php => office-cl.php} | 9 ++- .../{msoffice.php => office-fallback.php} | 0 lib/preview/office.php | 4 +- 8 files changed, 55 insertions(+), 48 deletions(-) rename lib/preview/{images.php => image.php} (100%) rename lib/preview/{libreoffice-cl.php => office-cl.php} (87%) rename lib/preview/{msoffice.php => office-fallback.php} (100%) diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 1ed8e0cf91..899fb04e25 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -3,7 +3,8 @@ $totaldirs = 0; $totalsize = 0; ?> 6 + //strlen('files/') => 6 + $relativePath = substr($file['path'], 6); $totalsize += $file['size']; if ($file['type'] === 'dir') { $totaldirs++; diff --git a/config/config.sample.php b/config/config.sample.php index 86bc20b714..5c40078c7d 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -199,6 +199,8 @@ $CONFIG = array( 'preview_max_scale_factor' => 10, /* custom path for libreoffice / openoffice binary */ 'preview_libreoffice_path' => '/usr/bin/libreoffice', +/* cl parameters for libreoffice / openoffice */ +'preview_office_cl_parameters' => '', // date format to be used while writing to the owncloud logfile 'logdateformat' => 'F d, Y H:i:s', ); diff --git a/core/ajax/preview.php b/core/ajax/preview.php index 486155831d..af0f0493f4 100644 --- a/core/ajax/preview.php +++ b/core/ajax/preview.php @@ -13,13 +13,15 @@ $maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36'; $scalingUp = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true; if($file === '') { - \OC_Response::setStatus(400); //400 Bad Request + //400 Bad Request + \OC_Response::setStatus(400); \OC_Log::write('core-preview', 'No file parameter was passed', \OC_Log::DEBUG); exit; } if($maxX === 0 || $maxY === 0) { - \OC_Response::setStatus(400); //400 Bad Request + //400 Bad Request + \OC_Response::setStatus(400); \OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG); exit; } @@ -34,6 +36,5 @@ try{ $preview->show(); }catch(\Exception $e) { \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - exit; + \OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG); } \ No newline at end of file diff --git a/lib/preview.php b/lib/preview.php index e7dd327d02..9fed7f1b58 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -13,14 +13,14 @@ */ namespace OC; -require_once('preview/images.php'); -require_once('preview/movies.php'); -require_once('preview/mp3.php'); -require_once('preview/pdf.php'); -require_once('preview/svg.php'); -require_once('preview/txt.php'); -require_once('preview/unknown.php'); -require_once('preview/office.php'); +require_once 'preview/image.php'; +require_once 'preview/movies.php'; +require_once 'preview/mp3.php'; +require_once 'preview/pdf.php'; +require_once 'preview/svg.php'; +require_once 'preview/txt.php'; +require_once 'preview/unknown.php'; +require_once 'preview/office.php'; class Preview { //the thumbnail folder @@ -32,8 +32,8 @@ class Preview { private $configMaxY; //fileview object - private $fileview = null; - private $userview = null; + private $fileView = null; + private $userView = null; //vars private $file; @@ -76,8 +76,8 @@ class Preview { if($user === ''){ $user = \OC_User::getUser(); } - $this->fileview = new \OC\Files\View('/' . $user . '/' . $root); - $this->userview = new \OC\Files\View('/' . $user); + $this->fileView = new \OC\Files\View('/' . $user . '/' . $root); + $this->userView = new \OC\Files\View('/' . $user); $this->preview = null; @@ -226,12 +226,12 @@ class Preview { public function isFileValid() { $file = $this->getFile(); if($file === '') { - \OC_Log::write('core', 'No filename passed', \OC_Log::ERROR); + \OC_Log::write('core', 'No filename passed', \OC_Log::DEBUG); return false; } - if(!$this->fileview->file_exists($file)) { - \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::ERROR); + if(!$this->fileView->file_exists($file)) { + \OC_Log::write('core', 'File:"' . $file . '" not found', \OC_Log::DEBUG); return false; } @@ -245,12 +245,12 @@ class Preview { public function deletePreview() { $file = $this->getFile(); - $fileInfo = $this->fileview->getFileInfo($file); + $fileInfo = $this->fileView->getFileInfo($file); $fileId = $fileInfo['fileid']; $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; - $this->userview->unlink($previewPath); - return !$this->userview->file_exists($previewPath); + $this->userView->unlink($previewPath); + return !$this->userView->file_exists($previewPath); } /** @@ -260,13 +260,13 @@ class Preview { public function deleteAllPreviews() { $file = $this->getFile(); - $fileInfo = $this->fileview->getFileInfo($file); + $fileInfo = $this->fileView->getFileInfo($file); $fileId = $fileInfo['fileid']; $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; - $this->userview->deleteAll($previewPath); - $this->userview->rmdir($previewPath); - return !$this->userview->is_dir($previewPath); + $this->userView->deleteAll($previewPath); + $this->userView->rmdir($previewPath); + return !$this->userView->is_dir($previewPath); } /** @@ -280,9 +280,9 @@ class Preview { $maxX = $this->getMaxX(); $maxY = $this->getMaxY(); $scalingUp = $this->getScalingUp(); - $maxscalefactor = $this->getMaxScaleFactor(); + $maxScaleFactor = $this->getMaxScaleFactor(); - $fileInfo = $this->fileview->getFileInfo($file); + $fileInfo = $this->fileView->getFileInfo($file); $fileId = $fileInfo['fileid']; if(is_null($fileId)) { @@ -290,12 +290,12 @@ class Preview { } $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; - if(!$this->userview->is_dir($previewPath)) { + if(!$this->userView->is_dir($previewPath)) { return false; } //does a preview with the wanted height and width already exist? - if($this->userview->file_exists($previewPath . $maxX . '-' . $maxY . '.png')) { + if($this->userView->file_exists($previewPath . $maxX . '-' . $maxY . '.png')) { return $previewPath . $maxX . '-' . $maxY . '.png'; } @@ -304,7 +304,7 @@ class Preview { //array for usable cached thumbnails $possibleThumbnails = array(); - $allThumbnails = $this->userview->getDirectoryContent($previewPath); + $allThumbnails = $this->userView->getDirectoryContent($previewPath); foreach($allThumbnails as $thumbnail) { $name = rtrim($thumbnail['name'], '.png'); $size = explode('-', $name); @@ -319,7 +319,7 @@ class Preview { if($x < $maxX || $y < $maxY) { if($scalingUp) { $scalefactor = $maxX / $x; - if($scalefactor > $maxscalefactor) { + if($scalefactor > $maxScaleFactor) { continue; } }else{ @@ -371,19 +371,19 @@ class Preview { $maxY = $this->getMaxY(); $scalingUp = $this->getScalingUp(); - $fileInfo = $this->fileview->getFileInfo($file); + $fileInfo = $this->fileView->getFileInfo($file); $fileId = $fileInfo['fileid']; $cached = $this->isCached(); if($cached) { - $image = new \OC_Image($this->userview->file_get_contents($cached, 'r')); + $image = new \OC_Image($this->userView->file_get_contents($cached, 'r')); $this->preview = $image->valid() ? $image : null; $this->resizeAndCrop(); } if(is_null($this->preview)) { - $mimetype = $this->fileview->getMimeType($file); + $mimetype = $this->fileView->getMimeType($file); $preview = null; foreach(self::$providers as $supportedMimetype => $provider) { @@ -393,7 +393,7 @@ class Preview { \OC_Log::write('core', 'Generating preview for "' . $file . '" with "' . get_class($provider) . '"', \OC_Log::DEBUG); - $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingUp, $this->fileview); + $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingUp, $this->fileView); if(!($preview instanceof \OC_Image)) { continue; @@ -405,15 +405,15 @@ class Preview { $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; $cachePath = $previewPath . $maxX . '-' . $maxY . '.png'; - if($this->userview->is_dir($this->getThumbnailsFolder() . '/') === false) { - $this->userview->mkdir($this->getThumbnailsFolder() . '/'); + if($this->userView->is_dir($this->getThumbnailsFolder() . '/') === false) { + $this->userView->mkdir($this->getThumbnailsFolder() . '/'); } - if($this->userview->is_dir($previewPath) === false) { - $this->userview->mkdir($previewPath); + if($this->userView->is_dir($previewPath) === false) { + $this->userView->mkdir($previewPath); } - $this->userview->file_put_contents($cachePath, $preview->data()); + $this->userView->file_put_contents($cachePath, $preview->data()); break; } @@ -470,7 +470,7 @@ class Preview { if($x === $realx && $y === $realy) { $this->preview = $image; - return true; + return; } $factorX = $x / $realx; diff --git a/lib/preview/images.php b/lib/preview/image.php similarity index 100% rename from lib/preview/images.php rename to lib/preview/image.php diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/office-cl.php similarity index 87% rename from lib/preview/libreoffice-cl.php rename to lib/preview/office-cl.php index 2f1d08499e..112909d652 100644 --- a/lib/preview/libreoffice-cl.php +++ b/lib/preview/office-cl.php @@ -7,7 +7,7 @@ */ namespace OC\Preview; -//we need imagick to convert +//we need imagick to convert class Office extends Provider { private $cmd; @@ -26,7 +26,10 @@ class Office extends Provider { $tmpDir = get_temp_dir(); - $exec = $this->cmd . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ' . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); + $defaultParameters = ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '; + $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters); + + $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); $export = 'export HOME=/' . $tmpDir; shell_exec($export . "\n" . $exec); @@ -110,7 +113,7 @@ class MSOffice2007 extends Office { //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt class OpenDocument extends Office { - + public function getMimeType() { return '/application\/vnd.oasis.opendocument.*/'; } diff --git a/lib/preview/msoffice.php b/lib/preview/office-fallback.php similarity index 100% rename from lib/preview/msoffice.php rename to lib/preview/office-fallback.php diff --git a/lib/preview/office.php b/lib/preview/office.php index b93e1e57c8..5287bbd6ac 100644 --- a/lib/preview/office.php +++ b/lib/preview/office.php @@ -14,9 +14,9 @@ if (extension_loaded('imagick')) { $isOpenOfficeAvailable = !empty($whichOpenOffice); //let's see if there is libreoffice or openoffice on this machine if($isShellExecEnabled && ($isLibreOfficeAvailable || $isOpenOfficeAvailable || is_string(\OC_Config::getValue('preview_libreoffice_path', null)))) { - require_once('libreoffice-cl.php'); + require_once('office-cl.php'); }else{ //in case there isn't, use our fallback - require_once('msoffice.php'); + require_once('office-fallback.php'); } } \ No newline at end of file From d9e8ebabdcd99bade4201d6be82e1841d30c5d65 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 19 Aug 2013 13:24:07 +0200 Subject: [PATCH 139/170] outsource sharing and deleted files previews to apps --- {core => apps/files_sharing}/ajax/publicpreview.php | 3 +-- apps/files_sharing/appinfo/routes.php | 5 +++++ .../files_trashbin/ajax/preview.php | 3 +-- apps/files_trashbin/appinfo/routes.php | 5 +++++ core/routes.php | 4 ---- 5 files changed, 12 insertions(+), 8 deletions(-) rename {core => apps/files_sharing}/ajax/publicpreview.php (97%) create mode 100644 apps/files_sharing/appinfo/routes.php rename core/ajax/trashbinpreview.php => apps/files_trashbin/ajax/preview.php (94%) create mode 100644 apps/files_trashbin/appinfo/routes.php diff --git a/core/ajax/publicpreview.php b/apps/files_sharing/ajax/publicpreview.php similarity index 97% rename from core/ajax/publicpreview.php rename to apps/files_sharing/ajax/publicpreview.php index 83194d5349..41a1c178a4 100644 --- a/core/ajax/publicpreview.php +++ b/apps/files_sharing/ajax/publicpreview.php @@ -81,6 +81,5 @@ try{ $preview->show(); } catch (\Exception $e) { \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - exit; + \OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG); } \ No newline at end of file diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php new file mode 100644 index 0000000000..02815b5eb4 --- /dev/null +++ b/apps/files_sharing/appinfo/routes.php @@ -0,0 +1,5 @@ +create('core_ajax_public_preview', '/publicpreview.png')->action( +function() { + require_once __DIR__ . '/../ajax/publicpreview.php'; +}); \ No newline at end of file diff --git a/core/ajax/trashbinpreview.php b/apps/files_trashbin/ajax/preview.php similarity index 94% rename from core/ajax/trashbinpreview.php rename to apps/files_trashbin/ajax/preview.php index a916dcf229..a0846b051c 100644 --- a/core/ajax/trashbinpreview.php +++ b/apps/files_trashbin/ajax/preview.php @@ -38,6 +38,5 @@ try{ $preview->showPreview(); }catch(\Exception $e) { \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); - exit; + \OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG); } \ No newline at end of file diff --git a/apps/files_trashbin/appinfo/routes.php b/apps/files_trashbin/appinfo/routes.php new file mode 100644 index 0000000000..b1c3f02741 --- /dev/null +++ b/apps/files_trashbin/appinfo/routes.php @@ -0,0 +1,5 @@ +create('core_ajax_trashbin_preview', '/preview.png')->action( +function() { + require_once __DIR__ . '/../ajax/preview.php'; +}); \ No newline at end of file diff --git a/core/routes.php b/core/routes.php index ce35be1d58..f0f8ce571e 100644 --- a/core/routes.php +++ b/core/routes.php @@ -44,10 +44,6 @@ $this->create('core_ajax_routes', '/core/routes.json') ->action('OC_Router', 'JSRoutes'); $this->create('core_ajax_preview', '/core/preview.png') ->actionInclude('core/ajax/preview.php'); -$this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png') - ->actionInclude('core/ajax/trashbinpreview.php'); -$this->create('core_ajax_public_preview', '/core/publicpreview.png') - ->actionInclude('core/ajax/publicpreview.php'); OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php'; $this->create('core_lostpassword_index', '/lostpassword/') ->get() From 224b80f906c1b7cd6338854e58f228eff4ea871c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 21 Aug 2013 15:55:59 +0200 Subject: [PATCH 140/170] move isMimeSupported out of template files --- apps/files/index.php | 1 + apps/files/templates/part.list.php | 6 +++--- apps/files_sharing/public.php | 1 + apps/files_trashbin/index.php | 1 + apps/files_trashbin/templates/part.list.php | 8 ++++++-- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/files/index.php b/apps/files/index.php index c05c2a9384..3007f56e02 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -74,6 +74,7 @@ foreach ($content as $i) { } } $i['directory'] = $dir; + $i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($i['mimetype']); $files[] = $i; } diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 899fb04e25..c91dda4c77 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -26,7 +26,7 @@ $totalsize = 0; ?> data-mime="" data-size="" data-permissions=""> - +
    - + style="background-image:url()" style="background-image:url()" - + style="background-image:url()" style="background-image:url()" diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index f050fecd7b..ec6b4e815f 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -172,6 +172,7 @@ if (isset($path)) { } else { $i['extension'] = ''; } + $i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($i['mimetype']); } $i['directory'] = $getPath; $i['permissions'] = OCP\PERMISSION_READ; diff --git a/apps/files_trashbin/index.php b/apps/files_trashbin/index.php index 2dbaefe7a7..6ae238eb8e 100644 --- a/apps/files_trashbin/index.php +++ b/apps/files_trashbin/index.php @@ -64,6 +64,7 @@ foreach ($result as $r) { $i['directory'] = ''; } $i['permissions'] = OCP\PERMISSION_READ; + $i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($r['mime']); $files[] = $i; } diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php index 6c6d216284..f7cc6b01bb 100644 --- a/apps/files_trashbin/templates/part.list.php +++ b/apps/files_trashbin/templates/part.list.php @@ -21,12 +21,16 @@ data-timestamp='' data-dirlisting=0 > + + style="background-image:url()" - - style="background-image:url()" class="preview-icon" + + style="background-image:url()" style="background-image:url()" From 1dab0767502013b5e86e8e24e3b12a2a8939f7a8 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 23 Aug 2013 23:05:44 +0200 Subject: [PATCH 141/170] make it possible to disable previews --- config/config.sample.php | 1 + lib/preview.php | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/config/config.sample.php b/config/config.sample.php index 5c40078c7d..76de97818d 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -191,6 +191,7 @@ $CONFIG = array( 'customclient_ios' => '', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8 // PREVIEW +'disable_previews' => false, /* the max width of a generated preview, if value is null, there is no limit */ 'preview_max_x' => null, /* the max height of a generated preview, if value is null, there is no limit */ diff --git a/lib/preview.php b/lib/preview.php index 9fed7f1b58..0497ec95bc 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -568,6 +568,12 @@ class Preview { * @return void */ private static function initProviders() { + if(\OC_Config::getValue('disable_previews', false)) { + $provider = new Preview\Unknown(); + self::$providers = array($provider); + return; + } + if(count(self::$providers)>0) { return; } @@ -599,6 +605,10 @@ class Preview { } public static function isMimeSupported($mimetype) { + if(\OC_Config::getValue('disable_previews', false)) { + return false; + } + //check if there are preview backends if(empty(self::$providers)) { self::initProviders(); From 13e34649bfb1a7d15833c209d629e3540d3366ef Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 23 Aug 2013 23:19:21 +0200 Subject: [PATCH 142/170] move path generation for previews to dedicated function --- apps/files/js/filelist.js | 2 +- apps/files/js/files.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 41245c00ba..e3e985af38 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -185,7 +185,7 @@ var FileList={ if (id != null) { tr.attr('data-id', id); } - var path = $('#dir').val()+'/'+name; + var path = getPathForPreview(name); lazyLoadPreview(path, mime, function(previewpath){ tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index f88ecd961b..79fa01aa0a 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -382,7 +382,7 @@ $(document).ready(function() { tr.attr('data-size',result.data.size); tr.attr('data-id', result.data.id); tr.find('.filesize').text(humanFileSize(result.data.size)); - var path = $('#dir').val() + '/' + name; + var path = getPathForPreview(name); lazyLoadPreview(path, result.data.mime, function(previewpath){ tr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); @@ -654,7 +654,7 @@ var createDragShadow = function(event){ if (elem.type === 'dir') { newtr.find('td.filename').attr('style','background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')'); } else { - var path = $('#dir').val()+'/'+elem.name; + var path = getPathForPreview(elem.name); lazyLoadPreview(path, elem.mime, function(previewpath){ newtr.find('td.filename').attr('style','background-image:url('+previewpath+')'); }); @@ -832,6 +832,11 @@ function getMimeIcon(mime, ready){ } getMimeIcon.cache={}; +function getPathForPreview(name) { + var path = $('#dir').val() + '/' + name; + return path; +} + function lazyLoadPreview(path, mime, ready) { getMimeIcon(mime,ready); var x = $('#filestable').data('preview-x'); From 58c727a4955b9ab60fa3c31fe902b673e883d181 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 23 Aug 2013 23:27:36 +0200 Subject: [PATCH 143/170] fix return value of method --- lib/preview.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 0497ec95bc..a8a8580e22 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -444,7 +444,8 @@ class Preview { * @return void */ public function show() { - return $this->showPreview(); + $this->showPreview(); + return; } /** From 46cbd7cd3b37e073ebb497f34d54ab67e4761969 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 26 Aug 2013 12:16:51 +0200 Subject: [PATCH 144/170] fix preview issue when uploading a file with parentheses --- apps/files/js/files.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 79fa01aa0a..a890da843b 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -843,7 +843,9 @@ function lazyLoadPreview(path, mime, ready) { var y = $('#filestable').data('preview-y'); var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:x, y:y}); $.get(previewURL, function() { - ready(previewURL); + previewURL = previewURL.replace('(','%28'); + previewURL = previewURL.replace(')','%29'); + ready(previewURL + '&reload=true'); }); } From d538a566acac35eab811b2bfa16596fb8534db0f Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 26 Aug 2013 14:36:18 +0200 Subject: [PATCH 145/170] fix background size in filelist.js --- apps/files/js/filelist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index e3e985af38..7a48453488 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -15,7 +15,7 @@ var FileList={ // filename td td = $('
    diff --git a/core/css/styles.css b/core/css/styles.css index 85f65a2f42..8cda9ff9ef 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -177,7 +177,14 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b #leftcontent a { height:100%; display:block; margin:0; padding:0 1em 0 0; float:left; } #rightcontent, .rightcontent { position:fixed; top:6.4em; left:24.5em; overflow:auto } - +#emptycontent { + font-size:1.5em; font-weight:bold; + color:#888; text-shadow:#fff 0 1px 0; + position: absolute; + text-align: center; + top: 50%; + width: 100%; +} /* LOG IN & INSTALLATION ------------------------------------------------------------ */ From b10a646bc8d7deec8d95206c33de1be76a870dda Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Sat, 31 Aug 2013 11:25:11 -0400 Subject: [PATCH 164/170] rename emptyfolder to emptycontent --- apps/files/js/filelist.js | 4 ++-- apps/files_trashbin/templates/index.php | 2 +- core/css/styles.css | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 05e3109450..29be5e0d36 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -147,7 +147,7 @@ var FileList={ $('tr').filterAttr('data-file',name).remove(); FileList.updateFileSummary(); if($('tr[data-file]').length==0){ - $('#emptyfolder').show(); + $('#emptycontent').show(); } }, insertElement:function(name,type,element){ @@ -177,7 +177,7 @@ var FileList={ }else{ $('#fileList').append(element); } - $('#emptyfolder').hide(); + $('#emptycontent').hide(); FileList.updateFileSummary(); }, loadingDone:function(name, id){ diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php index 371765fa69..88c32b1f3e 100644 --- a/apps/files_trashbin/templates/index.php +++ b/apps/files_trashbin/templates/index.php @@ -6,7 +6,7 @@
    -
    t('Nothing in here. Your trash bin is empty!'))?>
    +
    t('Nothing in here. Your trash bin is empty!'))?>
    diff --git a/core/css/styles.css b/core/css/styles.css index 8cda9ff9ef..ea1733a344 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -178,12 +178,12 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b #rightcontent, .rightcontent { position:fixed; top:6.4em; left:24.5em; overflow:auto } #emptycontent { - font-size:1.5em; font-weight:bold; + font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; - position: absolute; - text-align: center; - top: 50%; - width: 100%; + position: absolute; + text-align: center; + top: 50%; + width: 100%; } From f1836a997f9c8051bf040b78cd5475a8e9862fe0 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 31 Aug 2013 18:14:46 +0200 Subject: [PATCH 165/170] remove the activity call here. it is not implemented anyways. This will be provided by Activity app in the future. --- lib/ocs/activity.php | 28 ---------------------------- ocs/routes.php | 8 -------- 2 files changed, 36 deletions(-) delete mode 100644 lib/ocs/activity.php diff --git a/lib/ocs/activity.php b/lib/ocs/activity.php deleted file mode 100644 index c30e21018d..0000000000 --- a/lib/ocs/activity.php +++ /dev/null @@ -1,28 +0,0 @@ -. -* -*/ - -class OC_OCS_Activity { - - public static function activityGet($parameters){ - // TODO - } -} diff --git a/ocs/routes.php b/ocs/routes.php index 283c9af692..c4a74d7790 100644 --- a/ocs/routes.php +++ b/ocs/routes.php @@ -21,14 +21,6 @@ OC_API::register( 'core', OC_API::GUEST_AUTH ); -// Activity -OC_API::register( - 'get', - '/activity', - array('OC_OCS_Activity', 'activityGet'), - 'core', - OC_API::USER_AUTH - ); // Privatedata OC_API::register( 'get', From ebcd2a6b4df1851f131b7a37474c1e7804f9816a Mon Sep 17 00:00:00 2001 From: kondou Date: Sat, 31 Aug 2013 19:21:51 +0200 Subject: [PATCH 166/170] Fit filesummary for \OC\Preview's ne mimetype-icons --- core/css/styles.css | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 85f65a2f42..309917f30e 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -677,8 +677,21 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin background-color:white; width:100%; } -#oc-dialog-filepicker-content .filelist img { margin: 2px 1em 0 4px; } -#oc-dialog-filepicker-content .filelist .date { float:right;margin-right:1em; } +#oc-dialog-filepicker-content .filelist li { + position: relative; +} +#oc-dialog-filepicker-content .filelist .filename { + position: absolute; + top: 8px; +} +#oc-dialog-filepicker-content .filelist img { + margin: 2px 1em 0 4px; +} +#oc-dialog-filepicker-content .filelist .date { + float: right; + margin-right: 1em; + margin-top: 8px; +} #oc-dialog-filepicker-content .filepicker_element_selected { background-color:lightblue;} .ui-dialog {position:fixed !important;} span.ui-icon {float: left; margin: 3px 7px 30px 0;} From c54994d2e9ba1d6ea1e2c1037192e1d79e64c281 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sun, 1 Sep 2013 08:23:11 +0200 Subject: [PATCH 167/170] fixing this obvious typo directly --- lib/public/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public/preview.php b/lib/public/preview.php index e488eade4d..7588347ecc 100644 --- a/lib/public/preview.php +++ b/lib/public/preview.php @@ -22,7 +22,7 @@ class Preview { * @return image */ public static function show($file,$maxX=100,$maxY=75,$scaleup=false) { - return(\OC_Preview::show($file,$maxX,$maxY,$scaleup)); + return(\OC\Preview::show($file,$maxX,$maxY,$scaleup)); } From 2d6a400381ffe9d13047ecf7273c550f335e5225 Mon Sep 17 00:00:00 2001 From: kondou Date: Sun, 1 Sep 2013 15:50:58 +0200 Subject: [PATCH 168/170] Check for $this->fileInfo and @depend on testData() --- lib/image.php | 4 ++-- tests/lib/image.php | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/image.php b/lib/image.php index badc30ab9a..7761a3c773 100644 --- a/lib/image.php +++ b/lib/image.php @@ -519,7 +519,7 @@ class OC_Image { return false; } $this->resource = @imagecreatefromstring($str); - if (\OC_Util::fileInfoLoaded()) { + if ($this->fileInfo) { $this->mimeType = $this->fileInfo->buffer($str); } if(is_resource($this->resource)) { @@ -546,7 +546,7 @@ class OC_Image { $data = base64_decode($str); if($data) { // try to load from string data $this->resource = @imagecreatefromstring($data); - if (\OC_Util::fileInfoLoaded()) { + if ($this->fileInfo) { $this->mimeType = $this->fileInfo->buffer($data); } if(!$this->resource) { diff --git a/tests/lib/image.php b/tests/lib/image.php index b3db89cf5b..4aba1b0bc6 100644 --- a/tests/lib/image.php +++ b/tests/lib/image.php @@ -135,6 +135,9 @@ class Test_Image extends PHPUnit_Framework_TestCase { $this->assertEquals($expected, $img->data()); } + /** + * @depends testData + */ public function testToString() { $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); $expected = base64_encode($img->data()); From e68b5f8b0da93bf1e039bc700aec8c816cc9afa9 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Sun, 1 Sep 2013 13:30:40 -0400 Subject: [PATCH 169/170] [tx-robot] updated from transifex --- apps/files/l10n/ar.php | 8 +++ apps/files/l10n/bg_BG.php | 1 + apps/files/l10n/ca.php | 1 + apps/files/l10n/cs_CZ.php | 2 + apps/files/l10n/cy_GB.php | 1 + apps/files/l10n/da.php | 2 + apps/files/l10n/de.php | 2 + apps/files/l10n/de_DE.php | 2 + apps/files/l10n/el.php | 1 + apps/files/l10n/eo.php | 1 + apps/files/l10n/es.php | 1 + apps/files/l10n/es_AR.php | 1 + apps/files/l10n/et_EE.php | 1 + apps/files/l10n/eu.php | 1 + apps/files/l10n/fa.php | 1 + apps/files/l10n/fi_FI.php | 2 + apps/files/l10n/fr.php | 1 + apps/files/l10n/gl.php | 1 + apps/files/l10n/he.php | 1 + apps/files/l10n/hu_HU.php | 1 + apps/files/l10n/it.php | 2 + apps/files/l10n/ja_JP.php | 2 + apps/files/l10n/ka_GE.php | 1 + apps/files/l10n/ko.php | 1 + apps/files/l10n/lt_LT.php | 1 + apps/files/l10n/lv.php | 1 + apps/files/l10n/nb_NO.php | 1 + apps/files/l10n/nl.php | 1 + apps/files/l10n/nn_NO.php | 1 + apps/files/l10n/pl.php | 1 + apps/files/l10n/pt_BR.php | 1 + apps/files/l10n/pt_PT.php | 9 ++- apps/files/l10n/ro.php | 1 + apps/files/l10n/ru.php | 1 + apps/files/l10n/si_LK.php | 1 + apps/files/l10n/sk_SK.php | 1 + apps/files/l10n/sl.php | 1 + apps/files/l10n/sr.php | 1 + apps/files/l10n/sv.php | 2 + apps/files/l10n/ta_LK.php | 1 + apps/files/l10n/th_TH.php | 1 + apps/files/l10n/tr.php | 1 + apps/files/l10n/uk.php | 1 + apps/files/l10n/vi.php | 1 + apps/files/l10n/zh_CN.php | 1 + apps/files/l10n/zh_TW.php | 50 ++++++------- apps/files_sharing/l10n/zh_TW.php | 4 +- apps/files_trashbin/l10n/pt_PT.php | 4 +- apps/files_trashbin/l10n/zh_TW.php | 2 +- core/l10n/ar.php | 1 + core/l10n/ca.php | 1 + core/l10n/cs_CZ.php | 1 + core/l10n/cy_GB.php | 1 + core/l10n/da.php | 1 + core/l10n/de.php | 1 + core/l10n/de_CH.php | 1 + core/l10n/de_DE.php | 1 + core/l10n/el.php | 1 + core/l10n/eo.php | 1 + core/l10n/es.php | 1 + core/l10n/es_AR.php | 1 + core/l10n/et_EE.php | 1 + core/l10n/eu.php | 1 + core/l10n/fa.php | 1 + core/l10n/fi_FI.php | 1 + core/l10n/fr.php | 1 + core/l10n/gl.php | 1 + core/l10n/he.php | 1 + core/l10n/hu_HU.php | 1 + core/l10n/id.php | 1 + core/l10n/it.php | 1 + core/l10n/ja_JP.php | 7 ++ core/l10n/ka_GE.php | 1 + core/l10n/ko.php | 1 + core/l10n/lb.php | 1 + core/l10n/lt_LT.php | 1 + core/l10n/lv.php | 1 + core/l10n/mk.php | 1 + core/l10n/nb_NO.php | 1 + core/l10n/nl.php | 1 + core/l10n/nn_NO.php | 1 + core/l10n/oc.php | 1 + core/l10n/pl.php | 1 + core/l10n/pt_BR.php | 1 + core/l10n/pt_PT.php | 1 + core/l10n/ro.php | 1 + core/l10n/ru.php | 1 + core/l10n/si_LK.php | 1 + core/l10n/sk_SK.php | 1 + core/l10n/sl.php | 1 + core/l10n/sr.php | 1 + core/l10n/sv.php | 1 + core/l10n/ta_LK.php | 1 + core/l10n/th_TH.php | 1 + core/l10n/tr.php | 1 + core/l10n/ug.php | 1 + core/l10n/uk.php | 1 + core/l10n/vi.php | 1 + core/l10n/zh_CN.php | 1 + core/l10n/zh_TW.php | 37 ++++++---- l10n/ar/core.po | 6 +- l10n/ar/files.po | 69 +++++++++--------- l10n/bg_BG/files.po | 52 +++++++------- l10n/ca/core.po | 6 +- l10n/ca/files.po | 52 +++++++------- l10n/cs_CZ/core.po | 8 +-- l10n/cs_CZ/files.po | 56 +++++++-------- l10n/cy_GB/core.po | 6 +- l10n/cy_GB/files.po | 52 +++++++------- l10n/da/core.po | 6 +- l10n/da/files.po | 56 +++++++-------- l10n/de/core.po | 6 +- l10n/de/files.po | 56 +++++++-------- l10n/de_CH/core.po | 6 +- l10n/de_CH/files.po | 52 +++++++------- l10n/de_DE/core.po | 6 +- l10n/de_DE/files.po | 57 +++++++-------- l10n/el/core.po | 6 +- l10n/el/files.po | 52 +++++++------- l10n/en_GB/core.po | 4 +- l10n/en_GB/files.po | 50 ++++++------- l10n/eo/core.po | 6 +- l10n/eo/files.po | 52 +++++++------- l10n/es/core.po | 6 +- l10n/es/files.po | 52 +++++++------- l10n/es/lib.po | 49 ++++++------- l10n/es_AR/core.po | 6 +- l10n/es_AR/files.po | 52 +++++++------- l10n/et_EE/core.po | 6 +- l10n/et_EE/files.po | 52 +++++++------- l10n/eu/core.po | 6 +- l10n/eu/files.po | 52 +++++++------- l10n/fa/core.po | 6 +- l10n/fa/files.po | 52 +++++++------- l10n/fi_FI/core.po | 6 +- l10n/fi_FI/files.po | 56 +++++++-------- l10n/fr/core.po | 6 +- l10n/fr/files.po | 52 +++++++------- l10n/gl/core.po | 6 +- l10n/gl/files.po | 52 +++++++------- l10n/he/core.po | 6 +- l10n/he/files.po | 52 +++++++------- l10n/hu_HU/core.po | 6 +- l10n/hu_HU/files.po | 52 +++++++------- l10n/id/core.po | 6 +- l10n/it/core.po | 6 +- l10n/it/files.po | 56 +++++++-------- l10n/it/lib.po | 29 ++++---- l10n/it/settings.po | 33 ++++----- l10n/ja_JP/core.po | 20 +++--- l10n/ja_JP/files.po | 56 +++++++-------- l10n/ja_JP/lib.po | 52 +++++++------- l10n/ja_JP/settings.po | 32 ++++----- l10n/ka_GE/core.po | 6 +- l10n/ka_GE/files.po | 52 +++++++------- l10n/ko/core.po | 6 +- l10n/ko/files.po | 52 +++++++------- l10n/lb/core.po | 6 +- l10n/lt_LT/core.po | 6 +- l10n/lt_LT/files.po | 52 +++++++------- l10n/lv/core.po | 6 +- l10n/lv/files.po | 52 +++++++------- l10n/mk/core.po | 6 +- l10n/nb_NO/core.po | 6 +- l10n/nb_NO/files.po | 52 +++++++------- l10n/nl/core.po | 6 +- l10n/nl/files.po | 52 +++++++------- l10n/nn_NO/core.po | 6 +- l10n/nn_NO/files.po | 52 +++++++------- l10n/oc/core.po | 6 +- l10n/pl/core.po | 6 +- l10n/pl/files.po | 52 +++++++------- l10n/pt_BR/core.po | 6 +- l10n/pt_BR/files.po | 52 +++++++------- l10n/pt_PT/core.po | 6 +- l10n/pt_PT/files.po | 71 +++++++++---------- l10n/pt_PT/files_trashbin.po | 32 ++++----- l10n/pt_PT/settings.po | 40 +++++------ l10n/ro/core.po | 6 +- l10n/ro/files.po | 52 +++++++------- l10n/ru/core.po | 6 +- l10n/ru/files.po | 52 +++++++------- l10n/si_LK/core.po | 6 +- l10n/si_LK/files.po | 52 +++++++------- l10n/sk_SK/core.po | 6 +- l10n/sk_SK/files.po | 52 +++++++------- l10n/sl/core.po | 6 +- l10n/sl/files.po | 52 +++++++------- l10n/sr/core.po | 6 +- l10n/sr/files.po | 52 +++++++------- l10n/sv/core.po | 6 +- l10n/sv/files.po | 56 +++++++-------- l10n/ta_LK/core.po | 6 +- l10n/ta_LK/files.po | 52 +++++++------- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 48 ++++++------- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 6 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 22 +++--- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/th_TH/core.po | 6 +- l10n/th_TH/files.po | 52 +++++++------- l10n/tr/core.po | 6 +- l10n/tr/files.po | 52 +++++++------- l10n/ug/core.po | 6 +- l10n/uk/core.po | 6 +- l10n/uk/files.po | 52 +++++++------- l10n/vi/core.po | 6 +- l10n/vi/files.po | 52 +++++++------- l10n/zh_CN/core.po | 6 +- l10n/zh_CN/files.po | 52 +++++++------- l10n/zh_TW/core.po | 50 ++++++------- l10n/zh_TW/files.po | 104 ++++++++++++++-------------- l10n/zh_TW/files_sharing.po | 12 ++-- l10n/zh_TW/files_trashbin.po | 24 +++---- l10n/zh_TW/settings.po | 30 ++++---- lib/l10n/es.php | 11 +++ lib/l10n/it.php | 1 + lib/l10n/ja_JP.php | 13 ++++ settings/l10n/it.php | 2 + settings/l10n/ja_JP.php | 2 + settings/l10n/pt_PT.php | 6 ++ settings/l10n/zh_TW.php | 4 +- 228 files changed, 1919 insertions(+), 1751 deletions(-) diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php index 8346eece88..99eb409a36 100644 --- a/apps/files/l10n/ar.php +++ b/apps/files/l10n/ar.php @@ -2,6 +2,8 @@ $TRANSLATIONS = array( "Could not move %s - File with this name already exists" => "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم", "Could not move %s" => "فشل في نقل %s", +"Unable to set upload directory." => "غير قادر على تحميل المجلد", +"Invalid Token" => "علامة غير صالحة", "No file was uploaded. Unknown error" => "لم يتم رفع أي ملف , خطأ غير معروف", "There is no error, the file uploaded with success" => "تم ترفيع الملفات بنجاح.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini ", @@ -11,12 +13,15 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "المجلد المؤقت غير موجود", "Failed to write to disk" => "خطأ في الكتابة على القرص الصلب", "Not enough storage available" => "لا يوجد مساحة تخزينية كافية", +"Upload failed" => "عملية الرفع فشلت", "Invalid directory." => "مسار غير صحيح.", "Files" => "الملفات", "Unable to upload your file as it is a directory or has 0 bytes" => "فشل في رفع ملفاتك , إما أنها مجلد أو حجمها 0 بايت", +"Not enough space available" => "لا توجد مساحة كافية", "Upload cancelled." => "تم إلغاء عملية رفع الملفات .", "File upload is in progress. Leaving the page now will cancel the upload." => "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.", "URL cannot be empty." => "عنوان ال URL لا يجوز أن يكون فارغا.", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "تسمية ملف غير صالحة. استخدام الاسم \"shared\" محجوز بواسطة ownCloud", "Error" => "خطأ", "Share" => "شارك", "Delete permanently" => "حذف بشكل دائم", @@ -30,12 +35,15 @@ $TRANSLATIONS = array( "undo" => "تراجع", "_%n folder_::_%n folders_" => array("","","","","",""), "_%n file_::_%n files_" => array("","","","","",""), +"{dirs} and {files}" => "{dirs} و {files}", "_Uploading %n file_::_Uploading %n files_" => array("","","","","",""), +"files uploading" => "يتم تحميل الملفات", "'.' is an invalid file name." => "\".\" اسم ملف غير صحيح.", "File name cannot be empty." => "اسم الملف لا يجوز أن يكون فارغا", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها", "Your storage is full, files can not be updated or synced anymore!" => "مساحتك التخزينية ممتلئة, لا يمكم تحديث ملفاتك أو مزامنتها بعد الآن !", "Your storage is almost full ({usedSpacePercent}%)" => "مساحتك التخزينية امتلأت تقريبا ", +"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", "Your download is being prepared. This might take some time if the files are big." => "جاري تجهيز عملية التحميل. قد تستغرق بعض الوقت اذا كان حجم الملفات كبير.", "Name" => "اسم", "Size" => "حجم", diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php index e7dafd1c43..913875e863 100644 --- a/apps/files/l10n/bg_BG.php +++ b/apps/files/l10n/bg_BG.php @@ -6,6 +6,7 @@ $TRANSLATIONS = array( "No file was uploaded" => "Фахлът не бе качен", "Missing a temporary folder" => "Липсва временна папка", "Failed to write to disk" => "Възникна проблем при запис в диска", +"Upload failed" => "Качването е неуспешно", "Invalid directory." => "Невалидна директория.", "Files" => "Файлове", "Upload cancelled." => "Качването е спряно.", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index 9f90138eeb..648ffce79d 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Falta un fitxer temporal", "Failed to write to disk" => "Ha fallat en escriure al disc", "Not enough storage available" => "No hi ha prou espai disponible", +"Upload failed" => "La pujada ha fallat", "Invalid directory." => "Directori no vàlid.", "Files" => "Fitxers", "Unable to upload your file as it is a directory or has 0 bytes" => "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes", diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index c46758c7bc..691cc92f1a 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Chybí adresář pro dočasné soubory", "Failed to write to disk" => "Zápis na disk selhal", "Not enough storage available" => "Nedostatek dostupného úložného prostoru", +"Upload failed" => "Odesílání selhalo", "Invalid directory." => "Neplatný adresář", "Files" => "Soubory", "Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo jeho velikost je 0 bajtů", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "vrátit zpět", "_%n folder_::_%n folders_" => array("%n složka","%n složky","%n složek"), "_%n file_::_%n files_" => array("%n soubor","%n soubory","%n souborů"), +"{dirs} and {files}" => "{dirs} a {files}", "_Uploading %n file_::_Uploading %n files_" => array("Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"), "files uploading" => "soubory se odesílají", "'.' is an invalid file name." => "'.' je neplatným názvem souboru.", diff --git a/apps/files/l10n/cy_GB.php b/apps/files/l10n/cy_GB.php index 666e90e9db..157f4f89a2 100644 --- a/apps/files/l10n/cy_GB.php +++ b/apps/files/l10n/cy_GB.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Plygell dros dro yn eisiau", "Failed to write to disk" => "Methwyd ysgrifennu i'r ddisg", "Not enough storage available" => "Dim digon o le storio ar gael", +"Upload failed" => "Methwyd llwytho i fyny", "Invalid directory." => "Cyfeiriadur annilys.", "Files" => "Ffeiliau", "Unable to upload your file as it is a directory or has 0 bytes" => "Methu llwytho'ch ffeil i fyny gan ei fod yn gyferiadur neu'n cynnwys 0 beit", diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index 36703322f9..aab12986ec 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Manglende midlertidig mappe.", "Failed to write to disk" => "Fejl ved skrivning til disk.", "Not enough storage available" => "Der er ikke nok plads til rådlighed", +"Upload failed" => "Upload fejlede", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", "Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke uploade din fil - det er enten en mappe eller en fil med et indhold på 0 bytes.", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "fortryd", "_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), "_%n file_::_%n files_" => array("%n fil","%n filer"), +"{dirs} and {files}" => "{dirs} og {files}", "_Uploading %n file_::_Uploading %n files_" => array("Uploader %n fil","Uploader %n filer"), "files uploading" => "uploader filer", "'.' is an invalid file name." => "'.' er et ugyldigt filnavn.", diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index 8d8d30cb6e..947d4f0746 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Kein temporärer Ordner vorhanden", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Not enough storage available" => "Nicht genug Speicher vorhanden.", +"Upload failed" => "Hochladen fehlgeschlagen", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", "Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "rückgängig machen", "_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"), "_%n file_::_%n files_" => array("%n Datei","%n Dateien"), +"{dirs} and {files}" => "{dirs} und {files}", "_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hochgeladen","%n Dateien werden hochgeladen"), "files uploading" => "Dateien werden hoch geladen", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 309a885d37..db07ed7fad 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Kein temporärer Ordner vorhanden", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Not enough storage available" => "Nicht genug Speicher vorhanden.", +"Upload failed" => "Hochladen fehlgeschlagen", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", "Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "rückgängig machen", "_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"), "_%n file_::_%n files_" => array("%n Datei","%n Dateien"), +"{dirs} and {files}" => "{dirs} und {files}", "_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hoch geladen","%n Dateien werden hoch geladen"), "files uploading" => "Dateien werden hoch geladen", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 1dca8e41f6..8c89e5e1fe 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", "Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο", "Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", +"Upload failed" => "Η μεταφόρτωση απέτυχε", "Invalid directory." => "Μη έγκυρος φάκελος.", "Files" => "Αρχεία", "Unable to upload your file as it is a directory or has 0 bytes" => "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes", diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index 2a011ab214..ad538f2f2a 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Mankas provizora dosierujo.", "Failed to write to disk" => "Malsukcesis skribo al disko", "Not enough storage available" => "Ne haveblas sufiĉa memoro", +"Upload failed" => "Alŝuto malsukcesis", "Invalid directory." => "Nevalida dosierujo.", "Files" => "Dosieroj", "Unable to upload your file as it is a directory or has 0 bytes" => "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index 1ff1506aaf..7a5785577a 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Falta la carpeta temporal", "Failed to write to disk" => "Falló al escribir al disco", "Not enough storage available" => "No hay suficiente espacio disponible", +"Upload failed" => "Error en la subida", "Invalid directory." => "Directorio inválido.", "Files" => "Archivos", "Unable to upload your file as it is a directory or has 0 bytes" => "Incapaz de subir su archivo, es un directorio o tiene 0 bytes", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index dac4d4e4de..1c26c10028 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "Error al escribir en el disco", "Not enough storage available" => "No hay suficiente almacenamiento", +"Upload failed" => "Error al subir el archivo", "Invalid directory." => "Directorio inválido.", "Files" => "Archivos", "Unable to upload your file as it is a directory or has 0 bytes" => "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index e1947cb8f7..5a2bb437d3 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Ajutiste failide kaust puudub", "Failed to write to disk" => "Kettale kirjutamine ebaõnnestus", "Not enough storage available" => "Saadaval pole piisavalt ruumi", +"Upload failed" => "Üleslaadimine ebaõnnestus", "Invalid directory." => "Vigane kaust.", "Files" => "Failid", "Unable to upload your file as it is a directory or has 0 bytes" => "Faili ei saa üles laadida, kuna see on kaust või selle suurus on 0 baiti", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 6c6e92dda3..524be56af0 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Aldi bateko karpeta falta da", "Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", "Not enough storage available" => "Ez dago behar aina leku erabilgarri,", +"Upload failed" => "igotzeak huts egin du", "Invalid directory." => "Baliogabeko karpeta.", "Files" => "Fitxategiak", "Unable to upload your file as it is a directory or has 0 bytes" => "Ezin izan da zure fitxategia igo karpeta bat delako edo 0 byte dituelako", diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php index afa04e53ab..24584f715b 100644 --- a/apps/files/l10n/fa.php +++ b/apps/files/l10n/fa.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "یک پوشه موقت گم شده", "Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", "Not enough storage available" => "فضای کافی در دسترس نیست", +"Upload failed" => "بارگزاری ناموفق بود", "Invalid directory." => "فهرست راهنما نامعتبر می باشد.", "Files" => "پرونده‌ها", "Unable to upload your file as it is a directory or has 0 bytes" => "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد", diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index d18ff4f020..1d29dbf79d 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Tilapäiskansio puuttuu", "Failed to write to disk" => "Levylle kirjoitus epäonnistui", "Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä", +"Upload failed" => "Lähetys epäonnistui", "Invalid directory." => "Virheellinen kansio.", "Files" => "Tiedostot", "Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio.", @@ -30,6 +31,7 @@ $TRANSLATIONS = array( "undo" => "kumoa", "_%n folder_::_%n folders_" => array("%n kansio","%n kansiota"), "_%n file_::_%n files_" => array("%n tiedosto","%n tiedostoa"), +"{dirs} and {files}" => "{dirs} ja {files}", "_Uploading %n file_::_Uploading %n files_" => array("Lähetetään %n tiedosto","Lähetetään %n tiedostoa"), "'.' is an invalid file name." => "'.' on virheellinen nimi tiedostolle.", "File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.", diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 40bb81296e..4e3b0de112 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Absence de dossier temporaire.", "Failed to write to disk" => "Erreur d'écriture sur le disque", "Not enough storage available" => "Plus assez d'espace de stockage disponible", +"Upload failed" => "Échec de l'envoi", "Invalid directory." => "Dossier invalide.", "Files" => "Fichiers", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossible d'envoyer votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index 2df738cb15..6ec1816308 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Falta o cartafol temporal", "Failed to write to disk" => "Produciuse un erro ao escribir no disco", "Not enough storage available" => "Non hai espazo de almacenamento abondo", +"Upload failed" => "Produciuse un fallou no envío", "Invalid directory." => "O directorio é incorrecto.", "Files" => "Ficheiros", "Unable to upload your file as it is a directory or has 0 bytes" => "Non foi posíbel enviar o ficheiro pois ou é un directorio ou ten 0 bytes", diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php index 7141c8442e..40d7cc9c55 100644 --- a/apps/files/l10n/he.php +++ b/apps/files/l10n/he.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "תקיה זמנית חסרה", "Failed to write to disk" => "הכתיבה לכונן נכשלה", "Not enough storage available" => "אין די שטח פנוי באחסון", +"Upload failed" => "ההעלאה נכשלה", "Invalid directory." => "תיקייה שגויה.", "Files" => "קבצים", "Unable to upload your file as it is a directory or has 0 bytes" => "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים", diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index 741964503f..66edbefbca 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Failed to write to disk" => "Nem sikerült a lemezre történő írás", "Not enough storage available" => "Nincs elég szabad hely.", +"Upload failed" => "A feltöltés nem sikerült", "Invalid directory." => "Érvénytelen mappa.", "Files" => "Fájlok", "Unable to upload your file as it is a directory or has 0 bytes" => "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index 2d53da2160..b0ec954d90 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Manca una cartella temporanea", "Failed to write to disk" => "Scrittura su disco non riuscita", "Not enough storage available" => "Spazio di archiviazione insufficiente", +"Upload failed" => "Caricamento non riuscito", "Invalid directory." => "Cartella non valida.", "Files" => "File", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile caricare il file poiché è una cartella o ha una dimensione di 0 byte", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "annulla", "_%n folder_::_%n folders_" => array("%n cartella","%n cartelle"), "_%n file_::_%n files_" => array("%n file","%n file"), +"{dirs} and {files}" => "{dirs} e {files}", "_Uploading %n file_::_Uploading %n files_" => array("Caricamento di %n file in corso","Caricamento di %n file in corso"), "files uploading" => "caricamento file", "'.' is an invalid file name." => "'.' non è un nome file valido.", diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index 09675b63f5..5438cbb497 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "一時保存フォルダが見つかりません", "Failed to write to disk" => "ディスクへの書き込みに失敗しました", "Not enough storage available" => "ストレージに十分な空き容量がありません", +"Upload failed" => "アップロードに失敗", "Invalid directory." => "無効なディレクトリです。", "Files" => "ファイル", "Unable to upload your file as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのファイルはアップロードできません", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "元に戻す", "_%n folder_::_%n folders_" => array("%n個のフォルダ"), "_%n file_::_%n files_" => array("%n個のファイル"), +"{dirs} and {files}" => "{dirs} と {files}", "_Uploading %n file_::_Uploading %n files_" => array("%n 個のファイルをアップロード中"), "files uploading" => "ファイルをアップロード中", "'.' is an invalid file name." => "'.' は無効なファイル名です。", diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php index 8fd522aebc..455e3211a5 100644 --- a/apps/files/l10n/ka_GE.php +++ b/apps/files/l10n/ka_GE.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "დროებითი საქაღალდე არ არსებობს", "Failed to write to disk" => "შეცდომა დისკზე ჩაწერისას", "Not enough storage available" => "საცავში საკმარისი ადგილი არ არის", +"Upload failed" => "ატვირთვა ვერ განხორციელდა", "Invalid directory." => "დაუშვებელი დირექტორია.", "Files" => "ფაილები", "Unable to upload your file as it is a directory or has 0 bytes" => "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index 86666c7056..e2b787e7f9 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "임시 폴더가 없음", "Failed to write to disk" => "디스크에 쓰지 못했습니다", "Not enough storage available" => "저장소가 용량이 충분하지 않습니다.", +"Upload failed" => "업로드 실패", "Invalid directory." => "올바르지 않은 디렉터리입니다.", "Files" => "파일", "Unable to upload your file as it is a directory or has 0 bytes" => "디렉터리 및 빈 파일은 업로드할 수 없습니다", diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php index 3bcc6b8443..0530adc2ae 100644 --- a/apps/files/l10n/lt_LT.php +++ b/apps/files/l10n/lt_LT.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Nėra laikinojo katalogo", "Failed to write to disk" => "Nepavyko įrašyti į diską", "Not enough storage available" => "Nepakanka vietos serveryje", +"Upload failed" => "Nusiuntimas nepavyko", "Invalid directory." => "Neteisingas aplankas", "Files" => "Failai", "Unable to upload your file as it is a directory or has 0 bytes" => "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas", diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php index 52cea5305d..d24aaca9e4 100644 --- a/apps/files/l10n/lv.php +++ b/apps/files/l10n/lv.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Trūkst pagaidu mapes", "Failed to write to disk" => "Neizdevās saglabāt diskā", "Not enough storage available" => "Nav pietiekami daudz vietas", +"Upload failed" => "Neizdevās augšupielādēt", "Invalid directory." => "Nederīga direktorija.", "Files" => "Datnes", "Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tā ir 0 baitu liela", diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php index 5c7780825f..55ce978d2a 100644 --- a/apps/files/l10n/nb_NO.php +++ b/apps/files/l10n/nb_NO.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Mangler midlertidig mappe", "Failed to write to disk" => "Klarte ikke å skrive til disk", "Not enough storage available" => "Ikke nok lagringsplass", +"Upload failed" => "Opplasting feilet", "Invalid directory." => "Ugyldig katalog.", "Files" => "Filer", "Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index a4386992cf..9fb1351736 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Er ontbreekt een tijdelijke map", "Failed to write to disk" => "Schrijven naar schijf mislukt", "Not enough storage available" => "Niet genoeg opslagruimte beschikbaar", +"Upload failed" => "Upload mislukt", "Invalid directory." => "Ongeldige directory.", "Files" => "Bestanden", "Unable to upload your file as it is a directory or has 0 bytes" => "Het lukt niet om uw bestand te uploaded, omdat het een folder of 0 bytes is", diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php index 84402057a3..b1f38057a8 100644 --- a/apps/files/l10n/nn_NO.php +++ b/apps/files/l10n/nn_NO.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Manglar ei mellombels mappe", "Failed to write to disk" => "Klarte ikkje skriva til disk", "Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg", +"Upload failed" => "Feil ved opplasting", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", "Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje lasta opp fila sidan ho er ei mappe eller er på 0 byte", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index c55d81cea2..4b22b080b2 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Brak folderu tymczasowego", "Failed to write to disk" => "Błąd zapisu na dysk", "Not enough storage available" => "Za mało dostępnego miejsca", +"Upload failed" => "Wysyłanie nie powiodło się", "Invalid directory." => "Zła ścieżka.", "Files" => "Pliki", "Unable to upload your file as it is a directory or has 0 bytes" => "Nie można wczytać pliku, ponieważ jest on katalogiem lub ma 0 bajtów", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index bfe34bab21..15d0c170e6 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Pasta temporária não encontrada", "Failed to write to disk" => "Falha ao escrever no disco", "Not enough storage available" => "Espaço de armazenamento insuficiente", +"Upload failed" => "Falha no envio", "Invalid directory." => "Diretório inválido.", "Files" => "Arquivos", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossível enviar seus arquivo por ele ser um diretório ou ter 0 bytes.", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index 8cd73a9f70..33ec8cddce 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Está a faltar a pasta temporária", "Failed to write to disk" => "Falhou a escrita no disco", "Not enough storage available" => "Não há espaço suficiente em disco", +"Upload failed" => "Carregamento falhou", "Invalid directory." => "Directório Inválido", "Files" => "Ficheiros", "Unable to upload your file as it is a directory or has 0 bytes" => "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes", @@ -32,15 +33,17 @@ $TRANSLATIONS = array( "cancel" => "cancelar", "replaced {new_name} with {old_name}" => "substituido {new_name} por {old_name}", "undo" => "desfazer", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), +"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), +"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), +"{dirs} and {files}" => "{dirs} e {files}", +"_Uploading %n file_::_Uploading %n files_" => array("A carregar %n ficheiro","A carregar %n ficheiros"), "files uploading" => "A enviar os ficheiros", "'.' is an invalid file name." => "'.' não é um nome de ficheiro válido!", "File name cannot be empty." => "O nome do ficheiro não pode estar vazio.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome Inválido, os caracteres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", "Your storage is full, files can not be updated or synced anymore!" => "O seu armazenamento está cheio, os ficheiros não podem ser sincronizados.", "Your storage is almost full ({usedSpacePercent}%)" => "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)", +"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", "Your download is being prepared. This might take some time if the files are big." => "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes.", "Name" => "Nome", "Size" => "Tamanho", diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index 3b5359384a..59f6cc6849 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Lipsește un director temporar", "Failed to write to disk" => "Eroare la scriere pe disc", "Not enough storage available" => "Nu este suficient spațiu disponibil", +"Upload failed" => "Încărcarea a eșuat", "Invalid directory." => "Director invalid.", "Files" => "Fișiere", "Unable to upload your file as it is a directory or has 0 bytes" => "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes.", diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index e0bf97038d..96f52a9045 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Отсутствует временная папка", "Failed to write to disk" => "Ошибка записи на диск", "Not enough storage available" => "Недостаточно доступного места в хранилище", +"Upload failed" => "Ошибка загрузки", "Invalid directory." => "Неправильный каталог.", "Files" => "Файлы", "Unable to upload your file as it is a directory or has 0 bytes" => "Файл не был загружен: его размер 0 байт либо это не файл, а директория.", diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php index 7d24370a09..1fd18d0c56 100644 --- a/apps/files/l10n/si_LK.php +++ b/apps/files/l10n/si_LK.php @@ -7,6 +7,7 @@ $TRANSLATIONS = array( "No file was uploaded" => "ගොනුවක් උඩුගත නොවුණි", "Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්", "Failed to write to disk" => "තැටිගත කිරීම අසාර්ථකයි", +"Upload failed" => "උඩුගත කිරීම අසාර්ථකයි", "Files" => "ගොනු", "Upload cancelled." => "උඩුගත කිරීම අත් හරින්න ලදී", "File upload is in progress. Leaving the page now will cancel the upload." => "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index e7ade01379..b30f263d24 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Chýba dočasný priečinok", "Failed to write to disk" => "Zápis na disk sa nepodaril", "Not enough storage available" => "Nedostatok dostupného úložného priestoru", +"Upload failed" => "Odoslanie bolo neúspešné", "Invalid directory." => "Neplatný priečinok.", "Files" => "Súbory", "Unable to upload your file as it is a directory or has 0 bytes" => "Nedá sa odoslať Váš súbor, pretože je to priečinok, alebo je jeho veľkosť 0 bajtov", diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index 6819ed3a3b..08f789ff86 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Manjka začasna mapa", "Failed to write to disk" => "Pisanje na disk je spodletelo", "Not enough storage available" => "Na voljo ni dovolj prostora", +"Upload failed" => "Pošiljanje je spodletelo", "Invalid directory." => "Neveljavna mapa.", "Files" => "Datoteke", "Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanja ni mogoče izvesti, saj gre za mapo oziroma datoteko velikosti 0 bajtov.", diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php index b8cf91f4da..73f8ace5c8 100644 --- a/apps/files/l10n/sr.php +++ b/apps/files/l10n/sr.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Недостаје привремена фасцикла", "Failed to write to disk" => "Не могу да пишем на диск", "Not enough storage available" => "Нема довољно простора", +"Upload failed" => "Отпремање није успело", "Invalid directory." => "неисправна фасцикла.", "Files" => "Датотеке", "Unable to upload your file as it is a directory or has 0 bytes" => "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index 20bf77bb60..fbbe1f1591 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "En temporär mapp saknas", "Failed to write to disk" => "Misslyckades spara till disk", "Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt", +"Upload failed" => "Misslyckad uppladdning", "Invalid directory." => "Felaktig mapp.", "Files" => "Filer", "Unable to upload your file as it is a directory or has 0 bytes" => "Kan inte ladda upp din fil eftersom det är en katalog eller har 0 bytes", @@ -34,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "ångra", "_%n folder_::_%n folders_" => array("%n mapp","%n mappar"), "_%n file_::_%n files_" => array("%n fil","%n filer"), +"{dirs} and {files}" => "{dirs} och {files}", "_Uploading %n file_::_Uploading %n files_" => array("Laddar upp %n fil","Laddar upp %n filer"), "files uploading" => "filer laddas upp", "'.' is an invalid file name." => "'.' är ett ogiltigt filnamn.", diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php index fc52c16daf..154e0d6796 100644 --- a/apps/files/l10n/ta_LK.php +++ b/apps/files/l10n/ta_LK.php @@ -7,6 +7,7 @@ $TRANSLATIONS = array( "No file was uploaded" => "எந்த கோப்பும் பதிவேற்றப்படவில்லை", "Missing a temporary folder" => "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", "Failed to write to disk" => "வட்டில் எழுத முடியவில்லை", +"Upload failed" => "பதிவேற்றல் தோல்வியுற்றது", "Files" => "கோப்புகள்", "Unable to upload your file as it is a directory or has 0 bytes" => "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை", "Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php index b65c0bc705..aa8cf4e9b5 100644 --- a/apps/files/l10n/th_TH.php +++ b/apps/files/l10n/th_TH.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "โฟลเดอร์ชั่วคราวเกิดการสูญหาย", "Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", "Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", +"Upload failed" => "อัพโหลดล้มเหลว", "Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", "Files" => "ไฟล์", "Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่ หรือ มีขนาดไฟล์ 0 ไบต์", diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index d317b11d53..dd089757d5 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Geçici dizin eksik", "Failed to write to disk" => "Diske yazılamadı", "Not enough storage available" => "Yeterli disk alanı yok", +"Upload failed" => "Yükleme başarısız", "Invalid directory." => "Geçersiz dizin.", "Files" => "Dosyalar", "Unable to upload your file as it is a directory or has 0 bytes" => "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi", diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index 79a18231d2..781590cff3 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Відсутній тимчасовий каталог", "Failed to write to disk" => "Невдалося записати на диск", "Not enough storage available" => "Місця більше немає", +"Upload failed" => "Помилка завантаження", "Invalid directory." => "Невірний каталог.", "Files" => "Файли", "Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт", diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index 02b184d218..b98a14f6d7 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "Không tìm thấy thư mục tạm", "Failed to write to disk" => "Không thể ghi ", "Not enough storage available" => "Không đủ không gian lưu trữ", +"Upload failed" => "Tải lên thất bại", "Invalid directory." => "Thư mục không hợp lệ", "Files" => "Tập tin", "Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin của bạn ,nó như là một thư mục hoặc có 0 byte", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index fa2e3403f4..59b09ad950 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -13,6 +13,7 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "缺少临时目录", "Failed to write to disk" => "写入磁盘失败", "Not enough storage available" => "没有足够的存储空间", +"Upload failed" => "上传失败", "Invalid directory." => "无效文件夹。", "Files" => "文件", "Unable to upload your file as it is a directory or has 0 bytes" => "无法上传您的文件,文件夹或者空文件", diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php index 6ba8bf35de..21c929f81a 100644 --- a/apps/files/l10n/zh_TW.php +++ b/apps/files/l10n/zh_TW.php @@ -1,11 +1,11 @@ "無法移動 %s - 同名的檔案已經存在", +"Could not move %s - File with this name already exists" => "無法移動 %s ,同名的檔案已經存在", "Could not move %s" => "無法移動 %s", -"Unable to set upload directory." => "無法設定上傳目錄。", +"Unable to set upload directory." => "無法設定上傳目錄", "Invalid Token" => "無效的 token", -"No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。", -"There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功", +"No file was uploaded. Unknown error" => "沒有檔案被上傳,原因未知", +"There is no error, the file uploaded with success" => "一切都順利,檔案上傳成功", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制", "The uploaded file was only partially uploaded" => "只有檔案的一部分被上傳", @@ -13,13 +13,14 @@ $TRANSLATIONS = array( "Missing a temporary folder" => "找不到暫存資料夾", "Failed to write to disk" => "寫入硬碟失敗", "Not enough storage available" => "儲存空間不足", -"Invalid directory." => "無效的資料夾。", +"Upload failed" => "上傳失敗", +"Invalid directory." => "無效的資料夾", "Files" => "檔案", -"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0", +"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案,因為它可能是一個目錄或檔案大小為0", "Not enough space available" => "沒有足夠的可用空間", "Upload cancelled." => "上傳已取消", -"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中。離開此頁面將會取消上傳。", -"URL cannot be empty." => "URL 不能為空白。", +"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中,離開此頁面將會取消上傳。", +"URL cannot be empty." => "URL 不能為空", "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "無效的資料夾名稱,'Shared' 的使用被 ownCloud 保留", "Error" => "錯誤", "Share" => "分享", @@ -34,43 +35,44 @@ $TRANSLATIONS = array( "undo" => "復原", "_%n folder_::_%n folders_" => array("%n 個資料夾"), "_%n file_::_%n files_" => array("%n 個檔案"), +"{dirs} and {files}" => "{dirs} 和 {files}", "_Uploading %n file_::_Uploading %n files_" => array("%n 個檔案正在上傳"), -"files uploading" => "檔案正在上傳中", -"'.' is an invalid file name." => "'.' 是不合法的檔名。", -"File name cannot be empty." => "檔名不能為空。", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 。", +"files uploading" => "檔案上傳中", +"'.' is an invalid file name." => "'.' 是不合法的檔名", +"File name cannot be empty." => "檔名不能為空", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 \\ / < > : \" | ? * 字元", "Your storage is full, files can not be updated or synced anymore!" => "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", "Your storage is almost full ({usedSpacePercent}%)" => "您的儲存空間快要滿了 ({usedSpacePercent}%)", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", "Your download is being prepared. This might take some time if the files are big." => "正在準備您的下載,若您的檔案較大,將會需要更多時間。", "Name" => "名稱", "Size" => "大小", -"Modified" => "修改", +"Modified" => "修改時間", "%s could not be renamed" => "無法重新命名 %s", "Upload" => "上傳", "File handling" => "檔案處理", -"Maximum upload size" => "最大上傳檔案大小", +"Maximum upload size" => "上傳限制", "max. possible: " => "最大允許:", -"Needed for multi-file and folder downloads." => "針對多檔案和目錄下載是必填的。", -"Enable ZIP-download" => "啟用 Zip 下載", +"Needed for multi-file and folder downloads." => "下載多檔案和目錄時,此項是必填的。", +"Enable ZIP-download" => "啟用 ZIP 下載", "0 is unlimited" => "0代表沒有限制", -"Maximum input size for ZIP files" => "針對 ZIP 檔案最大輸入大小", +"Maximum input size for ZIP files" => "ZIP 壓縮前的原始大小限制", "Save" => "儲存", "New" => "新增", "Text file" => "文字檔", "Folder" => "資料夾", "From link" => "從連結", -"Deleted files" => "已刪除的檔案", +"Deleted files" => "回收桶", "Cancel upload" => "取消上傳", -"You don’t have write permissions here." => "您在這裡沒有編輯權。", -"Nothing in here. Upload something!" => "這裡什麼也沒有,上傳一些東西吧!", +"You don’t have write permissions here." => "您在這裡沒有編輯權", +"Nothing in here. Upload something!" => "這裡還沒有東西,上傳一些吧!", "Download" => "下載", -"Unshare" => "取消共享", +"Unshare" => "取消分享", "Delete" => "刪除", "Upload too large" => "上傳過大", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案大小超過伺服器的限制。", "Files are being scanned, please wait." => "正在掃描檔案,請稍等。", -"Current scanning" => "目前掃描", -"Upgrading filesystem cache..." => "正在升級檔案系統快取..." +"Current scanning" => "正在掃描", +"Upgrading filesystem cache..." => "正在升級檔案系統快取…" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/zh_TW.php b/apps/files_sharing/l10n/zh_TW.php index 56d67ea7ce..5cc33fd383 100644 --- a/apps/files_sharing/l10n/zh_TW.php +++ b/apps/files_sharing/l10n/zh_TW.php @@ -1,9 +1,9 @@ "請檢查您的密碼並再試一次。", +"The password is wrong. Try again." => "請檢查您的密碼並再試一次", "Password" => "密碼", "Submit" => "送出", -"Sorry, this link doesn’t seem to work anymore." => "抱歉,這連結看來已經不能用了。", +"Sorry, this link doesn’t seem to work anymore." => "抱歉,此連結已經失效", "Reasons might be:" => "可能的原因:", "the item was removed" => "項目已經移除", "the link expired" => "連結過期", diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php index 0c88d132b5..9dccc773cb 100644 --- a/apps/files_trashbin/l10n/pt_PT.php +++ b/apps/files_trashbin/l10n/pt_PT.php @@ -8,8 +8,8 @@ $TRANSLATIONS = array( "Delete permanently" => "Eliminar permanentemente", "Name" => "Nome", "Deleted" => "Apagado", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), +"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), +"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), "restored" => "Restaurado", "Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!", "Restore" => "Restaurar", diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php index 2dfc484fc7..bfc2fc659d 100644 --- a/apps/files_trashbin/l10n/zh_TW.php +++ b/apps/files_trashbin/l10n/zh_TW.php @@ -11,7 +11,7 @@ $TRANSLATIONS = array( "_%n folder_::_%n folders_" => array("%n 個資料夾"), "_%n file_::_%n files_" => array("%n 個檔案"), "restored" => "已還原", -"Nothing in here. Your trash bin is empty!" => "您的垃圾桶是空的!", +"Nothing in here. Your trash bin is empty!" => "您的回收桶是空的!", "Restore" => "還原", "Delete" => "刪除", "Deleted Files" => "已刪除的檔案" diff --git a/core/l10n/ar.php b/core/l10n/ar.php index 84f076f301..17c3ab293c 100644 --- a/core/l10n/ar.php +++ b/core/l10n/ar.php @@ -1,5 +1,6 @@ "مجموعة", "Category type not provided." => "نوع التصنيف لم يدخل", "No category to add?" => "ألا توجد فئة للإضافة؟", "This category already exists: %s" => "هذا التصنيف موجود مسبقا : %s", diff --git a/core/l10n/ca.php b/core/l10n/ca.php index c389ad0188..a77924b121 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -1,6 +1,7 @@ "%s ha compartit »%s« amb tu", +"group" => "grup", "Category type not provided." => "No s'ha especificat el tipus de categoria.", "No category to add?" => "No voleu afegir cap categoria?", "This category already exists: %s" => "Aquesta categoria ja existeix: %s", diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index d104a9fbe8..1301dae32f 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -1,6 +1,7 @@ "%s s vámi sdílí »%s«", +"group" => "skupina", "Turned on maintenance mode" => "Zapnut režim údržby", "Turned off maintenance mode" => "Vypnut režim údržby", "Updated database" => "Zaktualizována databáze", diff --git a/core/l10n/cy_GB.php b/core/l10n/cy_GB.php index 442970fbb0..1f6c50524b 100644 --- a/core/l10n/cy_GB.php +++ b/core/l10n/cy_GB.php @@ -1,5 +1,6 @@ "grŵp", "Category type not provided." => "Math o gategori heb ei ddarparu.", "No category to add?" => "Dim categori i'w ychwanegu?", "This category already exists: %s" => "Mae'r categori hwn eisoes yn bodoli: %s", diff --git a/core/l10n/da.php b/core/l10n/da.php index 5a1fe65f44..abaea4ba6a 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -1,6 +1,7 @@ "%s delte »%s« med sig", +"group" => "gruppe", "Turned on maintenance mode" => "Startede vedligeholdelsestilstand", "Turned off maintenance mode" => "standsede vedligeholdelsestilstand", "Updated database" => "Opdaterede database", diff --git a/core/l10n/de.php b/core/l10n/de.php index 655305488f..1f205a9db5 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -1,6 +1,7 @@ "%s teilte »%s« mit Ihnen", +"group" => "Gruppe", "Turned on maintenance mode" => "Wartungsmodus eingeschaltet", "Turned off maintenance mode" => "Wartungsmodus ausgeschaltet", "Updated database" => "Datenbank aktualisiert", diff --git a/core/l10n/de_CH.php b/core/l10n/de_CH.php index 2dde9eb536..6e01b3e208 100644 --- a/core/l10n/de_CH.php +++ b/core/l10n/de_CH.php @@ -1,6 +1,7 @@ "%s teilt »%s« mit Ihnen", +"group" => "Gruppe", "Category type not provided." => "Kategorie nicht angegeben.", "No category to add?" => "Keine Kategorie hinzuzufügen?", "This category already exists: %s" => "Die nachfolgende Kategorie existiert bereits: %s", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 1311a76d69..a29fc4547c 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -1,6 +1,7 @@ "%s geteilt »%s« mit Ihnen", +"group" => "Gruppe", "Turned on maintenance mode" => "Wartungsmodus eingeschaltet ", "Turned off maintenance mode" => "Wartungsmodus ausgeschaltet", "Updated database" => "Datenbank aktualisiert", diff --git a/core/l10n/el.php b/core/l10n/el.php index 51a3a68d78..54c13c89bf 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -1,6 +1,7 @@ "Ο %s διαμοιράστηκε μαζί σας το »%s«", +"group" => "ομάδα", "Category type not provided." => "Δεν δώθηκε τύπος κατηγορίας.", "No category to add?" => "Δεν έχετε κατηγορία να προσθέσετε;", "This category already exists: %s" => "Αυτή η κατηγορία υπάρχει ήδη: %s", diff --git a/core/l10n/eo.php b/core/l10n/eo.php index fc688b103a..669f677d46 100644 --- a/core/l10n/eo.php +++ b/core/l10n/eo.php @@ -1,6 +1,7 @@ "%s kunhavigis “%s” kun vi", +"group" => "grupo", "Category type not provided." => "Ne proviziĝis tipon de kategorio.", "No category to add?" => "Ĉu neniu kategorio estas aldonota?", "This category already exists: %s" => "Tiu kategorio jam ekzistas: %s", diff --git a/core/l10n/es.php b/core/l10n/es.php index 9e7f565668..077f677e97 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -1,6 +1,7 @@ "%s compatido »%s« contigo", +"group" => "grupo", "Category type not provided." => "Tipo de categoría no proporcionado.", "No category to add?" => "¿Ninguna categoría para añadir?", "This category already exists: %s" => "Esta categoría ya existe: %s", diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index cd51ba2f44..389251de8a 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -1,6 +1,7 @@ "%s compartió \"%s\" con vos", +"group" => "grupo", "Category type not provided." => "Tipo de categoría no provisto. ", "No category to add?" => "¿Ninguna categoría para añadir?", "This category already exists: %s" => "Esta categoría ya existe: %s", diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php index d9d007819d..5391a14434 100644 --- a/core/l10n/et_EE.php +++ b/core/l10n/et_EE.php @@ -1,6 +1,7 @@ "%s jagas sinuga »%s«", +"group" => "grupp", "Turned on maintenance mode" => "Haldusreziimis", "Turned off maintenance mode" => "Haldusreziim lõpetatud", "Updated database" => "Uuendatud andmebaas", diff --git a/core/l10n/eu.php b/core/l10n/eu.php index ae241e9387..1e0eb36e1e 100644 --- a/core/l10n/eu.php +++ b/core/l10n/eu.php @@ -1,6 +1,7 @@ "%s-ek »%s« zurekin partekatu du", +"group" => "taldea", "Category type not provided." => "Kategoria mota ez da zehaztu.", "No category to add?" => "Ez dago gehitzeko kategoriarik?", "This category already exists: %s" => "Kategoria hau dagoeneko existitzen da: %s", diff --git a/core/l10n/fa.php b/core/l10n/fa.php index a9e17a194a..82356c0ab1 100644 --- a/core/l10n/fa.php +++ b/core/l10n/fa.php @@ -1,6 +1,7 @@ "%s به اشتراک گذاشته شده است »%s« توسط شما", +"group" => "گروه", "Category type not provided." => "نوع دسته بندی ارائه نشده است.", "No category to add?" => "آیا گروه دیگری برای افزودن ندارید", "This category already exists: %s" => "این دسته هم اکنون وجود دارد: %s", diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php index 7efeaa1fac..25f5f466ef 100644 --- a/core/l10n/fi_FI.php +++ b/core/l10n/fi_FI.php @@ -1,6 +1,7 @@ "%s jakoi kohteen »%s« kanssasi", +"group" => "ryhmä", "Turned on maintenance mode" => "Siirrytty ylläpitotilaan", "Turned off maintenance mode" => "Ylläpitotila laitettu pois päältä", "Updated database" => "Tietokanta ajan tasalla", diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 3f85cb1503..81fad25833 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -1,6 +1,7 @@ "%s partagé »%s« avec vous", +"group" => "groupe", "Category type not provided." => "Type de catégorie non spécifié.", "No category to add?" => "Pas de catégorie à ajouter ?", "This category already exists: %s" => "Cette catégorie existe déjà : %s", diff --git a/core/l10n/gl.php b/core/l10n/gl.php index 56027e4cf1..663d769ee9 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -1,6 +1,7 @@ "%s compartiu «%s» con vostede", +"group" => "grupo", "Turned on maintenance mode" => "Modo de mantemento activado", "Turned off maintenance mode" => "Modo de mantemento desactivado", "Updated database" => "Base de datos actualizada", diff --git a/core/l10n/he.php b/core/l10n/he.php index b197a67b11..d5d83fea33 100644 --- a/core/l10n/he.php +++ b/core/l10n/he.php @@ -1,6 +1,7 @@ "%s שיתף/שיתפה איתך את »%s«", +"group" => "קבוצה", "Category type not provided." => "סוג הקטגוריה לא סופק.", "No category to add?" => "אין קטגוריה להוספה?", "This category already exists: %s" => "הקטגוריה הבאה כבר קיימת: %s", diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php index c231d7f9a4..93f96e1784 100644 --- a/core/l10n/hu_HU.php +++ b/core/l10n/hu_HU.php @@ -1,6 +1,7 @@ "%s megosztotta Önnel ezt: »%s«", +"group" => "csoport", "Category type not provided." => "Nincs megadva a kategória típusa.", "No category to add?" => "Nincs hozzáadandó kategória?", "This category already exists: %s" => "Ez a kategória már létezik: %s", diff --git a/core/l10n/id.php b/core/l10n/id.php index fc6cb788fb..0f222918c9 100644 --- a/core/l10n/id.php +++ b/core/l10n/id.php @@ -1,5 +1,6 @@ "grup", "Category type not provided." => "Tipe kategori tidak diberikan.", "No category to add?" => "Tidak ada kategori yang akan ditambahkan?", "This category already exists: %s" => "Kategori ini sudah ada: %s", diff --git a/core/l10n/it.php b/core/l10n/it.php index 63a7545d89..71f6ffdf50 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -1,6 +1,7 @@ "%s ha condiviso «%s» con te", +"group" => "gruppo", "Turned on maintenance mode" => "Modalità di manutenzione attivata", "Turned off maintenance mode" => "Modalità di manutenzione disattivata", "Updated database" => "Database aggiornato", diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index 2ab85f13d3..82e4153367 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -1,6 +1,13 @@ "%sが あなたと »%s«を共有しました", +"group" => "グループ", +"Turned on maintenance mode" => "メンテナンスモードがオンになりました", +"Turned off maintenance mode" => "メンテナンスモードがオフになりました", +"Updated database" => "データベース更新完了", +"Updating filecache, this may take really long..." => "ファイルキャッシュを更新しています、しばらく掛かる恐れがあります...", +"Updated filecache" => "ファイルキャッシュ更新完了", +"... %d%% done ..." => "... %d%% 完了 ...", "Category type not provided." => "カテゴリタイプは提供されていません。", "No category to add?" => "追加するカテゴリはありませんか?", "This category already exists: %s" => "このカテゴリはすでに存在します: %s", diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php index 0f4b23906d..15cacc8b21 100644 --- a/core/l10n/ka_GE.php +++ b/core/l10n/ka_GE.php @@ -1,5 +1,6 @@ "ჯგუფი", "Category type not provided." => "კატეგორიის ტიპი არ არის განხილული.", "No category to add?" => "არ არის კატეგორია დასამატებლად?", "This category already exists: %s" => "კატეგორია უკვე არსებობს: %s", diff --git a/core/l10n/ko.php b/core/l10n/ko.php index c4b6b9f091..0265f38dc0 100644 --- a/core/l10n/ko.php +++ b/core/l10n/ko.php @@ -1,5 +1,6 @@ "그룹", "Category type not provided." => "분류 형식이 제공되지 않았습니다.", "No category to add?" => "추가할 분류가 없습니까?", "This category already exists: %s" => "분류가 이미 존재합니다: %s", diff --git a/core/l10n/lb.php b/core/l10n/lb.php index 8a5a28957c..5f4c415bed 100644 --- a/core/l10n/lb.php +++ b/core/l10n/lb.php @@ -1,6 +1,7 @@ "Den/D' %s huet »%s« mat dir gedeelt", +"group" => "Grupp", "Category type not provided." => "Typ vun der Kategorie net uginn.", "No category to add?" => "Keng Kategorie fir bäizesetzen?", "This category already exists: %s" => "Dës Kategorie existéiert schon: %s", diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index 5db8f6c21a..7b0c3ed4f8 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -1,6 +1,7 @@ "%s pasidalino »%s« su tavimi", +"group" => "grupė", "Category type not provided." => "Kategorija nenurodyta.", "No category to add?" => "Nepridėsite jokios kategorijos?", "This category already exists: %s" => "Ši kategorija jau egzistuoja: %s", diff --git a/core/l10n/lv.php b/core/l10n/lv.php index ddfc600898..57b9186f3c 100644 --- a/core/l10n/lv.php +++ b/core/l10n/lv.php @@ -1,6 +1,7 @@ "%s kopīgots »%s« ar jums", +"group" => "grupa", "Category type not provided." => "Kategorijas tips nav norādīts.", "No category to add?" => "Nav kategoriju, ko pievienot?", "This category already exists: %s" => "Šāda kategorija jau eksistē — %s", diff --git a/core/l10n/mk.php b/core/l10n/mk.php index e2416dc052..6a8ec50061 100644 --- a/core/l10n/mk.php +++ b/core/l10n/mk.php @@ -1,5 +1,6 @@ "група", "Category type not provided." => "Не беше доставен тип на категорија.", "No category to add?" => "Нема категорија да се додаде?", "Object type not provided." => "Не беше доставен тип на објект.", diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php index 393dc0d7d1..132b65daab 100644 --- a/core/l10n/nb_NO.php +++ b/core/l10n/nb_NO.php @@ -1,6 +1,7 @@ "%s delte »%s« med deg", +"group" => "gruppe", "No category to add?" => "Ingen kategorier å legge til?", "This category already exists: %s" => "Denne kategorien finnes allerede: %s", "No categories selected for deletion." => "Ingen kategorier merket for sletting.", diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 6a2d1a03a1..6d5d5dc991 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -1,6 +1,7 @@ "%s deelde »%s« met jou", +"group" => "groep", "Category type not provided." => "Categorie type niet opgegeven.", "No category to add?" => "Geen categorie om toe te voegen?", "This category already exists: %s" => "Deze categorie bestaat al: %s", diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index f73cb96076..942824ecb7 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -1,5 +1,6 @@ "gruppe", "Category type not provided." => "Ingen kategoritype.", "No category to add?" => "Ingen kategori å leggja til?", "This category already exists: %s" => "Denne kategorien finst alt: %s", diff --git a/core/l10n/oc.php b/core/l10n/oc.php index 68bf2f89a2..0ca3cc427a 100644 --- a/core/l10n/oc.php +++ b/core/l10n/oc.php @@ -1,5 +1,6 @@ "grop", "No category to add?" => "Pas de categoria d'ajustar ?", "No categories selected for deletion." => "Pas de categorias seleccionadas per escafar.", "Sunday" => "Dimenge", diff --git a/core/l10n/pl.php b/core/l10n/pl.php index 1188e55531..48f6dff618 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -1,6 +1,7 @@ "%s Współdzielone »%s« z tobą", +"group" => "grupa", "Category type not provided." => "Nie podano typu kategorii.", "No category to add?" => "Brak kategorii do dodania?", "This category already exists: %s" => "Ta kategoria już istnieje: %s", diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index 8db5262e94..84762cde5e 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -1,6 +1,7 @@ "%s compartilhou »%s« com você", +"group" => "grupo", "Category type not provided." => "Tipo de categoria não fornecido.", "No category to add?" => "Nenhuma categoria a adicionar?", "This category already exists: %s" => "Esta categoria já existe: %s", diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index 25ddaa322d..2afb9ef9b3 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -1,6 +1,7 @@ "%s partilhado »%s« contigo", +"group" => "grupo", "Category type not provided." => "Tipo de categoria não fornecido", "No category to add?" => "Nenhuma categoria para adicionar?", "This category already exists: %s" => "A categoria já existe: %s", diff --git a/core/l10n/ro.php b/core/l10n/ro.php index 7e33003bcc..ca0e409f71 100644 --- a/core/l10n/ro.php +++ b/core/l10n/ro.php @@ -1,6 +1,7 @@ "%s Partajat »%s« cu tine de", +"group" => "grup", "Category type not provided." => "Tipul de categorie nu a fost specificat.", "No category to add?" => "Nici o categorie de adăugat?", "This category already exists: %s" => "Această categorie deja există: %s", diff --git a/core/l10n/ru.php b/core/l10n/ru.php index 503ca579ce..d79326aff3 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -1,6 +1,7 @@ "%s поделился »%s« с вами", +"group" => "группа", "Category type not provided." => "Тип категории не предоставлен", "No category to add?" => "Нет категорий для добавления?", "This category already exists: %s" => "Эта категория уже существует: %s", diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php index 475cdf5613..184566b5f1 100644 --- a/core/l10n/si_LK.php +++ b/core/l10n/si_LK.php @@ -1,5 +1,6 @@ "කණ්ඩායම", "No categories selected for deletion." => "මකා දැමීම සඳහා ප්‍රවර්ගයන් තෝරා නොමැත.", "Sunday" => "ඉරිදා", "Monday" => "සඳුදා", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index 82745d617e..ed061068b4 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -1,6 +1,7 @@ "%s s Vami zdieľa »%s«", +"group" => "skupina", "Turned on maintenance mode" => "Mód údržby zapnutý", "Turned off maintenance mode" => "Mód údržby vypnutý", "Updated database" => "Databáza aktualizovaná", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index 0b72f1dc4e..460ca99eea 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -1,6 +1,7 @@ "%s je delil »%s« z vami", +"group" => "skupina", "Category type not provided." => "Vrsta kategorije ni podana.", "No category to add?" => "Ali ni kategorije za dodajanje?", "This category already exists: %s" => "Kategorija že obstaja: %s", diff --git a/core/l10n/sr.php b/core/l10n/sr.php index 3de06c7088..89c13c4925 100644 --- a/core/l10n/sr.php +++ b/core/l10n/sr.php @@ -1,5 +1,6 @@ "група", "Category type not provided." => "Врста категорије није унет.", "No category to add?" => "Додати још неку категорију?", "Object type not provided." => "Врста објекта није унета.", diff --git a/core/l10n/sv.php b/core/l10n/sv.php index 74d285a35a..9bfd91d269 100644 --- a/core/l10n/sv.php +++ b/core/l10n/sv.php @@ -1,6 +1,7 @@ "%s delade »%s« med dig", +"group" => "Grupp", "Turned on maintenance mode" => "Aktiverade underhållsläge", "Turned off maintenance mode" => "Deaktiverade underhållsläge", "Updated database" => "Uppdaterade databasen", diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php index 3fc461d428..a1a286275e 100644 --- a/core/l10n/ta_LK.php +++ b/core/l10n/ta_LK.php @@ -1,5 +1,6 @@ "குழு", "Category type not provided." => "பிரிவு வகைகள் வழங்கப்படவில்லை", "No category to add?" => "சேர்ப்பதற்கான வகைகள் இல்லையா?", "Object type not provided." => "பொருள் வகை வழங்கப்படவில்லை", diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php index bb5181fd9e..90fec245c9 100644 --- a/core/l10n/th_TH.php +++ b/core/l10n/th_TH.php @@ -1,5 +1,6 @@ "กลุ่มผู้ใช้งาน", "Category type not provided." => "ยังไม่ได้ระบุชนิดของหมวดหมู่", "No category to add?" => "ไม่มีหมวดหมู่ที่ต้องการเพิ่ม?", "Object type not provided." => "ชนิดของวัตถุยังไม่ได้ถูกระบุ", diff --git a/core/l10n/tr.php b/core/l10n/tr.php index 6dd5405795..8b6c261d64 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -1,6 +1,7 @@ "%s sizinle »%s« paylaşımında bulundu", +"group" => "grup", "Category type not provided." => "Kategori türü girilmedi.", "No category to add?" => "Eklenecek kategori yok?", "This category already exists: %s" => "Bu kategori zaten mevcut: %s", diff --git a/core/l10n/ug.php b/core/l10n/ug.php index eb16e841c6..e77718233d 100644 --- a/core/l10n/ug.php +++ b/core/l10n/ug.php @@ -1,5 +1,6 @@ "گۇرۇپپا", "Sunday" => "يەكشەنبە", "Monday" => "دۈشەنبە", "Tuesday" => "سەيشەنبە", diff --git a/core/l10n/uk.php b/core/l10n/uk.php index 6fcb23d0a3..8e74855dd0 100644 --- a/core/l10n/uk.php +++ b/core/l10n/uk.php @@ -1,5 +1,6 @@ "група", "Category type not provided." => "Не вказано тип категорії.", "No category to add?" => "Відсутні категорії для додавання?", "This category already exists: %s" => "Ця категорія вже існує: %s", diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 305839b476..1ccf03c0aa 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -1,5 +1,6 @@ "nhóm", "Category type not provided." => "Kiểu hạng mục không được cung cấp.", "No category to add?" => "Không có danh mục được thêm?", "This category already exists: %s" => "Danh mục này đã tồn tại: %s", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 08d70dfee6..ddcc902c8d 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -1,6 +1,7 @@ "%s 向您分享了 »%s«", +"group" => "组", "Turned on maintenance mode" => "启用维护模式", "Turned off maintenance mode" => "关闭维护模式", "Updated database" => "数据库已更新", diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index fabec7537d..c25a58dc8e 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -1,10 +1,17 @@ "%s 與您分享了 %s", +"group" => "群組", +"Turned on maintenance mode" => "已啓用維護模式", +"Turned off maintenance mode" => "已停用維護模式", +"Updated database" => "已更新資料庫", +"Updating filecache, this may take really long..." => "更新檔案快取,這可能要很久…", +"Updated filecache" => "已更新檔案快取", +"... %d%% done ..." => "已完成 %d%%", "Category type not provided." => "未提供分類類型。", "No category to add?" => "沒有可增加的分類?", -"This category already exists: %s" => "分類已經存在: %s", -"Object type not provided." => "不支援的物件類型", +"This category already exists: %s" => "分類已經存在:%s", +"Object type not provided." => "未指定物件類型", "%s ID not provided." => "未提供 %s ID 。", "Error adding %s to favorites." => "加入 %s 到最愛時發生錯誤。", "No categories selected for deletion." => "沒有選擇要刪除的分類。", @@ -56,20 +63,20 @@ $TRANSLATIONS = array( "Error while changing permissions" => "修改權限時發生錯誤", "Shared with you and the group {group} by {owner}" => "由 {owner} 分享給您和 {group}", "Shared with you by {owner}" => "{owner} 已經和您分享", -"Share with" => "與...分享", +"Share with" => "分享給別人", "Share with link" => "使用連結分享", "Password protect" => "密碼保護", "Password" => "密碼", "Allow Public Upload" => "允許任何人上傳", "Email link to person" => "將連結 email 給別人", "Send" => "寄出", -"Set expiration date" => "設置到期日", +"Set expiration date" => "指定到期日", "Expiration date" => "到期日", "Share via email:" => "透過電子郵件分享:", "No people found" => "沒有找到任何人", "Resharing is not allowed" => "不允許重新分享", "Shared in {item} with {user}" => "已和 {user} 分享 {item}", -"Unshare" => "取消共享", +"Unshare" => "取消分享", "can edit" => "可編輯", "access control" => "存取控制", "create" => "建立", @@ -77,15 +84,15 @@ $TRANSLATIONS = array( "delete" => "刪除", "share" => "分享", "Password protected" => "受密碼保護", -"Error unsetting expiration date" => "解除過期日設定失敗", -"Error setting expiration date" => "錯誤的到期日設定", -"Sending ..." => "正在傳送...", +"Error unsetting expiration date" => "取消到期日設定失敗", +"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 。", "%s password reset" => "%s 密碼重設", "Use the following link to reset your password: {link}" => "請至以下連結重設您的密碼: {link}", -"The link to reset your password has been sent to your email.
    If you do not receive it within a reasonable amount of time, check your spam/junk folders.
    If it is not there ask your local administrator ." => "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被放到垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。", +"The link to reset your password has been sent to your email.
    If you do not receive it within a reasonable amount of time, check your spam/junk folders.
    If it is not there ask your local administrator ." => "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被歸為垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。", "Request failed!
    Did you make sure your email/username was right?" => "請求失敗!
    您確定填入的電子郵件地址或是帳號名稱是正確的嗎?", "You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到您的電子郵件信箱。", "Username" => "使用者名稱", @@ -102,8 +109,8 @@ $TRANSLATIONS = array( "Admin" => "管理", "Help" => "說明", "Access forbidden" => "存取被拒", -"Cloud not found" => "未發現雲端", -"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\nCheers!" => "嗨,\n\n通知您,%s 與您分享了 %s 。\n看一下:%s", +"Cloud not found" => "找不到網頁", +"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\nCheers!" => "嗨,\n\n通知您一聲,%s 與您分享了 %s 。\n您可以到 %s 看看", "Edit categories" => "編輯分類", "Add" => "增加", "Security Warning" => "安全性警告", @@ -115,7 +122,7 @@ $TRANSLATIONS = array( "For information how to properly configure your server, please see the documentation." => "請參考說明文件以瞭解如何正確設定您的伺服器。", "Create an admin account" => "建立一個管理者帳號", "Advanced" => "進階", -"Data folder" => "資料夾", +"Data folder" => "資料儲存位置", "Configure the database" => "設定資料庫", "will be used" => "將會使用", "Database user" => "資料庫使用者", @@ -132,8 +139,8 @@ $TRANSLATIONS = array( "Lost your password?" => "忘記密碼?", "remember" => "記住", "Log in" => "登入", -"Alternative Logins" => "替代登入方法", -"Hey there,

    just letting you know that %s shared »%s« with you.
    View it!

    Cheers!" => "嗨,

    通知您,%s 與您分享了 %s ,
    看一下吧", -"Updating ownCloud to version %s, this may take a while." => "正在將 Owncloud 升級至版本 %s ,這可能需要一點時間。" +"Alternative Logins" => "其他登入方法", +"Hey there,

    just letting you know that %s shared »%s« with you.
    View it!

    Cheers!" => "嗨,

    通知您一聲,%s 與您分享了 %s ,
    看一下吧", +"Updating ownCloud to version %s, this may take a while." => "正在將 ownCloud 升級至版本 %s ,這可能需要一點時間。" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/l10n/ar/core.po b/l10n/ar/core.po index c959485794..47fc1f2571 100644 --- a/l10n/ar/core.po +++ b/l10n/ar/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "مجموعة" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ar/files.po b/l10n/ar/files.po index b8086649e4..39c537e3a5 100644 --- a/l10n/ar/files.po +++ b/l10n/ar/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# ibrahim_9090 , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 13:30+0000\n" +"Last-Translator: ibrahim_9090 \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" @@ -29,11 +30,11 @@ msgstr "فشل في نقل %s" #: ajax/upload.php:16 ajax/upload.php:45 msgid "Unable to set upload directory." -msgstr "" +msgstr "غير قادر على تحميل المجلد" #: ajax/upload.php:22 msgid "Invalid Token" -msgstr "" +msgstr "علامة غير صالحة" #: ajax/upload.php:59 msgid "No file was uploaded. Unknown error" @@ -76,7 +77,7 @@ msgstr "لا يوجد مساحة تخزينية كافية" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "عملية الرفع فشلت" #: ajax/upload.php:127 msgid "Invalid directory." @@ -92,7 +93,7 @@ msgstr "فشل في رفع ملفاتك , إما أنها مجلد أو حجمه #: js/file-upload.js:24 msgid "Not enough space available" -msgstr "" +msgstr "لا توجد مساحة كافية" #: js/file-upload.js:64 msgid "Upload cancelled." @@ -109,9 +110,9 @@ msgstr "عنوان ال URL لا يجوز أن يكون فارغا." #: js/file-upload.js:244 lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "تسمية ملف غير صالحة. استخدام الاسم \"shared\" محجوز بواسطة ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "خطأ" @@ -127,35 +128,35 @@ msgstr "حذف بشكل دائم" msgid "Rename" msgstr "إعادة تسميه" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "قيد الانتظار" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} موجود مسبقا" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "استبدال" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "اقترح إسم" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "إلغاء" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "استبدل {new_name} بـ {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "تراجع" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" @@ -165,7 +166,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" @@ -175,11 +176,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} و {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" @@ -189,9 +190,9 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" -msgstr "" +msgstr "يتم تحميل الملفات" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -219,7 +220,7 @@ msgstr "مساحتك التخزينية امتلأت تقريبا " msgid "" "Encryption was disabled but your files are still encrypted. Please go to " "your personal settings to decrypt your files." -msgstr "" +msgstr "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك." #: js/files.js:245 msgid "" @@ -227,15 +228,15 @@ msgid "" "big." msgstr "جاري تجهيز عملية التحميل. قد تستغرق بعض الوقت اذا كان حجم الملفات كبير." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "اسم" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "حجم" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "معدل" @@ -312,33 +313,33 @@ msgstr "لا تملك صلاحيات الكتابة هنا." msgid "Nothing in here. Upload something!" msgstr "لا يوجد شيء هنا. إرفع بعض الملفات!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "تحميل" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "إلغاء مشاركة" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "إلغاء" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "حجم الترفيع أعلى من المسموح" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "يرجى الانتظار , جاري فحص الملفات ." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "الفحص الحالي" diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po index a57ea88b76..3d91bd55b8 100644 --- a/l10n/bg_BG/files.po +++ b/l10n/bg_BG/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -76,7 +76,7 @@ msgstr "" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Качването е неуспешно" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Грешка" @@ -127,57 +127,57 @@ msgstr "Изтриване завинаги" msgid "Rename" msgstr "Преименуване" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Чакащо" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "препокриване" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "отказ" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "възтановяване" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "" @@ -215,15 +215,15 @@ msgid "" "big." msgstr "" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Име" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Размер" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Променено" @@ -300,33 +300,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "Няма нищо тук. Качете нещо." -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Изтегляне" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Изтриване" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Файлът който сте избрали за качване е прекалено голям" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файловете които се опитвате да качите са по-големи от позволеното за сървъра." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Файловете се претърсват, изчакайте." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "" diff --git a/l10n/ca/core.po b/l10n/ca/core.po index 21836c30a8..6585814d74 100644 --- a/l10n/ca/core.po +++ b/l10n/ca/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s ha compartit »%s« amb tu" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grup" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index 8bedc7b361..ecc26a9b13 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "No hi ha prou espai disponible" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "La pujada ha fallat" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "La URL no pot ser buida" 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/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Error" @@ -129,57 +129,57 @@ msgstr "Esborra permanentment" msgid "Rename" msgstr "Reanomena" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendent" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} ja existeix" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "substitueix" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugereix un nom" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancel·la" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "s'ha substituït {old_name} per {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "desfés" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n carpeta" msgstr[1] "%n carpetes" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n fitxer" msgstr[1] "%n fitxers" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Pujant %n fitxer" msgstr[1] "Pujant %n fitxers" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fitxers pujant" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "S'està preparant la baixada. Pot trigar una estona si els fitxers són grans." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nom" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Mida" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificat" @@ -302,33 +302,33 @@ msgstr "No teniu permisos d'escriptura aquí." msgid "Nothing in here. Upload something!" msgstr "Res per aquí. Pugeu alguna cosa!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Baixa" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Deixa de compartir" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Esborra" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "La pujada és massa gran" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "S'estan escanejant els fitxers, espereu" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Actualment escanejant" diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po index 41edc0ee8a..3689101c5d 100644 --- a/l10n/cs_CZ/core.po +++ b/l10n/cs_CZ/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 08:00+0000\n" +"Last-Translator: pstast \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" @@ -29,7 +29,7 @@ msgstr "%s s vámi sdílí »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "skupina" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po index 94cdb7b62b..503fc96412 100644 --- a/l10n/cs_CZ/files.po +++ b/l10n/cs_CZ/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 08:10+0000\n" +"Last-Translator: pstast \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" @@ -80,7 +80,7 @@ msgstr "Nedostatek dostupného úložného prostoru" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Odesílání selhalo" #: ajax/upload.php:127 msgid "Invalid directory." @@ -115,7 +115,7 @@ msgstr "URL nemůže být prázdná." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Název složky nelze použít. Použití názvu 'Shared' je ownCloudem rezervováno" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Chyba" @@ -131,60 +131,60 @@ msgstr "Trvale odstranit" msgid "Rename" msgstr "Přejmenovat" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Nevyřízené" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} již existuje" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "nahradit" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "navrhnout název" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "zrušit" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "nahrazeno {new_name} s {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "vrátit zpět" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n složka" msgstr[1] "%n složky" msgstr[2] "%n složek" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n soubor" msgstr[1] "%n soubory" msgstr[2] "%n souborů" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} a {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Nahrávám %n soubor" msgstr[1] "Nahrávám %n soubory" msgstr[2] "Nahrávám %n souborů" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "soubory se odesílají" @@ -222,15 +222,15 @@ msgid "" "big." msgstr "Vaše soubory ke stažení se připravují. Pokud jsou velké, může to chvíli trvat." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Název" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Velikost" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Upraveno" @@ -307,33 +307,33 @@ msgstr "Nemáte zde práva zápisu." msgid "Nothing in here. Upload something!" msgstr "Žádný obsah. Nahrajte něco." -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Stáhnout" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Zrušit sdílení" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Smazat" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Odesílaný soubor je příliš velký" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Soubory se prohledávají, prosím čekejte." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Aktuální prohledávání" diff --git a/l10n/cy_GB/core.po b/l10n/cy_GB/core.po index 638507e646..700bfe9772 100644 --- a/l10n/cy_GB/core.po +++ b/l10n/cy_GB/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" @@ -25,7 +25,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grŵp" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/cy_GB/files.po b/l10n/cy_GB/files.po index c1e83e56cc..7507b666b0 100644 --- a/l10n/cy_GB/files.po +++ b/l10n/cy_GB/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" @@ -76,7 +76,7 @@ msgstr "Dim digon o le storio ar gael" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Methwyd llwytho i fyny" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "Does dim hawl cael URL gwag." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Gwall" @@ -127,35 +127,35 @@ msgstr "Dileu'n barhaol" msgid "Rename" msgstr "Ailenwi" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "I ddod" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} yn bodoli'n barod" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "amnewid" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "awgrymu enw" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "diddymu" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "newidiwyd {new_name} yn lle {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "dadwneud" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" @@ -163,7 +163,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" @@ -171,11 +171,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" @@ -183,7 +183,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "ffeiliau'n llwytho i fyny" @@ -221,15 +221,15 @@ msgid "" "big." msgstr "Wrthi'n paratoi i lwytho i lawr. Gall gymryd peth amser os yw'r ffeiliau'n fawr." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Enw" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Maint" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Addaswyd" @@ -306,33 +306,33 @@ msgstr "Nid oes gennych hawliau ysgrifennu fan hyn." msgid "Nothing in here. Upload something!" msgstr "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Llwytho i lawr" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Dad-rannu" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Dileu" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Maint llwytho i fyny'n rhy fawr" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Arhoswch, mae ffeiliau'n cael eu sganio." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Sganio cyfredol" diff --git a/l10n/da/core.po b/l10n/da/core.po index 5c71f405c5..adc2e0f26c 100644 --- a/l10n/da/core.po +++ b/l10n/da/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -28,7 +28,7 @@ msgstr "%s delte »%s« med sig" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/da/files.po b/l10n/da/files.po index 3f9da02827..fb180ee25b 100644 --- a/l10n/da/files.po +++ b/l10n/da/files.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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 17:27+0000\n" +"Last-Translator: Sappe\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" @@ -79,7 +79,7 @@ msgstr "Der er ikke nok plads til rådlighed" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Upload fejlede" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "URLen kan ikke være tom." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ugyldigt mappenavn. Brug af 'Shared' er forbeholdt af ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fejl" @@ -130,57 +130,57 @@ msgstr "Slet permanent" msgid "Rename" msgstr "Omdøb" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Afventer" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} eksisterer allerede" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "erstat" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "fortryd" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "erstattede {new_name} med {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "fortryd" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n mappe" msgstr[1] "%n mapper" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n fil" msgstr[1] "%n filer" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} og {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Uploader %n fil" msgstr[1] "Uploader %n filer" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "uploader filer" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Dit download forberedes. Dette kan tage lidt tid ved større filer." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Navn" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Størrelse" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Ændret" @@ -303,33 +303,33 @@ msgstr "Du har ikke skriverettigheder her." msgid "Nothing in here. Upload something!" msgstr "Her er tomt. Upload noget!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Download" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Fjern deling" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Slet" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Upload er for stor" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Filerne bliver indlæst, vent venligst." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Indlæser" diff --git a/l10n/de/core.po b/l10n/de/core.po index 23574ea981..0a57201528 100644 --- a/l10n/de/core.po +++ b/l10n/de/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -32,7 +32,7 @@ msgstr "%s teilte »%s« mit Ihnen" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "Gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/de/files.po b/l10n/de/files.po index eb931d3921..21a1d8cafb 100644 --- a/l10n/de/files.po +++ b/l10n/de/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 18:00+0000\n" +"Last-Translator: Mario Siegmann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,7 +82,7 @@ msgstr "Nicht genug Speicher vorhanden." #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Hochladen fehlgeschlagen" #: ajax/upload.php:127 msgid "Invalid directory." @@ -117,7 +117,7 @@ msgstr "Die URL darf nicht leer sein." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Der Ordnername ist ungültig. Nur ownCloud kann den Ordner \"Shared\" anlegen" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fehler" @@ -133,57 +133,57 @@ msgstr "Endgültig löschen" msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ausstehend" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Namen vorschlagen" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} ersetzt durch {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n Ordner" msgstr[1] "%n Ordner" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n Datei" msgstr[1] "%n Dateien" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} und {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n Datei wird hochgeladen" msgstr[1] "%n Dateien werden hochgeladen" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "Dateien werden hoch geladen" @@ -221,15 +221,15 @@ msgid "" "big." msgstr "Dein Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Größe" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Geändert" @@ -306,33 +306,33 @@ msgstr "Du hast hier keine Schreib-Berechtigung." msgid "Nothing in here. Upload something!" msgstr "Alles leer. Lade etwas hoch!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Freigabe aufheben" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Löschen" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Der Upload ist zu groß" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Scanne" diff --git a/l10n/de_CH/core.po b/l10n/de_CH/core.po index 47c4fa12e7..9469c95384 100644 --- a/l10n/de_CH/core.po +++ b/l10n/de_CH/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n" "MIME-Version: 1.0\n" @@ -33,7 +33,7 @@ msgstr "%s teilt »%s« mit Ihnen" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "Gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/de_CH/files.po b/l10n/de_CH/files.po index a1c58799f3..95d27fc4a6 100644 --- a/l10n/de_CH/files.po +++ b/l10n/de_CH/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n" "MIME-Version: 1.0\n" @@ -85,7 +85,7 @@ msgstr "Nicht genug Speicher vorhanden." #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Hochladen fehlgeschlagen" #: ajax/upload.php:127 msgid "Invalid directory." @@ -120,7 +120,7 @@ msgstr "Die URL darf nicht leer sein." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ungültiger Ordnername. Die Verwendung von «Shared» ist ownCloud vorbehalten." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fehler" @@ -136,57 +136,57 @@ msgstr "Endgültig löschen" msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ausstehend" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Namen vorschlagen" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} wurde ersetzt durch {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "%n Ordner" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "%n Dateien" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n Datei wird hochgeladen" msgstr[1] "%n Dateien werden hochgeladen" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "Dateien werden hoch geladen" @@ -224,15 +224,15 @@ msgid "" "big." msgstr "Ihr Download wird vorbereitet. Dies kann bei grösseren Dateien etwas dauern." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Grösse" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Geändert" @@ -309,33 +309,33 @@ msgstr "Sie haben hier keine Schreib-Berechtigungen." msgid "Nothing in here. Upload something!" msgstr "Alles leer. Laden Sie etwas hoch!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Freigabe aufheben" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Löschen" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Der Upload ist zu gross" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Scanne" diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index 1a3f292dc0..000f19fdda 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" @@ -32,7 +32,7 @@ msgstr "%s geteilt »%s« mit Ihnen" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "Gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 1282d6306c..cf3e5f3eb6 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -7,6 +7,7 @@ # SteinQuadrat, 2013 # I Robot , 2013 # Marcel Kühlhorn , 2013 +# Mario Siegmann , 2013 # traductor , 2013 # noxin , 2013 # Mirodin , 2013 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 18:00+0000\n" +"Last-Translator: Mario Siegmann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -84,7 +85,7 @@ msgstr "Nicht genug Speicher vorhanden." #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Hochladen fehlgeschlagen" #: ajax/upload.php:127 msgid "Invalid directory." @@ -119,7 +120,7 @@ msgstr "Die URL darf nicht leer sein." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ungültiger Ordnername. Die Verwendung von \"Shared\" ist ownCloud vorbehalten." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fehler" @@ -135,57 +136,57 @@ msgstr "Endgültig löschen" msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ausstehend" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Namen vorschlagen" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} wurde ersetzt durch {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n Ordner" msgstr[1] "%n Ordner" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n Datei" msgstr[1] "%n Dateien" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} und {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n Datei wird hoch geladen" msgstr[1] "%n Dateien werden hoch geladen" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "Dateien werden hoch geladen" @@ -223,15 +224,15 @@ msgid "" "big." msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Größe" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Geändert" @@ -308,33 +309,33 @@ msgstr "Sie haben hier keine Schreib-Berechtigungen." msgid "Nothing in here. Upload something!" msgstr "Alles leer. Laden Sie etwas hoch!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Freigabe aufheben" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Löschen" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Der Upload ist zu groß" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Scanne" diff --git a/l10n/el/core.po b/l10n/el/core.po index 31ff37b3ee..ca0b80f304 100644 --- a/l10n/el/core.po +++ b/l10n/el/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -31,7 +31,7 @@ msgstr "Ο %s διαμοιράστηκε μαζί σας το »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "ομάδα" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/el/files.po b/l10n/el/files.po index 50dcd3f947..bd017bcd8e 100644 --- a/l10n/el/files.po +++ b/l10n/el/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "Μη επαρκής διαθέσιμος αποθηκευτικός χώ #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Η μεταφόρτωση απέτυχε" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "Η URL δεν μπορεί να είναι κενή." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Μη έγκυρο όνομα φακέλου. Η χρήση του 'Κοινόχρηστος' χρησιμοποιείται από το ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Σφάλμα" @@ -130,57 +130,57 @@ msgstr "Μόνιμη διαγραφή" msgid "Rename" msgstr "Μετονομασία" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Εκκρεμεί" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} υπάρχει ήδη" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "αντικατέστησε" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "συνιστώμενο όνομα" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "ακύρωση" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "αντικαταστάθηκε το {new_name} με {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "αναίρεση" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n φάκελος" msgstr[1] "%n φάκελοι" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n αρχείο" msgstr[1] "%n αρχεία" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Ανέβασμα %n αρχείου" msgstr[1] "Ανέβασμα %n αρχείων" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "αρχεία ανεβαίνουν" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Όνομα" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Μέγεθος" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Τροποποιήθηκε" @@ -303,33 +303,33 @@ msgstr "Δεν έχετε δικαιώματα εγγραφής εδώ." msgid "Nothing in here. Upload something!" msgstr "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Λήψη" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Σταμάτημα διαμοιρασμού" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Διαγραφή" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Πολύ μεγάλο αρχείο προς αποστολή" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Τρέχουσα ανίχνευση" diff --git a/l10n/en_GB/core.po b/l10n/en_GB/core.po index 26e1f3c14a..95570ce896 100644 --- a/l10n/en_GB/core.po +++ b/l10n/en_GB/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:40+0000\n" "Last-Translator: mnestis \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/en_GB/files.po b/l10n/en_GB/files.po index 04300969e0..f7d558ebe2 100644 --- a/l10n/en_GB/files.po +++ b/l10n/en_GB/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:40+0000\n" "Last-Translator: mnestis \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -112,7 +112,7 @@ msgstr "URL cannot be empty." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Error" @@ -128,57 +128,57 @@ msgstr "Delete permanently" msgid "Rename" msgstr "Rename" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pending" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} already exists" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "replace" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "suggest name" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancel" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "replaced {new_name} with {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "undo" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n folder" msgstr[1] "%n folders" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n file" msgstr[1] "%n files" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "{dirs} and {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Uploading %n file" msgstr[1] "Uploading %n files" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "files uploading" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "Your download is being prepared. This might take some time if the files are big." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Size" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modified" @@ -301,33 +301,33 @@ msgstr "You don’t have write permission here." msgid "Nothing in here. Upload something!" msgstr "Nothing in here. Upload something!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Download" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Unshare" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Delete" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Upload too large" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "The files you are trying to upload exceed the maximum size for file uploads on this server." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Files are being scanned, please wait." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Current scanning" diff --git a/l10n/eo/core.po b/l10n/eo/core.po index 1c4e9c3541..dd1d6ebc5e 100644 --- a/l10n/eo/core.po +++ b/l10n/eo/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s kunhavigis “%s” kun vi" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/eo/files.po b/l10n/eo/files.po index af8d82e0aa..3db69832be 100644 --- a/l10n/eo/files.po +++ b/l10n/eo/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Ne haveblas sufiĉa memoro" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Alŝuto malsukcesis" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL ne povas esti malplena." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nevalida dosierujnomo. La uzo de “Shared” estas rezervita de ownCloud." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Eraro" @@ -128,57 +128,57 @@ msgstr "Forigi por ĉiam" msgid "Rename" msgstr "Alinomigi" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Traktotaj" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} jam ekzistas" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "anstataŭigi" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugesti nomon" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "nuligi" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "anstataŭiĝis {new_name} per {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "malfari" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "dosieroj estas alŝutataj" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "Via elŝuto pretiĝatas. Ĉi tio povas daŭri iom da tempo se la dosieroj grandas." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nomo" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Grando" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modifita" @@ -301,33 +301,33 @@ msgstr "Vi ne havas permeson skribi ĉi tie." msgid "Nothing in here. Upload something!" msgstr "Nenio estas ĉi tie. Alŝutu ion!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Elŝuti" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Malkunhavigi" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Forigi" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Alŝuto tro larĝa" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Dosieroj estas skanataj, bonvolu atendi." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Nuna skano" diff --git a/l10n/es/core.po b/l10n/es/core.po index d700f04472..4a006b413d 100644 --- a/l10n/es/core.po +++ b/l10n/es/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -33,7 +33,7 @@ msgstr "%s compatido »%s« contigo" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/es/files.po b/l10n/es/files.po index 764ab8c2f2..150143b933 100644 --- a/l10n/es/files.po +++ b/l10n/es/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -81,7 +81,7 @@ msgstr "No hay suficiente espacio disponible" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Error en la subida" #: ajax/upload.php:127 msgid "Invalid directory." @@ -116,7 +116,7 @@ msgstr "La URL no puede estar vacía." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nombre de carpeta invalido. El uso de \"Shared\" está reservado por ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Error" @@ -132,57 +132,57 @@ msgstr "Eliminar permanentemente" msgid "Rename" msgstr "Renombrar" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendiente" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "deshacer" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "subiendo archivos" @@ -220,15 +220,15 @@ msgid "" "big." msgstr "Su descarga está siendo preparada. Esto puede tardar algún tiempo si los archivos son grandes." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nombre" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamaño" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificado" @@ -305,33 +305,33 @@ msgstr "No tiene permisos de escritura aquí." msgid "Nothing in here. Upload something!" msgstr "No hay nada aquí. ¡Suba algo!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Dejar de compartir" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Eliminar" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Subida demasido grande" -#: templates/index.php:107 +#: templates/index.php:110 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 en este servidor." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Los archivos están siendo escaneados, por favor espere." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Escaneo actual" diff --git a/l10n/es/lib.po b/l10n/es/lib.po index 45ab92b80c..43f652d3a5 100644 --- a/l10n/es/lib.po +++ b/l10n/es/lib.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Dharth , 2013 # pablomillaquen , 2013 # xhiena , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 23:40+0000\n" +"Last-Translator: Dharth \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" @@ -24,11 +25,11 @@ msgstr "" msgid "" "App \"%s\" can't be installed because it is not compatible with this version" " of ownCloud." -msgstr "" +msgstr "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión de ownCloud" #: app.php:250 msgid "No app name specified" -msgstr "" +msgstr "No se ha especificado nombre de la aplicación" #: app.php:361 msgid "Help" @@ -88,44 +89,44 @@ msgstr "Descargue los archivos en trozos más pequeños, por separado o solicít #: installer.php:63 msgid "No source specified when installing app" -msgstr "" +msgstr "No se ha especificado origen cuando se ha instalado la aplicación" #: installer.php:70 msgid "No href specified when installing app from http" -msgstr "" +msgstr "No href especificado cuando se ha instalado la aplicación" #: installer.php:75 msgid "No path specified when installing app from local file" -msgstr "" +msgstr "Sin path especificado cuando se ha instalado la aplicación desde el fichero local" #: installer.php:89 #, php-format msgid "Archives of type %s are not supported" -msgstr "" +msgstr "Ficheros de tipo %s no son soportados" #: installer.php:103 msgid "Failed to open archive when installing app" -msgstr "" +msgstr "Fallo de apertura de fichero mientras se instala la aplicación" #: installer.php:123 msgid "App does not provide an info.xml file" -msgstr "" +msgstr "La aplicación no suministra un fichero info.xml" #: installer.php:129 msgid "App can't be installed because of not allowed code in the App" -msgstr "" +msgstr "La aplicación no puede ser instalada por tener código no autorizado en la aplicación" #: installer.php:138 msgid "" "App can't be installed because it is not compatible with this version of " "ownCloud" -msgstr "" +msgstr "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud" #: installer.php:144 msgid "" "App can't be installed because it contains the true tag " "which is not allowed for non shipped apps" -msgstr "" +msgstr "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n\nque no está permitida para aplicaciones no distribuidas" #: installer.php:150 msgid "" @@ -266,51 +267,51 @@ msgstr "Su servidor web aún no está configurado adecuadamente para permitir si msgid "Please double check the installation guides." msgstr "Por favor, vuelva a comprobar las guías de instalación." -#: template/functions.php:80 +#: template/functions.php:96 msgid "seconds ago" msgstr "hace segundos" -#: template/functions.php:81 +#: template/functions.php:97 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:82 +#: template/functions.php:98 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:83 +#: template/functions.php:99 msgid "today" msgstr "hoy" -#: template/functions.php:84 +#: template/functions.php:100 msgid "yesterday" msgstr "ayer" -#: template/functions.php:85 +#: template/functions.php:101 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:86 +#: template/functions.php:102 msgid "last month" msgstr "mes pasado" -#: template/functions.php:87 +#: template/functions.php:103 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:88 +#: template/functions.php:104 msgid "last year" msgstr "año pasado" -#: template/functions.php:89 +#: template/functions.php:105 msgid "years ago" msgstr "hace años" diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po index ee3f80addf..6dd2898c49 100644 --- a/l10n/es_AR/core.po +++ b/l10n/es_AR/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "%s compartió \"%s\" con vos" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po index 9e7e5a0922..3a53061ec6 100644 --- a/l10n/es_AR/files.po +++ b/l10n/es_AR/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "No hay suficiente almacenamiento" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Error al subir el archivo" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "La URL no puede estar vacía" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nombre de directorio inválido. El uso de \"Shared\" está reservado por ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Error" @@ -130,57 +130,57 @@ msgstr "Borrar permanentemente" msgid "Rename" msgstr "Cambiar nombre" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendientes" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "se reemplazó {new_name} con {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "deshacer" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "Subiendo archivos" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Tu descarga se está preparando. Esto puede demorar si los archivos son muy grandes." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nombre" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamaño" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificado" @@ -303,33 +303,33 @@ msgstr "No tenés permisos de escritura acá." msgid "Nothing in here. Upload something!" msgstr "No hay nada. ¡Subí contenido!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Dejar de compartir" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Borrar" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "El tamaño del archivo que querés subir es demasiado grande" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Se están escaneando los archivos, por favor esperá." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Escaneo actual" diff --git a/l10n/et_EE/core.po b/l10n/et_EE/core.po index 7b3a992357..95b66e51b7 100644 --- a/l10n/et_EE/core.po +++ b/l10n/et_EE/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s jagas sinuga »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupp" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index f69d10f72e..79f5e340cf 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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "Saadaval pole piisavalt ruumi" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Üleslaadimine ebaõnnestus" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "URL ei saa olla tühi." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Vigane kausta nimi. 'Shared' kasutamine on reserveeritud ownCloud poolt." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Viga" @@ -129,57 +129,57 @@ msgstr "Kustuta jäädavalt" msgid "Rename" msgstr "Nimeta ümber" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ootel" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} on juba olemas" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "asenda" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "soovita nime" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "loobu" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "asendas nime {old_name} nimega {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "tagasi" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n kataloog" msgstr[1] "%n kataloogi" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n fail" msgstr[1] "%n faili" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Laadin üles %n faili" msgstr[1] "Laadin üles %n faili" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "faili üleslaadimisel" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "Valmistatakse allalaadimist. See võib võtta veidi aega, kui on tegu suurte failidega. " -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nimi" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Suurus" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Muudetud" @@ -302,33 +302,33 @@ msgstr "Siin puudvad sul kirjutamisõigused." msgid "Nothing in here. Upload something!" msgstr "Siin pole midagi. Lae midagi üles!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Lae alla" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Lõpeta jagamine" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Kustuta" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Üleslaadimine on liiga suur" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Faile skannitakse, palun oota." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Praegune skannimine" diff --git a/l10n/eu/core.po b/l10n/eu/core.po index 004b38fc51..962c4efed5 100644 --- a/l10n/eu/core.po +++ b/l10n/eu/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s-ek »%s« zurekin partekatu du" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "taldea" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/eu/files.po b/l10n/eu/files.po index bb64b84c23..4456f2df9e 100644 --- a/l10n/eu/files.po +++ b/l10n/eu/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "Ez dago behar aina leku erabilgarri," #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "igotzeak huts egin du" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "URLa ezin da hutsik egon." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Karpeta izne baliogabea. \"Shared\" karpeta erabilpena OwnCloudentzat erreserbaturik dago." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Errorea" @@ -129,57 +129,57 @@ msgstr "Ezabatu betirako" msgid "Rename" msgstr "Berrizendatu" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Zain" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} dagoeneko existitzen da" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ordeztu" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "aholkatu izena" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "ezeztatu" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr " {new_name}-k {old_name} ordezkatu du" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "desegin" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "karpeta %n" msgstr[1] "%n karpeta" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "fitxategi %n" msgstr[1] "%n fitxategi" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Fitxategi %n igotzen" msgstr[1] "%n fitxategi igotzen" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fitxategiak igotzen" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "Zure deskarga prestatu egin behar da. Denbora bat har lezake fitxategiak handiak badira. " -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Izena" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamaina" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Aldatuta" @@ -302,33 +302,33 @@ msgstr "Ez duzu hemen idazteko baimenik." msgid "Nothing in here. Upload something!" msgstr "Ez dago ezer. Igo zerbait!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Deskargatu" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Ez elkarbanatu" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Ezabatu" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Igoera handiegia da" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Fitxategiak eskaneatzen ari da, itxoin mezedez." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Orain eskaneatzen ari da" diff --git a/l10n/fa/core.po b/l10n/fa/core.po index 4fb8afd07b..477f3475fc 100644 --- a/l10n/fa/core.po +++ b/l10n/fa/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "%s به اشتراک گذاشته شده است »%s« توسط شما" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "گروه" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/fa/files.po b/l10n/fa/files.po index 362a1dc80a..1db2606ef5 100644 --- a/l10n/fa/files.po +++ b/l10n/fa/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "فضای کافی در دسترس نیست" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "بارگزاری ناموفق بود" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL نمی تواند خالی باشد." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "نام پوشه نامعتبر است. استفاده از 'به اشتراک گذاشته شده' متعلق به ownCloud میباشد." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "خطا" @@ -128,54 +128,54 @@ msgstr "حذف قطعی" msgid "Rename" msgstr "تغییرنام" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "در انتظار" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{نام _جدید} در حال حاضر وجود دارد." -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "جایگزین" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "پیشنهاد نام" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "لغو" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{نام_جدید} با { نام_قدیمی} جایگزین شد." -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "بازگشت" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "بارگذاری فایل ها" @@ -213,15 +213,15 @@ msgid "" "big." msgstr "دانلود شما در حال آماده شدن است. در صورتیکه پرونده ها بزرگ باشند ممکن است مدتی طول بکشد." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "نام" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "اندازه" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "تاریخ" @@ -298,33 +298,33 @@ msgstr "شما اجازه ی نوشتن در اینجا را ندارید" msgid "Nothing in here. Upload something!" msgstr "اینجا هیچ چیز نیست." -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "دانلود" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "لغو اشتراک" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "حذف" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "پرونده ها در حال بازرسی هستند لطفا صبر کنید" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "بازرسی کنونی" diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po index 56d1039db0..f76c82e482 100644 --- a/l10n/fi_FI/core.po +++ b/l10n/fi_FI/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s jakoi kohteen »%s« kanssasi" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "ryhmä" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po index 69f2485ac9..2c0837f88b 100644 --- a/l10n/fi_FI/files.po +++ b/l10n/fi_FI/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 17:20+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" @@ -77,7 +77,7 @@ msgstr "Tallennustilaa ei ole riittävästi käytettävissä" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Lähetys epäonnistui" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "Verkko-osoite ei voi olla tyhjä" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Virhe" @@ -128,57 +128,57 @@ msgstr "Poista pysyvästi" msgid "Rename" msgstr "Nimeä uudelleen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Odottaa" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} on jo olemassa" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "korvaa" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "ehdota nimeä" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "peru" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "kumoa" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n kansio" msgstr[1] "%n kansiota" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n tiedosto" msgstr[1] "%n tiedostoa" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} ja {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Lähetetään %n tiedosto" msgstr[1] "Lähetetään %n tiedostoa" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nimi" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Koko" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Muokattu" @@ -301,33 +301,33 @@ msgstr "Tunnuksellasi ei ole kirjoitusoikeuksia tänne." msgid "Nothing in here. Upload something!" msgstr "Täällä ei ole mitään. Lähetä tänne jotakin!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Lataa" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Peru jakaminen" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Poista" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Lähetettävä tiedosto on liian suuri" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Tiedostoja tarkistetaan, odota hetki." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Tämänhetkinen tutkinta" diff --git a/l10n/fr/core.po b/l10n/fr/core.po index 5aaca8e3f7..f5b034ae31 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -29,7 +29,7 @@ msgstr "%s partagé »%s« avec vous" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "groupe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index bd1b9b9797..245c7abab6 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "Plus assez d'espace de stockage disponible" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Échec de l'envoi" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "L'URL ne peut-être vide" 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/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Erreur" @@ -130,57 +130,57 @@ msgstr "Supprimer de façon définitive" msgid "Rename" msgstr "Renommer" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "En attente" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} existe déjà" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "remplacer" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Suggérer un nom" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "annuler" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} a été remplacé par {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "annuler" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fichiers en cours d'envoi" @@ -218,15 +218,15 @@ msgid "" "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:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nom" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Taille" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modifié" @@ -303,33 +303,33 @@ msgstr "Vous n'avez pas le droit d'écriture ici." msgid "Nothing in here. Upload something!" msgstr "Il n'y a rien ici ! Envoyez donc quelque chose :)" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Télécharger" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Ne plus partager" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Supprimer" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Téléversement trop volumineux" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Les fichiers sont en cours d'analyse, veuillez patienter." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Analyse en cours" diff --git a/l10n/gl/core.po b/l10n/gl/core.po index ed5c0b1b09..6565f0ea8d 100644 --- a/l10n/gl/core.po +++ b/l10n/gl/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "%s compartiu «%s» con vostede" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index f655969e06..6de09cdb0f 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Non hai espazo de almacenamento abondo" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Produciuse un fallou no envío" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "O URL non pode quedar baleiro." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nome de cartafol incorrecto. O uso de «Compartido» e «Shared» está reservado para o ownClod" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Erro" @@ -128,57 +128,57 @@ msgstr "Eliminar permanentemente" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendentes" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "Xa existe un {new_name}" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "substituír" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "suxerir nome" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "substituír {new_name} por {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "desfacer" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n cartafol" msgstr[1] "%n cartafoles" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n ficheiro" msgstr[1] "%n ficheiros" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Cargando %n ficheiro" msgstr[1] "Cargando %n ficheiros" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "ficheiros enviándose" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "Está a prepararse a súa descarga. Isto pode levar bastante tempo se os ficheiros son grandes." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamaño" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificado" @@ -301,33 +301,33 @@ msgstr "Non ten permisos para escribir aquí." msgid "Nothing in here. Upload something!" msgstr "Aquí non hai nada. Envíe algo." -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Deixar de compartir" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Eliminar" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Envío demasiado grande" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Estanse analizando os ficheiros. Agarde." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Análise actual" diff --git a/l10n/he/core.po b/l10n/he/core.po index ccf747517c..a505ffebd5 100644 --- a/l10n/he/core.po +++ b/l10n/he/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s שיתף/שיתפה איתך את »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "קבוצה" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/he/files.po b/l10n/he/files.po index 9002e898ce..dd48045097 100644 --- a/l10n/he/files.po +++ b/l10n/he/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "אין די שטח פנוי באחסון" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "ההעלאה נכשלה" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "קישור אינו יכול להיות ריק." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "שגיאה" @@ -128,57 +128,57 @@ msgstr "מחק לצמיתות" msgid "Rename" msgstr "שינוי שם" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "ממתין" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} כבר קיים" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "החלפה" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "הצעת שם" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "ביטול" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} הוחלף ב־{old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "ביטול" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "קבצים בהעלאה" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "שם" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "גודל" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "זמן שינוי" @@ -301,33 +301,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "אין כאן שום דבר. אולי ברצונך להעלות משהו?" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "הורדה" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "הסר שיתוף" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "מחיקה" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "העלאה גדולה מידי" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "הקבצים נסרקים, נא להמתין." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "הסריקה הנוכחית" diff --git a/l10n/hu_HU/core.po b/l10n/hu_HU/core.po index 85a6b3a0d1..b4bbc39644 100644 --- a/l10n/hu_HU/core.po +++ b/l10n/hu_HU/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s megosztotta Önnel ezt: »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "csoport" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po index 48876d9d47..402bd72336 100644 --- a/l10n/hu_HU/files.po +++ b/l10n/hu_HU/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Nincs elég szabad hely." #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "A feltöltés nem sikerült" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "Az URL nem lehet semmi." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Érvénytelen mappanév. A 'Shared' az ownCloud számára fenntartott elnevezés" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Hiba" @@ -128,57 +128,57 @@ msgstr "Végleges törlés" msgid "Rename" msgstr "Átnevezés" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Folyamatban" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} már létezik" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "írjuk fölül" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "legyen más neve" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "mégse" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} fájlt kicseréltük ezzel: {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "visszavonás" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fájl töltődik föl" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Név" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Méret" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Módosítva" @@ -301,33 +301,33 @@ msgstr "Itt nincs írásjoga." msgid "Nothing in here. Upload something!" msgstr "Itt nincs semmi. Töltsön fel valamit!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Letöltés" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "A megosztás visszavonása" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Törlés" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "A feltöltés túl nagy" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "A fájllista ellenőrzése zajlik, kis türelmet!" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Ellenőrzés alatt" diff --git a/l10n/id/core.po b/l10n/id/core.po index 51d44b0f57..071ac769a9 100644 --- a/l10n/id/core.po +++ b/l10n/id/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grup" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/it/core.po b/l10n/it/core.po index 9a45ffabc3..e5cdd51793 100644 --- a/l10n/it/core.po +++ b/l10n/it/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -27,7 +27,7 @@ msgstr "%s ha condiviso «%s» con te" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "gruppo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/it/files.po b/l10n/it/files.po index 6b88648425..58b33501e9 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 15:54+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" @@ -78,7 +78,7 @@ msgstr "Spazio di archiviazione insufficiente" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Caricamento non riuscito" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "L'URL non può essere vuoto." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nome della cartella non valido. L'uso di 'Shared' è riservato a ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Errore" @@ -129,57 +129,57 @@ msgstr "Elimina definitivamente" msgid "Rename" msgstr "Rinomina" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "In corso" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} esiste già" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "sostituisci" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "suggerisci nome" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "annulla" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "sostituito {new_name} con {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "annulla" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n cartella" msgstr[1] "%n cartelle" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n file" msgstr[1] "%n file" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} e {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Caricamento di %n file in corso" msgstr[1] "Caricamento di %n file in corso" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "caricamento file" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "Il tuo scaricamento è in fase di preparazione. Ciò potrebbe richiedere del tempo se i file sono grandi." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Dimensione" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificato" @@ -302,33 +302,33 @@ msgstr "Qui non hai i permessi di scrittura." msgid "Nothing in here. Upload something!" msgstr "Non c'è niente qui. Carica qualcosa!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Scarica" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Rimuovi condivisione" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Elimina" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Caricamento troppo grande" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Scansione dei file in corso, attendi" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Scansione corrente" diff --git a/l10n/it/lib.po b/l10n/it/lib.po index e119006c71..fb5632409a 100644 --- a/l10n/it/lib.po +++ b/l10n/it/lib.po @@ -4,14 +4,15 @@ # # Translators: # Francesco Capuano , 2013 +# polxmod , 2013 # Vincenzo Reale , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:33-0400\n" -"PO-Revision-Date: 2013-08-29 19:30+0000\n" -"Last-Translator: Vincenzo Reale \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 13:30+0000\n" +"Last-Translator: polxmod \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" @@ -125,7 +126,7 @@ msgstr "L'applicazione non può essere installata poiché non è compatibile con msgid "" "App can't be installed because it contains the true tag " "which is not allowed for non shipped apps" -msgstr "" +msgstr "L'applicazione non può essere installata poiché contiene il tag true che non è permesso alle applicazioni non shipped" #: installer.php:150 msgid "" @@ -266,51 +267,51 @@ msgstr "Il tuo server web non è configurato correttamente per consentire la sin msgid "Please double check the installation guides." msgstr "Leggi attentamente le guide d'installazione." -#: template/functions.php:80 +#: template/functions.php:96 msgid "seconds ago" msgstr "secondi fa" -#: template/functions.php:81 +#: template/functions.php:97 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "%n minuto fa" msgstr[1] "%n minuti fa" -#: template/functions.php:82 +#: template/functions.php:98 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "%n ora fa" msgstr[1] "%n ore fa" -#: template/functions.php:83 +#: template/functions.php:99 msgid "today" msgstr "oggi" -#: template/functions.php:84 +#: template/functions.php:100 msgid "yesterday" msgstr "ieri" -#: template/functions.php:85 +#: template/functions.php:101 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "%n giorno fa" msgstr[1] "%n giorni fa" -#: template/functions.php:86 +#: template/functions.php:102 msgid "last month" msgstr "mese scorso" -#: template/functions.php:87 +#: template/functions.php:103 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "%n mese fa" msgstr[1] "%n mesi fa" -#: template/functions.php:88 +#: template/functions.php:104 msgid "last year" msgstr "anno scorso" -#: template/functions.php:89 +#: template/functions.php:105 msgid "years ago" msgstr "anni fa" diff --git a/l10n/it/settings.po b/l10n/it/settings.po index 57cb219901..2ef86dac43 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -5,14 +5,15 @@ # Translators: # Francesco Apruzzese , 2013 # idetao , 2013 +# polxmod , 2013 # Vincenzo Reale , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 15:53+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" @@ -87,47 +88,47 @@ msgstr "Impossibile rimuovere l'utente dal gruppo %s" msgid "Couldn't update app." msgstr "Impossibile aggiornate l'applicazione." -#: js/apps.js:35 +#: js/apps.js:43 msgid "Update to {appversion}" msgstr "Aggiorna a {appversion}" -#: js/apps.js:41 js/apps.js:74 js/apps.js:100 +#: js/apps.js:49 js/apps.js:82 js/apps.js:108 msgid "Disable" msgstr "Disabilita" -#: js/apps.js:41 js/apps.js:81 js/apps.js:94 js/apps.js:109 +#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 msgid "Enable" msgstr "Abilita" -#: js/apps.js:63 +#: js/apps.js:71 msgid "Please wait...." msgstr "Attendere..." -#: js/apps.js:71 js/apps.js:72 js/apps.js:92 +#: js/apps.js:79 js/apps.js:80 js/apps.js:100 msgid "Error while disabling app" -msgstr "" +msgstr "Errore durante la disattivazione" -#: js/apps.js:91 js/apps.js:104 js/apps.js:105 +#: js/apps.js:99 js/apps.js:112 js/apps.js:113 msgid "Error while enabling app" -msgstr "" +msgstr "Errore durante l'attivazione" -#: js/apps.js:115 +#: js/apps.js:123 msgid "Updating...." msgstr "Aggiornamento in corso..." -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error while updating app" msgstr "Errore durante l'aggiornamento" -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error" msgstr "Errore" -#: js/apps.js:119 templates/apps.php:43 +#: js/apps.js:127 templates/apps.php:43 msgid "Update" msgstr "Aggiorna" -#: js/apps.js:122 +#: js/apps.js:130 msgid "Updated" msgstr "Aggiornato" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 7effb5774b..38ce1ffd25 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 09:50+0000\n" +"Last-Translator: plazmism \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" @@ -28,32 +28,32 @@ msgstr "%sが あなたと »%s«を共有しました" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "グループ" #: ajax/update.php:11 msgid "Turned on maintenance mode" -msgstr "" +msgstr "メンテナンスモードがオンになりました" #: ajax/update.php:14 msgid "Turned off maintenance mode" -msgstr "" +msgstr "メンテナンスモードがオフになりました" #: ajax/update.php:17 msgid "Updated database" -msgstr "" +msgstr "データベース更新完了" #: ajax/update.php:20 msgid "Updating filecache, this may take really long..." -msgstr "" +msgstr "ファイルキャッシュを更新しています、しばらく掛かる恐れがあります..." #: ajax/update.php:23 msgid "Updated filecache" -msgstr "" +msgstr "ファイルキャッシュ更新完了" #: ajax/update.php:26 #, php-format msgid "... %d%% done ..." -msgstr "" +msgstr "... %d%% 完了 ..." #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po index b8591173f3..249beb05f6 100644 --- a/l10n/ja_JP/files.po +++ b/l10n/ja_JP/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 00: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" @@ -81,7 +81,7 @@ msgstr "ストレージに十分な空き容量がありません" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "アップロードに失敗" #: ajax/upload.php:127 msgid "Invalid directory." @@ -116,7 +116,7 @@ msgstr "URLは空にできません。" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "無効なフォルダ名です。'Shared' の利用はownCloudで予約済みです" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "エラー" @@ -132,54 +132,54 @@ msgstr "完全に削除する" msgid "Rename" msgstr "名前の変更" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "中断" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} はすでに存在しています" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "置き換え" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "推奨名称" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "キャンセル" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} を {new_name} に置換" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "元に戻す" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n個のフォルダ" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n個のファイル" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} と {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n 個のファイルをアップロード中" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "ファイルをアップロード中" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "ダウンロードの準備中です。ファイルサイズが大きい場合は少し時間がかかるかもしれません。" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "名前" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "サイズ" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "変更" @@ -302,33 +302,33 @@ msgstr "あなたには書き込み権限がありません。" msgid "Nothing in here. Upload something!" msgstr "ここには何もありません。何かアップロードしてください。" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "ダウンロード" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "共有解除" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "削除" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "アップロードには大きすぎます。" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "ファイルをスキャンしています、しばらくお待ちください。" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "スキャン中" diff --git a/l10n/ja_JP/lib.po b/l10n/ja_JP/lib.po index 3d14cbeb36..78f8270048 100644 --- a/l10n/ja_JP/lib.po +++ b/l10n/ja_JP/lib.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-08-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 01:10+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" @@ -24,11 +24,11 @@ msgstr "" msgid "" "App \"%s\" can't be installed because it is not compatible with this version" " of ownCloud." -msgstr "" +msgstr " \"%s\" アプリは、このバージョンのownCloudと互換性がない為、インストールできません。" #: app.php:250 msgid "No app name specified" -msgstr "" +msgstr "アプリ名が未指定" #: app.php:361 msgid "Help" @@ -88,38 +88,38 @@ msgstr "ファイルは、小さいファイルに分割されてダウンロー #: installer.php:63 msgid "No source specified when installing app" -msgstr "" +msgstr "アプリインストール時のソースが未指定" #: installer.php:70 msgid "No href specified when installing app from http" -msgstr "" +msgstr "アプリインストール時のhttpの URL が未指定" #: installer.php:75 msgid "No path specified when installing app from local file" -msgstr "" +msgstr "アプリインストール時のローカルファイルのパスが未指定" #: installer.php:89 #, php-format msgid "Archives of type %s are not supported" -msgstr "" +msgstr "\"%s\"タイプのアーカイブ形式は未サポート" #: installer.php:103 msgid "Failed to open archive when installing app" -msgstr "" +msgstr "アプリをインストール中にアーカイブファイルを開けませんでした。" #: installer.php:123 msgid "App does not provide an info.xml file" -msgstr "" +msgstr "アプリにinfo.xmlファイルが入っていません" #: installer.php:129 msgid "App can't be installed because of not allowed code in the App" -msgstr "" +msgstr "アプリで許可されないコードが入っているのが原因でアプリがインストールできません" #: installer.php:138 msgid "" "App can't be installed because it is not compatible with this version of " "ownCloud" -msgstr "" +msgstr "アプリは、このバージョンのownCloudと互換性がない為、インストールできません。" #: installer.php:144 msgid "" @@ -131,16 +131,16 @@ msgstr "" msgid "" "App can't be installed because the version in info.xml/version is not the " "same as the version reported from the app store" -msgstr "" +msgstr "info.xml/versionのバージョンがアプリストアのバージョンと合っていない為、アプリはインストールされません" #: installer.php:160 msgid "App directory already exists" -msgstr "" +msgstr "アプリディレクトリは既に存在します" #: installer.php:173 #, php-format msgid "Can't create app folder. Please fix permissions. %s" -msgstr "" +msgstr "アプリフォルダを作成出来ませんでした。%s のパーミッションを修正してください。" #: json.php:28 msgid "Application is not enabled" @@ -266,47 +266,47 @@ msgstr "WebDAVインタフェースが動作していないと考えられるた msgid "Please double check the installation guides." msgstr "インストールガイドをよく確認してください。" -#: template/functions.php:80 +#: template/functions.php:96 msgid "seconds ago" msgstr "数秒前" -#: template/functions.php:81 +#: template/functions.php:97 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "%n 分前" -#: template/functions.php:82 +#: template/functions.php:98 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "%n 時間後" -#: template/functions.php:83 +#: template/functions.php:99 msgid "today" msgstr "今日" -#: template/functions.php:84 +#: template/functions.php:100 msgid "yesterday" msgstr "昨日" -#: template/functions.php:85 +#: template/functions.php:101 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "%n 日後" -#: template/functions.php:86 +#: template/functions.php:102 msgid "last month" msgstr "一月前" -#: template/functions.php:87 +#: template/functions.php:103 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "%n カ月後" -#: template/functions.php:88 +#: template/functions.php:104 msgid "last year" msgstr "一年前" -#: template/functions.php:89 +#: template/functions.php:105 msgid "years ago" msgstr "年前" diff --git a/l10n/ja_JP/settings.po b/l10n/ja_JP/settings.po index f61f73ba22..e265ca7d47 100644 --- a/l10n/ja_JP/settings.po +++ b/l10n/ja_JP/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-08-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 00: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" @@ -87,47 +87,47 @@ msgstr "ユーザをグループ %s から削除できません" msgid "Couldn't update app." msgstr "アプリを更新出来ませんでした。" -#: js/apps.js:35 +#: js/apps.js:43 msgid "Update to {appversion}" msgstr "{appversion} に更新" -#: js/apps.js:41 js/apps.js:74 js/apps.js:100 +#: js/apps.js:49 js/apps.js:82 js/apps.js:108 msgid "Disable" msgstr "無効" -#: js/apps.js:41 js/apps.js:81 js/apps.js:94 js/apps.js:109 +#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 msgid "Enable" msgstr "有効化" -#: js/apps.js:63 +#: js/apps.js:71 msgid "Please wait...." msgstr "しばらくお待ちください。" -#: js/apps.js:71 js/apps.js:72 js/apps.js:92 +#: js/apps.js:79 js/apps.js:80 js/apps.js:100 msgid "Error while disabling app" -msgstr "" +msgstr "アプリ無効化中にエラーが発生" -#: js/apps.js:91 js/apps.js:104 js/apps.js:105 +#: js/apps.js:99 js/apps.js:112 js/apps.js:113 msgid "Error while enabling app" -msgstr "" +msgstr "アプリ有効化中にエラーが発生" -#: js/apps.js:115 +#: js/apps.js:123 msgid "Updating...." msgstr "更新中...." -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error while updating app" msgstr "アプリの更新中にエラーが発生" -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error" msgstr "エラー" -#: js/apps.js:119 templates/apps.php:43 +#: js/apps.js:127 templates/apps.php:43 msgid "Update" msgstr "更新" -#: js/apps.js:122 +#: js/apps.js:130 msgid "Updated" msgstr "更新済み" diff --git a/l10n/ka_GE/core.po b/l10n/ka_GE/core.po index 5611a46795..8cd45561ae 100644 --- a/l10n/ka_GE/core.po +++ b/l10n/ka_GE/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "ჯგუფი" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po index b162233b9c..36a1787cd3 100644 --- a/l10n/ka_GE/files.po +++ b/l10n/ka_GE/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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,7 +76,7 @@ msgstr "საცავში საკმარისი ადგილი ა #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "ატვირთვა ვერ განხორციელდა" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "URL არ შეიძლება იყოს ცარიელი." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "შეცდომა" @@ -127,54 +127,54 @@ msgstr "სრულად წაშლა" msgid "Rename" msgstr "გადარქმევა" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "მოცდის რეჟიმში" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} უკვე არსებობს" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "შეცვლა" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "სახელის შემოთავაზება" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "უარყოფა" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} შეცვლილია {old_name}–ით" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "დაბრუნება" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "ფაილები იტვირთება" @@ -212,15 +212,15 @@ msgid "" "big." msgstr "გადმოწერის მოთხოვნა მუშავდება. ის მოითხოვს გარკვეულ დროს რაგდან ფაილები არის დიდი ზომის." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "სახელი" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "ზომა" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "შეცვლილია" @@ -297,33 +297,33 @@ msgstr "თქვენ არ გაქვთ ჩაწერის უფლ msgid "Nothing in here. Upload something!" msgstr "აქ არაფერი არ არის. ატვირთე რამე!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "ჩამოტვირთვა" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "გაუზიარებადი" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "წაშლა" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "ასატვირთი ფაილი ძალიან დიდია" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "მიმდინარე სკანირება" diff --git a/l10n/ko/core.po b/l10n/ko/core.po index 414603b41d..5e7d67575a 100644 --- a/l10n/ko/core.po +++ b/l10n/ko/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "그룹" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ko/files.po b/l10n/ko/files.po index f7c8401395..f97b6b2dd2 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "저장소가 용량이 충분하지 않습니다." #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "업로드 실패" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "URL을 입력해야 합니다." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "오류" @@ -129,54 +129,54 @@ msgstr "영원히 삭제" msgid "Rename" msgstr "이름 바꾸기" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "대기 중" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name}이(가) 이미 존재함" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "바꾸기" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "이름 제안" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "취소" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{old_name}이(가) {new_name}(으)로 대체됨" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "되돌리기" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "파일 업로드중" @@ -214,15 +214,15 @@ msgid "" "big." msgstr "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "이름" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "크기" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "수정됨" @@ -299,33 +299,33 @@ msgstr "당신은 여기에 쓰기를 할 수 있는 권한이 없습니다." msgid "Nothing in here. Upload something!" msgstr "내용이 없습니다. 업로드할 수 있습니다!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "다운로드" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "공유 해제" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "삭제" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "업로드한 파일이 너무 큼" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "파일을 검색하고 있습니다. 기다려 주십시오." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "현재 검색" diff --git a/l10n/lb/core.po b/l10n/lb/core.po index 6acfd95e04..73f9dacaf6 100644 --- a/l10n/lb/core.po +++ b/l10n/lb/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "Den/D' %s huet »%s« mat dir gedeelt" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "Grupp" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/lt_LT/core.po b/l10n/lt_LT/core.po index 493b46ace2..6f77486ddf 100644 --- a/l10n/lt_LT/core.po +++ b/l10n/lt_LT/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -27,7 +27,7 @@ msgstr "%s pasidalino »%s« su tavimi" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupė" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po index 6fe0fe9291..af72860fc5 100644 --- a/l10n/lt_LT/files.po +++ b/l10n/lt_LT/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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,7 +77,7 @@ msgstr "Nepakanka vietos serveryje" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Nusiuntimas nepavyko" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL negali būti tuščias." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Negalimas aplanko pavadinimas. 'Shared' pavadinimas yra rezervuotas ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Klaida" @@ -128,60 +128,60 @@ msgstr "Ištrinti negrįžtamai" msgid "Rename" msgstr "Pervadinti" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Laukiantis" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} jau egzistuoja" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "pakeisti" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "pasiūlyti pavadinimą" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "atšaukti" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "pakeiskite {new_name} į {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "anuliuoti" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "įkeliami failai" @@ -219,15 +219,15 @@ msgid "" "big." msgstr "Jūsų atsisiuntimas yra paruošiamas. tai gali užtrukti jei atsisiunčiamas didelis failas." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Pavadinimas" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Dydis" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Pakeista" @@ -304,33 +304,33 @@ msgstr "Jūs neturite rašymo leidimo." msgid "Nothing in here. Upload something!" msgstr "Čia tuščia. Įkelkite ką nors!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Atsisiųsti" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Nebesidalinti" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Ištrinti" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Įkėlimui failas per didelis" -#: templates/index.php:107 +#: templates/index.php:110 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ų, kuris leidžiamas šiame serveryje" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Skenuojami failai, prašome palaukti." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Šiuo metu skenuojama" diff --git a/l10n/lv/core.po b/l10n/lv/core.po index 689ad0da12..65e8cfde0e 100644 --- a/l10n/lv/core.po +++ b/l10n/lv/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -25,7 +25,7 @@ msgstr "%s kopīgots »%s« ar jums" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupa" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/lv/files.po b/l10n/lv/files.po index 5eff48359d..ac1b1e7ab6 100644 --- a/l10n/lv/files.po +++ b/l10n/lv/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -77,7 +77,7 @@ msgstr "Nav pietiekami daudz vietas" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Neizdevās augšupielādēt" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL nevar būt tukšs." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Kļūdains mapes nosaukums. 'Shared' lietošana ir rezervēta no ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Kļūda" @@ -128,60 +128,60 @@ msgstr "Dzēst pavisam" msgid "Rename" msgstr "Pārsaukt" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Gaida savu kārtu" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} jau eksistē" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "aizvietot" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "ieteiktais nosaukums" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "atcelt" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "aizvietoja {new_name} ar {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "atsaukt" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n mapes" msgstr[1] "%n mape" msgstr[2] "%n mapes" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n faili" msgstr[1] "%n fails" msgstr[2] "%n faili" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n" msgstr[1] "Augšupielāde %n failu" msgstr[2] "Augšupielāde %n failus" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fails augšupielādējas" @@ -219,15 +219,15 @@ msgid "" "big." msgstr "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nosaukums" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Izmērs" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Mainīts" @@ -304,33 +304,33 @@ msgstr "Jums nav tiesību šeit rakstīt." msgid "Nothing in here. Upload something!" msgstr "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Lejupielādēt" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Pārtraukt dalīšanos" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Dzēst" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Datne ir par lielu, lai to augšupielādētu" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Šobrīd tiek caurskatīts" diff --git a/l10n/mk/core.po b/l10n/mk/core.po index c94527ab53..a426e2ec18 100644 --- a/l10n/mk/core.po +++ b/l10n/mk/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "група" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/nb_NO/core.po b/l10n/nb_NO/core.po index 4bd2753d75..68b8f11bed 100644 --- a/l10n/nb_NO/core.po +++ b/l10n/nb_NO/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "%s delte »%s« med deg" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po index c59874212b..21093f1c7e 100644 --- a/l10n/nb_NO/files.po +++ b/l10n/nb_NO/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "Ikke nok lagringsplass" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Opplasting feilet" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "URL-en kan ikke være tom." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ugyldig mappenavn. Bruk av \"Shared\" er reservert av ownCloud." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Feil" @@ -130,57 +130,57 @@ msgstr "Slett permanent" msgid "Rename" msgstr "Gi nytt navn" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ventende" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} finnes allerede" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "erstatt" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "erstattet {new_name} med {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "angre" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n mappe" msgstr[1] "%n mapper" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n fil" msgstr[1] "%n filer" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Laster opp %n fil" msgstr[1] "Laster opp %n filer" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "filer lastes opp" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Nedlastingen din klargjøres. Hvis filene er store kan dette ta litt tid." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Navn" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Størrelse" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Endret" @@ -303,33 +303,33 @@ msgstr "Du har ikke skrivetilgang her." msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last opp noe!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Last ned" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Avslutt deling" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Slett" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Filen er for stor" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Skanner filer, vennligst vent." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Pågående skanning" diff --git a/l10n/nl/core.po b/l10n/nl/core.po index 340455fdb1..c7b2e1c117 100644 --- a/l10n/nl/core.po +++ b/l10n/nl/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -27,7 +27,7 @@ msgstr "%s deelde »%s« met jou" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "groep" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index 1ef60e724a..c42cf442ef 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "Niet genoeg opslagruimte beschikbaar" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Upload mislukt" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "URL kan niet leeg zijn." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ongeldige mapnaam. Gebruik van 'Gedeeld' is voorbehouden aan Owncloud zelf" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fout" @@ -129,57 +129,57 @@ msgstr "Verwijder definitief" msgid "Rename" msgstr "Hernoem" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "In behandeling" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} bestaat al" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "vervang" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Stel een naam voor" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "annuleren" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "verving {new_name} met {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "ongedaan maken" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "%n mappen" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "%n bestanden" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n bestand aan het uploaden" msgstr[1] "%n bestanden aan het uploaden" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "bestanden aan het uploaden" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Naam" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Grootte" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Aangepast" @@ -302,33 +302,33 @@ msgstr "U hebt hier geen schrijfpermissies." msgid "Nothing in here. Upload something!" msgstr "Er bevindt zich hier niets. Upload een bestand!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Downloaden" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Stop met delen" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Verwijder" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Upload is te groot" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Bestanden worden gescand, even wachten." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Er wordt gescand" diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index dd3e636cc4..8772791ae0 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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "gruppe" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index be3bfcba3e..623cceba50 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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "Ikkje nok lagringsplass tilgjengeleg" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Feil ved opplasting" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "Nettadressa kan ikkje vera tom." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ugyldig mappenamn. Mappa «Shared» er reservert av ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Feil" @@ -129,57 +129,57 @@ msgstr "Slett for godt" msgid "Rename" msgstr "Endra namn" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Under vegs" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} finst allereie" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "byt ut" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "føreslå namn" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "bytte ut {new_name} med {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "angre" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "filer lastar opp" @@ -217,15 +217,15 @@ msgid "" "big." msgstr "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Namn" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Storleik" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Endra" @@ -302,33 +302,33 @@ msgstr "Du har ikkje skriverettar her." msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last noko opp!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Last ned" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Udel" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Slett" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "For stor opplasting" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Skannar filer, ver venleg og vent." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Køyrande skanning" diff --git a/l10n/oc/core.po b/l10n/oc/core.po index f419c3efaf..5b2896c6e3 100644 --- a/l10n/oc/core.po +++ b/l10n/oc/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grop" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/pl/core.po b/l10n/pl/core.po index edaed21e00..6680a8ba6b 100644 --- a/l10n/pl/core.po +++ b/l10n/pl/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s Współdzielone »%s« z tobą" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupa" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index fc48660989..8bab0cf590 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -78,7 +78,7 @@ msgstr "Za mało dostępnego miejsca" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Wysyłanie nie powiodło się" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +113,7 @@ msgstr "URL nie może być pusty." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nieprawidłowa nazwa folderu. Wykorzystanie 'Shared' jest zarezerwowane przez ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Błąd" @@ -129,60 +129,60 @@ msgstr "Trwale usuń" msgid "Rename" msgstr "Zmień nazwę" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Oczekujące" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} już istnieje" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "zastąp" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "zasugeruj nazwę" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "anuluj" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "zastąpiono {new_name} przez {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "cofnij" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "pliki wczytane" @@ -220,15 +220,15 @@ msgid "" "big." msgstr "Pobieranie jest przygotowywane. Może to zająć trochę czasu jeśli pliki są duże." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nazwa" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Rozmiar" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modyfikacja" @@ -305,33 +305,33 @@ msgstr "Nie masz uprawnień do zapisu w tym miejscu." msgid "Nothing in here. Upload something!" msgstr "Pusto. Wyślij coś!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Pobierz" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Zatrzymaj współdzielenie" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Usuń" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Ładowany plik jest za duży" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Skanowanie plików, proszę czekać." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Aktualnie skanowane" diff --git a/l10n/pt_BR/core.po b/l10n/pt_BR/core.po index 44989e4aad..b328031383 100644 --- a/l10n/pt_BR/core.po +++ b/l10n/pt_BR/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13: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" @@ -26,7 +26,7 @@ msgstr "%s compartilhou »%s« com você" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 5f0718ae9d..4397a9890b 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13: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" @@ -79,7 +79,7 @@ msgstr "Espaço de armazenamento insuficiente" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Falha no envio" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "URL não pode ficar em branco" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nome de pasta inválido. O uso do nome 'Compartilhado' é reservado ao ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Erro" @@ -130,57 +130,57 @@ msgstr "Excluir permanentemente" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendente" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} já existe" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "substituir" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugerir nome" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "Substituído {old_name} por {new_name} " -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "desfazer" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "enviando arquivos" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamanho" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificado" @@ -303,33 +303,33 @@ msgstr "Você não possui permissão de escrita aqui." msgid "Nothing in here. Upload something!" msgstr "Nada aqui.Carrege alguma coisa!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Baixar" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Descompartilhar" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Excluir" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Upload muito grande" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Arquivos sendo escaneados, por favor aguarde." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Scanning atual" diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index e188e5ccc3..ee25766369 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -28,7 +28,7 @@ msgstr "%s partilhado »%s« contigo" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grupo" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 78b0893041..21d8f249a2 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -5,13 +5,14 @@ # Translators: # bmgmatias , 2013 # FernandoMASilva, 2013 +# Helder Meneses , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 14:50+0000\n" +"Last-Translator: Helder Meneses \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" @@ -78,7 +79,7 @@ msgstr "Não há espaço suficiente em disco" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Carregamento falhou" #: ajax/upload.php:127 msgid "Invalid directory." @@ -113,7 +114,7 @@ msgstr "O URL não pode estar vazio." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nome da pasta inválido. Palavra 'Shared' é reservado pela ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Erro" @@ -129,57 +130,57 @@ msgstr "Eliminar permanentemente" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Pendente" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "O nome {new_name} já existe" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "substituir" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugira um nome" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "substituido {new_name} por {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "desfazer" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%n pasta" +msgstr[1] "%n pastas" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%n ficheiro" +msgstr[1] "%n ficheiros" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} e {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "A carregar %n ficheiro" +msgstr[1] "A carregar %n ficheiros" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "A enviar os ficheiros" @@ -209,7 +210,7 @@ msgstr "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)" msgid "" "Encryption was disabled but your files are still encrypted. Please go to " "your personal settings to decrypt your files." -msgstr "" +msgstr "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros." #: js/files.js:245 msgid "" @@ -217,15 +218,15 @@ msgid "" "big." msgstr "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Tamanho" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificado" @@ -302,33 +303,33 @@ msgstr "Não tem permissões de escrita aqui." msgid "Nothing in here. Upload something!" msgstr "Vazio. Envie alguma coisa!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Transferir" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Deixar de partilhar" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Eliminar" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Upload muito grande" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Os ficheiros estão a ser analisados, por favor aguarde." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Análise actual" diff --git a/l10n/pt_PT/files_trashbin.po b/l10n/pt_PT/files_trashbin.po index e23fb508d1..64a86f404c 100644 --- a/l10n/pt_PT/files_trashbin.po +++ b/l10n/pt_PT/files_trashbin.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-15 04:47-0400\n" -"PO-Revision-Date: 2013-08-15 08:48+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 14:50+0000\n" +"Last-Translator: Helder Meneses \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" @@ -28,43 +28,43 @@ msgstr "Não foi possível eliminar %s de forma permanente" msgid "Couldn't restore %s" msgstr "Não foi possível restaurar %s" -#: js/trash.js:7 js/trash.js:100 +#: js/trash.js:7 js/trash.js:102 msgid "perform restore operation" msgstr "executar a operação de restauro" -#: js/trash.js:20 js/trash.js:48 js/trash.js:118 js/trash.js:146 +#: js/trash.js:20 js/trash.js:49 js/trash.js:120 js/trash.js:148 msgid "Error" msgstr "Erro" -#: js/trash.js:36 +#: js/trash.js:37 msgid "delete file permanently" msgstr "Eliminar permanentemente o(s) ficheiro(s)" -#: js/trash.js:127 +#: js/trash.js:129 msgid "Delete permanently" msgstr "Eliminar permanentemente" -#: js/trash.js:182 templates/index.php:17 +#: js/trash.js:184 templates/index.php:17 msgid "Name" msgstr "Nome" -#: js/trash.js:183 templates/index.php:27 +#: js/trash.js:185 templates/index.php:27 msgid "Deleted" msgstr "Apagado" -#: js/trash.js:191 +#: js/trash.js:193 msgid "%n folder" msgid_plural "%n folders" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%n pasta" +msgstr[1] "%n pastas" -#: js/trash.js:197 +#: js/trash.js:199 msgid "%n file" msgid_plural "%n files" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%n ficheiro" +msgstr[1] "%n ficheiros" -#: lib/trash.php:819 lib/trash.php:821 +#: lib/trash.php:814 lib/trash.php:816 msgid "restored" msgstr "Restaurado" diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po index 3e43edd894..e276860095 100644 --- a/l10n/pt_PT/settings.po +++ b/l10n/pt_PT/settings.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-08-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 14:50+0000\n" +"Last-Translator: Helder Meneses \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" @@ -88,53 +88,53 @@ msgstr "Impossível apagar utilizador do grupo %s" msgid "Couldn't update app." msgstr "Não foi possível actualizar a aplicação." -#: js/apps.js:35 +#: js/apps.js:43 msgid "Update to {appversion}" msgstr "Actualizar para a versão {appversion}" -#: js/apps.js:41 js/apps.js:74 js/apps.js:100 +#: js/apps.js:49 js/apps.js:82 js/apps.js:108 msgid "Disable" msgstr "Desactivar" -#: js/apps.js:41 js/apps.js:81 js/apps.js:94 js/apps.js:109 +#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 msgid "Enable" msgstr "Activar" -#: js/apps.js:63 +#: js/apps.js:71 msgid "Please wait...." msgstr "Por favor aguarde..." -#: js/apps.js:71 js/apps.js:72 js/apps.js:92 +#: js/apps.js:79 js/apps.js:80 js/apps.js:100 msgid "Error while disabling app" -msgstr "" +msgstr "Erro enquanto desactivava a aplicação" -#: js/apps.js:91 js/apps.js:104 js/apps.js:105 +#: js/apps.js:99 js/apps.js:112 js/apps.js:113 msgid "Error while enabling app" -msgstr "" +msgstr "Erro enquanto activava a aplicação" -#: js/apps.js:115 +#: js/apps.js:123 msgid "Updating...." msgstr "A Actualizar..." -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error while updating app" msgstr "Erro enquanto actualizava a aplicação" -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error" msgstr "Erro" -#: js/apps.js:119 templates/apps.php:43 +#: js/apps.js:127 templates/apps.php:43 msgid "Update" msgstr "Actualizar" -#: js/apps.js:122 +#: js/apps.js:130 msgid "Updated" msgstr "Actualizado" #: js/personal.js:150 msgid "Decrypting files... Please wait, this can take some time." -msgstr "" +msgstr "A desencriptar os ficheiros... Por favor aguarde, esta operação pode demorar algum tempo." #: js/personal.js:172 msgid "Saving..." @@ -483,15 +483,15 @@ msgstr "Encriptação" #: templates/personal.php:119 msgid "The encryption app is no longer enabled, decrypt all your file" -msgstr "" +msgstr "A aplicação de encriptação não se encontra mais disponível, desencripte o seu ficheiro" #: templates/personal.php:125 msgid "Log-in password" -msgstr "" +msgstr "Password de entrada" #: templates/personal.php:130 msgid "Decrypt all Files" -msgstr "" +msgstr "Desencriptar todos os ficheiros" #: templates/users.php:21 msgid "Login Name" diff --git a/l10n/ro/core.po b/l10n/ro/core.po index 93a50da14d..6cbf39f5e0 100644 --- a/l10n/ro/core.po +++ b/l10n/ro/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -28,7 +28,7 @@ msgstr "%s Partajat »%s« cu tine de" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grup" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ro/files.po b/l10n/ro/files.po index 6c1b9795da..c25183110d 100644 --- a/l10n/ro/files.po +++ b/l10n/ro/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "Nu este suficient spațiu disponibil" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Încărcarea a eșuat" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "Adresa URL nu poate fi goală." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Nume de dosar invalid. Utilizarea 'Shared' e rezervată de ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Eroare" @@ -130,60 +130,60 @@ msgstr "Stergere permanenta" msgid "Rename" msgstr "Redenumire" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "În așteptare" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} deja exista" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "înlocuire" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "sugerează nume" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "anulare" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} inlocuit cu {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "Anulează ultima acțiune" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "fișiere se încarcă" @@ -221,15 +221,15 @@ msgid "" "big." msgstr "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Nume" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Dimensiune" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Modificat" @@ -306,33 +306,33 @@ msgstr "Nu ai permisiunea de a sterge fisiere aici." msgid "Nothing in here. Upload something!" msgstr "Nimic aici. Încarcă ceva!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Descarcă" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Anulare partajare" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Șterge" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Fișierul încărcat este prea mare" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Fișierele sunt scanate, te rog așteptă." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "În curs de scanare" diff --git a/l10n/ru/core.po b/l10n/ru/core.po index 59c411b720..7721c948b2 100644 --- a/l10n/ru/core.po +++ b/l10n/ru/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -32,7 +32,7 @@ msgstr "%s поделился »%s« с вами" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "группа" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ru/files.po b/l10n/ru/files.po index 7a7e2c74f9..a97a10cc9a 100644 --- a/l10n/ru/files.po +++ b/l10n/ru/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -81,7 +81,7 @@ msgstr "Недостаточно доступного места в хранил #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Ошибка загрузки" #: ajax/upload.php:127 msgid "Invalid directory." @@ -116,7 +116,7 @@ msgstr "Ссылка не может быть пустой." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Неправильное имя каталога. Имя 'Shared' зарезервировано." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Ошибка" @@ -132,60 +132,60 @@ msgstr "Удалено навсегда" msgid "Rename" msgstr "Переименовать" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Ожидание" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} уже существует" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "заменить" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "предложить название" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "отмена" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "заменено {new_name} на {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "отмена" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n папка" msgstr[1] "%n папки" msgstr[2] "%n папок" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n файл" msgstr[1] "%n файла" msgstr[2] "%n файлов" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Закачка %n файла" msgstr[1] "Закачка %n файлов" msgstr[2] "Закачка %n файлов" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "файлы загружаются" @@ -223,15 +223,15 @@ msgid "" "big." msgstr "Загрузка началась. Это может потребовать много времени, если файл большого размера." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Имя" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Размер" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Изменён" @@ -308,33 +308,33 @@ msgstr "У вас нет разрешений на запись здесь." msgid "Nothing in here. Upload something!" msgstr "Здесь ничего нет. Загрузите что-нибудь!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Скачать" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Закрыть общий доступ" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Удалить" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Файл слишком велик" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файлы, которые вы пытаетесь загрузить, превышают лимит для файлов на этом сервере." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Подождите, файлы сканируются." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Текущее сканирование" diff --git a/l10n/si_LK/core.po b/l10n/si_LK/core.po index 613e055500..87d7c2b49e 100644 --- a/l10n/si_LK/core.po +++ b/l10n/si_LK/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "කණ්ඩායම" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po index 5a47ffe3d4..ea7a70653c 100644 --- a/l10n/si_LK/files.po +++ b/l10n/si_LK/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -76,7 +76,7 @@ msgstr "" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "උඩුගත කිරීම අසාර්ථකයි" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "යොමුව හිස් විය නොහැක" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "දෝෂයක්" @@ -127,57 +127,57 @@ msgstr "" msgid "Rename" msgstr "නැවත නම් කරන්න" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ප්‍රතිස්ථාපනය කරන්න" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "නමක් යෝජනා කරන්න" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "අත් හරින්න" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "නිෂ්ප්‍රභ කරන්න" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "" @@ -215,15 +215,15 @@ msgid "" "big." msgstr "" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "නම" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "ප්‍රමාණය" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "වෙනස් කළ" @@ -300,33 +300,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "බාන්න" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "නොබෙදු" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "මකා දමන්න" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "උඩුගත කිරීම විශාල වැඩිය" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "වර්තමාන පරික්ෂාව" diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index 0c6bbe58a8..d168833371 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s s Vami zdieľa »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "skupina" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index 6b81e2d7ef..0ec318ec27 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Nedostatok dostupného úložného priestoru" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Odoslanie bolo neúspešné" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL nemôže byť prázdne." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Neplatný názov priečinka. Názov \"Shared\" je rezervovaný pre ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Chyba" @@ -128,60 +128,60 @@ msgstr "Zmazať trvalo" msgid "Rename" msgstr "Premenovať" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Prebieha" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} už existuje" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "nahradiť" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "pomôcť s menom" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "zrušiť" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "prepísaný {new_name} súborom {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "vrátiť" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n priečinok" msgstr[1] "%n priečinky" msgstr[2] "%n priečinkov" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n súbor" msgstr[1] "%n súbory" msgstr[2] "%n súborov" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Nahrávam %n súbor" msgstr[1] "Nahrávam %n súbory" msgstr[2] "Nahrávam %n súborov" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "nahrávanie súborov" @@ -219,15 +219,15 @@ msgid "" "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:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Názov" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Veľkosť" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Upravené" @@ -304,33 +304,33 @@ msgstr "Nemáte oprávnenie na zápis." msgid "Nothing in here. Upload something!" msgstr "Žiadny súbor. Nahrajte niečo!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Sťahovanie" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Zrušiť zdieľanie" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Zmazať" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Nahrávanie je príliš veľké" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Čakajte, súbory sú prehľadávané." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Práve prezerané" diff --git a/l10n/sl/core.po b/l10n/sl/core.po index fa6ea1ad86..73fa71d789 100644 --- a/l10n/sl/core.po +++ b/l10n/sl/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s je delil »%s« z vami" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "skupina" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/sl/files.po b/l10n/sl/files.po index 1428fd2d73..79716d1228 100644 --- a/l10n/sl/files.po +++ b/l10n/sl/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Na voljo ni dovolj prostora" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Pošiljanje je spodletelo" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "Naslov URL ne sme biti prazna vrednost." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ime mape je neveljavno. Uporaba oznake \"Souporaba\" je rezervirana za ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Napaka" @@ -128,35 +128,35 @@ msgstr "Izbriši dokončno" msgid "Rename" msgstr "Preimenuj" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "V čakanju ..." -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} že obstaja" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "zamenjaj" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "predlagaj ime" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "prekliči" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "preimenovano ime {new_name} z imenom {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "razveljavi" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" @@ -164,7 +164,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" @@ -172,11 +172,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" @@ -184,7 +184,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "poteka pošiljanje datotek" @@ -222,15 +222,15 @@ msgid "" "big." msgstr "Postopek priprave datoteke za prejem je lahko dolgotrajen, če je datoteka zelo velika." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Ime" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Velikost" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Spremenjeno" @@ -307,33 +307,33 @@ msgstr "Za to mesto ni ustreznih dovoljenj za pisanje." msgid "Nothing in here. Upload something!" msgstr "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Prejmi" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Prekliči souporabo" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Izbriši" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Prekoračenje omejitve velikosti" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Poteka preučevanje datotek, počakajte ..." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Trenutno poteka preučevanje" diff --git a/l10n/sr/core.po b/l10n/sr/core.po index be1b85599a..3a92c45714 100644 --- a/l10n/sr/core.po +++ b/l10n/sr/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "група" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/sr/files.po b/l10n/sr/files.po index c5f4089097..5e4429bcc0 100644 --- a/l10n/sr/files.po +++ b/l10n/sr/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -76,7 +76,7 @@ msgstr "Нема довољно простора" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Отпремање није успело" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "Адреса не може бити празна." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Грешка" @@ -127,60 +127,60 @@ msgstr "Обриши за стално" msgid "Rename" msgstr "Преименуј" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "На чекању" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} већ постоји" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "замени" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "предложи назив" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "откажи" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "замењено {new_name} са {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "опозови" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "датотеке се отпремају" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "Припремам преузимање. Ово може да потраје ако су датотеке велике." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Име" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Величина" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Измењено" @@ -303,33 +303,33 @@ msgstr "Овде немате дозволу за писање." msgid "Nothing in here. Upload something!" msgstr "Овде нема ничег. Отпремите нешто!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Преузми" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Укини дељење" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Обриши" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Датотека је превелика" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Датотеке које желите да отпремите прелазе ограничење у величини." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Скенирам датотеке…" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Тренутно скенирање" diff --git a/l10n/sv/core.po b/l10n/sv/core.po index 0147f55088..04d23af90d 100644 --- a/l10n/sv/core.po +++ b/l10n/sv/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -28,7 +28,7 @@ msgstr "%s delade »%s« med dig" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "Grupp" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/sv/files.po b/l10n/sv/files.po index 00cbd7f1a3..2e311fca6d 100644 --- a/l10n/sv/files.po +++ b/l10n/sv/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-31 16:50+0000\n" +"Last-Translator: Magnus Höglund \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" @@ -80,7 +80,7 @@ msgstr "Inte tillräckligt med lagringsutrymme tillgängligt" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Misslyckad uppladdning" #: ajax/upload.php:127 msgid "Invalid directory." @@ -115,7 +115,7 @@ msgstr "URL kan inte vara tom." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Ogiltigt mappnamn. Användning av 'Shared' är reserverad av ownCloud" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Fel" @@ -131,57 +131,57 @@ msgstr "Radera permanent" msgid "Rename" msgstr "Byt namn" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Väntar" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} finns redan" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "ersätt" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "föreslå namn" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "ersatt {new_name} med {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "ångra" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n mapp" msgstr[1] "%n mappar" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n fil" msgstr[1] "%n filer" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} och {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "Laddar upp %n fil" msgstr[1] "Laddar upp %n filer" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "filer laddas upp" @@ -219,15 +219,15 @@ msgid "" "big." msgstr "Din nedladdning förbereds. Det kan ta tid om det är stora filer." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Namn" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Storlek" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Ändrad" @@ -304,33 +304,33 @@ msgstr "Du saknar skrivbehörighet här." msgid "Nothing in here. Upload something!" msgstr "Ingenting här. Ladda upp något!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Ladda ner" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Sluta dela" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Radera" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "För stor uppladdning" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Filer skannas, var god vänta" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Aktuell skanning" diff --git a/l10n/ta_LK/core.po b/l10n/ta_LK/core.po index 71c2bdbf22..c04debca14 100644 --- a/l10n/ta_LK/core.po +++ b/l10n/ta_LK/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "குழு" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index 9bc657e7df..392dfada7d 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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,7 +76,7 @@ msgstr "" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "பதிவேற்றல் தோல்வியுற்றது" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "URL வெறுமையாக இருக்கமுடியாத msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "வழு" @@ -127,57 +127,57 @@ msgstr "" msgid "Rename" msgstr "பெயர்மாற்றம்" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "நிலுவையிலுள்ள" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} ஏற்கனவே உள்ளது" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "மாற்றிடுக" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "பெயரை பரிந்துரைக்க" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "இரத்து செய்க" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ஆனது {old_name} இனால் மாற்றப்பட்டது" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "முன் செயல் நீக்கம் " -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "" @@ -215,15 +215,15 @@ msgid "" "big." msgstr "" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "பெயர்" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "அளவு" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "மாற்றப்பட்டது" @@ -300,33 +300,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "பதிவிறக்குக" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "பகிரப்படாதது" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "நீக்குக" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "பதிவேற்றல் மிகப்பெரியது" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "தற்போது வருடப்படுபவை" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index f9ccbd0049..f2f058e8d2 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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.pot b/l10n/templates/files.pot index be393c4492..7e2f79d267 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,7 +112,7 @@ msgstr "" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "" @@ -128,57 +128,57 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "" @@ -216,15 +216,15 @@ msgid "" "big." msgstr "" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "" @@ -301,33 +301,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 06a88da545..0e11e6f04d 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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 79b7984dd1..c0de53d858 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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_sharing.pot b/l10n/templates/files_sharing.pot index 4cfc080a08..ba7bdaaa82 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,7 +63,7 @@ msgstr "" msgid "%s shared the file %s with you" msgstr "" -#: templates/public.php:26 templates/public.php:88 +#: templates/public.php:26 templates/public.php:92 msgid "Download" msgstr "" @@ -75,6 +75,6 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/public.php:85 +#: templates/public.php:89 msgid "No preview available for" msgstr "" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index ed36dd2e0d..ca149fb14c 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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_versions.pot b/l10n/templates/files_versions.pot index 5576a3f45b..4c568ee555 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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 16f9354255..4d24c3c7a1 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:33-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -265,51 +265,51 @@ msgstr "" msgid "Please double check the installation guides." msgstr "" -#: template/functions.php:80 +#: template/functions.php:96 msgid "seconds ago" msgstr "" -#: template/functions.php:81 +#: template/functions.php:97 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:82 +#: template/functions.php:98 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:83 +#: template/functions.php:99 msgid "today" msgstr "" -#: template/functions.php:84 +#: template/functions.php:100 msgid "yesterday" msgstr "" -#: template/functions.php:85 +#: template/functions.php:101 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:86 +#: template/functions.php:102 msgid "last month" msgstr "" -#: template/functions.php:87 +#: template/functions.php:103 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:88 +#: template/functions.php:104 msgid "last year" msgstr "" -#: template/functions.php:89 +#: template/functions.php:105 msgid "years ago" msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 33409afceb..462831bc96 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:33-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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/user_ldap.pot b/l10n/templates/user_ldap.pot index 32ba6b4a95..a5d6146f1c 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\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/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 04f405c739..1e53a5a759 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-08-30 09:32-0400\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/core.po b/l10n/th_TH/core.po index d1e093aba8..44071aa2ac 100644 --- a/l10n/th_TH/core.po +++ b/l10n/th_TH/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "กลุ่มผู้ใช้งาน" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po index 800c07574f..beceaab6f5 100644 --- a/l10n/th_TH/files.po +++ b/l10n/th_TH/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -76,7 +76,7 @@ msgstr "เหลือพื้นที่ไม่เพียงสำหร #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "อัพโหลดล้มเหลว" #: ajax/upload.php:127 msgid "Invalid directory." @@ -111,7 +111,7 @@ msgstr "URL ไม่สามารถเว้นว่างได้" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "ข้อผิดพลาด" @@ -127,54 +127,54 @@ msgstr "" msgid "Rename" msgstr "เปลี่ยนชื่อ" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} มีอยู่แล้วในระบบ" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "แทนที่" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "แนะนำชื่อ" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "ยกเลิก" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "แทนที่ {new_name} ด้วย {old_name} แล้ว" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "เลิกทำ" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "การอัพโหลดไฟล์" @@ -212,15 +212,15 @@ msgid "" "big." msgstr "กำลังเตรียมดาวน์โหลดข้อมูล หากไฟล์มีขนาดใหญ่ อาจใช้เวลาสักครู่" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "ชื่อ" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "ขนาด" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "แก้ไขแล้ว" @@ -297,33 +297,33 @@ msgstr "" msgid "Nothing in here. Upload something!" msgstr "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "ดาวน์โหลด" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "ยกเลิกการแชร์" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "ลบ" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "ไฟล์ที่กำลังสแกนอยู่ขณะนี้" diff --git a/l10n/tr/core.po b/l10n/tr/core.po index ad793be7d8..3f86937276 100644 --- a/l10n/tr/core.po +++ b/l10n/tr/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -26,7 +26,7 @@ msgstr "%s sizinle »%s« paylaşımında bulundu" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "grup" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/tr/files.po b/l10n/tr/files.po index ec4947bf1e..5fe275702b 100644 --- a/l10n/tr/files.po +++ b/l10n/tr/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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,7 +79,7 @@ msgstr "Yeterli disk alanı yok" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Yükleme başarısız" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "URL boş olamaz." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "Geçersiz dizin adı. 'Shared' dizin ismi kullanımı ownCloud tarafından rezerve edilmiştir." -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Hata" @@ -130,57 +130,57 @@ msgstr "Kalıcı olarak sil" msgid "Rename" msgstr "İsim değiştir." -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Bekliyor" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} zaten mevcut" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "değiştir" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "Öneri ad" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "iptal" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ismi {old_name} ile değiştirildi" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "geri al" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n dizin" msgstr[1] "%n dizin" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n dosya" msgstr[1] "%n dosya" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n dosya yükleniyor" msgstr[1] "%n dosya yükleniyor" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "Dosyalar yükleniyor" @@ -218,15 +218,15 @@ msgid "" "big." msgstr "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "İsim" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Boyut" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Değiştirilme" @@ -303,33 +303,33 @@ msgstr "Buraya erişim hakkınız yok." msgid "Nothing in here. Upload something!" msgstr "Burada hiçbir şey yok. Birşeyler yükleyin!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "İndir" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Paylaşılmayan" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Sil" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Yükleme çok büyük" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Dosyalar taranıyor, lütfen bekleyin." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Güncel tarama" diff --git a/l10n/ug/core.po b/l10n/ug/core.po index e4e9c2bb89..307adf5590 100644 --- a/l10n/ug/core.po +++ b/l10n/ug/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Uighur \n" "MIME-Version: 1.0\n" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "گۇرۇپپا" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/uk/core.po b/l10n/uk/core.po index 5626dcfa66..9467404002 100644 --- a/l10n/uk/core.po +++ b/l10n/uk/core.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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -24,7 +24,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "група" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/uk/files.po b/l10n/uk/files.po index b862958c94..cd61a53093 100644 --- a/l10n/uk/files.po +++ b/l10n/uk/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Місця більше немає" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Помилка завантаження" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL не може бути пустим." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Помилка" @@ -128,60 +128,60 @@ msgstr "Видалити назавжди" msgid "Rename" msgstr "Перейменувати" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Очікування" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} вже існує" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "заміна" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "запропонуйте назву" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "відміна" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "замінено {new_name} на {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "відмінити" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "файли завантажуються" @@ -219,15 +219,15 @@ msgid "" "big." msgstr "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Ім'я" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Розмір" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Змінено" @@ -304,33 +304,33 @@ msgstr "У вас тут немає прав на запис." msgid "Nothing in here. Upload something!" msgstr "Тут нічого немає. Відвантажте що-небудь!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "Завантажити" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Закрити доступ" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Видалити" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Файл занадто великий" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері." -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Файли скануються, зачекайте, будь-ласка." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Поточне сканування" diff --git a/l10n/vi/core.po b/l10n/vi/core.po index d7196f3ab9..dda5098f3c 100644 --- a/l10n/vi/core.po +++ b/l10n/vi/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -25,7 +25,7 @@ msgstr "" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "nhóm" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index 3d1f24debd..bba27b3142 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -77,7 +77,7 @@ msgstr "Không đủ không gian lưu trữ" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "Tải lên thất bại" #: ajax/upload.php:127 msgid "Invalid directory." @@ -112,7 +112,7 @@ msgstr "URL không được để trống." msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "Lỗi" @@ -128,54 +128,54 @@ msgstr "Xóa vĩnh vễn" msgid "Rename" msgstr "Sửa tên" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "Đang chờ" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} đã tồn tại" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "thay thế" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "tên gợi ý" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "hủy" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "đã thay thế {new_name} bằng {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "lùi lại" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "tệp tin đang được tải lên" @@ -213,15 +213,15 @@ msgid "" "big." msgstr "Your download is being prepared. This might take some time if the files are big." -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "Tên" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "Kích cỡ" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "Thay đổi" @@ -298,33 +298,33 @@ msgstr "Bạn không có quyền ghi vào đây." 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:73 +#: templates/index.php:75 msgid "Download" msgstr "Tải về" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "Bỏ chia sẻ" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "Xóa" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "Tập tin tải lên quá lớn" -#: templates/index.php:107 +#: templates/index.php:110 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:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "Tập tin đang được quét ,vui lòng chờ." -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "Hiện tại đang quét" diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index d05019be94..450b375587 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -27,7 +27,7 @@ msgstr "%s 向您分享了 »%s«" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "组" #: ajax/update.php:11 msgid "Turned on maintenance mode" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index fe65471744..a61fb2a34d 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/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-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-08-30 13:50+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" @@ -79,7 +79,7 @@ msgstr "没有足够的存储空间" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "上传失败" #: ajax/upload.php:127 msgid "Invalid directory." @@ -114,7 +114,7 @@ msgstr "URL不能为空" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "无效的文件夹名。”Shared“ 是 Owncloud 预留的文件夹" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "错误" @@ -130,54 +130,54 @@ msgstr "永久删除" msgid "Rename" msgstr "重命名" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "等待" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} 已存在" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "替换" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "建议名称" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "取消" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "已将 {old_name}替换成 {new_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "撤销" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n 文件夹" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n个文件" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" msgstr "" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" msgstr "文件上传中" @@ -215,15 +215,15 @@ msgid "" "big." msgstr "下载正在准备中。如果文件较大可能会花费一些时间。" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "名称" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "大小" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" msgstr "修改日期" @@ -300,33 +300,33 @@ msgstr "您没有写权限" msgid "Nothing in here. Upload something!" msgstr "这里还什么都没有。上传些东西吧!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "下载" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" msgstr "取消共享" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "删除" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "上传文件过大" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "您正尝试上传的文件超过了此服务器可以上传的最大容量限制" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "文件正在被扫描,请稍候。" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" msgstr "当前扫描" diff --git a/l10n/zh_TW/core.po b/l10n/zh_TW/core.po index 52d6f70117..2a689d6fc8 100644 --- a/l10n/zh_TW/core.po +++ b/l10n/zh_TW/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-08-30 09:32-0400\n" -"PO-Revision-Date: 2013-08-30 13:33+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 13:10+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" @@ -26,32 +26,32 @@ msgstr "%s 與您分享了 %s" #: ajax/share.php:227 msgid "group" -msgstr "" +msgstr "群組" #: ajax/update.php:11 msgid "Turned on maintenance mode" -msgstr "" +msgstr "已啓用維護模式" #: ajax/update.php:14 msgid "Turned off maintenance mode" -msgstr "" +msgstr "已停用維護模式" #: ajax/update.php:17 msgid "Updated database" -msgstr "" +msgstr "已更新資料庫" #: ajax/update.php:20 msgid "Updating filecache, this may take really long..." -msgstr "" +msgstr "更新檔案快取,這可能要很久…" #: ajax/update.php:23 msgid "Updated filecache" -msgstr "" +msgstr "已更新檔案快取" #: ajax/update.php:26 #, php-format msgid "... %d%% done ..." -msgstr "" +msgstr "已完成 %d%%" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -64,13 +64,13 @@ msgstr "沒有可增加的分類?" #: ajax/vcategories/add.php:37 #, php-format msgid "This category already exists: %s" -msgstr "分類已經存在: %s" +msgstr "分類已經存在:%s" #: 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 "未指定物件類型" #: ajax/vcategories/addToFavorites.php:30 #: ajax/vcategories/removeFromFavorites.php:30 @@ -291,7 +291,7 @@ msgstr "{owner} 已經和您分享" #: js/share.js:183 msgid "Share with" -msgstr "與...分享" +msgstr "分享給別人" #: js/share.js:188 msgid "Share with link" @@ -319,7 +319,7 @@ msgstr "寄出" #: js/share.js:208 msgid "Set expiration date" -msgstr "設置到期日" +msgstr "指定到期日" #: js/share.js:209 msgid "Expiration date" @@ -343,7 +343,7 @@ msgstr "已和 {user} 分享 {item}" #: js/share.js:338 msgid "Unshare" -msgstr "取消共享" +msgstr "取消分享" #: js/share.js:350 msgid "can edit" @@ -375,15 +375,15 @@ msgstr "受密碼保護" #: js/share.js:643 msgid "Error unsetting expiration date" -msgstr "解除過期日設定失敗" +msgstr "取消到期日設定失敗" #: js/share.js:655 msgid "Error setting expiration date" -msgstr "錯誤的到期日設定" +msgstr "設定到期日發生錯誤" #: js/share.js:670 msgid "Sending ..." -msgstr "正在傳送..." +msgstr "正在傳送…" #: js/share.js:681 msgid "Email sent" @@ -414,7 +414,7 @@ msgid "" "The link to reset your password has been sent to your email.
    If you do " "not receive it within a reasonable amount of time, check your spam/junk " "folders.
    If it is not there ask your local administrator ." -msgstr "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被放到垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。" +msgstr "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被歸為垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。" #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
    Did you make sure your email/username was right?" @@ -487,7 +487,7 @@ msgstr "存取被拒" #: templates/404.php:15 msgid "Cloud not found" -msgstr "未發現雲端" +msgstr "找不到網頁" #: templates/altmail.php:2 #, php-format @@ -498,7 +498,7 @@ msgid "" "View it: %s\n" "\n" "Cheers!" -msgstr "嗨,\n\n通知您,%s 與您分享了 %s 。\n看一下:%s" +msgstr "嗨,\n\n通知您一聲,%s 與您分享了 %s 。\n您可以到 %s 看看" #: templates/edit_categories_dialog.php:4 msgid "Edit categories" @@ -557,7 +557,7 @@ msgstr "進階" #: templates/installation.php:67 msgid "Data folder" -msgstr "資料夾" +msgstr "資料儲存位置" #: templates/installation.php:77 msgid "Configure the database" @@ -630,16 +630,16 @@ msgstr "登入" #: templates/login.php:45 msgid "Alternative Logins" -msgstr "替代登入方法" +msgstr "其他登入方法" #: templates/mail.php:15 #, php-format msgid "" "Hey there,

    just letting you know that %s shared »%s« with you.
    View it!

    Cheers!" -msgstr "嗨,

    通知您,%s 與您分享了 %s ,
    看一下吧" +msgstr "嗨,

    通知您一聲,%s 與您分享了 %s ,
    看一下吧" #: 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/zh_TW/files.po b/l10n/zh_TW/files.po index ffc68f1238..260d80d6bf 100644 --- a/l10n/zh_TW/files.po +++ b/l10n/zh_TW/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-30 09:31-0400\n" -"PO-Revision-Date: 2013-08-30 13:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 13:20+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" @@ -21,7 +21,7 @@ msgstr "" #: ajax/move.php:17 #, php-format msgid "Could not move %s - File with this name already exists" -msgstr "無法移動 %s - 同名的檔案已經存在" +msgstr "無法移動 %s ,同名的檔案已經存在" #: ajax/move.php:27 ajax/move.php:30 #, php-format @@ -30,7 +30,7 @@ msgstr "無法移動 %s" #: ajax/upload.php:16 ajax/upload.php:45 msgid "Unable to set upload directory." -msgstr "無法設定上傳目錄。" +msgstr "無法設定上傳目錄" #: ajax/upload.php:22 msgid "Invalid Token" @@ -38,11 +38,11 @@ msgstr "無效的 token" #: ajax/upload.php:59 msgid "No file was uploaded. Unknown error" -msgstr "沒有檔案被上傳。未知的錯誤。" +msgstr "沒有檔案被上傳,原因未知" #: ajax/upload.php:66 msgid "There is no error, the file uploaded with success" -msgstr "無錯誤,檔案上傳成功" +msgstr "一切都順利,檔案上傳成功" #: ajax/upload.php:67 msgid "" @@ -77,11 +77,11 @@ msgstr "儲存空間不足" #: ajax/upload.php:109 msgid "Upload failed" -msgstr "" +msgstr "上傳失敗" #: ajax/upload.php:127 msgid "Invalid directory." -msgstr "無效的資料夾。" +msgstr "無效的資料夾" #: appinfo/app.php:12 msgid "Files" @@ -89,7 +89,7 @@ msgstr "檔案" #: js/file-upload.js:11 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0" +msgstr "無法上傳您的檔案,因為它可能是一個目錄或檔案大小為0" #: js/file-upload.js:24 msgid "Not enough space available" @@ -102,17 +102,17 @@ msgstr "上傳已取消" #: js/file-upload.js:165 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "檔案上傳中。離開此頁面將會取消上傳。" +msgstr "檔案上傳中,離開此頁面將會取消上傳。" #: js/file-upload.js:239 msgid "URL cannot be empty." -msgstr "URL 不能為空白。" +msgstr "URL 不能為空" #: js/file-upload.js:244 lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgstr "無效的資料夾名稱,'Shared' 的使用被 ownCloud 保留" -#: js/file-upload.js:275 js/file-upload.js:291 js/files.js:511 js/files.js:549 +#: js/file-upload.js:276 js/file-upload.js:292 js/files.js:512 js/files.js:550 msgid "Error" msgstr "錯誤" @@ -128,70 +128,70 @@ msgstr "永久刪除" msgid "Rename" msgstr "重新命名" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:573 +#: js/filelist.js:50 js/filelist.js:53 js/filelist.js:575 msgid "Pending" msgstr "等候中" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "{new_name} already exists" msgstr "{new_name} 已經存在" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "replace" msgstr "取代" -#: js/filelist.js:305 +#: js/filelist.js:307 msgid "suggest name" msgstr "建議檔名" -#: js/filelist.js:305 js/filelist.js:307 +#: js/filelist.js:307 js/filelist.js:309 msgid "cancel" msgstr "取消" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "replaced {new_name} with {old_name}" msgstr "使用 {new_name} 取代 {old_name}" -#: js/filelist.js:352 +#: js/filelist.js:354 msgid "undo" msgstr "復原" -#: js/filelist.js:422 js/filelist.js:488 js/files.js:580 +#: js/filelist.js:424 js/filelist.js:490 js/files.js:581 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n 個資料夾" -#: js/filelist.js:423 js/filelist.js:489 js/files.js:586 +#: js/filelist.js:425 js/filelist.js:491 js/files.js:587 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n 個檔案" -#: js/filelist.js:430 +#: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} 和 {files}" -#: js/filelist.js:561 +#: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" msgstr[0] "%n 個檔案正在上傳" -#: js/filelist.js:626 +#: js/filelist.js:628 msgid "files uploading" -msgstr "檔案正在上傳中" +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 "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." -msgstr "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 。" +msgstr "檔名不合法,不允許 \\ / < > : \" | ? * 字元" #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" @@ -213,17 +213,17 @@ msgid "" "big." msgstr "正在準備您的下載,若您的檔案較大,將會需要更多時間。" -#: js/files.js:562 templates/index.php:67 +#: js/files.js:563 templates/index.php:69 msgid "Name" msgstr "名稱" -#: js/files.js:563 templates/index.php:78 +#: js/files.js:564 templates/index.php:81 msgid "Size" msgstr "大小" -#: js/files.js:564 templates/index.php:80 +#: js/files.js:565 templates/index.php:83 msgid "Modified" -msgstr "修改" +msgstr "修改時間" #: lib/app.php:73 #, php-format @@ -240,7 +240,7 @@ msgstr "檔案處理" #: templates/admin.php:7 msgid "Maximum upload size" -msgstr "最大上傳檔案大小" +msgstr "上傳限制" #: templates/admin.php:10 msgid "max. possible: " @@ -248,11 +248,11 @@ msgstr "最大允許:" #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." -msgstr "針對多檔案和目錄下載是必填的。" +msgstr "下載多檔案和目錄時,此項是必填的。" #: templates/admin.php:17 msgid "Enable ZIP-download" -msgstr "啟用 Zip 下載" +msgstr "啟用 ZIP 下載" #: templates/admin.php:20 msgid "0 is unlimited" @@ -260,7 +260,7 @@ msgstr "0代表沒有限制" #: templates/admin.php:22 msgid "Maximum input size for ZIP files" -msgstr "針對 ZIP 檔案最大輸入大小" +msgstr "ZIP 壓縮前的原始大小限制" #: templates/admin.php:26 msgid "Save" @@ -284,7 +284,7 @@ msgstr "從連結" #: templates/index.php:41 msgid "Deleted files" -msgstr "已刪除的檔案" +msgstr "回收桶" #: templates/index.php:46 msgid "Cancel upload" @@ -292,42 +292,42 @@ msgstr "取消上傳" #: templates/index.php:52 msgid "You don’t have write permissions here." -msgstr "您在這裡沒有編輯權。" +msgstr "您在這裡沒有編輯權" #: templates/index.php:59 msgid "Nothing in here. Upload something!" -msgstr "這裡什麼也沒有,上傳一些東西吧!" +msgstr "這裡還沒有東西,上傳一些吧!" -#: templates/index.php:73 +#: templates/index.php:75 msgid "Download" msgstr "下載" -#: templates/index.php:85 templates/index.php:86 +#: templates/index.php:88 templates/index.php:89 msgid "Unshare" -msgstr "取消共享" +msgstr "取消分享" -#: templates/index.php:91 templates/index.php:92 +#: templates/index.php:94 templates/index.php:95 msgid "Delete" msgstr "刪除" -#: templates/index.php:105 +#: templates/index.php:108 msgid "Upload too large" msgstr "上傳過大" -#: templates/index.php:107 +#: templates/index.php:110 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." -msgstr "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。" +msgstr "您試圖上傳的檔案大小超過伺服器的限制。" -#: templates/index.php:112 +#: templates/index.php:115 msgid "Files are being scanned, please wait." msgstr "正在掃描檔案,請稍等。" -#: templates/index.php:115 +#: templates/index.php:118 msgid "Current scanning" -msgstr "目前掃描" +msgstr "正在掃描" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "正在升級檔案系統快取..." +msgstr "正在升級檔案系統快取…" diff --git a/l10n/zh_TW/files_sharing.po b/l10n/zh_TW/files_sharing.po index 37faace2e6..59f0e459f5 100644 --- a/l10n/zh_TW/files_sharing.po +++ b/l10n/zh_TW/files_sharing.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-08-27 11:18-0400\n" -"PO-Revision-Date: 2013-08-26 04:20+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 13:20+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" @@ -20,7 +20,7 @@ msgstr "" #: templates/authenticate.php:4 msgid "The password is wrong. Try again." -msgstr "請檢查您的密碼並再試一次。" +msgstr "請檢查您的密碼並再試一次" #: templates/authenticate.php:7 msgid "Password" @@ -32,7 +32,7 @@ msgstr "送出" #: templates/part.404.php:3 msgid "Sorry, this link doesn’t seem to work anymore." -msgstr "抱歉,這連結看來已經不能用了。" +msgstr "抱歉,此連結已經失效" #: templates/part.404.php:4 msgid "Reasons might be:" @@ -64,7 +64,7 @@ msgstr "%s 和您分享了資料夾 %s " msgid "%s shared the file %s with you" msgstr "%s 和您分享了檔案 %s" -#: templates/public.php:26 templates/public.php:88 +#: templates/public.php:26 templates/public.php:92 msgid "Download" msgstr "下載" @@ -76,6 +76,6 @@ msgstr "上傳" msgid "Cancel upload" msgstr "取消上傳" -#: templates/public.php:85 +#: templates/public.php:89 msgid "No preview available for" msgstr "無法預覽" diff --git a/l10n/zh_TW/files_trashbin.po b/l10n/zh_TW/files_trashbin.po index 53c5a7baec..57f79d287d 100644 --- a/l10n/zh_TW/files_trashbin.po +++ b/l10n/zh_TW/files_trashbin.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-08-27 11:18-0400\n" -"PO-Revision-Date: 2013-08-26 04:00+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 13:20+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" @@ -28,47 +28,47 @@ msgstr "無法永久刪除 %s" msgid "Couldn't restore %s" msgstr "無法還原 %s" -#: js/trash.js:7 js/trash.js:100 +#: js/trash.js:7 js/trash.js:102 msgid "perform restore operation" msgstr "進行還原動作" -#: js/trash.js:20 js/trash.js:48 js/trash.js:118 js/trash.js:146 +#: js/trash.js:20 js/trash.js:49 js/trash.js:120 js/trash.js:148 msgid "Error" msgstr "錯誤" -#: js/trash.js:36 +#: js/trash.js:37 msgid "delete file permanently" msgstr "永久刪除檔案" -#: js/trash.js:127 +#: js/trash.js:129 msgid "Delete permanently" msgstr "永久刪除" -#: js/trash.js:182 templates/index.php:17 +#: js/trash.js:184 templates/index.php:17 msgid "Name" msgstr "名稱" -#: js/trash.js:183 templates/index.php:27 +#: js/trash.js:185 templates/index.php:27 msgid "Deleted" msgstr "已刪除" -#: js/trash.js:191 +#: js/trash.js:193 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n 個資料夾" -#: js/trash.js:197 +#: js/trash.js:199 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n 個檔案" -#: lib/trash.php:819 lib/trash.php:821 +#: lib/trash.php:814 lib/trash.php:816 msgid "restored" msgstr "已還原" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "您的垃圾桶是空的!" +msgstr "您的回收桶是空的!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" diff --git a/l10n/zh_TW/settings.po b/l10n/zh_TW/settings.po index 9ba8be581b..5bda63d03b 100644 --- a/l10n/zh_TW/settings.po +++ b/l10n/zh_TW/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-08-27 11:18-0400\n" -"PO-Revision-Date: 2013-08-26 04:10+0000\n" +"POT-Creation-Date: 2013-09-01 13:27-0400\n" +"PO-Revision-Date: 2013-09-01 14: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" @@ -85,47 +85,47 @@ msgstr "使用者移出群組 %s 錯誤" msgid "Couldn't update app." msgstr "無法更新應用程式" -#: js/apps.js:35 +#: js/apps.js:43 msgid "Update to {appversion}" msgstr "更新至 {appversion}" -#: js/apps.js:41 js/apps.js:74 js/apps.js:100 +#: js/apps.js:49 js/apps.js:82 js/apps.js:108 msgid "Disable" msgstr "停用" -#: js/apps.js:41 js/apps.js:81 js/apps.js:94 js/apps.js:109 +#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 msgid "Enable" msgstr "啟用" -#: js/apps.js:63 +#: js/apps.js:71 msgid "Please wait...." msgstr "請稍候..." -#: js/apps.js:71 js/apps.js:72 js/apps.js:92 +#: js/apps.js:79 js/apps.js:80 js/apps.js:100 msgid "Error while disabling app" msgstr "停用應用程式錯誤" -#: js/apps.js:91 js/apps.js:104 js/apps.js:105 +#: js/apps.js:99 js/apps.js:112 js/apps.js:113 msgid "Error while enabling app" msgstr "啓用應用程式錯誤" -#: js/apps.js:115 +#: js/apps.js:123 msgid "Updating...." msgstr "更新中..." -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error while updating app" msgstr "更新應用程式錯誤" -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error" msgstr "錯誤" -#: js/apps.js:119 templates/apps.php:43 +#: js/apps.js:127 templates/apps.php:43 msgid "Update" msgstr "更新" -#: js/apps.js:122 +#: js/apps.js:130 msgid "Updated" msgstr "已更新" @@ -356,7 +356,7 @@ msgid "" "licensed under the AGPL." -msgstr "由 ownCloud 社群開發,原始碼AGPL 許可證下發布。" +msgstr "由 ownCloud 社群開發,原始碼AGPL 授權許可下發布。" #: templates/apps.php:13 msgid "Add your App" @@ -472,7 +472,7 @@ msgstr "WebDAV" msgid "" "Use this address to access your Files via WebDAV" -msgstr "使用這個網址來透過 WebDAV 存取您的檔案" +msgstr "以上的 WebDAV 位址可以讓您透過 WebDAV 協定存取檔案" #: templates/personal.php:117 msgid "Encryption" diff --git a/lib/l10n/es.php b/lib/l10n/es.php index 14bbf6f6a1..7a82f8f6a1 100644 --- a/lib/l10n/es.php +++ b/lib/l10n/es.php @@ -1,5 +1,7 @@ "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión de ownCloud", +"No app name specified" => "No se ha especificado nombre de la aplicación", "Help" => "Ayuda", "Personal" => "Personal", "Settings" => "Ajustes", @@ -13,6 +15,15 @@ $TRANSLATIONS = array( "Back to Files" => "Volver a Archivos", "Selected files too large to generate zip file." => "Los archivos seleccionados son demasiado grandes para generar el archivo zip.", "Download the files in smaller chunks, seperately or kindly ask your administrator." => "Descargue los archivos en trozos más pequeños, por separado o solicítelos amablemente su administrador.", +"No source specified when installing app" => "No se ha especificado origen cuando se ha instalado la aplicación", +"No href specified when installing app from http" => "No href especificado cuando se ha instalado la aplicación", +"No path specified when installing app from local file" => "Sin path especificado cuando se ha instalado la aplicación desde el fichero local", +"Archives of type %s are not supported" => "Ficheros de tipo %s no son soportados", +"Failed to open archive when installing app" => "Fallo de apertura de fichero mientras se instala la aplicación", +"App does not provide an info.xml file" => "La aplicación no suministra un fichero info.xml", +"App can't be installed because of not allowed code in the App" => "La aplicación no puede ser instalada por tener código no autorizado en la aplicación", +"App can't be installed because it is not compatible with this version of ownCloud" => "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud", +"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n\nque no está permitida para aplicaciones no distribuidas", "Application is not enabled" => "La aplicación no está habilitada", "Authentication error" => "Error de autenticación", "Token expired. Please reload page." => "Token expirado. Por favor, recarga la página.", diff --git a/lib/l10n/it.php b/lib/l10n/it.php index a35027eb96..c3a040048e 100644 --- a/lib/l10n/it.php +++ b/lib/l10n/it.php @@ -23,6 +23,7 @@ $TRANSLATIONS = array( "App does not provide an info.xml file" => "L'applicazione non fornisce un file info.xml", "App can't be installed because of not allowed code in the App" => "L'applicazione non può essere installata a causa di codice non consentito al suo interno", "App can't be installed because it is not compatible with this version of ownCloud" => "L'applicazione non può essere installata poiché non è compatibile con questa versione di ownCloud", +"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "L'applicazione non può essere installata poiché contiene il tag true che non è permesso alle applicazioni non shipped", "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "L'applicazione non può essere installata poiché la versione in info.xml/version non è la stessa riportata dall'app store", "App directory already exists" => "La cartella dell'applicazione esiste già", "Can't create app folder. Please fix permissions. %s" => "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s", diff --git a/lib/l10n/ja_JP.php b/lib/l10n/ja_JP.php index 902170524b..e2b67e7618 100644 --- a/lib/l10n/ja_JP.php +++ b/lib/l10n/ja_JP.php @@ -1,5 +1,7 @@ " \"%s\" アプリは、このバージョンのownCloudと互換性がない為、インストールできません。", +"No app name specified" => "アプリ名が未指定", "Help" => "ヘルプ", "Personal" => "個人", "Settings" => "設定", @@ -13,6 +15,17 @@ $TRANSLATIONS = array( "Back to Files" => "ファイルに戻る", "Selected files too large to generate zip file." => "選択したファイルはZIPファイルの生成には大きすぎます。", "Download the files in smaller chunks, seperately or kindly ask your administrator." => "ファイルは、小さいファイルに分割されてダウンロードされます。もしくは、管理者にお尋ねください。", +"No source specified when installing app" => "アプリインストール時のソースが未指定", +"No href specified when installing app from http" => "アプリインストール時のhttpの URL が未指定", +"No path specified when installing app from local file" => "アプリインストール時のローカルファイルのパスが未指定", +"Archives of type %s are not supported" => "\"%s\"タイプのアーカイブ形式は未サポート", +"Failed to open archive when installing app" => "アプリをインストール中にアーカイブファイルを開けませんでした。", +"App does not provide an info.xml file" => "アプリにinfo.xmlファイルが入っていません", +"App can't be installed because of not allowed code in the App" => "アプリで許可されないコードが入っているのが原因でアプリがインストールできません", +"App can't be installed because it is not compatible with this version of ownCloud" => "アプリは、このバージョンのownCloudと互換性がない為、インストールできません。", +"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "info.xml/versionのバージョンがアプリストアのバージョンと合っていない為、アプリはインストールされません", +"App directory already exists" => "アプリディレクトリは既に存在します", +"Can't create app folder. Please fix permissions. %s" => "アプリフォルダを作成出来ませんでした。%s のパーミッションを修正してください。", "Application is not enabled" => "アプリケーションは無効です", "Authentication error" => "認証エラー", "Token expired. Please reload page." => "トークンが無効になりました。ページを再読込してください。", diff --git a/settings/l10n/it.php b/settings/l10n/it.php index 0fda130939..29594a95dc 100644 --- a/settings/l10n/it.php +++ b/settings/l10n/it.php @@ -20,6 +20,8 @@ $TRANSLATIONS = array( "Disable" => "Disabilita", "Enable" => "Abilita", "Please wait...." => "Attendere...", +"Error while disabling app" => "Errore durante la disattivazione", +"Error while enabling app" => "Errore durante l'attivazione", "Updating...." => "Aggiornamento in corso...", "Error while updating app" => "Errore durante l'aggiornamento", "Error" => "Errore", diff --git a/settings/l10n/ja_JP.php b/settings/l10n/ja_JP.php index 8bbdc222e4..63e83cab4d 100644 --- a/settings/l10n/ja_JP.php +++ b/settings/l10n/ja_JP.php @@ -20,6 +20,8 @@ $TRANSLATIONS = array( "Disable" => "無効", "Enable" => "有効化", "Please wait...." => "しばらくお待ちください。", +"Error while disabling app" => "アプリ無効化中にエラーが発生", +"Error while enabling app" => "アプリ有効化中にエラーが発生", "Updating...." => "更新中....", "Error while updating app" => "アプリの更新中にエラーが発生", "Error" => "エラー", diff --git a/settings/l10n/pt_PT.php b/settings/l10n/pt_PT.php index d72bca799d..e1299bb964 100644 --- a/settings/l10n/pt_PT.php +++ b/settings/l10n/pt_PT.php @@ -20,11 +20,14 @@ $TRANSLATIONS = array( "Disable" => "Desactivar", "Enable" => "Activar", "Please wait...." => "Por favor aguarde...", +"Error while disabling app" => "Erro enquanto desactivava a aplicação", +"Error while enabling app" => "Erro enquanto activava a aplicação", "Updating...." => "A Actualizar...", "Error while updating app" => "Erro enquanto actualizava a aplicação", "Error" => "Erro", "Update" => "Actualizar", "Updated" => "Actualizado", +"Decrypting files... Please wait, this can take some time." => "A desencriptar os ficheiros... Por favor aguarde, esta operação pode demorar algum tempo.", "Saving..." => "A guardar...", "deleted" => "apagado", "undo" => "desfazer", @@ -102,6 +105,9 @@ $TRANSLATIONS = array( "WebDAV" => "WebDAV", "Use this address to access your Files via WebDAV" => "Use este endereço para aceder aos seus ficheiros via WebDav", "Encryption" => "Encriptação", +"The encryption app is no longer enabled, decrypt all your file" => "A aplicação de encriptação não se encontra mais disponível, desencripte o seu ficheiro", +"Log-in password" => "Password de entrada", +"Decrypt all Files" => "Desencriptar todos os ficheiros", "Login Name" => "Nome de utilizador", "Create" => "Criar", "Admin Recovery Password" => "Recuperar password de administrador", diff --git a/settings/l10n/zh_TW.php b/settings/l10n/zh_TW.php index 5cd3679751..73c015d17a 100644 --- a/settings/l10n/zh_TW.php +++ b/settings/l10n/zh_TW.php @@ -75,7 +75,7 @@ $TRANSLATIONS = array( "More" => "更多", "Less" => "更少", "Version" => "版本", -"Developed by the ownCloud community, the source code is licensed under the AGPL." => "由 ownCloud 社群開發,原始碼AGPL 許可證下發布。", +"Developed by the ownCloud community, the source code is licensed under the AGPL." => "由 ownCloud 社群開發,原始碼AGPL 授權許可下發布。", "Add your App" => "添加你的 App", "More Apps" => "更多Apps", "Select an App" => "選擇一個應用程式", @@ -103,7 +103,7 @@ $TRANSLATIONS = array( "Language" => "語言", "Help translate" => "幫助翻譯", "WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "使用這個網址來透過 WebDAV 存取您的檔案", +"Use this address to access your Files via WebDAV" => "以上的 WebDAV 位址可以讓您透過 WebDAV 協定存取檔案", "Encryption" => "加密", "The encryption app is no longer enabled, decrypt all your file" => "加密應用程式已經停用,請您解密您所有的檔案", "Log-in password" => "登入密碼", From 1e501a852169843f8dc95b587adb18d4c33aaf6a Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 2 Sep 2013 08:05:47 +0200 Subject: [PATCH 170/170] IE8 fixes --- core/css/fixes.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/css/fixes.css b/core/css/fixes.css index 3df60ad5b5..a33bd94bb1 100644 --- a/core/css/fixes.css +++ b/core/css/fixes.css @@ -44,3 +44,7 @@ height: auto !important; } +/* oc-dialog only uses box shadow which is not supported by ie8 */ +.ie8 .oc-dialog { + border: 1px solid #888888; +}