From 5b44714f4cbd75138519789f55fd8b6f4b5d4241 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Tue, 13 Nov 2012 15:11:02 +0100 Subject: [PATCH 001/184] =?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 00000000000..8b1a42925a6 --- /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 00000000000..a7487c485f1 --- /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/184] 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 8b1a42925a6..3fa494a2e03 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/184] 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 3fa494a2e03..d49e9d3bde3 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/184] save current work state of Preview Lib --- lib/preview.php | 378 +++++++++++++++++++++++++++++------------------- 1 file changed, 229 insertions(+), 149 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index d49e9d3bde3..c7047633212 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; + } + } + } - // the thumbnail cache folder - const THUMBNAILS_FOLDER = 'thumbnails'; + /** + * @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(); - - // 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); + 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; } + /** + * @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(); + } + } -} - - - -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); - } - - -} - + /** + * @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_PreviewUnknown { - public static function getThumbnail($maxX,$maxY) { + /** + * @brief create instances of all the registered preview providers + * @return void + */ + private static function initProviders(){ + if(count(self::$providers)>0) { + return; + } + + foreach(self::$registeredProviders as $provider) { + $class=$provider['class']; + $options=$provider['options']; - // 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; + $object = new $class($options); + + self::$providers[$object->getMimeType()] = $object; } - - // 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); - } - -} - + + $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/184] 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 be19b66bf72..be5766cea9d 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/184] 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 c7047633212..de79b424077 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 00000000000..6b6e8e3599f --- /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 00000000000..afa27c0b143 --- /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 00000000000..645e6fa6232 --- /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 00000000000..e69de29bb2d diff --git a/lib/preview/provider.php b/lib/preview/provider.php new file mode 100644 index 00000000000..c45edbba44d --- /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 00000000000..1cd270db687 --- /dev/null +++ b/lib/preview/unknown.php @@ -0,0 +1,34 @@ + Date: Thu, 9 May 2013 23:59:16 +0200 Subject: [PATCH 007/184] implement OC_Preview --- lib/preview.php | 517 +++++++++++++++++++++++++++++---------- 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, 446 insertions(+), 182 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index de79b424077..c062a068872 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)){ - return false; + //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; @@ -106,33 +280,56 @@ 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 + * @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 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'); - } + public function getPreview(){ + $file = $this->file; + $maxX = $this->maxX; + $maxY = $this->maxY; + $scalingup = $this->scalingup; - /** - * @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); + $fileinfo = $this->fileview->getFileInfo($file); + $fileid = $fileinfo['fileid']; + + $cached = self::isCached(); + + if($cached){ + $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; + } + $this->preview = $preview; + } + $this->resizeAndCrop(); + return $this->preview; } /** @@ -141,72 +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 void + */ + public function showPreview(){ + OCP\Response::enableCaching(3600 * 24); // 24 hour + $preview = $this->getPreview(); + if($preview){ + $preview->show(); + } + } + + /** + * @brief resize, crop and fix orientation * @return image */ - public static function getPreview($file, $maxX, $maxY, $scalingup){ - self::init(); + 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; - $cached = self::isCached($file, $maxX, $maxY); - if($cached){ - $image = new \OC_Image($cached); - if($image->width() != $maxX && $image->height != $maxY){ - $image->preciseResize($maxX, $maxY); + 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; } - return $image; } + $newXsize = $realx * $factor; + $newYsize = $realy * $factor; + + // resize + $image->preciseResize($newXsize, $newYsize); - $mimetype = self::$fileview->getMimeType($file); + if($newXsize === $x && $newYsize === $y){ + $this->preview = $image; + return; + } - $preview; + 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; + } - foreach(self::$providers as $supportedmimetype => $provider){ - if(!preg_match($supportedmimetype, $mimetype)){ - continue; + if($newXsize < $x || $newYsize < $y){ + if($newXsize > $x){ + $cropX = floor(($newXsize - $x) * 0.5); + $image->crop($cropX, 0, $x, $newYsize); } - $preview = $provider->getThumbnail($file, $maxX, $maxY, $scalingup); - - if(!$preview){ - continue; + if($newYsize > $y){ + $cropY = floor(($newYsize - $y) * 0.5); + $image->crop(0, $cropY, $newXsize, $y); } - if(!($preview instanceof \OC_Image)){ - $preview = @new \OC_Image($preview); - } + $newXsize = (int) $image->width(); + $newYsize = (int) $image->height(); - //cache thumbnail - $preview->save(self::$filesview->getAbsolutePath(self::THUMBNAILS_FOLDER . PATH_SEPARATOR . $fileid . PATH_SEPARATOR . $x . '-' . $y . '.png')); + //create transparent background layer + $transparentlayer = imagecreatetruecolor($x, $y); + $black = imagecolorallocate($transparentlayer, 0, 0, 0); + $image = $image->resource(); + imagecolortransparent($transparentlayer, $black); - break; - } - - return $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 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::$fileview)){ - self::initViews(); + $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){ - self::init(); + OC_Util::checkLoggedIn(); - $file = (string) urldecode($_GET['file']); - $maxX = (int) $_GET['x']; - $maxY = (int) $_GET['y']; - $scalingup = (bool) $_GET['scalingup']; + $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; - $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($maxX === 0 || $maxY === 0){ - OC_Log::write('core', 'Can not create preview with 0px width or 0px height', OC_Log::DEBUG); + 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; } + } + + /** + * @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 = ''; + + $user = null; + $path = null; - 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(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(!self::$fileview->filesize($path)){ - OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND); + $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; } - 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 6b6e8e3599f..6766cdb2148 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 afa27c0b143..c994240424c 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 645e6fa6232..2481e743783 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 c45edbba44d..e9264030144 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 1cd270db687..5089a56d671 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/184] 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 d86ad643914..695f8569538 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/184] 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 c062a068872..44b551006f1 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); + + //$black = imagecolorallocate(0,0,0); + //imagecolortransparent($transparentlayer, $black); - $image = new \OC_Image($transparentlayer); + $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/184] 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 44b551006f1..3b6e0ae131e 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/184] 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 2481e743783..f5fac0b8366 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/184] 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 6766cdb2148..589c7d829d5 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/184] 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 1f0ceb3ace3..868755a1205 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/184] 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 3b6e0ae131e..d6c72603524 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 589c7d829d5..a0df337d58e 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 868755a1205..8144956c998 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 5194e165818..6fb4b051f41 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 f1b7f3eee73..bf1d8b2b3b5 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 e9264030144..2f2a0e68486 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 746b0ebb47a..290c18a72d7 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/184] 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 d6c72603524..572c85057be 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 00000000000..12b93f696ea --- /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/184] 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 be5766cea9d..c45ffee26fd 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 572c85057be..39a87ed5396 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; + } + + $path = \OC\Files\Filesystem::normalizePath($path, false); + if(substr($path, 0, 1) == '/'){ + $path = substr($path, 1); } - if($user !== null && $path !== null){ - $preview = new OC_Preview($userid, $path, $file, $maxX, $maxY, $scalingup); + 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 290c18a72d7..5bbdcf847f1 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/184] 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 72834009201..db6eaf852af 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/184] 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 a0df337d58e..52aad67ca8b 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/184] 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 12b93f696ea..8f4697dce04 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/184] 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 52aad67ca8b..a8f203528c5 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/184] check if the imagick extension is loaded --- lib/preview/svg.php | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/preview/svg.php b/lib/preview/svg.php index 8f4697dce04..415b7751c2b 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'); + 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; + //new image object + $image = new \OC_Image($svg); + //check if image object is valid + if (!$image->valid()) return false; - return $image; + return $image; + } } -} -OC_Preview::registerProvider('OC_Preview_SVG'); \ No newline at end of file + OC_Preview::registerProvider('OC_Preview_SVG'); + +} \ 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/184] 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 00000000000..2b5d8edb893 --- /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/184] 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 2b5d8edb893..1e88aec69fd 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/184] 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 8144956c998..1e517b38182 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/184] 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 6fb4b051f41..18f5cfde375 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/184] make pdf backend work with encryption --- lib/preview/pdf.php | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index bf1d8b2b3b5..de5263f91d8 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); - public function getThumbnail($path, $maxX, $maxY, $scalingup,$fileview) { - //create imagick object from pdf - $pdf = new imagick($fileview->getLocalFile($path) . '[0]'); - $pdf->setImageFormat('jpg'); + //create imagick object from pdf + $pdf = new imagick($tmppath . '[0]'); + $pdf->setImageFormat('jpg'); - //new image object - $image = new \OC_Image($pdf); - //check if image object is valid - if (!$image->valid()) return false; + unlink($tmppath); - return $image; + //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'); \ No newline at end of file + OC_Preview::registerProvider('OC_Preview_PDF'); +} From 08a022aaa48a6bae95ff75204a763a7c16a8253e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 28 May 2013 12:09:46 +0200 Subject: [PATCH 027/184] 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 1e517b38182..d2aaf730d67 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/184] 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 39a87ed5396..6fc166b9c70 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/184] 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 724bd250a5c..ae384225bed 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 6fc166b9c70..7c4db971dfb 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/184] 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 c45ffee26fd..4b3ad53da01 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 ae384225bed..525b259f673 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 7c4db971dfb..31812035c49 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 a8f203528c5..c62fc5397e5 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 d2aaf730d67..14ac97b552d 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 18f5cfde375..d62c7230788 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 de5263f91d8..4dd4538545c 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 2f2a0e68486..1e8d537adc8 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 415b7751c2b..70be263189d 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 1e88aec69fd..4004ecd3fce 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 5bbdcf847f1..6a8d2fbb75c 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/184] namespace fix --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 31812035c49..855d5a9da04 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/184] 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 855d5a9da04..1150681e64f 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 c62fc5397e5..933d65ec59e 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 14ac97b552d..aa97c3f43fc 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 d62c7230788..cfe78f32727 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 4dd4538545c..66570b05aa4 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 1e8d537adc8..58e7ad7f453 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 70be263189d..746315d6e6a 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 4004ecd3fce..5961761aaa4 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 6a8d2fbb75c..2977cd68923 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/184] 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 5961761aaa4..def6806860b 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/184] 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 933d65ec59e..080e424e5bd 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 aa97c3f43fc..18e9d4f778c 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 cfe78f32727..303626e022e 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/184] 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 303626e022e..3c6be5c9226 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/184] 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 1150681e64f..be3abc2cd47 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/184] improve imagick error handling --- lib/preview/pdf.php | 9 +++++++-- lib/preview/svg.php | 23 ++++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php index 85878a122a8..f1d0a33dc63 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 8bceeaf60d1..76d81589bac 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); - - $content = stream_get_contents($fileview->fopen($path, 'r')); - if(substr($content, 0, 5) !== '' . $content; + try{ + $svg = new \Imagick(); + $svg->setResolution($maxX, $maxY); + + $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/184] 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 4eb0e820406..f18da66c3b8 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/184] 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 3c6be5c9226..660e9fc3ce4 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/184] 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 be3abc2cd47..a73f4cb1ac0 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 00000000000..c99ca313c72 --- /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/184] 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 a73f4cb1ac0..4705efe2107 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 00000000000..e69de29bb2d diff --git a/lib/preview/office.php b/lib/preview/office.php new file mode 100644 index 00000000000..c66f5584f07 --- /dev/null +++ b/lib/preview/office.php @@ -0,0 +1,13 @@ + Date: Wed, 5 Jun 2013 10:50:20 +0200 Subject: [PATCH 042/184] 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 e69de29bb2d..1408e69e8cf 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 c66f5584f07..cc1addf3996 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/184] 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 18e9d4f778c..8cd50263e2a 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/184] 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 4705efe2107..f9f1288cb98 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/184] 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 1408e69e8cf..49c574c9521 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/184] 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 49c574c9521..1b8e482fb23 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/184] 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 db6eaf852af..2f437771f2b 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/184] 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 2f437771f2b..2812d848133 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/184] 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 1b8e482fb23..5121a4c5a08 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/184] 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 5121a4c5a08..33fa7a04e5d 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/184] implement previews for single shared files --- lib/preview.php | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index f9f1288cb98..904689bc4e1 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/184] 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 904689bc4e1..ed33e7b09dc 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/184] 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 080e424e5bd..e4041538e92 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 8cd50263e2a..cb959a962a7 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 660e9fc3ce4..60dfb5ff461 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 f1d0a33dc63..3eabd201156 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 76d81589bac..bafaf71b15a 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 f18da66c3b8..c7b8fabc6b0 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/184] check if imagick is loaded in office.php, not in libreoffice-cl.php --- lib/preview/libreoffice-cl.php | 87 ++++++++++++++++------------------ lib/preview/office.php | 17 ++++--- 2 files changed, 51 insertions(+), 53 deletions(-) diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php index 33fa7a04e5d..2749c4867e9 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; + } - //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); - $image = new \OC_Image($pdf); + unlink($abspath); + unlink($abspath . '.pdf'); - unlink($abspath); - unlink($abspath . '.pdf'); + return $image->valid() ? $image : false; + } - if (!$image->valid()) return false; + private function initCmd() { + $cmd = ''; - return $image; + if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) { + $cmd = \OC_Config::getValue('preview_libreoffice_path', null); } - 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 === '' && shell_exec('libreoffice --headless --version')) { + $cmd = 'libreoffice'; + } - if($cmd === '') { - $cmd = null; - } + if($cmd === '' && shell_exec('openoffice --headless --version')) { + $cmd = 'openoffice'; + } - $this->cmd = $cmd; + if($cmd === '') { + $cmd = null; } + + $this->cmd = $cmd; } } diff --git a/lib/preview/office.php b/lib/preview/office.php index cc1addf3996..20f545ef337 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/184] save current work state of office fallback --- lib/preview/msoffice.php | 95 ++++++++++++++++++++++++++---------- lib/preview/opendocument.php | 12 +++++ 2 files changed, 81 insertions(+), 26 deletions(-) diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php index c99ca313c72..4fedb735c95 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; + + return $image->valid() ? $image : false; } + } -class DOC extends MSOffice2003 { +\OC\Preview::registerProvider('OC\Preview\DOCX'); + +class MSOfficeExcel extends Provider { public function getMimeType() { - return '/application\/msword/'; + 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'); -\OC\Preview::registerProvider('OC\Preview\DOC'); + $abspath = $fileview->toTmpFile($path); + $tmppath = \OC_Helper::tmpFile(); -class DOCX extends MSOffice2007 { + $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF; + $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/dompdf'; - public function getMimeType() { - return '/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/'; + \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; } } -\OC\Preview::registerProvider('OC\Preview\DOCX'); - -class XLS extends MSOffice2003 { +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 e69de29bb2d..786a038ff82 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/184] 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 4fedb735c95..c2e39d00d94 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/184] 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 c2e39d00d94..65886169e9a 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/184] 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 6b161424917..6e1dc06c1bc 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/184] 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 ed33e7b09dc..3564fe3df44 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 6e1dc06c1bc..4e1ca7de741 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/184] stream first mb of movie to create preview --- lib/preview/movies.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/preview/movies.php b/lib/preview/movies.php index cb959a962a7..8531050d112 100644 --- a/lib/preview/movies.php +++ b/lib/preview/movies.php @@ -17,17 +17,19 @@ 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(); + $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 -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); + $cmd = 'ffmpeg -an -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 ' . escapeshellarg($tmppath); + shell_exec($cmd); - $image = new \OC_Image($tmppath); unlink($abspath); From bea4376fd48e714b121e1abb54f9bd786e89c877 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Tue, 18 Jun 2013 11:04:08 +0200 Subject: [PATCH 061/184] 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 20f545ef337..b6783bc5798 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 786a038ff82..00000000000 --- a/lib/preview/opendocument.php +++ /dev/null @@ -1,12 +0,0 @@ - Date: Tue, 18 Jun 2013 13:53:02 +0200 Subject: [PATCH 062/184] 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 65886169e9a..262582f0216 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/184] 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 60dfb5ff461..835ff529000 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/184] 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 262582f0216..ccf1d674c7a 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/184] update 3rdparty submodule --- 3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty b/3rdparty index 3ef9f738a91..0a8f54ed446 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/184] 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 108dcd741c6..be29186cbb7 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/184] 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 00000000000..3f9ad528afb --- /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 00000000000..f742383d632 --- /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 00000000000..1dee047b11f --- /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 00000000000..f0c0f1daf7e --- /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 00000000000..404f622ea7b --- /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 00000000000..bf29fbcbbf2 --- /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/184] 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 00000000000..2599da400c8 --- /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/184] 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 3564fe3df44..87e2e78d1d8 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/184] 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 e4041538e92..987aa9aef0a 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/184] 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 1e94275dcba..6dabd7d6970 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 a315c640d1a..e8cc81774dd 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 ccf19cf052c..5f9888f9f28 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 ae9ea187445..048d172f1c9 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/184] 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 be29186cbb7..222cc9c83ef 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 e8cc81774dd..0a8962a5312 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/184] 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 e19a35bbc5b..11bf028d93a 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 a79d34c9b23..224167b99c1 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/184] 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 b576253f4f0..c4a15c5fa61 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/184] 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 7b8d3cb4252..e82a597c61e 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 92a38bd2635..d53e38549d1 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 4b3ad53da01..41e82f8a73d 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 87e2e78d1d8..f12107c9f57 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/184] 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 d53e38549d1..3f260867582 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/184] 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 222cc9c83ef..d7843ab3535 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 c4a15c5fa61..89e270fd146 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/184] 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 224167b99c1..06d193bf8f3 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 e82a597c61e..fb99fca5b3f 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 0a8962a5312..326f2567f99 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/184] 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 00000000000..bc6c6bde650 --- /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/184] 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 f12107c9f57..6173fc8aa6b 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/184] clean up oc\preview --- lib/preview.php | 301 +++++++++++++++++++++++++++++------------------- 1 file changed, 181 insertions(+), 120 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 6173fc8aa6b..8ecad159157 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; - } - } - - 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 there are preview backends + if(empty(self::$providers)) { + self::initProviders(); + } - //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; + if(is_null($this->preview)) { + $this->preview = new \OC_Image(); } - $this->resizeAndCrop(); + 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($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(!is_null($maxscalefactor)) { + if($factor > $maxscalefactor) { + \OC_Log::write('core', 'scalefactor reduced from ' . $factor . ' to ' . $maxscalefactor, \OC_Log::DEBUG); + $factor = $maxscalefactor; } } - $newXsize = $realx * $factor; - $newYsize = $realy * $factor; - // resize + $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/184] 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 8ecad159157..0a8ab438367 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/184] fix typo --- lib/preview.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index 0a8ab438367..f018fa38850 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/184] improve validation of oc\preview and implement preview of error icon if something went wrong --- lib/preview.php | 255 ++++++++++++++++++++++++++++++------------------ 1 file changed, 159 insertions(+), 96 deletions(-) diff --git a/lib/preview.php b/lib/preview.php index f018fa38850..94e0cd96e7c 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; - - 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', $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); + $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'); + $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']; - } + public static function publicPreviewRouter() { + if(!\OC_App::isEnabled('files_sharing')){ + exit; + } - $path = \OC\Files\Filesystem::normalizePath($path, false); - if(substr($path, 0, 1) == '/') { - $path = substr($path, 1); - } + $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; } - 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); + $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; - - 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); + $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; } } @@ -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/184] fix typo --- lib/preview.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/preview.php b/lib/preview.php index 94e0cd96e7c..5b2ee2cddd4 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/184] 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 5b2ee2cddd4..62bcf4873b5 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/184] 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 2338cf439e4..156febd87f4 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 38d1314392b..9e62c991975 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 9462844a82b..0c4150f74d2 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 856dba625b3..6153f318723 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 5f9888f9f28..69997ad42b6 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 048d172f1c9..842c3325357 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/184] 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 4e1ca7de741..a31b365722e 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/184] 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 2599da400c8..c4894f848f6 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/184] 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 c4894f848f6..bebdc12b500 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/184] 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 62bcf4873b5..327a45d8d13 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/184] 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 327a45d8d13..fba1d893e08 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/184] 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 44e1d11ba06..e4a730bafc8 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/184] 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 fba1d893e08..cc287595f40 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/184] 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 41e82f8a73d..c0e658b26dc 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 cc287595f40..73e01a9e552 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 987aa9aef0a..84ab9f1ae43 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 2749c4867e9..ffe8de505f7 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 8531050d112..f4452e02fc2 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 835ff529000..baa24ad129e 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 ccf1d674c7a..9f6ea7f74cf 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 3eabd201156..0d289e9db94 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 bafaf71b15a..5507686af97 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 c7b8fabc6b0..acbf34c5e42 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 a31b365722e..f9f6fe957b2 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/184] 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 7b4f1127a94..4fd98545a7d 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 f742383d632..d5eda38e8aa 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 1dee047b11f..61a5c19f511 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 f0c0f1daf7e..3d91c341143 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 60cab4ad380..cb823703d9b 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 dd80b695bb1..92d4cc22718 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 f9b378887f3..06df5f54da6 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 440b6af7ac0..50991f7359d 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 bf29fbcbbf2..c41964738d0 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/184] 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 73e01a9e552..5576981225b 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/184] 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 5576981225b..08c0b7e20d0 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/184] OC\Preview - update git submodule --- 3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty b/3rdparty index 21762672395..31ed0ab78e4 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/184] 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 08c0b7e20d0..03aaaceb9ca 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/184] 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 6153f318723..0853c792750 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 03aaaceb9ca..c570a17e4a7 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/184] 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 c0e658b26dc..41e82f8a73d 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 c570a17e4a7..113b200c29b 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 84ab9f1ae43..987aa9aef0a 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 ffe8de505f7..2749c4867e9 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 f4452e02fc2..8531050d112 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 baa24ad129e..835ff529000 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 9f6ea7f74cf..ccf1d674c7a 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 0d289e9db94..3eabd201156 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 5507686af97..bafaf71b15a 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 acbf34c5e42..c7b8fabc6b0 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 f9f6fe957b2..a31b365722e 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/184] 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 9e62c991975..b87000a8993 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 113b200c29b..245ad64014e 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 a7487c485f1..e488eade4da 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/184] 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 4174ef0d185..71e76770aa9 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 44e2fc7293b..71b9a238823 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/184] 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 cacca78e970..7629414ef16 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/184] 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 | 22 ++- 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, 349 insertions(+), 309 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 53c6de09dd0..8b66ed6747b 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 a957a94f332..ab1b91167db 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 284b7a30208..650fa6a7c27 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 00000000000..a9d127ffcc4 --- /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 00000000000..aace24caa21 --- /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 00000000000..d018a57d37b --- /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 41e82f8a73d..75cc4d511c0 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 460e5679b02..b74e4c4512e 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 245ad64014e..9f4d20b4650 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 987aa9aef0a..9aec967282d 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 2749c4867e9..0f4ec3d0348 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 8531050d112..e2a1b8edddc 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 835ff529000..1eed566315c 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); - - $tags = $getID3->analyze($tmppath); - \getid3_lib::CopyTagsToComments($tags); - $picture = @$tags['id3v2']['APIC'][0]['data']; - - unlink($tmppath); + $tmpPath = $fileview->toTmpFile($path); + + $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(); + } - $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 ccf1d674c7a..e69ab0ab8cb 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 b6783bc5798..b93e1e57c8b 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 3eabd201156..723dc1d80d2 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 c7b8fabc6b0..89927fd580a 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 a31b365722e..ba13ca35d66 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 caa1e667c61..9b2c1211e61 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 a864614c9a1..842f28c90e0 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/184] 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 842f28c90e0..a892e310362 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/184] 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 aace24caa21..955fbc2626a 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 0f4ec3d0348..2f1d08499ef 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 723dc1d80d2..cc974b68818 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 bafaf71b15a..e939e526b1b 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/184] 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 c1b187608a6..4bc38e20e56 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/184] 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 294223aa094..fbbe9b7f3cb 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 746a715f3cc..c164b3ea2b7 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/184] 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 ef5de653033..4c192ba028e 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 b7dc2207e6c..dc13d31fd2b 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/184] 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 fbbe9b7f3cb..8cac8bf1997 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/184] 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 4c192ba028e..1fcba9e2247 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 dc13d31fd2b..a7a83cf1a23 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/184] 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 8b66ed6747b..180c23cbfa4 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 e4348904671..311ada70dfd 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -59,7 +59,7 @@
    t('Nothing in here. Upload something!'))?>
    - +
    From e704c8e4dc41e69b4d4d8e8f3d1c1108920bb29a Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Wed, 14 Aug 2013 11:51:54 +0200 Subject: [PATCH 115/184] 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 311ada70dfd..89604c4fa0b 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/184] 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 a9d127ffcc4..486155831d7 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 955fbc2626a..83194d5349c 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 d018a57d37b..a916dcf229f 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 9f4d20b4650..92cc87c5897 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/184] 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 00000000000..041f9f15e68 --- /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 00000000000..0016749b936 --- /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 00000000000..a7885c80be7 --- /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 00000000000..b25013414ba --- /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 00000000000..27054be57e6 --- /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 00000000000..b499d1cd252 --- /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/184] 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 00000000000..13ab5b7550e --- /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/184] 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 00000000000..fc51a3a1b70 --- /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 00000000000..821798d50fd --- /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 00000000000..af40bb252a2 --- /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/184] 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 00000000000..00755e6d0c2 --- /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/184] 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 288648693be..138329940b4 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 180c23cbfa4..7b01a5202da 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/184] 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 b25013414ba..00000000000 --- 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 bc6c6bde650..00000000000 --- 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/184] 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 89604c4fa0b..8598ead2404 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/184] 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 ab1b91167db..e3420ca14cb 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/184] increase row height to 50px, properly position everything, checkboxes, actions etc --- apps/files/css/files.css | 143 ++++++++++++++++++++++------- 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, 132 insertions(+), 45 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index c66484db536..de7be0a6a22 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 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; } +#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; } -.selectedActions { display:none; float:right; } -.selectedActions a { display:inline; margin:-.5em 0; padding:.5em !important; } -.selectedActions a img { position:relative; top:.3em; } + +/* 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: 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 138329940b4..3a6b118ec9c 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 8598ead2404..714ff497f9d 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 ab1b91167db..93d1aaf9dca 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 0dd66fb5b7c..db7f01cfebd 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/184] 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 92cc87c5897..293accb188a 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/184] 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 89927fd580a..c06f445e827 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/184] 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 de7be0a6a22..4f2f10da4dd 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/184] 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 4f2f10da4dd..20eb5fd083f 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 942a07dfccc..02e940aa3c4 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 6ea49d59fb4..67775a2233b 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/184] 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 b74e4c4512e..6552bcce703 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 ba13ca35d66..9e6cd68d401 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/184] 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 4bc38e20e56..53ffb24d18c 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 293accb188a..e7dd327d021 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 e939e526b1b..b49e51720fa 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/184] 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 c06f445e827..a487330691e 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 9c5416fe4a12acf5631b8822feb942143bf2408f Mon Sep 17 00:00:00 2001 From: kondou Date: Thu, 15 Aug 2013 08:49:19 +0200 Subject: [PATCH 133/184] Clean up \OC\Util - Use camelCase - Add some phpdoc - Fix some indents - Use some more spacing --- core/lostpassword/controller.php | 2 +- core/minimizer.php | 4 +- core/setup.php | 4 +- lib/app.php | 8 +- lib/base.php | 8 +- lib/public/share.php | 2 +- lib/setup.php | 2 +- lib/setup/mysql.php | 2 +- lib/setup/oci.php | 2 +- lib/setup/postgresql.php | 2 +- lib/templatelayout.php | 4 +- lib/user.php | 2 +- lib/util.php | 458 ++++++++++++++++++------------- settings/admin.php | 4 +- tests/lib/db.php | 2 +- tests/lib/dbschema.php | 2 +- tests/lib/util.php | 4 +- 17 files changed, 290 insertions(+), 222 deletions(-) diff --git a/core/lostpassword/controller.php b/core/lostpassword/controller.php index 74a5be2b96f..f761e45d25f 100644 --- a/core/lostpassword/controller.php +++ b/core/lostpassword/controller.php @@ -42,7 +42,7 @@ class OC_Core_LostPassword_Controller { } if (OC_User::userExists($_POST['user']) && $continue) { - $token = hash('sha256', OC_Util::generate_random_bytes(30).OC_Config::getValue('passwordsalt', '')); + $token = hash('sha256', OC_Util::generateRandomBytes(30).OC_Config::getValue('passwordsalt', '')); OC_Preferences::setValue($_POST['user'], 'owncloud', 'lostpassword', hash('sha256', $token)); // Hash the token again to prevent timing attacks $email = OC_Preferences::getValue($_POST['user'], 'settings', 'email', ''); diff --git a/core/minimizer.php b/core/minimizer.php index 4da9037c413..eeeddf86a81 100644 --- a/core/minimizer.php +++ b/core/minimizer.php @@ -5,11 +5,11 @@ OC_App::loadApps(); if ($service == 'core.css') { $minimizer = new OC_Minimizer_CSS(); - $files = OC_TemplateLayout::findStylesheetFiles(OC_Util::$core_styles); + $files = OC_TemplateLayout::findStylesheetFiles(OC_Util::$coreStyles); $minimizer->output($files, $service); } else if ($service == 'core.js') { $minimizer = new OC_Minimizer_JS(); - $files = OC_TemplateLayout::findJavascriptFiles(OC_Util::$core_scripts); + $files = OC_TemplateLayout::findJavascriptFiles(OC_Util::$coreScripts); $minimizer->output($files, $service); } diff --git a/core/setup.php b/core/setup.php index 40e30db533a..1a2eac16030 100644 --- a/core/setup.php +++ b/core/setup.php @@ -33,8 +33,8 @@ $opts = array( 'hasOracle' => $hasOracle, 'hasMSSQL' => $hasMSSQL, 'directory' => $datadir, - 'secureRNG' => OC_Util::secureRNG_available(), - 'htaccessWorking' => OC_Util::ishtaccessworking(), + 'secureRNG' => OC_Util::secureRNGAvailable(), + 'htaccessWorking' => OC_Util::isHtaccessWorking(), 'vulnerableToNullByte' => $vulnerableToNullByte, 'errors' => array(), ); diff --git a/lib/app.php b/lib/app.php index 5fa650044f3..2f5a952d9f8 100644 --- a/lib/app.php +++ b/lib/app.php @@ -73,11 +73,11 @@ class OC_App{ if (!defined('DEBUG') || !DEBUG) { if (is_null($types) - && empty(OC_Util::$core_scripts) - && empty(OC_Util::$core_styles)) { - OC_Util::$core_scripts = OC_Util::$scripts; + && empty(OC_Util::$coreScripts) + && empty(OC_Util::$coreStyles)) { + OC_Util::$coreScripts = OC_Util::$scripts; OC_Util::$scripts = array(); - OC_Util::$core_styles = OC_Util::$styles; + OC_Util::$coreStyles = OC_Util::$styles; OC_Util::$styles = array(); } } diff --git a/lib/base.php b/lib/base.php index eaee8424651..7a4f5fc7ce4 100644 --- a/lib/base.php +++ b/lib/base.php @@ -413,7 +413,7 @@ class OC { } self::initPaths(); - OC_Util::issetlocaleworking(); + OC_Util::isSetlocaleWorking(); // set debug mode if an xdebug session is active if (!defined('DEBUG') || !DEBUG) { @@ -522,7 +522,7 @@ class OC { } // write error into log if locale can't be set - if (OC_Util::issetlocaleworking() == false) { + if (OC_Util::isSetlocaleWorking() == false) { OC_Log::write('core', 'setting locale to en_US.UTF-8/en_US.UTF8 failed. Support is probably not installed on your system', OC_Log::ERROR); @@ -735,7 +735,7 @@ class OC { if (in_array($_COOKIE['oc_token'], $tokens, true)) { // replace successfully used token with a new one OC_Preferences::deleteKey($_COOKIE['oc_username'], 'login_token', $_COOKIE['oc_token']); - $token = OC_Util::generate_random_bytes(32); + $token = OC_Util::generateRandomBytes(32); OC_Preferences::setValue($_COOKIE['oc_username'], 'login_token', $token, time()); OC_User::setMagicInCookie($_COOKIE['oc_username'], $token); // login @@ -774,7 +774,7 @@ class OC { if (defined("DEBUG") && DEBUG) { OC_Log::write('core', 'Setting remember login to cookie', OC_Log::DEBUG); } - $token = OC_Util::generate_random_bytes(32); + $token = OC_Util::generateRandomBytes(32); OC_Preferences::setValue($_POST['user'], 'login_token', $token, time()); OC_User::setMagicInCookie($_POST["user"], $token); } else { diff --git a/lib/public/share.php b/lib/public/share.php index 63645e6fa34..7714837769d 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -463,7 +463,7 @@ class Share { if (isset($oldToken)) { $token = $oldToken; } else { - $token = \OC_Util::generate_random_bytes(self::TOKEN_LENGTH); + $token = \OC_Util::generateRandomBytes(self::TOKEN_LENGTH); } $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, $token); diff --git a/lib/setup.php b/lib/setup.php index 05a49890976..6bf3c88370f 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -61,7 +61,7 @@ class OC_Setup { } //generate a random salt that is used to salt the local user passwords - $salt = OC_Util::generate_random_bytes(30); + $salt = OC_Util::generateRandomBytes(30); OC_Config::setValue('passwordsalt', $salt); //write the config file diff --git a/lib/setup/mysql.php b/lib/setup/mysql.php index 0cf04fde5a1..d97b6d2602f 100644 --- a/lib/setup/mysql.php +++ b/lib/setup/mysql.php @@ -23,7 +23,7 @@ class MySQL extends AbstractDatabase { $this->dbuser=substr('oc_'.$username, 0, 16); if($this->dbuser!=$oldUser) { //hash the password so we don't need to store the admin config in the config file - $this->dbpassword=\OC_Util::generate_random_bytes(30); + $this->dbpassword=\OC_Util::generateRandomBytes(30); $this->createDBUser($connection); diff --git a/lib/setup/oci.php b/lib/setup/oci.php index 86b53de45a4..326d7a00531 100644 --- a/lib/setup/oci.php +++ b/lib/setup/oci.php @@ -65,7 +65,7 @@ class OCI extends AbstractDatabase { //add prefix to the oracle user name to prevent collisions $this->dbuser='oc_'.$username; //create a new password so we don't need to store the admin config in the config file - $this->dbpassword=\OC_Util::generate_random_bytes(30); + $this->dbpassword=\OC_Util::generateRandomBytes(30); //oracle passwords are treated as identifiers: // must start with aphanumeric char diff --git a/lib/setup/postgresql.php b/lib/setup/postgresql.php index 49fcbf0326e..89d328ada19 100644 --- a/lib/setup/postgresql.php +++ b/lib/setup/postgresql.php @@ -33,7 +33,7 @@ class PostgreSQL extends AbstractDatabase { //add prefix to the postgresql user name to prevent collisions $this->dbuser='oc_'.$username; //create a new password so we don't need to store the admin config in the config file - $this->dbpassword=\OC_Util::generate_random_bytes(30); + $this->dbpassword=\OC_Util::generateRandomBytes(30); $this->createDBUser($connection); diff --git a/lib/templatelayout.php b/lib/templatelayout.php index 0024c9d4960..0b868a39e49 100644 --- a/lib/templatelayout.php +++ b/lib/templatelayout.php @@ -58,7 +58,7 @@ class OC_TemplateLayout extends OC_Template { if (OC_Config::getValue('installed', false) && $renderas!='error') { $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter); } - if (!empty(OC_Util::$core_scripts)) { + if (!empty(OC_Util::$coreScripts)) { $this->append( 'jsfiles', OC_Helper::linkToRemoteBase('core.js', false) . $versionParameter); } foreach($jsfiles as $info) { @@ -71,7 +71,7 @@ class OC_TemplateLayout extends OC_Template { // Add the css files $cssfiles = self::findStylesheetFiles(OC_Util::$styles); $this->assign('cssfiles', array()); - if (!empty(OC_Util::$core_styles)) { + if (!empty(OC_Util::$coreStyles)) { $this->append( 'cssfiles', OC_Helper::linkToRemoteBase('core.css', false) . $versionParameter); } foreach($cssfiles as $info) { diff --git a/lib/user.php b/lib/user.php index 93c7c9d4cd5..0f6f40aec9a 100644 --- a/lib/user.php +++ b/lib/user.php @@ -353,7 +353,7 @@ class OC_User { * generates a password */ public static function generatePassword() { - return OC_Util::generate_random_bytes(30); + return OC_Util::generateRandomBytes(30); } /** diff --git a/lib/util.php b/lib/util.php index 25632ac1ea2..24ae7d3d1c4 100755 --- a/lib/util.php +++ b/lib/util.php @@ -11,12 +11,16 @@ class OC_Util { public static $headers=array(); private static $rootMounted=false; private static $fsSetup=false; - public static $core_styles=array(); - public static $core_scripts=array(); + public static $coreStyles=array(); + public static $coreScripts=array(); - // Can be set up - public static function setupFS( $user = '' ) {// configure the initial filesystem based on the configuration - if(self::$fsSetup) {//setting up the filesystem twice can only lead to trouble + /** + * @brief Can be set up + * @param user string + * @return boolean + */ + public static function setupFS( $user = '' ) { // configure the initial filesystem based on the configuration + if(self::$fsSetup) { //setting up the filesystem twice can only lead to trouble return false; } @@ -37,42 +41,45 @@ class OC_Util { self::$fsSetup=true; } - $CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ); + $configDataDirectory = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ); //first set up the local "root" storage \OC\Files\Filesystem::initMounts(); if(!self::$rootMounted) { - \OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$CONFIG_DATADIRECTORY), '/'); - self::$rootMounted=true; + \OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$configDataDirectory), '/'); + self::$rootMounted = true; } if( $user != "" ) { //if we aren't logged in, there is no use to set up the filesystem - $user_dir = '/'.$user.'/files'; - $user_root = OC_User::getHome($user); - $userdirectory = $user_root . '/files'; - if( !is_dir( $userdirectory )) { - mkdir( $userdirectory, 0755, true ); + $userDir = '/'.$user.'/files'; + $userRoot = OC_User::getHome($user); + $userDirectory = $userRoot . '/files'; + if( !is_dir( $userDirectory )) { + mkdir( $userDirectory, 0755, true ); } //jail the user into his "home" directory - \OC\Files\Filesystem::init($user, $user_dir); + \OC\Files\Filesystem::init($user, $userDir); - $quotaProxy=new OC_FileProxy_Quota(); + $quotaProxy = new OC_FileProxy_Quota(); $fileOperationProxy = new OC_FileProxy_FileOperations(); OC_FileProxy::register($quotaProxy); OC_FileProxy::register($fileOperationProxy); - OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir)); + OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $userDir)); } return true; } + /** + * @return void + */ public static function tearDownFS() { \OC\Files\Filesystem::tearDown(); self::$fsSetup=false; - self::$rootMounted=false; + self::$rootMounted=false; } /** - * get the current installed version of ownCloud + * @brief get the current installed version of ownCloud * @return array */ public static function getVersion() { @@ -82,7 +89,7 @@ class OC_Util { } /** - * get the current installed version string of ownCloud + * @brief get the current installed version string of ownCloud * @return string */ public static function getVersionString() { @@ -90,7 +97,7 @@ class OC_Util { } /** - * get the current installed edition of ownCloud. There is the community + * @description get the current installed edition of ownCloud. There is the community * edition that just returns an empty string and the enterprise edition * that returns "Enterprise". * @return string @@ -100,37 +107,39 @@ class OC_Util { } /** - * add a javascript file + * @brief add a javascript file * - * @param appid $application - * @param filename $file + * @param appid $application + * @param filename $file + * @return void */ public static function addScript( $application, $file = null ) { - if( is_null( $file )) { + if ( is_null( $file )) { $file = $application; $application = ""; } - if( !empty( $application )) { + if ( !empty( $application )) { self::$scripts[] = "$application/js/$file"; - }else{ + } else { self::$scripts[] = "js/$file"; } } /** - * add a css file + * @brief add a css file * - * @param appid $application - * @param filename $file + * @param appid $application + * @param filename $file + * @return void */ public static function addStyle( $application, $file = null ) { - if( is_null( $file )) { + if ( is_null( $file )) { $file = $application; $application = ""; } - if( !empty( $application )) { + if ( !empty( $application )) { self::$styles[] = "$application/css/$file"; - }else{ + } else { self::$styles[] = "css/$file"; } } @@ -140,63 +149,74 @@ class OC_Util { * @param string tag tag name of the element * @param array $attributes array of attributes for the element * @param string $text the text content for the element + * @return void */ public static function addHeader( $tag, $attributes, $text='') { - self::$headers[] = array('tag'=>$tag, 'attributes'=>$attributes, 'text'=>$text); + self::$headers[] = array( + 'tag'=>$tag, + 'attributes'=>$attributes, + 'text'=>$text + ); } /** - * formats a timestamp in the "right" way + * @brief formats a timestamp in the "right" way * * @param int timestamp $timestamp * @param bool dateOnly option to omit time from the result + * @return string timestamp */ public static function formatDate( $timestamp, $dateOnly=false) { - if(\OC::$session->exists('timezone')) {//adjust to clients timezone if we know it + if(\OC::$session->exists('timezone')) { //adjust to clients timezone if we know it $systemTimeZone = intval(date('O')); - $systemTimeZone=(round($systemTimeZone/100, 0)*60)+($systemTimeZone%100); - $clientTimeZone=\OC::$session->get('timezone')*60; - $offset=$clientTimeZone-$systemTimeZone; - $timestamp=$timestamp+$offset*60; + $systemTimeZone = (round($systemTimeZone/100, 0)*60) + ($systemTimeZone%100); + $clientTimeZone = \OC::$session->get('timezone')*60; + $offset = $clientTimeZone - $systemTimeZone; + $timestamp = $timestamp + $offset*60; } - $l=OC_L10N::get('lib'); + $l = OC_L10N::get('lib'); return $l->l($dateOnly ? 'date' : 'datetime', $timestamp); } /** - * check if the current server configuration is suitable for ownCloud + * @brief check if the current server configuration is suitable for ownCloud * @return array arrays with error messages and hints */ public static function checkServer() { // Assume that if checkServer() succeeded before in this session, then all is fine. - if(\OC::$session->exists('checkServer_suceeded') && \OC::$session->get('checkServer_suceeded')) + if(\OC::$session->exists('checkServer_suceeded') && \OC::$session->get('checkServer_suceeded')) { return array(); + } - $errors=array(); + $errors = array(); $defaults = new \OC_Defaults(); - $web_server_restart= false; + $webServerRestart = false; //check for database drivers if(!(is_callable('sqlite_open') or class_exists('SQLite3')) and !is_callable('mysql_connect') and !is_callable('pg_connect') and !is_callable('oci_connect')) { - $errors[]=array('error'=>'No database drivers (sqlite, mysql, or postgresql) installed.', - 'hint'=>'');//TODO: sane hint - $web_server_restart= true; + $errors[] = array( + 'error'=>'No database drivers (sqlite, mysql, or postgresql) installed.', + 'hint'=>'' //TODO: sane hint + ); + $webServerRestart = true; } //common hint for all file permissons error messages $permissionsHint = 'Permissions can usually be fixed by ' - .'
    giving the webserver write access to the root directory.'; + .'giving the webserver write access to the root directory.'; // Check if config folder is writable. if(!is_writable(OC::$SERVERROOT."/config/") or !is_readable(OC::$SERVERROOT."/config/")) { $errors[] = array( 'error' => "Can't write into config directory", 'hint' => 'This can usually be fixed by ' - .'giving the webserver write access to the config directory.' + .'giving the webserver write access to the config directory.' ); } @@ -208,7 +228,8 @@ class OC_Util { $errors[] = array( 'error' => "Can't write into apps directory", 'hint' => 'This can usually be fixed by ' - .'giving the webserver write access to the apps directory ' + .'giving the webserver write access to the apps directory ' .'or disabling the appstore in the config file.' ); } @@ -223,94 +244,131 @@ class OC_Util { $errors[] = array( 'error' => "Can't create data directory (".$CONFIG_DATADIRECTORY.")", 'hint' => 'This can usually be fixed by ' - .'giving the webserver write access to the root directory.' + .'giving the webserver write access to the root directory.' ); } } else if(!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) { - $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud', - 'hint'=>$permissionsHint); + $errors[] = array( + 'error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud', + 'hint'=>$permissionsHint + ); } else { $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); } + + $moduleHint = "Please ask your server administrator to install the module."; // check if all required php modules are present if(!class_exists('ZipArchive')) { - $errors[]=array('error'=>'PHP module zip not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module zip not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!class_exists('DOMDocument')) { - $errors[] = array('error' => 'PHP module dom not installed.', - 'hint' => 'Please ask your server administrator to install the module.'); - $web_server_restart =true; + $errors[] = array( + 'error' => 'PHP module dom not installed.', + 'hint' => $moduleHint + ); + $webServerRestart =true; } if(!function_exists('xml_parser_create')) { - $errors[] = array('error' => 'PHP module libxml not installed.', - 'hint' => 'Please ask your server administrator to install the module.'); - $web_server_restart =true; + $errors[] = array( + 'error' => 'PHP module libxml not installed.', + 'hint' => $moduleHint + ); + $webServerRestart = true; } if(!function_exists('mb_detect_encoding')) { - $errors[]=array('error'=>'PHP module mb multibyte not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module mb multibyte not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!function_exists('ctype_digit')) { - $errors[]=array('error'=>'PHP module ctype is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module ctype is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!function_exists('json_encode')) { - $errors[]=array('error'=>'PHP module JSON is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module JSON is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!extension_loaded('gd') || !function_exists('gd_info')) { - $errors[]=array('error'=>'PHP module GD is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module GD is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!function_exists('gzencode')) { - $errors[]=array('error'=>'PHP module zlib is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module zlib is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!function_exists('iconv')) { - $errors[]=array('error'=>'PHP module iconv is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module iconv is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if(!function_exists('simplexml_load_string')) { - $errors[]=array('error'=>'PHP module SimpleXML is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP module SimpleXML is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } - if(floatval(phpversion())<5.3) { - $errors[]=array('error'=>'PHP 5.3 is required.', + if(floatval(phpversion()) < 5.3) { + $errors[] = array( + 'error'=>'PHP 5.3 is required.', 'hint'=>'Please ask your server administrator to update PHP to version 5.3 or higher.' - .' PHP 5.2 is no longer supported by ownCloud and the PHP community.'); - $web_server_restart=true; + .' PHP 5.2 is no longer supported by ownCloud and the PHP community.' + ); + $webServerRestart = true; } if(!defined('PDO::ATTR_DRIVER_NAME')) { - $errors[]=array('error'=>'PHP PDO module is not installed.', - 'hint'=>'Please ask your server administrator to install the module.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP PDO module is not installed.', + 'hint'=>$moduleHint + ); + $webServerRestart = true; } if (((strtolower(@ini_get('safe_mode')) == 'on') || (strtolower(@ini_get('safe_mode')) == 'yes') || (strtolower(@ini_get('safe_mode')) == 'true') || (ini_get("safe_mode") == 1 ))) { - $errors[]=array('error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.', - 'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.', + 'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. ' + .'Please ask your server administrator to disable it in php.ini or in your webserver config.' + ); + $webServerRestart = true; } if (get_magic_quotes_gpc() == 1 ) { - $errors[]=array('error'=>'Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.', - 'hint'=>'Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.'); - $web_server_restart=true; + $errors[] = array( + 'error'=>'Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.', + 'hint'=>'Magic Quotes is a deprecated and mostly useless setting that should be disabled. ' + .'Please ask your server administrator to disable it in php.ini or in your webserver config.' + ); + $webServerRestart = true; } - if($web_server_restart) { - $errors[]=array('error'=>'PHP modules have been installed, but they are still listed as missing?', - 'hint'=>'Please ask your server administrator to restart the web server.'); + if($webServerRestart) { + $errors[] = array( + 'error'=>'PHP modules have been installed, but they are still listed as missing?', + 'hint'=>'Please ask your server administrator to restart the web server.' + ); } // Cache the result of this function @@ -330,20 +388,25 @@ class OC_Util { } else { $permissionsModHint = 'Please change the permissions to 0770 so that the directory' .' cannot be listed by other users.'; - $prems = substr(decoct(@fileperms($dataDirectory)), -3); - if (substr($prems, -1) != '0') { + $perms = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($perms, -1) != '0') { OC_Helper::chmodr($dataDirectory, 0770); clearstatcache(); - $prems = substr(decoct(@fileperms($dataDirectory)), -3); - if (substr($prems, 2, 1) != '0') { - $errors[] = array('error' => 'Data directory ('.$dataDirectory.') is readable for other users', - 'hint' => $permissionsModHint); + $perms = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($perms, 2, 1) != '0') { + $errors[] = array( + 'error' => 'Data directory ('.$dataDirectory.') is readable for other users', + 'hint' => $permissionsModHint + ); } } } return $errors; } + /** + * @return void + */ public static function displayLoginPage($errors = array()) { $parameters = array(); foreach( $errors as $key => $value ) { @@ -357,8 +420,8 @@ class OC_Util { $parameters['user_autofocus'] = true; } if (isset($_REQUEST['redirect_url'])) { - $redirect_url = $_REQUEST['redirect_url']; - $parameters['redirect_url'] = urlencode($redirect_url); + $redirectUrl = $_REQUEST['redirect_url']; + $parameters['redirect_url'] = urlencode($redirectUrl); } $parameters['alt_login'] = OC_App::getAlternativeLogIns(); @@ -367,7 +430,8 @@ class OC_Util { /** - * Check if the app is enabled, redirects to home if not + * @brief Check if the app is enabled, redirects to home if not + * @return void */ public static function checkAppEnabled($app) { if( !OC_App::isEnabled($app)) { @@ -379,18 +443,21 @@ class OC_Util { /** * Check if the user is logged in, redirects to home if not. With * redirect URL parameter to the request URI. + * @return void */ public static function checkLoggedIn() { // Check if we are a user if( !OC_User::isLoggedIn()) { header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', - array('redirect_url' => OC_Request::requestUri()))); + array('redirectUrl' => OC_Request::requestUri()) + )); exit(); } } /** - * Check if the user is a admin, redirects to home if not + * @brief Check if the user is a admin, redirects to home if not + * @return void */ public static function checkAdminUser() { if( !OC_User::isAdminUser(OC_User::getUser())) { @@ -400,7 +467,7 @@ class OC_Util { } /** - * Check if the user is a subadmin, redirects to home if not + * @brief Check if the user is a subadmin, redirects to home if not * @return array $groups where the current user is subadmin */ public static function checkSubAdminUser() { @@ -412,7 +479,8 @@ class OC_Util { } /** - * Redirect to the user default page + * @brief Redirect to the user default page + * @return void */ public static function redirectToDefaultPage() { if(isset($_REQUEST['redirect_url'])) { @@ -420,13 +488,11 @@ class OC_Util { } else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) { $location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' ); - } - else { - $defaultpage = OC_Appconfig::getValue('core', 'defaultpage'); - if ($defaultpage) { - $location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultpage); - } - else { + } else { + $defaultPage = OC_Appconfig::getValue('core', 'defaultpage'); + if ($defaultPage) { + $location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultPage); + } else { $location = OC_Helper::linkToAbsolute( 'files', 'index.php' ); } } @@ -435,19 +501,19 @@ class OC_Util { exit(); } - /** - * get an id unique for this instance - * @return string - */ - public static function getInstanceId() { - $id = OC_Config::getValue('instanceid', null); - if(is_null($id)) { - // We need to guarantee at least one letter in instanceid so it can be used as the session_name - $id = 'oc' . OC_Util::generate_random_bytes(10); - OC_Config::setValue('instanceid', $id); - } - return $id; - } + /** + * @brief get an id unique for this instance + * @return string + */ + public static function getInstanceId() { + $id = OC_Config::getValue('instanceid', null); + if(is_null($id)) { + // We need to guarantee at least one letter in instanceid so it can be used as the session_name + $id = 'oc' . self::generateRandomBytes(10); + OC_Config::setValue('instanceid', $id); + } + return $id; + } /** * @brief Static lifespan (in seconds) when a request token expires. @@ -476,7 +542,7 @@ class OC_Util { // Check if a token exists if(!\OC::$session->exists('requesttoken')) { // No valid token found, generate a new one. - $requestToken = self::generate_random_bytes(20); + $requestToken = self::generateRandomBytes(20); \OC::$session->set('requesttoken', $requestToken); } else { // Valid token already exists, send it @@ -497,11 +563,11 @@ class OC_Util { } if(isset($_GET['requesttoken'])) { - $token=$_GET['requesttoken']; + $token = $_GET['requesttoken']; } elseif(isset($_POST['requesttoken'])) { - $token=$_POST['requesttoken']; + $token = $_POST['requesttoken']; } elseif(isset($_SERVER['HTTP_REQUESTTOKEN'])) { - $token=$_SERVER['HTTP_REQUESTTOKEN']; + $token = $_SERVER['HTTP_REQUESTTOKEN']; } else { //no token found. return false; @@ -519,11 +585,12 @@ class OC_Util { /** * @brief Check an ajax get/post call if the request token is valid. exit if not. - * Todo: Write howto + * @todo Write howto + * @return void */ public static function callCheck() { if(!OC_Util::isCallRegistered()) { - exit; + exit(); } } @@ -562,12 +629,13 @@ class OC_Util { } /** - * Check if the htaccess file is working by creating a test file in the data directory and trying to access via http + * @brief Check if the htaccess file is working by creating a test file in the data directory and trying to access via http + * @return bool */ - public static function ishtaccessworking() { + public static function isHtaccessWorking() { // testdata - $filename='/htaccesstest.txt'; - $testcontent='testcontent'; + $filename = '/htaccesstest.txt'; + $testcontent = 'testcontent'; // creating a test file $testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename; @@ -591,19 +659,20 @@ class OC_Util { // does it work ? if($content==$testcontent) { - return(false); - }else{ - return(true); + return false; + } else { + return true; } } /** - * we test if webDAV is working properly - * + * @brief test if webDAV is working properly + * @return bool + * @description * The basic assumption is that if the server returns 401/Not Authenticated for an unauthenticated PROPFIND * the web server it self is setup properly. * - * Why not an authenticated PROFIND and other verbs? + * Why not an authenticated PROPFIND and other verbs? * - We don't have the password available * - We have no idea about other auth methods implemented (e.g. OAuth with Bearer header) * @@ -617,7 +686,7 @@ class OC_Util { ); // save the old timeout so that we can restore it later - $old_timeout=ini_get("default_socket_timeout"); + $oldTimeout = ini_get("default_socket_timeout"); // use a 5 sec timeout for the check. Should be enough for local requests. ini_set("default_socket_timeout", 5); @@ -631,15 +700,15 @@ class OC_Util { try { // test PROPFIND $client->propfind('', array('{DAV:}resourcetype')); - } catch(\Sabre_DAV_Exception_NotAuthenticated $e) { + } catch (\Sabre_DAV_Exception_NotAuthenticated $e) { $return = true; - } catch(\Exception $e) { + } catch (\Exception $e) { OC_Log::write('core', 'isWebDAVWorking: NO - Reason: '.$e->getMessage(). ' ('.get_class($e).')', OC_Log::WARN); $return = false; } // restore the original timeout - ini_set("default_socket_timeout", $old_timeout); + ini_set("default_socket_timeout", $oldTimeout); return $return; } @@ -647,8 +716,9 @@ class OC_Util { /** * Check if the setlocal call doesn't work. This can happen if the right * local packages are not available on the server. + * @return bool */ - public static function issetlocaleworking() { + public static function isSetlocaleWorking() { // setlocale test is pointless on Windows if (OC_Util::runningOnWindows() ) { return true; @@ -662,7 +732,7 @@ class OC_Util { } /** - * Check if the PHP module fileinfo is loaded. + * @brief Check if the PHP module fileinfo is loaded. * @return bool */ public static function fileInfoLoaded() { @@ -670,7 +740,8 @@ class OC_Util { } /** - * Check if the ownCloud server can connect to the internet + * @brief Check if the ownCloud server can connect to the internet + * @return bool */ public static function isInternetConnectionWorking() { // in case there is no internet connection on purpose return false @@ -683,30 +754,29 @@ class OC_Util { if ($connected) { fclose($connected); return true; - }else{ - + } else { // second try in case one server is down $connected = @fsockopen("apps.owncloud.com", 80); if ($connected) { fclose($connected); return true; - }else{ + } else { return false; } - } - } /** - * Check if the connection to the internet is disabled on purpose + * @brief Check if the connection to the internet is disabled on purpose + * @return bool */ public static function isInternetConnectionEnabled(){ return \OC_Config::getValue("has_internet_connection", true); } /** - * clear all levels of output buffering + * @brief clear all levels of output buffering + * @return void */ public static function obEnd(){ while (ob_get_level()) { @@ -719,44 +789,44 @@ class OC_Util { * @brief Generates a cryptographical secure pseudorandom string * @param Int with the length of the random string * @return String - * Please also update secureRNG_available if you change something here + * Please also update secureRNGAvailable if you change something here */ - public static function generate_random_bytes($length = 30) { - + public static function generateRandomBytes($length = 30) { // Try to use openssl_random_pseudo_bytes - if(function_exists('openssl_random_pseudo_bytes')) { - $pseudo_byte = bin2hex(openssl_random_pseudo_bytes($length, $strong)); + if (function_exists('openssl_random_pseudo_bytes')) { + $pseudoByte = bin2hex(openssl_random_pseudo_bytes($length, $strong)); if($strong == true) { - return substr($pseudo_byte, 0, $length); // Truncate it to match the length + return substr($pseudoByte, 0, $length); // Truncate it to match the length } } // Try to use /dev/urandom - $fp = @file_get_contents('/dev/urandom', false, null, 0, $length); - if ($fp !== false) { - $string = substr(bin2hex($fp), 0, $length); - return $string; + if (!self::runningOnWindows()) { + $fp = @file_get_contents('/dev/urandom', false, null, 0, $length); + if ($fp !== false) { + $string = substr(bin2hex($fp), 0, $length); + return $string; + } } // Fallback to mt_rand() $characters = '0123456789'; $characters .= 'abcdefghijklmnopqrstuvwxyz'; $charactersLength = strlen($characters)-1; - $pseudo_byte = ""; + $pseudoByte = ""; // Select some random characters for ($i = 0; $i < $length; $i++) { - $pseudo_byte .= $characters[mt_rand(0, $charactersLength)]; + $pseudoByte .= $characters[mt_rand(0, $charactersLength)]; } - return $pseudo_byte; + return $pseudoByte; } /** * @brief Checks if a secure random number generator is available * @return bool */ - public static function secureRNG_available() { - + public static function secureRNGAvailable() { // Check openssl_random_pseudo_bytes if(function_exists('openssl_random_pseudo_bytes')) { openssl_random_pseudo_bytes(1, $strong); @@ -766,9 +836,11 @@ class OC_Util { } // Check /dev/urandom - $fp = @file_get_contents('/dev/urandom', false, null, 0, 1); - if ($fp !== false) { - return true; + if (!self::runningOnWindows()) { + $fp = @file_get_contents('/dev/urandom', false, null, 0, 1); + if ($fp !== false) { + return true; + } } return false; @@ -781,11 +853,8 @@ class OC_Util { * This function get the content of a page via curl, if curl is enabled. * If not, file_get_element is used. */ - public static function getUrlContent($url){ - - if (function_exists('curl_init')) { - + if (function_exists('curl_init')) { $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, 0); @@ -796,10 +865,10 @@ class OC_Util { curl_setopt($curl, CURLOPT_MAXREDIRS, 10); curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler"); - if(OC_Config::getValue('proxy', '')<>'') { + if(OC_Config::getValue('proxy', '') != '') { curl_setopt($curl, CURLOPT_PROXY, OC_Config::getValue('proxy')); } - if(OC_Config::getValue('proxyuserpwd', '')<>'') { + if(OC_Config::getValue('proxyuserpwd', '') != '') { curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd')); } $data = curl_exec($curl); @@ -808,7 +877,7 @@ class OC_Util { } else { $contextArray = null; - if(OC_Config::getValue('proxy', '')<>'') { + if(OC_Config::getValue('proxy', '') != '') { $contextArray = array( 'http' => array( 'timeout' => 10, @@ -823,11 +892,10 @@ class OC_Util { ); } - $ctx = stream_context_create( $contextArray ); - $data=@file_get_contents($url, 0, $ctx); + $data = @file_get_contents($url, 0, $ctx); } return $data; @@ -840,7 +908,6 @@ class OC_Util { return (substr(PHP_OS, 0, 3) === "WIN"); } - /** * Handles the case that there may not be a theme, then check if a "default" * theme exists and take that one @@ -850,20 +917,19 @@ class OC_Util { $theme = OC_Config::getValue("theme", ''); if($theme === '') { - if(is_dir(OC::$SERVERROOT . '/themes/default')) { $theme = 'default'; } - } return $theme; } /** - * Clear the opcode cache if one exists + * @brief Clear the opcode cache if one exists * This is necessary for writing to the config file * in case the opcode cache doesn't revalidate files + * @return void */ public static function clearOpcodeCache() { // APC @@ -902,8 +968,10 @@ class OC_Util { return $value; } - public static function basename($file) - { + /** + * @return string + */ + public static function basename($file) { $file = rtrim($file, '/'); $t = explode('/', $file); return array_pop($t); diff --git a/settings/admin.php b/settings/admin.php index 10e239204f2..d721593eb77 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -15,7 +15,7 @@ OC_App::setActiveNavigationEntry( "admin" ); $tmpl = new OC_Template( 'settings', 'admin', 'user'); $forms=OC_App::getForms('admin'); -$htaccessworking=OC_Util::ishtaccessworking(); +$htaccessworking=OC_Util::isHtaccessWorking(); $entries=OC_Log_Owncloud::getEntries(3); $entriesremain=(count(OC_Log_Owncloud::getEntries(4)) > 3)?true:false; @@ -25,7 +25,7 @@ $tmpl->assign('entries', $entries); $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); $tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false); -$tmpl->assign('islocaleworking', OC_Util::issetlocaleworking()); +$tmpl->assign('islocaleworking', OC_Util::isSetlocaleWorking()); $tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking()); $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax')); diff --git a/tests/lib/db.php b/tests/lib/db.php index 51edbf7b309..1977025cf12 100644 --- a/tests/lib/db.php +++ b/tests/lib/db.php @@ -15,7 +15,7 @@ class Test_DB extends PHPUnit_Framework_TestCase { public function setUp() { $dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml'; - $r = '_'.OC_Util::generate_random_bytes('4').'_'; + $r = '_'.OC_Util::generateRandomBytes('4').'_'; $content = file_get_contents( $dbfile ); $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content ); file_put_contents( self::$schema_file, $content ); diff --git a/tests/lib/dbschema.php b/tests/lib/dbschema.php index c2e55eabf4b..7de90c047ca 100644 --- a/tests/lib/dbschema.php +++ b/tests/lib/dbschema.php @@ -16,7 +16,7 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase { $dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml'; $dbfile2 = OC::$SERVERROOT.'/tests/data/db_structure2.xml'; - $r = '_'.OC_Util::generate_random_bytes('4').'_'; + $r = '_'.OC_Util::generateRandomBytes('4').'_'; $content = file_get_contents( $dbfile ); $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content ); file_put_contents( $this->schema_file, $content ); diff --git a/tests/lib/util.php b/tests/lib/util.php index 13aa49c8c6f..d607a3e7725 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -71,8 +71,8 @@ class Test_Util extends PHPUnit_Framework_TestCase { $this->assertTrue(\OC_Util::isInternetConnectionEnabled()); } - function testGenerate_random_bytes() { - $result = strlen(OC_Util::generate_random_bytes(59)); + function testGenerateRandomBytes() { + $result = strlen(OC_Util::generateRandomBytes(59)); $this->assertEquals(59, $result); } From 4574c5cf5cbb9efc4f787b264842573540f88439 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 15 Aug 2013 16:13:01 +0200 Subject: [PATCH 134/184] 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 53ffb24d18c..840b744ad72 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 135/184] 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 00000000000..a949833f95a --- /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 00000000000..56aa9634d27 --- /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 136/184] 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 bd1fe341f8d..1ed8e0cf91b 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 64d09452f55c0c73fe0d55a70f82d8ad7a386d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 16 Aug 2013 17:19:48 +0200 Subject: [PATCH 137/184] remove editor div in filelist --- apps/files/templates/index.php | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 79c283dc336..dd783e95cca 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -101,7 +101,6 @@
    -

    t('The files you are trying to upload exceed the maximum size for file uploads on this server.'));?> From 5b8d30c6b613b8b50d95fcad7dca4234a64c1632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 16 Aug 2013 17:20:49 +0200 Subject: [PATCH 138/184] refactor OC.Breadcrumbs, allow injection of container to allow rendering crumbs into full screen editor --- core/js/js.js | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/core/js/js.js b/core/js/js.js index c2b81ae3272..5e7946868a0 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -431,9 +431,16 @@ OC.Notification={ OC.Breadcrumb={ container:null, - crumbs:[], show:function(dir, leafname, leaflink){ - OC.Breadcrumb.clear(); + if(!this.container){//default + this.container=$('#controls'); + } + this._show(this.container, dir, leafname, leaflink); + }, + _show:function(container, dir, leafname, leaflink){ + var self = this; + + this._clear(container); // show home + path in subdirectories if (dir && dir !== '/') { @@ -450,8 +457,7 @@ OC.Breadcrumb={ crumbImg.attr('src',OC.imagePath('core','places/home')); crumbLink.append(crumbImg); crumb.append(crumbLink); - OC.Breadcrumb.container.prepend(crumb); - OC.Breadcrumb.crumbs.push(crumb); + container.prepend(crumb); //add path parts var segments = dir.split('/'); @@ -460,20 +466,23 @@ OC.Breadcrumb={ if (name !== '') { pathurl = pathurl+'/'+name; var link = OC.linkTo('files','index.php')+'?dir='+encodeURIComponent(pathurl); - OC.Breadcrumb.push(name, link); + self._push(container, name, link); } }); } //add leafname if (leafname && leaflink) { - OC.Breadcrumb.push(leafname, leaflink); + this._push(container, leafname, leaflink); } }, push:function(name, link){ - if(!OC.Breadcrumb.container){//default - OC.Breadcrumb.container=$('#controls'); + if(!this.container){//default + this.container=$('#controls'); } + return this._push(OC.Breadcrumb.container, name, link); + }, + _push:function(container, name, link){ var crumb=$('

    '); crumb.addClass('crumb').addClass('last'); @@ -482,30 +491,30 @@ OC.Breadcrumb={ crumbLink.text(name); crumb.append(crumbLink); - var existing=OC.Breadcrumb.container.find('div.crumb'); + var existing=container.find('div.crumb'); if(existing.length){ existing.removeClass('last'); existing.last().after(crumb); }else{ - OC.Breadcrumb.container.prepend(crumb); + container.prepend(crumb); } - OC.Breadcrumb.crumbs.push(crumb); return crumb; }, pop:function(){ - if(!OC.Breadcrumb.container){//default - OC.Breadcrumb.container=$('#controls'); + if(!this.container){//default + this.container=$('#controls'); } - OC.Breadcrumb.container.find('div.crumb').last().remove(); - OC.Breadcrumb.container.find('div.crumb').last().addClass('last'); - OC.Breadcrumb.crumbs.pop(); + this.container.find('div.crumb').last().remove(); + this.container.find('div.crumb').last().addClass('last'); }, clear:function(){ - if(!OC.Breadcrumb.container){//default - OC.Breadcrumb.container=$('#controls'); + if(!this.container){//default + this.container=$('#controls'); } - OC.Breadcrumb.container.find('div.crumb').remove(); - OC.Breadcrumb.crumbs=[]; + this._clear(this.container); + }, + _clear:function(container) { + container.find('div.crumb').remove(); } }; From 164502477d8eac293ea002d39378be846bcc733c Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 16 Aug 2013 17:24:45 +0200 Subject: [PATCH 139/184] 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 3178ff65af8..fd18cf21ee8 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 140/184] 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 20eb5fd083f..be42a0056d8 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 536becad49a..10a297ddadb 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 65d802329f8307cd010a306073d2d3ffd7dc7b74 Mon Sep 17 00:00:00 2001 From: kondou Date: Sun, 18 Aug 2013 10:33:09 +0200 Subject: [PATCH 141/184] Fix some naming and spacing in lib/util.php --- core/setup.php | 2 +- lib/base.php | 4 ++-- lib/util.php | 25 +++++++++++++++---------- settings/admin.php | 4 ++-- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/core/setup.php b/core/setup.php index 1a2eac16030..4758c23b045 100644 --- a/core/setup.php +++ b/core/setup.php @@ -34,7 +34,7 @@ $opts = array( 'hasMSSQL' => $hasMSSQL, 'directory' => $datadir, 'secureRNG' => OC_Util::secureRNGAvailable(), - 'htaccessWorking' => OC_Util::isHtaccessWorking(), + 'htaccessWorking' => OC_Util::isHtAccessWorking(), 'vulnerableToNullByte' => $vulnerableToNullByte, 'errors' => array(), ); diff --git a/lib/base.php b/lib/base.php index 7a4f5fc7ce4..32e0ebe27e9 100644 --- a/lib/base.php +++ b/lib/base.php @@ -413,7 +413,7 @@ class OC { } self::initPaths(); - OC_Util::isSetlocaleWorking(); + OC_Util::isSetLocaleWorking(); // set debug mode if an xdebug session is active if (!defined('DEBUG') || !DEBUG) { @@ -522,7 +522,7 @@ class OC { } // write error into log if locale can't be set - if (OC_Util::isSetlocaleWorking() == false) { + if (OC_Util::isSetLocaleWorking() == false) { OC_Log::write('core', 'setting locale to en_US.UTF-8/en_US.UTF8 failed. Support is probably not installed on your system', OC_Log::ERROR); diff --git a/lib/util.php b/lib/util.php index 24ae7d3d1c4..10b526ef6b3 100755 --- a/lib/util.php +++ b/lib/util.php @@ -18,9 +18,11 @@ class OC_Util { * @brief Can be set up * @param user string * @return boolean + * @description configure the initial filesystem based on the configuration */ - public static function setupFS( $user = '' ) { // configure the initial filesystem based on the configuration - if(self::$fsSetup) { //setting up the filesystem twice can only lead to trouble + public static function setupFS( $user = '' ) { + //setting up the filesystem twice can only lead to trouble + if(self::$fsSetup) { return false; } @@ -71,11 +73,11 @@ class OC_Util { /** * @return void - */ + */ public static function tearDownFS() { \OC\Files\Filesystem::tearDown(); self::$fsSetup=false; - self::$rootMounted=false; + self::$rootMounted=false; } /** @@ -165,9 +167,10 @@ class OC_Util { * @param int timestamp $timestamp * @param bool dateOnly option to omit time from the result * @return string timestamp + * @description adjust to clients timezone if we know it */ public static function formatDate( $timestamp, $dateOnly=false) { - if(\OC::$session->exists('timezone')) { //adjust to clients timezone if we know it + if(\OC::$session->exists('timezone')) { $systemTimeZone = intval(date('O')); $systemTimeZone = (round($systemTimeZone/100, 0)*60) + ($systemTimeZone%100); $clientTimeZone = \OC::$session->get('timezone')*60; @@ -629,13 +632,15 @@ class OC_Util { } /** - * @brief Check if the htaccess file is working by creating a test file in the data directory and trying to access via http + * @brief Check if the htaccess file is working * @return bool + * @description Check if the htaccess file is working by creating a test + * file in the data directory and trying to access via http */ - public static function isHtaccessWorking() { + public static function isHtAccessWorking() { // testdata - $filename = '/htaccesstest.txt'; - $testcontent = 'testcontent'; + $fileName = '/htaccesstest.txt'; + $testContent = 'testcontent'; // creating a test file $testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename; @@ -718,7 +723,7 @@ class OC_Util { * local packages are not available on the server. * @return bool */ - public static function isSetlocaleWorking() { + public static function isSetLocaleWorking() { // setlocale test is pointless on Windows if (OC_Util::runningOnWindows() ) { return true; diff --git a/settings/admin.php b/settings/admin.php index d721593eb77..0cbb98756db 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -15,7 +15,7 @@ OC_App::setActiveNavigationEntry( "admin" ); $tmpl = new OC_Template( 'settings', 'admin', 'user'); $forms=OC_App::getForms('admin'); -$htaccessworking=OC_Util::isHtaccessWorking(); +$htaccessworking=OC_Util::isHtAccessWorking(); $entries=OC_Log_Owncloud::getEntries(3); $entriesremain=(count(OC_Log_Owncloud::getEntries(4)) > 3)?true:false; @@ -25,7 +25,7 @@ $tmpl->assign('entries', $entries); $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); $tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false); -$tmpl->assign('islocaleworking', OC_Util::isSetlocaleWorking()); +$tmpl->assign('islocaleworking', OC_Util::isSetLocaleWorking()); $tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking()); $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax')); From 48f0c54261bfa2d2f20864b0d41db8f1df6f1777 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 19 Aug 2013 12:16:55 +0200 Subject: [PATCH 142/184] 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 1ed8e0cf91b..899fb04e252 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 86bc20b714e..5c40078c7d7 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 486155831d7..af0f0493f4c 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 e7dd327d021..9fed7f1b58f 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 2f1d08499ef..112909d6523 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 b93e1e57c8b..5287bbd6ac1 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 143/184] 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 83194d5349c..41a1c178a48 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 00000000000..02815b5eb42 --- /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 a916dcf229f..a0846b051c7 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 00000000000..b1c3f02741e --- /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 ce35be1d583..f0f8ce571e2 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 144/184] 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 c05c2a9384d..3007f56e024 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 899fb04e252..c91dda4c77e 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 f050fecd7b5..ec6b4e815f8 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 2dbaefe7a78..6ae238eb8eb 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 6c6d2162846..f7cc6b01bbb 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 1c258087c9a1d4ae33c15aed6533862c728f8742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Thu, 22 Aug 2013 01:20:28 +0200 Subject: [PATCH 145/184] fixing typos --- lib/util.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/util.php b/lib/util.php index dbda3ac0ad0..dacfd5b56fb 100755 --- a/lib/util.php +++ b/lib/util.php @@ -228,7 +228,7 @@ class OC_Util { $webServerRestart = true; } - //common hint for all file permissons error messages + //common hint for all file permissions error messages $permissionsHint = 'Permissions can usually be fixed by ' .'giving the webserver write access to the root directory.'; @@ -560,9 +560,9 @@ class OC_Util { * @see OC_Util::callRegister() * @see OC_Util::isCallRegistered() * @description - * Also required for the client side to compute the piont in time when to + * Also required for the client side to compute the point in time when to * request a fresh token. The client will do so when nearly 97% of the - * timespan coded here has expired. + * time span coded here has expired. */ public static $callLifespan = 3600; // 3600 secs = 1 hour @@ -640,14 +640,15 @@ class OC_Util { * This function is used to sanitize HTML and should be applied on any * string or array of strings before displaying it on a web page. * - * @param string or array of strings + * @param string|array of strings * @return array with sanitized strings or a single sanitized string, depends on the input parameter. */ public static function sanitizeHTML( &$value ) { if (is_array($value)) { array_walk_recursive($value, 'OC_Util::sanitizeHTML'); } else { - $value = htmlentities((string)$value, ENT_QUOTES, 'UTF-8'); //Specify encoding for PHP<5.4 + //Specify encoding for PHP<5.4 + $value = htmlentities((string)$value, ENT_QUOTES, 'UTF-8'); } return $value; } @@ -756,7 +757,7 @@ class OC_Util { } /** - * Check if the setlocal call doesn't work. This can happen if the right + * Check if the setlocal call does not work. This can happen if the right * local packages are not available on the server. * @return bool */ @@ -828,8 +829,8 @@ class OC_Util { /** - * @brief Generates a cryptographical secure pseudorandom string - * @param Int with the length of the random string + * @brief Generates a cryptographic secure pseudo-random string + * @param Int $length of the random string * @return String * Please also update secureRNGAvailable if you change something here */ @@ -970,7 +971,7 @@ class OC_Util { /** * @brief Clear the opcode cache if one exists * This is necessary for writing to the config file - * in case the opcode cache doesn't revalidate files + * in case the opcode cache does not re-validate files * @return void */ public static function clearOpcodeCache() { From 8dd93c8c0288a11f04816bea2a58aee661ef9e97 Mon Sep 17 00:00:00 2001 From: kondou Date: Fri, 23 Aug 2013 07:30:42 +0200 Subject: [PATCH 146/184] Fix some phpdoc and camelcase --- lib/util.php | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/lib/util.php b/lib/util.php index dacfd5b56fb..f343e783206 100755 --- a/lib/util.php +++ b/lib/util.php @@ -16,7 +16,7 @@ class OC_Util { /** * @brief Can be set up - * @param user string + * @param string $user * @return boolean * @description configure the initial filesystem based on the configuration */ @@ -51,7 +51,8 @@ class OC_Util { self::$rootMounted = true; } - if( $user != "" ) { //if we aren't logged in, there is no use to set up the filesystem + //if we aren't logged in, there is no use to set up the filesystem + if( $user != "" ) { $quota = self::getUserQuota($user); if ($quota !== \OC\Files\SPACE_UNLIMITED) { \OC\Files\Filesystem::addStorageWrapper(function($mountPoint, $storage) use ($quota, $user) { @@ -131,7 +132,7 @@ class OC_Util { /** * @brief add a javascript file * - * @param appid $application + * @param string $application * @param filename $file * @return void */ @@ -150,7 +151,7 @@ class OC_Util { /** * @brief add a css file * - * @param appid $application + * @param string $application * @param filename $file * @return void */ @@ -168,7 +169,7 @@ class OC_Util { /** * @brief Add a custom element to the header - * @param string tag tag name of the element + * @param string $tag tag name of the element * @param array $attributes array of attributes for the element * @param string $text the text content for the element * @return void @@ -184,8 +185,8 @@ class OC_Util { /** * @brief formats a timestamp in the "right" way * - * @param int timestamp $timestamp - * @param bool dateOnly option to omit time from the result + * @param int $timestamp + * @param bool $dateOnly option to omit time from the result * @return string timestamp * @description adjust to clients timezone if we know it */ @@ -418,12 +419,13 @@ class OC_Util { } /** - * Check for correct file permissions of data directory - * @return array arrays with error messages and hints - */ + * @brief Check for correct file permissions of data directory + * @paran string $dataDirectory + * @return array arrays with error messages and hints + */ public static function checkDataDirectoryPermissions($dataDirectory) { $errors = array(); - if (stristr(PHP_OS, 'WIN')) { + if (self::runningOnWindows()) { //TODO: permissions checks for windows hosts } else { $permissionsModHint = 'Please change the permissions to 0770 so that the directory' @@ -681,9 +683,9 @@ class OC_Util { $testContent = 'testcontent'; // creating a test file - $testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename; + $testFile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$fileName; - if(file_exists($testfile)) {// already running this test, possible recursive call + if(file_exists($testFile)) {// already running this test, possible recursive call return false; } @@ -692,7 +694,7 @@ class OC_Util { @fclose($fp); // accessing the file via http - $url = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/data'.$filename); + $url = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/data'.$fileName); $fp = @fopen($url, 'r'); $content=@fread($fp, 2048); @fclose($fp); @@ -701,7 +703,7 @@ class OC_Util { @unlink($testfile); // does it work ? - if($content==$testcontent) { + if($content==$testContent) { return false; } else { return true; From 1dab0767502013b5e86e8e24e3b12a2a8939f7a8 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 23 Aug 2013 23:05:44 +0200 Subject: [PATCH 147/184] 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 5c40078c7d7..76de97818d5 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 9fed7f1b58f..0497ec95bc5 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 148/184] 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 41245c00ba6..e3e985af38b 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 f88ecd961b1..79fa01aa0aa 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 149/184] 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 0497ec95bc5..a8a8580e229 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 150/184] 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 79fa01aa0aa..a890da843bb 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 151/184] 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 e3e985af38b..7a48453488a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -15,7 +15,7 @@ var FileList={ // filename td td = $('').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 b16a018da99259278ba2f93f1e0c2d2e2bce6fb0 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 26 Aug 2013 16:33:51 +0200 Subject: [PATCH 152/184] 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 7a48453488a..cbeca1764ea 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 153/184] 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 76de97818d5..6dd45163677 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 a8a8580e229..164ad10ba5f 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 154/184] 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 164ad10ba5f..b40ba191fba 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 155/184] 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 dee0778afbb..dc91834e7b4 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 156/184] 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 dc91834e7b4..d5a79d349a6 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 1e834c57a4d6fd8c2ae35b4a692d2f8c6da4ea72 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 30 Aug 2013 13:46:10 +0200 Subject: [PATCH 157/184] fix issues caused by introduction of sticky Apps management footer --- settings/js/apps.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/settings/js/apps.js b/settings/js/apps.js index 1ae45932172..54810776d2b 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -169,7 +169,7 @@ OC.Settings.Apps = OC.Settings.Apps || { var navEntries=response.nav_entries; for(var i=0; i< navEntries.length; i++){ var entry = navEntries[i]; - var container = $('#apps'); + var container = $('#apps .wrapper'); if(container.children('li[data-id="'+entry.id+'"]').length === 0){ var li=$('
  • '); @@ -181,10 +181,10 @@ OC.Settings.Apps = OC.Settings.Apps || { a.prepend(filename); a.prepend(img); li.append(a); - // prepend the new app before the 'More apps' function - $('#apps-management').before(li); + // append the new app as last item in the list (.push is from sticky footer) + $('#apps .wrapper .push').before(li); // scroll the app navigation down so the newly added app is seen - $('#navigation').animate({ scrollTop: $('#apps').height() }, 'slow'); + $('#navigation').animate({ scrollTop: $('#navigation').height() }, 'slow'); // draw attention to the newly added app entry by flashing it twice container.children('li[data-id="'+entry.id+'"]').animate({opacity:.3}).animate({opacity:1}).animate({opacity:.3}).animate({opacity:1}); From 40cee5639e89ad052ba5234a28e5f197f2fd70ba Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 30 Aug 2013 18:07:49 +0200 Subject: [PATCH 158/184] use gerMimeTypeDetector detectPath instead of getMimeType --- apps/files/ajax/newfile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index d224e79d01b..76c03c87a51 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -79,7 +79,7 @@ if($source) { $success = false; if (!$content) { $templateManager = OC_Helper::getFileTemplateManager(); - $mimeType = OC_Helper::getMimeType($target); + $mimeType = OC_Helper::getMimetypeDetector()->detectPath($target); $content = $templateManager->getTemplate($mimeType); } From 0869f9b655ddd0b285629256521d7eafde2f5d8a Mon Sep 17 00:00:00 2001 From: kondou Date: Tue, 6 Aug 2013 16:56:50 +0200 Subject: [PATCH 159/184] Fix #4258, clean up \OC_Image and improve its unittest --- lib/image.php | 301 ++++++++++++++++++++++++-------------------- tests/lib/image.php | 33 +++-- 2 files changed, 189 insertions(+), 145 deletions(-) diff --git a/lib/image.php b/lib/image.php index 4bc38e20e56..fcb13a1fa14 100644 --- a/lib/image.php +++ b/lib/image.php @@ -25,24 +25,27 @@ */ class OC_Image { protected $resource = false; // tmp resource. - protected $imagetype = IMAGETYPE_PNG; // Default to png if file type isn't evident. - protected $bit_depth = 24; - protected $filepath = null; + protected $imageType = IMAGETYPE_PNG; // Default to png if file type isn't evident. + protected $mimeType = "image/png"; // Default to png + protected $bitDepth = 24; + protected $filePath = null; + + private $fileInfo; /** * @brief Get mime type for an image file. * @param $filepath The path to a local image file. * @returns string The mime type if the it could be determined, otherwise an empty string. */ - static public function getMimeTypeForFile($filepath) { + static public function getMimeTypeForFile($filePath) { // exif_imagetype throws "read error!" if file is less than 12 byte - if (filesize($filepath) > 11) { - $imagetype = exif_imagetype($filepath); + if (filesize($filePath) > 11) { + $imageType = exif_imagetype($filePath); } else { - $imagetype = false; + $imageType = false; } - return $imagetype ? image_type_to_mime_type($imagetype) : ''; + return $imageType ? image_type_to_mime_type($imageType) : ''; } /** @@ -50,14 +53,19 @@ class OC_Image { * @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function. * @returns bool False on error */ - public function __construct($imageref = null) { + public function __construct($imageRef = null) { //OC_Log::write('core',__METHOD__.'(): start', OC_Log::DEBUG); if(!extension_loaded('gd') || !function_exists('gd_info')) { OC_Log::write('core', __METHOD__.'(): GD module not installed', OC_Log::ERROR); return false; } - if(!is_null($imageref)) { - $this->load($imageref); + + if (\OC_Util::fileInfoLoaded()) { + $this->fileInfo = new finfo(FILEINFO_MIME_TYPE); + } + + if(!is_null($imageRef)) { + $this->load($imageRef); } } @@ -74,7 +82,7 @@ class OC_Image { * @returns int */ public function mimeType() { - return $this->valid() ? image_type_to_mime_type($this->imagetype) : ''; + return $this->valid() ? $this->mimeType : ''; } /** @@ -157,30 +165,30 @@ class OC_Image { * @returns bool */ - public function save($filepath=null) { - if($filepath === null && $this->filepath === null) { + public function save($filePath=null) { + if($filePath === null && $this->filePath === null) { OC_Log::write('core', __METHOD__.'(): called with no path.', OC_Log::ERROR); return false; - } elseif($filepath === null && $this->filepath !== null) { - $filepath = $this->filepath; + } elseif($filePath === null && $this->filePath !== null) { + $filePath = $this->filePath; } - return $this->_output($filepath); + return $this->_output($filePath); } /** * @brief Outputs/saves the image. */ - private function _output($filepath=null) { - if($filepath) { - if (!file_exists(dirname($filepath))) - mkdir(dirname($filepath), 0777, true); - if(!is_writable(dirname($filepath))) { + private function _output($filePath=null) { + if($filePath) { + if (!file_exists(dirname($filePath))) + mkdir(dirname($filePath), 0777, true); + if(!is_writable(dirname($filePath))) { OC_Log::write('core', - __METHOD__.'(): Directory \''.dirname($filepath).'\' is not writable.', + __METHOD__.'(): Directory \''.dirname($filePath).'\' is not writable.', OC_Log::ERROR); return false; - } elseif(is_writable(dirname($filepath)) && file_exists($filepath) && !is_writable($filepath)) { - OC_Log::write('core', __METHOD__.'(): File \''.$filepath.'\' is not writable.', OC_Log::ERROR); + } elseif(is_writable(dirname($filePath)) && file_exists($filePath) && !is_writable($filePath)) { + OC_Log::write('core', __METHOD__.'(): File \''.$filePath.'\' is not writable.', OC_Log::ERROR); return false; } } @@ -188,30 +196,30 @@ class OC_Image { return false; } - $retval = false; - switch($this->imagetype) { + $retVal = false; + switch($this->imageType) { case IMAGETYPE_GIF: - $retval = imagegif($this->resource, $filepath); + $retVal = imagegif($this->resource, $filePath); break; case IMAGETYPE_JPEG: - $retval = imagejpeg($this->resource, $filepath); + $retVal = imagejpeg($this->resource, $filePath); break; case IMAGETYPE_PNG: - $retval = imagepng($this->resource, $filepath); + $retVal = imagepng($this->resource, $filePath); break; case IMAGETYPE_XBM: - $retval = imagexbm($this->resource, $filepath); + $retVal = imagexbm($this->resource, $filePath); break; case IMAGETYPE_WBMP: - $retval = imagewbmp($this->resource, $filepath); + $retVal = imagewbmp($this->resource, $filePath); break; case IMAGETYPE_BMP: - $retval = imagebmp($this->resource, $filepath, $this->bit_depth); + $retVal = imagebmp($this->resource, $filePath, $this->bitDepth); break; default: - $retval = imagepng($this->resource, $filepath); + $retVal = imagepng($this->resource, $filePath); } - return $retval; + return $retVal; } /** @@ -233,7 +241,21 @@ class OC_Image { */ function data() { ob_start(); - $res = imagepng($this->resource); + switch ($this->mimeType) { + case "image/png": + $res = imagepng($this->resource); + break; + case "image/jpeg": + $res = imagejpeg($this->resource); + break; + case "image/gif": + $res = imagegif($this->resource); + break; + default: + $res = imagepng($this->resource); + OC_Log::write('core', 'OC_Image->data. Couldn\'t guess mimetype, defaulting to png', OC_Log::INFO); + break; + } if (!$res) { OC_Log::write('core', 'OC_Image->data. Error getting image data.', OC_Log::ERROR); } @@ -261,11 +283,11 @@ class OC_Image { OC_Log::write('core', 'OC_Image->fixOrientation() No image loaded.', OC_Log::DEBUG); return -1; } - if(is_null($this->filepath) || !is_readable($this->filepath)) { + if(is_null($this->filePath) || !is_readable($this->filePath)) { OC_Log::write('core', 'OC_Image->fixOrientation() No readable file path set.', OC_Log::DEBUG); return -1; } - $exif = @exif_read_data($this->filepath, 'IFD0'); + $exif = @exif_read_data($this->filePath, 'IFD0'); if(!$exif) { return -1; } @@ -351,19 +373,19 @@ class OC_Image { * @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function or a file resource (file handle ). * @returns An image resource or false on error */ - public function load($imageref) { - if(is_resource($imageref)) { - if(get_resource_type($imageref) == 'gd') { - $this->resource = $imageref; + public function load($imageRef) { + if(is_resource($imageRef)) { + if(get_resource_type($imageRef) == 'gd') { + $this->resource = $imageRef; return $this->resource; - } elseif(in_array(get_resource_type($imageref), array('file', 'stream'))) { - return $this->loadFromFileHandle($imageref); + } elseif(in_array(get_resource_type($imageRef), array('file', 'stream'))) { + return $this->loadFromFileHandle($imageRef); } - } elseif($this->loadFromFile($imageref) !== false) { + } elseif($this->loadFromFile($imageRef) !== false) { return $this->resource; - } elseif($this->loadFromBase64($imageref) !== false) { + } elseif($this->loadFromBase64($imageRef) !== false) { return $this->resource; - } elseif($this->loadFromData($imageref) !== false) { + } elseif($this->loadFromData($imageRef) !== false) { return $this->resource; } else { OC_Log::write('core', __METHOD__.'(): couldn\'t load anything. Giving up!', OC_Log::DEBUG); @@ -390,62 +412,62 @@ class OC_Image { * @param $imageref The path to a local file. * @returns An image resource or false on error */ - public function loadFromFile($imagepath=false) { + 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); + OC_Log::write('core', 'OC_Image->loadFromFile, couldn\'t load: '.$imagePath, OC_Log::DEBUG); return false; } - $itype = exif_imagetype($imagepath); - switch($itype) { + $iType = exif_imagetype($imagePath); + switch ($iType) { case IMAGETYPE_GIF: if (imagetypes() & IMG_GIF) { - $this->resource = imagecreatefromgif($imagepath); + $this->resource = imagecreatefromgif($imagePath); } else { OC_Log::write('core', - 'OC_Image->loadFromFile, GIF images not supported: '.$imagepath, + 'OC_Image->loadFromFile, GIF images not supported: '.$imagePath, OC_Log::DEBUG); } break; case IMAGETYPE_JPEG: if (imagetypes() & IMG_JPG) { - $this->resource = imagecreatefromjpeg($imagepath); + $this->resource = imagecreatefromjpeg($imagePath); } else { OC_Log::write('core', - 'OC_Image->loadFromFile, JPG images not supported: '.$imagepath, + 'OC_Image->loadFromFile, JPG images not supported: '.$imagePath, OC_Log::DEBUG); } break; case IMAGETYPE_PNG: if (imagetypes() & IMG_PNG) { - $this->resource = imagecreatefrompng($imagepath); + $this->resource = imagecreatefrompng($imagePath); } else { OC_Log::write('core', - 'OC_Image->loadFromFile, PNG images not supported: '.$imagepath, + 'OC_Image->loadFromFile, PNG images not supported: '.$imagePath, OC_Log::DEBUG); } break; case IMAGETYPE_XBM: if (imagetypes() & IMG_XPM) { - $this->resource = imagecreatefromxbm($imagepath); + $this->resource = imagecreatefromxbm($imagePath); } else { OC_Log::write('core', - 'OC_Image->loadFromFile, XBM/XPM images not supported: '.$imagepath, + 'OC_Image->loadFromFile, XBM/XPM images not supported: '.$imagePath, OC_Log::DEBUG); } break; case IMAGETYPE_WBMP: if (imagetypes() & IMG_WBMP) { - $this->resource = imagecreatefromwbmp($imagepath); + $this->resource = imagecreatefromwbmp($imagePath); } else { OC_Log::write('core', - 'OC_Image->loadFromFile, WBMP images not supported: '.$imagepath, + 'OC_Image->loadFromFile, WBMP images not supported: '.$imagePath, OC_Log::DEBUG); } break; case IMAGETYPE_BMP: - $this->resource = $this->imagecreatefrombmp($imagepath); + $this->resource = $this->imagecreatefrombmp($imagePath); break; /* case IMAGETYPE_TIFF_II: // (intel byte order) @@ -474,14 +496,15 @@ class OC_Image { default: // this is mostly file created from encrypted file - $this->resource = imagecreatefromstring(\OC\Files\Filesystem::file_get_contents(\OC\Files\Filesystem::getLocalPath($imagepath))); - $itype = IMAGETYPE_PNG; + $this->resource = imagecreatefromstring(\OC\Files\Filesystem::file_get_contents(\OC\Files\Filesystem::getLocalPath($imagePath))); + $iType = IMAGETYPE_PNG; OC_Log::write('core', 'OC_Image->loadFromFile, Default', OC_Log::DEBUG); break; } if($this->valid()) { - $this->imagetype = $itype; - $this->filepath = $imagepath; + $this->imageType = $iType; + $this->mimeType = image_type_to_mime_type($iType); + $this->filePath = $imagePath; } return $this->resource; } @@ -496,6 +519,9 @@ class OC_Image { return false; } $this->resource = @imagecreatefromstring($str); + if (\OC_Util::fileInfoLoaded()) { + $this->mimeType = $this->fileInfo->buffer($str); + } if(!$this->resource) { OC_Log::write('core', 'OC_Image->loadFromData, couldn\'t load', OC_Log::DEBUG); return false; @@ -515,6 +541,9 @@ class OC_Image { $data = base64_decode($str); if($data) { // try to load from string data $this->resource = @imagecreatefromstring($data); + if (\OC_Util::fileInfoLoaded()) { + $this->mimeType = $this->fileInfo->buffer($data); + } if(!$this->resource) { OC_Log::write('core', 'OC_Image->loadFromBase64, couldn\'t load', OC_Log::DEBUG); return false; @@ -534,16 +563,16 @@ class OC_Image { *

    * @return resource an image resource identifier on success, FALSE on errors. */ - private function imagecreatefrombmp($filename) { - if (!($fh = fopen($filename, 'rb'))) { - trigger_error('imagecreatefrombmp: Can not open ' . $filename, E_USER_WARNING); + private function imagecreatefrombmp($fileName) { + if (!($fh = fopen($fileName, 'rb'))) { + trigger_error('imagecreatefrombmp: Can not open ' . $fileName, E_USER_WARNING); return false; } // read file header $meta = unpack('vtype/Vfilesize/Vreserved/Voffset', fread($fh, 14)); // check for bitmap if ($meta['type'] != 19778) { - trigger_error('imagecreatefrombmp: ' . $filename . ' is not a bitmap!', E_USER_WARNING); + trigger_error('imagecreatefrombmp: ' . $fileName . ' is not a bitmap!', E_USER_WARNING); return false; } // read image header @@ -554,7 +583,7 @@ class OC_Image { } // set bytes and padding $meta['bytes'] = $meta['bits'] / 8; - $this->bit_depth = $meta['bits']; //remember the bit depth for the imagebmp call + $this->bitDepth = $meta['bits']; //remember the bit depth for the imagebmp call $meta['decal'] = 4 - (4 * (($meta['width'] * $meta['bytes'] / 4)- floor($meta['width'] * $meta['bytes'] / 4))); if ($meta['decal'] == 4) { $meta['decal'] = 0; @@ -590,7 +619,7 @@ class OC_Image { $p = 0; $vide = chr(0); $y = $meta['height'] - 1; - $error = 'imagecreatefrombmp: ' . $filename . ' has not enough data!'; + $error = 'imagecreatefrombmp: ' . $fileName . ' has not enough data!'; // loop through the image data beginning with the lower left corner while ($y >= 0) { $x = 0; @@ -653,7 +682,7 @@ class OC_Image { break; default: trigger_error('imagecreatefrombmp: ' - . $filename . ' has ' . $meta['bits'] . ' bits and this is not supported!', + . $fileName . ' has ' . $meta['bits'] . ' bits and this is not supported!', E_USER_WARNING); return false; } @@ -673,24 +702,24 @@ class OC_Image { * @param $maxsize The maximum size of either the width or height. * @returns bool */ - public function resize($maxsize) { + public function resize($maxSize) { if(!$this->valid()) { OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR); return false; } - $width_orig=imageSX($this->resource); - $height_orig=imageSY($this->resource); - $ratio_orig = $width_orig/$height_orig; + $widthOrig=imageSX($this->resource); + $heightOrig=imageSY($this->resource); + $ratioOrig = $widthOrig/$heightOrig; - if ($ratio_orig > 1) { - $new_height = round($maxsize/$ratio_orig); - $new_width = $maxsize; + if ($ratioOrig > 1) { + $newHeight = round($maxSize/$ratioOrig); + $newWidth = $maxSize; } else { - $new_width = round($maxsize*$ratio_orig); - $new_height = $maxsize; + $newWidth = round($maxSize*$ratioOrig); + $newHeight = $maxSize; } - $this->preciseResize(round($new_width), round($new_height)); + $this->preciseResize(round($newWidth), round($newHeight)); return true; } @@ -699,8 +728,8 @@ class OC_Image { OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR); return false; } - $width_orig=imageSX($this->resource); - $height_orig=imageSY($this->resource); + $widthOrig=imageSX($this->resource); + $heightOrig=imageSY($this->resource); $process = imagecreatetruecolor($width, $height); if ($process == false) { @@ -710,13 +739,13 @@ class OC_Image { } // preserve transparency - if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) { + if($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) { imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127)); imagealphablending($process, false); imagesavealpha($process, true); } - imagecopyresampled($process, $this->resource, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); + imagecopyresampled($process, $this->resource, 0, 0, 0, 0, $width, $height, $widthOrig, $heightOrig); if ($process == false) { OC_Log::write('core', __METHOD__.'(): Error resampling process image '.$width.'x'.$height, OC_Log::ERROR); imagedestroy($process); @@ -737,19 +766,19 @@ class OC_Image { OC_Log::write('core', 'OC_Image->centerCrop, No image loaded', OC_Log::ERROR); return false; } - $width_orig=imageSX($this->resource); - $height_orig=imageSY($this->resource); - if($width_orig === $height_orig and $size==0) { + $widthOrig=imageSX($this->resource); + $heightOrig=imageSY($this->resource); + if($widthOrig === $heightOrig and $size==0) { return true; } - $ratio_orig = $width_orig/$height_orig; - $width = $height = min($width_orig, $height_orig); + $ratioOrig = $widthOrig/$heightOrig; + $width = $height = min($widthOrig, $heightOrig); - if ($ratio_orig > 1) { - $x = ($width_orig/2) - ($width/2); + if ($ratioOrig > 1) { + $x = ($widthOrig/2) - ($width/2); $y = 0; } else { - $y = ($height_orig/2) - ($height/2); + $y = ($heightOrig/2) - ($height/2); $x = 0; } if($size>0) { @@ -767,7 +796,7 @@ class OC_Image { } // preserve transparency - if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) { + if($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) { imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127)); imagealphablending($process, false); imagesavealpha($process, true); @@ -827,9 +856,9 @@ class OC_Image { OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR); return false; } - $width_orig=imageSX($this->resource); - $height_orig=imageSY($this->resource); - $ratio = $width_orig/$height_orig; + $widthOrig=imageSX($this->resource); + $heightOrig=imageSY($this->resource); + $ratio = $widthOrig/$heightOrig; $newWidth = min($maxWidth, $ratio*$maxHeight); $newHeight = min($maxHeight, $maxWidth/$ratio); @@ -863,7 +892,7 @@ if ( ! function_exists( 'imagebmp') ) { * @param int $compression [optional] * @return bool TRUE on success or FALSE on failure. */ - function imagebmp($im, $filename='', $bit=24, $compression=0) { + function imagebmp($im, $fileName='', $bit=24, $compression=0) { if (!in_array($bit, array(1, 4, 8, 16, 24, 32))) { $bit = 24; } @@ -874,14 +903,14 @@ if ( ! function_exists( 'imagebmp') ) { imagetruecolortopalette($im, true, $bits); $width = imagesx($im); $height = imagesy($im); - $colors_num = imagecolorstotal($im); - $rgb_quad = ''; + $colorsNum = imagecolorstotal($im); + $rgbQuad = ''; if ($bit <= 8) { - for ($i = 0; $i < $colors_num; $i++) { + for ($i = 0; $i < $colorsNum; $i++) { $colors = imagecolorsforindex($im, $i); - $rgb_quad .= chr($colors['blue']) . chr($colors['green']) . chr($colors['red']) . "\0"; + $rgbQuad .= chr($colors['blue']) . chr($colors['green']) . chr($colors['red']) . "\0"; } - $bmp_data = ''; + $bmpData = ''; if ($compression == 0 || $bit < 8) { $compression = 0; $extra = ''; @@ -899,35 +928,35 @@ if ( ! function_exists( 'imagebmp') ) { $bin |= $index << $k; $i++; } - $bmp_data .= chr($bin); + $bmpData .= chr($bin); } - $bmp_data .= $extra; + $bmpData .= $extra; } } // RLE8 else if ($compression == 1 && $bit == 8) { for ($j = $height - 1; $j >= 0; $j--) { - $last_index = "\0"; - $same_num = 0; + $lastIndex = "\0"; + $sameNum = 0; for ($i = 0; $i <= $width; $i++) { $index = imagecolorat($im, $i, $j); - if ($index !== $last_index || $same_num > 255) { - if ($same_num != 0) { - $bmp_data .= chr($same_num) . chr($last_index); + if ($index !== $lastIndex || $sameNum > 255) { + if ($sameNum != 0) { + $bmpData .= chr($same_num) . chr($lastIndex); } - $last_index = $index; - $same_num = 1; + $lastIndex = $index; + $sameNum = 1; } else { - $same_num++; + $sameNum++; } } - $bmp_data .= "\0\0"; + $bmpData .= "\0\0"; } - $bmp_data .= "\0\1"; + $bmpData .= "\0\1"; } - $size_quad = strlen($rgb_quad); - $size_data = strlen($bmp_data); + $sizeQuad = strlen($rgbQuad); + $sizeData = strlen($bmpData); } else { $extra = ''; @@ -935,7 +964,7 @@ if ( ! function_exists( 'imagebmp') ) { if ($padding % 4 != 0) { $extra = str_repeat("\0", $padding); } - $bmp_data = ''; + $bmpData = ''; for ($j = $height - 1; $j >= 0; $j--) { for ($i = 0; $i < $width; $i++) { $index = imagecolorat($im, $i, $j); @@ -945,27 +974,27 @@ if ( ! function_exists( 'imagebmp') ) { $bin |= ($colors['red'] >> 3) << 10; $bin |= ($colors['green'] >> 3) << 5; $bin |= $colors['blue'] >> 3; - $bmp_data .= pack("v", $bin); + $bmpData .= pack("v", $bin); } else { - $bmp_data .= pack("c*", $colors['blue'], $colors['green'], $colors['red']); + $bmpData .= pack("c*", $colors['blue'], $colors['green'], $colors['red']); } } - $bmp_data .= $extra; + $bmpData .= $extra; } - $size_quad = 0; - $size_data = strlen($bmp_data); - $colors_num = 0; - } - $file_header = 'BM' . pack('V3', 54 + $size_quad + $size_data, 0, 54 + $size_quad); - $info_header = pack('V3v2V*', 0x28, $width, $height, 1, $bit, $compression, $size_data, 0, 0, $colors_num, 0); - if ($filename != '') { - $fp = fopen($filename, 'wb'); - fwrite($fp, $file_header . $info_header . $rgb_quad . $bmp_data); + $sizeQuad = 0; + $sizeData = strlen($bmpData); + $colorsNum = 0; + } + $fileHeader = 'BM' . pack('V3', 54 + $sizeQuad + $sizeData, 0, 54 + $sizeQuad); + $infoHeader = pack('V3v2V*', 0x28, $width, $height, 1, $bit, $compression, $sizeData, 0, 0, $colorsNum, 0); + if ($fileName != '') { + $fp = fopen($fileName, 'wb'); + fwrite($fp, $fileHeader . $infoHeader . $rgbQuad . $bmpData); fclose($fp); return true; } - echo $file_header . $info_header. $rgb_quad . $bmp_data; + echo $fileHeader . $infoHeader. $rgbQuad . $bmpData; return true; } } @@ -977,8 +1006,8 @@ if ( ! function_exists( 'exif_imagetype' ) ) { * @param string $filename * @return string|boolean */ - function exif_imagetype ( $filename ) { - if ( ( $info = getimagesize( $filename ) ) !== false ) { + function exif_imagetype ( $fileName ) { + if ( ( $info = getimagesize( $fileName ) ) !== false ) { return $info[2]; } return false; diff --git a/tests/lib/image.php b/tests/lib/image.php index 0583c300075..b3db89cf5b8 100644 --- a/tests/lib/image.php +++ b/tests/lib/image.php @@ -7,6 +7,10 @@ */ class Test_Image extends PHPUnit_Framework_TestCase { + public static function tearDownAfterClass() { + unlink(OC::$SERVERROOT.'/tests/data/testimage2.png'); + unlink(OC::$SERVERROOT.'/tests/data/testimage2.jpg'); + } public function testGetMimeTypeForFile() { $mimetype = \OC_Image::getMimeTypeForFile(OC::$SERVERROOT.'/tests/data/testimage.png'); @@ -55,7 +59,6 @@ class Test_Image extends PHPUnit_Framework_TestCase { } public function testMimeType() { - $this->markTestSkipped("When loading from data or base64, imagetype is always image/png, see #4258."); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); $this->assertEquals('image/png', $img->mimeType()); @@ -102,35 +105,47 @@ class Test_Image extends PHPUnit_Framework_TestCase { $img->resize(16); $img->save(OC::$SERVERROOT.'/tests/data/testimage2.png'); $this->assertEquals(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage2.png'), $img->data()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $img->resize(128); + $img->save(OC::$SERVERROOT.'/tests/data/testimage2.jpg'); + $this->assertEquals(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage2.jpg'), $img->data()); } public function testData() { - $this->markTestSkipped("\OC_Image->data() converts to png before outputting data, see #4258."); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); - $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); + ob_start(); + imagepng($raw); + $expected = ob_get_clean(); $this->assertEquals($expected, $img->data()); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); - $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + ob_start(); + imagejpeg($raw); + $expected = ob_get_clean(); $this->assertEquals($expected, $img->data()); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); - $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + ob_start(); + imagegif($raw); + $expected = ob_get_clean(); $this->assertEquals($expected, $img->data()); } public function testToString() { - $this->markTestSkipped("\OC_Image->data() converts to png before outputting data, see #4258."); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); - $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); + $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); $img = new \OC_Image(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); - $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); - $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); } From 668c4c2652ef4619a132d609461423aafaef424e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 30 Aug 2013 22:05:44 +0200 Subject: [PATCH 160/184] fix issue with filetable background --- apps/files/css/files.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index aadf29687b8..498e34d70d4 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -75,7 +75,7 @@ color:#888; text-shadow:#fff 0 1px 0; } #filestable { position: relative; top:37px; width:100%; } -#filestable tbody tr { background-color:#fff; height:2.5em; } +tbody tr { background-color:#fff; height:2.5em; } tbody tr:hover, tbody tr:active { background-color: rgb(240,240,240); } From 4b32d84314c97685fca31c8adb0508cf28651005 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Sat, 31 Aug 2013 11:12:07 -0400 Subject: [PATCH 161/184] text centered horizontally and vertically in emptycontent div --- apps/files/css/files.css | 6 ------ apps/files/templates/index.php | 2 +- core/css/styles.css | 9 ++++++++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 498e34d70d4..02a73ba83e5 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -68,12 +68,6 @@ /* FILE TABLE */ -#emptyfolder { - position:absolute; - margin:10em 0 0 10em; - font-size:1.5em; font-weight:bold; - 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:hover, tbody tr:active { diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 2f7e0af4f28..24cb8c2fe58 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -56,7 +56,7 @@ -
    t('Nothing in here. Upload something!'))?>
    +
    t('Nothing in here. Upload something!'))?>
    diff --git a/core/css/styles.css b/core/css/styles.css index 85f65a2f427..8cda9ff9ef2 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 162/184] 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 05e31094502..29be5e0d362 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 371765fa69a..88c32b1f3eb 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 8cda9ff9ef2..ea1733a3446 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 58e036e304b47dbed8dafc7ebe60f987a8a62551 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 31 Aug 2013 18:00:53 +0200 Subject: [PATCH 163/184] remove knowledgebase calls that are no longer used in ownCloud 5/6 --- lib/ocsclient.php | 49 ----------------------------------------------- 1 file changed, 49 deletions(-) diff --git a/lib/ocsclient.php b/lib/ocsclient.php index bd0302a2a81..58636f806be 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -40,16 +40,6 @@ class OC_OCSClient{ return($url); } - /** - * @brief Get the url of the OCS KB server. - * @returns string of the KB server - * This function returns the url of the OCS knowledge base server. It´s - * possible to set it in the config file or it will fallback to the default - */ - private static function getKBURL() { - $url = OC_Config::getValue('knowledgebaseurl', 'http://api.apps.owncloud.com/v1'); - return($url); - } /** * @brief Get the content of an OCS url call. @@ -214,44 +204,5 @@ class OC_OCSClient{ } - /** - * @brief Get all the knowledgebase entries from the OCS server - * @returns array with q and a data - * - * This function returns a list of all the knowledgebase entries from the OCS server - */ - public static function getKnownledgebaseEntries($page, $pagesize, $search='') { - $kbe = array('totalitems' => 0); - if(OC_Config::getValue('knowledgebaseenabled', true)) { - $p = (int) $page; - $s = (int) $pagesize; - $searchcmd = ''; - if ($search) { - $searchcmd = '&search='.urlencode($search); - } - $url = OC_OCSClient::getKBURL().'/knowledgebase/data?type=150&page='. $p .'&pagesize='. $s . $searchcmd; - $xml = OC_OCSClient::getOCSresponse($url); - $data = @simplexml_load_string($xml); - if($data===false) { - OC_Log::write('core', 'Unable to parse knowledgebase content', OC_Log::FATAL); - return null; - } - $tmp = $data->data->content; - for($i = 0; $i < count($tmp); $i++) { - $kbe[] = array( - 'id' => $tmp[$i]->id, - 'name' => $tmp[$i]->name, - 'description' => $tmp[$i]->description, - 'answer' => $tmp[$i]->answer, - 'preview1' => $tmp[$i]->smallpreviewpic1, - 'detailpage' => $tmp[$i]->detailpage - ); - } - $kbe['totalitems'] = $data->meta->totalitems; - } - return $kbe; - } - - } From a5633bb155e348bd0fce9ea703511de86308fab6 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 31 Aug 2013 18:03:10 +0200 Subject: [PATCH 164/184] remove the config option that is no longer needed --- config/config.sample.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index 5f748438bc7..0f6d686a511 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -71,9 +71,6 @@ $CONFIG = array( /* Enable the help menu item in the settings */ "knowledgebaseenabled" => true, -/* URL to use for the help page, server should understand OCS */ -"knowledgebaseurl" => "http://api.apps.owncloud.com/v1", - /* Enable installing apps from the appstore */ "appstoreenabled" => true, From f1836a997f9c8051bf040b78cd5475a8e9862fe0 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 31 Aug 2013 18:14:46 +0200 Subject: [PATCH 165/184] 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 c30e21018d3..00000000000 --- 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 283c9af6924..c4a74d77900 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/184] 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 85f65a2f427..309917f30ed 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/184] 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 e488eade4da..7588347eccb 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/184] 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 badc30ab9a0..7761a3c7737 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 b3db89cf5b8..4aba1b0bc61 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 307b673b79120d79c406927ee8a5f3ef83c02af2 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Sun, 1 Sep 2013 16:14:46 +0200 Subject: [PATCH 169/184] Fixed public upload error that prevents upload Public upload is broken because the file_upload_param variable expected to exist by public.js didn't. This fix sets the variable scope to the window to make it accessible outside. --- apps/files/js/file-upload.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 3d620c5640b..e9b07518bab 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -348,4 +348,5 @@ $(document).ready(function() { $('#new>a').click(); }); }); + window.file_upload_param = file_upload_param; }); From e68b5f8b0da93bf1e039bc700aec8c816cc9afa9 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Sun, 1 Sep 2013 13:30:40 -0400 Subject: [PATCH 170/184] [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 8346eece88b..99eb409a369 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 e7dafd1c43a..913875e863a 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 9f90138eebe..648ffce79d6 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 c46758c7bcc..691cc92f1ad 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 666e90e9db8..157f4f89a23 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 36703322f93..aab12986ec1 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 8d8d30cb6e7..947d4f07461 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 309a885d37f..db07ed7fadd 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 1dca8e41f6d..8c89e5e1feb 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 2a011ab214b..ad538f2f2a9 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 1ff1506aaf4..7a5785577af 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 dac4d4e4de2..1c26c10028d 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 e1947cb8f73..5a2bb437d39 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 6c6e92dda38..524be56af02 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 afa04e53ab2..24584f715b5 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 d18ff4f0207..1d29dbf79d2 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 40bb81296e6..4e3b0de112a 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 2df738cb15f..6ec1816308a 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 7141c8442e2..40d7cc9c552 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 741964503ff..66edbefbca5 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 2d53da21604..b0ec954d907 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 09675b63f51..5438cbb4976 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 8fd522aebcc..455e3211a55 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 86666c70569..e2b787e7f91 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 3bcc6b84439..0530adc2ae2 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 52cea5305d0..d24aaca9e4c 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 5c7780825fb..55ce978d2a2 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 a4386992cf6..9fb13517369 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 84402057a3a..b1f38057a88 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 c55d81cea2f..4b22b080b28 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 bfe34bab21f..15d0c170e66 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 8cd73a9f70c..33ec8cddce6 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 3b5359384ac..59f6cc68499 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 e0bf97038d4..96f52a9045c 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 7d24370a092..1fd18d0c56f 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 e7ade013792..b30f263d244 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 6819ed3a3b3..08f789ff866 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 b8cf91f4da6..73f8ace5c81 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 20bf77bb609..fbbe1f15910 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 fc52c16daf3..154e0d6796e 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 b65c0bc705e..aa8cf4e9b50 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 d317b11d532..dd089757d5f 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 79a18231d2c..781590cff35 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 02b184d218c..b98a14f6d7b 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 fa2e3403f4b..59b09ad950b 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 6ba8bf35de8..21c929f81a6 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 56d67ea7ce7..5cc33fd3830 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 0c88d132b5c..9dccc773cb1 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 2dfc484fc7f..bfc2fc659de 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 84f076f3018..17c3ab293c6 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 c389ad01883..a77924b1218 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 d104a9fbe80..1301dae32f3 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 442970fbb0b..1f6c50524b3 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 5a1fe65f441..abaea4ba6a5 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 655305488f3..1f205a9db5b 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 2dde9eb5367..6e01b3e2083 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 1311a76d693..a29fc4547c6 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 51a3a68d788..54c13c89bfa 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 fc688b103a6..669f677d46d 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 9e7f5656683..077f677e972 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 cd51ba2f441..389251de8aa 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 d9d007819d3..5391a144349 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 ae241e93873..1e0eb36e1e3 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 a9e17a194ae..82356c0ab12 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 7efeaa1fac2..25f5f466ef9 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 3f85cb1503f..81fad258337 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 56027e4cf1a..663d769ee98 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 b197a67b116..d5d83fea330 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 c231d7f9a44..93f96e17847 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 fc6cb788fb0..0f222918c95 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 63a7545d891..71f6ffdf50e 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 2ab85f13d30..82e4153367d 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 0f4b23906d6..15cacc8b218 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 c4b6b9f091b..0265f38dc07 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 8a5a28957c4..5f4c415bed7 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 5db8f6c21a9..7b0c3ed4f80 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 ddfc6008983..57b9186f3cf 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 e2416dc052c..6a8ec50061c 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 393dc0d7d11..132b65daab2 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 6a2d1a03a10..6d5d5dc9917 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 f73cb96076e..942824ecb74 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 68bf2f89a2a..0ca3cc427a0 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 1188e555316..48f6dff6184 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 8db5262e94b..84762cde5e4 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 25ddaa322d5..2afb9ef9b39 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 7e33003bcce..ca0e409f71f 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 503ca579ce7..d79326aff32 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 475cdf5613a..184566b5f1c 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 82745d617e9..ed061068b4b 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 0b72f1dc4e4..460ca99eeab 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 3de06c70883..89c13c49254 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 74d285a35a6..9bfd91d2691 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 3fc461d4284..a1a286275eb 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 bb5181fd9e6..90fec245c95 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 6dd54057950..8b6c261d64c 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 eb16e841c67..e77718233de 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 6fcb23d0a32..8e74855dd08 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 305839b4760..1ccf03c0aaa 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 08d70dfee66..ddcc902c8d7 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 fabec7537d1..c25a58dc8ea 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 c9594857940..47fc1f25710 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 b8086649e4a..39c537e3a5d 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 a57ea88b76f..3d91bd55b82 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 21836c30a8b..6585814d749 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 8bedc7b3618..ecc26a9b132 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 41edc0ee8a0..3689101c5df 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 94cdb7b62b6..503fc964125 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 638507e646f..700bfe97729 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 c1e83e56cc9..7507b666b09 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 5c71f405c59..adc2e0f26ca 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 3f9da02827c..fb180ee25be 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 23574ea9813..0a572015282 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 eb931d39214..21a1d8cafb2 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 47c4fa12e7f..9469c953841 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 a1c58799f33..95d27fc4a67 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 1a3f292dc07..000f19fdda5 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 1282d6306c9..cf3e5f3eb62 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 31ff37b3eeb..ca0b80f304b 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 50dcd3f9477..bd017bcd8e7 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 26e1f3c14a9..95570ce896f 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 04300969e06..f7d558ebe2a 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 1c4e9c35417..dd1d6ebc5e2 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 af8d82e0aab..3db69832bef 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 d700f044722..4a006b413d6 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 764ab8c2f26..150143b933d 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 45ab92b80c1..43f652d3a58 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 ee3f80addf2..6dd2898c492 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 9e7e5a0922a..3a53061ec69 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 7b3a992357f..95b66e51b7a 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 f69d10f72ec..79f5e340cfb 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 004b38fc512..962c4efed51 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 bb64b84c230..4456f2df9e3 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 4fb8afd07bb..477f3475fc5 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 362a1dc80ae..1db2606ef50 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 56d1039db0f..f76c82e4827 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 69f2485ac90..2c0837f88bc 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 5aaca8e3f70..f5b034ae31c 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 bd1b9b97978..245c7abab6b 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 ed5c0b1b091..6565f0ea8d9 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 f655969e064..6de09cdb0f7 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 ccf747517c2..a505ffebd53 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 9002e898ceb..dd480450974 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 85a6b3a0d1d..b4bbc396445 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 48876d9d474..402bd723361 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 51d44b0f572..071ac769a96 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 9a45ffabc38..e5cdd51793d 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 6b88648425a..58b33501e9e 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 e119006c71e..fb5632409a4 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 57cb219901f..2ef86dac439 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 7effb5774b6..38ce1ffd25b 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 b8591173f30..249beb05f61 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 3d14cbeb36d..78f82700487 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 f61f73ba228..e265ca7d475 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 5611a467957..8cd45561ae0 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 b162233b9c0..36a1787cd34 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 414603b41db..5e7d67575a2 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 f7c84013950..f97b6b2dd26 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 6acfd95e044..73f9dacaf60 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 493b46ace2c..6f77486ddf4 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 6fe0fe92913..af72860fc58 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 689ad0da124..65e8cfde0e4 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 5eff48359db..ac1b1e7ab6b 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 c94527ab533..a426e2ec182 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 4bd2753d756..68b8f11bed3 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 c59874212be..21093f1c7e0 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 340455fdb1e..c7b2e1c117b 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 1ef60e724ab..c42cf442efe 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 dd3e636cc48..8772791ae01 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 be3bfcba3ee..623cceba50c 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 f419c3efaf3..5b2896c6e35 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 edaed21e00e..6680a8ba6b3 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 fc486609894..8bab0cf5908 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 44989e4aad8..b3280313839 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 5f0718ae9da..4397a9890b0 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 e188e5ccc38..ee257663691 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 78b08930414..21d8f249a2b 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 e23fb508d18..64a86f404cf 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 3e43edd8945..e2768600954 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 93a50da14d5..6cbf39f5e00 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 6c1b9795dad..c25183110d0 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 59c411b7209..7721c948b2e 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 7a7e2c74f9e..a97a10cc9ad 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 613e0555003..87d7c2b49e7 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 5a47ffe3d4d..ea7a70653c1 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 0c6bbe58a8c..d1688333716 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 6b81e2d7efe..0ec318ec279 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 fa6ea1ad860..73fa71d789d 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 1428fd2d734..79716d1228f 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 be1b85599a1..3a92c457140 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 c5f4089097c..5e4429bcc04 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 0147f55088e..04d23af90d9 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 00cbd7f1a36..2e311fca6d7 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 71c2bdbf22d..c04debca141 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 9bc657e7df4..392dfada7d8 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 f9ccbd0049d..f2f058e8d24 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 be393c44928..7e2f79d2672 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 06a88da5450..0e11e6f04d5 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 79b7984dd18..c0de53d8589 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 4cfc080a083..ba7bdaaa82e 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 ed36dd2e0d3..ca149fb14cc 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 5576a3f45bc..4c568ee555b 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 16f93542555..4d24c3c7a11 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 33409afcebb..462831bc96f 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 32ba6b4a95d..a5d6146f1c3 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 04f405c7392..1e53a5a759e 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 d1e093aba89..44071aa2ac3 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 800c07574fa..beceaab6f50 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 ad793be7d81..3f86937276e 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 ec4947bf1e3..5fe275702b0 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 e4e9c2bb89e..307adf55903 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 5626dcfa66f..9467404002f 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 b862958c94f..cd61a53093e 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 d7196f3ab9f..dda5098f3cb 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 3d1f24debd6..bba27b3142c 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 d05019be94c..450b3755876 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 fe65471744c..a61fb2a34d3 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 52d6f701174..2a689d6fc8f 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 ffc68f12388..260d80d6bf5 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 37faace2e6e..59f0e459f57 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 53c5a7baec1..57f79d287d9 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 9ba8be581ba..5bda63d03bd 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 14bbf6f6a13..7a82f8f6a19 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 a35027eb962..c3a040048ec 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 902170524b9..e2b67e76187 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 0fda1309395..29594a95dcf 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 8bbdc222e43..63e83cab4dd 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 d72bca799dd..e1299bb9649 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 5cd3679751b..73c015d17af 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 171/184] 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 3df60ad5b5c..a33bd94bb10 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; +} From fb34f49913e55731031a2e5c1b8041259df5c5ef Mon Sep 17 00:00:00 2001 From: Owen Winkler Date: Sun, 18 Aug 2013 13:11:48 -0400 Subject: [PATCH 172/184] Start a branch for easier OpenSSL configuration. --- apps/files_encryption/lib/crypt.php | 1 + apps/files_encryption/lib/helper.php | 12 +++++++++++- config/config.sample.php | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index e129bc9313e..7eab620baa5 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -52,6 +52,7 @@ class Crypt { $return = false; + $res = \OCA\Encryption\Helper::getOpenSSLPkey(); $res = openssl_pkey_new(array('private_key_bits' => 4096)); if ($res === false) { diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 0209a5d18b7..2cc905c2914 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -265,7 +265,7 @@ class Helper { * @return bool true if configuration seems to be OK */ public static function checkConfiguration() { - if(openssl_pkey_new(array('private_key_bits' => 4096))) { + if(self::getOpenSSLPkey()) { return true; } else { while ($msg = openssl_error_string()) { @@ -275,6 +275,16 @@ class Helper { } } + /** + * Create an openssl pkey with config-supplied settings + * @return resource The pkey resource created + */ + public static function getOpenSSLPkey() { + $config = array('private_key_bits' => 4096); + $config = array_merge(\OCP\Config::getSystemValue('openssl'), $config); + return openssl_pkey_new($config); + } + /** * @brief glob uses different pattern than regular expressions, escape glob pattern only * @param unescaped path diff --git a/config/config.sample.php b/config/config.sample.php index 5f748438bc7..6425baf87cb 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -214,4 +214,9 @@ $CONFIG = array( 'preview_libreoffice_path' => '/usr/bin/libreoffice', /* cl parameters for libreoffice / openoffice */ 'preview_office_cl_parameters' => '', + +// Extra SSL options to be used for configuration +'openssl' => array( + //'config' => '/path/to/openssl.cnf', +), ); From 9a263a500abb6e6eaf482fcb962fcd9d652e076c Mon Sep 17 00:00:00 2001 From: Owen Winkler Date: Mon, 19 Aug 2013 06:36:19 -0400 Subject: [PATCH 173/184] Employ config option for OpenSSL config file, if provided. This should help make OpenSSL configuration on Windows servers easier by allowing the openssl.cnf file to be set directly in the ownCloud config, rather than in SetEnv commands that don't exist and are hard to replicate in IIS. --- apps/files_encryption/lib/crypt.php | 9 +++++---- apps/files_encryption/lib/helper.php | 17 +++++++++++++++-- config/config.sample.php | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 7eab620baa5..c009718160a 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -52,15 +52,14 @@ class Crypt { $return = false; - $res = \OCA\Encryption\Helper::getOpenSSLPkey(); - $res = openssl_pkey_new(array('private_key_bits' => 4096)); + $res = Helper::getOpenSSLPkey(); if ($res === false) { \OCP\Util::writeLog('Encryption library', 'couldn\'t generate users key-pair for ' . \OCP\User::getUser(), \OCP\Util::ERROR); while ($msg = openssl_error_string()) { \OCP\Util::writeLog('Encryption library', 'openssl_pkey_new() fails: ' . $msg, \OCP\Util::ERROR); } - } elseif (openssl_pkey_export($res, $privateKey)) { + } elseif (openssl_pkey_export($res, $privateKey, null, Helper::getOpenSSLConfig())) { // Get public key $keyDetails = openssl_pkey_get_details($res); $publicKey = $keyDetails['key']; @@ -71,7 +70,9 @@ class Crypt { ); } else { \OCP\Util::writeLog('Encryption library', 'couldn\'t export users private key, please check your servers openSSL configuration.' . \OCP\User::getUser(), \OCP\Util::ERROR); - \OCP\Util::writeLog('Encryption library', openssl_error_string(), \OCP\Util::ERROR); + while($errMsg = openssl_error_string()) { + \OCP\Util::writeLog('Encryption library', $errMsg, \OCP\Util::ERROR); + } } return $return; diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 2cc905c2914..10447a07bb8 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -280,9 +280,22 @@ class Helper { * @return resource The pkey resource created */ public static function getOpenSSLPkey() { + static $res = null; + if (is_null($res)) { + $res = openssl_pkey_new(self::getOpenSSLConfig()); + } + return $res; + } + + /** + * Return an array of OpenSSL config options, default + config + * Used for multiple OpenSSL functions + * @return array The combined defaults and config settings + */ + public static function getOpenSSLConfig() { $config = array('private_key_bits' => 4096); - $config = array_merge(\OCP\Config::getSystemValue('openssl'), $config); - return openssl_pkey_new($config); + $config = array_merge(\OCP\Config::getSystemValue('openssl', array()), $config); + return $config; } /** diff --git a/config/config.sample.php b/config/config.sample.php index 6425baf87cb..51ef60588d6 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -217,6 +217,6 @@ $CONFIG = array( // Extra SSL options to be used for configuration 'openssl' => array( - //'config' => '/path/to/openssl.cnf', + //'config' => '/absolute/location/of/openssl.cnf', ), ); From df7bfa4bf03646a4f62758c1b7745e06790ce58d Mon Sep 17 00:00:00 2001 From: ringmaster Date: Mon, 26 Aug 2013 12:08:23 -0400 Subject: [PATCH 174/184] Don't cache the pkey, skip generation if the keyfile exists --- apps/files_encryption/hooks/hooks.php | 17 +++++++++-------- apps/files_encryption/lib/helper.php | 7 ++----- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index de306462d79..85169e6a1d0 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -36,14 +36,6 @@ class Hooks { */ public static function login($params) { $l = new \OC_L10N('files_encryption'); - //check if all requirements are met - if(!Helper::checkRequirements() || !Helper::checkConfiguration() ) { - $error_msg = $l->t("Missing requirements."); - $hint = $l->t('Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.'); - \OC_App::disable('files_encryption'); - \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR); - \OCP\Template::printErrorPage($error_msg, $hint); - } $view = new \OC_FilesystemView('/'); @@ -54,6 +46,15 @@ class Hooks { $util = new Util($view, $params['uid']); + //check if all requirements are met + if(!$util->ready() && (!Helper::checkRequirements() || !Helper::checkConfiguration())) { + $error_msg = $l->t("Missing requirements."); + $hint = $l->t('Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.'); + \OC_App::disable('files_encryption'); + \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR); + \OCP\Template::printErrorPage($error_msg, $hint); + } + // setup user, if user not ready force relogin if (Helper::setupUser($util, $params['password']) === false) { return false; diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 10447a07bb8..cb5d5fdfb34 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -277,14 +277,11 @@ class Helper { /** * Create an openssl pkey with config-supplied settings + * WARNING: This initializes and caches a new private keypair, which is computationally expensive * @return resource The pkey resource created */ public static function getOpenSSLPkey() { - static $res = null; - if (is_null($res)) { - $res = openssl_pkey_new(self::getOpenSSLConfig()); - } - return $res; + return openssl_pkey_new(self::getOpenSSLConfig()); } /** From 39f4538e0f897b96f1e5a614048156fa8869bc9c Mon Sep 17 00:00:00 2001 From: ringmaster Date: Mon, 26 Aug 2013 15:56:45 -0400 Subject: [PATCH 175/184] This function doesn't cache anymore. Adjusted PHPDoc to suit. --- apps/files_encryption/lib/helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index cb5d5fdfb34..445d7ff8ca7 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -277,7 +277,7 @@ class Helper { /** * Create an openssl pkey with config-supplied settings - * WARNING: This initializes and caches a new private keypair, which is computationally expensive + * WARNING: This initializes a new private keypair, which is computationally expensive * @return resource The pkey resource created */ public static function getOpenSSLPkey() { From e7a14ea32df04f32bb08b318b2156a093964e837 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 2 Sep 2013 16:41:18 +0200 Subject: [PATCH 176/184] RGB -> HSL --- core/js/placeholder.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 16543541cb4..16ebbf99a77 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -41,16 +41,13 @@ (function ($) { $.fn.placeholder = function(seed) { var hash = md5(seed), - maxRange = parseInt('ffffffffff', 16), - red = parseInt(hash.substr(0,10), 16) / maxRange * 256, - green = parseInt(hash.substr(10,10), 16) / maxRange * 256, - blue = parseInt(hash.substr(20,10), 16) / maxRange * 256, - rgb = [Math.floor(red), Math.floor(green), Math.floor(blue)], + maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16), + hue = parseInt(hash, 16) / maxRange * 256, height = this.height(); - this.css('background-color', 'rgb(' + rgb.join(',') + ')'); + this.css('background-color', 'hsl(' + hue + ', 50%, 50%)'); // CSS rules - this.css('color', 'rgb(255, 255, 255)'); + this.css('color', '#fff'); this.css('font-weight', 'bold'); this.css('text-align', 'center'); From 57a1219ca0fb83a508e1df00263eb59d6aae61bf Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Mon, 2 Sep 2013 18:20:18 +0200 Subject: [PATCH 177/184] placeholder.js: adjust saturation and lightness values --- core/js/placeholder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 16ebbf99a77..167499940b5 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -34,7 +34,7 @@ * * Which will result in: * - *
    T
    + *
    T
    * */ @@ -44,7 +44,7 @@ maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16), hue = parseInt(hash, 16) / maxRange * 256, height = this.height(); - this.css('background-color', 'hsl(' + hue + ', 50%, 50%)'); + this.css('background-color', 'hsl(' + hue + ', 90%, 65%)'); // CSS rules this.css('color', '#fff'); From 9eeb27c91a43edb41cd6c341bad4b06298ec0d08 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Mon, 2 Sep 2013 18:29:16 +0200 Subject: [PATCH 178/184] placeholder.js: fix typo --- core/js/placeholder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 167499940b5..d63730547d7 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -34,7 +34,7 @@ * * Which will result in: * - *
    T
    + *
    T
    * */ From 87035fc4784cacad5b29c8dbc032239aa01cb54d Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Mon, 2 Sep 2013 19:38:47 +0200 Subject: [PATCH 179/184] center utils --- core/css/apps.css | 1 + 1 file changed, 1 insertion(+) diff --git a/core/css/apps.css b/core/css/apps.css index 445a3b9b59f..5de146feb1f 100644 --- a/core/css/apps.css +++ b/core/css/apps.css @@ -129,6 +129,7 @@ /* counter and actions */ #app-navigation .utils { position: absolute; + padding: 7px 7px 0 0; right: 0; top: 0; bottom: 0; From 53a7f80ac3e5cf07db6ca01b048f2a25a526eb83 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Mon, 2 Sep 2013 23:53:45 +0200 Subject: [PATCH 180/184] Use provided mimetype on open. Fix #4696 --- core/js/oc-dialogs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 4092b8d0746..6b768641586 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -77,7 +77,7 @@ var OCdialogs = { self.$filePicker = $tmpl.octemplate({ dialog_name: dialog_name, title: title - }).data('path', ''); + }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetype_filter); if (modal === undefined) { modal = false; @@ -100,7 +100,7 @@ var OCdialogs = { self._handlePickerClick(event, $(this)); }); self._fillFilePicker(''); - }).data('multiselect', multiselect).data('mimetype',mimetype_filter); + }); // build buttons var functionToCall = function() { From b0c6f990e4e5ad7bb635cf8a296a14da6a1eb47a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 3 Sep 2013 13:12:19 +0200 Subject: [PATCH 181/184] use on to add event listener instead of deprecated jquery bind --- core/js/oc-requesttoken.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/js/oc-requesttoken.js b/core/js/oc-requesttoken.js index 6cc6b5a855b..0d7f40c592a 100644 --- a/core/js/oc-requesttoken.js +++ b/core/js/oc-requesttoken.js @@ -1,3 +1,4 @@ -$(document).bind('ajaxSend', function(elm, xhr, s) { +$(document).on('ajaxSend',function(elm, xhr, s) { xhr.setRequestHeader('requesttoken', oc_requesttoken); }); + From 449fe8c75ed6ccc52708d6efa1c7a00a7d0836d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 3 Sep 2013 13:17:16 +0200 Subject: [PATCH 182/184] Revert "remove editor div in filelist", add "is deprecated" comment This reverts commit 64d09452f55c0c73fe0d55a70f82d8ad7a386d7c. --- apps/files/templates/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index dd783e95cca..cf8865b59c9 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -101,6 +101,7 @@
    +

    t('The files you are trying to upload exceed the maximum size for file uploads on this server.'));?> From fe0b8ac2c0e4ffd06ab8a14d18a701e1ab9071af Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 3 Sep 2013 07:46:55 -0400 Subject: [PATCH 183/184] [tx-robot] updated from transifex --- apps/files/l10n/fr.php | 8 ++-- apps/files/l10n/pt_BR.php | 2 + apps/files_encryption/l10n/fr.php | 2 + apps/files_encryption/l10n/hu_HU.php | 14 ++++++- apps/files_sharing/l10n/fr.php | 6 +++ apps/files_trashbin/l10n/fr.php | 5 ++- apps/files_versions/l10n/fr.php | 3 ++ apps/user_webdavauth/l10n/fr.php | 4 +- core/l10n/fr.php | 17 ++++++-- core/l10n/hi.php | 14 +++++++ l10n/fr/core.po | 40 +++++++++---------- l10n/fr/files.po | 22 +++++----- l10n/fr/files_encryption.po | 16 ++++---- l10n/fr/files_sharing.po | 23 ++++++----- l10n/fr/files_trashbin.po | 31 +++++++------- l10n/fr/files_versions.po | 15 +++---- l10n/fr/lib.po | 32 +++++++-------- l10n/fr/settings.po | 60 ++++++++++++++-------------- l10n/fr/user_webdavauth.po | 12 +++--- l10n/hi/core.po | 35 ++++++++-------- l10n/hu_HU/files_encryption.po | 37 ++++++++--------- l10n/pt_BR/files.po | 10 ++--- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 8 ++-- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- lib/l10n/fr.php | 8 ++-- settings/l10n/fr.php | 16 ++++++++ 35 files changed, 267 insertions(+), 193 deletions(-) diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 4e3b0de112a..ce19bb60eb7 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -33,15 +33,17 @@ $TRANSLATIONS = array( "cancel" => "annuler", "replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}", "undo" => "annuler", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), +"_%n folder_::_%n folders_" => array("%n dossier","%n dossiers"), +"_%n file_::_%n files_" => array("%n fichier","%n fichiers"), +"{dirs} and {files}" => "{dir} et {files}", +"_Uploading %n file_::_Uploading %n files_" => array("Téléversement de %n fichier","Téléversement de %n fichiers"), "files uploading" => "fichiers en cours d'envoi", "'.' is an invalid file name." => "'.' n'est pas un nom de fichier valide.", "File name cannot be empty." => "Le nom de fichier ne peut être vide.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", "Your storage is full, files can not be updated or synced anymore!" => "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !", "Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)", +"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers.", "Your download is being prepared. This might take some time if the files are big." => "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux.", "Name" => "Nom", "Size" => "Taille", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index 15d0c170e66..de9644bd588 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -35,6 +35,7 @@ $TRANSLATIONS = array( "undo" => "desfazer", "_%n folder_::_%n folders_" => array("",""), "_%n file_::_%n files_" => array("",""), +"{dirs} and {files}" => "{dirs} e {files}", "_Uploading %n file_::_Uploading %n files_" => array("",""), "files uploading" => "enviando arquivos", "'.' is an invalid file name." => "'.' é um nome de arquivo inválido.", @@ -42,6 +43,7 @@ $TRANSLATIONS = array( "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", "Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", "Your storage is almost full ({usedSpacePercent}%)" => "Seu armazenamento está quase cheio ({usedSpacePercent}%)", +"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Encriptação foi desabilitada mas seus arquivos continuam encriptados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", "Your download is being prepared. This might take some time if the files are big." => "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes.", "Name" => "Nome", "Size" => "Tamanho", diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php index 12af8101394..358937441e2 100644 --- a/apps/files_encryption/l10n/fr.php +++ b/apps/files_encryption/l10n/fr.php @@ -10,6 +10,8 @@ $TRANSLATIONS = array( "Could not update the private key password. Maybe the old password was not correct." => "Impossible de mettre à jour le mot de passe de la clé privé. Peut-être que l'ancien mot de passe n'était pas correcte.", "Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Votre clé de sécurité privée n'est pas valide! Il est probable que votre mot de passe ait été changé sans passer par le système ownCloud (par éxemple: le serveur de votre entreprise). Ain d'avoir à nouveau accès à vos fichiers cryptés, vous pouvez mettre à jour votre clé de sécurité privée dans les paramètres personnels de votre compte.", "Missing requirements." => "Système minimum requis non respecté.", +"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.", +"Following users are not set up for encryption:" => "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", "Saving..." => "Enregistrement...", "Your private key is not valid! Maybe the your password was changed from outside." => "Votre clef privée est invalide ! Votre mot de passe a peut-être été modifié depuis l'extérieur.", "You can unlock your private key in your " => "Vous pouvez déverrouiller votre clé privée dans votre", diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php index 49dcf817fb7..323291bbfbe 100644 --- a/apps/files_encryption/l10n/hu_HU.php +++ b/apps/files_encryption/l10n/hu_HU.php @@ -1,6 +1,18 @@ "Visszaállítási kulcs sikeresen kikapcsolva", +"Password successfully changed." => "Jelszó sikeresen megváltoztatva.", +"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", +"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás.", "Saving..." => "Mentés...", -"Encryption" => "Titkosítás" +"personal settings" => "személyes beállítások", +"Encryption" => "Titkosítás", +"Enabled" => "Bekapcsolva", +"Disabled" => "Kikapcsolva", +"Change Password" => "Jelszó megváltoztatása", +"Old log-in password" => "Régi bejelentkezési jelszó", +"Current log-in password" => "Jelenlegi bejelentkezési jelszó", +"Update Private Key Password" => "Privát kulcs jelszó frissítése", +"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/fr.php b/apps/files_sharing/l10n/fr.php index b263cd87959..c97a1db97e4 100644 --- a/apps/files_sharing/l10n/fr.php +++ b/apps/files_sharing/l10n/fr.php @@ -3,6 +3,12 @@ $TRANSLATIONS = array( "The password is wrong. Try again." => "Le mot de passe est incorrect. Veuillez réessayer.", "Password" => "Mot de passe", "Submit" => "Envoyer", +"Sorry, this link doesn’t seem to work anymore." => "Désolé, mais le lien semble ne plus fonctionner.", +"Reasons might be:" => "Les raisons peuvent être :", +"the item was removed" => "l'item a été supprimé", +"the link expired" => "le lien a expiré", +"sharing is disabled" => "le partage est désactivé", +"For more info, please ask the person who sent this link." => "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", "%s shared the folder %s with you" => "%s a partagé le répertoire %s avec vous", "%s shared the file %s with you" => "%s a partagé le fichier %s avec vous", "Download" => "Télécharger", diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php index 8854190e2ce..45527805ce1 100644 --- a/apps/files_trashbin/l10n/fr.php +++ b/apps/files_trashbin/l10n/fr.php @@ -8,8 +8,9 @@ $TRANSLATIONS = array( "Delete permanently" => "Supprimer de façon définitive", "Name" => "Nom", "Deleted" => "Effacé", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), +"_%n folder_::_%n folders_" => array("","%n dossiers"), +"_%n file_::_%n files_" => array("","%n fichiers"), +"restored" => "restauré", "Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !", "Restore" => "Restaurer", "Delete" => "Supprimer", diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php index 537783e6c9f..7f3df1bce41 100644 --- a/apps/files_versions/l10n/fr.php +++ b/apps/files_versions/l10n/fr.php @@ -2,6 +2,9 @@ $TRANSLATIONS = array( "Could not revert: %s" => "Impossible de restaurer %s", "Versions" => "Versions", +"Failed to revert {file} to revision {timestamp}." => "Échec du retour du fichier {file} à la révision {timestamp}.", +"More versions..." => "Plus de versions...", +"No other versions available" => "Aucune autre version disponible", "Restore" => "Restaurer" ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php index 0130e35c816..709fa53dac5 100644 --- a/apps/user_webdavauth/l10n/fr.php +++ b/apps/user_webdavauth/l10n/fr.php @@ -1,5 +1,7 @@ "Authentification WebDAV" +"WebDAV Authentication" => "Authentification WebDAV", +"Address: " => "Adresse :", +"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide." ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 81fad258337..0f338a09340 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -2,6 +2,12 @@ $TRANSLATIONS = array( "%s shared »%s« with you" => "%s partagé »%s« avec vous", "group" => "groupe", +"Turned on maintenance mode" => "Basculé en mode maintenance", +"Turned off maintenance mode" => "Basculé en mode production (non maintenance)", +"Updated database" => "Base de données mise à jour", +"Updating filecache, this may take really long..." => "En cours de mise à jour de cache de fichiers. Cette opération peut être très longue...", +"Updated filecache" => "Cache de fichier mis à jour", +"... %d%% done ..." => "... %d%% effectué ...", "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", @@ -31,13 +37,13 @@ $TRANSLATIONS = array( "December" => "décembre", "Settings" => "Paramètres", "seconds ago" => "il y a quelques secondes", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), +"_%n minute ago_::_%n minutes ago_" => array("il y a %n minute","il y a %n minutes"), +"_%n hour ago_::_%n hours ago_" => array("Il y a %n heure","Il y a %n heures"), "today" => "aujourd'hui", "yesterday" => "hier", -"_%n day ago_::_%n days ago_" => array("",""), +"_%n day ago_::_%n days ago_" => array("il y a %n jour","il y a %n jours"), "last month" => "le mois dernier", -"_%n month ago_::_%n months ago_" => array("",""), +"_%n month ago_::_%n months ago_" => array("Il y a %n mois","Il y a %n mois"), "months ago" => "il y a plusieurs mois", "last year" => "l'année dernière", "years ago" => "il y a plusieurs années", @@ -84,6 +90,7 @@ $TRANSLATIONS = array( "Email sent" => "Email envoyé", "The update was unsuccessful. Please report this issue to the ownCloud community." => "La mise à jour a échoué. Veuillez signaler ce problème à la communauté ownCloud.", "The update was successful. Redirecting you to ownCloud now." => "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud.", +"%s password reset" => "Réinitialisation de votre mot de passe %s", "Use the following link to reset your password: {link}" => "Utilisez le lien suivant pour réinitialiser votre mot de passe : {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 ." => "Le lien permettant de réinitialiser votre mot de passe vous a été transmis.
    Si vous ne le recevez pas dans un délai raisonnable, vérifier votre boîte de pourriels.
    Au besoin, contactez votre administrateur local.", "Request failed!
    Did you make sure your email/username was right?" => "Requête en échec!
    Avez-vous vérifié vos courriel/nom d'utilisateur?", @@ -108,9 +115,11 @@ $TRANSLATIONS = array( "Add" => "Ajouter", "Security Warning" => "Avertissement de sécurité", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Votre version de PHP est vulnérable à l'attaque par caractère NULL (CVE-2006-7243)", +"Please update your PHP installation to use %s securely." => "Veuillez mettre à jour votre installation PHP pour utiliser %s de façon sécurisée.", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "Aucun générateur de nombre aléatoire sécurisé n'est disponible, veuillez activer l'extension PHP OpenSSL", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sans générateur de nombre aléatoire sécurisé, un attaquant peut être en mesure de prédire les jetons de réinitialisation du mot de passe, et ainsi prendre le contrôle de votre compte utilisateur.", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Votre répertoire data est certainement accessible depuis l'internet car le fichier .htaccess ne semble pas fonctionner", +"For information how to properly configure your server, please see the documentation." => "Pour les informations de configuration de votre serveur, veuillez lire la documentation.", "Create an admin account" => "Créer un compte administrateur", "Advanced" => "Avancé", "Data folder" => "Répertoire des données", diff --git a/core/l10n/hi.php b/core/l10n/hi.php index 00cb5926d70..29e67f68abf 100644 --- a/core/l10n/hi.php +++ b/core/l10n/hi.php @@ -1,5 +1,15 @@ "कैटेगरी प्रकार उपलब्ध नहीं है", +"This category already exists: %s" => "यह कैटेगरी पहले से ही मौजूद है: %s", +"Object type not provided." => "ऑब्जेक्ट प्रकार नहीं दिया हुआ", +"Sunday" => "रविवार", +"Monday" => "सोमवार", +"Tuesday" => "मंगलवार", +"Wednesday" => "बुधवार", +"Thursday" => "बृहस्पतिवार", +"Friday" => "शुक्रवार", +"Saturday" => "शनिवार", "January" => "जनवरी", "February" => "फरवरी", "March" => "मार्च", @@ -21,6 +31,9 @@ $TRANSLATIONS = array( "Share" => "साझा करें", "Share with" => "के साथ साझा", "Password" => "पासवर्ड", +"Send" => "भेजें", +"Sending ..." => "भेजा जा रहा है", +"Email sent" => "ईमेल भेज दिया गया है ", "Use the following link to reset your password: {link}" => "आगे दिये गये लिंक का उपयोग पासवर्ड बदलने के लिये किजीये: {link}", "You will receive a link to reset your password via Email." => "पासवर्ड बदलने कि लिंक आपको ई-मेल द्वारा भेजी जायेगी|", "Username" => "प्रयोक्ता का नाम", @@ -31,6 +44,7 @@ $TRANSLATIONS = array( "Apps" => "Apps", "Help" => "सहयोग", "Cloud not found" => "क्लौड नहीं मिला ", +"Add" => "डाले", "Create an admin account" => "व्यवस्थापक खाता बनाएँ", "Advanced" => "उन्नत", "Data folder" => "डाटा फोल्डर", diff --git a/l10n/fr/core.po b/l10n/fr/core.po index f5b034ae31c..4215f9dc597 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/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-09-01 13:27-0400\n" -"PO-Revision-Date: 2013-08-30 13:50+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 09:30+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,28 +33,28 @@ msgstr "groupe" #: ajax/update.php:11 msgid "Turned on maintenance mode" -msgstr "" +msgstr "Basculé en mode maintenance" #: ajax/update.php:14 msgid "Turned off maintenance mode" -msgstr "" +msgstr "Basculé en mode production (non maintenance)" #: ajax/update.php:17 msgid "Updated database" -msgstr "" +msgstr "Base de données mise à jour" #: ajax/update.php:20 msgid "Updating filecache, this may take really long..." -msgstr "" +msgstr "En cours de mise à jour de cache de fichiers. Cette opération peut être très longue..." #: ajax/update.php:23 msgid "Updated filecache" -msgstr "" +msgstr "Cache de fichier mis à jour" #: ajax/update.php:26 #, php-format msgid "... %d%% done ..." -msgstr "" +msgstr "... %d%% effectué ..." #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -182,14 +182,14 @@ msgstr "il y a quelques secondes" #: js/js.js:813 msgid "%n minute ago" msgid_plural "%n minutes ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "il y a %n minute" +msgstr[1] "il y a %n minutes" #: js/js.js:814 msgid "%n hour ago" msgid_plural "%n hours ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Il y a %n heure" +msgstr[1] "Il y a %n heures" #: js/js.js:815 msgid "today" @@ -202,8 +202,8 @@ msgstr "hier" #: js/js.js:817 msgid "%n day ago" msgid_plural "%n days ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "il y a %n jour" +msgstr[1] "il y a %n jours" #: js/js.js:818 msgid "last month" @@ -212,8 +212,8 @@ msgstr "le mois dernier" #: js/js.js:819 msgid "%n month ago" msgid_plural "%n months ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Il y a %n mois" +msgstr[1] "Il y a %n mois" #: js/js.js:820 msgid "months ago" @@ -410,7 +410,7 @@ msgstr "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud #: lostpassword/controller.php:61 #, php-format msgid "%s password reset" -msgstr "" +msgstr "Réinitialisation de votre mot de passe %s" #: lostpassword/templates/email.php:2 msgid "Use the following link to reset your password: {link}" @@ -527,7 +527,7 @@ msgstr "Votre version de PHP est vulnérable à l'attaque par caractère NULL (C #: templates/installation.php:26 #, php-format msgid "Please update your PHP installation to use %s securely." -msgstr "" +msgstr "Veuillez mettre à jour votre installation PHP pour utiliser %s de façon sécurisée." #: templates/installation.php:32 msgid "" @@ -552,7 +552,7 @@ msgstr "Votre répertoire data est certainement accessible depuis l'internet car msgid "" "For information how to properly configure your server, please see the documentation." -msgstr "" +msgstr "Pour les informations de configuration de votre serveur, veuillez lire la documentation." #: templates/installation.php:47 msgid "Create an admin account" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index 245c7abab6b..aca28388062 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/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-09-01 13:27-0400\n" -"PO-Revision-Date: 2013-08-30 13:50+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:42-0400\n" +"PO-Revision-Date: 2013-09-03 09:25+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -161,24 +161,24 @@ msgstr "annuler" #: 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 dossier" +msgstr[1] "%n dossiers" #: 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 fichier" +msgstr[1] "%n fichiers" #: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dir} et {files}" #: js/filelist.js:563 msgid "Uploading %n file" msgid_plural "Uploading %n files" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Téléversement de %n fichier" +msgstr[1] "Téléversement de %n fichiers" #: js/filelist.js:628 msgid "files uploading" @@ -210,7 +210,7 @@ msgstr "Votre espace de stockage est presque plein ({usedSpacePercent}%)" msgid "" "Encryption was disabled but your files are still encrypted. Please go to " "your personal settings to decrypt your files." -msgstr "" +msgstr "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers." #: js/files.js:245 msgid "" diff --git a/l10n/fr/files_encryption.po b/l10n/fr/files_encryption.po index 174e4d3f3a3..6616ed62275 100644 --- a/l10n/fr/files_encryption.po +++ b/l10n/fr/files_encryption.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-21 08:10-0400\n" -"PO-Revision-Date: 2013-08-19 19:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:42-0400\n" +"PO-Revision-Date: 2013-09-03 10:00+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -65,20 +65,20 @@ msgid "" "files." msgstr "Votre clé de sécurité privée n'est pas valide! Il est probable que votre mot de passe ait été changé sans passer par le système ownCloud (par éxemple: le serveur de votre entreprise). Ain d'avoir à nouveau accès à vos fichiers cryptés, vous pouvez mettre à jour votre clé de sécurité privée dans les paramètres personnels de votre compte." -#: hooks/hooks.php:41 +#: hooks/hooks.php:51 msgid "Missing requirements." msgstr "Système minimum requis non respecté." -#: hooks/hooks.php:42 +#: hooks/hooks.php:52 msgid "" "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL " "together with the PHP extension is enabled and configured properly. For now," " the encryption app has been disabled." -msgstr "" +msgstr "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée." -#: hooks/hooks.php:249 +#: hooks/hooks.php:250 msgid "Following users are not set up for encryption:" -msgstr "" +msgstr "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :" #: js/settings-admin.js:11 msgid "Saving..." diff --git a/l10n/fr/files_sharing.po b/l10n/fr/files_sharing.po index c6eae4ea599..6f0ea28d9c5 100644 --- a/l10n/fr/files_sharing.po +++ b/l10n/fr/files_sharing.po @@ -4,13 +4,14 @@ # # Translators: # square , 2013 +# Christophe Lherieau , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-19 15:06-0400\n" -"PO-Revision-Date: 2013-08-19 18:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 11:10+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,27 +33,27 @@ msgstr "Envoyer" #: templates/part.404.php:3 msgid "Sorry, this link doesn’t seem to work anymore." -msgstr "" +msgstr "Désolé, mais le lien semble ne plus fonctionner." #: templates/part.404.php:4 msgid "Reasons might be:" -msgstr "" +msgstr "Les raisons peuvent être :" #: templates/part.404.php:6 msgid "the item was removed" -msgstr "" +msgstr "l'item a été supprimé" #: templates/part.404.php:7 msgid "the link expired" -msgstr "" +msgstr "le lien a expiré" #: templates/part.404.php:8 msgid "sharing is disabled" -msgstr "" +msgstr "le partage est désactivé" #: templates/part.404.php:10 msgid "For more info, please ask the person who sent this link." -msgstr "" +msgstr "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien." #: templates/public.php:15 #, php-format @@ -64,7 +65,7 @@ msgstr "%s a partagé le répertoire %s avec vous" msgid "%s shared the file %s with you" msgstr "%s a partagé le fichier %s avec vous" -#: templates/public.php:26 templates/public.php:88 +#: templates/public.php:26 templates/public.php:92 msgid "Download" msgstr "Télécharger" @@ -76,6 +77,6 @@ msgstr "Envoyer" msgid "Cancel upload" msgstr "Annuler l'envoi" -#: templates/public.php:85 +#: templates/public.php:89 msgid "No preview available for" msgstr "Pas d'aperçu disponible pour" diff --git a/l10n/fr/files_trashbin.po b/l10n/fr/files_trashbin.po index 464c518b8a5..52238114518 100644 --- a/l10n/fr/files_trashbin.po +++ b/l10n/fr/files_trashbin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Christophe Lherieau , 2013 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-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 09:30+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,45 +28,45 @@ msgstr "Impossible d'effacer %s de façon permanente" msgid "Couldn't restore %s" msgstr "Impossible de restaurer %s" -#: js/trash.js:7 js/trash.js:100 +#: js/trash.js:7 js/trash.js:102 msgid "perform restore operation" msgstr "effectuer l'opération de restauration" -#: 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 "Erreur" -#: js/trash.js:36 +#: js/trash.js:37 msgid "delete file permanently" msgstr "effacer définitivement le fichier" -#: js/trash.js:127 +#: js/trash.js:129 msgid "Delete permanently" msgstr "Supprimer de façon définitive" -#: js/trash.js:182 templates/index.php:17 +#: js/trash.js:184 templates/index.php:17 msgid "Name" msgstr "Nom" -#: js/trash.js:183 templates/index.php:27 +#: js/trash.js:185 templates/index.php:27 msgid "Deleted" msgstr "Effacé" -#: js/trash.js:191 +#: js/trash.js:193 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%n dossiers" -#: js/trash.js:197 +#: js/trash.js:199 msgid "%n file" msgid_plural "%n files" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%n fichiers" -#: lib/trash.php:819 lib/trash.php:821 +#: lib/trash.php:814 lib/trash.php:816 msgid "restored" -msgstr "" +msgstr "restauré" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" diff --git a/l10n/fr/files_versions.po b/l10n/fr/files_versions.po index 79799c762b9..d5ea6a33082 100644 --- a/l10n/fr/files_versions.po +++ b/l10n/fr/files_versions.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Christophe Lherieau , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-07-28 01:56-0400\n" -"PO-Revision-Date: 2013-07-27 06:10+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 11:10+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,16 +29,16 @@ msgstr "Versions" #: js/versions.js:53 msgid "Failed to revert {file} to revision {timestamp}." -msgstr "" +msgstr "Échec du retour du fichier {file} à la révision {timestamp}." #: js/versions.js:79 msgid "More versions..." -msgstr "" +msgstr "Plus de versions..." #: js/versions.js:116 msgid "No other versions available" -msgstr "" +msgstr "Aucune autre version disponible" -#: js/versions.js:149 +#: js/versions.js:145 msgid "Restore" msgstr "Restaurer" diff --git a/l10n/fr/lib.po b/l10n/fr/lib.po index 5bd611ff268..bc0c4a9abbd 100644 --- a/l10n/fr/lib.po +++ b/l10n/fr/lib.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-25 19:18-0400\n" -"PO-Revision-Date: 2013-08-25 23:18+0000\n" +"POT-Creation-Date: 2013-09-03 07:44-0400\n" +"PO-Revision-Date: 2013-09-03 09:30+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" @@ -265,51 +265,51 @@ msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la s msgid "Please double check the installation guides." msgstr "Veuillez vous référer au guide d'installation." -#: template/functions.php:80 +#: template/functions.php:96 msgid "seconds ago" msgstr "il y a quelques secondes" -#: template/functions.php:81 +#: template/functions.php:97 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" -msgstr[1] "" +msgstr[1] "il y a %n minutes" -#: template/functions.php:82 +#: template/functions.php:98 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" -msgstr[1] "" +msgstr[1] "Il y a %n heures" -#: template/functions.php:83 +#: template/functions.php:99 msgid "today" msgstr "aujourd'hui" -#: template/functions.php:84 +#: template/functions.php:100 msgid "yesterday" msgstr "hier" -#: template/functions.php:85 +#: template/functions.php:101 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "" -msgstr[1] "" +msgstr[1] "il y a %n jours" -#: template/functions.php:86 +#: template/functions.php:102 msgid "last month" msgstr "le mois dernier" -#: template/functions.php:87 +#: template/functions.php:103 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" -msgstr[1] "" +msgstr[1] "Il y a %n mois" -#: template/functions.php:88 +#: template/functions.php:104 msgid "last year" msgstr "l'année dernière" -#: template/functions.php:89 +#: template/functions.php:105 msgid "years ago" msgstr "il y a plusieurs années" diff --git a/l10n/fr/settings.po b/l10n/fr/settings.po index bd79bb2891d..fd619afbb0c 100644 --- a/l10n/fr/settings.po +++ b/l10n/fr/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-03 07:44-0400\n" +"PO-Revision-Date: 2013-09-03 09:50+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -88,53 +88,53 @@ msgstr "Impossible de supprimer l'utilisateur du groupe %s" msgid "Couldn't update app." msgstr "Impossible de mettre à jour l'application" -#: js/apps.js:35 +#: js/apps.js:43 msgid "Update to {appversion}" msgstr "Mettre à jour vers {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 "Désactiver" -#: 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 "Activer" -#: js/apps.js:63 +#: js/apps.js:71 msgid "Please wait...." msgstr "Veuillez patienter…" -#: 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 "Erreur lors de la désactivation de l'application" -#: 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 "Erreur lors de l'activation de l'application" -#: js/apps.js:115 +#: js/apps.js:123 msgid "Updating...." msgstr "Mise à jour..." -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error while updating app" msgstr "Erreur lors de la mise à jour de l'application" -#: js/apps.js:118 +#: js/apps.js:126 msgid "Error" msgstr "Erreur" -#: js/apps.js:119 templates/apps.php:43 +#: js/apps.js:127 templates/apps.php:43 msgid "Update" msgstr "Mettre à jour" -#: js/apps.js:122 +#: js/apps.js:130 msgid "Updated" msgstr "Mise à jour effectuée avec succès" #: js/personal.js:150 msgid "Decrypting files... Please wait, this can take some time." -msgstr "" +msgstr "Déchiffrement en cours... Cela peut prendre un certain temps." #: js/personal.js:172 msgid "Saving..." @@ -196,7 +196,7 @@ msgid "" "configure your webserver in a way that the data directory is no longer " "accessible or you move the data directory outside the webserver document " "root." -msgstr "" +msgstr "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web." #: templates/admin.php:29 msgid "Setup Warning" @@ -211,7 +211,7 @@ msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la s #: templates/admin.php:33 #, php-format msgid "Please double check the installation guides." -msgstr "" +msgstr "Veuillez consulter à nouveau les guides d'installation." #: templates/admin.php:44 msgid "Module 'fileinfo' missing" @@ -233,7 +233,7 @@ msgid "" "System locale can't be set to %s. This means that there might be problems " "with certain characters in file names. We strongly suggest to install the " "required packages on your system to support %s." -msgstr "" +msgstr "Le localisation du système n'a pu être configurée à %s. Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichiers. Il est fortement recommandé d'installer les paquets requis pour le support de %s." #: templates/admin.php:75 msgid "Internet connection not working" @@ -246,7 +246,7 @@ msgid "" "installation of 3rd party apps don´t work. Accessing files from remote and " "sending of notification emails might also not work. We suggest to enable " "internet connection for this server if you want to have all features." -msgstr "" +msgstr "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes." #: templates/admin.php:92 msgid "Cron" @@ -260,11 +260,11 @@ msgstr "Exécute une tâche à chaque chargement de page" msgid "" "cron.php is registered at a webcron service to call cron.php once a minute " "over http." -msgstr "" +msgstr "cron.php est enregistré en tant que service webcron pour appeler cron.php une fois par minute via http." #: templates/admin.php:115 msgid "Use systems cron service to call the cron.php file once a minute." -msgstr "" +msgstr "Utilise le service cron du système pour appeler cron.php une fois par minute." #: templates/admin.php:120 msgid "Sharing" @@ -288,12 +288,12 @@ msgstr "Autoriser les utilisateurs à partager des éléments publiquement à l' #: templates/admin.php:143 msgid "Allow public uploads" -msgstr "" +msgstr "Autoriser les téléversements publics" #: templates/admin.php:144 msgid "" "Allow users to enable others to upload into their publicly shared folders" -msgstr "" +msgstr "Permet d'autoriser les autres utilisateurs à téléverser dans le dossier partagé public de l'utilisateur" #: templates/admin.php:152 msgid "Allow resharing" @@ -322,14 +322,14 @@ msgstr "Forcer HTTPS" #: templates/admin.php:185 #, php-format msgid "Forces the clients to connect to %s via an encrypted connection." -msgstr "" +msgstr "Forcer les clients à se connecter à %s via une connexion chiffrée." #: templates/admin.php:191 #, php-format msgid "" "Please connect to your %s via HTTPS to enable or disable the SSL " "enforcement." -msgstr "" +msgstr "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL." #: templates/admin.php:203 msgid "Log" @@ -483,15 +483,15 @@ msgstr "Chiffrement" #: templates/personal.php:119 msgid "The encryption app is no longer enabled, decrypt all your file" -msgstr "" +msgstr "L'application de chiffrement n'est plus activée, déchiffrez tous vos fichiers" #: templates/personal.php:125 msgid "Log-in password" -msgstr "" +msgstr "Mot de passe de connexion" #: templates/personal.php:130 msgid "Decrypt all Files" -msgstr "" +msgstr "Déchiffrer tous les fichiers" #: templates/users.php:21 msgid "Login Name" diff --git a/l10n/fr/user_webdavauth.po b/l10n/fr/user_webdavauth.po index c4a85dce02d..d24a55c6e23 100644 --- a/l10n/fr/user_webdavauth.po +++ b/l10n/fr/user_webdavauth.po @@ -5,7 +5,7 @@ # Translators: # Adalberto Rodrigues , 2013 # Christophe Lherieau , 2013 -# mishka , 2013 +# mishka, 2013 # ouafnico , 2012 # Robert Di Rosa <>, 2012 # Romain DEP. , 2012-2013 @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-07-27 01:56-0400\n" -"PO-Revision-Date: 2013-07-27 05:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 10:00+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,11 +29,11 @@ msgstr "Authentification WebDAV" #: templates/settings.php:4 msgid "Address: " -msgstr "" +msgstr "Adresse :" #: templates/settings.php:7 msgid "" "The user credentials will be sent to this address. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide." diff --git a/l10n/hi/core.po b/l10n/hi/core.po index 479e61d7c60..dd5f832c464 100644 --- a/l10n/hi/core.po +++ b/l10n/hi/core.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Debanjum , 2013 # rktaiwala , 2013 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-03 07:43-0400\n" +"PO-Revision-Date: 2013-09-03 11:00+0000\n" +"Last-Translator: Debanjum \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -54,7 +55,7 @@ msgstr "" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." -msgstr "" +msgstr "कैटेगरी प्रकार उपलब्ध नहीं है" #: ajax/vcategories/add.php:30 msgid "No category to add?" @@ -63,13 +64,13 @@ msgstr "" #: ajax/vcategories/add.php:37 #, php-format msgid "This category already exists: %s" -msgstr "" +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 @@ -93,31 +94,31 @@ msgstr "" #: js/config.php:32 msgid "Sunday" -msgstr "" +msgstr "रविवार" #: js/config.php:33 msgid "Monday" -msgstr "" +msgstr "सोमवार" #: js/config.php:34 msgid "Tuesday" -msgstr "" +msgstr "मंगलवार" #: js/config.php:35 msgid "Wednesday" -msgstr "" +msgstr "बुधवार" #: js/config.php:36 msgid "Thursday" -msgstr "" +msgstr "बृहस्पतिवार" #: js/config.php:37 msgid "Friday" -msgstr "" +msgstr "शुक्रवार" #: js/config.php:38 msgid "Saturday" -msgstr "" +msgstr "शनिवार" #: js/config.php:43 msgid "January" @@ -318,7 +319,7 @@ msgstr "" #: js/share.js:203 msgid "Send" -msgstr "" +msgstr "भेजें" #: js/share.js:208 msgid "Set expiration date" @@ -386,11 +387,11 @@ msgstr "" #: js/share.js:670 msgid "Sending ..." -msgstr "" +msgstr "भेजा जा रहा है" #: js/share.js:681 msgid "Email sent" -msgstr "" +msgstr "ईमेल भेज दिया गया है " #: js/update.js:17 msgid "" @@ -509,7 +510,7 @@ msgstr "" #: templates/edit_categories_dialog.php:16 msgid "Add" -msgstr "" +msgstr "डाले" #: templates/installation.php:24 templates/installation.php:31 #: templates/installation.php:38 diff --git a/l10n/hu_HU/files_encryption.po b/l10n/hu_HU/files_encryption.po index 7f282b4ac56..b21350959cb 100644 --- a/l10n/hu_HU/files_encryption.po +++ b/l10n/hu_HU/files_encryption.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# blackc0de , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-08-21 08:10-0400\n" -"PO-Revision-Date: 2013-08-19 19:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:42-0400\n" +"PO-Revision-Date: 2013-09-01 19:30+0000\n" +"Last-Translator: blackc0de \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "" #: ajax/adminrecovery.php:48 msgid "Recovery key successfully disabled" -msgstr "" +msgstr "Visszaállítási kulcs sikeresen kikapcsolva" #: ajax/adminrecovery.php:53 msgid "" @@ -37,11 +38,11 @@ msgstr "" #: ajax/changeRecoveryPassword.php:49 msgid "Password successfully changed." -msgstr "" +msgstr "Jelszó sikeresen megváltoztatva." #: ajax/changeRecoveryPassword.php:51 msgid "Could not change the password. Maybe the old password was not correct." -msgstr "" +msgstr "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó." #: ajax/updatePrivateKeyPassword.php:51 msgid "Private key password successfully updated." @@ -61,18 +62,18 @@ msgid "" "files." msgstr "" -#: hooks/hooks.php:41 +#: hooks/hooks.php:51 msgid "Missing requirements." msgstr "" -#: hooks/hooks.php:42 +#: hooks/hooks.php:52 msgid "" "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL " "together with the PHP extension is enabled and configured properly. For now," " the encryption app has been disabled." -msgstr "" +msgstr "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás." -#: hooks/hooks.php:249 +#: hooks/hooks.php:250 msgid "Following users are not set up for encryption:" msgstr "" @@ -92,7 +93,7 @@ msgstr "" #: templates/invalid_private_key.php:7 msgid "personal settings" -msgstr "" +msgstr "személyes beállítások" #: templates/settings-admin.php:5 templates/settings-personal.php:4 msgid "Encryption" @@ -109,11 +110,11 @@ msgstr "" #: templates/settings-admin.php:21 templates/settings-personal.php:54 msgid "Enabled" -msgstr "" +msgstr "Bekapcsolva" #: templates/settings-admin.php:29 templates/settings-personal.php:62 msgid "Disabled" -msgstr "" +msgstr "Kikapcsolva" #: templates/settings-admin.php:34 msgid "Change recovery key password:" @@ -129,7 +130,7 @@ msgstr "" #: templates/settings-admin.php:53 msgid "Change Password" -msgstr "" +msgstr "Jelszó megváltoztatása" #: templates/settings-personal.php:11 msgid "Your private key password no longer match your log-in password:" @@ -147,19 +148,19 @@ msgstr "" #: templates/settings-personal.php:24 msgid "Old log-in password" -msgstr "" +msgstr "Régi bejelentkezési jelszó" #: templates/settings-personal.php:30 msgid "Current log-in password" -msgstr "" +msgstr "Jelenlegi bejelentkezési jelszó" #: templates/settings-personal.php:35 msgid "Update Private Key Password" -msgstr "" +msgstr "Privát kulcs jelszó frissítése" #: templates/settings-personal.php:45 msgid "Enable password recovery:" -msgstr "" +msgstr "Jelszó-visszaállítás bekapcsolása" #: templates/settings-personal.php:47 msgid "" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 4397a9890b0..53543fba7d5 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/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-09-01 13:27-0400\n" -"PO-Revision-Date: 2013-08-30 13:50+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-09-03 07:42-0400\n" +"PO-Revision-Date: 2013-09-02 15:40+0000\n" +"Last-Translator: Flávio Veras \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -172,7 +172,7 @@ msgstr[1] "" #: js/filelist.js:432 msgid "{dirs} and {files}" -msgstr "" +msgstr "{dirs} e {files}" #: js/filelist.js:563 msgid "Uploading %n file" @@ -210,7 +210,7 @@ msgstr "Seu armazenamento está quase cheio ({usedSpacePercent}%)" msgid "" "Encryption was disabled but your files are still encrypted. Please go to " "your personal settings to decrypt your files." -msgstr "" +msgstr "Encriptação foi desabilitada mas seus arquivos continuam encriptados. Por favor vá a suas configurações pessoais para descriptar seus arquivos." #: js/files.js:245 msgid "" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index f2f058e8d24..4c0e3a677c2 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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 7e2f79d2672..8e7a4df03e9 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:42-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_encryption.pot b/l10n/templates/files_encryption.pot index 0e11e6f04d5..b4ab99474a0 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:42-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,18 +60,18 @@ msgid "" "files." msgstr "" -#: hooks/hooks.php:41 +#: hooks/hooks.php:51 msgid "Missing requirements." msgstr "" -#: hooks/hooks.php:42 +#: hooks/hooks.php:52 msgid "" "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL " "together with the PHP extension is enabled and configured properly. For now, " "the encryption app has been disabled." msgstr "" -#: hooks/hooks.php:249 +#: hooks/hooks.php:250 msgid "Following users are not set up for encryption:" msgstr "" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index c0de53d8589..780ae791813 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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 ba7bdaaa82e..e5052a67c11 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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_trashbin.pot b/l10n/templates/files_trashbin.pot index ca149fb14cc..c468f343d19 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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 4c568ee555b..170cd574cb0 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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 4d24c3c7a11..802d246a6ac 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:44-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/settings.pot b/l10n/templates/settings.pot index 462831bc96f..c5c3abed6cc 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:44-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 a5d6146f1c3..3990f5bce43 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-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 1e53a5a759e..8a84e0fe61a 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-09-01 13:27-0400\n" +"POT-Creation-Date: 2013-09-03 07:43-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php index cfcca28d5f8..b9ba71c402e 100644 --- a/lib/l10n/fr.php +++ b/lib/l10n/fr.php @@ -37,13 +37,13 @@ $TRANSLATIONS = array( "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.", "Please double check the installation guides." => "Veuillez vous référer au guide d'installation.", "seconds ago" => "il y a quelques secondes", -"_%n minute ago_::_%n minutes ago_" => array("",""), -"_%n hour ago_::_%n hours ago_" => array("",""), +"_%n minute ago_::_%n minutes ago_" => array("","il y a %n minutes"), +"_%n hour ago_::_%n hours ago_" => array("","Il y a %n heures"), "today" => "aujourd'hui", "yesterday" => "hier", -"_%n day go_::_%n days ago_" => array("",""), +"_%n day go_::_%n days ago_" => array("","il y a %n jours"), "last month" => "le mois dernier", -"_%n month ago_::_%n months ago_" => array("",""), +"_%n month ago_::_%n months ago_" => array("","Il y a %n mois"), "last year" => "l'année dernière", "years ago" => "il y a plusieurs années", "Could not find category \"%s\"" => "Impossible de trouver la catégorie \"%s\"" diff --git a/settings/l10n/fr.php b/settings/l10n/fr.php index 536cac96568..d973ab30afd 100644 --- a/settings/l10n/fr.php +++ b/settings/l10n/fr.php @@ -20,11 +20,14 @@ $TRANSLATIONS = array( "Disable" => "Désactiver", "Enable" => "Activer", "Please wait...." => "Veuillez patienter…", +"Error while disabling app" => "Erreur lors de la désactivation de l'application", +"Error while enabling app" => "Erreur lors de l'activation de l'application", "Updating...." => "Mise à jour...", "Error while updating app" => "Erreur lors de la mise à jour de l'application", "Error" => "Erreur", "Update" => "Mettre à jour", "Updated" => "Mise à jour effectuée avec succès", +"Decrypting files... Please wait, this can take some time." => "Déchiffrement en cours... Cela peut prendre un certain temps.", "Saving..." => "Enregistrement...", "deleted" => "supprimé", "undo" => "annuler", @@ -38,25 +41,35 @@ $TRANSLATIONS = array( "A valid password must be provided" => "Un mot de passe valide doit être saisi", "__language_name__" => "Français", "Security Warning" => "Avertissement de sécurité", +"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.", "Setup Warning" => "Avertissement, problème de configuration", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.", +"Please double check the installation guides." => "Veuillez consulter à nouveau les guides d'installation.", "Module 'fileinfo' missing" => "Module 'fileinfo' manquant", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.", "Locale not working" => "Localisation non fonctionnelle", +"System locale can't be set to %s. This means that there might be problems with certain characters in file names. We strongly suggest to install the required packages on your system to support %s." => "Le localisation du système n'a pu être configurée à %s. Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichiers. Il est fortement recommandé d'installer les paquets requis pour le support de %s.", "Internet connection not working" => "La connexion internet ne fonctionne pas", +"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", "Cron" => "Cron", "Execute one task with each page loaded" => "Exécute une tâche à chaque chargement de page", +"cron.php is registered at a webcron service to call cron.php once a minute over http." => "cron.php est enregistré en tant que service webcron pour appeler cron.php une fois par minute via http.", +"Use systems cron service to call the cron.php file once a minute." => "Utilise le service cron du système pour appeler cron.php une fois par minute.", "Sharing" => "Partage", "Enable Share API" => "Activer l'API de partage", "Allow apps to use the Share API" => "Autoriser les applications à utiliser l'API de partage", "Allow links" => "Autoriser les liens", "Allow users to share items to the public with links" => "Autoriser les utilisateurs à partager des éléments publiquement à l'aide de liens", +"Allow public uploads" => "Autoriser les téléversements publics", +"Allow users to enable others to upload into their publicly shared folders" => "Permet d'autoriser les autres utilisateurs à téléverser dans le dossier partagé public de l'utilisateur", "Allow resharing" => "Autoriser le repartage", "Allow users to share items shared with them again" => "Autoriser les utilisateurs à partager des éléments qui ont été partagés avec eux", "Allow users to share with anyone" => "Autoriser les utilisateurs à partager avec tout le monde", "Allow users to only share with users in their groups" => "Autoriser les utilisateurs à partager avec des utilisateurs de leur groupe uniquement", "Security" => "Sécurité", "Enforce HTTPS" => "Forcer HTTPS", +"Forces the clients to connect to %s via an encrypted connection." => "Forcer les clients à se connecter à %s via une connexion chiffrée.", +"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL.", "Log" => "Log", "Log level" => "Niveau de log", "More" => "Plus", @@ -92,6 +105,9 @@ $TRANSLATIONS = array( "WebDAV" => "WebDAV", "Use this address to access your Files via WebDAV" => "Utilisez cette adresse pour accéder à vos fichiers via WebDAV", "Encryption" => "Chiffrement", +"The encryption app is no longer enabled, decrypt all your file" => "L'application de chiffrement n'est plus activée, déchiffrez tous vos fichiers", +"Log-in password" => "Mot de passe de connexion", +"Decrypt all Files" => "Déchiffrer tous les fichiers", "Login Name" => "Nom de la connexion", "Create" => "Créer", "Admin Recovery Password" => "Récupération du mot de passe administrateur", From d62c5063f420a0ec69d606aea086d40fe027da47 Mon Sep 17 00:00:00 2001 From: kondou Date: Tue, 3 Sep 2013 15:15:20 +0200 Subject: [PATCH 184/184] Add previews to OC.dialogs.filepicker(); Fix #4697 --- core/js/oc-dialogs.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 6b768641586..f184a1022bc 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -285,7 +285,11 @@ var OCdialogs = { filename: entry.name, date: OC.mtime2date(entry.mtime) }); - $li.find('img').attr('src', entry.mimetype_icon); + if (entry.mimetype === "httpd/unix-directory") { + $li.find('img').attr('src', OC.imagePath('core', 'filetypes/folder.png')); + } else { + $li.find('img').attr('src', OC.Router.generate('core_ajax_preview', {x:32, y:32, file:escapeHTML(dir+'/'+entry.name)}) ); + } self.$filelist.append($li); });