diff --git a/CHANGELOG b/CHANGELOG index 55cef62e8..2376707a7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,15 @@ +-------------------------------------------------------------------------------- + Changes in version 4.3.20 +-------------------------------------------------------------------------------- +- fix setting expire date when editing a document (Closes: #225) +- MyDocumets: list only documents to approve which have passed review +- show preview image in Review/Approval summary +- timeout for external commands for creating fulltext index can be set +- add translations for korean, croation, ukrainian +- file can be submitted with approval/review +- alternative full text search engine without dependency on Zend +- much faster user manager + -------------------------------------------------------------------------------- Changes in version 4.3.19 -------------------------------------------------------------------------------- diff --git a/Makefile b/Makefile index fc1db798e..646ee0fcd 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION=4.3.19 +VERSION=4.3.20 SRC=CHANGELOG inc conf utils index.php languages views op out README.md README.Notification README.Ubuntu drop-tables-innodb.sql styles js TODO LICENSE Makefile webdav install restapi # webapp @@ -14,6 +14,7 @@ pear: (cd SeedDMS_Core/; pear package) (cd SeedDMS_Lucene/; pear package) (cd SeedDMS_Preview/; pear package) + (cd SeedDMS_SQLiteFTS/; pear package) webdav: mkdir -p tmp/seeddms-webdav-$(VERSION) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 05f7b2a48..62db0ebf7 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -186,6 +186,17 @@ class SeedDMS_Core_DMS { return false; } /* }}} */ + /** + * Checks if date conforms to a given format + * + * @param string $date date to be checked + * @return boolean true if date is in propper format, otherwise false + */ + static function checkDate($date, $format='Y-m-d H:i:s') { /* {{{ */ + $d = DateTime::createFromFormat($format, $date); + return $d && $d->format($format) == $date; + } /* }}} */ + /** * Filter objects out which are not accessible in a given mode by a user. * @@ -262,7 +273,7 @@ class SeedDMS_Core_DMS { $this->convertFileTypes = array(); $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '4.3.19'; + $this->version = '4.3.20'; } /* }}} */ /** diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 63bda72de..78b6ef517 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -303,6 +303,30 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return $this->_date; } /* }}} */ + /** + * Set creation date of the document + * + * @param integer $date timestamp of creation date. If false then set it + * to the current timestamp + * @return boolean true on success + */ + function setDate($date) { /* {{{ */ + $db = $this->_dms->getDB(); + + if(!$date) + $date = time(); + else { + if(!is_numeric($date)) + return false; + } + + $queryStr = "UPDATE tblDocuments SET date = " . (int) $date . " WHERE id = ". $this->_id; + if (!$db->getResult($queryStr)) + return false; + $this->_date = $date; + return true; + } /* }}} */ + /** * Return the parent folder of the document * @@ -782,35 +806,42 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* The owner of the document has unrestricted access */ if ($user->getID() == $this->_ownerID) return M_ALL; - /* The guest users do not have more than read access */ - if ($user->isGuest()) { - $mode = $this->getDefaultAccess(); - if ($mode >= M_READ) return M_READ; - else return M_NONE; - } - /* Check ACLs */ $accessList = $this->getAccessList(); if (!$accessList) return false; foreach ($accessList["users"] as $userAccess) { if ($userAccess->getUserID() == $user->getID()) { - return $userAccess->getMode(); + $mode = $userAccess->getMode(); + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } } + /* Get the highest right defined by a group */ - $result = 0; - foreach ($accessList["groups"] as $groupAccess) { - if ($user->isMemberOfGroup($groupAccess->getGroup())) { - if ($groupAccess->getMode() > $result) - $result = $groupAccess->getMode(); -// return $groupAccess->getMode(); + if($accessList['groups']) { + $mode = 0; + foreach ($accessList["groups"] as $groupAccess) { + if ($user->isMemberOfGroup($groupAccess->getGroup())) { + if ($groupAccess->getMode() > $mode) + $mode = $groupAccess->getMode(); + } + } + if($mode) { + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } } - if($result) - return $result; - $result = $this->getDefaultAccess(); - return $result; + + $mode = $this->getDefaultAccess(); + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } /* }}} */ /** @@ -2413,7 +2444,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * @param object $updateUser user initiating the status change * @return boolean true on success, otherwise false */ - function setStatus($status, $comment, $updateUser) { /* {{{ */ + function setStatus($status, $comment, $updateUser, $date='') { /* {{{ */ $db = $this->_document->_dms->getDB(); if (!is_numeric($status)) return false; @@ -2436,8 +2467,12 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if ($this->_status["status"]==$status) { return false; } + if($date) + $ddate = $db->qstr($date); + else + $ddate = 'CURRENT_TIMESTAMP'; $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $this->_status["statusID"] ."', '". (int) $status ."', ".$db->qstr($comment).", CURRENT_TIMESTAMP, '". $updateUser->getID() ."')"; + "VALUES ('". $this->_status["statusID"] ."', '". (int) $status ."', ".$db->qstr($comment).", ".$ddate.", '". $updateUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) return false; @@ -2447,6 +2482,55 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return true; } /* }}} */ + /** + * Rewrites the complete status log + * + * Attention: this function is highly dangerous. + * It removes an existing status log and rewrites it. + * This method was added for importing an xml dump. + * + * @param array $statuslog new status log with the newest log entry first. + * @return boolean true on success, otherwise false + */ + function rewriteStatusLog($statuslog) { /* {{{ */ + $db = $this->_document->_dms->getDB(); + + $queryStr= "SELECT `tblDocumentStatus`.* FROM `tblDocumentStatus` WHERE `tblDocumentStatus`.`documentID` = '". $this->_document->getID() ."' AND `tblDocumentStatus`.`version` = '". $this->_version ."' "; + $res = $db->getResultArray($queryStr); + if (is_bool($res) && !$res) + return false; + + $statusID = $res[0]['statusID']; + + $db->startTransaction(); + + /* First, remove the old entries */ + $queryStr = "DELETE from `tblDocumentStatusLog` where `statusID`=".$statusID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + + /* Second, insert the new entries */ + $statuslog = array_reverse($statuslog); + foreach($statuslog as $log) { + if(!SeedDMS_Core_DMS::checkDate($log['date'], 'Y-m-d H:i:s')) { + $db->rollbackTransaction(); + return false; + } + $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('".$statusID ."', '".(int) $log['status']."', ".$db->qstr($log['comment']) .", ".$db->qstr($log['date']).", ".$log['user']->getID().")"; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + } + + $db->commitTransaction(); + return true; + } /* }}} */ + + /** * Returns the access mode similar to a document * There is no real access mode for document content, so this is more @@ -2538,6 +2622,73 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return $this->_reviewStatus; } /* }}} */ + /** + * Rewrites the complete review log + * + * Attention: this function is highly dangerous. + * It removes an existing review log and rewrites it. + * This method was added for importing an xml dump. + * + * @param array $reviewlog new status log with the newest log entry first. + * @return boolean true on success, otherwise false + */ + function rewriteReviewLog($reviewers) { /* {{{ */ + $db = $this->_document->_dms->getDB(); + + $queryStr= "SELECT `tblDocumentReviewers`.* FROM `tblDocumentReviewers` WHERE `tblDocumentReviewers`.`documentID` = '". $this->_document->getID() ."' AND `tblDocumentReviewers`.`version` = '". $this->_version ."' "; + $res = $db->getResultArray($queryStr); + if (is_bool($res) && !$res) + return false; + + $db->startTransaction(); + + if($res) { + foreach($res as $review) { + $reviewID = $review['reviewID']; + + /* First, remove the old entries */ + $queryStr = "DELETE from `tblDocumentReviewLog` where `reviewID`=".$reviewID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + + $queryStr = "DELETE from `tblDocumentReviewers` where `reviewID`=".$reviewID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + } + } + + /* Second, insert the new entries */ + foreach($reviewers as $review) { + $queryStr = "INSERT INTO `tblDocumentReviewers` (`documentID`, `version`, `type`, `required`) ". + "VALUES ('".$this->_document->getID()."', '".$this->_version."', ".$review['type'] .", ".$review['required']->getID().")"; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + $reviewID = $db->getInsertID(); + $reviewlog = array_reverse($review['logs']); + foreach($reviewlog as $log) { + if(!SeedDMS_Core_DMS::checkDate($log['date'], 'Y-m-d H:i:s')) { + $db->rollbackTransaction(); + return false; + } + $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('".$reviewID ."', '".(int) $log['status']."', ".$db->qstr($log['comment']) .", ".$db->qstr($log['date']).", ".$log['user']->getID().")"; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + } + } + + $db->commitTransaction(); + return true; + } /* }}} */ + /** * Get the current approval status of the document content * The approval status is a list of approvals and its current status @@ -2595,6 +2746,73 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return $this->_approvalStatus; } /* }}} */ + /** + * Rewrites the complete approval log + * + * Attention: this function is highly dangerous. + * It removes an existing review log and rewrites it. + * This method was added for importing an xml dump. + * + * @param array $reviewlog new status log with the newest log entry first. + * @return boolean true on success, otherwise false + */ + function rewriteApprovalLog($reviewers) { /* {{{ */ + $db = $this->_document->_dms->getDB(); + + $queryStr= "SELECT `tblDocumentApprovers`.* FROM `tblDocumentApprovers` WHERE `tblDocumentApprovers`.`documentID` = '". $this->_document->getID() ."' AND `tblDocumentApprovers`.`version` = '". $this->_version ."' "; + $res = $db->getResultArray($queryStr); + if (is_bool($res) && !$res) + return false; + + $db->startTransaction(); + + if($res) { + foreach($res as $review) { + $reviewID = $review['reviewID']; + + /* First, remove the old entries */ + $queryStr = "DELETE from `tblDocumentApproveLog` where `approveID`=".$reviewID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + + $queryStr = "DELETE from `tblDocumentApprovers` where `approveID`=".$reviewID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + } + } + + /* Second, insert the new entries */ + foreach($reviewers as $review) { + $queryStr = "INSERT INTO `tblDocumentApprovers` (`documentID`, `version`, `type`, `required`) ". + "VALUES ('".$this->_document->getID()."', '".$this->_version."', ".$review['type'] .", ".$review['required']->getID().")"; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + $reviewID = $db->getInsertID(); + $reviewlog = array_reverse($review['logs']); + foreach($reviewlog as $log) { + if(!SeedDMS_Core_DMS::checkDate($log['date'], 'Y-m-d H:i:s')) { + $db->rollbackTransaction(); + return false; + } + $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('".$reviewID ."', '".(int) $log['status']."', ".$db->qstr($log['comment']) .", ".$db->qstr($log['date']).", ".$log['user']->getID().")"; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } + } + } + + $db->commitTransaction(); + return true; + } /* }}} */ + function addIndReviewer($user, $requestUser, $listadmin=false) { /* {{{ */ $db = $this->_document->_dms->getDB(); diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 8d2b434b2..84ee203a5 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -133,6 +133,30 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return $this->_date; } /* }}} */ + /** + * Set creation date of the document + * + * @param integer $date timestamp of creation date. If false then set it + * to the current timestamp + * @return boolean true on success + */ + function setDate($date) { /* {{{ */ + $db = $this->_dms->getDB(); + + if(!$date) + $date = time(); + else { + if(!is_numeric($date)) + return false; + } + + $queryStr = "UPDATE tblFolders SET date = " . (int) $date . " WHERE id = ". $this->_id; + if (!$db->getResult($queryStr)) + return false; + $this->_date = $date; + return true; + } /* }}} */ + /** * Returns the parent * @@ -1005,41 +1029,48 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { if(!$user) return M_NONE; - /* Admins have full access */ + /* Administrators have unrestricted access */ if ($user->isAdmin()) return M_ALL; - /* User has full access if he/she is the owner of the document */ + /* The owner of the document has unrestricted access */ if ($user->getID() == $this->_ownerID) return M_ALL; - /* Guest has read access by default, if guest login is allowed at all */ - if ($user->isGuest()) { - $mode = $this->getDefaultAccess(); - if ($mode >= M_READ) return M_READ; - else return M_NONE; - } - - /* check ACLs */ + /* Check ACLs */ $accessList = $this->getAccessList(); if (!$accessList) return false; foreach ($accessList["users"] as $userAccess) { if ($userAccess->getUserID() == $user->getID()) { - return $userAccess->getMode(); + $mode = $userAccess->getMode(); + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } } + /* Get the highest right defined by a group */ - $result = 0; - foreach ($accessList["groups"] as $groupAccess) { - if ($user->isMemberOfGroup($groupAccess->getGroup())) { - if ($groupAccess->getMode() > $result) - $result = $groupAccess->getMode(); -// return $groupAccess->getMode(); + if($accessList['groups']) { + $mode = 0; + foreach ($accessList["groups"] as $groupAccess) { + if ($user->isMemberOfGroup($groupAccess->getGroup())) { + if ($groupAccess->getMode() > $mode) + $mode = $groupAccess->getMode(); + } + } + if($mode) { + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } } - if($result) - return $result; - $result = $this->getDefaultAccess(); - return $result; + + $mode = $this->getDefaultAccess(); + if ($user->isGuest()) { + if ($mode >= M_READ) $mode = M_READ; + } + return $mode; } /* }}} */ /** diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 29c32fa82..18e7d6ac7 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -15,8 +15,8 @@ 2015-06-26 - 4.3.19 - 4.3.19 + 4.3.20 + 4.3.20 stable @@ -24,9 +24,15 @@ GPL License -- add optional paramter $noclean to clearAccessList(), setDefaultAccess(), setInheritAccess() -- clearAccessList() will clean up the notifier list -- new method cleanNotifyList() +- add method SeedDMS_Core_DMS::checkDate() +- add method SeedDMS_Core_Document::setDate() +- add method SeedDMS_Core_Folder::setDate() +- date can be passed to SeedDMS_Core_DocumentContent::setStatus() +- add method SeedDMS_Core_DocumentContent::rewriteStatusLog() +- add method SeedDMS_Core_DocumentContent::rewriteReviewLog() +- add method SeedDMS_Core_DocumentContent::rewriteApprovalLog() +- access rights for guest are also taken into account if set in an acl. Previously guest could gain read rights even if the access was probibited +by a group or user right @@ -850,5 +856,23 @@ clean workflow log when a document version was deleted - add method SeedDMS_Core_DMS::getDuplicateDocumentContent() + + 2015-06-26 + + + 4.3.19 + 4.3.19 + + + stable + stable + + GPL License + +- add optional paramter $noclean to clearAccessList(), setDefaultAccess(), setInheritAccess() +- clearAccessList() will clean up the notifier list +- new method cleanNotifyList() + + diff --git a/SeedDMS_Lucene/Lucene/IndexedDocument.php b/SeedDMS_Lucene/Lucene/IndexedDocument.php index 40035c1ca..8d24b3793 100644 --- a/SeedDMS_Lucene/Lucene/IndexedDocument.php +++ b/SeedDMS_Lucene/Lucene/IndexedDocument.php @@ -23,11 +23,45 @@ * @version Release: @package_version@ */ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document { + + static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + + $output = ''; + do { + $timeleft = $timeout - time(); + $read = array($pipes[1]); + stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, NULL); + + if (!empty($read)) { + $output .= fread($pipes[1], 8192); + } + } while (!feof($pipes[1]) && $timeleft > 0); + + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + return $output; + } + } /* }}} */ + /** * Constructor. Creates our indexable document and adds all * necessary fields to it using the passed in document */ - public function __construct($dms, $document, $convcmd=null, $nocontent=false) { + public function __construct($dms, $document, $convcmd=null, $nocontent=false, $timeout=5) { $_convcmd = array( 'application/pdf' => 'pdftotext -enc UTF-8 -nopgbrk %s - |sed -e \'s/ [a-zA-Z0-9.]\{1\} / /g\' -e \'s/[0-9.]//g\'', 'application/msword' => 'catdoc %s', @@ -90,6 +124,8 @@ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document { $mimetype = $version->getMimeType(); if(isset($_convcmd[$mimetype])) { $cmd = sprintf($_convcmd[$mimetype], $path); + $content = self::execWithTimeout($cmd); + /* $fp = popen($cmd, 'r'); if($fp) { $content = ''; @@ -98,6 +134,7 @@ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document { } pclose($fp); } + */ if($content) { $this->addField(Zend_Search_Lucene_Field::UnStored('content', $content, 'utf-8')); } diff --git a/SeedDMS_Lucene/Lucene/Search.php b/SeedDMS_Lucene/Lucene/Search.php index d51c800ca..857d23ceb 100644 --- a/SeedDMS_Lucene/Lucene/Search.php +++ b/SeedDMS_Lucene/Lucene/Search.php @@ -42,6 +42,17 @@ class SeedDMS_Lucene_Search { $this->version = '3.0.0'; } /* }}} */ + /** + * Get document from index + * + * @param object $index lucene index + * @return object instance of SeedDMS_Lucene_Document of false + */ + function getDocument($id) { /* {{{ */ + $hits = $this->index->find('document_id:'.$id); + return $hits ? $hits[0] : false; + } /* }}} */ + /** * Search in index * diff --git a/SeedDMS_Lucene/package.xml b/SeedDMS_Lucene/package.xml index cfc66bb68..1b6f36d80 100644 --- a/SeedDMS_Lucene/package.xml +++ b/SeedDMS_Lucene/package.xml @@ -11,11 +11,11 @@ uwe@steinmann.cx yes - 2014-07-30 - + 2015-08-05 + - 1.1.5 - 1.1.5 + 1.1.6 + 1.1.6 stable @@ -23,8 +23,7 @@ GPL License -field for original filename is treated as utf-8 -declare SeeDMS_Lucene_Indexer::open() static +run external commands with a timeout @@ -170,5 +169,22 @@ do not check if deleting document from index fails, update it in any case class SeedDMS_Lucene_Search::search returns false if query is invalid instead of an empty result record + + 2014-07-30 + + + 1.1.5 + 1.1.5 + + + stable + stable + + GPL License + +field for original filename is treated as utf-8 +declare SeeDMS_Lucene_Indexer::open() static + + diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index e275d8f1e..fba3359c9 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -50,6 +50,39 @@ class SeedDMS_Preview_Previewer { $this->width = intval($width); } + static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + + $output = ''; + do { + $timeleft = $timeout - time(); + $read = array($pipes[1]); + stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, NULL); + + if (!empty($read)) { + $output .= fread($pipes[1], 8192); + } + } while (!feof($pipes[1]) && $timeleft > 0); + + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + return $output; + } + } /* }}} */ + /** * Retrieve the physical filename of the preview image on disk * @@ -113,7 +146,11 @@ class SeedDMS_Preview_Previewer { break; } if($cmd) { - exec($cmd); + //exec($cmd); + try { + self::execWithTimeout($cmd); + } catch(Exception $e) { + } } return true; } diff --git a/SeedDMS_Preview/package.xml b/SeedDMS_Preview/package.xml index 844178d9c..e4a75a82f 100644 --- a/SeedDMS_Preview/package.xml +++ b/SeedDMS_Preview/package.xml @@ -11,10 +11,10 @@ uwe@steinmann.cx yes - 2015-02-13 - + 2015-08-08 + - 1.1.3 + 1.1.4 1.1.0 @@ -23,7 +23,7 @@ GPL License -preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case. +command for creating the preview will be called with a given timeout @@ -115,5 +115,21 @@ add converters for .tar.gz, .ps, .txt create fixed width image with proportional height + + 2015-02-13 + + + 1.1.3 + 1.1.0 + + + stable + stable + + GPL License + +preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case. + + diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS.php b/SeedDMS_SQLiteFTS/SQLiteFTS.php new file mode 100644 index 000000000..0a3b710e8 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS.php @@ -0,0 +1,44 @@ + diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php new file mode 100644 index 000000000..48c4e789c --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php @@ -0,0 +1,58 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a document. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Document { + + /** + * @var integer $id id of document + * @access protected + */ + public $id; + + /** + * @var array $fields fields + * @access protected + */ + protected $fields; + + public function addField($key, $value) { /* {{{ */ + if($key == 'document_id') { + $this->id = $this->fields[$key] = (int) $value; + } else { + if(isset($this->fields[$key])) + $this->fields[$key] .= ' '.$value; + else + $this->fields[$key] = $value; + } + } /* }}} */ + + public function getFieldValue($key) { /* {{{ */ + if(isset($this->fields[$key])) + return $this->fields[$key]; + else + return false; + } /* }}} */ + +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php new file mode 100644 index 000000000..455b3dd77 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php @@ -0,0 +1,140 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * @uses SeedDMS_SQLiteFTS_Document + */ +require_once('Document.php'); + + +/** + * Class for managing an indexed document. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document { + + static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + + $output = ''; + do { + $timeleft = $timeout - time(); + $read = array($pipes[1]); + stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, NULL); + + if (!empty($read)) { + $output .= fread($pipes[1], 8192); + } + } while (!feof($pipes[1]) && $timeleft > 0); + + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + return $output; + } + } /* }}} */ + + /** + * Constructor. Creates our indexable document and adds all + * necessary fields to it using the passed in document + */ + public function __construct($dms, $document, $convcmd=null, $nocontent=false, $timeout=5) { + $_convcmd = array( + 'application/pdf' => 'pdftotext -enc UTF-8 -nopgbrk %s - |sed -e \'s/ [a-zA-Z0-9.]\{1\} / /g\' -e \'s/[0-9.]//g\'', + 'application/msword' => 'catdoc %s', + 'application/vnd.ms-excel' => 'ssconvert -T Gnumeric_stf:stf_csv -S %s fd://1', + 'audio/mp3' => "id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'", + 'audio/mpeg' => "id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'", + 'text/plain' => 'cat %s', + ); + if($convcmd) { + $_convcmd = $convcmd; + } + + $version = $document->getLatestContent(); + $this->addField('document_id', $document->getID()); + if($version) { + $this->addField('mimetype', $version->getMimeType()); + $this->addField('origfilename', $version->getOriginalFileName()); + if(!$nocontent) + $this->addField('created', $version->getDate(), 'unindexed'); + if($attributes = $version->getAttributes()) { + foreach($attributes as $attribute) { + $attrdef = $attribute->getAttributeDefinition(); + if($attrdef->getValueSet() != '') + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + else + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + } + } + } + $this->addField('title', $document->getName()); + if($categories = $document->getCategories()) { + $names = array(); + foreach($categories as $cat) { + $names[] = $cat->getName(); + } + $this->addField('category', implode(' ', $names)); + } + if($attributes = $document->getAttributes()) { + foreach($attributes as $attribute) { + $attrdef = $attribute->getAttributeDefinition(); + if($attrdef->getValueSet() != '') + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + else + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + } + } + + $owner = $document->getOwner(); + $this->addField('owner', $owner->getLogin()); + if($keywords = $document->getKeywords()) { + $this->addField('keywords', $keywords); + } + if($comment = $document->getComment()) { + $this->addField('comment', $comment); + } + if($version && !$nocontent) { + $path = $dms->contentDir . $version->getPath(); + $content = ''; + $fp = null; + $mimetype = $version->getMimeType(); + if(isset($_convcmd[$mimetype])) { + $cmd = sprintf($_convcmd[$mimetype], $path); + $content = self::execWithTimeout($cmd); + if($content) { + $this->addField('content', $content, 'unstored'); + } + } + } + } +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php new file mode 100644 index 000000000..8a311cd50 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -0,0 +1,255 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a SQLiteFTS index. + * + * @category DMS + * @package SeedDMS_Lucene + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Indexer { + /** + * @var object $index sqlite index + * @access protected + */ + protected $_conn; + + /** + * Constructor + * + */ + function __construct($indexerDir) { /* {{{ */ + $this->_conn = new PDO('sqlite:'.$indexerDir.'/index.db'); + } /* }}} */ + + /** + * Open an existing index + * + * @param string $indexerDir directory on disk containing the index + */ + static function open($indexerDir) { /* {{{ */ + if(file_exists($indexerDir.'/index.db')) { + return new SeedDMS_SQLiteFTS_Indexer($indexerDir); + } else + return self::create($indexerDir); + } /* }}} */ + + /** + * Create a new index + * + * @param string $indexerDir directory on disk containing the index + */ + static function create($indexerDir) { /* {{{ */ + unlink($indexerDir.'/index.db'); + $index = new SeedDMS_SQLiteFTS_Indexer($indexerDir); + /* Make sure the sequence of fields is identical to the field list + * in SeedDMS_SQLiteFTS_Term + */ + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, notindexed=created, matchinfo=fts3)'; + $res = $index->_conn->exec($sql); + if($res === false) { + return null; + } + $sql = 'CREATE VIRTUAL TABLE docs_terms USING fts4aux(docs);'; + $res = $index->_conn->exec($sql); + if($res === false) { + return null; + } + return($index); + } /* }}} */ + + /** + * Do some initialization + * + */ + static function init($stopWordsFile='') { /* {{{ */ + } /* }}} */ + + /** + * Add document to index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + function addDocument($doc) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, origfilename, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('origfilename')).", ".time().")"; + $res = $this->_conn->exec($sql); + if($res === false) { + var_dump($this->_conn->errorInfo()); + } + return $res; + } /* }}} */ + + /** + * Remove document from index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + public function delete($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "DELETE FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->exec($sql); + return $res; + } /* }}} */ + + /** + * Check if document was deleted + * + * Just for compatibility with lucene. + * + * @return boolean always false + */ + public function isDeleted($id) { /* {{{ */ + return false; + } /* }}} */ + + /** + * Find documents in index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + public function find($query) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT docid FROM docs WHERE docs MATCH ".$this->_conn->quote($query); + $res = $this->_conn->query($sql); + $hits = array(); + if($res) { + foreach($res as $rec) { + $hit = new SeedDMS_SQLiteFTS_QueryHit($this); + $hit->id = $rec['docid']; + $hits[] = $hit; + } + } + return $hits; + } /* }}} */ + + /** + * Get a single document from index + * + * @param integer $id id of document + * @return boolean false in case of an error, otherwise true + */ + public function findById($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT docid FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->query($sql); + $hits = array(); + if($res) { + while($rec = $res->fetch(PDO::FETCH_ASSOC)) { + $hit = new SeedDMS_SQLiteFTS_QueryHit($this); + $hit->id = $rec['docid']; + $hits[] = $hit; + } + } + return $hits; + } /* }}} */ + + /** + * Get a single document from index + * + * @param integer $id id of document + * @return boolean false in case of an error, otherwise true + */ + public function getDocument($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT title, comment, owner, keywords, category, mimetype, origfilename, created FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->query($sql); + $doc = false; + if($res) { + $rec = $res->fetch(PDO::FETCH_ASSOC); + $doc = new SeedDMS_SQLiteFTS_Document(); + $doc->addField('title', $rec['title']); + $doc->addField('comment', $rec['comment']); + $doc->addField('keywords', $rec['keywords']); + $doc->addField('category', $rec['category']); + $doc->addField('mimetype', $rec['mimetype']); + $doc->addField('origfilename', $rec['origfilename']); + $doc->addField('owner', $rec['owner']); + $doc->addField('created', $rec['created']); + } + return $doc; + } /* }}} */ + + /** + * Return list of terms in index + * + * This function does nothing! + */ + public function terms() { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT term, col, occurrences FROM docs_terms WHERE col!='*' ORDER BY col"; + $res = $this->_conn->query($sql); + $terms = array(); + if($res) { + while($rec = $res->fetch(PDO::FETCH_ASSOC)) { + $term = new SeedDMS_SQLiteFTS_Term($rec['term'], $rec['col'], $rec['occurrences']); + $terms[] = $term; + } + } + return $terms; + } /* }}} */ + + /** + * Return list of documents in index + * + */ + public function count() { /* {{{ */ + $sql = "SELECT count(*) c FROM docs"; + $res = $this->_conn->query($sql); + if($res) { + $rec = $res->fetch(PDO::FETCH_ASSOC); + return $rec['c']; + } + return 0; + } /* }}} */ + + /** + * Commit changes + * + * This function does nothing! + */ + function commit() { /* {{{ */ + } /* }}} */ + + /** + * Optimize index + * + * This function does nothing! + */ + function optimize() { /* {{{ */ + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php b/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php new file mode 100644 index 000000000..d87486118 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php @@ -0,0 +1,65 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a query hit. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_QueryHit { + + /** + * @var SeedDMS_SQliteFTS_Indexer $index + * @access protected + */ + protected $_index; + + /** + * @var SeedDMS_SQliteFTS_Document $document + * @access protected + */ + protected $_document; + + /** + * @var integer $id id of document + * @access public + */ + public $id; + + /** + * + */ + public function __construct(SeedDMS_SQLiteFTS_Indexer $index) { /* {{{ */ + $this->_index = $index; + } /* }}} */ + + /** + * Return the document associated with this hit + * + * @return SeedDMS_SQLiteFTS_Document + */ + public function getDocument() { /* {{{ */ + if (!$this->_document instanceof SeedDMS_SQLiteFTS_Document) { + $this->_document = $this->_index->getDocument($this->id); + } + + return $this->_document; + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php new file mode 100644 index 000000000..18b20fdaf --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php @@ -0,0 +1,96 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for searching in a SQlite FTS index. + * + * @category DMS + * @package SeedDMS_Lucene + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQliteFTS_Search { + /** + * @var object $index SQlite FTS index + * @access protected + */ + protected $index; + + /** + * Create a new instance of the search + * + * @param object $index SQlite FTS index + * @return object instance of SeedDMS_SQliteFTS_Search + */ + function __construct($index) { /* {{{ */ + $this->index = $index; + $this->version = '@package_version@'; + if($this->version[0] == '@') + $this->version = '3.0.0'; + } /* }}} */ + + /** + * Get hit from index + * + * @param object $index lucene index + * @return object instance of SeedDMS_Lucene_Document of false + */ + function getDocument($id) { /* {{{ */ + $hits = $this->index->findById((int) $id); + return $hits ? $hits[0] : false; + } /* }}} */ + + /** + * Search in index + * + * @param object $index SQlite FTS index + * @return object instance of SeedDMS_Lucene_Search + */ + function search($term, $owner, $status='', $categories=array(), $fields=array()) { /* {{{ */ + $querystr = ''; + if($fields) { + } else { + if($term) + $querystr .= trim($term); + } + if($owner) { + if($querystr) + $querystr .= ' '; + //$querystr .= ' AND '; + $querystr .= 'owner:'.$owner; + //$querystr .= $owner; + } + if($categories) { + if($querystr) + $querystr .= ' '; + //$querystr .= ' AND '; + $querystr .= 'category:'; + $querystr .= implode(' OR category:', $categories); + $querystr .= ''; + } + try { + $hits = $this->index->find($querystr); + $recs = array(); + foreach($hits as $hit) { + $recs[] = array('id'=>$hit->id, 'document_id'=>$hit->id); + } + return $recs; + } catch (Exception $e) { + return false; + } + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php new file mode 100644 index 000000000..ae768b245 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php @@ -0,0 +1,66 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a term. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Term { + + /** + * @var string $text + * @access public + */ + public $text; + + /** + * @var string $field + * @access public + */ + public $field; + + /** + * @var integer $occurrence + * @access public + */ + public $_occurrence; + + /** + * + */ + public function __construct($term, $col, $occurrence) { /* {{{ */ + $this->text = $term; + $fields = array( + 0 => 'title', + 1 => 'comment', + 2 => 'keywords', + 3 => 'category', + 4 => 'mimetype', + 5 => 'origfilename', + 6 => 'owner', + 7 => 'content', + 8 => 'created' + ); + $this->field = $fields[$col]; + $this->_occurrence = $occurrence; + } /* }}} */ + +} +?> diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml new file mode 100644 index 000000000..41e5c793b --- /dev/null +++ b/SeedDMS_SQLiteFTS/package.xml @@ -0,0 +1,70 @@ + + + SeedDMS_SQLiteFTS + pear.php.net + Fulltext search based on sqlite for SeedDMS + SeedDMS is a web based document management system (DMS). This is + the fulltext search engine for it, based on SQLite FTS. + + Uwe Steinmann + steinm + uwe@steinmann.cx + yes + + 2015-08-10 + + + 1.0.0 + 1.0.0 + + + stable + stable + + GPL License + +initial release + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4.3.0 + + + 1.5.4 + + + + + + + diff --git a/SeedDMS_SQLiteFTS/tests/Index.php b/SeedDMS_SQLiteFTS/tests/Index.php new file mode 100644 index 000000000..e69de29bb diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index fb4ba1d30..984f1dce5 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -87,12 +87,14 @@ class Settings { /* {{{ */ var $_stopWordsFile = null; // enable/disable lucene fulltext search var $_enableFullSearch = true; + // fulltext search engine + var $_fullSearchEngine = 'lucene'; // contentOffsetDirTo var $_contentOffsetDir = "1048576"; // Maximum number of sub-directories per parent directory var $_maxDirID = 32700; // default language (name of a subfolder in folder "languages") - var $_language = "English"; + var $_language = "en_GB"; // users are notified about document-changes that took place within the last $_updateNotifyTime seconds var $_updateNotifyTime = 86400; // files with one of the following endings can be viewed online @@ -179,6 +181,8 @@ class Settings { /* {{{ */ var $_adminIP = ""; // Max Execution Time var $_maxExecutionTime = null; + // command timeout + var $_cmdTimeout = 5; // Preview image width in lists var $_previewWidthList = 40; // Preview image width on document details page @@ -187,6 +191,8 @@ class Settings { /* {{{ */ var $_showMissingTranslations = false; // Extra Path to additional software, will be added to include path var $_extraPath = null; + // do not check version of database + var $_doNotCheckDBVersion = false; // DB-Driver used by adodb (see adodb-readme) var $_dbDriver = "mysql"; // DB-Server @@ -343,6 +349,7 @@ class Settings { /* {{{ */ $this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]); $this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]); $this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]); + $this->_fullSearchEngine = strval($tab["fullSearchEngine"]); $this->_stopWordsFile = strval($tab["stopWordsFile"]); $this->_sortUsersInList = strval($tab["sortUsersInList"]); $this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]); @@ -436,6 +443,7 @@ class Settings { /* {{{ */ $this->_dbDatabase = strval($tab["dbDatabase"]); $this->_dbUser = strval($tab["dbUser"]); $this->_dbPass = strval($tab["dbPass"]); + $this->_doNotCheckDBVersion = Settings::boolVal($tab["doNotCheckVersion"]); // XML Path: /configuration/system/smtp $node = $xml->xpath('/configuration/system/smtp'); @@ -505,6 +513,7 @@ class Settings { /* {{{ */ $this->_contentOffsetDir = strval($tab["contentOffsetDir"]); $this->_maxDirID = intval($tab["maxDirID"]); $this->_updateNotifyTime = intval($tab["updateNotifyTime"]); + $this->_cmdTimeout = intval($tab["cmdTimeout"]); if (isset($tab["maxExecutionTime"])) $this->_maxExecutionTime = intval($tab["maxExecutionTime"]); else @@ -613,6 +622,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector); $this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector); $this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch); + $this->setXMLAttributValue($node, "fullSearchEngine", $this->_fullSearchEngine); $this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree); $this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile); $this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList); @@ -712,6 +722,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); + $this->setXMLAttributValue($node, "doNotCheckVersion", $this->_doNotCheckVersion); // XML Path: /configuration/system/smtp $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); @@ -761,6 +772,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "maxDirID", $this->_maxDirID); $this->setXMLAttributValue($node, "updateNotifyTime", $this->_updateNotifyTime); $this->setXMLAttributValue($node, "maxExecutionTime", $this->_maxExecutionTime); + $this->setXMLAttributValue($node, "cmdTimeout", $this->_cmdTimeout); // XML Path: /configuration/advanced/converters foreach($this->_converters['fulltext'] as $mimeType => $cmd) diff --git a/inc/inc.ClassViewCommon.php b/inc/inc.ClassViewCommon.php index 248d0efe3..0668f2d4b 100644 --- a/inc/inc.ClassViewCommon.php +++ b/inc/inc.ClassViewCommon.php @@ -25,17 +25,26 @@ * @version Release: @package_version@ */ class SeedDMS_View_Common { - var $theme; + protected $theme; - var $params; - -// var $settings; + protected $params; function __construct($params, $theme='blue') { $this->theme = $theme; $this->params = $params; } + function __invoke($get=array()) { + if(isset($get['action']) && $get['action']) { + if(method_exists($this, $get['action'])) { + $this->{$get['action']}(); + } else { + echo "Missing action '".$get['action']."'"; + } + } else + $this->show(); + } + function setParams($params) { $this->params = $params; } @@ -44,19 +53,18 @@ class SeedDMS_View_Common { $this->params[$name] = $value; } + function getParam($name) { + if(isset($this->params[$name])) + return $this->params[$name]; + return null; + } + function unsetParam($name) { if(isset($this->params[$name])) unset($this->params[$name]); } -/* - function setConfiguration($conf) { - $this->settings = $conf; - } -*/ - function show() { - } } ?> diff --git a/inc/inc.DBInit.php b/inc/inc.DBInit.php index 5230b051a..583e6482a 100644 --- a/inc/inc.DBInit.php +++ b/inc/inc.DBInit.php @@ -28,7 +28,7 @@ $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostn $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); -if(!$dms->checkVersion()) { +if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { echo "Database update needed."; exit; } diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index e8bdc86e9..a766e0811 100644 --- a/inc/inc.Settings.php +++ b/inc/inc.Settings.php @@ -88,4 +88,28 @@ if (get_magic_quotes_gpc()) { } unset($process); } + +if($settings->_enableFullSearch) { + if($settings->_fullSearchEngine == 'sqlitefts') { + $indexconf = array( + 'Indexer' => 'SeedDMS_SQLiteFTS_Indexer', + 'Search' => 'SeedDMS_SQLiteFTS_Search', + 'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument' + ); + + require_once('SeedDMS/SQLiteFTS.php'); + } else { + $indexconf = array( + 'Indexer' => 'SeedDMS_Lucene_Indexer', + 'Search' => 'SeedDMS_Lucene_Search', + 'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument' + ); + + if(!empty($settings->_luceneClassDir)) + require_once($settings->_luceneClassDir.'/Lucene.php'); + else + require_once('SeedDMS/Lucene.php'); + } +} + ?> diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index aef0352bf..8342681f7 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -296,11 +296,12 @@ function dskspace($dir) { /* {{{ */ if(is_file($dir)) { $space = filesize($dir); } elseif (is_dir($dir)) { - $dh = opendir($dir); - while (($file = readdir($dh)) !== false) - if ($file != "." and $file != "..") - $space += dskspace($dir."/".$file); - closedir($dh); + if($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) + if ($file != "." and $file != "..") + $space += dskspace($dir."/".$file); + closedir($dh); + } } return $space; } /* }}} */ diff --git a/inc/inc.Version.php b/inc/inc.Version.php index 89d0dd747..7efae66c0 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -20,7 +20,7 @@ class SeedDMS_Version { - public $_number = "4.3.19"; + public $_number = "4.3.20"; private $_string = "SeedDMS"; function SeedDMS_Version() { diff --git a/install/index.php b/install/index.php index ffab318f5..57fa4afc9 100644 --- a/install/index.php +++ b/install/index.php @@ -7,9 +7,7 @@ $settings->_rootDir = $rootDir.'/'; $theme = "blue"; include("../inc/inc.Language.php"); -include "../languages/en_GB/lang.inc"; include("../inc/inc.ClassUI.php"); -$LANG['en_GB'] = $text; UI::htmlStartPage("INSTALL"); UI::contentHeading("SeedDMS Installation..."); diff --git a/install/install.php b/install/install.php index 569db5a2b..869a062a6 100644 --- a/install/install.php +++ b/install/install.php @@ -119,7 +119,7 @@ function fileExistsInIncludePath($file) { /* {{{ */ * Load default settings + set */ define("SEEDDMS_INSTALL", "on"); -define("SEEDDMS_VERSION", "4.3.19"); +define("SEEDDMS_VERSION", "4.3.20"); require_once('../inc/inc.ClassSettings.php'); @@ -206,7 +206,7 @@ if (isset($_GET['disableinstall'])) { /* {{{ */ if(unlink($configDir."/ENABLE_INSTALL_TOOL")) { echo getMLText("settings_install_disabled"); echo "

"; - echo '' . getMLText("settings_more_settings") .''; + echo '' . getMLText("settings_more_settings") .''; } else { echo getMLText("settings_cannot_disable"); echo "

"; @@ -368,7 +368,7 @@ if ($action=="setSettings") { echo '' . getMLText("settings_disable_install") . ''; echo "

"; - echo '' . getMLText("settings_more_settings") .''; + echo '' . getMLText("settings_more_settings") .''; $showform = false; } } else { diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 1bf45886c..d2f8b0163 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1247) +// Translators: Admin (1253) $text = array( 'accept' => 'وافق', @@ -51,7 +51,7 @@ URL: [url]', 'add_approval' => 'ادخال موافقة', 'add_document' => 'إضافة مستند', 'add_document_link' => 'إضافة رابط', -'add_document_notify' => '', +'add_document_notify' => 'ﺖﺨﺼﻴﺻ ﺎﺸﻋﺍﺭ', 'add_doc_reviewer_approver_warning' => 'ملاحظة : يتم اعتبار المستندات نهائية اذا لم يتم تعيين مراجع او موافق للمستند', 'add_doc_workflow_warning' => 'ملاحظة : يتم اعتبار المستندات نهائية اذا لم يتم اختيار مسار عمل للمستند', 'add_event' => 'إضافة حدث', @@ -269,6 +269,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'مستندات في انتظار المراجعة', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'مستندات ملكك تستلزم انتباهك', 'document_already_checkedout' => '', 'document_already_locked' => 'هذا المستند محمي ضد التعديل', @@ -465,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'بالساعة', 'hours' => 'ساعات', +'hr_HR' => '', 'human_readable' => 'ارشيف مقروء', 'hu_HU' => 'مجرية', 'id' => 'معرف', @@ -527,6 +529,7 @@ URL: [url]', 'keep_doc_status' => 'ابقاء حالة المستند', 'keywords' => 'كلمات البحث', 'keyword_exists' => 'كلمات البحث بالفعل موجودة', +'ko_KR' => '', 'language' => 'اللغة', 'lastaccess' => '', 'last_update' => 'اخر تحديث', @@ -652,7 +655,9 @@ URL: [url]', 'no_group_members' => 'هذه المجموعة لايوجد بها اعضاء', 'no_linked_files' => 'لايوجد ملفات مرتبطة', 'no_previous_versions' => 'لايوجد اصدارات سابقة', +'no_receipt_needed' => '', 'no_review_needed' => 'لايوجد مراجعات في الانتظار', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'لايمكنك تعديل المستند. قم بمخاطبة المستخدم الذي قام بحمايته من التعديل', 'no_user_image' => 'لا يوجد صورة متاحة', @@ -844,12 +849,12 @@ URL: [url]', 'select_category' => 'اضغط لاختيار قسم', 'select_groups' => 'اضغط لاختيار مجموعة', 'select_grp_approvers' => 'اضغط لاختيار مجموعة الموافقون', -'select_grp_notification' => '', +'select_grp_notification' => 'ﺎﻨﻗﺭ ﻼﺨﺘﻳﺍﺭ ﺍﻼﺸﻋﺍﺭ ﻞﻤﺠﻣﻮﻋﺓ', 'select_grp_recipients' => '', 'select_grp_reviewers' => 'اضغط لاختيار مجموعة المراجعون', 'select_grp_revisors' => '', 'select_ind_approvers' => 'اضغط لاختيار موافق فردي', -'select_ind_notification' => '', +'select_ind_notification' => 'ﺎﻨﻗﺭ ﻼﺨﺘﻳﺍﺭ ﺍﻼﺸﻋﺍﺭ ﻞﺸﺨﺻ', 'select_ind_recipients' => '', 'select_ind_reviewers' => 'اضغط لاختيار مراجع فردي', 'select_ind_revisors' => '', @@ -870,6 +875,10 @@ URL: [url]', 'settings_Advanced' => 'متقدم', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => '', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', 'settings_Calendar' => 'اعدادات التقويم', @@ -878,6 +887,8 @@ URL: [url]', 'settings_cannot_disable' => '', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'مجلد المحتوى', 'settings_contentDir_desc' => '', 'settings_contentOffsetDir' => '', @@ -937,6 +948,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Show selector for user interface language after being logged in.', 'settings_enableLargeFileUpload' => 'Enable large file upload', 'settings_enableLargeFileUpload_desc' => '', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => '', 'settings_enableNotificationAppRev_desc' => '', 'settings_enableNotificationWorkflow' => '', @@ -978,6 +991,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', @@ -1194,6 +1211,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => 'شكل', @@ -1225,7 +1243,7 @@ URL: [url]', 'tuesday' => 'الثلاثاء', 'tuesday_abbr' => 'ث', 'type_to_search' => 'اكتب لتبحث', -'uk_UA' => '', +'uk_UA' => 'ﺍﻮﻛﺭﺎﻨﻳ', 'under_folder' => 'في المجلد', 'unknown_attrdef' => '', 'unknown_command' => 'لم يتم التعرف على الأمر.', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index 3f01faa7a..193436f31 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (778) +// Translators: Admin (780) $text = array( 'accept' => 'Приеми', @@ -254,6 +254,7 @@ $text = array( 'documents_to_receipt' => '', 'documents_to_review' => 'Документы, чакащи Вашата рецензия', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Ваши документи, изискващи внимание', 'document_already_checkedout' => '', 'document_already_locked' => 'Документът е вече блокиран', @@ -396,6 +397,7 @@ $text = array( 'home_folder' => '', 'hourly' => 'Ежечасно', 'hours' => 'часа', +'hr_HR' => '', 'human_readable' => 'Човекопонятен архив', 'hu_HU' => '', 'id' => 'ID', @@ -458,6 +460,7 @@ $text = array( 'keep_doc_status' => 'Запази статуса на документа', 'keywords' => 'Ключови думи', 'keyword_exists' => 'Ключовата дума съществува', +'ko_KR' => '', 'language' => 'Език', 'lastaccess' => '', 'last_update' => 'Последно обновление', @@ -559,7 +562,9 @@ $text = array( 'no_group_members' => 'Групата няма членове', 'no_linked_files' => 'Няма свързани файлове', 'no_previous_versions' => 'Няма други версии', +'no_receipt_needed' => '', 'no_review_needed' => 'Рецензия не е нужна', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Вие не можете да обновите документа. Свържете се с блокирщия го потребител.', 'no_user_image' => 'Изображение не е намерено', @@ -735,6 +740,10 @@ $text = array( 'settings_Advanced' => 'Допълнително', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Настройки на автентификацията', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Кеш папка', 'settings_cacheDir_desc' => 'къде се съхраняват превю картинките (най-добре да се избере папка която не е достъпна през web-server-а)', 'settings_Calendar' => 'Настройки календар', @@ -743,6 +752,8 @@ $text = array( 'settings_cannot_disable' => 'Невозможно е да се изтрие ENABLE_INSTALL_TOOL', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Папка със данните', 'settings_contentDir_desc' => 'Къде да съхранява качените файлове (най-добре изберете папка, недостъпна за уеб-сървъра)', 'settings_contentOffsetDir' => 'Content Offset Directory', @@ -802,6 +813,8 @@ $text = array( 'settings_enableLanguageSelector_desc' => 'Покажи селектор за език на интерфейса след влизане. Това не влияе на избора на език на първа страница.', 'settings_enableLargeFileUpload' => 'Включи джава-зараждане на файлове', 'settings_enableLargeFileUpload_desc' => 'Ако е включено, качване на файлове е дустъпно и чрез джава-аплет, именован jumploader, без лимит за размер на файла. Това също ще позволи да се качват няколко файла наведнъж.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Разреши уведомление до рецензиращи/утвърждаващи', 'settings_enableNotificationAppRev_desc' => 'Избери за изпращане на уведомление до рецензиращи/утвърждаващи когато се добавя нова версия на документа', 'settings_enableNotificationWorkflow' => '', @@ -843,6 +856,10 @@ $text = array( 'settings_firstDayOfWeek_desc' => 'Първи ден на седмицата', 'settings_footNote' => 'Футер', 'settings_footNote_desc' => 'Съобщение, показвано отдолу на всяка страница', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Идентификатор за гостенин', 'settings_guestID_desc' => 'Идентификатор за гост (може да не се променя)', 'settings_httpRoot' => 'Корен Http', @@ -1059,6 +1076,7 @@ $text = array( 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => 'Тема', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 2091b50fc..231a44810 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (655) +// Translators: Admin (657) $text = array( 'accept' => 'Acceptar', @@ -259,6 +259,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Documents en espera de revisió d\'usuaris', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documents de la seva propietat que requereixen atenció', 'document_already_checkedout' => '', 'document_already_locked' => 'Aquest document ja està bloquejat', @@ -401,6 +402,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Hourly', 'hours' => '', +'hr_HR' => '', 'human_readable' => 'Arxiu llegible per humans', 'hu_HU' => '', 'id' => 'ID', @@ -463,6 +465,7 @@ URL: [url]', 'keep_doc_status' => '', 'keywords' => 'Mots clau', 'keyword_exists' => 'El mot clau ja existeix', +'ko_KR' => '', 'language' => 'Llenguatge', 'lastaccess' => '', 'last_update' => 'Última modificació', @@ -564,7 +567,9 @@ URL: [url]', 'no_group_members' => 'Aquest grup no té membres', 'no_linked_files' => 'No hi ha fitxers enllaçats', 'no_previous_versions' => 'No s\'han trobat altres versions', +'no_receipt_needed' => '', 'no_review_needed' => 'No hi ha revisions pendents.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Aquest document no es pot actualitzar. Si us plau, contacteu amb l\'usuari que l\'ha bloquejat.', 'no_user_image' => 'No es troba la imatge', @@ -740,6 +745,10 @@ URL: [url]', 'settings_Advanced' => '', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => '', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', 'settings_Calendar' => '', @@ -748,6 +757,8 @@ URL: [url]', 'settings_cannot_disable' => '', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => '', 'settings_contentDir_desc' => '', 'settings_contentOffsetDir' => '', @@ -807,6 +818,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => '', 'settings_enableLargeFileUpload' => '', 'settings_enableLargeFileUpload_desc' => '', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => '', 'settings_enableNotificationAppRev_desc' => '', 'settings_enableNotificationWorkflow' => '', @@ -848,6 +861,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Guest ID', 'settings_guestID_desc' => '', 'settings_httpRoot' => 'Http Root', @@ -1064,6 +1081,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => 'Tema gràfic', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index ea748df5e..b26e0f930 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (683), kreml (455) +// Translators: Admin (688), kreml (455) $text = array( 'accept' => 'Přijmout', @@ -276,6 +276,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Dokumenty čekající na kontrolu uživatele', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty, které uživatel vlastní a vyžadují pozornost', 'document_already_checkedout' => '', 'document_already_locked' => 'Tento dokument je už zamčený', @@ -472,6 +473,7 @@ URL: [url]', 'home_folder' => 'Domácí složka', 'hourly' => 'Hodinově', 'hours' => 'hodiny', +'hr_HR' => 'Chorvatština', 'human_readable' => 'Bežně čitelný archív', 'hu_HU' => 'Maďarština', 'id' => 'ID', @@ -534,6 +536,7 @@ URL: [url]', 'keep_doc_status' => 'Zachovat stav dokumentu', 'keywords' => 'Klíčová slova', 'keyword_exists' => 'Klíčové slovo už existuje', +'ko_KR' => 'Korejština', 'language' => 'Jazyk', 'lastaccess' => 'Poslední přístup', 'last_update' => 'Naposledy aktualizoval', @@ -659,7 +662,9 @@ URL: [url]', 'no_group_members' => 'Tato skupina nemá žádné členy', 'no_linked_files' => 'Žádné propojené soubory', 'no_previous_versions' => 'Nebyly nalezeny žádné jiné verze', +'no_receipt_needed' => '', 'no_review_needed' => 'Nic nečeká k revizi.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Proto nemůžete aktualizovat tento dokument. Prosím, kontaktujte uživatele, který ho zamknul.', 'no_user_image' => 'nebyl nalezen žádný obrázek', @@ -879,6 +884,10 @@ URL: [url]', 'settings_Advanced' => 'Advanced', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Authentication settings', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Adresář mezipaměti', 'settings_cacheDir_desc' => 'Kde jsou uloženy náhledy obrázků (nejlepší zvolit adresář, který není přístupný přes webový server)', 'settings_Calendar' => 'Nastavení kalendáře', @@ -887,6 +896,8 @@ URL: [url]', 'settings_cannot_disable' => 'Soubor ENABLE_INSTALL_TOOL nejde vymazat', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Obsah adresáře', 'settings_contentDir_desc' => 'Místo, kde jsou nahrané soubory uloženy (nejlepší zvolit adresář, který není přístupný přes váš web-server)', 'settings_contentOffsetDir' => '', @@ -946,6 +957,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Zobrazit výběr jazyka uživatelského rozhraní po přihlášení.', 'settings_enableLargeFileUpload' => 'Enable large file upload', 'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Povolit oznámení posuzovateli/schvalovateli', 'settings_enableNotificationAppRev_desc' => 'Označit pro oznamování posuzovateli/schvalovateli, pokud je přidána nová verze dokumentu.', 'settings_enableNotificationWorkflow' => '', @@ -987,6 +1000,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'First day of the week', 'settings_footNote' => 'Poznámka pod čarou', 'settings_footNote_desc' => 'Message to display at the bottom of every page', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => 'Http Root', @@ -1203,6 +1220,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Tento mail slouží pouze pro test konfigurace SeedDMS', 'testmail_subject' => 'Testovací mail', 'theme' => 'Vzhled', @@ -1234,7 +1252,7 @@ URL: [url]', 'tuesday' => 'Úterý', 'tuesday_abbr' => 'Út', 'type_to_search' => 'Zadejte hledaný výraz', -'uk_UA' => '', +'uk_UA' => 'Ukrajnština', 'under_folder' => 'Ve složce', 'unknown_attrdef' => 'Neznámá definice atributu', 'unknown_command' => 'Příkaz nebyl rozpoznán.', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index b6c44265c..5452853a7 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2087), dgrutsch (18) +// Translators: Admin (2106), dgrutsch (18) $text = array( 'accept' => 'Übernehmen', @@ -191,7 +191,7 @@ URL: [url]', 'category_in_use' => 'Diese Kategorie wird zur Zeit von Dokumenten verwendet.', 'category_noname' => 'Kein Kategoriename eingetragen.', 'ca_ES' => 'Katalanisch', -'change_assignments' => 'Zuweisungen ändern', +'change_assignments' => 'Setze Prüfer/Freigeber', 'change_password' => 'Passwort ändern', 'change_password_message' => 'Ihr Passwort wurde geändert.', 'change_recipients' => 'Empfängerliste ändern', @@ -281,6 +281,7 @@ URL: [url]', 'documents_to_receipt' => 'Dokumente deren Empfang bestätigt werden muss', 'documents_to_review' => 'Prüfung erforderlich', 'documents_to_revise' => 'Erneute Prüfung erforderlich', +'documents_user_rejected' => 'Abgelehnte Dokumente', 'documents_user_requiring_attention' => 'Diese Dokumente sollte ich mal nachsehen', 'document_already_checkedout' => 'Dieses Dokument ist bereits ausgecheckt', 'document_already_locked' => 'Dieses Dokument ist bereits gesperrt', @@ -477,6 +478,7 @@ URL: [url]', 'home_folder' => 'Heimatordner', 'hourly' => 'stündlich', 'hours' => 'Stunden', +'hr_HR' => 'Kroatisch', 'human_readable' => 'Menschenlesbares Archiv', 'hu_HU' => 'Ungarisch', 'id' => 'ID', @@ -539,6 +541,7 @@ URL: [url]', 'keep_doc_status' => 'Dokumentenstatus beibehalten', 'keywords' => 'Stichworte', 'keyword_exists' => 'Stichwort besteht bereits', +'ko_KR' => 'Koreanisch', 'language' => 'Sprache', 'lastaccess' => 'Letzter Zugriff', 'last_update' => 'Letzte Aktualisierung', @@ -663,7 +666,9 @@ URL: [url]', 'no_group_members' => 'Diese Gruppe hat keine Mitglieder', 'no_linked_files' => 'Keine verknüpften Dokumente', 'no_previous_versions' => 'Keine anderen Versionen gefunden', +'no_receipt_needed' => 'Es gibt zur Zeit keine Dokumente, die eine Empfangsbestätigung erfordern.', 'no_review_needed' => 'Keine offenen Prüfungen.', +'no_revision_needed' => 'Es gibt zur Zeit keine Dokumente, die eine erneute Prüfung erfordern.', 'no_revision_planed' => 'Keine Wiederholungsprüfung des Dokuments eingeplant.', 'no_update_cause_locked' => 'Sie können daher im Moment diese Datei nicht aktualisieren. Wenden Sie sich an den Benutzer, der die Sperrung eingerichtet hat', 'no_user_image' => 'Kein Bild vorhanden', @@ -899,6 +904,10 @@ URL: [url]', 'settings_Advanced' => 'Erweitert', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Authentifikations-Einstellungen', +'settings_autoLoginUser' => 'Automatisches Login', +'settings_autoLoginUser_desc' => 'Verwende den Benutzer mit der angegebenen Id, sofern man nicht bereits angemeldet ist. Solch ein Zugriff erzeugt keine eigene Sitzung.', +'settings_backupDir' => 'Sicherungs-Verzeichnis', +'settings_backupDir_desc' => 'Verzeichnis in dem das Backup-Tool die Sicherungen ablegt. Wenn hier kein Wert gesetzt wird oder auf das Verzeichnis nicht zugriffen werden kann, dann werden die Sicherungen im Content-Verzeichnis abgelegt.', 'settings_cacheDir' => 'Cache Verzeichnis', 'settings_cacheDir_desc' => 'Verzeichnis in dem Vorschaubilder abgelegt werden. Dies sollte ein Verzeichnis sein, auf das man über den Web-Browser keinen direkten Zugriff hat.', 'settings_Calendar' => 'Kalender-Einstellungen', @@ -907,6 +916,8 @@ URL: [url]', 'settings_cannot_disable' => 'Datei ENABLE_INSTALL_TOOL konnte nicht gelöscht werden.', 'settings_checkOutDir' => 'Verzeichnis für ausgecheckte Dokumente', 'settings_checkOutDir_desc' => 'Dies ist das Verzeichnis, in das Dokumenteninhalte bei einem Check out kopiert werden. Wenn dieses Verzeichnis für die Benutzer erreichbar ist, können die Dateien editiert und dann wieder eingecheckt werden.', +'settings_cmdTimeout' => 'Timeout für externe Programme', +'settings_cmdTimeout_desc' => 'Diese Zeit in Sekunden legt fest, wann ein externes Programm (z.B. für die Erstellung des Volltextindex) beendet wird.', 'settings_contentDir' => 'Content-Verzeichnis', 'settings_contentDir_desc' => 'Verzeichnis, in dem die Dokumente gespeichert werden. Sie sollten ein Verzeichnis wählen, das nicht durch den Web-Server erreichbar ist.', 'settings_contentOffsetDir' => 'Content Offset Directory', @@ -966,6 +977,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Zeige Auswahl der verfügbaren Sprachen nachdem man sich angemeldet hat.', 'settings_enableLargeFileUpload' => 'Hochladen von sehr großen Dateien ermöglichen', 'settings_enableLargeFileUpload_desc' => 'Wenn dies gesetzt ist, dann ist ebenfalls der Upload von Dokumenten durch ein java applet mit Namen \'jumploader\' ohne Begrenzung der maximalen Dateigröße möglich. Auch das Hochladen mehrerer Dokumente in einem Schritt wird dadurch ermöglicht. Das Einschalten bewirkt, dass keine http only Cookies mehr gesetzt werden.', +'settings_enableMenuTasks' => 'Aufgabenliste im Menü', +'settings_enableMenuTasks_desc' => 'Ein-/Ausschalten des Menüeintrags, der anstehenden Aufgaben des Benutzers enthält. Diese Liste beinhaltet Dokumente die geprüft, freigegeben, usw. werden müssen.', 'settings_enableNotificationAppRev' => 'Prűfer/Freigeber benachrichtigen', 'settings_enableNotificationAppRev_desc' => 'Setzen Sie diese Option, wenn die Prüfer und Freigeber eines Dokuments beim Hochladen einer neuen Version benachrichtigt werden sollen.', 'settings_enableNotificationWorkflow' => 'Sende Benachrichtigung an Benutzer im nächsten Workflow-Schritt', @@ -1007,6 +1020,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Erster Tag der Woche', 'settings_footNote' => 'Text im Fuß der Seite', 'settings_footNote_desc' => 'Meldung, die im Fuß jeder Seite angezeigt wird.', +'settings_fullSearchEngine' => 'Verfahren für Volltext', +'settings_fullSearchEngine_desc' => 'Setzt das Verfahren, welches für die Volltextsuche verwendet wird.', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gast-ID', 'settings_guestID_desc' => 'Id des Gast-Benutzers, wenn man sich als \'guest\' anmeldet.', 'settings_httpRoot' => 'HTTP Wurzelverzeichnis', @@ -1223,6 +1240,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Übernehme Gruppe von Prüfern von letzter Version.', 'takeOverIndApprover' => 'Übernehme Einzelfreigebende von letzter Version.', 'takeOverIndReviewer' => 'Übernehme die Einzelprüfer von der letzten Version.', +'tasks' => 'Aufgaben', 'testmail_body' => 'Diese Mail ist lediglich zum Test der Mail-Konfiguration von SeedDMS', 'testmail_subject' => 'Test Mail', 'theme' => 'Aussehen', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 0670a3e5d..0d6f915fe 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1216), dgrutsch (3), netixw (14) +// Translators: Admin (1238), dgrutsch (3), netixw (14) $text = array( 'accept' => 'Accept', @@ -191,7 +191,7 @@ URL: [url]', 'category_in_use' => 'This category is currently used by documents.', 'category_noname' => 'No category name given.', 'ca_ES' => 'Catalan', -'change_assignments' => 'Change Assignments', +'change_assignments' => 'Set reviewer/approver', 'change_password' => 'Change password', 'change_password_message' => 'Your password has been changed.', 'change_recipients' => 'Change list of recipients', @@ -281,6 +281,7 @@ URL: [url]', 'documents_to_receipt' => 'Documents awaiting to confirm the receipt', 'documents_to_review' => 'Documents awaiting your review', 'documents_to_revise' => 'Documents to revise', +'documents_user_rejected' => 'Rejected documents', 'documents_user_requiring_attention' => 'Documents owned by you that require attention', 'document_already_checkedout' => 'This document is already checked out', 'document_already_locked' => 'This document is aleady locked', @@ -477,6 +478,7 @@ URL: [url]', 'home_folder' => 'Home folder', 'hourly' => 'Hourly', 'hours' => 'hours', +'hr_HR' => 'Croatian', 'human_readable' => 'Human readable archive', 'hu_HU' => 'Hungarian', 'id' => 'ID', @@ -539,6 +541,7 @@ URL: [url]', 'keep_doc_status' => 'Keep document status', 'keywords' => 'Keywords', 'keyword_exists' => 'Keyword already exists', +'ko_KR' => 'Korean', 'language' => 'Language', 'lastaccess' => 'Last access', 'last_update' => 'Last Update', @@ -663,7 +666,9 @@ URL: [url]', 'no_group_members' => 'This group has no members', 'no_linked_files' => 'No linked files', 'no_previous_versions' => 'No other versions found', +'no_receipt_needed' => '', 'no_review_needed' => 'No review pending.', +'no_revision_needed' => 'No revision pending.', 'no_revision_planed' => 'No revision of document scheduled', 'no_update_cause_locked' => 'You can therefore not update this document. Please contact the locking user.', 'no_user_image' => 'No image found', @@ -777,10 +782,10 @@ URL: [url]', 'reviewer_already_removed' => 'Reviewer has already been removed from review process or has already submitted a review', 'review_deletion_email' => 'Review request deleted', 'review_deletion_email_body' => 'Review request deleted -Dokument: [name] +Document: [name] Version: [version] -Elternordner: [folder_path] -Benutzer: [username] +Parentfolder: [folder_path] +User: [username] URL: [url]', 'review_deletion_email_subject' => '[sitename]: [name] - Review request deleted', 'review_file' => 'File', @@ -906,6 +911,10 @@ URL: [url]', 'settings_Advanced' => 'Advanced', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Authentication settings', +'settings_autoLoginUser' => 'Automatic login', +'settings_autoLoginUser_desc' => 'Use this user id for accesses if the user is not already logged in. Such an access will not create a session.', +'settings_backupDir' => 'Backup directory', +'settings_backupDir_desc' => 'Directory where the backup tool saves backups. If this directory is not set or cannot be accessed, then the backups will be saved in the content directory.', 'settings_cacheDir' => 'Cache directory', 'settings_cacheDir_desc' => 'Where the preview images are stored (best to choose a directory that is not accessible through your web-server)', 'settings_Calendar' => 'Calendar settings', @@ -914,6 +923,8 @@ URL: [url]', 'settings_cannot_disable' => 'File ENABLE_INSTALL_TOOL could not deleted', 'settings_checkOutDir' => 'Directory for checked out documents', 'settings_checkOutDir_desc' => 'This is the directory where the latest content of a document is copied if the document is checked out. If you make this directory accessible for users, they can edit the file and check it back in when finished.', +'settings_cmdTimeout' => 'Timeout for external commands', +'settings_cmdTimeout_desc' => 'This duration in seconds determines when an external command (e.g. for creating the full text index) will be terminatd.', 'settings_contentDir' => 'Content directory', 'settings_contentDir_desc' => 'Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)', 'settings_contentOffsetDir' => 'Content Offset Directory', @@ -973,10 +984,12 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Show selector for user interface language after being logged in.', 'settings_enableLargeFileUpload' => 'Enable large file upload', 'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step. Turning this on will turn off http only cookies.', +'settings_enableMenuTasks' => 'Enable task list in menu', +'settings_enableMenuTasks_desc' => 'Enable/Disable the menu item which contains all tasks for the user. This contains documents, that need to be reviewed, approved, etc.', 'settings_enableNotificationAppRev' => 'Enable reviewer/approver notification', 'settings_enableNotificationAppRev_desc' => 'Check to send a notification to the reviewer/approver when a new document version is added', 'settings_enableNotificationWorkflow' => 'Send notification to users in next workflow transition', -'settings_enableNotificationWorkflow_desc' => 'If this option is enabled, the users and groups which need to take action in the next workflow transiton will be notified. Even if they have not added a notification for the document.', +'settings_enableNotificationWorkflow_desc' => 'If this option is enabled, the users and groups which need to take action in the next workflow transition will be notified. Even if they have not added a notification for the document.', 'settings_enableOwnerNotification' => 'Enable owner notification by default', 'settings_enableOwnerNotification_desc' => 'Check for adding a notification for the owner if a document when it is added.', 'settings_enableOwnerRevApp' => 'Allow review/approval for owner', @@ -1014,6 +1027,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'First day of the week', 'settings_footNote' => 'Foot Note', 'settings_footNote_desc' => 'Message to display at the bottom of every page', +'settings_fullSearchEngine' => 'Fulltext engine', +'settings_fullSearchEngine_desc' => 'Set the method used for the fulltext search.', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Guest ID', 'settings_guestID_desc' => 'ID of guest-user used when logged in as guest (mostly no need to change)', 'settings_httpRoot' => 'Http Root', @@ -1230,6 +1247,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Take over group of reviewers from last version.', 'takeOverIndApprover' => 'Take over individual approver from last version.', 'takeOverIndReviewer' => 'Take over individual reviewer from last version.', +'tasks' => 'Tasks', 'testmail_body' => 'This mail is just for testing the mail configuration of SeedDMS', 'testmail_subject' => 'Test mail', 'theme' => 'Theme', @@ -1252,7 +1270,7 @@ URL: [url]', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow transition triggered', 'transmittal' => 'Transmittal', 'transmittalitem_removed' => 'Transmittal item removed', -'transmittalitem_updated' => 'Dokument updated to latest version', +'transmittalitem_updated' => 'Document updated to latest version', 'transmittal_comment' => 'Comment', 'transmittal_name' => 'Name', 'transmittal_size' => 'Size', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 6bbd7aa4e..45e80b975 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (946), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (952), angel (123), francisco (2), jaimem (14) $text = array( 'accept' => 'Aceptar', @@ -276,6 +276,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Documentos en espera de revisión de usuarios', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documentos de su propiedad que requieren atención', 'document_already_checkedout' => '', 'document_already_locked' => 'Este documento ya está bloqueado', @@ -355,7 +356,7 @@ URL: [url]', 'dump_creation_warning' => 'Con esta operación se creará un volcado a fichero del contenido de la base de datos. Después de la creación del volcado el fichero se guardará en la carpeta de datos de su servidor.', 'dump_list' => 'Ficheros de volcado existentes', 'dump_remove' => 'Eliminar fichero de volcado', -'duplicate_content' => '', +'duplicate_content' => 'Contenido duplicado', 'edit' => 'editar', 'edit_attributes' => 'Editar atributos', 'edit_comment' => 'Editar comentario', @@ -472,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Horaria', 'hours' => 'horas', +'hr_HR' => 'Croata', 'human_readable' => 'Archivo legible por humanos', 'hu_HU' => 'Hungaro', 'id' => 'ID', @@ -534,6 +536,7 @@ URL: [url]', 'keep_doc_status' => 'Mantener estado del documento', 'keywords' => 'Palabras clave', 'keyword_exists' => 'La palabra clave ya existe', +'ko_KR' => 'Coreano', 'language' => 'Idioma', 'lastaccess' => 'Último acceso', 'last_update' => 'Última modificación', @@ -659,7 +662,9 @@ URL: [url]', 'no_group_members' => 'Este grupo no tiene miembros', 'no_linked_files' => 'No hay ficheros vinculados', 'no_previous_versions' => 'No se han encontrado otras versiones', +'no_receipt_needed' => '', 'no_review_needed' => 'No hay revisiones pendientes.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'No puede actualizar este documento. Contacte con el usuario que lo bloqueó.', 'no_user_image' => 'No se encontró imagen', @@ -885,6 +890,10 @@ URL: [url]', 'settings_Advanced' => 'Avanzado', 'settings_apache_mod_rewrite' => 'Apache - Módulo Reescritura', 'settings_Authentication' => 'Configuración de autenticación', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Carpeta caché', 'settings_cacheDir_desc' => 'Donde están archivadas las imágenes anteriores (mejor elegir una carpeta que no sea accesible a través de su servidor web)', 'settings_Calendar' => 'Configuración de calendario', @@ -893,6 +902,8 @@ URL: [url]', 'settings_cannot_disable' => 'No es posible eliminar el archivo ENABLE_INSTALL_TOOL', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Carpeta de contenidos', 'settings_contentDir_desc' => 'Donde se almacenan los archivos subidos (es preferible seleccionar una carpeta que no sea accesible a través del servidor web)', 'settings_contentOffsetDir' => 'Carpeta de contenidos de desplazamiento', @@ -952,6 +963,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Mostrar selector de lenguaje para usuario despues de identificarse.', 'settings_enableLargeFileUpload' => 'Habilitar la carga de ficheros grandes', 'settings_enableLargeFileUpload_desc' => 'Si se habilita, la carga de ficheros también estará disponible a través de un applet java llamado jumploader, sin límite de tamaño de fichero fijado por el navegador. También permite la carga de múltiples ficheros de una sola vez.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Habilitar notificación a revisor/aprobador', 'settings_enableNotificationAppRev_desc' => 'Habilitar para enviar notificación a revisor/aprobador cuando se añade una nueva versión de documento', 'settings_enableNotificationWorkflow' => 'Enviar notificación a los usuarios en la siguiente transacción del flujo.', @@ -993,6 +1006,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primer día de la semana', 'settings_footNote' => 'Nota del pie', 'settings_footNote_desc' => 'Mensaje para mostrar en la parte inferior de cada página', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID de invitado', 'settings_guestID_desc' => 'ID del usuario invitado cuando se conecta como invitado (mayormente no necesita cambiarlo)', 'settings_httpRoot' => 'Raíz Http', @@ -1209,6 +1226,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'El propósito de este e-mail es probar la configuración del DMS', 'testmail_subject' => 'E-mail de prueba', 'theme' => 'Tema gráfico', @@ -1240,7 +1258,7 @@ URL: [url]', 'tuesday' => 'Martes', 'tuesday_abbr' => 'M', 'type_to_search' => 'Tipo de búsqueda', -'uk_UA' => '', +'uk_UA' => 'Ucraniano', 'under_folder' => 'En carpeta', 'unknown_attrdef' => 'Definición de atributo desconocida', 'unknown_command' => 'Orden no reconocida.', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 6ea39d5a7..a1f9b2309 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (968), jeromerobert (50), lonnnew (9) +// Translators: Admin (975), jeromerobert (50), lonnnew (9) $text = array( 'accept' => 'Accepter', @@ -166,7 +166,7 @@ URL: [url]', 'backup_remove' => 'Supprimer le fichier de sauvegarde', 'backup_tools' => 'Outils de sauvegarde', 'between' => 'entre', -'bg_BG' => '', +'bg_BG' => 'Bulgare', 'browse' => 'Parcourir', 'calendar' => 'Agenda', 'calendar_week' => 'Semaine', @@ -276,6 +276,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Documents en attente de correction', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documents à surveiller', 'document_already_checkedout' => '', 'document_already_locked' => 'Ce document est déjà verrouillé', @@ -472,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Une fois par heure', 'hours' => 'heures', +'hr_HR' => 'Croate', 'human_readable' => 'Archive au format lisible', 'hu_HU' => 'Hongrois', 'id' => 'ID', @@ -534,6 +536,7 @@ URL: [url]', 'keep_doc_status' => 'Garder le statut du document', 'keywords' => 'Mots-clés', 'keyword_exists' => 'Mot-clé déjà existant', +'ko_KR' => 'Korean', 'language' => 'Langue', 'lastaccess' => 'Dernière connexion', 'last_update' => 'Dernière modification', @@ -658,7 +661,9 @@ URL: [url]', 'no_group_members' => 'Ce groupe ne contient aucun membre', 'no_linked_files' => 'Aucun fichier lié', 'no_previous_versions' => 'Aucune autre version trouvée', +'no_receipt_needed' => '', 'no_review_needed' => 'Aucune correction en attente', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Vous ne pouvez actuellement pas mettre à jour ce document. Contactez l\'utilisateur qui l\'a verrouillé.', 'no_user_image' => 'Aucune image trouvée', @@ -861,6 +866,10 @@ URL: [url]', 'settings_Advanced' => 'Avancé', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Paramètres d\'authentification', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Dossier Cache', 'settings_cacheDir_desc' => 'Lieu de stockage des images de prévisualisation (choisir de préférence un dossier non accessible à travers le web-server)', 'settings_Calendar' => 'Paramètres de l\'agenda', @@ -869,6 +878,8 @@ URL: [url]', 'settings_cannot_disable' => 'Le fichier ENABLE_INSTALL_TOOL ne peut pas être supprimé', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Contenu du répertoire', 'settings_contentDir_desc' => 'Endroit ou les fichiers téléchargés sont stockés (il est préférable de choisir un répertoire qui n\'est pas accessible par votre serveur web)', 'settings_contentOffsetDir' => 'Content Offset Directory', @@ -928,6 +939,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Montrer le sélecteur de langue d\'interface après connexion de l\'utilisateur.', 'settings_enableLargeFileUpload' => 'Activer téléchargement des gros fichiers', 'settings_enableLargeFileUpload_desc' => 'Si défini, le téléchargement de fichier est également disponible via un applet java appelé jumploader sans limite de taille définie par le navigateur. Il permet également de télécharger plusieurs fichiers en une seule fois.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Notification correcteur/approbateur', 'settings_enableNotificationAppRev_desc' => 'Cochez pour envoyer une notification au correcteur/approbateur quand une nouvelle version du document est ajoutée', 'settings_enableNotificationWorkflow' => '', @@ -969,6 +982,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Premier jour de la semaine', 'settings_footNote' => 'Note de bas de page', 'settings_footNote_desc' => 'Message à afficher au bas de chaque page', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID invité', 'settings_guestID_desc' => 'ID de l\'invité utilisé lorsque vous êtes connecté en tant qu\'invité (la plupart du temps pas besoin de changer)', 'settings_httpRoot' => 'Http Root', @@ -1185,6 +1202,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => 'Thème', @@ -1207,7 +1225,7 @@ URL: [url]', 'tuesday' => 'Mardi', 'tuesday_abbr' => 'Mar.', 'type_to_search' => 'Effectuer une recherche', -'uk_UA' => '', +'uk_UA' => 'Ukrénien', 'under_folder' => 'Dans le dossier', 'unknown_attrdef' => '', 'unknown_command' => 'Commande non reconnue.', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc new file mode 100644 index 000000000..35626c8e0 --- /dev/null +++ b/languages/hr_HR/lang.inc @@ -0,0 +1,1357 @@ + 'Prihvati', +'access_denied' => 'Odbijen pristup.', +'access_inheritance' => 'Nasljedivost razine pristupa', +'access_mode' => 'Način pristupa', +'access_mode_all' => 'Sve dozvole', +'access_mode_none' => 'Bez pristupa', +'access_mode_read' => 'Dozvola čitanja', +'access_mode_readwrite' => 'Dozvola čitaj-piši', +'access_permission_changed_email' => 'Dozvola je promijenjena', +'access_permission_changed_email_body' => 'Dozvola je promijenjena +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'access_permission_changed_email_subject' => '[sitename]: [name] - Dozvola je promijenjena', +'according_settings' => 'sukladno postavkama', +'action' => 'Postupak', +'actions' => 'Postupci', +'action_approve' => 'Odobri', +'action_complete' => 'Završi', +'action_is_complete' => 'Završeno', +'action_is_not_complete' => 'Nije završeno', +'action_reject' => 'Odbaci', +'action_review' => 'Pregledaj', +'action_revise' => 'Izmijeni', +'add' => 'Dodaj', +'add_approval' => '', +'add_document' => 'Dodaj dokument', +'add_document_link' => 'Dodaj poveznicu', +'add_document_notify' => '', +'add_doc_reviewer_approver_warning' => 'N.B. Dokumenti se automatski označavaju kao objavljeni ako nije dodijeljen recezent ili validator.', +'add_doc_workflow_warning' => 'N.B. Dokumenti se automatski označavaju kao objavljeni ako nije dodijeljen tok rada.', +'add_event' => 'Dodaj događaj', +'add_group' => 'Dodaj novu grupu', +'add_member' => 'Dodaj člana', +'add_multiple_documents' => 'Dodaj više dokumenata odjednom', +'add_multiple_files' => 'Dodaj više datoteka (koristit će naziv datoteke kao naziv dokumenta)', +'add_receipt' => '', +'add_review' => '', +'add_revision' => '', +'add_subfolder' => 'Dodaj podmapu', +'add_to_clipboard' => 'Dodaj u međuspremnik', +'add_to_transmittal' => '', +'add_transmittal' => '', +'add_user' => 'Dodaj novog korisnika', +'add_user_to_group' => 'Dodaj korisnika u grupu', +'add_workflow' => 'Dodaj novi tok rada', +'add_workflow_action' => 'Dodaj novu radnju toka rada', +'add_workflow_state' => 'Dodaj novi status toka rada', +'admin' => 'Administrator', +'admin_tools' => 'Administratorski alati', +'all' => 'Sve', +'all_categories' => 'Sve kategorije', +'all_documents' => 'Svi dokumenti', +'all_pages' => 'Sve', +'all_users' => 'Svi korisnici', +'already_subscribed' => 'Već prijavljeno', +'and' => 'i', +'apply' => 'Primjeni', +'approval_deletion_email' => 'Izbrisan zahtjev za odobrenje', +'approval_deletion_email_body' => '', +'approval_deletion_email_subject' => '', +'approval_file' => '', +'approval_group' => 'Grupa odobrenja', +'approval_log' => 'Popis odobrenja', +'approval_request_email' => 'Zahtjev za odobrenje', +'approval_request_email_body' => 'Zahtjev za odobrenje +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'approval_request_email_subject' => '[sitename]: [name] - Zahtjev za odobrenje', +'approval_status' => 'Status odobrenja', +'approval_submit_email' => '', +'approval_submit_email_body' => 'Odobrenje dokumenta +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Status: [status] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'approval_submit_email_subject' => 'Podnešeno odobrenje', +'approval_summary' => 'Pregled odobrenja', +'approval_update_failed' => 'Greška pri ažuriranju statusa odobrenja. Ažuriranje nije uspjelo.', +'approvers' => 'Validatori', +'approver_already_assigned' => '', +'approver_already_removed' => '', +'april' => 'Travanj', +'archive_creation' => 'Izrada arhive', +'archive_creation_warning' => 'Ovom radnjom možete izraditi arhivu koja sadrži datoteke cijele DMS mape. Nakon izrade arhiva će biti pohranjena u podatkovnu mapu vašer servera.
UPOZORENJE: arhiva izrađena na način da je čitljiva ljudima, bit će bezkorisna kao sigurnosna kopija servera.', +'ar_EG' => 'Arapski', +'assign_approvers' => 'Dodijeli validatore', +'assign_reviewers' => 'Dodijeli recezente', +'assign_user_property_to' => 'Dodijeli svojstva korisnika za', +'assumed_released' => 'Podrazumijevano obrađeno', +'attrdef_exists' => 'Definicija atributa već postoji', +'attrdef_in_use' => 'Definicija atributa se već koristi', +'attrdef_management' => 'Upravljanje definicijama atributa', +'attrdef_maxvalues' => 'Max. broj vrijednosti', +'attrdef_minvalues' => 'Min. broj vrijednosti', +'attrdef_min_greater_max' => 'Minimalni broj vrijednosti je veći od maksimalnog broja vrijednosti', +'attrdef_multiple' => 'Dozvoli više vrijednosti', +'attrdef_must_be_multiple' => 'Atribut mora imati više od jedne vrijednosti, ali nije postavljeno više vrijednosti', +'attrdef_name' => 'Naziv', +'attrdef_noname' => 'Nedostaje naziv za definiciju atributa', +'attrdef_objtype' => 'Vrsta objekta', +'attrdef_regex' => 'Pravilni izraz', +'attrdef_type' => 'Vrsta', +'attrdef_type_boolean' => '', +'attrdef_type_email' => '', +'attrdef_type_float' => '', +'attrdef_type_int' => '', +'attrdef_type_string' => '', +'attrdef_type_url' => '', +'attrdef_valueset' => 'Skup vrijednosti', +'attributes' => 'Atributi', +'attribute_changed_email_body' => 'Promijenjen atribut +Dokument: [name] +Verzija: [version] +Atribut: [attribute] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'attribute_changed_email_subject' => '[sitename]: [name] - Promijenjen atribut', +'attribute_count' => 'Broj uporaba', +'attribute_value' => 'Vrijednost atributa', +'attr_malformed_email' => '', +'attr_malformed_url' => '', +'attr_max_values' => 'Premašen je maksimalni broj zahtjevanih vrijednosti za atribute[attrname].', +'attr_min_values' => 'Minimalni broj zahtjevanih vrijednosti za atribute[attrname] nije dostignut.', +'attr_no_regex_match' => 'Vrijednost atributa ne odgovara pravilnom izrazu', +'at_least_n_users_of_group' => 'Najmanje [number_of_users] korisnika iz [group]', +'august' => 'Kolovoz', +'authentication' => 'Ovjera', +'author' => 'Autor', +'automatic_status_update' => 'Automatska promjena statusa', +'back' => 'Natrag', +'backup_list' => 'Popis postojećih sigurnosnih kopija', +'backup_log_management' => 'Sigurnosna kopija / Bilježenje', +'backup_remove' => 'Ukloni datoteku sigurnosne kopije', +'backup_tools' => 'Alat za sigurnosnu kopiju', +'between' => 'između', +'bg_BG' => 'Bugarski', +'browse' => 'Pretraži', +'calendar' => 'Kalendar', +'calendar_week' => 'kalendarski tjedan', +'cancel' => 'Odustani', +'cannot_assign_invalid_state' => 'Ne možete mijenjati zastarjeli ili odbijeni dokument', +'cannot_change_final_states' => 'Upozorenje: Ne možete mijenjati status odbijenog, isteklog ili dokumenta koji čeka na ovjeru ili odobrenje', +'cannot_delete_user' => 'Ne možete izbrisati korisnika', +'cannot_delete_yourself' => 'Ne možete izbrisati sebe', +'cannot_move_root' => 'Greška: Ne možete premještati root mapu.', +'cannot_retrieve_approval_snapshot' => 'Nije moguće dohvatiti snimku statusa odobrenja za ovu verziju dokumenta.', +'cannot_retrieve_review_snapshot' => 'Nije moguće dohvatiti snimku statusa pregleda za ovu verziju dokumenta.', +'cannot_rm_root' => 'Greška: Ne možete izbrisati root mapu.', +'categories' => 'Kategorije', +'category' => 'Kategorija', +'category_exists' => 'Kategorija već postoji.', +'category_filter' => 'Samo kategorije', +'category_in_use' => 'Ovu kategoriju trenutno koriste dokumenti.', +'category_noname' => 'Nije dan naziv kategoriji.', +'ca_ES' => 'Katalonski', +'change_assignments' => 'Promjena zadataka', +'change_password' => 'Promjeni lozinku', +'change_password_message' => 'Vaša lozinka je promijenjena.', +'change_recipients' => '', +'change_revisors' => '', +'change_status' => 'Promijeni status', +'charts' => 'Grafikoni', +'chart_docsaccumulated_title' => 'Broj dokumenata', +'chart_docspercategory_title' => 'Dokumenata po kategoriji', +'chart_docspermimetype_title' => 'Dokupenti po tipu', +'chart_docspermonth_title' => 'Novi dokumenti na mjesec', +'chart_docsperstatus_title' => 'Dokumenata po statusu', +'chart_docsperuser_title' => 'Dokumenata po korisniku', +'chart_selection' => 'Odaberi grafikon', +'chart_sizeperuser_title' => 'Prostor na disku po korisniku', +'checkedout_file_has_different_version' => '', +'checkedout_file_has_disappeared' => '', +'checkedout_file_is_unchanged' => '', +'checkin_document' => '', +'checkout_document' => '', +'checkout_is_disabled' => '', +'choose_attrdef' => 'Molim odaberite definiciju atributa', +'choose_category' => 'Molim odaberite', +'choose_group' => 'Odaberite grupu', +'choose_target_category' => 'Odaberite kategoriju', +'choose_target_document' => 'Odaberite dokument', +'choose_target_file' => 'Odaberite datoteku', +'choose_target_folder' => 'Odaberite mapu', +'choose_user' => 'Odaberite korisnika', +'choose_workflow' => 'Odaberite tok rada', +'choose_workflow_action' => 'Odaberite radnju toka rada', +'choose_workflow_state' => 'Odaberite status toka rada', +'clear_clipboard' => 'Očistite međuspremnik', +'clipboard' => 'Međuspremnik', +'close' => 'Zatvori', +'comment' => 'Komentar', +'comment_changed_email' => '', +'comment_for_current_version' => 'Verzija komentara', +'confirm_create_fulltext_index' => 'Da, želim ponovo indeksirati cijeli tekst!', +'confirm_pwd' => 'Potvrdi lozinku', +'confirm_rm_backup' => 'Da li zaista želite ukloniti datoteku "[arkname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_document' => 'Da li zaista želite ukloniti dokument \'[documentname]\'?
Oprez: ova radnja nije povratna.', +'confirm_rm_dump' => 'Da li zaista želite ukloniti datoteku "[dumpname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_event' => 'Da li zaista želite ukloniti događaj "[name]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_file' => 'Da li zaista želite ukloniti datoteku "[name]" dokumenta "[documentname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_folder' => 'Da li zaista želite ukloniti mapu \'[foldername]\' i njezin sadržaj?
Oprez: ova radnja nije povratna.', +'confirm_rm_folder_files' => 'Da li zaista želite ukloniti sve datoteke u mapi "[foldername]" i sve podmape?
Oprez: ova radnja nije povratna.', +'confirm_rm_group' => 'Da li zaista želite ukloniti grupu "[groupname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_log' => 'Da li zaista želite ukloniti log datoteku "[logname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_transmittalitem' => '', +'confirm_rm_user' => 'Da li zaista želite ukloniti korisnika "[username]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_version' => 'Da li zaista želite ukloniti verziju [version] dokumenta "[documentname]"?
Oprez: ova radnja nije povratna.', +'confirm_update_transmittalitem' => '', +'content' => 'Sadržaj', +'continue' => 'Nastavi', +'converter_new_cmd' => '', +'converter_new_mimetype' => '', +'copied_to_checkout_as' => '', +'create_fulltext_index' => 'Indeksiraj cijeli tekst', +'create_fulltext_index_warning' => 'Želite ponovo indeksirati cijeli tekst. To može duže potrajati i smanjiti sveukupne performanse sustava. Ako zaista želite ponovno indeksirati, molimo potvrdite vašu radnju.', +'creation_date' => 'Izrađeno', +'cs_CZ' => 'Češki', +'current_password' => 'Trenutna lozinka', +'current_quota' => 'Postavljena je kvota sadašnjeg sustava [quota].', +'current_state' => 'Trenutni status', +'current_version' => 'Trenutna verzija', +'daily' => 'Dnevno', +'databasesearch' => 'Pretraživanje baze podataka', +'date' => 'Datum', +'days' => 'dani', +'december' => 'Prosinac', +'default_access' => 'Zadani način pristupa', +'default_keywords' => 'Dostupne ključne riječi', +'definitions' => 'Definicije', +'delete' => 'Izbriši', +'details' => 'Detalji', +'details_version' => 'Detalji za verziju: [version]', +'de_DE' => 'Njemački', +'disclaimer' => 'Ovo je klasificirano područje. Pristup je omogućen samo ovlaštenim osobama. Sa svakim kršenjem bit će postupano sukladno nacionalnim i međunarodnim zakonima.', +'discspace' => 'Prostor na disku', +'document' => 'Dokument', +'documents' => 'Dokumenti', +'documents_checked_out_by_you' => '', +'documents_in_process' => 'Dokumenti u postupku', +'documents_locked_by_you' => 'Dokumenti koje ste vi zaključali', +'documents_only' => 'Samo dokumenti', +'documents_to_approve' => 'Dokumenti koji čekaju vaše odobrenje', +'documents_to_receipt' => '', +'documents_to_review' => 'Dokumenti koji čekaju vaš pregled', +'documents_to_revise' => '', +'documents_user_rejected' => '', +'documents_user_requiring_attention' => 'Dokumenti u vašem vlasništvu koji zahtjevaju pažnju', +'document_already_checkedout' => '', +'document_already_locked' => 'Ovaj dokument je već zaključan', +'document_comment_changed_email' => 'Promijenjen komentar', +'document_comment_changed_email_body' => 'Promijenjen komentar +Dokument: [name] +Stari komentar: [old_comment] +Komentar: [new_comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', +'document_deleted' => 'Izbrisan dokument', +'document_deleted_email' => 'Izbrisan dokument', +'document_deleted_email_body' => 'Izbrisan dokument +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username]', +'document_deleted_email_subject' => '[sitename]: [name] - Izbrisan dokument', +'document_duplicate_name' => 'Duplicate document name', +'document_has_no_workflow' => 'Dokument nema tok rada', +'document_infos' => 'Informacije o dokumentu', +'document_is_checked_out' => '', +'document_is_not_locked' => 'Ovaj dokument nije zaključan', +'document_link_by' => 'Povezao', +'document_link_public' => 'Javno', +'document_moved_email' => 'Premješten dokument', +'document_moved_email_body' => 'Premješten dokument +Dokument: [name] +Prijašnja mapa: [old_folder_path] +Nova mapa: [new_folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_moved_email_subject' => '[sitename]: [name] - Premješten dokument', +'document_not_checkedout' => '', +'document_renamed_email' => 'Preimenovan dokument', +'document_renamed_email_body' => 'Promjenjen naziv dokumenta +Dokument: [name] +Glavna mapa: [folder_path] +Prijašnji naziv: [old_name] +Korisnik: [username] +Internet poveznica: [url]', +'document_renamed_email_subject' => '[sitename]: [name] - Preimenovan dokument', +'document_status_changed_email' => 'Promijenjen status dokumenta', +'document_status_changed_email_body' => 'Promijenjen status dokumenta +Dokument: [name] +Status: [status] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_status_changed_email_subject' => '[sitename]: [name] - Promijenjen status dokumenta', +'document_title' => 'Dokument \'[documentname]\'', +'document_updated_email' => 'Ažuriran dokument', +'document_updated_email_body' => 'Ažuriran dokument +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Komentar: [comment] +Komentar verzije: [version_comment] +Internet poveznica: [url]', +'document_updated_email_subject' => '[sitename]: [name] - Ažuriran dokument', +'does_not_expire' => 'Ne istječe', +'does_not_inherit_access_msg' => 'Naslijedi nivo pristupa', +'download' => 'Preuzimanje', +'do_object_repair' => 'Popravi sve mape i dokumente.', +'do_object_setchecksum' => 'Postavi kontrolnu sumu', +'do_object_setfilesize' => 'Postavi veličinu datoteke', +'do_object_unlink' => 'Izbriši verziju dokumenta', +'draft' => '', +'draft_pending_approval' => 'Skica - čeka odobrenje', +'draft_pending_review' => 'Skica - čeka pregled', +'drag_icon_here' => 'Ovdje povuci ikonu mape ili dokumenta!', +'dropfolder_file' => 'Datoteka iz padajuće mape', +'dropupload' => 'Zona za brzo učitavanje', +'drop_files_here' => 'Ovdje ispusti datoteku!', +'dump_creation' => 'Izrada odlagališta baze podataka', +'dump_creation_warning' => 'Ovom radnjom možete stvoriti datoteku za odlaganje sadržaja vaše baze podataka. Nakon izrade datoteka za odlaganje će biti pohranjena u podatkovnoj mapi na vašem serveru.', +'dump_list' => 'Postojeće datoteke za odlaganje', +'dump_remove' => 'Ukloni datoteku za odlaganje', +'duplicate_content' => '', +'edit' => 'Uredi', +'edit_attributes' => 'Uredi atribute', +'edit_comment' => 'Uredi komentar', +'edit_default_keywords' => 'Uredi ključne riječi', +'edit_document_access' => 'Uredi pristup', +'edit_document_notify' => 'Popis za obavijesti o dokumentu', +'edit_document_props' => 'Uredi dokument', +'edit_event' => 'Uredi događaj', +'edit_existing_access' => 'Uredi popis pristupa', +'edit_existing_notify' => 'Uredi popis za primanje obavijesti', +'edit_folder_access' => 'Uredi pristup', +'edit_folder_notify' => 'Popis za obavijesti o mapi', +'edit_folder_props' => 'Uredi mapu', +'edit_group' => 'Uredi mapu', +'edit_transmittal_props' => '', +'edit_user' => 'Uredi korisnika', +'edit_user_details' => 'Uredi detalje korisnika', +'email' => 'Email', +'email_error_title' => 'Nema ulaznog emaila', +'email_footer' => 'Koristeći funckcije \'Moj račun\' možete promijeniti postavke email obavještavanja.', +'email_header' => 'Ovo je automatski generirana poruka iz DMS sustava', +'email_not_given' => 'Molimo unesite valjanu email adresu.', +'empty_folder_list' => 'Nema dokumenata ili mapa', +'empty_notify_list' => 'Nema zapisa', +'en_GB' => 'Engleski (GB)', +'equal_transition_states' => 'Početni i završni status su jednaki', +'error' => 'Greška', +'error_no_document_selected' => 'Nije odabran dokument', +'error_no_folder_selected' => 'Nije odabrana mapa', +'error_occured' => 'Dogodila se greška', +'es_ES' => 'Španjolski', +'event_details' => 'Detalji događaja', +'expired' => 'Isteklo', +'expires' => 'Datum isteka', +'expiry_changed_email' => 'Promijenjen datum isteka', +'expiry_changed_email_body' => 'Promijenjen datum isteka +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'expiry_changed_email_subject' => '[sitename]: [name] - Promijenjen datum isteka', +'export' => '', +'extension_manager' => 'Upravljanje ekstenzijama', +'february' => 'Veljača', +'file' => 'Datoteka', +'files' => 'Datoteke', +'files_deletion' => 'Brisanje datoteke', +'files_deletion_warning' => 'Ovom opcijom možete izbrisati sve datoteke ili cjelokupne DMS mape. Informacije o verzijama će ostati vidljive.', +'file_size' => 'Veličina datoteke', +'filter_for_documents' => 'Dodatni filter za dokumente', +'filter_for_folders' => 'Dodatni filter za dokumente', +'folder' => 'Mapa', +'folders' => 'Mape', +'folders_and_documents_statistic' => 'Pregled sadržaja', +'folder_comment_changed_email' => 'Promijenjen komentar', +'folder_comment_changed_email_body' => 'Promijenjen komentar +Mapa: [name] +Stari komentar: [old_comment] +Komentar: [new_comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', +'folder_contents' => 'Sadržaj mape', +'folder_deleted_email' => 'Izbrisana mapa', +'folder_deleted_email_body' => 'Izbrisana mapa +Mapa: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_deleted_email_subject' => '[sitename]: [name] - Izbrisana mapa', +'folder_infos' => 'Informacije o mapi', +'folder_moved_email' => 'Premještena mapa', +'folder_moved_email_body' => 'Premještaj mape +Mapa: [name] +Prijašnja mapa: [old_folder_path] +Nova mapa: [new_folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_moved_email_subject' => '[sitename]: [name] - Premještena mapa', +'folder_renamed_email' => 'Preimenovana mapa', +'folder_renamed_email_body' => 'Preimenovana mapa +Mapa: [name] +Glavna mapa: [folder_path] +Old name: [old_name] +Korisnik: [username] +Internet poveznica: [url]', +'folder_renamed_email_subject' => '[sitename]: [name] - Preimenovana mapa', +'folder_title' => 'Mapa \'[foldername]\'', +'friday' => 'Petak', +'friday_abbr' => 'Pe', +'from' => 'Od', +'fr_FR' => 'Francuski', +'fullsearch' => 'Pretraživanje cijelog teksta', +'fullsearch_hint' => 'Koristi indeks cijelog teksta', +'fulltext_info' => 'Informacije cijelog teksta', +'global_attributedefinitions' => 'Atributi', +'global_default_keywords' => 'Globalne ključne riječi', +'global_document_categories' => 'Kategorije', +'global_workflows' => 'Tokovi rada', +'global_workflow_actions' => 'Radnje toka rada', +'global_workflow_states' => 'Statusi toka rada', +'group' => 'Grupa', +'groups' => 'Grupe', +'group_approval_summary' => 'Pregled odobrenja grupe', +'group_exists' => 'Grupa već postoji.', +'group_management' => 'Upravljanje grupama', +'group_members' => 'Članovi grupe', +'group_receipt_summary' => '', +'group_review_summary' => 'Sažetak pregleda grupe', +'guest_login' => 'Prijavite se kao gost', +'guest_login_disabled' => 'Prijava "kao gost" je onemogućena.', +'help' => 'Pomoć', +'home_folder' => 'Početna mapa', +'hourly' => 'Po satima', +'hours' => 'sati', +'hr_HR' => 'Hrvatski', +'human_readable' => 'Arhiva čitljiva ljudima', +'hu_HU' => 'Mađarski', +'id' => 'ID', +'identical_version' => 'Nova verzija je identična trenutnoj verziji.', +'include_content' => '', +'include_documents' => 'Sadrži dokumente', +'include_subdirectories' => 'Sadrži podmape', +'index_converters' => 'Pretvorba indeksa dokumenta', +'index_folder' => 'Mapa indeksa', +'individuals' => 'Pojedinci', +'inherited' => 'naslijeđeno', +'inherits_access_copy_msg' => 'Kopiraj listu naslijeđenih prava pristupa', +'inherits_access_empty_msg' => 'Započnite s praznim popisom pristupa', +'inherits_access_msg' => 'Prava pristupa se naslijeđuju.', +'internal_error' => 'Interna greška', +'internal_error_exit' => 'Interna greška. Ne mogu završiti zahtjev. Izlaz.', +'invalid_access_mode' => 'Pogrešan način pristupa', +'invalid_action' => 'Pogrešna radnja', +'invalid_approval_status' => 'Pogrešan status odobrenja', +'invalid_create_date_end' => 'Pogrešan krajnji datum za izradu vremenskog raspona.', +'invalid_create_date_start' => 'Pogrešan početni datum za izradu vremenskog raspona.', +'invalid_doc_id' => 'Pogrešan ID dokumenta', +'invalid_file_id' => 'Pogrešan ID datoteke', +'invalid_folder_id' => 'Pogrešan ID mape', +'invalid_group_id' => 'Pogrešan ID grupe', +'invalid_link_id' => 'Pogrešan identifikator poveznice', +'invalid_request_token' => 'Pogrešan zahtjev za token', +'invalid_review_status' => 'Pogrešan status pregleda', +'invalid_sequence' => 'Pogrešna vrijednost sekvence', +'invalid_status' => 'Pogrešan status dokumenta', +'invalid_target_doc_id' => 'Pogrešan ID ciljanog dokumenta', +'invalid_target_folder' => 'Pogrešan ID ciljane mape', +'invalid_user_id' => 'Pogrešan ID korisnika', +'invalid_version' => 'Pogrešna verzija dokumenta', +'in_revision' => '', +'in_workflow' => 'U toku rada', +'is_disabled' => 'Onemogući klijenta', +'is_hidden' => 'Sakrij iz popisa korisnika', +'it_IT' => 'Talijanski', +'january' => 'Siječanj', +'js_no_approval_group' => 'Molim odaberite grupu odobrenja', +'js_no_approval_status' => 'Molim odaberite status odobrenja', +'js_no_comment' => 'Nema komentara', +'js_no_email' => 'Upišite vašu e-mail adresu', +'js_no_file' => 'Molim odaberite datoteku', +'js_no_keywords' => 'Odredite neke ključne riječi', +'js_no_login' => 'Molim upišite korisničko ime', +'js_no_name' => 'MOlim upišite naziv', +'js_no_override_status' => 'Molim odaberite novi status', +'js_no_pwd' => 'Morate unijeti vašu lozinku', +'js_no_query' => 'Unesite upit', +'js_no_review_group' => 'Molim odaberite grupu pregleda', +'js_no_review_status' => 'Molim odaberite status pregleda', +'js_pwd_not_conf' => 'Lozinka i potvrda lozinke nisu jednake', +'js_select_user' => 'Molim odaberite korisnika', +'js_select_user_or_group' => 'Odaberite barem korisnika ili grupu', +'july' => 'Srpanj', +'june' => 'Lipanj', +'keep' => 'Ne mijenjaj', +'keep_doc_status' => 'Zadrži status dokumenta', +'keywords' => 'Ključne riječi', +'keyword_exists' => 'Ključna riječ već postoji', +'ko_KR' => '', +'language' => 'Jezik', +'lastaccess' => 'Zadnji pristup', +'last_update' => 'Zadnje ažuriranje', +'legend' => 'Kazalo', +'librarydoc' => '', +'linked_documents' => 'Vezani dokumenti', +'linked_files' => 'Prilozi', +'link_alt_updatedocument' => 'Ako želite prenijeti datoteke veće od trenutne maksimalne veličine prijenosa, molimo koristite alternativu upload page.', +'local_file' => 'Lokalna datoteka', +'locked_by' => 'Zaključao', +'lock_document' => 'Zaključaj', +'lock_message' => 'Ovaj dokument je zaključao [username]. Samo ovlašteni korisnici mogu otključati ovaj dokument.', +'lock_status' => 'Status', +'login' => 'Prijava', +'login_disabled_text' => 'Vaš korisnički račun je onemogućen, vjerojatno zbog previše neispravnih prijava.', +'login_disabled_title' => 'Korisnički račun je onemogućen', +'login_error_text' => 'Greška kod prijave. Neispravni ID korisnika ili lozinka.', +'login_error_title' => 'Greška kod prijave', +'login_not_given' => 'Nije isporučeno korisničko ime', +'login_ok' => 'Uspješna prijava', +'logout' => 'Odjava', +'log_management' => 'Upravljanje datotekama zapisa', +'manager' => 'Upravitelj', +'manager_of_group' => 'Vi ste upravitelj ove grupe', +'mandatory_approvergroups' => 'Obavezne grupe validatora', +'mandatory_approvergroup_no_access' => 'Obavezna grupa validatora \'[group]\' nema dovoljno prava pristupa.', +'mandatory_approvers' => 'Obavezni validatori', +'mandatory_approver_no_access' => 'Obavezni validator \'[user]\' nema dovoljno prava pristupa.', +'mandatory_reviewergroups' => 'Obavezna grupa recezenata', +'mandatory_reviewergroup_no_access' => 'Obavezna grupa recezenata \'[group]\' nema dovoljno prava pristupa.', +'mandatory_reviewers' => 'Obavezni recezenti', +'mandatory_reviewer_no_access' => 'Recezenti \'[user]\' nemaju dovoljno prava pristupa.', +'march' => 'Ožujak', +'max_upload_size' => 'Max. veličina za prijenos', +'may' => 'Svibanj', +'mimetype' => 'Mime type', +'minutes' => 'minute', +'misc' => 'Razno', +'missing_checksum' => 'Nedostaje kontrolna suma', +'missing_filesize' => 'Nedostaje veličina datoteke', +'missing_transition_user_group' => 'Nedostaje korisnik/grupa za promjenu', +'monday' => 'Ponedjeljak', +'monday_abbr' => 'Po', +'monthly' => 'Mjesečno', +'month_view' => 'Pregled po mjesecu', +'move' => 'Premjesti', +'move_clipboard' => 'Premjesti međuspremnik', +'move_document' => 'Premjesti dokument', +'move_folder' => 'Premjesti mapu', +'my_account' => 'Moj korisnički račun', +'my_documents' => 'Moji dokumenti', +'my_transmittals' => '', +'name' => 'Naziv', +'needs_workflow_action' => 'Ovaj dokument zahtjeva vašu pažnju. Molimo provjerite karticu toka rada.', +'never' => 'nikada', +'new' => 'Novo', +'new_attrdef' => 'Dodaj definiciju atributa', +'new_default_keywords' => 'Dodaj ključne riječi', +'new_default_keyword_category' => 'Dodaj kategoriju', +'new_document_category' => 'Dodaj kategoriju', +'new_document_email' => 'Novi dokument', +'new_document_email_body' => 'Novi dokument +Naziv: [name] +Glavna mapa: [folder_path] +Komentar: [comment] +Version comment: [version_comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_document_email_subject' => '[sitename]: [folder_name] - Novi dokument', +'new_file_email' => 'Novi privitak', +'new_file_email_body' => 'Novi privitak dokumenta: [name] +Dokument: [document] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_file_email_subject' => '[sitename]: [document] - Novi privitak', +'new_folder' => 'Nova mapa', +'new_password' => 'Nova lozinka', +'new_subfolder_email' => 'Nova mapa', +'new_subfolder_email_body' => 'Nova mapa +Naziv: [name] +Glavna mapa: [folder_path] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_subfolder_email_subject' => '[sitename]: [name] - Nova mapa', +'new_user_image' => 'Nova slika', +'next_state' => 'Slijedeći status', +'nl_NL' => 'Nizozemski', +'no' => 'Ne', +'notify_added_email' => 'Dodani ste na popis obavijesti', +'notify_added_email_body' => 'Dodano na popis obavijesti +Naziv: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'notify_added_email_subject' => '[sitename]: [name] - Dodano na popis obavijesti', +'notify_deleted_email' => 'Uklonjeni ste iz popisa obavijesti', +'notify_deleted_email_body' => 'Ukonjeno iz popisa obavijesti +Naziv: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'notify_deleted_email_subject' => '[sitename]: [name] - Ukonjeno iz popisa obavijesti', +'november' => 'Studeni', +'now' => 'sada', +'no_action' => 'Nema zahtjevane radnje', +'no_approval_needed' => 'Nema odobrenja na čekanju.', +'no_attached_files' => 'Nema priloženih datoteka', +'no_current_version' => 'Koristite na staru verziju ProsperaDMS-a. Najnovija dostupna verzija je[latestversion].', +'no_default_keywords' => 'Nema dostupnih ključnih riječi', +'no_docs_checked_out' => '', +'no_docs_locked' => 'Nema zaključanih dokumenata.', +'no_docs_to_approve' => 'Trenutno nema dokumenata koji zahtjevaju odobrenje.', +'no_docs_to_look_at' => 'Nema dokumenata na koje treba obratiti pozornost.', +'no_docs_to_receipt' => '', +'no_docs_to_review' => 'Trenutno nema dokumenata koji zahtjevaju pregled.', +'no_docs_to_revise' => '', +'no_email_or_login' => 'Moraju biti unešeni korisničko ime i e-mail', +'no_fulltextindex' => 'Nema dostupnog indeksa punog teksta', +'no_groups' => 'Nema grupa', +'no_group_members' => 'Ova grupa nema članova', +'no_linked_files' => 'Nema povezanih datoteka', +'no_previous_versions' => 'Nema pronađenih drugih verzija', +'no_receipt_needed' => '', +'no_review_needed' => 'Nema pregleda na čekanju.', +'no_revision_needed' => '', +'no_revision_planed' => '', +'no_update_cause_locked' => 'Dakle, ne možete ažurirati ovaj dokument. Molim kontaktirajte korisnika koji zaključava.', +'no_user_image' => 'Nema pronađene slike', +'no_version_check' => 'Neuspješna provjera nove verzije ProsperaDMS-a! Uzrok može biti ako je parametar allow_url_fopen u vašoj php konfiguraciji postavljen na 0.', +'no_workflow_available' => '', +'objectcheck' => 'Provjera mapa / dokumenata', +'obsolete' => 'Zastarjelo', +'october' => 'Listopad', +'old' => 'Staro', +'only_jpg_user_images' => 'Kao korisničke slike mogu se koristiti samo .jpg slike', +'order_by_sequence_off' => '', +'original_filename' => 'Izvorni naziv datoteke', +'owner' => 'Vlasnik', +'ownership_changed_email' => 'Promijenjen vlasnik', +'ownership_changed_email_body' => 'Promijenjen vlasnik +Dokument: [name] +Glavna mapa: [folder_path] +Old owner: [old_owner] +New owner: [new_owner] +Korisnik: [username] +Internet poveznica: [url]', +'ownership_changed_email_subject' => '[sitename]: [name] - Promijenjen vlasnik', +'password' => 'Lozinka', +'password_already_used' => 'Lozinka se već koristi', +'password_expiration' => 'Istek lozinke', +'password_expiration_text' => 'Vaša lozinka je istekla. Molimo odaberite novu prije nastavka korištenja ProsperaDMS-a.', +'password_expired' => 'Istekla lozinka', +'password_expires_in_days' => 'Lozinka isteće za %s dana.', +'password_forgotten' => 'Zaboravljena lozinka', +'password_forgotten_email_body' => 'Poštovani korisniče ProsperaDMS-a, + +zaprimili smo zahtjev za promjenu vaše lozinke. + +To se može izvršiti klikom na sljedeću poveznicu: + +###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH### + +Ako i dalje imate problema s prijavom, molimo kontaktirajte Vašeg administratora.', +'password_forgotten_email_subject' => 'Zaboravljena lozinka', +'password_forgotten_send_hash' => 'Upute kako postupiti su poslane na e-mail adresu korisnika', +'password_forgotten_text' => 'Ispunite donji obrazac i slijedite upute iz e-maila koji će vam biti poslan.', +'password_forgotten_title' => 'Lozinka je poslana', +'password_repeat' => 'Ponovi lozinku', +'password_send' => 'Pošalji lozinku', +'password_send_text' => 'Vaša nova lozinka je poslana na navedenu e-mail adresu, ako login i e-mail odgovaraju postojećem korisniku. Ako ne primite e-mail u narednim minutama, tada provjerite da su login i e-mail ispravni te ponovite postupak.', +'password_strength' => 'Jačina lozinke', +'password_strength_insuffient' => 'Nedovoljna jačina lozinke', +'password_wrong' => 'Pogrešna lozinka', +'personal_default_keywords' => 'Osobni popis ključnih riječi', +'pl_PL' => 'Poljski', +'possible_substitutes' => '', +'preview_converters' => '', +'previous_state' => 'Prethodni status', +'previous_versions' => 'Prethodne verzije', +'pt_BR' => 'Portugalski (BR)', +'quota' => 'Kvota', +'quota_exceeded' => 'Vaša kvota na disku je premašena za [bytes].', +'quota_is_disabled' => 'Podrška kvoti je trenutno onemogućena u postavkama. Postavka korisničke kvote neće imati utjecaja dok se ponovno ne omogući.', +'quota_warning' => 'Vaš maksimalni prostor na disku je premašen za [bytes]. Molimo uklonite dokumente ili prethodne verzije.', +'receipt_log' => '', +'receipt_summary' => '', +'recipients' => '', +'refresh' => 'Osvježi', +'rejected' => 'Odbijeno', +'released' => 'Obrađeno', +'removed_approver' => 'je uklonjen iz popisa validatora.', +'removed_file_email' => 'Uklonjeni privitak', +'removed_file_email_body' => 'Uklonjeni privitak +Dokument: [document] +Korisnik: [username] +Internet poveznica: [url]', +'removed_file_email_subject' => '[sitename]: [document] - Uklonjeni privitak', +'removed_recipient' => '', +'removed_reviewer' => 'je uklonjen iz popisa recezenata.', +'removed_revispr' => '', +'removed_workflow_email_body' => 'Uklonjeni tok rada iz ove verzije dokumenta +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta', +'remove_marked_files' => 'Ukloni označene datoteke', +'repaired' => 'popravljeno', +'repairing_objects' => 'Popravljanje dokumenata ili mapa.', +'request_workflow_action_email_body' => 'Poslovni tok je došao u stanje koje zahtijeva Vašu pažnju i aktivnost. +Dokument: [name] +Verzija: [version] +Poslovni tok: [workflow] +Trenutni status: [current_state] +Glavna mapa: [folder_path] +Korisnik: [username] +URL poveznica: [url]', +'request_workflow_action_email_subject' => 'Zahtijeva se aktivnost po poslovnom toku', +'reset_checkout' => '', +'results_page' => 'Stranica rezultata', +'return_from_subworkflow' => 'Povratak iz pod-toka rada', +'return_from_subworkflow_email_body' => 'Povratak iz toka rada +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Pod-tok rada: [subworkflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'return_from_subworkflow_email_subject' => '[sitename]: [name] - Povratak iz pod-toka rada', +'reverse_links' => 'Dokumenti, koji imaju poveznicu na trenutni dokument', +'reviewers' => 'Recezenti', +'reviewer_already_assigned' => 'je već dodijeljen kao recezent', +'reviewer_already_removed' => 'je već uklonjen iz postupka pregleda ili je već podnijet pregled.', +'review_deletion_email' => 'Izbrisan zahtjev za pregled', +'review_deletion_email_body' => '', +'review_deletion_email_subject' => '', +'review_file' => '', +'review_group' => 'Grupa pregleda', +'review_log' => 'Log pregleda', +'review_request_email' => 'Zahtjev za pregled', +'review_request_email_body' => '', +'review_request_email_subject' => '', +'review_status' => 'Status pregleda:', +'review_submit_email' => 'Predani pregled', +'review_submit_email_body' => 'Postavljen pregled +Dokument: [name] +Verzija: [version] +Status: [status] +Komentar: [comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'review_submit_email_subject' => '[sitename]: [name] - Predan pregled', +'review_summary' => 'Sažetak pregleda', +'review_update_failed' => 'Greška kod izmjene statusa pregleda. Izmjena nije uspjela.', +'revise_document' => '', +'revise_document_on' => '', +'revision_date' => '', +'revision_log' => '', +'revisors' => '', +'revisor_already_assigned' => '', +'revisor_already_removed' => '', +'rewind_workflow' => 'Vrati tok rada na početak', +'rewind_workflow_email_body' => 'Tok rada je vraćen +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'rewind_workflow_email_subject' => '[sitename]: [name] - Tok rada je vraćen na početak', +'rewind_workflow_warning' => 'Ako vratite tok radan u njegovo početno, prijašnji zapisi o tijeku rada za ovaj dokument bit će izbrisani i ne mogu se vratiti.', +'rm_attrdef' => 'Uklonite definiciju atributa', +'rm_default_keyword_category' => 'Uklonite kategoriju', +'rm_document' => 'Ukloni dokument', +'rm_document_category' => 'Uklonite kategoriju', +'rm_file' => 'Uklonite datoteku', +'rm_folder' => 'Uklonite mapu', +'rm_from_clipboard' => 'Uklonite iz međuspremnika', +'rm_group' => 'Uklonite ovu grupu', +'rm_transmittal' => '', +'rm_transmittalitem' => '', +'rm_user' => 'Uklonite ovog korisnika', +'rm_version' => 'Uklonite verziju', +'rm_workflow' => 'Uklonite tok rada', +'rm_workflow_action' => 'Uklonite radnju toka rada', +'rm_workflow_state' => 'Uklonite status toka rada', +'rm_workflow_warning' => 'Želite ukloniti tok rada iz dokumenta. To ne možete vratiti.', +'role' => 'Uloga', +'role_admin' => 'Administrator', +'role_guest' => 'Gost', +'role_user' => 'Korisnik', +'ro_RO' => 'Rumunjski', +'run_subworkflow' => 'Pokreni poslovni pod-tok', +'run_subworkflow_email_body' => 'Pod-tok rada je pokrenut +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Pod-tok rada: [subworkflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'run_subworkflow_email_subject' => '[sitename]: [name] - Pod-tok rada je pokrenut', +'ru_RU' => 'Ruski', +'saturday' => 'Subota', +'saturday_abbr' => 'Su', +'save' => 'Spremi', +'search' => 'Traži', +'search_fulltext' => 'Traži u cijelom tekstu', +'search_in' => 'Traži u', +'search_mode_and' => 'sve riječi', +'search_mode_documents' => 'Samo dokumenti', +'search_mode_folders' => 'Samo mape', +'search_mode_or' => 'najmanje jedna riječ', +'search_no_results' => 'Nema dokumenata koji odgovaraju vašoj pretrazi', +'search_query' => 'Traži', +'search_report' => 'Pronađeno [doccount] dokumenata i [foldercount] mapa za [searchtime] sek.', +'search_report_fulltext' => 'Pronađeno [doccount] dokumenata', +'search_resultmode' => 'Prikaz rezultata pretraživanja', +'search_resultmode_both' => 'Dokumenti i mape', +'search_results' => 'Rezultati pretrage', +'search_results_access_filtered' => 'Rezultati pretrage mogu sadržavati sadržaj kojem je odbijen pristup.', +'search_time' => 'Proteklo vrijeme: [time] sek.', +'seconds' => 'sekunde', +'selection' => 'Odabir', +'select_category' => 'Kliknite za odabir kategorije', +'select_groups' => 'Kliknite za odabir grupa', +'select_grp_approvers' => 'Kliknite za odabir validatora grupe', +'select_grp_notification' => '', +'select_grp_recipients' => '', +'select_grp_reviewers' => 'Kliknite za odabir recezenta grupe', +'select_grp_revisors' => '', +'select_ind_approvers' => 'Kliknite za odabir pojedinačnog validatora', +'select_ind_notification' => '', +'select_ind_recipients' => '', +'select_ind_reviewers' => 'Kliknite za odabir pojedinačnog recezenta', +'select_ind_revisors' => '', +'select_one' => 'Odaberite jednog', +'select_users' => 'Kliknite za odabir korisnika', +'select_workflow' => 'Odaberite tok rada', +'september' => 'Rujan', +'sequence' => 'Redoslijed', +'seq_after' => 'Nakon "[prevname]"', +'seq_end' => 'Na kraju', +'seq_keep' => 'Zadrži poziciju', +'seq_start' => 'Na početak', +'settings' => 'Postavke', +'settings_activate_module' => 'Aktiviraj modul', +'settings_activate_php_extension' => 'Aktiviraj PHP ekstenziju', +'settings_adminIP' => 'Admin IP', +'settings_adminIP_desc' => 'Ako se postavljeni administrator može prijaviti samo s određenom IP adresom, ostavite prazno da izbjegnete kontrolu. NAPOMENA: radi samo s lokalnom autentifikacijom (ne LDAP)', +'settings_Advanced' => 'Napredno', +'settings_apache_mod_rewrite' => 'Apache - Modul prepisa', +'settings_Authentication' => 'Postavke autentifikacije', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', +'settings_cacheDir' => 'Mapa predmemorije', +'settings_cacheDir_desc' => 'Gdje se spremaju slike pregleda (najbolje da odaberete mapu koja nije dostupna kroz vaš web-server)', +'settings_Calendar' => 'Postavke kalendara', +'settings_calendarDefaultView' => 'Zadani prikaz kalendara', +'settings_calendarDefaultView_desc' => 'Zadani prikaz kalendara', +'settings_cannot_disable' => 'Datoteka ENABLE_INSTALL_TOOL se ne može izbrisati', +'settings_checkOutDir' => '', +'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', +'settings_contentDir' => 'Mapa sadržaja', +'settings_contentDir_desc' => 'Gdje se spremaju učitane datoteke (najbolje da odaberete mapu koja nije dostupna kroz vaš web-server)', +'settings_contentOffsetDir' => 'Offset mapa sadržaja', +'settings_contentOffsetDir_desc' => 'Za zaobilaželje ograničenja unutar datotečnog sustava, nova struktura mapa je a new directory structure je zasnovana i nalazi se unutar mape sadržaja. Ovo zahtjeva baznu mapu od koje se kreće. Uobičajeno da se ostavlja zadana postavka, 1048576, ali može biti bilo koji niz koji se već ne nalazi unutar mape sadržaja', +'settings_cookieLifetime' => 'Životni vijek kolačića', +'settings_cookieLifetime_desc' => 'Životni vijek kolačića u sekundama. Ako je postavljeno na 0, kolačić će biti uklonjen kada se zatvori pretraživač.', +'settings_coreDir' => 'Mapa jezgre Core ProsperaDMS-a', +'settings_coreDir_desc' => 'Putanja do ProsperaDMS_Core (opcija). Ovo ostavite prazno ako imate instaliran ProsperaDMS_Core na mjestu gdje se može pronaći s PHP-om, npr. Extra PHP Include-Path', +'settings_createCheckOutDir' => '', +'settings_createCheckOutDir_desc' => '', +'settings_createdatabase' => 'Izradi tablice baze podataka', +'settings_createdirectory' => 'Izradi mapu', +'settings_currentvalue' => 'Trenutna vrijednost', +'settings_Database' => 'Postavke baze podataka', +'settings_dbDatabase' => 'Baza podataka', +'settings_dbDatabase_desc' => 'Naziv vaše baze podataka unijet tijekom postupka instalacije. Ne uređujte ovo polje dok se ne pojavi potreba, ako npr. premjestite bazu podataka.', +'settings_dbDriver' => 'Vrsta baze podataka', +'settings_dbDriver_desc' => 'Vrsta korištene baze podataka unijeta tijekom postupka instalacije. Ne uređujte ovo polje osim ako morate premjestiti u drugu vrstu baze podataka npr. zbog promjene Hosta. Vrsta DB-Drivera koju koristi adodb (vidi adodb-readme)', +'settings_dbHostname' => 'Naziv servera', +'settings_dbHostname_desc' => 'Hostname za vašu bazu podataka unijeto tijekom postupka instalacije. Ne uređujte ovo polje bez prijeke potrebe, npr. prijenos baze podataka na novi Host.', +'settings_dbPass' => 'Lozinka', +'settings_dbPass_desc' => 'Lozinka za pristup vašoj bazi podataka unijeta tijekom postupka instalacije.', +'settings_dbUser' => 'Korisničko ime', +'settings_dbUser_desc' => 'Korisničko ime za pristup vašoj bazi podataka unijeto tijekom postupka instalacije. Ne uređujte ovo polje bez prijeke potrebe, npr. prijenos baze podataka na novi Host.', +'settings_dbVersion' => 'Shema baze podataka je prestara', +'settings_delete_install_folder' => 'Da bi koristili ProsperaDMS, morate izbrisati datoteku ENABLE_INSTALL_TOOL u mapi konfiguracije', +'settings_disableSelfEdit' => 'Onemogućite samostalno uređivanje', +'settings_disableSelfEdit_desc' => 'Ako je označeno, korisnik ne može uređivati svoj vlastiti profil', +'settings_disable_install' => 'Ako je moguće, izbrišite datoteku ENABLE_INSTALL_TOOL', +'settings_Display' => 'Postavke prikaza', +'settings_dropFolderDir' => 'Mapa za zonu ispuštanja', +'settings_dropFolderDir_desc' => 'Ova mapa može se koristiti za ispuštanje datoteka na datotečni sustav poslužitelja i uvoz istih od tamo umjesto učitavanja preko internet preglednika. Mapa mora sadržavati pod mapu za svakog korisnika koji ima dozvolu za uvoz datoteka na ovaj način.', +'settings_Edition' => 'Postavke izdanja', +'settings_enableAcknowledgeWorkflow' => '', +'settings_enableAcknowledgeWorkflow_desc' => '', +'settings_enableAdminRevApp' => 'Dopusti pregled/ovjeru za administratore', +'settings_enableAdminRevApp_desc' => 'Omogući ovo ako želiš da administratori budu navedeni kao recezenti/validatori i za promjenu toka rada.', +'settings_enableCalendar' => 'Omogući Kalendar', +'settings_enableCalendar_desc' => 'Omogući/onemogući kalendar', +'settings_enableClipboard' => 'Omogući međuspremnik', +'settings_enableClipboard_desc' => 'Omogući/onemogući međuspremnik na \'Vidi mapu\' stranici', +'settings_enableConverting' => 'Omogući pretvaranje', +'settings_enableConverting_desc' => 'Omogući/onemogući pretvaranje datoteka', +'settings_enableDropUpload' => 'Omogući brzo učitavanje', +'settings_enableDropUpload_desc' => 'Omogući/onemogući prostor za ubacivanje na \'Vidi mapu\' stranici za učitavanje datoteka "Povuci i ispusti" postupkom.', +'settings_enableDuplicateDocNames' => 'Omogući dvostruke nazive dokumenata', +'settings_enableDuplicateDocNames_desc' => 'Omogućuje da u mapi imate dvostruke nazive dokumenata.', +'settings_enableEmail' => 'Omogući E-mail', +'settings_enableEmail_desc' => 'Omogući/onemogući automatsku email obavijest', +'settings_enableFolderTree' => 'Omogući stablo mape', +'settings_enableFolderTree_desc' => 'Omogući/onemogući stablo mape na \'Vidi mapu\' stranici', +'settings_enableFullSearch' => 'Omogući pretraživanje cijelog teksta', +'settings_enableFullSearch_desc' => 'Omogući pretraživanje cijelog teksta', +'settings_enableGuestLogin' => 'Omogući Gost prijavu', +'settings_enableGuestLogin_desc' => 'Ako želite da se bilo tko koristi Gost prijavu, označite ovu opciju. Napomena: gost prijava smije se koristiti samo u pouzdanom okruženju.', +'settings_enableLanguageSelector' => 'Omogući Izbornik jezika', +'settings_enableLanguageSelector_desc' => 'Prikaži izbornik za jezik korisničkog sučelja nakon prijave.', +'settings_enableLargeFileUpload' => 'Omogući učitavanje velikih datoteka', +'settings_enableLargeFileUpload_desc' => 'Ako je postavljeno, učitavanje datoteke je također dostupno kroz Java aplet naziva "jumploader" bez postavljenog ograničenja veličine datoteke od strane pretraživača. To također omogućuje učitavanje nekoliko datoteka u jednom koraku. Uključivanjem ovoga isključit će se samo http kolačići.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', +'settings_enableNotificationAppRev' => 'Omogući bilježenje recezenta/validatora', +'settings_enableNotificationAppRev_desc' => 'Označi za slanje obavijesti recezentu/validatoru kada je dodana nova verzija dokumenta', +'settings_enableNotificationWorkflow' => 'Omogući obavijesti o zadanom toku rada', +'settings_enableNotificationWorkflow_desc' => 'Ukoliko je ova opcija uključena, korisnici i grupe koji trebaju odraditi neku aktivnost prema definiciji poslovnog toka u slijedećoj fazi toka, će biti obaviješteni. Čak i u slučaju kad nisu dodali opciju obavještavanja za dokument.', +'settings_enableOwnerNotification' => 'Omogući obavješćivanje vlasnika', +'settings_enableOwnerNotification_desc' => 'Označi za dodavanje obavješćivanja vlasnika kada je dodan dokument.', +'settings_enableOwnerRevApp' => 'Omogući vlasnika za recezenta/validatora', +'settings_enableOwnerRevApp_desc' => 'Omogućite ovo ako želite da vlasnik dokumenta bude naveden kao recezent/validator i za promjene tokova rada.', +'settings_enablePasswordForgotten' => 'Omogući zaboravljanje lozinke', +'settings_enablePasswordForgotten_desc' => 'Ako želite omogućiti korisniku da postavi novu lozinku i pošalje ju e-mailom, označite ovu opciju.', +'settings_enableRecursiveCount' => 'Omogući rekurzivno brojanje dokumenta/mape', +'settings_enableRecursiveCount_desc' => 'Ako je uključeno, broj dokumenata i mapa u pregledu mape će biti određen brojanjem svih objekata rekurzivnom obradom mapa i brojanjem tih dokumenata i mapa kojima je korisniku omogućen pristup.', +'settings_enableRevisionWorkflow' => '', +'settings_enableRevisionWorkflow_desc' => '', +'settings_enableSelfRevApp' => 'Omogući pregled/ovjeru za prijavljenog korisnika', +'settings_enableSelfRevApp_desc' => 'Omogući ovo ako želite da trenutno prijavljeni korisnik bude naveden kao recezent/validator i za promjenu toka rada.', +'settings_enableThemeSelector' => 'Odabir teme', +'settings_enableThemeSelector_desc' => 'Uključuje/isključuje izbornik tema na stranici prijave.', +'settings_enableUserImage' => 'Omogući sliku korisnika', +'settings_enableUserImage_desc' => 'Omogući slike korisnika', +'settings_enableUsersView' => 'Omogući pregled korisnika', +'settings_enableUsersView_desc' => 'Omogući/onemogući pregled grupe i korisnika za sve korisnike.', +'settings_enableVersionDeletion' => 'Omogući brisanje prethodnih verzija', +'settings_enableVersionDeletion_desc' => 'Omogući/onemogući brisanje prethodnih verzija dokumenta redovnim korisnicima. Administrator uvijek može izbrisati stare verzije.', +'settings_enableVersionModification' => 'Omogući mijenjanje verzija', +'settings_enableVersionModification_desc' => 'Omogući/onemogući mijenjanje verzija dokumenta redovnim korisnicima nakon učitavanja verzije. Administrator uvijek može promijeniti verziju nakon učitavanja.', +'settings_encryptionKey' => 'Ključ za šifriranje', +'settings_encryptionKey_desc' => 'Ovaj string se koristi za izradu jedinstvenog identifikatora koji će biti dodan kao skriveno polje u formularu kako bi se spriječili CSRF napadi.', +'settings_error' => 'Greška', +'settings_expandFolderTree' => 'Proširi stablo mape', +'settings_expandFolderTree_desc' => 'Proširi stablo mape', +'settings_expandFolderTree_val0' => 'započni sa skrivenim stablom', +'settings_expandFolderTree_val1' => 'započni sa prikazanim stablom i prvom proširenom razinom', +'settings_expandFolderTree_val2' => 'započni sa potpuno proširenim vidljivom stablom', +'settings_Extensions' => 'Ekstenzije', +'settings_extraPath' => 'Extra PHP sadrži putanju', +'settings_extraPath_desc' => 'Putanja do dodatnog softvera. To je mapa koja sadrži npr. adodb mapu ili dodatne Pear pakete', +'settings_firstDayOfWeek' => 'Prvi dan u tjednu', +'settings_firstDayOfWeek_desc' => 'Prvi dan u tjednu', +'settings_footNote' => 'Fusnota', +'settings_footNote_desc' => 'Poruka koja se prikazuje na dnu svake stranice', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', +'settings_guestID' => 'ID gosta', +'settings_guestID_desc' => 'ID gost korisnika koja se koristi kada je prijavljen kao gost (uglavnom se ne treba mijenjati)', +'settings_httpRoot' => 'Http korijen', +'settings_httpRoot_desc' => 'U URL-u, putanja na što se odnosi, nakon domene. Ne sadrži http:// prefiks ili naziv web hosta. Npr. ako je puni URL http://www.example.com/seeddms/, postavi \'/seeddms/\'. Ako je URL http://www.example.com/, postavi \'/\'', +'settings_initialDocumentStatus' => '', +'settings_initialDocumentStatus_desc' => '', +'settings_initialDocumentStatus_draft' => '', +'settings_initialDocumentStatus_released' => '', +'settings_installADOdb' => 'Instaliraj ADOdb', +'settings_install_disabled' => 'Datoteka ENABLE_INSTALL_TOOL je izbrisana. Sada se možete prijaviti u ProsperaDMS i nastaviti konfiguraciju.', +'settings_install_pear_package_log' => 'Instaliraj Pear paket \'Log\'', +'settings_install_pear_package_webdav' => 'Instaliraj Pear paket \'HTTP_WebDAV_Server\', ako imate namjeru koristiti webdav sučelje', +'settings_install_success' => 'Instalacija je uspješno završena.', +'settings_install_welcome_text' => '

Prije nego počnete instalirati ProsperaDMS uvjerite se da ste izradili datoteku \'ENABLE_INSTALL_TOOL\' u vašoj mapi konfiguracije, jer u suprotnom instalacija neće raditi. Na Unix sustavu to se može lako učiniti s \'touch conf/ENABLE_INSTALL_TOOL\'. Nakon završteka instalacije izbrišite datoteku.

ProsperaDMS ima jako male zahtjeve. Trebat ćete mysql bazu podataka ili sqlite podršku i web server s omogućenim php-om. Pear paket Log također treba biti instaliran. Za lucene potpuno pretraživanje teksta, također će vam trebati Zend framework instaliran na disku gdje ga se može pronaći php-om. Za WebDAV server tađer ćete trebati HTTP_WebDAV_Server. Putanja do njega se može kasnije postaviti tijekom instalacije.

Ako želite izraditi bazu podataka prije nego započnete instalaciju, tada je ručno napravite s vama omiljenim alatom, po želji izradite korisnika baze podataka s pristupom bazi podataka i uvezite jedno od odlagališta baza podataka u mapu konfiguracije. Naravno to za vas može napraviti instalacijska skripta, ali će trebati pristup bazi podataka s pravima za izradu baza podataka.

', +'settings_install_welcome_title' => 'Dobrodošli u instalaciju ProsperaDMS-a', +'settings_install_zendframework' => 'Instalirajte Zend Framework, ako namjeravate koristiti pogon za pretraživanje cijelog teksta', +'settings_language' => 'Zadani jezik', +'settings_language_desc' => 'Zadani jezik (jezik podmapa u mapi "jezici")', +'settings_libraryFolder' => '', +'settings_libraryFolder_desc' => '', +'settings_logFileEnable' => 'Omogući log datoteku', +'settings_logFileEnable_desc' => 'Omogući/onemogući log datoteku', +'settings_logFileRotation' => 'Log File Rotation', +'settings_logFileRotation_desc' => 'The log file rotation', +'settings_loginFailure' => 'Neuspješna prijava', +'settings_loginFailure_desc' => 'Onemogući korisnički račun nakon n neuspješnih prijava.', +'settings_luceneClassDir' => 'Lucene ProsperaDMS mapa', +'settings_luceneClassDir_desc' => 'Putanja do ProsperaDMS_Lucene (opcija). Ostavite ovo prazno ako ste instalirali ProsperaDMS_Lucene na mjestu gdje se može pronaći PHP-om, npr. Extra PHP Include-Path', +'settings_luceneDir' => 'Mapa za indeksiranje cijelog teksta', +'settings_luceneDir_desc' => 'Putanja to Lucene indeksa', +'settings_maxDirID' => 'Max Directory ID', +'settings_maxDirID_desc' => 'Maksimalni broj podmapa po nadređenoj mapi. Zadano: 32700.', +'settings_maxExecutionTime' => 'Max. vrijeme izvršenja (s)', +'settings_maxExecutionTime_desc' => 'Ovo postavlja maksimalno vrijeme u sekundama u kojem je skripti dopušteno da se pokrene prije nego se prekine rasčlanjivanjem', +'settings_maxRecursiveCount' => 'Max. broj rekurzivnog dokumenta/mape', +'settings_maxRecursiveCount_desc' => 'To je maksimalni broj dokumenata ili mapa koji će biti označen pristupnim pravima, pri rekurzivnom brojanju objekata. Ako se taj broj premaši, broj dokumenata i mapa u pregledu mape će biti procjenjen.', +'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin', +'settings_notfound' => 'Nije pronađeno', +'settings_Notification' => 'Postavke bilježenja', +'settings_notwritable' => 'Konfiguracija se ne može pohraniti jer datoteka konfiguracije nema mogućnost upisivanja.', +'settings_no_content_dir' => 'Mapa sadržaja', +'settings_overrideMimeType' => '', +'settings_overrideMimeType_desc' => '', +'settings_partitionSize' => 'Veličina djelomične datoteke', +'settings_partitionSize_desc' => 'Veličine djelomičnih datoteka u bajtovima, učitane s jumploader-om. Ne postavljajte vrijednot veću od max. veličine učitavanja koju je postavio server.', +'settings_passwordExpiration' => 'Istek lozinke', +'settings_passwordExpiration_desc' => 'Broj dana nakon kojeg ističe lozinka i mora biti ponovo postavljena. 0 isključuje istek lozinke.', +'settings_passwordHistory' => 'Povijest lozinke', +'settings_passwordHistory_desc' => 'Broj lozinki koji korisnik mora iskoristiti prije nego se lozinka može ponovo koristiti. 0 isključuje povijest lozinke.', +'settings_passwordStrength' => 'Min. kompleksnost lozinke', +'settings_passwordStrengthAlgorithm' => 'Algoritam za kompleksnost lozinke', +'settings_passwordStrengthAlgorithm_desc' => 'Algoritam koji se koristi za izračun kompleksnosti lozinke. Algoritam \'jednostavno\' samo provjerava da li ukupno sadrži najmanje 8 znakova, mala slova, velika slova, brojeve i specijalne znakove. Ako su ti uvjeti zadovoljeni, povratni rezultat je 100, inače 0', +'settings_passwordStrengthAlgorithm_valadvanced' => 'napredno', +'settings_passwordStrengthAlgorithm_valsimple' => 'jednostavno', +'settings_passwordStrength_desc' => 'Minimalna jačina lozinke je cjelobrojna vrijednost od 1 do 100. Postavljanje na 0 će isključiti provjeru minimalne jačine lozinke.', +'settings_pear_log' => 'Pear paket : Log', +'settings_pear_webdav' => 'Pear paket : HTTP_WebDAV_Server', +'settings_perms' => 'Dozvole', +'settings_php_dbDriver' => 'PHP ekstenzija : php_\'see current value\'', +'settings_php_gd2' => 'PHP ekstenzija : php_gd2', +'settings_php_mbstring' => 'PHP ekstenzija : php_mbstring', +'settings_php_version' => 'PHP verzija', +'settings_presetExpirationDate' => 'Postavljeni datum isteka', +'settings_presetExpirationDate_desc' => 'Svi novo učitani dokumenti će datum isteka imati postavljen na ovu vrijednost. Unešeni datum se može odrediti razumljivom PHP strtotime() funkcijom, npr. +5 tjedana.', +'settings_previewWidthDetail' => 'Širina pretpregleda slika (detalj)', +'settings_previewWidthDetail_desc' => 'Širina pretpregleda slike prikazanog na stranici detalja', +'settings_previewWidthList' => 'Širina pretpregleda slika (popis)', +'settings_previewWidthList_desc' => 'Širina pretpregleda slika prikazanih u popisima', +'settings_printDisclaimer' => 'Ispiši odricanje od odgovornosti', +'settings_printDisclaimer_desc' => 'Ako je omogućeno, poruka odricanja od odgovornosti će se ispisati na dnu svake stranice', +'settings_quota' => 'Korisnička kvota', +'settings_quota_desc' => 'Maksimalni broj bajtova na disku koji korisnik može koristiti. Postavite na 0 za neograničeni prostor na disku. Ova vrijednost može biti postavljena svakom korisniku u njegovom profilu.', +'settings_restricted' => 'Ograničeni pristup', +'settings_restricted_desc' => 'Omogući prijavu korisnicima samo ako imaju pristup u lokalnu bazu podataka (bez obzira na uspješnu autentifikaciju s LDAP-om)', +'settings_rootDir' => 'Root mapa', +'settings_rootDir_desc' => 'Putanja do lokacije ProsperaDMS-a', +'settings_rootFolderID' => 'ID Root mape', +'settings_rootFolderID_desc' => 'ID root mape (većinom ne treba mijenjati)', +'settings_SaveError' => 'Greška pri spremanju datoteke konfiguracije', +'settings_Server' => 'Postavke servera', +'settings_showMissingTranslations' => 'Prikaži prijevode koji nedostaju', +'settings_showMissingTranslations_desc' => 'Navedi sve prijevode koji nedostaju na stranici na dnu stranice. Prijavljeni korisnik će moći podnijeti prijedlog za prijevode koji nedostaju koji će biti pohranjen u csv datoteku. Ne uključujte ovu funkciju ako ste u proizvodnoj okolini!', +'settings_Site' => 'Stranica', +'settings_siteDefaultPage' => 'Zadana stranica', +'settings_siteDefaultPage_desc' => 'Zadana stranica kod prijave. Ako je prazno, zadano je out/out.ViewFolder.php', +'settings_siteName' => 'Naziv stranice', +'settings_siteName_desc' => 'Naziv stranice koji se koristi u naslovima stranice. Zadano: ProsperaDMS', +'settings_SMTP' => 'Postavke SMTP servera', +'settings_smtpPassword' => 'Lozinka za pristup SMTP serveru', +'settings_smtpPassword_desc' => 'Lozinka za pristup SMTP serveru', +'settings_smtpPort' => 'Port SMTP servera', +'settings_smtpPort_desc' => 'Port SMTP servera, zadano 25', +'settings_smtpSendFrom' => 'Pošalji od', +'settings_smtpSendFrom_desc' => 'Pošaji od', +'settings_smtpServer' => 'Hostname SMTP servera', +'settings_smtpServer_desc' => 'Hostname SMTP servera', +'settings_smtpUser' => 'Korisnik SMTP servera', +'settings_smtpUser_desc' => 'Korisnik SMTP servera', +'settings_sortFoldersDefault' => 'Zadani način sortiranja', +'settings_sortFoldersDefault_desc' => 'Ovo postavlja načine sortiranja za mape i dokumente u pregledu mape.', +'settings_sortFoldersDefault_val_name' => 'po imenu', +'settings_sortFoldersDefault_val_sequence' => 'po sekvenci', +'settings_sortFoldersDefault_val_unsorted' => 'nesortirano', +'settings_sortUsersInList' => 'Sortiraj korisnike u popisu', +'settings_sortUsersInList_desc' => 'Postavi ako su korisnici u izbornicima odabira poredani po prijavi ili po njihovom punom imenu', +'settings_sortUsersInList_val_fullname' => 'Sortiraj po punom imenu', +'settings_sortUsersInList_val_login' => 'Sortiraj po prijavi', +'settings_stagingDir' => 'Mapa za djelomična učitavanja', +'settings_stagingDir_desc' => 'Mapa gdje jumploader postavlja dijelove učitane datoteke prije nego je ponovno sastavljena.', +'settings_start_install' => 'Započni instalaciju', +'settings_stopWordsFile' => 'Putanja za datoteku riječi koje označavaju kraj (stop)', +'settings_stopWordsFile_desc' => 'Ako je omogućeno pretraživanje cijelog teksta, ova datoteka će sadržavati riječi koje označavaju kraj a koje nisu indeksirane', +'settings_strictFormCheck' => 'Provjera striktnog obrasca', +'settings_strictFormCheck_desc' => 'Provjeravanje striktnog obrasca. Ako je postavljeno na "true", tada će svim poljima u obrascu biti provjerena vrijednost. Ako je postavljeno na "false", tada (uglavnom) će polja komentara i ključnih riječi postati izborna. Komentari se uvijek zahtjevaju kada se podnose pregledi ili obilaženje statusa dokumenta', +'settings_suggestionvalue' => 'Predložena vrijednost', +'settings_System' => 'Sustav', +'settings_theme' => 'Zadana tema', +'settings_theme_desc' => 'Zadani stil (naziv podmape u mapi "stilovi")', +'settings_titleDisplayHack' => 'Prikaz razdvojenog naslova', +'settings_titleDisplayHack_desc' => 'Zaobilazno rješenje za naslove stranica definirane u više od 2 linije.', +'settings_undelUserIds' => 'ID-i korisnika koji se ne mogu brisati', +'settings_undelUserIds_desc' => 'Popis ID-a korisnika odvojenih zarezom, koji se ne mogu brisati.', +'settings_updateDatabase' => 'Pokreni shemu ažuriranja skripti na bazi podataka', +'settings_updateNotifyTime' => 'Ažuriraj vrijeme obavijesti', +'settings_updateNotifyTime_desc' => 'Korisnici se obavještavaju o promjenama dokumenta koje su se dogodile unutar zadnjih \'Update Notify Time\' sekundi', +'settings_upgrade_php' => 'Ažuriraj PHP najmanje na verziju 5.2.0', +'settings_versioningFileName' => 'Naziv datoteke verzije dokumenta', +'settings_versioningFileName_desc' => 'Naziv datoteke s informacijom o verziji kreirane alatom za stvaranje sigurnosne kopije', +'settings_versiontolow' => 'Na nižu verziju', +'settings_viewOnlineFileTypes' => 'Vidi online vrste datoteka', +'settings_viewOnlineFileTypes_desc' => 'Datoteke s jednim od sljedećih završetaka mogu se pregledati online (KORISTITE SAMO MALA SLOVA)', +'settings_workflowMode' => 'Način rada toka rada', +'settings_workflowMode_desc' => 'Napredni tok rada vam omogućuje da odredite vaše vlastito izdanje toka rada za verzije dokumenta.', +'settings_workflowMode_valadvanced' => 'napredno', +'settings_workflowMode_valtraditional' => 'tradicionalno', +'settings_workflowMode_valtraditional_only_approval' => 'uobičajeno (bez revizije)', +'settings_zendframework' => 'Zend okruženje', +'set_expiry' => 'Postavi istek', +'set_owner' => 'Postavi vlasnika', +'set_owner_error' => 'Greška pri postavljanju vlasnika', +'set_password' => 'Postavi lozinku', +'set_workflow' => 'Postavi tok rada', +'signed_in_as' => 'Prijavljen kao', +'sign_in' => 'Prijava u sustav', +'sign_out' => 'Odjava', +'sign_out_user' => 'Odjavi korisnika', +'sk_SK' => 'Slovački', +'space_used_on_data_folder' => 'Prostor iskorišten na podatkovnoj mapi', +'splash_added_to_clipboard' => 'Dodano u međuspremnik', +'splash_add_attribute' => 'Dodan novi atribut', +'splash_add_group' => 'Dodana nova grupa', +'splash_add_group_member' => 'Dodan novi član grupe', +'splash_add_user' => 'Dodan novi korisnik', +'splash_cleared_clipboard' => 'Očišćen međuspremnik', +'splash_document_added' => 'Dokument dodan', +'splash_document_checkedout' => '', +'splash_document_edited' => 'Dokument pohranjen', +'splash_document_locked' => 'Dokument zaključan', +'splash_document_unlocked' => 'Dokument otključan', +'splash_edit_attribute' => 'Atribut pohranjen', +'splash_edit_group' => 'Groupa pohranjena', +'splash_edit_user' => 'Korisnik pohranjen', +'splash_folder_edited' => 'Pohrani izmjene mape', +'splash_invalid_folder_id' => 'Nevažeći ID mape', +'splash_invalid_searchterm' => 'Nevažeći traženi pojam', +'splash_moved_clipboard' => 'Međuspremnik je premješten u trenutnu mapu', +'splash_removed_from_clipboard' => 'Uklonjeno iz međuspremnika', +'splash_rm_attribute' => 'Atribut uklonjen', +'splash_rm_document' => 'Dokument uklonjen', +'splash_rm_folder' => 'Mapa izbrisana', +'splash_rm_group' => 'Grupa uklonjena', +'splash_rm_group_member' => 'Član grupe uklonjen', +'splash_rm_user' => 'Korisnik uklonjen', +'splash_settings_saved' => 'Postavke pohranjene', +'splash_substituted_user' => 'Zamjenski korisnik', +'splash_switched_back_user' => 'Prebačeno nazad na izvornog korisnika', +'splash_toogle_group_manager' => 'Zamjenjen upravitelj grupe', +'state_and_next_state' => 'Status/Slijedeći status', +'statistic' => 'Statistika', +'status' => 'Status', +'status_approval_rejected' => 'Skica odbijena', +'status_approved' => 'Odobreno', +'status_approver_removed' => 'Validator uklonjen iz postupka', +'status_not_approved' => 'Nije odobreno', +'status_not_receipted' => '', +'status_not_reviewed' => 'Nije pregledano', +'status_not_revised' => '', +'status_receipted' => '', +'status_receipt_rejected' => '', +'status_recipient_removed' => '', +'status_reviewed' => 'Pregledano', +'status_reviewer_rejected' => 'Skica odbijena', +'status_reviewer_removed' => 'Recezent uklonjen iz postupka', +'status_revised' => '', +'status_revision_rejected' => '', +'status_revision_sleeping' => '', +'status_revisor_removed' => '', +'status_unknown' => 'Nepoznato', +'storage_size' => 'Veličina pohrane', +'submit_approval' => 'Pošaljite odobrenje', +'submit_login' => 'PRIJAVI SE', +'submit_password' => 'Postavite novu lozinku', +'submit_password_forgotten' => 'Započnite postupak', +'submit_receipt' => '', +'submit_review' => 'Pošaljite ovjeru', +'submit_userinfo' => 'Pošaljite info', +'substitute_to_user' => '', +'substitute_user' => 'Zamjenski korisnik', +'sunday' => 'Nedjelja', +'sunday_abbr' => 'Ne', +'sv_SE' => 'Švedski', +'switched_to' => 'Promjenjeno u', +'takeOverGrpApprover' => '', +'takeOverGrpReviewer' => '', +'takeOverIndApprover' => '', +'takeOverIndReviewer' => '', +'tasks' => '', +'testmail_body' => 'Ova poruka služi samo za testiranje konfiguracije ProsperaDMS-a', +'testmail_subject' => 'Testna poruka', +'theme' => 'Tema', +'thursday' => 'Četvrtak', +'thursday_abbr' => 'Če', +'to' => 'Do', +'toggle_manager' => 'Zamjeni upravitelja', +'to_before_from' => 'Datum završetka ne može biti prije datuma početka', +'transition_triggered_email' => 'Zatražena promjena toka rada', +'transition_triggered_email_body' => 'Zatražena promjena toka rada +Dokument: [name] +Verzija: [version] +Komentar: [comment] +Tok rada: [workflow] +Prethodni status toka: [previous_state] +Trenutni status toka: [current_state] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'transition_triggered_email_subject' => '[sitename]: [name] - Zatražena promjena toka rada', +'transmittal' => '', +'transmittalitem_removed' => '', +'transmittalitem_updated' => '', +'transmittal_comment' => '', +'transmittal_name' => '', +'transmittal_size' => '', +'trigger_workflow' => 'Tok rada', +'tr_TR' => 'Turski', +'tuesday' => 'Utorak', +'tuesday_abbr' => 'Ut', +'type_to_search' => 'Unesi za pretragu', +'uk_UA' => '', +'under_folder' => 'U mapi', +'unknown_attrdef' => 'Nepoznata definicija atributa', +'unknown_command' => 'Naredba nije prepoznata.', +'unknown_document_category' => 'Nepoznata kategorija', +'unknown_group' => 'Nepoznati ID grupe', +'unknown_id' => 'nepoznati ID', +'unknown_keyword_category' => 'Nepoznata kategorija', +'unknown_owner' => 'Nepoznati ID vlasnika', +'unknown_user' => 'Nepoznati ID korisnika', +'unlinked_content' => 'Nepovezani sadržaj', +'unlinked_documents' => 'Nepovezani dokumenti', +'unlinked_folders' => 'Nepovezane mape', +'unlinking_objects' => 'Oslobađanje sadržaja', +'unlock_cause_access_mode_all' => 'I dalje ga možete ažurirati jer imate način pristupa "sve". Zaključavanje će automatski biti ukinuto.', +'unlock_cause_locking_user' => 'I dalje ga možete ažurirati jer ste ga vi zaključali. Zaključavanje će automatski biti ukinuto.', +'unlock_document' => 'Otključaj', +'update' => 'Ažuriraj', +'update_approvers' => 'Ažuriraj popis validatora', +'update_document' => 'Ažuriraj dokument', +'update_fulltext_index' => 'Ažuriraj indeksiranje cijelog teksta', +'update_info' => 'Info ažuriranje', +'update_locked_msg' => 'Ovaj dokument je zaključan.', +'update_recipients' => '', +'update_reviewers' => 'Ažuriraj popis recezenata', +'update_revisors' => '', +'update_transmittalitem' => '', +'uploaded_by' => 'Učitao', +'uploading_failed' => 'Neuspješno učitavanje jedne od vaših datoteka. Molimo provjerite maksimalnu veličinu datoteke za učitavanje.', +'uploading_maxsize' => 'Učitana datoteke premašuje maksimalnu veličinu datoteke za učitavanje.', +'uploading_zerosize' => 'Datoteka koja se učitava je prazna. Učitavanje je otkazano.', +'used_discspace' => 'Iskorišteni prostor na disku', +'user' => 'Korisnik', +'users' => 'Korisnici', +'users_and_groups' => 'Korisnici/Grupe', +'users_done_work' => 'Izvršeni poslovi korisnika', +'user_exists' => 'Korisnik već postoji.', +'user_group_management' => 'Upravljanje korisnicima/grupama', +'user_image' => 'Slika', +'user_info' => 'Korisničke informacije', +'user_list' => 'Popis korisnika', +'user_login' => 'Korisničko ime', +'user_management' => 'Upravljanje korisnicima', +'user_name' => 'Puni naziv', +'use_comment_of_document' => 'Koristi komentar dokumenta', +'use_default_categories' => 'Koristi predefinirane kategorije', +'use_default_keywords' => 'Koristi predefinirane ključne riječi', +'version' => 'Verzija', +'versioning_file_creation' => 'Stvaranje nove verzije datoteke', +'versioning_file_creation_warning' => 'Ovo radnjom možete izraditi datoteku koja sadrži informacije o verzijama cijele DMS mape. Nakon izrade, svaka datoteka će biti pohranjena unutar podatkovne mape.', +'versioning_info' => 'Info o verzijama', +'versiontolow' => 'Na nižu verziju', +'version_deleted_email' => 'Izbrisana verzija', +'version_deleted_email_body' => 'Izbrisana verzija +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'version_deleted_email_subject' => '[sitename]: [name] - Izbrisana verzija', +'version_info' => 'Informacije o verziji', +'view' => 'Pregled', +'view_online' => 'Online pregled', +'warning' => 'Upozorenje', +'wednesday' => 'Srijeda', +'wednesday_abbr' => 'Sr', +'weeks' => 'tjedni', +'week_view' => 'Pregled po tjednima', +'workflow' => 'Tok rada', +'workflow_actions_management' => 'Upravljanje radnjama toka rada', +'workflow_action_in_use' => 'Ova radnju trenutno koriste tokovi rada.', +'workflow_action_name' => 'Naziv', +'workflow_editor' => 'Urednik toka rada', +'workflow_group_summary' => 'Pregled grupe', +'workflow_initstate' => 'Početni status', +'workflow_in_use' => 'Dokumenti trenutno koriste ovaj tok rada.', +'workflow_management' => 'Upravljanje toka rada', +'workflow_name' => 'Naziv', +'workflow_no_states' => 'Prije dodavanja toka rada najprije morate odrediti statuse toka rada.', +'workflow_states_management' => 'Upravljanje statusima toka rada', +'workflow_state_docstatus' => 'Statusi dokumenta', +'workflow_state_in_use' => 'Tok rada trenutno koristi ovaj status.', +'workflow_state_name' => 'Naziv statusa', +'workflow_summary' => 'Pregled toka rada', +'workflow_user_summary' => 'Pregled korisnika', +'year_view' => 'Pregled po godini', +'yes' => 'Da', +'zh_CN' => 'Kineski (CN)', +'zh_TW' => 'Kineski (TW)', +); +?> diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index ae2a22b28..4a6637ead 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (558), ribaz (1019) +// Translators: Admin (562), ribaz (1019) $text = array( 'accept' => 'Elfogad', @@ -276,6 +276,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Felülvizsgálatára váró dokumentumok', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Az Ön tulajdonában álló dokumentumok, amelyekre figyelmet kell fordítani', 'document_already_checkedout' => '', 'document_already_locked' => 'Ez a dokumentum már zárolt', @@ -472,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Óra', 'hours' => 'óra', +'hr_HR' => 'Horvát', 'human_readable' => 'Felhasználó által olvasható archívum', 'hu_HU' => 'Magyar', 'id' => 'ID', @@ -534,6 +536,7 @@ URL: [url]', 'keep_doc_status' => 'Dokumentum állapot megőrzése', 'keywords' => 'Kulcsszavak', 'keyword_exists' => 'Kulcsszó már létezik', +'ko_KR' => '', 'language' => 'Nyelv', 'lastaccess' => 'Utolsó hozzáférés', 'last_update' => 'Utolsó frissítés', @@ -659,7 +662,9 @@ URL: [url]', 'no_group_members' => 'Ennek a csoportnak nincsenek tagjai', 'no_linked_files' => 'Nincsenek hivatkozott állományok', 'no_previous_versions' => 'Nem találhatók más változatok', +'no_receipt_needed' => '', 'no_review_needed' => 'Nincs folyamatban lévő felülvizsgálat.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Emiatt nem módosíthatja a dokumentumot. Kérjük lépjen kapcsolatba a zároló felhasználóval.', 'no_user_image' => 'Kép nem található', @@ -884,6 +889,10 @@ URL: [url]', 'settings_Advanced' => 'Részletek', 'settings_apache_mod_rewrite' => 'Apache - Rewrite modul', 'settings_Authentication' => 'Hitelesítési beállítások', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Átmeneti állományok könyvtára', 'settings_cacheDir_desc' => 'Ahol az előnézeti képek tárolódnak (legjobb olyan könyvtárat választani, amit a web-kiszolgálón keresztül nem lehet elérni)', 'settings_Calendar' => 'Naptár beállítások', @@ -892,6 +901,8 @@ URL: [url]', 'settings_cannot_disable' => 'ENABLE_INSTALL_TOOL állomány nem került törlésre', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Tartalom könyvtár', 'settings_contentDir_desc' => 'Feltöltött állományok tárolási helye (olyan könyvtárat érdemes választani, amelyhez nem lehet a webszerveren keresztül hozzáférni)', 'settings_contentOffsetDir' => 'Tartalom eltérési könyvtár', @@ -951,6 +962,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Megjelenít egy választást a felhasználói felületen a bejelentkezést követően.', 'settings_enableLargeFileUpload' => 'Nagy méretű állományok feltöltésének engedélyezése', 'settings_enableLargeFileUpload_desc' => 'Ha beállítja az állományok feltöltése elérhető lesz egy jumploadernek hívott java appleten keresztül a böngészőprogram állomány méret korlátja nélkül. Ez engedélyezi több állomány feltöltését egy lépésben.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'A felülvizsgáló/jóváhagyó értesítés engedélyezése', 'settings_enableNotificationAppRev_desc' => 'Ellenőrzi az értesítés küldését a felülvizsgálónak/jóváhagyónak új dokumentum változat hozzáadásakor', 'settings_enableNotificationWorkflow' => 'A felhasználó értesítése a következő munkafolyamatnál', @@ -992,6 +1005,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'A hét első napja', 'settings_footNote' => 'Lábjegyzet', 'settings_footNote_desc' => 'Minden oldal alján megjelenő üzenet', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Vendég azonosító', 'settings_guestID_desc' => 'A vendég felhasználó azonosítója ami a vendégként történő bejelentkezéskor lesz használva (általában nem szükséges módosítani)', 'settings_httpRoot' => 'Http gyökér', @@ -1208,6 +1225,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Ez az üzenet a SeedDMS levelezési beállításainak tesztelésére szolgál', 'testmail_subject' => 'Teszt üzenet', 'theme' => 'Téma', @@ -1239,7 +1257,7 @@ URL: [url]', 'tuesday' => 'Kedd', 'tuesday_abbr' => 'Ke', 'type_to_search' => 'Adja meg a keresendő kifejezést', -'uk_UA' => '', +'uk_UA' => 'Ukrán', 'under_folder' => 'Mappában', 'unknown_attrdef' => 'Ismeretlen tulajdonság meghatározás', 'unknown_command' => 'Parancs nem ismerhető fel.', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 2605d34d7..e27a12d94 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1383), s.pnt (26) +// Translators: Admin (1494), s.pnt (26) $text = array( 'accept' => 'Accetta', @@ -59,13 +59,13 @@ URL: [url]', 'add_member' => 'Aggiungi un membro', 'add_multiple_documents' => 'Aggiungi documenti multipli', 'add_multiple_files' => 'Aggiungi documenti multipli (il nome del file verrà usato come nome del documento)', -'add_receipt' => '', +'add_receipt' => 'invio ricevuta', 'add_review' => 'Invio revisione', -'add_revision' => '', +'add_revision' => 'Aggiungi approvazione', 'add_subfolder' => 'Aggiungi sottocartella', 'add_to_clipboard' => 'Aggiungi agli appunti', -'add_to_transmittal' => '', -'add_transmittal' => '', +'add_to_transmittal' => 'Aggiungi alla trasmissione', +'add_transmittal' => 'Aggiungi trasmissione', 'add_user' => 'Aggiungi un nuovo utente', 'add_user_to_group' => 'Aggiungi un utente al gruppo', 'add_workflow' => 'Crea un flusso di lavoro', @@ -89,7 +89,7 @@ Cartella: [folder_path] Utente: [username] URL: [url]', 'approval_deletion_email_subject' => '[sitename]: [name] - Richiesta di approvazione cancellata', -'approval_file' => '', +'approval_file' => 'File', 'approval_group' => 'Gruppo di approvazione', 'approval_log' => 'Registro delle approvazioni', 'approval_request_email' => 'Richiesta di approvazione', @@ -114,8 +114,8 @@ URL: [url]', 'approval_summary' => 'Dettaglio approvazioni', 'approval_update_failed' => 'Errore nel modificare lo stato di approvazione. Aggiornamento fallito.', 'approvers' => 'Approvatori', -'approver_already_assigned' => '', -'approver_already_removed' => '', +'approver_already_assigned' => 'Utente già approvatore', +'approver_already_removed' => 'Utente già rimosso dal processo di approvazione o ha già approvato', 'april' => 'Aprile', 'archive_creation' => 'Creazione archivi', 'archive_creation_warning' => 'Con questa operazione è possibile creare archivi contenenti i file di intere cartelle del DMS. Dopo la creazione l\'archivio viene salvato nella cartella dati del server. Attenzione: un archivio creato per uso esterno non è utilizzabile come backup del server.', @@ -137,12 +137,12 @@ URL: [url]', 'attrdef_objtype' => 'Tipo di oggetto', 'attrdef_regex' => 'Espressione regolare', 'attrdef_type' => 'Tipo', -'attrdef_type_boolean' => '', -'attrdef_type_email' => '', -'attrdef_type_float' => '', -'attrdef_type_int' => '', -'attrdef_type_string' => '', -'attrdef_type_url' => '', +'attrdef_type_boolean' => 'Booleano', +'attrdef_type_email' => 'Email', +'attrdef_type_float' => 'Virgola mobile', +'attrdef_type_int' => 'Intero', +'attrdef_type_string' => 'Stringa', +'attrdef_type_url' => 'URL', 'attrdef_valueset' => 'Set di valori', 'attributes' => 'Attributi', 'attribute_changed_email_body' => 'Attributo modificato @@ -155,7 +155,8 @@ URL: [url]', 'attribute_changed_email_subject' => '[sitename]: [name] - Attributo modificato', 'attribute_count' => 'Numero di utilizzi', 'attribute_value' => 'Valore dell\'Attributo', -'attr_malformed_email' => '', +'attr_malformed_email' => 'Il valore di \'[value]\' dell, + => attributo \'[attrname]\' non é un URL valido.', 'attr_malformed_url' => '', 'attr_max_values' => 'Il numero massimo dei valori richiesti per l\'Attributo [attrname] è superato.', 'attr_min_values' => 'Il numero minimo di valori richiesti per l\'Attributo [attrname] non è raggiunto.', @@ -194,8 +195,8 @@ URL: [url]', 'change_assignments' => 'Modifica le Assegnazioni', 'change_password' => 'Cambia la password', 'change_password_message' => 'La password è stata cambiata', -'change_recipients' => '', -'change_revisors' => '', +'change_recipients' => 'Cambia lista cartelle', +'change_revisors' => 'Cambia reimmissione', 'change_status' => 'Modifica lo Stato', 'charts' => 'Grafici', 'chart_docsaccumulated_title' => 'Numero di documenti', @@ -206,12 +207,12 @@ URL: [url]', 'chart_docsperuser_title' => 'Documenti per utente', 'chart_selection' => 'Seleziona grafico', 'chart_sizeperuser_title' => 'Spazio su disco per utente', -'checkedout_file_has_different_version' => '', -'checkedout_file_has_disappeared' => '', -'checkedout_file_is_unchanged' => '', -'checkin_document' => '', -'checkout_document' => '', -'checkout_is_disabled' => '', +'checkedout_file_has_different_version' => 'La versione approvata non è uguale alla versione corrente. Non si aggiornerà documento.', +'checkedout_file_has_disappeared' => 'File documento approvato non trovato. Impossibile caricare.', +'checkedout_file_is_unchanged' => 'La versione approvata è uguale alla versione corrente. Impossibile caricare.', +'checkin_document' => 'Da approvare', +'checkout_document' => 'Approvato', +'checkout_is_disabled' => 'Approvazione dei documenti disabilitata', 'choose_attrdef' => 'Seleziona l\'Attributo', 'choose_category' => 'Seleziona', 'choose_group' => 'Seleziona il gruppo', @@ -240,15 +241,15 @@ URL: [url]', 'confirm_rm_folder_files' => 'Vuoi davvero rimuovere tutti i file dalla cartella "[foldername]" e dalle sue sottocartelle? Attenzione: questa operazione non può essere annullata.', 'confirm_rm_group' => 'Vuoi davvero rimuovere il gruppo "[groupname]"? Attenzione: questa operazione non può essere annullata.', 'confirm_rm_log' => 'Vuoi davvero rimuovere il file di log "[logname]"?
Attenzione: questa operazione non può essere annullata.', -'confirm_rm_transmittalitem' => '', +'confirm_rm_transmittalitem' => 'Conferma rimozione', 'confirm_rm_user' => 'Vuoi davvero rimuovere l\'utente "[username]"? Attenzione: questa operazione non può essere annullata.', 'confirm_rm_version' => 'Vuoi veramente eliminare la versione [version] del documento "[documentname]"? Attenzione: questa operazione non può essere annullata.', -'confirm_update_transmittalitem' => '', +'confirm_update_transmittalitem' => 'Conferma aggiornamento', 'content' => 'Contenuto', 'continue' => 'Continua', -'converter_new_cmd' => '', -'converter_new_mimetype' => '', -'copied_to_checkout_as' => '', +'converter_new_cmd' => 'Comando', +'converter_new_mimetype' => 'Nuovo mimetype', +'copied_to_checkout_as' => 'File copiato come \'[filename]\'', 'create_fulltext_index' => 'Crea indice fulltext', 'create_fulltext_index_warning' => 'Stai creando un indice fulltext. Questo può occupare un tempo considerevole e ridurre le prestazioni del sistema. Sei sicuro di voler ricreare l\'indice? Prego conferma l\'operazione.', 'creation_date' => 'Data creazione', @@ -273,16 +274,17 @@ URL: [url]', 'discspace' => 'Spazio su disco', 'document' => 'Documento', 'documents' => 'Documenti', -'documents_checked_out_by_you' => '', +'documents_checked_out_by_you' => 'Documenti approvati da te', 'documents_in_process' => 'Documenti in lavorazione', 'documents_locked_by_you' => 'Documenti bloccati da te', 'documents_only' => 'Solo documenti', 'documents_to_approve' => 'Documenti in attesa della tua approvazione', -'documents_to_receipt' => '', +'documents_to_receipt' => 'Documenti in attesa di conferma ricezione', 'documents_to_review' => 'Documenti in attesa della tua revisione', -'documents_to_revise' => '', +'documents_to_revise' => 'Documenti da revisionare.', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Tuoi documenti in attesa di revisione o approvazione', -'document_already_checkedout' => '', +'document_already_checkedout' => 'Questo documento è già approvato', 'document_already_locked' => 'Questo documento è già bloccato', 'document_comment_changed_email' => 'Commento modificato', 'document_comment_changed_email_body' => 'Commento modificato @@ -303,7 +305,7 @@ Utente: [username]', 'document_duplicate_name' => 'Nome del Documento duplicato', 'document_has_no_workflow' => 'Il documento non ha un flusso di lavoro', 'document_infos' => 'Informazioni documento', -'document_is_checked_out' => '', +'document_is_checked_out' => 'Il documento é approvato. Se aggiorni il documento, la versione approvata verrà sovrascritta definitivamente', 'document_is_not_locked' => 'Questo documento non è bloccato', 'document_link_by' => 'Collegato da', 'document_link_public' => 'Pubblico', @@ -315,7 +317,7 @@ Nuova cartella: [new_folder_path] Utente: [username] URL: [url]', 'document_moved_email_subject' => '[sitename]: [name] - Documento spostato', -'document_not_checkedout' => '', +'document_not_checkedout' => 'Documento non approvato', 'document_renamed_email' => 'Documento rinominato', 'document_renamed_email_body' => 'Documento rinominato Documento: [name] @@ -349,7 +351,7 @@ URL: [url]', 'do_object_setchecksum' => 'Imposta il checksum', 'do_object_setfilesize' => 'Imposta la dimensione del file', 'do_object_unlink' => 'Cancella la versione del documento', -'draft' => '', +'draft' => 'Bozza', 'draft_pending_approval' => 'Bozza - in approvazione', 'draft_pending_review' => 'Bozza - in revisione', 'drag_icon_here' => 'Trascina qui l\'icona della cartella o del documento', @@ -375,7 +377,7 @@ URL: [url]', 'edit_folder_notify' => 'Modifica la lista di notifica per la cartella', 'edit_folder_props' => 'Modifica proprietà cartella', 'edit_group' => 'Modifica il gruppo', -'edit_transmittal_props' => '', +'edit_transmittal_props' => 'Modifica proprietà trasmissione', 'edit_user' => 'Modifica l\'utente', 'edit_user_details' => 'Modifica i dettagli utente', 'email' => 'Email', @@ -402,7 +404,7 @@ Cartella: [folder_path] Utente: [username] URL: [url]', 'expiry_changed_email_subject' => '[sitename]: [name] - Scadenza cambiata', -'export' => '', +'export' => 'Esporta', 'extension_manager' => 'Gestisci le estensioni dei files', 'february' => 'Febbraio', 'file' => 'File', @@ -474,14 +476,15 @@ URL: [url]', 'guest_login' => 'Login come Ospite', 'guest_login_disabled' => 'Il login come Ospite è disabilitato.', 'help' => 'Aiuto', -'home_folder' => '', +'home_folder' => 'Cartella Utente', 'hourly' => 'Ogni ora', 'hours' => 'ore', +'hr_HR' => 'Croato', 'human_readable' => 'Archivio per uso esterno', 'hu_HU' => 'Ungherese', 'id' => 'ID', 'identical_version' => 'La nuova versione è identica a quella attuale.', -'include_content' => '', +'include_content' => 'Includi contenuto', 'include_documents' => 'Includi documenti', 'include_subdirectories' => 'Includi sottocartelle', 'index_converters' => 'Indice di conversione documenti', @@ -511,7 +514,7 @@ URL: [url]', 'invalid_target_folder' => 'ID cartella selezionata non valido', 'invalid_user_id' => 'ID utente non valido', 'invalid_version' => 'Versione del documento non valida', -'in_revision' => '', +'in_revision' => 'In fase di revisione', 'in_workflow' => 'In fase di lavorazione', 'is_disabled' => 'Account Disabilitato', 'is_hidden' => 'Nascondi dalla lista utenti', @@ -539,11 +542,12 @@ URL: [url]', 'keep_doc_status' => 'Mantieni lo stato del documento', 'keywords' => 'Parole-chiave', 'keyword_exists' => 'Parola-chiave già presente', +'ko_KR' => 'Coreano', 'language' => 'Lingua', 'lastaccess' => 'Ultimo accesso', 'last_update' => 'Ultima modifica', 'legend' => 'Legenda', -'librarydoc' => '', +'librarydoc' => 'Documento da cartella', 'linked_documents' => 'Documenti collegati', 'linked_files' => 'Allegati', 'link_alt_updatedocument' => 'Se vuoi caricare file più grandi del limite massimo attuale, usa la pagina alternativa di upload.', @@ -590,7 +594,7 @@ URL: [url]', 'move_folder' => 'Sposta cartella', 'my_account' => 'Account personale', 'my_documents' => 'Documenti personali', -'my_transmittals' => '', +'my_transmittals' => 'Mie trasmissioni', 'name' => 'Nome', 'needs_workflow_action' => 'Il documento richiede attenzione. Prego controllare il flusso di lavoro.', 'never' => 'Mai', @@ -651,21 +655,23 @@ URL: [url]', 'no_attached_files' => 'Nessun file allegato', 'no_current_version' => 'La corrente versione di SeedDMS non è aggiornata. La versione più recente disponibile è la [latestversion].', 'no_default_keywords' => 'Nessuna parola-chiave disponibile', -'no_docs_checked_out' => '', +'no_docs_checked_out' => 'Nessun documento approvato', 'no_docs_locked' => 'Nessun documento bloccato.', 'no_docs_to_approve' => 'Non ci sono documenti che richiedano approvazione.', 'no_docs_to_look_at' => 'Non ci sono documenti che richiedano attenzione.', -'no_docs_to_receipt' => '', +'no_docs_to_receipt' => 'Nessuna cartella richiesta.', 'no_docs_to_review' => 'Non ci sono documenti che richiedano revisioni.', -'no_docs_to_revise' => '', +'no_docs_to_revise' => 'Non ci sono documenti che richiedano approvazione.', 'no_email_or_login' => 'Login ed email devono essere digitate', 'no_fulltextindex' => 'Nessun indice fulltext disponibile', 'no_groups' => 'Nessun gruppo', 'no_group_members' => 'Questo gruppo non ha membri', 'no_linked_files' => 'Nessun file collegato', 'no_previous_versions' => 'Nessun\'altra versione trovata', +'no_receipt_needed' => '', 'no_review_needed' => 'Nessuna revisione in sospeso.', -'no_revision_planed' => '', +'no_revision_needed' => '', +'no_revision_planed' => 'Nessuna revisione pianificata.', 'no_update_cause_locked' => 'Non è quindi possible aggiornare il documento. Prego contattare l\'utente che l\'ha bloccato.', 'no_user_image' => 'Nessuna immagine trovata', 'no_version_check' => 'Il controllo per una nuova versione di SeedDMS è fallito! Questo può essere causato da allow_url_fopen settato a 0 nella tua configurazione php.', @@ -715,8 +721,8 @@ Dovessero esserci ancora problemi al login, prego contatta l\'Amministratore di 'password_wrong' => 'Password errata', 'personal_default_keywords' => 'Parole-chiave personali', 'pl_PL' => 'Polacco', -'possible_substitutes' => '', -'preview_converters' => '', +'possible_substitutes' => 'Sostituti', +'preview_converters' => 'Anteprima convesione documento', 'previous_state' => 'Stato precedente', 'previous_versions' => 'Versioni precedenti', 'pt_BR' => 'Portoghese (BR)', @@ -724,9 +730,9 @@ Dovessero esserci ancora problemi al login, prego contatta l\'Amministratore di 'quota_exceeded' => 'La quota-disco è stata superata di [bytes].', 'quota_is_disabled' => 'Il supporto per le quote è attualmente disattivato nelle impostazioni. L\'impostazione di una quota-utente non avrà alcun effetto finché tale funzionalità non verrà nuovamente attivata.', 'quota_warning' => 'Il vostro utilizzo massimo di spazio è stato superato di [bytes]. Si prega di rimuovere documenti o versioni obsolete.', -'receipt_log' => '', -'receipt_summary' => '', -'recipients' => '', +'receipt_log' => 'Ricezione Log', +'receipt_summary' => 'Sommario ricezione', +'recipients' => 'Cartelle', 'refresh' => 'Ricarica', 'rejected' => 'Rifiutato', 'released' => 'Rilasciato', @@ -737,9 +743,9 @@ Documento: [document] Utente: [username] URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Allegato rimosso', -'removed_recipient' => '', -'removed_reviewer' => 'é stato rimosso dalla lista dei revisori.', -'removed_revispr' => '', +'removed_recipient' => 'è stato rimosso dalla lista delle cartelle.', +'removed_reviewer' => 'è stato rimosso dalla lista dei revisori.', +'removed_revispr' => 'è stato rimosso dalla lista degli approvatori.', 'removed_workflow_email_body' => 'Flusso di lavoro rimosso dalla versione del documento Documento: [name] Versione: [version] @@ -751,16 +757,16 @@ URL: [url]', 'remove_marked_files' => 'Rimuovi i files contrassegnati', 'repaired' => 'riparato', 'repairing_objects' => 'Riparazione documenti e cartelle in corso...', -'request_workflow_action_email_body' => 'Il flusso di lavoro richiede che tu esegua un\'azione. -Documento: [name] -Versione: [version] -Flusso di lavoro: [workflow] -Stato attuale: [current_state] -Cartella: [folder_path] -Utente: [username] +'request_workflow_action_email_body' => 'Il flusso di lavoro richiede che tu esegua un\'azione. +Documento: [name] +Versione: [version] +Flusso di lavoro: [workflow] +Stato attuale: [current_state] +Cartella: [folder_path] +Utente: [username] URL: [url]', 'request_workflow_action_email_subject' => 'Richiesta di azione in un flusso di lavoro', -'reset_checkout' => '', +'reset_checkout' => 'Check Out terminato', 'results_page' => 'Pagina dei risultati', 'return_from_subworkflow' => 'Ritorno dal sotto-flusso di lavoro', 'return_from_subworkflow_email_body' => 'Ritorno dal sotto-flusso di lavoro @@ -784,7 +790,7 @@ Cartella: [folder_path] Utente: [username] URL: [url]', 'review_deletion_email_subject' => '[sitename]: [name] - Richiesta di revisione cancellata', -'review_file' => '', +'review_file' => 'File', 'review_group' => 'Gruppo revisori', 'review_log' => 'Rivedi log', 'review_request_email' => 'Richiesta di revisione', @@ -808,13 +814,13 @@ URL: [url]', 'review_submit_email_subject' => '[sitename]: [name] - Sottoposta revisione', 'review_summary' => 'Dettaglio revisioni', 'review_update_failed' => 'Errore nella variazione dello stato di revisione. Aggiornamento fallito.', -'revise_document' => '', -'revise_document_on' => '', -'revision_date' => '', -'revision_log' => '', -'revisors' => '', -'revisor_already_assigned' => '', -'revisor_already_removed' => '', +'revise_document' => 'Rivedi documento', +'revise_document_on' => 'Prossima revisione del documento il [date]', +'revision_date' => 'data revisione', +'revision_log' => 'Log revisione', +'revisors' => 'Revisori', +'revisor_already_assigned' => 'Utente già assegnato al ruolo di revisore', +'revisor_already_removed' => 'Revisore già rimosso dal processo di revisione o ha già revisionato documento.', 'rewind_workflow' => 'Inverti il flusso di lavoro', 'rewind_workflow_email_body' => 'Il flusso di lavoro è stato invertito Document: [name] @@ -833,8 +839,8 @@ URL: [url]', 'rm_folder' => 'Rimuovi cartella', 'rm_from_clipboard' => 'Rimuovi dalla clipboard', 'rm_group' => 'Rimuovi questo gruppo', -'rm_transmittal' => '', -'rm_transmittalitem' => '', +'rm_transmittal' => 'Rimuovi trasmissione', +'rm_transmittalitem' => 'Rimuovi oggetto', 'rm_user' => 'Rimuovi questo utente', 'rm_version' => 'Rimuovi versione', 'rm_workflow' => 'Rimuovi flusso di lavoro', @@ -882,14 +888,14 @@ URL: [url]', 'select_groups' => 'Clicca per selezionare i gruppi', 'select_grp_approvers' => 'Seleziona gruppo approvatore', 'select_grp_notification' => 'Seleziona Gruppo', -'select_grp_recipients' => '', +'select_grp_recipients' => 'Seleziona gruppo cartelle', 'select_grp_reviewers' => 'Seleziona gruppo revisore', -'select_grp_revisors' => '', +'select_grp_revisors' => 'Seleziona gruppo revisori', 'select_ind_approvers' => 'Seleziona approvatore', 'select_ind_notification' => 'Seleziona Utente', -'select_ind_recipients' => '', +'select_ind_recipients' => 'Seleziona singole cartelle', 'select_ind_reviewers' => 'Seleziona revisore', -'select_ind_revisors' => '', +'select_ind_revisors' => 'Seleziona singoli revisori', 'select_one' => 'Seleziona uno', 'select_users' => 'Clicca per selezionare gli utenti', 'select_workflow' => 'Seleziona il flusso di lavoro', @@ -907,14 +913,20 @@ URL: [url]', 'settings_Advanced' => 'Avanzate', 'settings_apache_mod_rewrite' => 'Apache - Mod Rewrite', 'settings_Authentication' => 'Impostazioni di Autenticazione', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Cartella di cache', 'settings_cacheDir_desc' => 'Cartella in cui vengono conservate le immagini di anteprima, si consiglia di scegliere una cartella sul web-server che non sia direttamente accessibile.', 'settings_Calendar' => 'Impostazioni calendario', 'settings_calendarDefaultView' => 'Vista di default del calendario', 'settings_calendarDefaultView_desc' => 'Vista di default del calendario', 'settings_cannot_disable' => 'Il file ENABLE_INSTALL_TOOL non può essere cancellato', -'settings_checkOutDir' => '', -'settings_checkOutDir_desc' => '', +'settings_checkOutDir' => 'Cartella per i documenti approvati', +'settings_checkOutDir_desc' => 'Questa eultima versione del documento viene copiata se approvato. Se accessibile agli utenti, possono editare il documento e ricopiarlo quando finito.', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Cartella contenitore', 'settings_contentDir_desc' => 'Cartella in cui vengono conservati i files caricati, si consiglia di scegliere una cartella sul web-server che non sia direttamente accessibile.', 'settings_contentOffsetDir' => 'Cartella Offset', @@ -923,8 +935,8 @@ URL: [url]', 'settings_cookieLifetime_desc' => 'Tempo di vita del cookie in secondi: se impostato su 0 il cookie verrà rimosso alla chiusura del browser', 'settings_coreDir' => 'Cartella principale dell\'applicazione', 'settings_coreDir_desc' => 'Percorso del pacchetto principale dell\'applicazione', -'settings_createCheckOutDir' => '', -'settings_createCheckOutDir_desc' => '', +'settings_createCheckOutDir' => 'Cartella approvati', +'settings_createCheckOutDir_desc' => 'I documenti verranno copiati in questa cartella, quando approvati.', 'settings_createdatabase' => 'Crea database', 'settings_createdirectory' => 'Crea cartella', 'settings_currentvalue' => 'Valore corrente', @@ -948,8 +960,8 @@ URL: [url]', 'settings_dropFolderDir' => 'Cartella per il drop', 'settings_dropFolderDir_desc' => 'Questa cartella viene utilizzata per rilasciare (drop) files sul server per importarli direttamente anziché caricarli attraverso il browser. La cartella deve contenere una sottocartella per ciascun utente autorizzato ad importare files in questo modo.', 'settings_Edition' => 'Impostazioni di edizione', -'settings_enableAcknowledgeWorkflow' => '', -'settings_enableAcknowledgeWorkflow_desc' => '', +'settings_enableAcknowledgeWorkflow' => 'Abilitare per notifiche', +'settings_enableAcknowledgeWorkflow_desc' => 'Abilitare per attivare sul workflow le ricevute di notifica.', 'settings_enableAdminRevApp' => 'Permetti la revisione/approvazione da parte degli amministratori', 'settings_enableAdminRevApp_desc' => 'Abilita per elencare gli amministratori tra i revisori/approvatori e per le transizioni del flusso di lavoro', 'settings_enableCalendar' => 'Abilita calendario', @@ -974,6 +986,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Mostra/nasconde il selettore di lingua successivamente al login.', 'settings_enableLargeFileUpload' => 'Abilita caricamento grandi files', 'settings_enableLargeFileUpload_desc' => 'Se selezionato, il caricamento (upload) dei files può essere effettuato anche attraverso un\'applet Java chiamata Jumploader evitando il limite di dimensioni file imposto dal browser; Jumploader permette anche il caricamento di diversi files contemporaneamente.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Abilita/disabilita notifica a revisore/approvatore', 'settings_enableNotificationAppRev_desc' => 'Spuntare per inviare una notifica al revisore/approvatore nel momento in cui viene aggiunta una nuova versione del documento.', 'settings_enableNotificationWorkflow' => 'Invia notifiche ai partecipanti al flusso di lavoro', @@ -986,8 +1000,8 @@ URL: [url]', 'settings_enablePasswordForgotten_desc' => 'Spuntare nel caso si desideri permettere all\'utente di re-impostare la password inviata per email.', 'settings_enableRecursiveCount' => 'Abilita il conteggio ricursivo di documenti/cartelle', 'settings_enableRecursiveCount_desc' => 'Se selezionato il numero di documenti e sottocartelle accessibili all\'utente sarà calcolato con un conteggio ricursivo di tutti gli oggetti contenuti nella cartella.', -'settings_enableRevisionWorkflow' => '', -'settings_enableRevisionWorkflow_desc' => '', +'settings_enableRevisionWorkflow' => 'Abilita revisione documenti', +'settings_enableRevisionWorkflow_desc' => 'Abilita per attivare workflow su revisione documenti dopo scadenza.', 'settings_enableSelfRevApp' => 'Permetti revisione/approvazione all\'utente registrato', 'settings_enableSelfRevApp_desc' => 'Abilitare se si desidera aggiungere l\'utente attualmente registrato alla lista dei revisori/approvatori e per le transizioni del flusso di lavoro.', 'settings_enableThemeSelector' => 'Selezione tema grafico', @@ -1015,14 +1029,18 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primo giorno della settimana', 'settings_footNote' => 'Pié di pagina', 'settings_footNote_desc' => 'Messaggio da visualizzare alla fine di ogni pagina', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID Ospite', 'settings_guestID_desc' => 'ID o utenza ospite utilizzata quando collegati al sito come ospite (da cambiare solo in casi eccezionali).', 'settings_httpRoot' => 'Cartella web principale', 'settings_httpRoot_desc' => 'Percorso relativo nell\'URL dopo il dominio e senza il prefisso \'http://\'. Es: se l\'URL completo è http://www.esempio.com/SeedDMS/, impostare \'/SeedDMS/\'; se invece l\'URL è http://www.esempio.com/, impostare \'/\'', -'settings_initialDocumentStatus' => '', -'settings_initialDocumentStatus_desc' => '', -'settings_initialDocumentStatus_draft' => '', -'settings_initialDocumentStatus_released' => '', +'settings_initialDocumentStatus' => 'Stato iniziale documento', +'settings_initialDocumentStatus_desc' => 'Stato assegnato quando si aggiunge documento', +'settings_initialDocumentStatus_draft' => 'Bozza', +'settings_initialDocumentStatus_released' => 'Rilasciato', 'settings_installADOdb' => 'Installa ADOdb', 'settings_install_disabled' => 'Il file ENABLE_INSTALL_TOOL è stato cancellato. Ora puoi effettuare il login in SeedDMS e fare ulteriori configurazioni.', 'settings_install_pear_package_log' => 'Installa il registro del pacchetto Pear', @@ -1033,8 +1051,8 @@ URL: [url]', 'settings_install_zendframework' => 'Installare il framework Zend, se si intende usufruire del motore di ricerca fulltext.', 'settings_language' => 'Lingua di default', 'settings_language_desc' => 'Lingua di default (nome della sottocartella corrispondente nella cartella "languages")', -'settings_libraryFolder' => '', -'settings_libraryFolder_desc' => '', +'settings_libraryFolder' => 'Libreria cartelle', +'settings_libraryFolder_desc' => 'Cartella dove i documenti possono essere copiati per crearne di nuovi.', 'settings_logFileEnable' => 'Abilita il file di registro', 'settings_logFileEnable_desc' => 'Abilita/disabilita il file di registro', 'settings_logFileRotation' => 'Rotazione del file di registro', @@ -1056,8 +1074,8 @@ URL: [url]', 'settings_Notification' => 'Impostazioni di notifica', 'settings_notwritable' => 'La configurazione non può essere salvata perchè il file di configurazione non può essere sovrascritto.', 'settings_no_content_dir' => 'Cartella contenitore', -'settings_overrideMimeType' => '', -'settings_overrideMimeType_desc' => '', +'settings_overrideMimeType' => 'Ignora MimeType', +'settings_overrideMimeType_desc' => 'Ignora il MimeType impostato dal browser, se un file viene caricato. Il MimeType è determinato ed impostato dal DMS stesso.', 'settings_partitionSize' => 'Dimensione file parziale', 'settings_partitionSize_desc' => 'Dimensione parziale dei files caricati da Jumploader in bytes. Non impostare un valore maggiore del massimo carico di upload attribuito dal server.', 'settings_passwordExpiration' => 'Scadenza Password', @@ -1170,7 +1188,7 @@ URL: [url]', 'splash_add_user' => 'Utente aggiunto', 'splash_cleared_clipboard' => 'Appunti cancellati', 'splash_document_added' => 'Documento aggiunto', -'splash_document_checkedout' => '', +'splash_document_checkedout' => 'Documento approvato', 'splash_document_edited' => 'Documento modificato', 'splash_document_locked' => 'Documento bloccato', 'splash_document_unlocked' => 'Documento sbloccato', @@ -1199,29 +1217,29 @@ URL: [url]', 'status_approved' => 'Approvato', 'status_approver_removed' => 'Approvatore rimosso dal processo', 'status_not_approved' => 'Non ancora approvato', -'status_not_receipted' => '', +'status_not_receipted' => 'Non ancora ricevuto', 'status_not_reviewed' => 'Non ancora revisionato', -'status_not_revised' => '', -'status_receipted' => '', -'status_receipt_rejected' => '', -'status_recipient_removed' => '', +'status_not_revised' => 'Non revisionato', +'status_receipted' => 'Ricevuto', +'status_receipt_rejected' => 'Rigettato', +'status_recipient_removed' => 'Cartella rimossa dalla lista', 'status_reviewed' => 'Revisionato', 'status_reviewer_rejected' => 'Bozza rifiutata', 'status_reviewer_removed' => 'Revisore rimosso dal processo', -'status_revised' => '', -'status_revision_rejected' => '', -'status_revision_sleeping' => '', -'status_revisor_removed' => '', +'status_revised' => 'Revisionato', +'status_revision_rejected' => 'Rigettato', +'status_revision_sleeping' => 'In attesa', +'status_revisor_removed' => 'Revisore rimosso dalla lista', 'status_unknown' => 'Sconosciuto', 'storage_size' => 'Spazio di archiviazione', 'submit_approval' => 'Invio approvazione', 'submit_login' => 'Accedi', 'submit_password' => 'Impostazione nuova password', 'submit_password_forgotten' => 'Inizio processo di recupero', -'submit_receipt' => '', +'submit_receipt' => 'Invio ricevuta', 'submit_review' => 'Invio revisione', 'submit_userinfo' => 'Invio info utente', -'substitute_to_user' => '', +'substitute_to_user' => 'Cambia in \'[username]\'', 'substitute_user' => 'Impersona utente', 'sunday' => 'Domenica', 'sunday_abbr' => 'Dom', @@ -1231,6 +1249,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Riprendi il gruppo dei revisori dall\'ultima versione.', 'takeOverIndApprover' => 'Riprendi l\'approvatore dall\'ultima versione.', 'takeOverIndReviewer' => 'Riprendi il revisore dall\'ultima versione.', +'tasks' => '', 'testmail_body' => 'Questo messaggio di posta elettronica è solo un test per verificare la configurazione del repository', 'testmail_subject' => 'Messaggio di test', 'theme' => 'Tema', @@ -1251,18 +1270,18 @@ Cartella: [folder_path] Utente: [username] URL: [url]', 'transition_triggered_email_subject' => 'Transizione del flusso di lavoro iniziata', -'transmittal' => '', -'transmittalitem_removed' => '', -'transmittalitem_updated' => '', -'transmittal_comment' => '', -'transmittal_name' => '', -'transmittal_size' => '', +'transmittal' => 'Trasmissione', +'transmittalitem_removed' => 'Oggetto trasmissione rimosso', +'transmittalitem_updated' => 'Documento aggiornato alla ultima versione', +'transmittal_comment' => 'Commento', +'transmittal_name' => 'Nome', +'transmittal_size' => 'Dimensione', 'trigger_workflow' => 'Flusso di lavoro', 'tr_TR' => 'Turco', 'tuesday' => 'Martedì', 'tuesday_abbr' => 'Mar', 'type_to_search' => 'Digitare per cercare', -'uk_UA' => '', +'uk_UA' => 'Ucraino', 'under_folder' => 'Nella cartella', 'unknown_attrdef' => 'Attributo sconosciuto', 'unknown_command' => 'Comando non riconosciuto', @@ -1285,10 +1304,10 @@ URL: [url]', 'update_fulltext_index' => 'Aggiorna indice fulltext', 'update_info' => 'Aggiorna informazioni', 'update_locked_msg' => 'Questo documento è bloccato.', -'update_recipients' => '', +'update_recipients' => 'Aggiorna lista cartelle', 'update_reviewers' => 'Aggiorna lista revisori', -'update_revisors' => '', -'update_transmittalitem' => '', +'update_revisors' => 'Aggiorna lista dei revisori', +'update_transmittalitem' => 'Aggiorna alla ultima versione del documento', 'uploaded_by' => 'Caricato da', 'uploading_failed' => 'Upload fallito. Controllare la dimensione massima caricabile consentita.', 'uploading_maxsize' => 'Il file caricato supera la dimensione massima consentita.', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc new file mode 100644 index 000000000..d61b320e2 --- /dev/null +++ b/languages/ko_KR/lang.inc @@ -0,0 +1,1365 @@ + '동의', +'access_denied' => '접근가 거부되었습니다.', +'access_inheritance' => '접근 상속', +'access_mode' => '접근 모드', +'access_mode_all' => '모든 권한', +'access_mode_none' => '접속 금지', +'access_mode_read' => '읽기 권한', +'access_mode_readwrite' => '읽기 - 쓰기 권한', +'access_permission_changed_email' => '권한 변경', +'access_permission_changed_email_body' => '권한 변경 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'access_permission_changed_email_subject' => '[sitename ]: [name] - 권한 변경', +'according_settings' => '설정 하기', +'action' => '액션', +'actions' => '작업', +'action_approve' => '승인', +'action_complete' => '완료', +'action_is_complete' => '완료', +'action_is_not_complete' => '완료되지 않은', +'action_reject' => '거부', +'action_review' => '검토', +'action_revise' => '수정', +'add' => '추가', +'add_approval' => '승인 추가', +'add_document' => '문서 추가', +'add_document_link' => '링크 추가', +'add_document_notify' => '알림 추가', +'add_doc_reviewer_approver_warning' => '주의: 검토자나 승인자가 할당되지 않은 경우 관련문서는 자동으로 출시됨으로 표시됩니다.', +'add_doc_workflow_warning' => '주의: 워크플로어가 할당되지 않은 문서는 자동으로 출시됨으로 표시됩니다.', +'add_event' => '이벤트 추가', +'add_group' => '그룹 추가', +'add_member' => '멤버 추가', +'add_multiple_documents' => '여러 문서 추가', +'add_multiple_files' => '여러 파일 추가 (파일명을 문서명으로 사용합니다)', +'add_receipt' => '접수', +'add_review' => '평가 추가', +'add_revision' => '승인 추가', +'add_subfolder' => '서브 폴더 추가', +'add_to_clipboard' => '클립 보드에 추가', +'add_to_transmittal' => '전송', +'add_transmittal' => '전송', +'add_user' => '새 사용자 추가', +'add_user_to_group' => '그룹 사용자 추가', +'add_workflow' => '새 워크플로우 추가', +'add_workflow_action' => '새 워크플로우 작업 추가', +'add_workflow_state' => '새 워크플로우 상태 추가', +'admin' => '관리자', +'admin_tools' => '관리 도구', +'all' => '모두', +'all_categories' => '모든 카테고리', +'all_documents' => '모든 문서', +'all_pages' => '모두', +'all_users' => '모든 사용자', +'already_subscribed' => '가입된', +'and' => '와', +'apply' => '적용', +'approval_deletion_email' => '승인 요청 삭제', +'approval_deletion_email_body' => '승인 요청 삭제 +문서: [name] +버전: [version] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'approval_deletion_email_subject' => '[sitename]: [name] - 삭제된 승인 요청', +'approval_file' => '파일', +'approval_group' => '승인 그룹', +'approval_log' => '승인 로그', +'approval_request_email' => '승인 요청', +'approval_request_email_body' => '승인 요청 +문서: [name] +버전: [version] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'approval_request_email_subject' => '[sitename] : [name ] - 승인 요청', +'approval_status' => '승인 상태', +'approval_submit_email' => '제출 승인', +'approval_submit_email_body' => '문서 승인 +문서: [name] +버전: [version] +상위폴더: [folder_path] +상태: [status] +코맨트: [comment] +사용자: [username] +URL: [url]', +'approval_submit_email_subject' => '[sitename]: [name] - 제출 승인', +'approval_summary' => '승인 개요', +'approval_update_failed' => '승인 상태를 업데이트 중 오류가 발생. 업데이트 실패.', +'approvers' => '승인자', +'approver_already_assigned' => '사용자는 이미 승인자로 할당되어 있습니다.', +'approver_already_removed' => '승인자가 이미 프로세스에서 삭제 되었거나 승인을 제출 했습니다.', +'april' => '4월', +'archive_creation' => '백업 파일 생성', +'archive_creation_warning' => '본 작업은 전체 DMS 폴더 내의 파일 모두에 아카이브를 만듭니다. 생성한 아카이브는 서버의 데이터 폴더에 저장됩니다.
경고 : 이렇게 만들어진 자료는 서버의 백업과 같이 가독성이 저하 됩니다.', +'ar_EG' => '아랍어', +'assign_approvers' => '승인자 지정', +'assign_reviewers' => '검토자 지정', +'assign_user_property_to' => '사용자 속성에 할당', +'assumed_released' => '가정한 출시', +'attrdef_exists' => '이미 존재하는 속성', +'attrdef_in_use' => '사용중인 속성 정의', +'attrdef_management' => '속성 관리', +'attrdef_maxvalues' => '최대수', +'attrdef_minvalues' => '최소수', +'attrdef_min_greater_max' => '최소값은 최대 값 보다 큽니다', +'attrdef_multiple' => '여러 값 허용', +'attrdef_must_be_multiple' => '속성은 하나 이상의 값을 가져야하지만, 여러 값을 설정하지 않습니다.', +'attrdef_name' => '이름', +'attrdef_noname' => '속성 정의명이 없습', +'attrdef_objtype' => '개체 유형', +'attrdef_regex' => '정규 표현식', +'attrdef_type' => '유형', +'attrdef_type_boolean' => 'Boolean', +'attrdef_type_email' => '이메일', +'attrdef_type_float' => 'Float', +'attrdef_type_int' => '정수', +'attrdef_type_string' => '문자열', +'attrdef_type_url' => 'URL', +'attrdef_valueset' => '값 설정', +'attributes' => '속성', +'attribute_changed_email_body' => '속성 변경 +문서: [name] +버전: [version] +속성: [attribute] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'attribute_changed_email_subject' => '[sitename] : [name] - 속성이 변경', +'attribute_count' => '사용자수', +'attribute_value' => '속성', +'attr_malformed_email' => '속성값 \'[value]\' \'[attrname]\'은(는) 유효한 URL이 아닙니다.', +'attr_malformed_url' => '속성값 \'[value]\' \'[attrname]\'은(는) 유효한 URL이 아닙니다.', +'attr_max_values' => '속성[attrname]값이 필요한 최대수에 도달하지 못했습니다.', +'attr_min_values' => '속성[attrname]값이 필요한 최소수에 도달하지 못했습니다.', +'attr_no_regex_match' => '속성값이 정규 표현식과 불일치 +속성값 \'[value]\' \'[attrname]\'은(는) 정규 표현에 일치 하지 않는 \'[regex]\'', +'at_least_n_users_of_group' => 'At least [number_of_users] users of [group] +적어도 [number_of_users]의 사용자 [group]', +'august' => '8월', +'authentication' => '인증', +'author' => '저자', +'automatic_status_update' => '자동 상태 변경', +'back' => '뒤로 가기', +'backup_list' => '백업 목록', +'backup_log_management' => '백업/로깅', +'backup_remove' => '백업 파일 제거', +'backup_tools' => '백업 도구', +'between' => '사이', +'bg_BG' => '불가리아', +'browse' => '검색', +'calendar' => '달력', +'calendar_week' => '주', +'cancel' => '취소', +'cannot_assign_invalid_state' => '사용되지 않거나 거부된 문서는 수정 불가', +'cannot_change_final_states' => '경고 : 거부, 만료 또는 검토나 승인보류 중인 문서의 상태는 변경할 수 없습니다.', +'cannot_delete_user' => '사용자를 삭제할 수 없습니다', +'cannot_delete_yourself' => '자신을 삭제할 수 없습니다', +'cannot_move_root' => '오류: 루트 폴더를 이동할 수 없습니다', +'cannot_retrieve_approval_snapshot' => '이 문서의 버전에 대한 승인 상태의 스냅 샷을 확인 할 수 없습니다', +'cannot_retrieve_review_snapshot' => '이 문서의 버전에 대한 검토 상태의 스냅 샷을 확인 할 수 없습니다.', +'cannot_rm_root' => '오류 : 루트 폴더를 삭제할 수 없습니다.', +'categories' => '카테고리', +'category' => '카테고리', +'category_exists' => '카테고리가 이미 존재합니다.', +'category_filter' => '카테고리', +'category_in_use' => '이 카테고리는 현재 문서에서 사용합니다.', +'category_noname' => '주어진 카테고리명이 없음.', +'ca_ES' => '카탈로니아어', +'change_assignments' => '변경 할당', +'change_password' => '비밀번호 변경', +'change_password_message' => '비밀번호가 변경되었습니다.', +'change_recipients' => '수신자 목록 변경', +'change_revisors' => '변경후 다시 제출', +'change_status' => '상태 변경', +'charts' => '차트', +'chart_docsaccumulated_title' => '문서수', +'chart_docspercategory_title' => '카테고리 별 문서', +'chart_docspermimetype_title' => 'MIME 형태별 문서', +'chart_docspermonth_title' => '한달간의 새문서', +'chart_docsperstatus_title' => '상태별 문서', +'chart_docsperuser_title' => '사용자별 문서', +'chart_selection' => '차트 선택', +'chart_sizeperuser_title' => '사용자별 디스크 사용량', +'checkedout_file_has_different_version' => '확인된 버전은 현재 버전과 동일하지 않습니다. 문서를 업데이트하지 않습니다.', +'checkedout_file_has_disappeared' => '요청한 문서파일이 사라져 버렸습니다. 확인이 불가능 합니다.', +'checkedout_file_is_unchanged' => '요청한 문서가 아직 변경전 상태입니다. 변경을 원하지 않는 경우 재설정 할 수 있습니다.', +'checkin_document' => '체크인', +'checkout_document' => '체크아웃', +'checkout_is_disabled' => '체크아웃된 문서는 설정에서 비활성화됩니다.', +'choose_attrdef' => '속성의 정의를 선택하세요', +'choose_category' => '선택하세요', +'choose_group' => '그룹을 선택', +'choose_target_category' => '카테고리 선택', +'choose_target_document' => '문서 선택', +'choose_target_file' => '파일 선택', +'choose_target_folder' => '폴더 선택', +'choose_user' => '사용자 선택', +'choose_workflow' => '워크플로우 선택', +'choose_workflow_action' => '워크플로우 작업 선택', +'choose_workflow_state' => '워크플로우 상태 선택', +'clear_clipboard' => '클립 보드 제거', +'clipboard' => '클립보드', +'close' => '닫기', +'comment' => '코멘트', +'comment_changed_email' => '', +'comment_for_current_version' => '코맨트', +'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시 만들고 싶습니다!', +'confirm_pwd' => '비밀번호 확인', +'confirm_rm_backup' => '파일 "[arkname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_document' => '문서 "[documentname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_dump' => '파일 "[dumpname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_event' => '이밴트 "[name]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_file' => '파일 "[name]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_folder' => '폴더 "[foldername]"와 관련 컨텐츠를 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_folder_files' => '폴더 "[foldername]"내의 모든 파일을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_group' => '그룹 "[groupname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_log' => '로그파일 "[logname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_transmittalitem' => '제거 확인', +'confirm_rm_user' => '사용자 "[username]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_version' => '문서 "[documentname]"의 버젼 [version]을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_update_transmittalitem' => '업데이트 확인', +'content' => '콘텐츠', +'continue' => '계속', +'converter_new_cmd' => '명령', +'converter_new_mimetype' => '새 MIME 형태', +'copied_to_checkout_as' => '체크아웃으로 파일(\'[filename]\')이 파일 복사됨', +'create_fulltext_index' => '전체 텍스트 인덱스 만들기', +'create_fulltext_index_warning' => '전체 자료의 텍스트 인덱스를 다시 만들 수 있습니다. 이것은 상당한 시간을 요구하며 진행되는 동안 시스템 성능을 감소시킬 수 있습니다. 인덱스를 재 생성하려면, 확인하시기 바랍니다.', +'creation_date' => '생성', +'cs_CZ' => '체코어', +'current_password' => '현재 비밀번호', +'current_quota' => '시스템 전체 할당량 [quota]을 설정합니다.', +'current_state' => '현재 상태', +'current_version' => '현재 버전', +'daily' => '매일', +'databasesearch' => '데이터베이스 검색', +'date' => '날짜', +'days' => '일', +'december' => '12월', +'default_access' => '기본 접근 모드', +'default_keywords' => '사용 가능한 키워드', +'definitions' => '정의', +'delete' => '삭제', +'details' => '세부사항', +'details_version' => '버전에 대한 상세 사항 : [version]', +'de_DE' => '독일어', +'disclaimer' => '본 사이트는 접근이 허가된 자에게만 사용이 허용된 곳 입니다. 허가받지 않은 접근이나 불법행위는 국내 및 국제법에 따라 기소 될 것입니다.', +'discspace' => '디스크 공간', +'document' => '문서', +'documents' => '문서', +'documents_checked_out_by_you' => '당신으로 부터 문서가 체크아웃 되었습니다.', +'documents_in_process' => '진행중인 문서', +'documents_locked_by_you' => '당신에 의해 잠긴 문서', +'documents_only' => '문서', +'documents_to_approve' => '당신의 승인을 기다리는 문서들', +'documents_to_receipt' => '당신의 접수확인을 기다리는 문서들', +'documents_to_review' => '당신의 검토를 기다리는 문서', +'documents_to_revise' => '문서 정정', +'documents_user_rejected' => '거부된 문서', +'documents_user_requiring_attention' => '주의가 필요한 당신 소유의 문서', +'document_already_checkedout' => '이문서는 이미 체크아웃 되었습니다', +'document_already_locked' => '이미 잠겨진 문서', +'document_comment_changed_email' => '코멘트가 변경됨', +'document_comment_changed_email_body' => '변경된 코멘트 +문서: [name] +이전 코멘트: [old_comment] +코멘트: [new_comment] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'document_comment_changed_email_subject' => '[sitename] : [name] - 코멘트 변경', +'document_deleted' => '삭제된 문서', +'document_deleted_email' => '삭제된 문서', +'document_deleted_email_body' => '삭제된 문서 +문서: [name] +상위폴더: [folder_path] +사용자: [username]', +'document_deleted_email_subject' => '[sitename]:[name] - 삭제된 문서', +'document_duplicate_name' => '중복 문서 이름', +'document_has_no_workflow' => '문서에 워크플로우가 없습니다', +'document_infos' => '문서 정보', +'document_is_checked_out' => '문서가 현재 체크아웃 되어 있습니다. 새 버전을 업로드하면 체크아웃된 버전은 더 이상 확인 할 수 없습니다.', +'document_is_not_locked' => '잠겨 있지 않은 문서', +'document_link_by' => '연결', +'document_link_public' => '공개', +'document_moved_email' => '이동된 문서', +'document_moved_email_body' => '이동된 문서 +문서: [name] +이전 폴더: [old_folder_path] +새코멘트: [new_folder_path] +사용자: [username] +URL: [url]', +'document_moved_email_subject' => '[sitename] : [name] - 이동된 문서', +'document_not_checkedout' => '문서가 체크아웃되지 않았습니다.', +'document_renamed_email' => '변경된 문서명', +'document_renamed_email_body' => '변경된 문서명 +문서: [name] +상위폴더: [folder_path] +이전 문서명: [old_name] +사용자: [username] +URL: [url]', +'document_renamed_email_subject' => '[sitename] : [name] - 변경된 문서명', +'document_status_changed_email' => '문서 상태가 변경', +'document_status_changed_email_body' => '문서 상태 변경 +문서: [name] +상태 [status] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'document_status_changed_email_subject' => '[sitename] : [name] - 문서 상태가 변경', +'document_title' => '문서\'[documentname]\'', +'document_updated_email' => '문서 업데이트', +'document_updated_email_body' => '문서 업데이트 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'document_updated_email_subject' => '[name]:[sitename] - 업데이트 된 문서', +'does_not_expire' => '만료되지 않습니다', +'does_not_inherit_access_msg' => '액세스 상속', +'download' => '다운로드', +'do_object_repair' => '모든 폴더와 문서를 복구', +'do_object_setchecksum' => '오류 검사', +'do_object_setfilesize' => '파일 크기 설정', +'do_object_unlink' => '문서 버전 삭제', +'draft' => '기본값', +'draft_pending_approval' => '초안 - 보류 승인', +'draft_pending_review' => '초안 - 검토 대기', +'drag_icon_here' => '여기에 폴더 나 문서의 아이콘을 끌어!', +'dropfolder_file' => '드롭 폴더 파일', +'dropupload' => '빠른 업로드', +'drop_files_here' => '이곳에 파일을 올려놓으세요!', +'dump_creation' => 'DB 덤프 생성', +'dump_creation_warning' => '이 작업으로 만들 수있는 데이터베이스 내용의 덤프 파일. 작성 후 덤프 파일은 서버의 데이터 폴더에 저장됩니다.', +'dump_list' => '덤프된 파일', +'dump_remove' => '덤프 파일 제거', +'duplicate_content' => '중복 내용', +'edit' => '편집', +'edit_attributes' => '속성 편집', +'edit_comment' => '코맨트 편집', +'edit_default_keywords' => '키워드 수정', +'edit_document_access' => '액세스 편집', +'edit_document_notify' => '문서 알림 목록', +'edit_document_props' => '문서 편집', +'edit_event' => '편집 이벤트', +'edit_existing_access' => '편집 액세스 목록', +'edit_existing_notify' => '편집 알림 리스트', +'edit_folder_access' => '액세스 편집', +'edit_folder_notify' => '폴더 알림 목록', +'edit_folder_props' => '폴더 편집', +'edit_group' => '편집 그룹', +'edit_transmittal_props' => '전송 속성 편집', +'edit_user' => '사용자 편집', +'edit_user_details' => '사용자 세부 사항 편집', +'email' => '이메일', +'email_error_title' => '이메일 입력', +'email_footer' => '내 계정\'을 사용하여 전자 메일 설정을 변경 할 수 있습니다', +'email_header' => 'DMS 서버에서 자동 생성된 메시지 입니다.', +'email_not_given' => '유효한 이메일 주소를 입력하십시오.', +'empty_folder_list' => '문서 또는 폴더 입력', +'empty_notify_list' => '항목을 입력하세요', +'en_GB' => '영어 (GB)', +'equal_transition_states' => '시작 및 종료가 동일한 상태', +'error' => '오류', +'error_no_document_selected' => '선택되지 문서는', +'error_no_folder_selected' => '어떤 폴더를 선택하지', +'error_occured' => '오류가 발생했습니다', +'es_ES' => '스페인어', +'event_details' => '이벤트의 자세한 사항', +'expired' => '만료', +'expires' => '만료', +'expiry_changed_email' => '유효 기간 변경', +'expiry_changed_email_body' => '유효 기간이 변경 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경', +'export' => '내보내기', +'extension_manager' => '확장자 관리', +'february' => '2월', +'file' => '파일', +'files' => '파일', +'files_deletion' => '파일 삭제', +'files_deletion_warning' => '이 옵션을 사용하면 전체 DMS 폴더의 모든 파일을 삭제할 수 있습니다. 버전 정보가 표시로 남을 것 입니다 files파일', +'file_size' => '파일 크기', +'filter_for_documents' => '문서에 대한 추가 필터', +'filter_for_folders' => '폴더에 대한 추가 필터', +'folder' => '폴더', +'folders' => '폴더', +'folders_and_documents_statistic' => '개요 내용', +'folder_comment_changed_email' => '코멘트가 변경', +'folder_comment_changed_email_body' => '코멘트 변경 +폴더: [name] +이전 코멘트: [old_comment] +코멘트: [new_comment] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'folder_comment_changed_email_subject' => '[sitename] : [folder] - 코멘트가 변경', +'folder_contents' => '폴더 내용', +'folder_deleted_email' => '폴더 삭제', +'folder_deleted_email_body' => '폴더 삭제 +폴더: [name] +상위 폴더: [folder_path] +사용자 [username] +URL : [url]', +'folder_deleted_email_subject' => '[sitename] : [name] - 폴더 삭제', +'folder_infos' => '폴더 정보', +'folder_moved_email' => '폴더 이동', +'folder_moved_email_body' => '폴더 이동 +폴더: [name] +이전 폴더: [old_folder_path] +새 폴더: [new_folder_path] +사용자: [username] +URL : [url]', +'folder_moved_email_subject' => '[sitename] : [name] - 폴더 이동', +'folder_renamed_email' => '폴더 이름', +'folder_renamed_email_body' => '폴더명 변경 +폴더: [name] +상위 폴더: [folder_path] +이전 이름: [old_name +사용자: [username] +URL: [url]', +'folder_renamed_email_subject' => '[sitename] : [name] - 폴더 이름', +'folder_title' => '폴더 \'[foldername]\'', +'friday' => '금요일', +'friday_abbr' => '금', +'from' => '시작일', +'fr_FR' => '프랑스어', +'fullsearch' => '전체 텍스트 검색', +'fullsearch_hint' => '전체 텍스트 색인 사용', +'fulltext_info' => '전체 텍스트 색인 정보', +'global_attributedefinitions' => '속성', +'global_default_keywords' => '글로벌 키워드', +'global_document_categories' => '카테고리', +'global_workflows' => '워크플로우', +'global_workflow_actions' => '작업 워크플로우', +'global_workflow_states' => '워크플로우 상태', +'group' => '그룹', +'groups' => '그룹', +'group_approval_summary' => '그룹의 승인 요약', +'group_exists' => '그룹이 이미 존재합니다.', +'group_management' => '그룹 관리', +'group_members' => '카페 회원', +'group_receipt_summary' => '', +'group_review_summary' => '그룹 검토 요약', +'guest_login' => '게스트로 로그인', +'guest_login_disabled' => '고객 로그인을 사용할 수 없습니다.', +'help' => '도움말', +'home_folder' => '홈 폴더', +'hourly' => '시간별', +'hours' => '시간', +'hr_HR' => '크로아티아어', +'human_readable' => '가독력', +'hu_HU' => '헝가리어', +'id' => 'ID', +'identical_version' => '새 버전은 최신 버전으로 동일하다.', +'include_content' => '내용을 포함', +'include_documents' => '문서 포함', +'include_subdirectories' => '서브 디렉토리를 포함', +'index_converters' => '인덱스 문서 변환', +'index_folder' => '인덱스 폴더', +'individuals' => '개인', +'inherited' => '상속', +'inherits_access_copy_msg' => '상속 액세스 목록 복사', +'inherits_access_empty_msg' => '빈 액세스 목록으로 시작', +'inherits_access_msg' => '액세스가 상속됩니다.', +'internal_error' => '내부 오류', +'internal_error_exit' => '내부 오류가 발생했습니다. 요청을 완료 할 수 없습니다. .', +'invalid_access_mode' => '잘못된 액세스 모드', +'invalid_action' => '잘못된 행동', +'invalid_approval_status' => '잘못된 승인 상태', +'invalid_create_date_end' => '작성 날짜 범위에 대한 잘못된 종료 날짜.', +'invalid_create_date_start' => '작성 날짜 범위에 대한 잘못된 시작 날짜.', +'invalid_doc_id' => '잘못된 문서 ID', +'invalid_file_id' => '잘못된 파일 ID', +'invalid_folder_id' => '잘못된 폴더 ID', +'invalid_group_id' => '잘못된 그룹 ID', +'invalid_link_id' => '잘못된 링크 식별자', +'invalid_request_token' => '잘못된 요청 토큰', +'invalid_review_status' => '잘못된 검토 상태', +'invalid_sequence' => '잘못된 시퀀스 값', +'invalid_status' => '잘못된 문서 상태가', +'invalid_target_doc_id' => '잘못된 대상 문서 ID', +'invalid_target_folder' => '잘못된 대상 폴더 ID', +'invalid_user_id' => '잘못된 사용자 ID', +'invalid_version' => '잘못된 문서 버전', +'in_revision' => '개정에서', +'in_workflow' => '워크플로우내', +'is_disabled' => '계정 사용 안 함', +'is_hidden' => '숨긴 사용자 목록', +'it_IT' => '이탈리아어', +'january' => '1월', +'js_no_approval_group' => '승인 그룹을 선택하세요', +'js_no_approval_status' => '승인 상태를 선택하세요', +'js_no_comment' => '코멘트가 없습니다', +'js_no_email' => '당신의 이메일 주소를 입력', +'js_no_file' => '파일을 선택하세요', +'js_no_keywords' => '몇 가지 키워드를 지정', +'js_no_login' => '사용자 이름을 입력하세요', +'js_no_name' => '이름을 입력하세요', +'js_no_override_status' => '새 [override] 상태를 선택하세요', +'js_no_pwd' => '당신은 당신의 비밀번호를 입력해야합니다', +'js_no_query' => '쿼리 입력', +'js_no_review_group' => '리뷰 그룹을 선택하세요', +'js_no_review_status' => '검토 상태를 선택하세요', +'js_pwd_not_conf' => '비밀번호 및 비밀번호-확인이 동일하지', +'js_select_user' => '사용자 선택하세요', +'js_select_user_or_group' => '적어도 사용자 또는 그룹을 선택', +'july' => '7월', +'june' => '6월', +'keep' => '변경하지 마시오', +'keep_doc_status' => '문서 상태 유지', +'keywords' => '키워드', +'keyword_exists' => '키워드가 이미 존재', +'ko_KR' => '한국어', +'language' => '언어', +'lastaccess' => '마지막 액세스', +'last_update' => '마지막 업데이트', +'legend' => '전설', +'librarydoc' => '라이브러리의 문서', +'linked_documents' => '관련 문서', +'linked_files' => '첨부 파일', +'link_alt_updatedocument' => '최대 업로드 크기보다 큰 파일을 업로드하려는 경우, 대체 업로드 페이지를 upload page 사용하십시오.', +'local_file' => '로컬 파일', +'locked_by' => '잠금', +'lock_document' => '잠금', +'lock_message' => '이 문서는 [username].에 의해 잠겨 있습니다. 허가 된 사용자 만이 문서를 잠금을 해제 할 수 있습니다.', +'lock_status' => '상태', +'login' => '로그인', +'login_disabled_text' => '귀정 이상 로그인 실패로 당신의 계정을사용할 수 없습니다.', +'login_disabled_title' => '계정 비활성화', +'login_error_text' => '로그인 오류. 잘못된 사용자 ID 또는 비밀번호.', +'login_error_title' => '로그인 오류', +'login_not_given' => '사용자 이름이 없습니다', +'login_ok' => '성공적인 로그인', +'logout' => '로그 아웃', +'log_management' => '파일 관리 로그', +'manager' => '관리자', +'manager_of_group' => '당신은 이 그룹의 관리자 입니다.', +'mandatory_approvergroups' => '필수 승인 그룹', +'mandatory_approvergroup_no_access' => '필수그룹 \'[group]\' 승인자로서 충분한 권한을 가지고 있지 않습니다.', +'mandatory_approvers' => '필수 승인자', +'mandatory_approver_no_access' => '필수 승인자\'[user]\'가 충분한 권한을 가지고 있지 않습니다.', +'mandatory_reviewergroups' => '필수 그룹 검수자', +'mandatory_reviewergroup_no_access' => '필수 그룹 \'[group]\' 검수자로서 충분한 권한을 가지고 있지 않습니다.', +'mandatory_reviewers' => '필수 검토자', +'mandatory_reviewer_no_access' => '필수 검수자\'[user]\'가 충분한 권한을 가지고 있지 않습니다.', +'march' => '3월', +'max_upload_size' => '최대 업로드 크기', +'may' => '월', +'mimetype' => '마임 유형', +'minutes' => '분', +'misc' => '기타', +'missing_checksum' => '검사 누락', +'missing_filesize' => '누락 된 파일 크기', +'missing_transition_user_group' => '변화에 대한 사용자 / 그룹을 누락', +'monday' => '월요일', +'monday_abbr' => '월', +'monthly' => '월간', +'month_view' => '월간 단위로 보기', +'move' => '이동', +'move_clipboard' => '이동 클립 보드', +'move_document' => '문서 이동', +'move_folder' => '폴더 이동', +'my_account' => '내 계정', +'my_documents' => '내 문서', +'my_transmittals' => '내 송부', +'name' => '이름', +'needs_workflow_action' => '이 문서는 당신의주의가 필요합니다. 워크플로우 탭을 확인하시기 바랍니다.', +'never' => '불가', +'new' => '새', +'new_attrdef' => '속성 정의 추가', +'new_default_keywords' => '키워드 추가', +'new_default_keyword_category' => '카테고리 추가', +'new_document_category' => '카테고리 추가', +'new_document_email' => '새 문서', +'new_document_email_body' => '새 문서 +이름: [name] +상위 폴더: [folder_path] +코멘트: [comment] +버전 주석: [version_comment] +사용자: [username] +URL: [url]', +'new_document_email_subject' => '[sitename] : [folder_name] - 새 문서', +'new_file_email' => '새 첨부 파일', +'new_file_email_body' => '새 첨부 파일 +이름: [name] +문서: [document] +코멘트: [comment] +사용자: [username] +URL: [url]', +'new_file_email_subject' => '[sitename] : [document] - 새 첨부 파일', +'new_folder' => '새 폴더', +'new_password' => '새 비밀번호', +'new_subfolder_email' => '새 폴더', +'new_subfolder_email_body' => '새 폴더 +이름: [name] +상위 폴더: [folder_path] +코멘트: [comment] +사용자: [username] +URL [url]', +'new_subfolder_email_subject' => '[sitename] : [name] - 새 폴더', +'new_user_image' => '새로운 이미지', +'next_state' => '새 상태', +'nl_NL' => '네덜란드', +'no' => '아니오', +'notify_added_email' => '알림 목록에 추가 했습니다', +'notify_added_email_body' => '알림 목록에 추가 +이름: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'notify_added_email_subject' => '[sitename] : [name] - 알림 목록에 추가', +'notify_deleted_email' => '목록을 알림에서 제거했습니다', +'notify_deleted_email_body' => '알림 목록에서 제거 +이름: [name] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', +'notify_deleted_email_subject' => '[sitename] : [name] - 알림 목록에서 제거', +'november' => '11월', +'now' => '지금', +'no_action' => '조치가 필요하지 않습니다', +'no_approval_needed' => '승인을 보류하지 않습니다', +'no_attached_files' => '첨부 파일 없음', +'no_current_version' => '당신은 이전 버전의 SeedDMS를 사용하고 있습니다. 사용 가능한 최신 버전은 [latestversion] 입니다.', +'no_default_keywords' => '사용 가능한 키워드가 존재하지 않습니다.', +'no_docs_checked_out' => '체크아웃 문서가 없습니다.', +'no_docs_locked' => '잠긴 문서가 없습니다.', +'no_docs_to_approve' => '승인이 필요한 문서가 현재 없습니다.', +'no_docs_to_look_at' => '.주의가 필요한 문서가 현재 없습니다', +'no_docs_to_receipt' => '문서 접수가 필요하지 않습니다', +'no_docs_to_review' => '검토를 필요한 문서가 현재 없습니다.', +'no_docs_to_revise' => '개정이 필요한 문서가 아직 없습니다.', +'no_email_or_login' => '로그인명과 이메일은 필수 입니다.', +'no_fulltextindex' => '전체 텍스트 색인이 필요한 문서가 현재 없습니다.', +'no_groups' => '그룹이 없음', +'no_group_members' => '그룹 회원 이 없습니다.', +'no_linked_files' => '링크되지 않은 파일', +'no_previous_versions' => '다른 버전을 찾을 수 없습니다', +'no_receipt_needed' => '', +'no_review_needed' => '검토중인 자료가 없습니다.', +'no_revision_needed' => '보류된 개정은 없습니다.', +'no_revision_planed' => '문서의 개정 예약이 없습니다.', +'no_update_cause_locked' => '이 문서를 업데이트 할 수 없습니다. 문서를 잠근 사용자 문의하시기 바랍니다..', +'no_user_image' => '이미지를 찾을 수 없습니다', +'no_version_check' => 'SeedDMS의 새 버전 확인을 실패 했습니다! 이것은 PHP 설정에서 allow_url_fopen 값이 0으로 설정 되면 발생할 수 있습니다.', +'no_workflow_available' => '', +'objectcheck' => '폴더 / 문서 확인', +'obsolete' => '폐기', +'october' => '10월', +'old' => '이전', +'only_jpg_user_images' => '.JPG - 이미지만 사용자가 이미지로 사용할 수 있습니다', +'order_by_sequence_off' => '순서에 의한 정렬 설정이 켜져 있습니다. 이 매개 변수를 사용하고 싶은 경우 이것을 활성화 해야 합니다.', +'original_filename' => '원래본 파일명', +'owner' => '소유자', +'ownership_changed_email' => '소유자 변경', +'ownership_changed_email_body' => '소유자 변경 +문서: [name] +상위 폴더: [folder_path] +이전 소유자: [old_owner] +새 사용자 : [new_owner] +사용자 : [username] +URL : [url]', +'ownership_changed_email_subject' => '[sitename] : [name] - 소유자 변경', +'password' => '비밀번호', +'password_already_used' => '이미 사용중인 비밀번호', +'password_expiration' => '비밀번호 사용 만료', +'password_expiration_text' => '비밀번호가 만료되었습니다. 당신이 SeedDMS를 사용하여 진행하기 전에 새로운 비밀번호를 사용하세요.', +'password_expired' => '만료된 비밀번호', +'password_expires_in_days' => '비밀번호는 %s 일에 만료됩니다.', +'password_forgotten' => '비밀번호 분실', +'password_forgotten_email_body' => '친애하는 SeedDMS사용자에게, n n 우리는 비밀번호를 변경하도록 요청을 받았습니다. n n이는 다음 링크를 클릭하여 수행 할 수 있습니다 :nn###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH###nn만약 여전히 로그인에 문제가 생기면 관리자에게 문의하십시오.', +'password_forgotten_email_subject' => '비밀번호 분실', +'password_forgotten_send_hash' => '사용자의 이메일 주소로 전송 진행 방법에 대한 지침', +'password_forgotten_text' => '아래의 양식을 작성하시고 당신에게 보낼 이메일에 있는 지시 사항을 따르십시오.', +'password_forgotten_title' => '비밀번호 전송', +'password_repeat' => '비밀번호 반복 확인', +'password_send' => '비밀번호 전송', +'password_send_text' => '로그인 및 이메일이 기존 사용자와 일치하는 경우 새 암호가 지정된 이메일 주소로 전송됩니다. 당신이 잠시후 이메일을 수신하지 못했으면 반드시 로그인 및 이메일 모두가 올바른지 확인하고 프로세스를 다시 시작 하세요.', +'password_strength' => '강력한 비밀번호', +'password_strength_insuffient' => '부족한 비밀번호 강도', +'password_wrong' => '잘못된 비밀번호', +'personal_default_keywords' => '개인 키워드 목록', +'pl_PL' => '폴란드어', +'possible_substitutes' => '대체', +'preview_converters' => '문서 변환 미리보기', +'previous_state' => '이전 상태', +'previous_versions' => '이전 버전', +'pt_BR' => '포르투갈어 (BR)', +'quota' => '할당량', +'quota_exceeded' => '당신은 디스크 할당량 [bytes]을 초과한다.', +'quota_is_disabled' => '할당량 지원이 설정에서 비활성화되어 있습니다. 다시 활성화 될 때까지 사용자의 할당량 설정은 적용되지 않습니다.', +'quota_warning' => '당신의 최대 디스크 사용량 [bytes] 초과됩니다. 문서 또는 이전 버전을 제거하십시오.', +'receipt_log' => '로그 수신', +'receipt_summary' => '접수증 요약', +'recipients' => '받는 사람', +'refresh' => '새로 고침', +'rejected' => '거부', +'released' => '발표', +'removed_approver' => '승인 목록에서 제거', +'removed_file_email' => '제거 된 첨부 파일', +'removed_file_email_body' => '삭제된 첨부 파일 +문서: [document] +사용자: [username] +URL : [url]', +'removed_file_email_subject' => '[sitename] : [document] - 제거 된 첨부 파일', +'removed_recipient' => '수신자 목록에서 제거되었습니다.', +'removed_reviewer' => '검토 자 목록에서 제거 되었습니다', +'removed_revispr' => '수정 목록에서 제거되었습니다.', +'removed_workflow_email_body' => '문서 버전에서 워크플로우 삭제 +문서: [name] +버전: [version] +워크플로우: [workflow] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우', +'remove_marked_files' => '마크 파일을 제거', +'repaired' => '복구', +'repairing_objects' => '문서 및 폴더 복구', +'request_workflow_action_email_body' => '워크플로우는 당신의 작업을 필요로 하는 상태에 도달했습니다. +문서: [name] +버전: [version] +워크플로우: [workflow] +현재상태: [current_state] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'request_workflow_action_email_subject' => '워크플로우 작업 필요', +'reset_checkout' => '체크아웃 마감', +'results_page' => '결과 페이지', +'return_from_subworkflow' => '서브 워크플로우에서 반환', +'return_from_subworkflow_email_body' => '서브 워크플로우에서 복귀 +문서: [name] +버전: [version] +워크플로우: [workflow] +서브 워크플로우: [subworkflow] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'return_from_subworkflow_email_subject' => '[sitename] : [name] - 서브 워크플로우에서 반환', +'reverse_links' => '현재 문서에 대한 링크를 가지고있는 문서', +'reviewers' => '검토', +'reviewer_already_assigned' => '이미 검토 지정됩', +'reviewer_already_removed' => '이미 검토 과정에서 제거되었거나 리뷰로 제출', +'review_deletion_email' => '검토 요청 삭제', +'review_deletion_email_body' => '검토 요청 삭제 +문서: [name] +버전: [version] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'review_deletion_email_subject' => '[sitename]: [name] - 삭제 된 리뷰 요청', +'review_file' => '파일', +'review_group' => '그룹 검토', +'review_log' => '리뷰 로그', +'review_request_email' => '요청 검토', +'review_request_email_body' => '검토 요청 +문서: [name] +버전: [version] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'review_request_email_subject' => '[sitename]: [name] - 리뷰 요청', +'review_status' => '검토 상태', +'review_submit_email' => '제출 검토', +'review_submit_email_body' => '제출 검토 +문서: [name] +버전: [version] +상태: [status] +코멘트: [comment] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'review_submit_email_subject' => '[sitename] : [name] - 제출 검토', +'review_summary' => '검토 요약', +'review_update_failed' => '오류 업데이트 검토 상태. 업데이트에 실패했습니다 rewind_workflow워크플로우 되돌리기', +'revise_document' => '개정 문서', +'revise_document_on' => '문서 버전의 다음 개정 [날짜]', +'revision_date' => '개정 일자', +'revision_log' => '개정 로그', +'revisors' => '감사', +'revisor_already_assigned' => '이미 감사가 선임이 된 사용자.', +'revisor_already_removed' => '감사는 문서의 개정을 과정에서 삭제했거나 이미 개정을 완료 했습니다.', +'rewind_workflow' => '워크플로우 되돌리기', +'rewind_workflow_email_body' => '워크플로우 되돌림 +문서: [name] +버전: [version] +워크플로우: [workflow] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'rewind_workflow_email_subject' => '[sitename] : [name] - 워크플로우 되돌림', +'rewind_workflow_warning' => '당신이 초기 상태로 워크플로를 뒤로 경우, 이 문서의 전체 워크플로우 로그가 삭제되며 복구 할 수 없습니다.', +'rm_attrdef' => '속성 정의 제거', +'rm_default_keyword_category' => '범주 제거', +'rm_document' => '문서 제거', +'rm_document_category' => '카테고리 제거', +'rm_file' => '파일 삭제', +'rm_folder' => '폴더 제거', +'rm_from_clipboard' => '클립 보드에서 제거', +'rm_group' => '이 그룹 제거', +'rm_transmittal' => '송부 삭제', +'rm_transmittalitem' => '아이템 삭제', +'rm_user' => '이 사용자 제거', +'rm_version' => '버전 제거', +'rm_workflow' => '워크플로우 제거', +'rm_workflow_action' => '워크플로우 작업 제거', +'rm_workflow_state' => '워크플로우 상태 제거', +'rm_workflow_warning' => '당신은 문서의 워크플로우를 제거하려고합니다. 이는 취소 할 수 없습니다.', +'role' => '역할', +'role_admin' => '관리자', +'role_guest' => '고객', +'role_user' => '사용자', +'ro_RO' => '루마니아어', +'run_subworkflow' => '서브 워크플로우 실행', +'run_subworkflow_email_body' => '서브 워크플로우 시작 +문서: [name] +버전: [version] +워크플로우: [workflow] +서브 워크플로우: [subworkflow] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', +'run_subworkflow_email_subject' => '[sitename] : [name] - 서브 워크플로우가 시작되었다', +'ru_RU' => '러시아', +'saturday' => '토요일', +'saturday_abbr' => '토', +'save' => '저장', +'search' => '검색', +'search_fulltext' => '전체 텍스트 검색', +'search_in' => '검색내', +'search_mode_and' => '모든 단어', +'search_mode_documents' => '문서만', +'search_mode_folders' => '폴더만', +'search_mode_or' => '적어도 하나의 단어', +'search_no_results' => '검색와 일치하는 문서가 없습니다', +'search_query' => '검색', +'search_report' => '[doccount] 문서와 [foldercount]폴더를 [searchtime] 초에 검색 .', +'search_report_fulltext' => '검색된 [doccount] 문서', +'search_resultmode' => '검색 결과', +'search_resultmode_both' => '문서와 폴더', +'search_results' => '검색 결과', +'search_results_access_filtered' => '검색 결과는 액세스가 거부된 콘텐츠를 포함 할 수도 있습니다 search_results검색 결과', +'search_time' => '경과 시간 : [time] 초', +'seconds' => '초', +'selection' => '선택', +'select_category' => '범주를 선택합니다', +'select_groups' => '그룹을 선택합니다', +'select_grp_approvers' => '그룹 승인을 선택합니다', +'select_grp_notification' => '그룹 통지를 선택합니다', +'select_grp_recipients' => '받는 사람 그룹을 클릭하시오', +'select_grp_reviewers' => '그룹 검토를 선택합니다', +'select_grp_revisors' => '감사 그룹을 클릭하여 선택합니다', +'select_ind_approvers' => '개별 승인를 선택합니다', +'select_ind_notification' => '개별 통지를 클릭하여 선택합니다', +'select_ind_recipients' => '개인별 받는 사람을 선택합니다', +'select_ind_reviewers' => '개별 검토를 선택합니다', +'select_ind_revisors' => '개별 감사를 선택합니다', +'select_one' => '선택', +'select_users' => '사용자를 선택합니다', +'select_workflow' => '선택 워크플로우', +'september' => '9월', +'sequence' => '순서', +'seq_after' => '"[prevname] "후', +'seq_end' => '마지막 위치', +'seq_keep' => '위치 유지', +'seq_start' => '첫 번째 위치', +'settings' => '설정', +'settings_activate_module' => '모듈 활성화', +'settings_activate_php_extension' => 'PHP 확장 활성화', +'settings_adminIP' => '관리 IP', +'settings_adminIP_desc' => '설정 관리자가 지정된 IP로 만 로그인 할 경우, 컨트롤을 피하기 위해 비워 둡니다. 참고 : 로컬 인증작동 (NO LDAP)', +'settings_Advanced' => '고급', +'settings_apache_mod_rewrite' => '아파치 - 모듈 다시 쓰기', +'settings_Authentication' => '인증 설정', +'settings_autoLoginUser' => '자동 로그인', +'settings_autoLoginUser_desc' => '로그인하지 않은 사용자의 ID로 접근. 이러한 접근은 세션을 생성하지 않습니다.', +'settings_backupDir' => '백업 디랙토리', +'settings_backupDir_desc' => '백업 도구가 백업을 저장할 디렉토리. 이 디렉토리가 설정되어 있지 않거나 액세스 할 수 없는 경우 백업은 컨텐츠 디렉토리에 저장 됩니다.', +'settings_cacheDir' => '캐시 디렉토리', +'settings_cacheDir_desc' => '미리보기 이미지 에 저장된다.(웹 서버를 통해 액세스 할 수없는 디렉토리를 선택하는 것이 좋습니다)', +'settings_Calendar' => '캘린더 설정', +'settings_calendarDefaultView' => '달력 기본보기', +'settings_calendarDefaultView_desc' => '달력 기본보기', +'settings_cannot_disable' => '파일 ENABLE_INSTALL_TOOL 삭제할 수 없습니다', +'settings_checkOutDir' => '체크아웃 문서 디렉토리', +'settings_checkOutDir_desc' => '이것은 문서가 체크아웃된 문서의 최신 내용이 복사되는 디렉토리입니다. 사용자를 위해 이 디렉토리에 액세스 할 수 있도록 하면 파일을 편집하고 종료시 그것을 다시 확인할 수 있습니다.', +'settings_cmdTimeout' => '작업 시간 초과', +'settings_cmdTimeout_desc' => '외부로부터 요청된 명령의 종료시점 까지의 소요시간(예: 전체 텍스트 인덱스 생성시간)', +'settings_contentDir' => '내용 디렉토리', +'settings_contentDir_desc' => '업로드 된 파일의 저장 위치(웹 서버를 통해 액세스 할 수없는 디렉토리를 선택하는 것이 가장 좋습니다)', +'settings_contentOffsetDir' => '내용 오프셋 디렉토리', +'settings_contentOffsetDir_desc' => '기본 파일 시스템의 한계를 극복하기 위해, 새로운 디렉토리를 콘텐츠 디렉터리 내에 존재하도록 설계 되었습니다. (콘텐츠 디렉토리). 시작할시 기본 디렉토리가 필요하며 일반적으로 기본 설정을 1048576 이지만 이미 (콘텐츠 디렉토리) 내에 존재하지 않는 숫자 또는 문자열이 될 수도 있습니다 .', +'settings_cookieLifetime' => '쿠키 활성 시간', +'settings_cookieLifetime_desc' => '활성 시간을 0으로 설정하면 브라우저가 닫힐 때 마다 쿠키가 제거됩니다.', +'settings_coreDir' => '코어 SeedDMS 디렉토리', +'settings_coreDir_desc' => 'SeedDMS_Core 경로 (선택 사항). PHP에 의해 발견 될 수있는 장소에 SeedDMS_Core가 설치된 경우 빈상태 유지 e.g. Extra PHP Include-Path', +'settings_createCheckOutDir' => '체크아웃 디렉토리', +'settings_createCheckOutDir_desc' => '문서가 체크아웃된 경우 문서 버전은 이 디렉터리에 복사 됩니다.', +'settings_createdatabase' => '데이터베이스 테이블 만들기', +'settings_createdirectory' => '디렉토리 만들기', +'settings_currentvalue' => '현재 값', +'settings_Database' => '데이터베이스 설정', +'settings_dbDatabase' => '데이터베이스', +'settings_dbDatabase_desc' => '설치 과정에서 입력 한 데이터베이스 액세스를 위한 데이터베이스 이름 . 필요한 경우가 아니면이 필드를 편집하지 마십시오.', +'settings_dbDriver' => '데이터베이스 유형', +'settings_dbDriver_desc' => '설치 과정에서 입력 사용중인 데이터베이스의 유형입니다. 호스트의 데이터베이스를 다른 종류로 마이그레이션하지 않는 한 필드를 편집하지 마십시오. ADODB에서 사용하는 DB-드라이버의 유형 (ADODB - Readme를 참조하십시오)', +'settings_dbHostname' => '서버 이름', +'settings_dbHostname_desc' => '설치 과정에서 입력 한 데이터베이스 액세스를 위한 호스트 이름. 필요한 경우가 아니면 필드를 ​​편집하지 마십시오.', +'settings_dbPass' => '비밀번호', +'settings_dbPass_desc' => '설치 과정에서 입력 한 데이터베이스 액세스를 위한 비밀번호.', +'settings_dbUser' => '사용자 이름', +'settings_dbUser_desc' => '설치 과정에서 입력 한 데이터베이스 액세스를 위한 사용자 이름. 새 호스트에 데이터베이스의 예 전송을 위해 절대적으로 필요한 경우가 아니면 필드를 ​​편집하지 마십시오.', +'settings_dbVersion' => '오래된 데이터베이스 스키마', +'settings_delete_install_folder' => 'SeedDMS을 사용하려면 구성 디렉토리의 파일 ENABLE_INSTALL_TOOL을 삭제해야합니다', +'settings_disableSelfEdit' => '자체 수정 불가', +'settings_disableSelfEdit_desc' => '확인시 사용자가 자신의 프로필을 편집 할 수 없음', +'settings_disable_install' => 'ENABLE_INSTALL_TOOL 삭제', +'settings_Display' => '디스플레이 설정', +'settings_dropFolderDir' => '드롭 폴더 디렉토리', +'settings_dropFolderDir_desc' => '서버의 파일 시스템에서 파일을 Dropping 위해 디렉토리. 브라우저를 통해 업로드 할 수 있습니다. 각 사용자는 디렉토리를 소유 했거나 사용이 허가 권한이 있어야 합니다.', +'settings_Edition' => '판(Edition) 설정', +'settings_enableAcknowledgeWorkflow' => '문서 수신의 응답 활성화', +'settings_enableAcknowledgeWorkflow_desc' => '문서의 수신 확인을 위해 워크플로어를 선택하고 활성화 합니다.', +'settings_enableAdminRevApp' => '관리자에 대한 검토 / 승인 허용', +'settings_enableAdminRevApp_desc' => '관리자가 검토 / 승인으로 워크플로우를 전환 할 경우에 사용.', +'settings_enableCalendar' => '달력 활성화', +'settings_enableCalendar_desc' => '활성화 / 비활성화 달력', +'settings_enableClipboard' => '클립 보드 활성화', +'settings_enableClipboard_desc' => '\'View Folder\'의 클립 보드 활성화/비활성화', +'settings_enableConverting' => '변환 사용', +'settings_enableConverting_desc' => '활성화 / 비활성화 파일로 변환', +'settings_enableDropUpload' => '빠른 업로드 허용', +'settings_enableDropUpload_desc' => 'Drag&Drop하여 파일을 업로드할 \'View_Folder\' 페이지의 드롭 영역을 활성/비활설 한다.', +'settings_enableDuplicateDocNames' => '중복 된 문서명 허용', +'settings_enableDuplicateDocNames_desc' => '이 폴더에 중복 된 문서명을 가질 수 있습니다.', +'settings_enableEmail' => '전자 메일 사용', +'settings_enableEmail_desc' => '활성화 / 비활성화 자동 전자 메일 알림을 사용하도록 설정', +'settings_enableFolderTree' => '폴더 트리 사용', +'settings_enableFolderTree_desc' => '\'View Folder\'에 폴더 트리 표시 활성 / 비활성', +'settings_enableFullSearch' => '전체 텍스트 검색 사용', +'settings_enableFullSearch_desc' => '전체 텍스트 검색 사용', +'settings_enableGuestLogin' => '게스트 로그인 활성화', +'settings_enableGuestLogin_desc' => '누군가를 게스트로 로그인하게 할경우 이 옵션을 선택하세요. 참고 : 게스트 로그인은 신뢰할 수 있는 환경에서 사용되어야 한다', +'settings_enableLanguageSelector' => '언어 선택기 허용', +'settings_enableLanguageSelector_desc' => '로그인 된 후 사용자 인터페이스 언어 선택기 보기 . 이것은 로그인 페이지에서 언어 선택에 영향을 주지 않습니다.', +'settings_enableLargeFileUpload' => '대용량 파일 업로드 사용', +'settings_enableLargeFileUpload_desc' => '설정하면, 브라우저가 설정 한 파일 크기 제한없이 jumploader라는 파일 업로드 자바 애플릿을 통해 사용할 수 있습니다. 또한 한 번에 여러 파일을 업로드 할 수 있습니다.', +'settings_enableMenuTasks' => '메뉴의 작업 목록 허용', +'settings_enableMenuTasks_desc' => '사용자의 모든 작업이 포함되어있는 메뉴 항목을 활성/비활성 합니다. 이것은 검토, 승인등이 필요한 문서를 포함 합니다', +'settings_enableNotificationAppRev' => '검토 / 승인 알림 사용', +'settings_enableNotificationAppRev_desc' => '새 문서 버전이 추가 된 경우 리뷰 / 승인자에게 알림을 보내 확인', +'settings_enableNotificationWorkflow' => '다음 작업 사용자에게 알림을 보냅니다.', +'settings_enableNotificationWorkflow_desc' => '문서의 통지를 추가 하지 않은 경우라도 이 옵션을 활성화하면 다음 워크플로우의 이행 조치가 필요한 사용자와 그룹에 통지 됩니다.', +'settings_enableOwnerNotification' => '기본적으로 소유자 알림 사용', +'settings_enableOwnerNotification_desc' => '추가 된 문서의 경우 소유자에 대한 알림을 추가 확인합니다.', +'settings_enableOwnerRevApp' => '소유자에 대한 검토 / 승인을 허용', +'settings_enableOwnerRevApp_desc' => '이 문서의 소유자가 검토 / 승인으로 워크 플로우 전환에 대한 나열하고자 할 경우에 사용합니다.', +'settings_enablePasswordForgotten' => '비밀번호 분실 활성화', +'settings_enablePasswordForgotten_desc' => '옵션을 사용자가 새 비밀번호를 설정하도록 메일로 보내 확인 할 수 있습니다.', +'settings_enableRecursiveCount' => '재귀적 문서 / 폴더 수 사용', +'settings_enableRecursiveCount_desc' => 'If turned on, the number of documents and folders in the folder view will be determined by counting all objects by recursively processing the folders and counting those documents and folders the user is allowed to access.', +'settings_enableRevisionWorkflow' => '문서의 개정 허용', +'settings_enableRevisionWorkflow_desc' => '일정 기간후에 문서를 개정 하기위해 워크플로우를 수행 할 수 있도록 설정 합니다.', +'settings_enableSelfRevApp' => '로그인 한 사용자에 대한 검토 / 승인을 허용', +'settings_enableSelfRevApp_desc' => '검토 / 승인자로 워크 플로우 전환을 위해 나열되어있는 것이 현재 로그인 한 사용자가 필요한 경우이를 활성화합니다.', +'settings_enableThemeSelector' => '테마 선택', +'settings_enableThemeSelector_desc' => '로그인 페이지의 테마 선택기를 켜기/끄기로 전환합니다.', +'settings_enableUserImage' => '사용자 이미지 사용', +'settings_enableUserImage_desc' => '사용자 이미지 사용', +'settings_enableUsersView' => '사용자보기 사용', +'settings_enableUsersView_desc' => '모든 사용자의 활성화 / 비활성화 그룹 및 사용자 보기를 사용', +'settings_enableVersionDeletion' => '이전 버전의 삭제 활성화', +'settings_enableVersionDeletion_desc' => '일반 사용자가 이전 문서 버전의 활성화 / 비활성화 삭제를 활성화합니다. 관리자는 항상 이전 버전을 삭제할 수 있습니다.', +'settings_enableVersionModification' => '버전의 수정 사용', +'settings_enableVersionModification_desc' => '버전이 업로드 된 후 일반 사용자가 문서 버전의 활성화 / 비활성화 수정을 사용합니다. 관리자는 항상 업로드 후 버전을 수정할 수 있습니다.', +'settings_encryptionKey' => '암호화 키', +'settings_encryptionKey_desc' => '이 문자열은 CSRF 공격을 방지하기 위해 formular에 숨겨진 필드로 추가되는 고유 식별자를 만드는 데 사용된다.', +'settings_error' => '오류', +'settings_expandFolderTree' => '폴더 트리 확장', +'settings_expandFolderTree_desc' => '폴더 트리 확장', +'settings_expandFolderTree_val0' => '숨겨진 Tree로 시작', +'settings_expandFolderTree_val1' => '보이는 Tree로 시작 및 첫 번째 레벨 확장', +'settings_expandFolderTree_val2' => '보이는 Tree로 시작 및 전체 레벨 확장', +'settings_Extensions' => '확장자', +'settings_extraPath' => '추가 PHP 경로', +'settings_extraPath_desc' => '추가 소프트웨어의 경로. 예를 들어 이 디렉토리는 ADODB 또는 추가 pear packages를 포함 합니다', +'settings_firstDayOfWeek' => '요일의 첫날', +'settings_firstDayOfWeek_desc' => '요일의 첫날', +'settings_footNote' => 'Foot Note', +'settings_footNote_desc' => '메시지는 모든 페이지 하단에 표시', +'settings_fullSearchEngine' => '전체 텍스트 검색 엔진', +'settings_fullSearchEngine_desc' => '전체 텍스트 검색에 사용되는 방법을 설정합니다.', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', +'settings_guestID' => 'Guest ID', +'settings_guestID_desc' => 'Guest로 로그인 할 때 사용하는 ID (변경이 필요치 않음)', +'settings_httpRoot' => 'HTTP Root', +'settings_httpRoot_desc' => 'URL의 상대 경로, 도메인 이후 부분 HTTP:// 접두사 를 포함하지 마십시오. 전체 URL이 http://www.example.com/seeddms/ 경우에는 \'/seeddms/\'로 설정합니다. URL이 http://www.example.com/에는 설정이 \'/\' 입니다.', +'settings_initialDocumentStatus' => '초기 문서 상태', +'settings_initialDocumentStatus_desc' => '문서가 추가 된 경우이 상태가 설정 됩니다.', +'settings_initialDocumentStatus_draft' => '초안', +'settings_initialDocumentStatus_released' => '출시', +'settings_installADOdb' => 'ADOdb 설치', +'settings_install_disabled' => 'ENABLE_INSTALL_TOOL은 삭제 된 파일 . 이제 SeedDMS에 로그인하여 추가 구성을 수행 할 수 있습니다.', +'settings_install_pear_package_log' => 'Pear package \'Log\' 설치', +'settings_install_pear_package_webdav' => 'WebDAV 인터페이스를 사용하려는 경우, Pear package \'HTTP_WebDAV_Server\' 설치', +'settings_install_success' => '설치가 성공적으로 완료 되었습니다.', +'settings_install_welcome_text' => '

SeedDMS 설치를 시작하기 전에, 구성 디렉토리에 파일\'ENABLE_INSTALL_TOOL\'이 있는지 확인 바랍니다. 그렇지 않으면 설치가 작동하지 않습니다. 유닉스 시스템에서 다음 명령으로 쉽게 생성 가능 합니다. \'touch conf / ENABLE_INSTALL_TOOL\'. 설치f를 완료 한 후 파일을 삭제합니다.

SeedDMS는 설치시에 최소한의 요구 사항이 있습니다. MySQL 데이터베이스 또는 SQLite와 PHP를 지원하는 웹 서버가 필요합니다. pear package Log도 설치해야 합니다. 전체 텍스트 검색을 위해 lucene , Zend framework가 필요합니다. WebDAV를 위한 HTTP_WebDAV_Server가 필요합니다. 관련 경로는 설치 중이나 나중에 설정가능 합니다.

설치를 시작하기 전에 데이터베이스를 만들려면 경우, 데이터베이스에 액세스 할 수 있는 사용자를 생성해야 하고 이 사용자는 설치 스크립트뿐만 아니라 데이터베이스를 만들 수있는 충분한 권한을 가진 액세스 권한을 필요로 합니다.

', +'settings_install_welcome_title' => 'SeedDMS의 설치를 환영합니다.', +'settings_install_zendframework' => '전체 텍스트 검색 엔진을 사용하려는 경우 Zend Framework 설치', +'settings_language' => '기본 언어', +'settings_language_desc' => '기본 언어(폴더 내에 있는 서브 폴더 이름은 "languages")', +'settings_libraryFolder' => '라이브러리 폴더', +'settings_libraryFolder_desc' => '새 문서를 작성 하기 위해 문서를 복사하는 폴더.', +'settings_logFileEnable' => '로그 파일 사용', +'settings_logFileEnable_desc' => '로그 파일 활성 / 비활성화', +'settings_logFileRotation' => '로그 파일 회전', +'settings_logFileRotation_desc' => '로그 파일 회전', +'settings_loginFailure' => '로그인 실패', +'settings_loginFailure_desc' => 'N회 로그인 실패 후 계정 비활성.', +'settings_luceneClassDir' => 'Lucene SeedDMS 디렉토리', +'settings_luceneClassDir_desc' => 'SeedDMS_Lucene 경로 (선택 사항). 이이 PHP에 의해 발견 될 수있는 장소에 SeedDMS_Lucene를 설치된 경우 설정하지 않음', +'settings_luceneDir' => '전체 텍스트 인덱스에 대한 디렉토리', +'settings_luceneDir_desc' => 'Lucene 색인 경로', +'settings_maxDirID' => '최대 디렉토리 ID', +'settings_maxDirID_desc' => '상위 디렉토리 당 서브 디렉토리의 최대 수 기본값 : 32700', +'settings_maxExecutionTime' => '최대 실행 시간 (들)', +'settings_maxExecutionTime_desc' => '종료되기 전 스크립트의 구문 분석 할 수있는 최대 시간을 초 단위로 설정', +'settings_maxRecursiveCount' => '최대 재귀 문서 / 폴더의 수', +'settings_maxRecursiveCount_desc' => '이것은 재귀적으로 개체를 셀 때 사용 권한이 확인됩니다 문서 및 폴더의 최대 수입니다. 이 수를 초과하면 폴더보기에서 문서 나 폴더의 수가 추정됩니다.', +'settings_more_settings' => '기타 설정을 구성합니다. 기본 로그인 : admin/admin', +'settings_notfound' => '찾을 수 없음', +'settings_Notification' => '알림 설정', +'settings_notwritable' => '구성값을 저장할 수 없습니다 구성 파일에 쓰기 권한이 없습니다.', +'settings_no_content_dir' => '내용 디렉토리', +'settings_overrideMimeType' => 'MIME 타입 재정의', +'settings_overrideMimeType_desc' => '파일이 업로드 되는 경우, 브라우저에 의해 제공되는 MIME 타입을 재정의 합니다. 새로운 MIME 타입은 SeedDMS에 의해 결정 됩니다.', +'settings_partitionSize' => '조각 파일 크기', +'settings_partitionSize_desc' => 'jumploader의 조각 업로드 파일의 크기(Byte). 서버에서 설정 한 최대 업로드 크기 보다 큰 값을 설정하지 마십시오.', +'settings_passwordExpiration' => '비밀번호 만료', +'settings_passwordExpiration_desc' => '비밀번호 만료 및 재설정되어야 하는 날짜 수. 0 비밀번호 만료일을 해제 합니다.', +'settings_passwordHistory' => '비밀번호 이력', +'settings_passwordHistory_desc' => '비밀번호를 재사용 하기 전에 사용자가 한번 이상 사용 되었 어야 합니다. 비밀번호의 수입니다. 0은 비밀번호 이력의 기록을 해제합니다.', +'settings_passwordStrength' => '비밀번호 보안 정도', +'settings_passwordStrengthAlgorithm' => '비밀번호 강도 알고리즘', +'settings_passwordStrengthAlgorithm_desc' => '비밀번호 강도를 계산하기 위해 사용되는 알고리즘. 총 8 개 이상의 문자, 소문자, 대문자, 숫자 및 특수 문자를 확인합니다. 이러한 조건이 충족되는 경우 반환 된 점수는 100 그렇지 않으면 0', +'settings_passwordStrengthAlgorithm_valadvanced' => '고급', +'settings_passwordStrengthAlgorithm_valsimple' => '단순', +'settings_passwordStrength_desc' => '0인경우 보안 강도 확인을 하지 않습니다. 비밀번호 보안 설정은 0 ~ 100의 정수 값 입니다.', +'settings_pear_log' => 'Pear 패키지 : 로그인', +'settings_pear_webdav' => 'Pear 패키지 : HTTP_WebDAV_Server', +'settings_perms' => '권한', +'settings_php_dbDriver' => 'PHP 확장 : php_\'see current value\'', +'settings_php_gd2' => 'PHP 확장 : php_gd2', +'settings_php_mbstring' => 'PHP 확장 : php_mbstring', +'settings_php_version' => 'PHP 버전', +'settings_presetExpirationDate' => '프리셋(Preset) 만료일', +'settings_presetExpirationDate_desc' => '새로운 업로드된 문서는 설정 유효 기간을 갖게 됩니다. 이 값은 PHP의 strtotime() 함수에 의해 입력 날짜가 지정 됩니다. 예: 5중', +'settings_previewWidthDetail' => '미리보기 이미지의 폭 (세부 사항)', +'settings_previewWidthDetail_desc' => '상세정보에 표시되는 미리보기 이미자의 폭', +'settings_previewWidthList' => '미리보기 이미지의 폭 (목록)', +'settings_previewWidthList_desc' => '목록에 표시된 미리보기 이미지의 폭', +'settings_printDisclaimer' => '인쇄 면책 조항', +'settings_printDisclaimer_desc' => '활성인 경우 메시지 내역이 모든 페이지의 하단에 출력됩니다', +'settings_quota' => '사용자의 할당량', +'settings_quota_desc' => '사용자가 디스크를 사용할 수 있습니다 최대 바이트 수. 무제한 디스크 공간 사용시 0으로 설정합니다. 각각 자신의 프로필에 사용을 위해이 값은 변경 할 수 있습니다.', +'settings_restricted' => '제한된 액세스', +'settings_restricted_desc' => '로컬 데이터베이스에 항목이있는 경우만 사용자가 로그인 할 수 있습니다. (LDAP 인증에 관계없이 )', +'settings_rootDir' => '루트 디렉토리', +'settings_rootDir_desc' => 'SeedDMS의 위치 경로', +'settings_rootFolderID' => '루트 폴더 ID', +'settings_rootFolderID_desc' => '루트 폴더 ID (대부분 변경은 필요 없음)', +'settings_SaveError' => '구성 파일 오류를 저장', +'settings_Server' => '서버 설정', +'settings_showMissingTranslations' => '누락된 번역보기', +'settings_showMissingTranslations_desc' => '페이지 하단에 현재 페이지의 부족한 번역을 나열 합니다. 로그인 한 사용자는 부족한 번역을 제안 및 제출 할 수 있게 되며 CSV 파일로 저장됩니다. 프로덕션 환경의 경우이 기능을 이기능을 선택하지 마십시오!', +'settings_Site' => '사이트', +'settings_siteDefaultPage' => '사이트의 기본 페이지', +'settings_siteDefaultPage_desc' => '로그인시 기본 페이지. 만약 빈 값이면 /out.ViewFolder.php로 이동', +'settings_siteName' => '사이트 이름', +'settings_siteName_desc' => '페이지 제목에 사용 된 사이트의 이름입니다. 기본값 : SeedDMS', +'settings_SMTP' => 'SMTP 서버 설정', +'settings_smtpPassword' => 'SMTP 서버 비밀번호', +'settings_smtpPassword_desc' => 'SMTP 서버 비밀번호', +'settings_smtpPort' => 'SMTP 서버 포트', +'settings_smtpPort_desc' => 'SMTP 서버 포트, 기본 25', +'settings_smtpSendFrom' => '송신자', +'settings_smtpSendFrom_desc' => '송신자', +'settings_smtpServer' => 'SMTP 서버의 호스트 이름', +'settings_smtpServer_desc' => 'SMTP 서버의 호스트 이름', +'settings_smtpUser' => 'SMTP 서버 사용자', +'settings_smtpUser_desc' => 'SMTP 서버 사용자', +'settings_sortFoldersDefault' => '기본 정렬 방법', +'settings_sortFoldersDefault_desc' => '폴더 보기에서 폴더나 문서의 정렬 방법을 설정합니다.', +'settings_sortFoldersDefault_val_name' => '이름별', +'settings_sortFoldersDefault_val_sequence' => '순서에 의해', +'settings_sortFoldersDefault_val_unsorted' => '미분류', +'settings_sortUsersInList' => '사용자 목록 정렬', +'settings_sortUsersInList_desc' => '선택 메뉴에서 사용자가 로그인 또는 전체 이름으로 정렬하는 경우 설정', +'settings_sortUsersInList_val_fullname' => '전체 이름 정렬', +'settings_sortUsersInList_val_login' => '로그인 정렬', +'settings_stagingDir' => '조각 업로드 디렉토리', +'settings_stagingDir_desc' => '취합하여 함께 넣어 전 jumploader로 부터 업로드된 파일의 조각을 배치하는 디렉토리입니다.', +'settings_start_install' => '설치 시작', +'settings_stopWordsFile' => '정지단어 파일 경로', +'settings_stopWordsFile_desc' => '전체 텍스트 검색이 활성화 된 경우 이 파일은 색인이 생성이 되지 않는 정지단어를 포함 합니다.', +'settings_strictFormCheck' => '엄격한 양식 확인', +'settings_strictFormCheck_desc' => '엄격한 형식 검사. true로 설정하면, 다음 폼의 모든 필드 값을 확인한다. false로 설정하면, (대부분의) 의견과 키워드 필드는 선택 사항이된다. 리뷰 또는 문서 상태를 제출할 때 코맨트은 항상 필요합니다.', +'settings_suggestionvalue' => '제안 값', +'settings_System' => '시스템', +'settings_theme' => '기본 테마', +'settings_theme_desc' => '기본 스타일 (폴더 내에 있는 서브 폴더의 이름 "styles")', +'settings_titleDisplayHack' => '제목 표시 해킹', +'settings_titleDisplayHack_desc' => '2 개 이상의 라인을 통해 이동 페이지 제목에 대한 해결.', +'settings_undelUserIds' => '삭제가 불가능 사용자 ID', +'settings_undelUserIds_desc' => '쉼표로 구분된 사용자 ID의 목록, 삭제할 수 없습니다.', +'settings_updateDatabase' => '데이터베이스에 실행 스키마 업데이트 스크립트', +'settings_updateNotifyTime' => '업데이트 시간 알림', +'settings_updateNotifyTime_desc' => '사용자가 마지막으로 발생한 문서 변경에 대한 알림 \'Update Notify Time\' 초', +'settings_upgrade_php' => '최소 버전 5.2.0 PHP 이상 요구', +'settings_versioningFileName' => '버전 파일 이름', +'settings_versioningFileName_desc' => '백업 도구에 의해 생성 된 버전 정보 파일 이름', +'settings_versiontolow' => '낮은 버전', +'settings_viewOnlineFileTypes' => '온라인 파일 형식 보기', +'settings_viewOnlineFileTypes_desc' => '최종 파일은 온라인을 통헤 보여진다. (소문자 만 사용) Files with one of the following endings can be viewed online', +'settings_workflowMode' => '워크플로우 모드', +'settings_workflowMode_desc' => '문서 버전에 대한 자신의 릴리스 워크플로우 지정하실 수 있습니다 .', +'settings_workflowMode_valadvanced' => '고급', +'settings_workflowMode_valtraditional' => '기본적인', +'settings_workflowMode_valtraditional_only_approval' => '통상적인 (리뷰 없음)', +'settings_zendframework' => '젠드 프레임 워크', +'set_expiry' => '설정 만료', +'set_owner' => '소유자 설정', +'set_owner_error' => '소유자 설정 오류', +'set_password' => '비밀번호 설정', +'set_workflow' => '워크플로우 설정', +'signed_in_as' => '로그인', +'sign_in' => '로그인', +'sign_out' => '로그 아웃', +'sign_out_user' => '사용자가 로그 아웃', +'sk_SK' => '슬로바키아어', +'space_used_on_data_folder' => '데이터 폴더에 사용되는 공간', +'splash_added_to_clipboard' => '클립 보드에 추가', +'splash_add_attribute' => '새로운 속성 추가', +'splash_add_group' => '새 그룹이 추가', +'splash_add_group_member' => '새 그룹 구성원 추가', +'splash_add_user' => '새 사용자 추가', +'splash_cleared_clipboard' => '클립 보드 비우기', +'splash_document_added' => '문서를 추가', +'splash_document_checkedout' => '문서 체크아웃', +'splash_document_edited' => '문서 저장', +'splash_document_locked' => '문서 잠금', +'splash_document_unlocked' => '문서 잠금 해제', +'splash_edit_attribute' => '속성 저장', +'splash_edit_group' => '그룹 저장', +'splash_edit_user' => '사용자 저장', +'splash_folder_edited' => '저장 폴더 변경', +'splash_invalid_folder_id' => '잘못된 폴더 ID', +'splash_invalid_searchterm' => '잘못된 검색 범위', +'splash_moved_clipboard' => '클립 보드가 현재 폴더로 이동', +'splash_removed_from_clipboard' => '클립 보드에서 제거', +'splash_rm_attribute' => '속성 제거', +'splash_rm_document' => '문서 삭제', +'splash_rm_folder' => '폴더 삭제', +'splash_rm_group' => '그룹 제거', +'splash_rm_group_member' => '회원 그룹 제거', +'splash_rm_user' => '사용자 제거', +'splash_settings_saved' => '설정 저장', +'splash_substituted_user' => '전환된 사용자', +'splash_switched_back_user' => '원래 사용자로 전환', +'splash_toogle_group_manager' => '그룹 관리자 전환', +'state_and_next_state' => '상태 / 다음 상태', +'statistic' => '통계', +'status' => '상태', +'status_approval_rejected' => '거부된 초안', +'status_approved' => '승인', +'status_approver_removed' => '승인 과정에서 제거', +'status_not_approved' => '승인되지 않음​​', +'status_not_receipted' => '아직 접수 않된', +'status_not_reviewed' => '검토되지 않음', +'status_not_revised' => '수정되지 않은', +'status_receipted' => '접수', +'status_receipt_rejected' => '거부', +'status_recipient_removed' => '받는 사람 목록에서 제거', +'status_reviewed' => '검토', +'status_reviewer_rejected' => '초안 거부', +'status_reviewer_removed' => '검토 프로세스에서 제거', +'status_revised' => '수정', +'status_revision_rejected' => '거부', +'status_revision_sleeping' => '보류', +'status_revisor_removed' => '감사자 목록에서 제거', +'status_unknown' => '알 수없는', +'storage_size' => '저장 크기', +'submit_approval' => '승인 제출', +'submit_login' => '로그인', +'submit_password' => '새 비밀번호를 설정', +'submit_password_forgotten' => '진행를 시작합니다', +'submit_receipt' => '접수증 제출', +'submit_review' => '리뷰 제출', +'submit_userinfo' => '정보 제출', +'substitute_to_user' => '\'[username]\'로 전환', +'substitute_user' => '대체 사용자', +'sunday' => '일요일', +'sunday_abbr' => '일', +'sv_SE' => '스웨덴어', +'switched_to' => '전환', +'takeOverGrpApprover' => '마지막 버전의 승인자의 그룹를 인수 합니다.', +'takeOverGrpReviewer' => '최종 버전의 리뷰 그룹을 상속합니다.', +'takeOverIndApprover' => '마지막 버전의 개별 승인자를 인수 합니다.', +'takeOverIndReviewer' => '최종 버전의 개인별 검수자를 상속합니다.', +'tasks' => '작업', +'testmail_body' => '본 메일은 SeedDMS의 메일 구성을 단순 테스트한 것입니다', +'testmail_subject' => '테스트 메일', +'theme' => '테마', +'thursday' => '목요일', +'thursday_abbr' => '목', +'to' => '마감일', +'toggle_manager' => '전환 매니저', +'to_before_from' => '종료일은 시작일 전이 될수 없습니다', +'transition_triggered_email' => '워크플로우 전환 트리거', +'transition_triggered_email_body' => '워크플로우 전환 트리거 +문서: [name] +버전: [version] +코멘트: [comment] +워크플로우: [workflow] +이전 상태: [previous_state] +현재 상태: [current_state] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', +'transition_triggered_email_subject' => '[sitename] : [name] - 워크플로우 전환이 트리거', +'transmittal' => '전송', +'transmittalitem_removed' => '송부 항목 삭제', +'transmittalitem_updated' => '최신 버전으로 문서 업데이트', +'transmittal_comment' => '코맨트', +'transmittal_name' => '아름', +'transmittal_size' => '크기', +'trigger_workflow' => '워크플로우', +'tr_TR' => '터키어', +'tuesday' => '화요일', +'tuesday_abbr' => '화', +'type_to_search' => '유형 검색', +'uk_UA' => '우크라이나어', +'under_folder' => '폴더', +'unknown_attrdef' => '알수 없는 속성 정의', +'unknown_command' => '명령을 인식 할 수 없습니다.', +'unknown_document_category' => '알 수없는 범주', +'unknown_group' => '알 수없는 그룹 ID', +'unknown_id' => '알 수없는 ID', +'unknown_keyword_category' => '알 수없는 범주', +'unknown_owner' => '알 수없는 소유자 ID', +'unknown_user' => '알 수없는 사용자 ID', +'unlinked_content' => '연결되지 않은 내용', +'unlinked_documents' => '연결되지 않은 문서', +'unlinked_folders' => '연결 되지 않은 폴더', +'unlinking_objects' => '링크 해제된 콘텐츠', +'unlock_cause_access_mode_all' => '액세스 모드 "all"를 가지고 있기 때문에 당신은 여전히 업데이트 할 수 있습니다. 잠금이 자동으로 제거됩니다.', +'unlock_cause_locking_user' => '당신은 여전히 업데이트 할 수 있습니다. 잠금이 자동으로 제거됩니다.', +'unlock_document' => '잠금 해제', +'update' => '업데이트', +'update_approvers' => '승인자의 업데이트 목록', +'update_document' => '업데이트 문서', +'update_fulltext_index' => '업데이트 전체 텍스트 색인', +'update_info' => '업데이트 정보', +'update_locked_msg' => '이 문서는 잠겨 있습니다.', +'update_recipients' => '받는 사람 업데이트 목록', +'update_reviewers' => '검토 업데이트 목록', +'update_revisors' => '재 제출자 목록 업데이트', +'update_transmittalitem' => '최신 문서 버전으로 업데이트', +'uploaded_by' => '업로드', +'uploading_failed' => '파일 업로드중 실패 최대. 업로드 파일 크기를 확인하시기 바랍니다.', +'uploading_maxsize' => '최대 업로드 파일 크기를 초과하였습니다.', +'uploading_zerosize' => '빈 파일을 업로드 합니다. 업로드가 취소 됩니다.', +'used_discspace' => '사용되는 디스크 공간', +'user' => '사용자', +'users' => '사용자', +'users_and_groups' => '사용자 / 그룹', +'users_done_work' => '사용자 수행 할 작업', +'user_exists' => '사용자가 이미 존재합니다.', +'user_group_management' => '사용자 / 그룹 관리', +'user_image' => '이미지', +'user_info' => '사용자 정보', +'user_list' => '사용자 목록', +'user_login' => '사용자 ID', +'user_management' => '사용자 관리', +'user_name' => '전체 이름', +'use_comment_of_document' => '문서 설명을 사용하십시오', +'use_default_categories' => '미리 정의 된 범주를 사용하십시오', +'use_default_keywords' => '사전 정의 된 키워드를 사용하십시오', +'version' => '버전', +'versioning_file_creation' => '버전 관리 파일 생성', +'versioning_file_creation_warning' => '버전 정보가 포함 된 파일을 만들 수 있습니다. 이 작업은 전체 DMS 폴더를 작성 후 모든 파일이 문서 폴더 안에 저장됩니다.', +'versioning_info' => '버전 관리 정보', +'versiontolow' => '낮은 버전', +'version_deleted_email' => '버전 삭제', +'version_deleted_email_body' => '버전 삭제 +문서: [name] +버전: [version] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', +'version_deleted_email_subject' => '[sitename] : [name] - 버전 삭제', +'version_info' => '버전 정보', +'view' => '보기', +'view_online' => '온라인 보기', +'warning' => '경고', +'wednesday' => '수요일', +'wednesday_abbr' => '수', +'weeks' => '주', +'week_view' => '주간 단위로 보기', +'workflow' => '워크플로우', +'workflow_actions_management' => '워크플로우 작업 관리', +'workflow_action_in_use' => '이 작업은 현재 워크플로우에 의해 사용된다.', +'workflow_action_name' => '이름', +'workflow_editor' => '워크플로우 편집기', +'workflow_group_summary' => '그룹 요약', +'workflow_initstate' => '초기 상태', +'workflow_in_use' => '이 워크플로는 현재 문서에서 사용 됩니다.', +'workflow_management' => '워크플로우 관리', +'workflow_name' => '이름', +'workflow_no_states' => '워크플로를 추가하기 전에, 워크플로우 상태를 정의해야 합니다.', +'workflow_states_management' => '워크플로우 관리를 말한다', +'workflow_state_docstatus' => '문서의 상태가', +'workflow_state_in_use' => '이 상태는 현재 워크플로우에 의해 사용된다.', +'workflow_state_name' => '이름', +'workflow_summary' => '워크플로우 요약', +'workflow_user_summary' => '사용자 요약', +'year_view' => '연간 단위로 보기', +'yes' => '예', +'zh_CN' => '중국어 (CN)', +'zh_TW' => '중국어 (TW)', +); +?> diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 33db862d1..92f301b92 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (694), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (703), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( 'accept' => 'Accept', @@ -269,6 +269,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Documenten die wachten op uw controle', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Eigen documenten die (nog) aandacht behoeven', 'document_already_checkedout' => '', 'document_already_locked' => 'Dit document is al geblokkeerd', @@ -465,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Elk uur', 'hours' => 'uren', +'hr_HR' => 'Kroatisch', 'human_readable' => 'Leesbaar Archief', 'hu_HU' => 'Hongaars', 'id' => 'ID', @@ -527,6 +529,7 @@ URL: [url]', 'keep_doc_status' => 'Behoud document status', 'keywords' => 'Sleutelwoorden', 'keyword_exists' => 'Sleutelwoord bestaat al', +'ko_KR' => 'Koreaans', 'language' => 'Talen', 'lastaccess' => '', 'last_update' => 'Laatste Update', @@ -651,7 +654,9 @@ URL: [url]', 'no_group_members' => 'Deze Groep heeft geen leden', 'no_linked_files' => 'Geen gekoppelde bestanden', 'no_previous_versions' => 'Geen andere versie(s) gevonden', +'no_receipt_needed' => '', 'no_review_needed' => 'Geen review bezig.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'U kunt daarom dit document niet bijwerken. Neem contact op met de persoon die het document heeft geblokkeerd.', 'no_user_image' => 'Geen afbeelding(en) gevonden', @@ -833,15 +838,15 @@ URL: [url]', 'search_fulltext' => 'Zoek in volledige tekst', 'search_in' => 'Zoek in', 'search_mode_and' => 'alle woorden', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Alleen documenten', +'search_mode_folders' => 'Alleen mappen', 'search_mode_or' => 'tenminste 1 woord', 'search_no_results' => 'Er zijn geen documenten gevonden die aan uw zoekvraag voldoen', 'search_query' => 'Zoeken naar', 'search_report' => '[count] documenten en [foldercount] mappen gevonden in [searchtime] sec.', 'search_report_fulltext' => '[doccount] documenten gevonden', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Zoek resultaat', +'search_resultmode_both' => 'Documenten en mappen', 'search_results' => 'Zoekresultaten', 'search_results_access_filtered' => 'Zoekresultaten kunnen inhoud bevatten waar U geen toegang toe heeft.', 'search_time' => 'Verstreken tijd: [time] sec.', @@ -876,6 +881,10 @@ URL: [url]', 'settings_Advanced' => 'Uitgebreid', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Authenticatie instellingen', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'cache directory', 'settings_cacheDir_desc' => 'Waar de voorbeeld afbeeldingen zijn opgeslagen (het is het beste om te kiezen voor een pad, welke niet toegankelijk is door uw webserver)', 'settings_Calendar' => 'Kalender instellingen', @@ -884,6 +893,8 @@ URL: [url]', 'settings_cannot_disable' => 'Bestand ENABLE_INSTALL_TOOL kon niet verwijderd worden', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Inhoud map', 'settings_contentDir_desc' => 'Waar de verzonden bestande opgeslagen worden (Kan het beste een map zijn die niet benaderbaar is voor de webserver.)', 'settings_contentOffsetDir' => 'Inhouds Basis Map', @@ -943,6 +954,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Laat selector zien voor taalinterface, nadat gebruikers inloggen.', 'settings_enableLargeFileUpload' => 'Inschakelen groot bestand upload', 'settings_enableLargeFileUpload_desc' => 'Indien ingeschakeld, is bestandsupload ook beschikbaar via een java applet jumploader genaamd zonder een bestandsgrootte limiet door de browser. Het staat ook toe om meerdere bestanden in een keer te versturen.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Inschakelen controleur/beoordeler notificatie', 'settings_enableNotificationAppRev_desc' => 'Vink aan om een notificatie te versturen naar de controleur/beoordeler als een nieuw document versie is toegevoegd.', 'settings_enableNotificationWorkflow' => '', @@ -984,6 +997,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Eerste dag van de week', 'settings_footNote' => 'Onderschrift', 'settings_footNote_desc' => 'Bericht om onderop elke pagina te tonen', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gast ID', 'settings_guestID_desc' => 'ID van gastgebruiker gebruikt indien ingelogd als gast (meestal geen wijziging nodig)', 'settings_httpRoot' => 'Http Basis', @@ -1200,6 +1217,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Deze mail dient enkel voor het testen van de mail configuratie van SeedDMS', 'testmail_subject' => 'Test mail', 'theme' => 'Thema', @@ -1231,7 +1249,7 @@ URL: [url]', 'tuesday' => 'Dinsdag', 'tuesday_abbr' => 'Tu', 'type_to_search' => 'voer in om te zoeken', -'uk_UA' => '', +'uk_UA' => 'Oekraïne', 'under_folder' => 'In map', 'unknown_attrdef' => 'Onbekende attribuut definitie', 'unknown_command' => 'Opdracht niet herkend.', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 933f8da6c..03e66f9e2 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (707), netixw (84), romi (93), uGn (112) +// Translators: Admin (710), netixw (84), romi (93), uGn (112) $text = array( 'accept' => 'Akceptuj', @@ -269,6 +269,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Dokumenty oczekujące na Twoją recenzję', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty należące do Ciebie, które wymagają uwagi', 'document_already_checkedout' => '', 'document_already_locked' => 'Ten dokument jest już zablokowany', @@ -465,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Co godzinę', 'hours' => 'godzin', +'hr_HR' => '', 'human_readable' => 'Archiwum czytelne dla człowieka', 'hu_HU' => 'Węgierski', 'id' => 'ID', @@ -527,6 +529,7 @@ URL: [url]', 'keep_doc_status' => 'Pozostaw status dokumentu', 'keywords' => 'Słowa kluczowe', 'keyword_exists' => 'Słowo kluczowe już istnieje', +'ko_KR' => '', 'language' => 'Język', 'lastaccess' => 'Ostatni dostęp', 'last_update' => 'Ostatnia aktualizacja', @@ -652,7 +655,9 @@ URL: [url]', 'no_group_members' => 'Ta grupa nie ma członków', 'no_linked_files' => 'Brak powiązanych dokumentów', 'no_previous_versions' => 'Nie znaleziono poprzednich wersji', +'no_receipt_needed' => '', 'no_review_needed' => 'Brak dokumentów w trakcie opiniowania.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Nie możesz zaktualizować tego dokumentu. Proszę skontaktuj się z osobą która go blokuje.', 'no_user_image' => 'Nie znaleziono obrazu', @@ -864,6 +869,10 @@ URL: [url]', 'settings_Advanced' => 'Zaawansowane', 'settings_apache_mod_rewrite' => 'Apache - Moduł Rewrite', 'settings_Authentication' => 'Ustawienia uwierzytelniania', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Folder bufora', 'settings_cacheDir_desc' => 'Miejsce przechowywania obrazków podglądu (najlepiej wybrać katalog nie dostępny bezpośrednio dla web-serwera).', 'settings_Calendar' => 'Ustawienia kalendarza', @@ -872,6 +881,8 @@ URL: [url]', 'settings_cannot_disable' => 'Plik ENABLE_INSTALL_TOOL nie może zostać usunięty', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Katalog treści', 'settings_contentDir_desc' => 'Miejsce, gdzie będą przechowywane wczytane pliki (najlepien wybrać katalog, który nie jest dostępny dla serwera http)', 'settings_contentOffsetDir' => 'Offset katalogu treści', @@ -931,6 +942,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Pokaż selektor języka dla interfejsu użytkownika po zalogowaniu To nie ma wpływu na wybór języka na stronie logowania.', 'settings_enableLargeFileUpload' => 'Zezwól na wczytywanie dużych plików', 'settings_enableLargeFileUpload_desc' => 'Jeśli zaznaczone, wczytywanie plików będzie możliwe również przez aplet javy nazywany jumploader bez limitu rozmiaru plików. Aplet ten pozwala również na wczytywanie wielu plików jednocześnie.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Włącz/Wyłącz powiadomienia dla zatwierdzających/recenzentów', 'settings_enableNotificationAppRev_desc' => 'Zaznacz aby wysyłać powiadomienia do zatwierdzających i recenzentów kiedy pojawi się nowa wersja dokumentu', 'settings_enableNotificationWorkflow' => '', @@ -972,6 +985,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Pierwszy dzień tygodnia', 'settings_footNote' => 'Treść stopki', 'settings_footNote_desc' => 'Wiadomość wyświetlana na dole każdej strony', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID gościa', 'settings_guestID_desc' => 'ID gościa używane kiedy gość jest zalogowany (zazwyczaj nie wymaga zmiany)', 'settings_httpRoot' => 'Http Root', @@ -1188,6 +1205,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'To jest mail testowy SeedDMS', 'testmail_subject' => 'Wiadomość testowa', 'theme' => 'Wygląd', @@ -1219,7 +1237,7 @@ URL: [url]', 'tuesday' => 'Wtorek', 'tuesday_abbr' => 'Wt', 'type_to_search' => 'Wpisz wyszukiwane', -'uk_UA' => '', +'uk_UA' => 'Ukrainski', 'under_folder' => 'W folderze', 'unknown_attrdef' => '', 'unknown_command' => 'Polecenie nie rozpoznane.', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 4044c1dd3..c85c30ea2 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (878), flaviove (627), lfcristofoli (352) +// Translators: Admin (889), flaviove (627), lfcristofoli (352) $text = array( 'accept' => 'Aceitar', @@ -276,6 +276,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Documents Awaiting User\'s Review', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documents Owned by User That Require Attention', 'document_already_checkedout' => '', 'document_already_locked' => 'Este documento já está travado', @@ -344,7 +345,7 @@ URL: [url]', 'do_object_setfilesize' => 'Defina o tamanho do arquivo', 'do_object_unlink' => 'Excluir versão do documento', 'draft' => '', -'draft_pending_approval' => '', +'draft_pending_approval' => 'Rascunho - Aprovação pendente', 'draft_pending_review' => 'Draft - pending review', 'drag_icon_here' => 'Arraste ícone de pasta ou documento para aqui!', 'dropfolder_file' => 'Arquivo de pasta suspensa', @@ -471,6 +472,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'De hora em hora', 'hours' => 'horas', +'hr_HR' => 'Croata', 'human_readable' => 'Human readable archive', 'hu_HU' => 'Húngaro', 'id' => 'ID', @@ -533,6 +535,7 @@ URL: [url]', 'keep_doc_status' => 'Mantenha status do documento', 'keywords' => 'Palavras-chave', 'keyword_exists' => 'Keyword already exists', +'ko_KR' => 'Coreano', 'language' => 'Idioma', 'lastaccess' => 'Último acesso', 'last_update' => 'última versão', @@ -657,7 +660,9 @@ URL: [url]', 'no_group_members' => 'Este grupo não tem membros', 'no_linked_files' => 'Não há arquivos vinculados', 'no_previous_versions' => 'No other versions found', +'no_receipt_needed' => '', 'no_review_needed' => 'Nenhuma revisão pendente.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Por isso você não pode atualizar este documento. Por favor contacte usuário que poáui a trava.', 'no_user_image' => 'não foi encontrado imagem de perfil', @@ -839,15 +844,15 @@ URL: [url]', 'search_fulltext' => 'Pesquisa em texto completo', 'search_in' => 'Busca em', 'search_mode_and' => 'todas as palavras', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Só Documentos', +'search_mode_folders' => 'Só Pastas', 'search_mode_or' => 'at least one word', 'search_no_results' => 'não há documento que satisfaçam sua busca', 'search_query' => 'Busca por', 'search_report' => 'Encontrados [count] documentos', 'search_report_fulltext' => 'Encontrados [doccount] documentos', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Resultados da Busca', +'search_resultmode_both' => 'Documentos e Pastas', 'search_results' => 'Resultados da busca', 'search_results_access_filtered' => 'Search results may contain content to which access has been denied.', 'search_time' => 'Tempo decorrido: [time] sec.', @@ -882,6 +887,10 @@ URL: [url]', 'settings_Advanced' => 'Avançado', 'settings_apache_mod_rewrite' => 'Apache - Módulo Rewrite', 'settings_Authentication' => 'Definições de autenticação', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Diretório de cache', 'settings_cacheDir_desc' => 'Onde as imagens de visualização são armazenadas (melhor escolher um diretório que não é acessível através de seu web-server)', 'settings_Calendar' => 'Configurações do calendário', @@ -890,6 +899,8 @@ URL: [url]', 'settings_cannot_disable' => 'Arquivo ENABLE_INSTALL_TOOL não pode ser eliminado', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Diretório de conteúdo', 'settings_contentDir_desc' => 'Onde arquivos enviados são armazenados (melhor escolher um diretório que não é acessível através de seu web-server)', 'settings_contentOffsetDir' => 'Pasta de Compensação de Conteúdo', @@ -949,6 +960,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Mostrar seletor para idioma de interface de usuário após login.', 'settings_enableLargeFileUpload' => 'Ativar envio de grandes arquivos', 'settings_enableLargeFileUpload_desc' => 'Se selecionado, o upload de arquivo também estará disponível através de um applet java chamado jumploader sem limite de tamanho de arquivo definido pelo navegador. Ele também permite fazer o upload de vários arquivos de uma só vez.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Habilitar notificações revisor/aprovador', 'settings_enableNotificationAppRev_desc' => 'Verificar o envio de uma notificação para o revisor/aprovador quando uma nova versão do documento for adicionada', 'settings_enableNotificationWorkflow' => '', @@ -990,6 +1003,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primeiro dia da semana', 'settings_footNote' => 'Nota de Pé', 'settings_footNote_desc' => 'Mensagem a ser exibida na parte inferior de cada página', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID convidado', 'settings_guestID_desc' => 'ID do usuário-convidado usada quando conectado como convidado (na maioria das vezes não há necessidade de mudar)', 'settings_httpRoot' => 'Raiz Http', @@ -1125,7 +1142,7 @@ URL: [url]', 'settings_workflowMode_desc' => 'O fluxo de trabalho avançado permite especificar seu próprio fluxo de trabalho de liberação de versões de documentos.', 'settings_workflowMode_valadvanced' => 'avançado', 'settings_workflowMode_valtraditional' => 'tradicional', -'settings_workflowMode_valtraditional_only_approval' => '', +'settings_workflowMode_valtraditional_only_approval' => 'tradicional (sem revisão)', 'settings_zendframework' => 'Zend Framework', 'set_expiry' => 'Configurar Expiração', 'set_owner' => 'Define proprietário', @@ -1206,6 +1223,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Este e-mail é apenas para testar a configuração de correio de SeedDMS', 'testmail_subject' => 'Email Teste', 'theme' => 'Tema', @@ -1237,7 +1255,7 @@ URL: [url]', 'tuesday' => 'Tuesday', 'tuesday_abbr' => 'Tu', 'type_to_search' => 'Tipo de pesquisa', -'uk_UA' => '', +'uk_UA' => 'Ucraniano', 'under_folder' => 'Na pasta', 'unknown_attrdef' => 'Definição de atributo desconhecido', 'unknown_command' => 'Command not recognized.', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 2ba64c166..ad896138b 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1005), balan (87) +// Translators: Admin (1007), balan (87) $text = array( 'accept' => 'Accept', @@ -281,6 +281,7 @@ URL: [url]', 'documents_to_receipt' => 'Documente in asteptare pentru confirmarea primirii', 'documents_to_review' => 'Documente care așteaptă revizuirea dumneavoastră', 'documents_to_revise' => 'Documente de revizut', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documente deținute de tine care necesită atenție', 'document_already_checkedout' => 'Acest document este deja verificat', 'document_already_locked' => 'Acest document este deja blocat', @@ -477,6 +478,7 @@ URL: [url]', 'home_folder' => 'Folder Home', 'hourly' => 'Orare', 'hours' => 'ore', +'hr_HR' => '', 'human_readable' => 'Arhivă lizibilă omului', 'hu_HU' => 'Ungureste', 'id' => 'ID', @@ -539,6 +541,7 @@ URL: [url]', 'keep_doc_status' => 'Păstrați status document', 'keywords' => 'Cuvinte cheie', 'keyword_exists' => 'Cuvant cheie existent deja', +'ko_KR' => '', 'language' => 'Limbă', 'lastaccess' => 'Ultima accesare', 'last_update' => 'Ultima actualizare', @@ -664,7 +667,9 @@ URL: [url]', 'no_group_members' => 'Acest grup nu are membri', 'no_linked_files' => 'Nici un fișiere asociate', 'no_previous_versions' => 'Nu sunt alte versiuni gasite', +'no_receipt_needed' => '', 'no_review_needed' => 'Nici o revizuire în așteptare.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Deci, nu puteti sa actualizati acest document. Vă rugăm să contactați administratorul.', 'no_user_image' => 'Nu au fost găsite imagini', @@ -907,6 +912,10 @@ URL: [url]', 'settings_Advanced' => 'Avansat', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Setări de autentificare', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Director Cache', 'settings_cacheDir_desc' => 'Unde sunt stocate imaginile de previzualizare (este recomandat sa alegeti un director care nu este accesibil prin intermediul web-server-ului dumneavoastră)', 'settings_Calendar' => 'Setări calendar', @@ -915,6 +924,8 @@ URL: [url]', 'settings_cannot_disable' => 'Fișierul ENABLE_INSTALL_TOOL nu a putut fi șters', 'settings_checkOutDir' => 'Director pentru documente verificate', 'settings_checkOutDir_desc' => 'Acesta este directorul unde se copie ultimul continut al unui document daca documentul este verificat. Daca faceti acest director accesibil pentru utilizatori, ei pot edita fisierul si ii pot face iar check in cand au terminat.', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Director conținut', 'settings_contentDir_desc' => 'Unde sunt stocate fișierele încărcate (este recomandat sa alegeti un director care nu este accesibil prin intermediul web-server-ului dumneavoastră)', 'settings_contentOffsetDir' => 'Conținut Director Offset', @@ -974,6 +985,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Arată selectorul de limbă pentru interfața cu utilizatorul după ce a fost autentificat.', 'settings_enableLargeFileUpload' => 'Activare încărcare fișier mare', 'settings_enableLargeFileUpload_desc' => 'Dacă este setat, incărcarea este de asemenea disponibilă prin intermediul unui applet Java numit jumploader fără limită de dimensiune a fișierului stabilită de browser. De asemenea, permite încărcarea mai multor fișiere într-un singur pas. Activand aceasta optiune va dezactiva optiunea http only cookies.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Activare notificari rezuitor/aprobator', 'settings_enableNotificationAppRev_desc' => 'Bifati pentru a trimite o notificare către revizuitor/aprobator când se adaugă o nouă versiune la document', 'settings_enableNotificationWorkflow' => 'Trimite notificare utilizatorilor din urmatorul pas al workflow-ului', @@ -1015,6 +1028,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Prima zi a săptămânii', 'settings_footNote' => 'Notă de subsol', 'settings_footNote_desc' => 'Mesaj pentru afișat în partea de jos a fiecarei pagini', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID oaspete', 'settings_guestID_desc' => 'ID-ul utilizatorului oaspete folosit când la Logarea ca oaspete (de cele mai multe ori nu este nevoie să se schimbe)', 'settings_httpRoot' => 'Http Root', @@ -1231,6 +1248,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Preia grupul de revizuitori din ultima versiune.', 'takeOverIndApprover' => 'Preia aprobatorul individual din ultima versiune.', 'takeOverIndReviewer' => 'Preia revizuitorul individual din ultima versiune.', +'tasks' => '', 'testmail_body' => 'Acest e-mail este doar pentru testarea configurarea email din SeedDMS', 'testmail_subject' => 'Mail de test', 'theme' => 'Temă', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 09e70d6cf..07e724039 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1251) +// Translators: Admin (1260) $text = array( 'accept' => 'Принять', @@ -188,12 +188,12 @@ URL: [url]', 'charts' => 'Диаграммы', 'chart_docsaccumulated_title' => 'Количество документов', 'chart_docspercategory_title' => '', -'chart_docspermimetype_title' => '', -'chart_docspermonth_title' => '', -'chart_docsperstatus_title' => '', +'chart_docspermimetype_title' => 'Документы по mime типам', +'chart_docspermonth_title' => 'Новые документы за месяц', +'chart_docsperstatus_title' => 'Документы по статусу', 'chart_docsperuser_title' => 'Документы на пользователя', -'chart_selection' => '', -'chart_sizeperuser_title' => '', +'chart_selection' => 'Выбор графика', +'chart_sizeperuser_title' => 'Занятое дисковое пространство по пользователям', 'checkedout_file_has_different_version' => '', 'checkedout_file_has_disappeared' => '', 'checkedout_file_is_unchanged' => '', @@ -269,6 +269,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Документы, ожидающие вашей рецензии', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Ваши документы, требующие внимания', 'document_already_checkedout' => '', 'document_already_locked' => 'Документ уже заблокирован', @@ -465,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Ежечасно', 'hours' => 'часы', +'hr_HR' => '', 'human_readable' => 'Понятный человеку архив', 'hu_HU' => 'Hungarian', 'id' => 'Идентификатор', @@ -527,6 +529,7 @@ URL: [url]', 'keep_doc_status' => 'Сохранить статус документа', 'keywords' => 'Метки', 'keyword_exists' => 'Метка существует', +'ko_KR' => '', 'language' => 'Язык', 'lastaccess' => '', 'last_update' => 'Последнее обновление', @@ -651,7 +654,9 @@ URL: [url]', 'no_group_members' => 'Группа не имеет членов', 'no_linked_files' => 'Нет связанных документов', 'no_previous_versions' => 'Нет предыдущих версий', +'no_receipt_needed' => '', 'no_review_needed' => 'Рецензия не требуется', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Вы не можете обновить документ. Свяжитесь с заблокировавшим его пользователем.', 'no_user_image' => 'Изображение не найдено', @@ -875,6 +880,10 @@ URL: [url]', 'settings_Advanced' => 'Дополнительно', 'settings_apache_mod_rewrite' => 'Apache — модуль Rewrite', 'settings_Authentication' => 'Настройки авторизации', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Каталог кэша', 'settings_cacheDir_desc' => 'Где хранятся эскизы изображений (лучше выбрать каталог недоступный веб-серверу).', 'settings_Calendar' => 'Настройки календаря', @@ -883,6 +892,8 @@ URL: [url]', 'settings_cannot_disable' => 'Невозможно удалить ENABLE_INSTALL_TOOL', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Каталог содержимого', 'settings_contentDir_desc' => 'Куда сохраняются загруженные файлы (лучше выбрать каталог недоступный веб-серверу).', 'settings_contentOffsetDir' => 'Базовый начальный каталог', @@ -942,6 +953,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Показывать меню выбора языка пользовательского интерфейса после входа в систему. Это не влияет на выбор языка на странице входа.', 'settings_enableLargeFileUpload' => 'Включить Java-загрузчик файлов', 'settings_enableLargeFileUpload_desc' => 'Если включено, загрузка файлов доступна так же через Java-апплет, называемый jumploader, без ограничения размера файла. Это также позволит загружать несколько файлов за раз.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Извещать рецензента или утверждающего', 'settings_enableNotificationAppRev_desc' => 'Включите для отправки извещения рецензенту или утверждающему при добавлении новой версии документа.', 'settings_enableNotificationWorkflow' => '', @@ -983,6 +996,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Первый день недели.', 'settings_footNote' => 'Нижний колонтитул', 'settings_footNote_desc' => 'Сообщение, показываемое внизу каждой страницы.', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Идентификатор гостя', 'settings_guestID_desc' => 'Идентификатор гостя (можно не изменять).', 'settings_httpRoot' => 'Корень http', @@ -1047,10 +1064,10 @@ URL: [url]', 'settings_php_version' => 'Версия PHP', 'settings_presetExpirationDate' => '', 'settings_presetExpirationDate_desc' => '', -'settings_previewWidthDetail' => '', +'settings_previewWidthDetail' => 'Ширина картинок предварительного просмотра (детально)', 'settings_previewWidthDetail_desc' => 'Ширина изображения для предпросмотра на странице информации', 'settings_previewWidthList' => 'Ширина изображения для предпросмотра (список)', -'settings_previewWidthList_desc' => '', +'settings_previewWidthList_desc' => 'Ширина картинок предварительного просмотра показана в списках', 'settings_printDisclaimer' => 'Выводить предупреждение', 'settings_printDisclaimer_desc' => 'Если включено, то предупреждение из lang.inc будет выводится внизу каждой страницы.', 'settings_quota' => 'Квота пользователя', @@ -1199,6 +1216,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Это тестовое письмо для проверки настроек почты SeedDMS', 'testmail_subject' => 'Тестовое письмо', 'theme' => 'Тема', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index df6df4f28..f6a41192c 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (462) +// Translators: Admin (478) $text = array( 'accept' => 'Prijať', @@ -170,14 +170,14 @@ $text = array( 'change_recipients' => '', 'change_revisors' => '', 'change_status' => 'Zmeniť stav', -'charts' => '', -'chart_docsaccumulated_title' => '', -'chart_docspercategory_title' => '', +'charts' => 'Grafy', +'chart_docsaccumulated_title' => 'Počet dokumentov', +'chart_docspercategory_title' => 'Dokumenty podľa kategórie', 'chart_docspermimetype_title' => '', -'chart_docspermonth_title' => '', -'chart_docsperstatus_title' => '', -'chart_docsperuser_title' => '', -'chart_selection' => '', +'chart_docspermonth_title' => 'Nové dokumenty za mesiac', +'chart_docsperstatus_title' => 'Dokumenty podľa stavu', +'chart_docsperuser_title' => 'Dokumenty podľa používateľa', +'chart_selection' => 'Vyber graf', 'chart_sizeperuser_title' => '', 'checkedout_file_has_different_version' => '', 'checkedout_file_has_disappeared' => '', @@ -237,7 +237,7 @@ $text = array( 'december' => 'December', 'default_access' => 'Štandardný režim prístupu', 'default_keywords' => 'Dostupné kľúčové slová', -'definitions' => '', +'definitions' => 'Definície', 'delete' => 'Zmazať', 'details' => 'Podrobnosti', 'details_version' => 'Podrobnosti verzie: [version]', @@ -254,6 +254,7 @@ $text = array( 'documents_to_receipt' => '', 'documents_to_review' => 'Dokumenty čakajúce na kontrolu používateľa', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty, ktoré používateľ vlastní a vyžadujú pozornosť', 'document_already_checkedout' => '', 'document_already_locked' => 'Tento dokument je už zamknutý', @@ -297,7 +298,7 @@ $text = array( 'draft_pending_review' => 'Návrh - čaká na kontrolu', 'drag_icon_here' => 'Sem myšou pretiahnite ikonu, zložku alebo dokument', 'dropfolder_file' => '', -'dropupload' => '', +'dropupload' => 'Rýchlo nahraj', 'drop_files_here' => 'Sem vložte súbory!', 'dump_creation' => 'Vytvorenie výstupu DB', 'dump_creation_warning' => 'Touto akciou môžete vytvoriť výstup obsahu Vašej databázy. Po vytvorení bude výstup uložený v dátovej zložke vášho servera.', @@ -396,6 +397,7 @@ $text = array( 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '', 'human_readable' => 'Použivateľský archív', 'hu_HU' => 'Maďarčina', 'id' => 'ID', @@ -458,6 +460,7 @@ $text = array( 'keep_doc_status' => '', 'keywords' => 'Kľúčové slová', 'keyword_exists' => 'Kľúčové slovo už existuje', +'ko_KR' => '', 'language' => 'Jazyk', 'lastaccess' => '', 'last_update' => 'Posledná aktualizácia', @@ -495,7 +498,7 @@ $text = array( 'may' => 'Máj', 'mimetype' => '', 'minutes' => '', -'misc' => '', +'misc' => 'Rôzne', 'missing_checksum' => '', 'missing_filesize' => '', 'missing_transition_user_group' => '', @@ -559,7 +562,9 @@ $text = array( 'no_group_members' => 'Táto skupina nemá žiadnych členov', 'no_linked_files' => 'No linked files', 'no_previous_versions' => 'Neboli nájdené žiadne iné verzie', +'no_receipt_needed' => '', 'no_review_needed' => 'No review pending.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Preto nemôžete aktualizovať tento dokument. Prosím, kontaktujte používateľa, ktorý ho zamkol.', 'no_user_image' => 'nebol nájdený žiadny obrázok', @@ -706,7 +711,7 @@ $text = array( 'search_time' => 'Uplynulý čas: [time] sek', 'seconds' => '', 'selection' => 'Výber', -'select_category' => '', +'select_category' => 'Vyber kategóriu', 'select_groups' => '', 'select_grp_approvers' => '', 'select_grp_notification' => '', @@ -735,6 +740,10 @@ $text = array( 'settings_Advanced' => '', 'settings_apache_mod_rewrite' => '', 'settings_Authentication' => '', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', 'settings_Calendar' => '', @@ -743,6 +752,8 @@ $text = array( 'settings_cannot_disable' => '', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => '', 'settings_contentDir_desc' => '', 'settings_contentOffsetDir' => '', @@ -802,6 +813,8 @@ $text = array( 'settings_enableLanguageSelector_desc' => '', 'settings_enableLargeFileUpload' => '', 'settings_enableLargeFileUpload_desc' => '', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => '', 'settings_enableNotificationAppRev_desc' => '', 'settings_enableNotificationWorkflow' => '', @@ -843,6 +856,10 @@ $text = array( 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', @@ -1059,6 +1076,7 @@ $text = array( 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => 'Vzhľad', @@ -1080,12 +1098,12 @@ $text = array( 'tr_TR' => 'Turecky', 'tuesday' => 'Utorok', 'tuesday_abbr' => '', -'type_to_search' => '', -'uk_UA' => '', +'type_to_search' => 'Vyhľadať typ', +'uk_UA' => 'Ukrajinsky', 'under_folder' => 'V zložke', 'unknown_attrdef' => '', 'unknown_command' => 'Príkaz nebol rozpoznaný.', -'unknown_document_category' => '', +'unknown_document_category' => 'Neznáma kategória', 'unknown_group' => 'Neznámy ID skupiny', 'unknown_id' => 'Neznáme ID', 'unknown_keyword_category' => 'Neznáma kategória', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 79810cb0e..53ab43946 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1089), tmichelfelder (106) +// Translators: Admin (1096), tmichelfelder (106) $text = array( 'accept' => 'Godkänn', @@ -269,6 +269,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Dokument som du behöver granska', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokument som du behöver granska/godkänna', 'document_already_checkedout' => '', 'document_already_locked' => 'Detta dokument är redan låst', @@ -348,7 +349,7 @@ URL: [url]', 'dump_creation_warning' => 'Med denna funktion kan du skapa en dumpfil av innehållet i din databas. När dumpfilen har skapats, kommer den att sparas i datamappen på servern.', 'dump_list' => 'Befintliga dumpfiler', 'dump_remove' => 'Ta bort dumpfil', -'duplicate_content' => '', +'duplicate_content' => 'Duplicera innehåll', 'edit' => 'Ändra', 'edit_attributes' => 'Ändra attribut', 'edit_comment' => 'Ändra kommentar', @@ -465,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'timvis', 'hours' => 'timmar', +'hr_HR' => 'Kroatiska', 'human_readable' => 'Arkiv som är läsbart av användare', 'hu_HU' => 'ungerska', 'id' => 'ID', @@ -527,6 +529,7 @@ URL: [url]', 'keep_doc_status' => 'Bibehåll dokumentstatus', 'keywords' => 'Nyckelord', 'keyword_exists' => 'Nyckelordet finns redan', +'ko_KR' => 'Koreanska', 'language' => 'Språk', 'lastaccess' => '', 'last_update' => 'Senast uppdaterat', @@ -652,7 +655,9 @@ URL: [url]', 'no_group_members' => 'Denna grupp har inga medlemmar', 'no_linked_files' => 'Inga länkade dokumenter', 'no_previous_versions' => 'Inga andra versioner hittades.', +'no_receipt_needed' => '', 'no_review_needed' => 'Det finns inga dokument som du behöver granska.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Därför kan du inte uppdatera detta dokument. Ta kontakt med användaren som låst dokumentet.', 'no_user_image' => 'Ingen bild hittades', @@ -702,7 +707,7 @@ URL: [url]', 'pt_BR' => 'portugisiska (BR)', 'quota' => 'Kvot', 'quota_exceeded' => 'Din minneskvot har överskridits med [bytes].', -'quota_is_disabled' => '', +'quota_is_disabled' => 'Kvot stöd är för närvarande inaktiverad i inställningarna. Ställa in en användarkvot kommer att ha någon effekt förrän den är aktiverad igen.', 'quota_warning' => 'Din maximala minneskvot har överskridits med [bytes]. Ta bort dokument eller tidigare versioner.', 'receipt_log' => '', 'receipt_summary' => '', @@ -870,6 +875,10 @@ URL: [url]', 'settings_Advanced' => 'Avancerat', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Autentiseringsinställningar', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Cache-mapp', 'settings_cacheDir_desc' => 'Här kommer bilder för förhandsvisning att sparas. (Det är bäst att använda en mapp som inte är tillgänglig från webbservern)', 'settings_Calendar' => 'Kalenderinställningar', @@ -878,6 +887,8 @@ URL: [url]', 'settings_cannot_disable' => 'Filen ENABLE_INSTALL_TOOL kunde inte tas bort', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Mapp för innehållet', 'settings_contentDir_desc' => 'Mappen där alla uppladdade filer kommer att sparas. (Det bästa är att välja en mapp som inte är tillgänglig från webbservern)', 'settings_contentOffsetDir' => 'Innehåll offset-mapp', @@ -937,6 +948,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Visa språkurval i användargränssnittet efter inloggning.', 'settings_enableLargeFileUpload' => 'Aktivera uppladdning av stora filer', 'settings_enableLargeFileUpload_desc' => 'Om aktiverad, kan filer laddas upp via javaapplet med namnet jumploader, utan begränsningar i filstorlek. Flera filer kan även laddas upp samtidigt i ett steg.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Aktivera meddelande till personer som granskar/godkänner', 'settings_enableNotificationAppRev_desc' => 'Kryssa i, för att skicka ett meddelande till personer som granskar/godkänner när en ny version av dokumentet har lagts till', 'settings_enableNotificationWorkflow' => '', @@ -978,6 +991,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Första dagen i veckan', 'settings_footNote' => 'Fotnot', 'settings_footNote_desc' => 'Meddelande som visas på slutet av varje sida', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gäst-ID', 'settings_guestID_desc' => 'ID som används för inloggad gästanvändare (behöver oftast inte ändras)', 'settings_httpRoot' => 'Http-Root', @@ -1194,6 +1211,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => 'Denna epost är bara till för att testa epost inställningarna av SeedDMS.', 'testmail_subject' => 'Test epost', 'theme' => 'Visningstema', @@ -1225,7 +1243,7 @@ URL: [url]', 'tuesday' => 'tisdag', 'tuesday_abbr' => 'ti', 'type_to_search' => 'Skriv för att söka', -'uk_UA' => '', +'uk_UA' => 'Ukrainska', 'under_folder' => 'I katalogen', 'unknown_attrdef' => 'Okännd attributdefinition', 'unknown_command' => 'Okänt kommando.', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index fd31fc59d..cca775cb1 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1004), aydin (83) +// Translators: Admin (1006), aydin (83) $text = array( 'accept' => 'Kabul', @@ -275,6 +275,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => 'Kontrol etmenizi bekleyen dokümanlar', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dikkatinizi gerektiren size ait dokümanlar', 'document_already_checkedout' => '', 'document_already_locked' => 'Bu doküman zaten kilitli', @@ -471,6 +472,7 @@ URL: [url]', 'home_folder' => 'Temel klasör', 'hourly' => 'Saatlik', 'hours' => 'saat', +'hr_HR' => '', 'human_readable' => 'Okunabilir arşiv', 'hu_HU' => 'Macarca', 'id' => 'ID', @@ -533,6 +535,7 @@ URL: [url]', 'keep_doc_status' => 'Doküman durumunu değiştirme', 'keywords' => 'Anahtar kelimeler', 'keyword_exists' => 'Anahtar kelime zaten mevcut', +'ko_KR' => '', 'language' => 'Dil', 'lastaccess' => 'Son erişim', 'last_update' => 'Son Güncelleme', @@ -658,7 +661,9 @@ URL: [url]', 'no_group_members' => 'Bu grubun hiç üyesi yok', 'no_linked_files' => 'Link verilmiş dosya yok', 'no_previous_versions' => 'Başka versiyon yok', +'no_receipt_needed' => '', 'no_review_needed' => 'Bekleyen kontrol yok.', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Bu doküman kilitli olduğundan güncellenemez. Lütfen kilitleyen kullanıcıyla görüşünüz.', 'no_user_image' => 'Resim bulunamadı', @@ -886,6 +891,10 @@ URL: [url]', 'settings_Advanced' => 'Gelişmiş ayarlar', 'settings_apache_mod_rewrite' => 'Apache - Module Rewrite', 'settings_Authentication' => 'Yetkilendirme ayarları', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Cache klasörü', 'settings_cacheDir_desc' => 'Önizleme resimlerinin depolanacağı yer (web üzerinden erişilemeyen bir yer tercih etmeniz önerilir.)', 'settings_Calendar' => 'Takvim ayarları', @@ -894,6 +903,8 @@ URL: [url]', 'settings_cannot_disable' => 'ENABLE_INSTALL_TOOL dosyası silinemedi', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'İçerik dizini', 'settings_contentDir_desc' => 'Yüklenecek dosyaların depolanacağı yer (web üzerinden erişilemeyen bir yer tercih etmeniz önerilir.)', 'settings_contentOffsetDir' => 'İçerik Ofset Klasörü', @@ -953,6 +964,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Kullanıcının giriş yaparken dil seçimi yapabilmesi için bu seçeneği etkinleştirin.', 'settings_enableLargeFileUpload' => 'Büyük dosya yüklemeyi etkinleştir', 'settings_enableLargeFileUpload_desc' => 'Etkinleştirilirse, büyük dosyalar dosya limitine bakılmaksızın jumploader isimli java applet aracılığıyla yüklenebilir. Bu ayrıca bir seferde birden çok dosya yüklemeyi de sağlar. Bu açıldığında sadece http çerezleri kapanmış olur.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Kontrol eden/onaylayan bildirimlerini etkinleştir', 'settings_enableNotificationAppRev_desc' => 'Dokümanın yeni versiyonu yüklendiğinde kontrol eden/onaylayana bildirim mesajı gitmesi için bunu etkinleştirin.', 'settings_enableNotificationWorkflow' => '', @@ -994,6 +1007,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Haftanın ilk günü', 'settings_footNote' => 'Dipnot', 'settings_footNote_desc' => 'Her sayfanın en altında görünecek mesaj', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Misafir ID', 'settings_guestID_desc' => 'Misafir kullanıcı için ID (genelde değiştirmek gerekmez)', 'settings_httpRoot' => 'Http Kök dizini', @@ -1210,6 +1227,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Bir önceki versiyon kontrolünü yapan grubu al.', 'takeOverIndApprover' => 'Bir önceki versiyonu onaylayanı al.', 'takeOverIndReviewer' => 'Bir önceki versiyonu kontrol edeni al.', +'tasks' => '', 'testmail_body' => 'Bu mail SeedDMS mail sisteminin kontrolü amacıyla gönderilmiştir.', 'testmail_subject' => 'Test e-posta', 'theme' => 'Tema', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 160f9c2ce..e3c508c6c 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1128) +// Translators: Admin (1130) $text = array( 'accept' => 'Прийняти', @@ -281,6 +281,7 @@ URL: [url]', 'documents_to_receipt' => 'Документи, які чекають підтвердження отримання', 'documents_to_review' => 'Документи, які чекають вашої рецензії', 'documents_to_revise' => 'Документи для повторного розгляду', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Ваші документи, які потребують уваги', 'document_already_checkedout' => 'Цей документ вже на обробці', 'document_already_locked' => 'Цей документ вже заблокований', @@ -477,6 +478,7 @@ URL: [url]', 'home_folder' => 'Домашній каталог', 'hourly' => 'Щогодини', 'hours' => 'години', +'hr_HR' => '', 'human_readable' => 'Зрозумілий людині архів', 'hu_HU' => 'Hungarian', 'id' => 'Ідентифікатор', @@ -539,6 +541,7 @@ URL: [url]', 'keep_doc_status' => 'Зберегти статус документа', 'keywords' => 'Ключові слова', 'keyword_exists' => 'Ключове слово існує', +'ko_KR' => '', 'language' => 'Мова', 'lastaccess' => 'Останній доступ', 'last_update' => 'Останнє оновлення', @@ -663,7 +666,9 @@ URL: [url]', 'no_group_members' => 'Група не має членів', 'no_linked_files' => 'Немає пов\'язаних документів', 'no_previous_versions' => 'Немає попередніх версій', +'no_receipt_needed' => '', 'no_review_needed' => 'Рецензія не потрібна', +'no_revision_needed' => '', 'no_revision_planed' => 'Повторне опрацювання не заплановане', 'no_update_cause_locked' => 'Ви не можете оновити документ. Зв\'яжіться з користувачем, який його заблокував.', 'no_user_image' => 'Зображення не знайдено', @@ -897,6 +902,10 @@ URL: [url]', 'settings_Advanced' => 'Додатково', 'settings_apache_mod_rewrite' => 'Apache — модуль Rewrite', 'settings_Authentication' => 'Налаштування авторизації', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => 'Каталог кешу', 'settings_cacheDir_desc' => 'Де зберігаються ескізи зображень (краще вибрати каталог, недоступний веб-серверові).', 'settings_Calendar' => 'Налаштування календаря', @@ -905,6 +914,8 @@ URL: [url]', 'settings_cannot_disable' => 'Неможливо видалити ENABLE_INSTALL_TOOL', 'settings_checkOutDir' => 'Каталог для документів на опрацюванні', 'settings_checkOutDir_desc' => 'Це каталог, куди скопійовано останній вміст документу, якщо він на опрацюванні. Якщо ви зробите цей каталог доступний користувачам, вони зможуть редагувати файл і завантажувати його назад по завершенні роботи.', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => 'Каталог вмісту', 'settings_contentDir_desc' => 'Куди зберігаються завантажені файли (краще вибрати каталог, недоступний веб-серверові).', 'settings_contentOffsetDir' => 'Базовий початковий каталог', @@ -964,6 +975,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => 'Відображати меню вибору мови інтерфейсу користувача після входу в систему. Це не впливає на вибір мови на сторінці авторизації.', 'settings_enableLargeFileUpload' => 'Увімкнути Java-завантажувач файлів', 'settings_enableLargeFileUpload_desc' => 'Якщо увімкнено, завантаження файлів доступне такок через Java-аплет jumploader без обмеження розміру файлів. Це також дозволить завантажувати кілька файлів за раз.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Сповіщати рецензента і затверджувача', 'settings_enableNotificationAppRev_desc' => 'Увімкніть для відправки сповіщення рецензенту чи затверджувачеві при додаванні нової версії документа.', 'settings_enableNotificationWorkflow' => 'Відсилати сповіщення користувачам, задіяним в наступній стадії процесу', @@ -1005,6 +1018,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Перший день тижня.', 'settings_footNote' => 'Нижній колонтитул', 'settings_footNote_desc' => 'Повідомлення, яке відображається внизу кожної сторінки.', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Ідентифікатор гостя', 'settings_guestID_desc' => 'Ідентифікатор гостя (можна не змінювати).', 'settings_httpRoot' => 'Корінь http', @@ -1221,6 +1238,7 @@ URL: [url]', 'takeOverGrpReviewer' => 'Використати групу рецензентів з попередньої версії', 'takeOverIndApprover' => 'Використати затверджувачів з попередньої версії', 'takeOverIndReviewer' => 'Використати рецензентів з попередньої версії', +'tasks' => '', 'testmail_body' => 'Це тестовий лист для перевірки налаштувань пошти SeedDMS', 'testmail_subject' => 'Тестовий лист', 'theme' => 'Тема', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 07dad6c93..c9c3eaf5f 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (578), fengjohn (5) +// Translators: Admin (589), fengjohn (5) $text = array( 'accept' => '接受', @@ -260,6 +260,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => '待您校对的文档', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => '需您关注的文档', 'document_already_checkedout' => '', 'document_already_locked' => '该文档已被锁定', @@ -402,6 +403,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '克罗地亚人', 'human_readable' => '可读存档', 'hu_HU' => '匈牙利语', 'id' => '序号', @@ -464,6 +466,7 @@ URL: [url]', 'keep_doc_status' => '', 'keywords' => '关键字', 'keyword_exists' => '关键字已存在', +'ko_KR' => '韩国人', 'language' => '语言', 'lastaccess' => '', 'last_update' => '上次更新', @@ -565,7 +568,9 @@ URL: [url]', 'no_group_members' => '该组没有成员', 'no_linked_files' => '无链接文件', 'no_previous_versions' => '无其它版本', +'no_receipt_needed' => '', 'no_review_needed' => '无待校对的文件', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => '您不能更新此文档,请联系该文档锁定人', 'no_user_image' => '无图片', @@ -698,15 +703,15 @@ URL: [url]', 'search_fulltext' => '', 'search_in' => '搜索于', 'search_mode_and' => '与模式', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => '仅文档', +'search_mode_folders' => '仅目录', 'search_mode_or' => '或模式', 'search_no_results' => '没有找到与您搜索添加相匹配的文件', 'search_query' => '搜索', 'search_report' => '找到 [count] 个文档', 'search_report_fulltext' => '', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => '搜索模式', +'search_resultmode_both' => '文档和目录', 'search_results' => '搜索结果', 'search_results_access_filtered' => '搜索到得结果中可能包含受限访问的文档', 'search_time' => '耗时:[time]秒', @@ -717,12 +722,12 @@ URL: [url]', 'select_grp_approvers' => '', 'select_grp_notification' => '', 'select_grp_recipients' => '', -'select_grp_reviewers' => '', +'select_grp_reviewers' => '点击选择审核群组', 'select_grp_revisors' => '', 'select_ind_approvers' => '', 'select_ind_notification' => '', 'select_ind_recipients' => '', -'select_ind_reviewers' => '', +'select_ind_reviewers' => '点击选择审核人', 'select_ind_revisors' => '', 'select_one' => '选择一个', 'select_users' => '点击选择用户', @@ -741,6 +746,10 @@ URL: [url]', 'settings_Advanced' => '高级设置', 'settings_apache_mod_rewrite' => '', 'settings_Authentication' => '', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', 'settings_Calendar' => '', @@ -749,6 +758,8 @@ URL: [url]', 'settings_cannot_disable' => '', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => '', 'settings_contentDir_desc' => '', 'settings_contentOffsetDir' => '内容偏移目录', @@ -808,6 +819,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => '', 'settings_enableLargeFileUpload' => '', 'settings_enableLargeFileUpload_desc' => '', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => '', 'settings_enableNotificationAppRev_desc' => '', 'settings_enableNotificationWorkflow' => '', @@ -849,6 +862,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '附注', 'settings_footNote_desc' => '显示在每个页面底部的信息', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', @@ -1065,6 +1082,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => '主题', @@ -1087,7 +1105,7 @@ URL: [url]', 'tuesday' => 'Tuesday', 'tuesday_abbr' => '', 'type_to_search' => '搜索类型', -'uk_UA' => '', +'uk_UA' => '乌克兰语', 'under_folder' => '文件夹内', 'unknown_attrdef' => '', 'unknown_command' => '未知命令', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 44224b89a..8e7109383 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2336) +// Translators: Admin (2338) $text = array( 'accept' => '接受', @@ -258,6 +258,7 @@ URL: [url]', 'documents_to_receipt' => '', 'documents_to_review' => '待您校對的文檔', 'documents_to_revise' => '', +'documents_user_rejected' => '', 'documents_user_requiring_attention' => '需您關注的文檔', 'document_already_checkedout' => '', 'document_already_locked' => '該文檔已被鎖定', @@ -400,6 +401,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '', 'human_readable' => '可讀存檔', 'hu_HU' => '匈牙利語', 'id' => '序號', @@ -462,6 +464,7 @@ URL: [url]', 'keep_doc_status' => '', 'keywords' => '關鍵字', 'keyword_exists' => '關鍵字已存在', +'ko_KR' => '', 'language' => '語言', 'lastaccess' => '', 'last_update' => '上次更新', @@ -563,7 +566,9 @@ URL: [url]', 'no_group_members' => '該組沒有成員', 'no_linked_files' => '無連結檔', 'no_previous_versions' => '無其它版本', +'no_receipt_needed' => '', 'no_review_needed' => '無待校對的文件', +'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => '您不能更新此文檔,請聯繫該文檔鎖定人', 'no_user_image' => '無圖片', @@ -739,6 +744,10 @@ URL: [url]', 'settings_Advanced' => '', 'settings_apache_mod_rewrite' => '', 'settings_Authentication' => '', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', 'settings_Calendar' => '', @@ -747,6 +756,8 @@ URL: [url]', 'settings_cannot_disable' => '', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', 'settings_contentDir' => '', 'settings_contentDir_desc' => '', 'settings_contentOffsetDir' => '內容偏移目錄', @@ -806,6 +817,8 @@ URL: [url]', 'settings_enableLanguageSelector_desc' => '', 'settings_enableLargeFileUpload' => '', 'settings_enableLargeFileUpload_desc' => '', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => '', 'settings_enableNotificationAppRev_desc' => '', 'settings_enableNotificationWorkflow' => '', @@ -847,6 +860,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', @@ -1063,6 +1080,7 @@ URL: [url]', 'takeOverGrpReviewer' => '', 'takeOverIndApprover' => '', 'takeOverIndReviewer' => '', +'tasks' => '', 'testmail_body' => '', 'testmail_subject' => '', 'theme' => '主題', diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index 9a4f845df..b0b4d7c47 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -293,15 +293,10 @@ for ($file_num=0;$file_num_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); + $index = $indexconf['Indexer']::open($settings->_luceneDir); if($index) { - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, true)); + $indexconf['Indexer']::init($settings->_stopWordsFile); + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, true)); } } diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 59851a7ba..3871d9c43 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -319,6 +319,17 @@ switch($command) { if($document) { if ($document->getAccessMode($user) >= M_READWRITE) { if($document->remove()) { + /* Remove the document from the fulltext index */ + if($settings->_enableFullSearch) { + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) { + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($_REQUEST['id'])) { + $index->delete($hit->id); + $index->commit(); + } + } + } header('Content-Type', 'application/json'); echo json_encode(array('success'=>true, 'message'=>'', 'data'=>'')); } else { diff --git a/op/op.EditDocument.php b/op/op.EditDocument.php index 0b6e645a7..fdc15a884 100644 --- a/op/op.EditDocument.php +++ b/op/op.EditDocument.php @@ -178,8 +178,8 @@ if (($oldcomment = $document->getComment()) != $comment) { } $expires = false; -if (isset($_POST["expires"]) && $_POST["expires"] != "false") { - if($_POST["expdate"]) { +if (!isset($_POST["expires"]) || $_POST["expires"] != "false") { + if(isset($_POST["expdate"]) && $_POST["expdate"]) { $tmp = explode('-', $_POST["expdate"]); $expires = mktime(0,0,0, $tmp[1], $tmp[0], $tmp[2]); } else { @@ -268,7 +268,6 @@ if($attributes) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName()))); } if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) { - print_r($attrdef); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName()))); } } diff --git a/op/op.RemoveDocument.php b/op/op.RemoveDocument.php index 5d5bbaf04..afaf8ac00 100644 --- a/op/op.RemoveDocument.php +++ b/op/op.RemoveDocument.php @@ -62,16 +62,13 @@ if (!$document->remove()) { /* Remove the document from the fulltext index */ if($settings->_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); - if($index && $hits = $index->find('document_id:'.$documentid)) { - $hit = $hits[0]; - $index->delete($hit->id); - $index->commit(); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) { + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($documentid)) { + $index->delete($hit->id); + $index->commit(); + } } } diff --git a/op/op.RemoveFolder.php b/op/op.RemoveFolder.php index 9857483d9..73e9080ef 100644 --- a/op/op.RemoveFolder.php +++ b/op/op.RemoveFolder.php @@ -54,21 +54,19 @@ $parent=$folder->getParent(); * The callback must return true other the removal will be canceled. */ if($settings->_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); - function removeFromIndex($index, $document) { - if($hits = $index->find('document_id:'.$document->getId())) { - $hit = $hits[0]; + function removeFromIndex($arr, $document) { + $index = $arr[0]; + $indexconf = $arr[1]; + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($document->getID())) { $index->delete($hit->id); $index->commit(); } return true; } - $dms->setCallback('onPreRemoveDocument', 'removeFromIndex', $index); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) + $dms->setCallback('onPreRemoveDocument', 'removeFromIndex', array($index, $indexconf)); } $nl = $folder->getNotifyList(); diff --git a/op/op.Search.php b/op/op.Search.php index 82428ff77..2b47cf0ed 100644 --- a/op/op.Search.php +++ b/op/op.Search.php @@ -112,25 +112,13 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { } } - $pageNumber=1; - if (isset($_GET["pg"])) { - if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { - $pageNumber = (integer)$_GET["pg"]; - } - else if (!strcasecmp($_GET["pg"], "all")) { - $pageNumber = "all"; - } - } - $startTime = getTime(); if($settings->_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); + if($settings->_fullSearchEngine == 'lucene') { + Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); + } } - Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); if(strlen($query) < 4 && strpos($query, '*')) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); $resArr = array(); @@ -140,8 +128,9 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { $entries = array(); $searchTime = 0; } else { - $index = Zend_Search_Lucene::open($settings->_luceneDir); - $lucenesearch = new SeedDMS_Lucene_Search($index); + $startTime = getTime(); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + $lucenesearch = new $indexconf['Search']($index); $hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categorynames); if($hits === false) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); @@ -166,11 +155,14 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { } $entries = array(); + $dcount = 0; + $fcount = 0; if($hits) { foreach($hits as $hit) { if($tmp = $dms->getDocument($hit['document_id'])) { if($tmp->getAccessMode($user) >= M_READ) { $entries[] = $tmp; + $dcount++; } } } diff --git a/op/op.Settings.php b/op/op.Settings.php index 33ac05aaa..920bd6740 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -67,6 +67,7 @@ if ($action == "saveSettings") $settings->_enableEmail =getBoolValue("enableEmail"); $settings->_enableUsersView = getBoolValue("enableUsersView"); $settings->_enableFullSearch = getBoolValue("enableFullSearch"); + $settings->_fullSearchEngine = $_POST["fullSearchEngine"]; $settings->_enableClipboard = getBoolValue("enableClipboard"); $settings->_enableDropUpload = getBoolValue("enableDropUpload"); $settings->_enableFolderTree = getBoolValue("enableFolderTree"); @@ -162,6 +163,7 @@ if ($action == "saveSettings") $settings->_maxDirID = intval($_POST["maxDirID"]); $settings->_updateNotifyTime = intval($_POST["updateNotifyTime"]); $settings->_maxExecutionTime = intval($_POST["maxExecutionTime"]); + $settings->_cmdTimeout = (intval($_POST["cmdTimeout"]) > 0) ?intval($_POST["cmdTimeout"]) : 1; // SETTINGS - ADVANCED - INDEX CMD $settings->_converters['fulltext'] = $_POST["converters"]; diff --git a/out/out.ApprovalSummary.php b/out/out.ApprovalSummary.php index f3667b3a5..7b0b49f4c 100644 --- a/out/out.ApprovalSummary.php +++ b/out/out.ApprovalSummary.php @@ -24,12 +24,17 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList)); if($view) { $view->show(); exit; diff --git a/out/out.IndexInfo.php b/out/out.IndexInfo.php index 78aec3925..5c5cb3cc1 100644 --- a/out/out.IndexInfo.php +++ b/out/out.IndexInfo.php @@ -34,12 +34,7 @@ if(!$settings->_enableFullSearch) { UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled")); } -if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); -else - require_once('SeedDMS/Lucene.php'); - -$index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); +$index = $indexconf['Indexer']::open($settings->_luceneDir); if(!$index) { UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); } diff --git a/out/out.Indexer.php b/out/out.Indexer.php index 5eb16598e..5f99225d3 100644 --- a/out/out.Indexer.php +++ b/out/out.Indexer.php @@ -35,25 +35,23 @@ if(!$settings->_enableFullSearch) { UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled")); } -if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); -else - require_once('SeedDMS/Lucene.php'); - if(isset($_GET['create']) && $_GET['create'] == 1) { if(isset($_GET['confirm']) && $_GET['confirm'] == 1) { - $index = SeedDMS_Lucene_Indexer::create($settings->_luceneDir); - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $index = $indexconf['Indexer']::create($settings->_luceneDir); + if(!$index) { + UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); + } + $indexconf['Indexer']::init($settings->_stopWordsFile); } else { header('Location: out.CreateIndex.php'); exit; } } else { - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); + $index = $indexconf['Indexer']::open($settings->_luceneDir); if(!$index) { UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); } - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $indexconf['Indexer']::init($settings->_stopWordsFile); } if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { @@ -65,7 +63,7 @@ else { $folder = $dms->getFolder($folderid); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'index'=>$index, 'recreate'=>(isset($_GET['create']) && $_GET['create']==1), 'folder'=>$folder, 'converters'=>$settings->_converters['fulltext'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'index'=>$index, 'indexconf'=>$indexconf, 'recreate'=>(isset($_GET['create']) && $_GET['create']==1), 'folder'=>$folder, 'converters'=>$settings->_converters['fulltext'], 'timeout'=>$settings->_cmdTimeout)); if($view) { $view->show(); exit; diff --git a/out/out.ReviewSummary.php b/out/out.ReviewSummary.php index 2c51cef90..c49f89efc 100644 --- a/out/out.ReviewSummary.php +++ b/out/out.ReviewSummary.php @@ -25,12 +25,17 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList)); if($view) { $view->show(); exit; diff --git a/out/out.UsrMgr.php b/out/out.UsrMgr.php index 6b3482b7a..1abbddab2 100644 --- a/out/out.UsrMgr.php +++ b/out/out.UsrMgr.php @@ -47,8 +47,7 @@ if(isset($_GET['userid']) && $_GET['userid']) { $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'seluser'=>$seluser, 'allusers'=>$users, 'allgroups'=>$groups, 'passwordstrength'=>$settings->_passwordStrength, 'passwordexpiration'=>$settings->_passwordExpiration, 'httproot'=>$settings->_httpRoot, 'enableuserimage'=>$settings->_enableUserImage, 'undeluserids'=>explode(',', $settings->_undelUserIds), 'workflowmode'=>$settings->_workflowMode, 'quota'=>$settings->_quota)); if($view) { - $view->show(); - exit; + $view($_GET); } ?> diff --git a/restapi/index.php b/restapi/index.php index 34036dae4..708544206 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -140,6 +140,7 @@ function getLockedDocuments() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -249,6 +250,7 @@ function getFolderChildren($id) { /* {{{ */ 'name'=>htmlspecialchars($document->getName()), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -436,6 +438,7 @@ function getDocument($id) { /* {{{ */ 'date'=>$document->getDate(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'keywords'=>htmlspecialchars($document->getKeywords()), ); $app->response()->header('Content-Type', 'application/json'); @@ -540,6 +543,7 @@ function getDocumentVersions($id) { /* {{{ */ 'version'=>$lc->getVersion(), 'date'=>$lc->getDate(), 'mimetype'=>$lc->getMimeType(), + 'size'=>$lc->getFileSize(), 'comment'=>htmlspecialchars($lc->getComment()), ); } @@ -752,6 +756,7 @@ function doSearch() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -814,6 +819,7 @@ function doSearchByAttr() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); diff --git a/styles/bootstrap/application.js b/styles/bootstrap/application.js index 20620dad2..b440132bb 100644 --- a/styles/bootstrap/application.js +++ b/styles/bootstrap/application.js @@ -382,9 +382,6 @@ $(document).ready( function() { }); }); -}); - -$(document).ready( function() { $(document).on('change', '.btn-file :file', function() { var input = $(this), numFiles = input.get(0).files ? input.get(0).files.length : 1, @@ -402,6 +399,62 @@ $(document).ready( function() { if( log ) alert(log); } }); + + $('div.ajax').each(function(index) { + var element = $(this); + var url = ''; + var href = element.data('href'); + var view = element.data('view'); + var action = element.data('action'); + if(view && action) + url = "out."+view+".php?action="+action; + else + url = href; + // console.log('Calling '+url); + $.get(url, function(data) { + element.html(data); + $(".chzn-select").chosen(); + }); + }); + $('div.ajax').on('update', function(event, param1) { + var element = $(this); + var url = ''; + var href = element.data('href'); + var view = element.data('view'); + var action = element.data('action'); + if(view && action) + url = "out."+view+".php?action="+action; + else + url = href; + if(typeof param1 === 'object') { + for(var key in param1) { + url += "&"+key+"="+param1[key]; + } + } else { + url += "&"+param1; + } + // console.log("Calling: "+url); + element.prepend('
'); + $.get(url, function(data) { + element.html(data); + $(".chzn-select").chosen(); + }); + }); + $("body").on("click", ".ajax-click", function() { + var element = $(this); + var url = element.data('href')+"?"+element.data('param1'); + $.ajax({ + type: 'GET', + url: url, + dataType: 'json', + success: function(data){ + for (var i = 0; i < data.length; i++) { + noty({text: data[i].text, type: data[i].type}); + } + } + }); + }); + }); function allowDrop(ev) { diff --git a/utils/indexer.php b/utils/indexer.php index e7b6de1f4..d8170469a 100644 --- a/utils/indexer.php +++ b/utils/indexer.php @@ -52,26 +52,46 @@ if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); require_once("SeedDMS/Core.php"); -require_once("SeedDMS/Lucene.php"); +if($settings->_fullSearchEngine == 'sqlitefts') { + $indexconf = array( + 'Indexer' => 'SeedDMS_SQLiteFTS_Indexer', + 'Search' => 'SeedDMS_SQLiteFTS_Search', + 'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument' + ); -function tree($dms, $index, $folder, $indent='') { + require_once('SeedDMS/SQLiteFTS.php'); +} else { + $indexconf = array( + 'Indexer' => 'SeedDMS_Lucene_Indexer', + 'Search' => 'SeedDMS_Lucene_Search', + 'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument' + ); + + require_once('SeedDMS/Lucene.php'); +} + +function tree($dms, $index, $indexconf, $folder, $indent='') { /* {{{ */ global $settings; echo $indent."D ".$folder->getName()."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { - tree($dms, $index, $subfolder, $indent.' '); + tree($dms, $index, $indexconf, $subfolder, $indent.' '); } $documents = $folder->getDocuments(); foreach($documents as $document) { echo $indent." ".$document->getId().":".$document->getName()." "; - if(!($hits = $index->find('document_id:'.$document->getId()))) { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null)); - echo " (Document added)\n"; + $lucenesearch = new $indexconf['Search']($index); + if(!($hit = $lucenesearch->getDocument($document->getId()))) { + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false)); + echo " (Document added)\n"; + } catch(Exception $e) { + echo " (Timeout)\n"; + } } else { - $hit = $hits[0]; try { $created = (int) $hit->getDocument()->getFieldValue('created'); - } catch (Zend_Search_Lucene_Exception $e) { + } catch (Exception $e) { $created = 0; } $content = $document->getLatestContent(); @@ -79,33 +99,42 @@ function tree($dms, $index, $folder, $indent='') { echo " (Document unchanged)\n"; } else { if($index->delete($hit->id)) { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $settings->_converters['fulltext'] ? $settings->_converters['fulltext'] : null)); - echo " (Document updated)\n"; + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false)); + echo " (Document updated)\n"; + } catch(Exception $e) { + echo " (Timeout)\n"; + } } } } } -} +} /* }}} */ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); if(!$dms->checkVersion()) { - echo "Database update needed."; - exit; + echo "Database update needed.\n"; + exit(1); } $dms->setRootFolderID($settings->_rootFolderID); if($recreate) - $index = Zend_Search_Lucene::create($settings->_luceneDir); + $index = $indexconf['Indexer']::create($settings->_luceneDir); else - $index = Zend_Search_Lucene::open($settings->_luceneDir); -SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $index = $indexconf['Indexer']::open($settings->_luceneDir); +if(!$index) { + echo "Could not create index.\n"; + exit(1); +} + +$indexconf['Indexer']::init($settings->_stopWordsFile); $folder = $dms->getFolder($settings->_rootFolderID); -tree($dms, $index, $folder); +tree($dms, $index, $indexconf, $folder); $index->commit(); $index->optimize(); diff --git a/utils/xmldump.php b/utils/xmldump.php index 7fe650e6d..af51ca072 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -13,7 +13,12 @@ function usage() { /* {{{ */ echo " -v, --version: print version and exit.\n"; echo " --config: set alternative config file.\n"; echo " --folder: set start folder.\n"; - echo " --maxsize: maximum size of files to be include in output.\n"; + echo " --skip-root: do not export the root folder itself.\n"; + echo " --sections : comma seperated list of sections to export.\n"; + echo " --maxsize: maximum size of files to be included in output\n"; + echo " (defaults to 100000)\n"; + echo " --contentdir: directory where all document versions are stored\n"; + echo " which are larger than maxsize.\n"; } /* }}} */ function wrapWithCData($text) { /* {{{ */ @@ -25,7 +30,7 @@ function wrapWithCData($text) { /* {{{ */ $version = "0.0.1"; $shortoptions = "hv"; -$longoptions = array('help', 'version', 'config:', 'folder:', 'maxsize:'); +$longoptions = array('help', 'version', 'skip-root', 'config:', 'folder:', 'maxsize:', 'contentdir:', 'sections:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); @@ -52,11 +57,30 @@ if(isset($options['config'])) { /* Set maximum size of files included in xml file */ if(isset($options['maxsize'])) { - $maxsize = intval($maxsize); + $maxsize = intval($options['maxsize']); } else { $maxsize = 100000; } +/* Set directory for file largen than maxsize */ +if(isset($options['contentdir'])) { + if(file_exists($options['contentdir'])) { + $contentdir = $options['contentdir']; + if(substr($contentdir, -1, 1) != DIRECTORY_SEPARATOR) + $contentdir .= DIRECTORY_SEPARATOR; + } else { + echo "Directory ".$options['contentdir']." does not exists\n"; + exit(1); + } +} else { + $contentdir = ''; +} + +$sections = array(); +if(isset($options['sections'])) { + $sections = explode(',', $options['sections']); +} + if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); @@ -68,54 +92,132 @@ if(isset($options['folder'])) { $folderid = $settings->_rootFolderID; } -function tree($folder, $parent=null, $indent='') { /* {{{ */ - global $index, $dms; - echo $indent."getId()."\""; - if($parent) - echo " parent=\"".$parent->getID()."\""; - echo ">\n"; - echo $indent." ".wrapWithCData($folder->getName())."\n"; - echo $indent." ".date('c', $folder->getDate())."\n"; - echo $indent." ".$folder->getDefaultAccess()."\n"; - echo $indent." ".$folder->inheritsAccess()."\n"; - echo $indent." ".$folder->getSequence()."\n"; - if($folder->getComment()) +$skiproot = false; +if(isset($options['skip-root'])) { + $skiproot = true; +} + +$statistic = array( + 'documents'=>0, + 'folders'=>0, + 'users'=>0, + 'groups'=>0, + 'attributedefinitions'=>0, + 'keywordcategories'=>0, + 'documentcategories'=>0, +); + +function dumplog($version, $type, $logs, $indent) { /* {{{ */ + global $dms, $contentdir, $maxsize; + + $document = $version->getDocument(); + switch($type) { + case 'approval': + $type2 = 'approve'; + break; + default: + $type2 = $type; + } + echo $indent." <".$type."s>\n"; + $curid = 0; + foreach($logs as $a) { + if($a[$type2.'ID'] != $curid) { + if($curid != 0) { + echo $indent." \n"; + } + echo $indent." <".$type." id=\"".$a[$type2.'ID']."\">\n"; + echo $indent." ".$a['type']."\n"; + echo $indent." ".$a['required']."\n"; + } + echo $indent." <".$type."log id=\"".$a[$type2.'LogID']."\">\n"; + echo $indent." ".$a['userID']."\n"; + echo $indent." ".$a['status']."\n"; + echo $indent." ".wrapWithCData($a['comment'])."\n"; + echo $indent." ".$a['date']."\n"; + if(!empty($a['file'])) { + $filename = $dms->contentDir . $document->getDir().'r'.(int) $a[$type2.'LogID']; + if(file_exists($filename)) { + echo $indent." \n"; + echo chunk_split(base64_encode(file_get_contents($filename)), 76, "\n"); + echo $indent." \n"; + } else { + echo " fileref=\"".$filename."\" />\n"; + if($contentdir) { + copy($filename, $contentdir.$document->getID()."-R-".$a[$type2.'LogID']); + } else { + echo "Warning: ".$type." log file (size=".filesize($filename).") will be missing from output\n"; + } + } + } + } + echo $indent." \n"; + $curid = $a[$type2.'ID']; + } + if($curid != 0) + echo $indent." \n"; + echo $indent." \n"; +} /* }}} */ + +function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ + global $sections, $statistic, $index, $dms, $maxsize, $contentdir; + + if(!$sections || in_array('folders', $sections)) { + if(!$skipcurrent) { + echo $indent."getId()."\""; + if($parent) + echo " parent=\"".$parent->getID()."\""; + echo ">\n"; + echo $indent." ".wrapWithCData($folder->getName())."\n"; + echo $indent." ".date('Y-m-d H:i:s', $folder->getDate())."\n"; + echo $indent." ".$folder->getDefaultAccess()."\n"; + echo $indent." ".$folder->inheritsAccess()."\n"; + echo $indent." ".$folder->getSequence()."\n"; echo $indent." ".wrapWithCData($folder->getComment())."\n"; - echo $indent." ".$folder->getOwner()->getId()."\n"; - if($attributes = $folder->getAttributes()) { - foreach($attributes as $attribute) { - $attrdef = $attribute->getAttributeDefinition(); - echo $indent." getID()."\">".$attribute->getValue()."\n"; + echo $indent." ".$folder->getOwner()->getId()."\n"; + if($attributes = $folder->getAttributes()) { + foreach($attributes as $attribute) { + $attrdef = $attribute->getAttributeDefinition(); + echo $indent." getID()."\">".$attribute->getValue()."\n"; + } } - } - if($folder->inheritsAccess()) { - echo $indent." \n"; + if($folder->inheritsAccess()) { + echo $indent." \n"; + } else { + echo $indent." \n"; + $accesslist = $folder->getAccessList(); + foreach($accesslist['users'] as $acl) { + echo $indent." getUser(); + echo " user=\"".$user->getID()."\""; + echo " mode=\"".$acl->getMode()."\""; + echo "/>\n"; + } + foreach($accesslist['groups'] as $acl) { + echo $indent." getGroup(); + echo $indent." group=\"".$group->getID()."\""; + echo $indent." mode=\"".$acl->getMode()."\""; + echo "/>\n"; + } + echo $indent." \n"; + } + echo $indent."\n"; + $statistic['folders']++; + $parentfolder = $folder; } else { - echo $indent." \n"; - $accesslist = $folder->getAccessList(); - foreach($accesslist['users'] as $acl) { - echo $indent." getUser(); - echo " user=\"".$user->getID()."\""; - echo " mode=\"".$acl->getMode()."\""; - echo "/>\n"; - } - foreach($accesslist['groups'] as $acl) { - echo $indent." getGroup(); - echo $indent." group=\"".$group->getID()."\""; - echo $indent." mode=\"".$acl->getMode()."\""; - echo "/>\n"; - } - echo $indent." \n"; + $parentfolder = null; } - echo $indent."\n"; $subfolders = $folder->getSubFolders(); if($subfolders) { foreach($subfolders as $subfolder) { - tree($subfolder, $folder, $indent); + tree($subfolder, $parentfolder, $indent); } } + } + + if(!$sections || in_array('documents', $sections)) { $documents = $folder->getDocuments(); if($documents) { foreach($documents as $document) { @@ -125,9 +227,9 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ echo " locked=\"true\""; echo ">\n"; echo $indent." ".wrapWithCData($document->getName())."\n"; - echo $indent." ".date('c', $document->getDate())."\n"; + echo $indent." ".date('Y-m-d H:i:s', $document->getDate())."\n"; if($document->getExpires()) - echo $indent." ".date('c', $document->getExpires())."\n"; + echo $indent." ".date('Y-m-d H:i:s', $document->getExpires())."\n"; echo $indent." ".$owner->getId()."\n"; if($document->getKeywords()) echo $indent." ".wrapWithCData($document->getKeywords())."\n"; @@ -138,8 +240,7 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ $user = $document->getLockingUser(); echo $indent." ".$user->getId()."\n"; } - if($document->getComment()) - echo $indent." ".wrapWithCData($document->getComment())."\n"; + echo $indent." ".wrapWithCData($document->getComment())."\n"; if($attributes = $document->getAttributes()) { foreach($attributes as $attribute) { $attrdef = $attribute->getAttributeDefinition(); @@ -149,36 +250,30 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ /* Check if acl is not inherited */ if(!$document->inheritsAccess()) { - $acls = $document->getAccessList(); - if($acls['groups'] || $acls['users']) { - echo $indent." \n"; - if($acls['users']) { - foreach($acls['users'] as $acluser) { - $user = $acluser->getUser(); - echo $indent." \n"; - echo $indent." ".$user->getId()."\n"; - echo $indent." ".$acluser->getMode()."\n"; - echo $indent." \n"; - } - } - if($acls['groups']) { - foreach($acls['groups'] as $aclgroup) { - $group = $aclgroup->getGroup(); - echo $indent." \n"; - echo $indent." ".$group->getId()."\n"; - echo $indent." ".$acluser->getMode()."\n"; - echo $indent." \n"; - } - } - echo $indent." \n"; + echo $indent." \n"; + $accesslist = $document->getAccessList(); + foreach($accesslist['users'] as $acl) { + echo $indent." getUser(); + echo " user=\"".$user->getID()."\""; + echo " mode=\"".$acl->getMode()."\""; + echo "/>\n"; } + foreach($accesslist['groups'] as $acl) { + echo $indent." getGroup(); + echo $indent." group=\"".$group->getID()."\""; + echo $indent." mode=\"".$acl->getMode()."\""; + echo "/>\n"; + } + echo $indent." \n"; } $cats = $document->getCategories(); if($cats) { echo $indent." \n"; foreach($cats as $cat) { - echo $indent." ".$cat->getId()."\n"; + echo $indent." getId()."\"/>\n"; } echo $indent." \n"; } @@ -187,12 +282,12 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ if($versions) { echo $indent." \n"; foreach($versions as $version) { - $approvalStatus = $version->getApprovalStatus(); - $reviewStatus = $version->getReviewStatus(); + $approvalStatus = $version->getApprovalStatus(30); + $reviewStatus = $version->getReviewStatus(30); $owner = $version->getUser(); - echo $indent." getVersion()."\">\n"; + echo $indent." getVersion()."\">\n"; echo $indent." ".$version->getMimeType()."\n"; - echo $indent." ".date('c', $version->getDate())."\n"; + echo $indent." ".date('Y-m-d H:i:s', $version->getDate())."\n"; echo $indent." ".$version->getFileType()."\n"; echo $indent." ".wrapWithCData($version->getComment())."\n"; echo $indent." ".$owner->getId()."\n"; @@ -203,40 +298,38 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ echo $indent." getID()."\">".$attribute->getValue()."\n"; } } - if($approvalStatus) { - echo $indent." \n"; - foreach($approvalStatus as $a) { - echo $indent." \n"; - echo $indent." ".$a['type']."\n"; - echo $indent." ".$a['required']."\n"; - echo $indent." ".$a['status']."\n"; - echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['userID']."\n"; - echo $indent." ".$a['date']."\n"; - echo $indent." \n"; + if($statuslog = $version->getStatusLog()) { + echo $indent." \n"; + foreach($statuslog as $entry) { + echo $indent." \n"; + echo $indent." ".$entry['status']."\n"; + echo $indent." ".wrapWithCData($entry['comment'])."\n"; + echo $indent." ".$entry['date']."\n"; + echo $indent." ".$entry['userID']."\n"; + echo $indent." \n"; } - echo $indent." \n"; + echo $indent." \n"; + } + if($approvalStatus) { + dumplog($version, 'approval', $approvalStatus, $indent); } if($reviewStatus) { - echo $indent." \n"; - foreach($reviewStatus as $a) { - echo $indent." \n"; - echo $indent." ".$a['type']."\n"; - echo $indent." ".$a['required']."\n"; - echo $indent." ".$a['status']."\n"; - echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['userID']."\n"; - echo $indent." ".$a['date']."\n"; - echo $indent." \n"; - } - echo $indent." \n"; + dumplog($version, 'review', $reviewStatus, $indent); } if(file_exists($dms->contentDir . $version->getPath())) { - echo $indent." contentDir . $version->getPath())."\">\n"; - if(filesize($dms->contentDir . $version->getPath()) < 1000000) { + echo $indent." contentDir . $version->getPath())."\""; + if(filesize($dms->contentDir . $version->getPath()) < $maxsize) { + echo ">\n"; echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $version->getPath())), 76, "\n"); + echo $indent." \n"; + } else { + echo " fileref=\"".$document->getID()."-".$version->getVersion().$version->getFileType()."\" />\n"; + if($contentdir) { + copy($dms->contentDir . $version->getPath(), $contentdir.$document->getID()."-".$version->getVersion().$version->getFileType()); + } else { + echo "Warning: version content (size=".filesize($dms->contentDir . $version->getPath()).") will be missing from output\n"; + } } - echo $indent." \n"; } else { echo $indent." \n"; } @@ -253,16 +346,28 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ echo $indent." getId()."\">\n"; echo $indent." ".wrapWithCData($file->getName())."\n"; echo $indent." ".$file->getMimeType()."\n"; - echo $indent." ".date('c', $file->getDate())."\n"; + echo $indent." ".date('Y-m-d H:i:s', $file->getDate())."\n"; echo $indent." ".wrapWithCData($file->getFileType())."\n"; echo $indent." ".$owner->getId()."\n"; echo $indent." ".wrapWithCData($file->getComment())."\n"; echo $indent." ".wrapWithCData($file->getOriginalFileName())."\n"; - echo $indent." contentDir . $file->getPath())."\">\n"; - if(filesize($dms->contentDir . $file->getPath()) < 1000000) { - echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $file->getPath())), 76, "\n"); + if(file_exists($dms->contentDir . $file->getPath())) { + echo $indent." contentDir . $file->getPath())."\""; + if(filesize($dms->contentDir . $file->getPath()) < $maxsize) { + echo ">\n"; + echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $file->getPath())), 76, "\n"); + echo $indent." \n"; + } else { + echo " fileref=\"".$document->getID()."-A-".$file->getID().$file->getFileType()."\" />\n"; + if($contentdir) { + copy($dms->contentDir . $version->getPath(), $contentdir.$document->getID()."-A-".$file->getID().$file->getFileType()); + } else { + echo "Warning: file content (size=".filesize($dms->contentDir . $file->getPath()).") will be missing from output\n"; + } + } + } else { + echo $indent." \n"; } - echo $indent." \n"; echo $indent." \n"; } echo $indent." \n"; @@ -287,32 +392,30 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */ echo $indent." \n"; if($notifications['users']) { foreach($notifications['users'] as $user) { - echo $indent." \n"; - echo $indent." ".$user->getId()."\n"; - echo $indent." \n"; + echo $indent." getID()."\" />\n"; } } if($notifications['groups']) { foreach($notifications['groups'] as $group) { - echo $indent." \n"; - echo $indent." ".$group->getId()."\n"; - echo $indent." \n"; + echo $indent." getID()."\" />\n"; } } - echo $indent." \n"; + echo $indent." \n"; } } echo $indent."\n"; + $statistic['documents']++; } } + } } /* }}} */ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); -if(!$dms->checkVersion()) { +if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { echo "Database update needed."; exit; } @@ -320,7 +423,10 @@ if(!$dms->checkVersion()) { $dms->setRootFolderID($settings->_rootFolderID); echo "\n"; -echo "\n"; +echo "getDBVersion(), 1, 3))."\" date=\"".date('Y-m-d H:i:s')."\">\n"; + +/* Dump users {{{ */ +if(!$sections || in_array('users', $sections)) { $users = $dms->getAllUsers(); if($users) { echo "\n"; @@ -343,11 +449,36 @@ if($users) { echo " ".base64_encode($image['image'])."\n"; echo " \n"; } + if($mreviewers = $user->getMandatoryReviewers()) { + echo " \n"; + foreach($mreviewers as $mreviewer) { + if((int) $mreviewer['reviewerUserID']) + echo " \n"; + elseif((int) $mreviewer['reviewerGroupID']) + echo " \n"; + } + echo " \n"; + } + if($mapprovers = $user->getMandatoryApprovers()) { + echo " \n"; + foreach($mapprovers as $mapprover) { + if((int) $mapprover['approverUserID']) + echo " \n"; + elseif((int) $mapprover['approverGroupID']) + echo " \n"; + } + echo " \n"; + } echo " \n"; + $statistic['users']++; } echo "\n"; } +} +/* }}} */ +/* Dump groups {{{ */ +if(!$sections || in_array('groups', $sections)) { $groups = $dms->getAllGroups(); if($groups) { echo "\n"; @@ -359,15 +490,20 @@ if($groups) { if($users) { echo " \n"; foreach ($users as $user) { - echo " ".$user->getId()."\n"; + echo " getId()."\"/>\n"; } echo " \n"; } echo " \n"; + $statistic['groups']++; } echo "\n"; } +} +/* }}} */ +/* Dump keywordcategories {{{ */ +if(!$sections || in_array('keywordcategories', $sections)) { $categories = $dms->getAllKeywordCategories(); if($categories) { echo "\n"; @@ -386,10 +522,15 @@ if($categories) { echo " \n"; } echo " \n"; + $statistic['keywordcategories']++; } echo "\n"; } +} +/* }}} */ +/* Dump documentcategories {{{ */ +if(!$sections || in_array('documentcategories', $sections)) { $categories = $dms->getDocumentCategories(); if($categories) { echo "\n"; @@ -397,10 +538,15 @@ if($categories) { echo " getId()."\">\n"; echo " ".wrapWithCData($category->getName())."\n"; echo " \n"; + $statistic['documentcategories']++; } echo "\n"; } +} +/* }}} */ +/* Dump attributedefinition {{{ */ +if(!$sections || in_array('attributedefinition', $sections)) { $attrdefs = $dms->getAllAttributeDefinitions(); if($attrdefs) { echo "\n"; @@ -427,15 +573,29 @@ if($attrdefs) { echo " ".$attrdef->getType()."\n"; echo " ".$attrdef->getMinValues()."\n"; echo " ".$attrdef->getMaxValues()."\n"; + echo " ".wrapWithCData($attrdef->getRegex())."\n"; echo " \n"; + $statistic['attributedefinitions']++; } echo "\n"; } +} +/* }}} */ +/* Dump folders and documents {{{ */ $folder = $dms->getFolder($folderid); if($folder) { - tree($folder); + tree($folder, null, '', $skiproot); } +/* }}} */ + +/* Dump statistics {{{ */ +echo "\n"; +echo " \n"; +foreach($statistic as $type=>$count) + echo " <".$type.">".$count."\n"; +echo "\n"; +/* }}} */ echo "\n"; ?> diff --git a/utils/xmlimport.php b/utils/xmlimport.php index 9ede63104..cc7c874e6 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -1,5 +1,5 @@ : set alternative config file.\n"; + echo " --folder : set import folder.\n"; + echo " --file : file containing the dump.\n"; + echo " --sections : comma seperated list of sections to read from dump.\n"; echo " can be: users, groups, documents, folders, keywordcategories, or\n"; echo " documentcategories\n"; + echo " --contentdir : directory where all document versions are stored\n"; + echo " which are not included in the xml file.\n"; + echo " --default-user : use this user if user could not be found.\n"; + echo " --export-mapping : write object mapping into file\n"; + echo " --debug: turn debug output on\n"; +} /* }}} */ + +function dateToTimestamp($date, $format='Y-m-d H:i:s') { /* {{{ */ + $p = date_parse_from_format($format, $date); + return mktime($p['hour'], $p['minute'], $p['second'], $p['month'], $p['day'], $p['year']); +} /* }}} */ + +function getRevAppLog($reviews) { /* {{{ */ + global $dms, $objmap; + + $newreviews = array(); + foreach($reviews as $i=>$review) { + $newreview = array('type'=>$review['attributes']['type']); + if($review['attributes']['type'] == 1) { + if(isset($objmap['groups'][(int) $review['attributes']['required']])) + $newreview['required'] = $dms->getGroup($objmap['groups'][(int) $review['attributes']['required']]); + } else { + if(isset($objmap['users'][(int) $review['attributes']['required']])) + $newreview['required'] = $dms->getUser($objmap['users'][(int) $review['attributes']['required']]); + } + $newreview['logs'] = array(); + foreach($review['logs'] as $j=>$log) { + if(!array_key_exists($log['attributes']['user'], $objmap['users'])) { + echo "Warning: user for review log cannot be mapped\n"; + } else { + $newlog = array(); + $newlog['user'] = $dms->getUser($objmap['users'][$log['attributes']['user']]); + $newlog['status'] = $log['attributes']['status']; + $newlog['comment'] = $log['attributes']['comment']; + $newlog['date'] = $log['attributes']['date']; + $newreview['logs'][] = $newlog; + } + } + $newreviews[] = $newreview; + } + return $newreviews; } /* }}} */ function insert_user($user) { /* {{{ */ - global $dms; + global $dms, $debug, $sections, $defaultUser, $objmap; - print_r($user); - if (is_object($dms->getUserByLogin($user['attributes']['login']))) { - echo "User already exists\n"; + if($debug) print_r($user); + + if ($newUser = $dms->getUserByLogin($user['attributes']['login'])) { + echo "User '".$user['attributes']['login']."' already exists\n"; } else { - $newUser = $dms->addUser( - $user['attributes']['login'], - $user['attributes']['pwd'], - $user['attributes']['fullname'], - $user['attributes']['email'], - $user['attributes']['language'], - $user['attributes']['theme'], - $user['attributes']['comment'], - $user['attributes']['role'], - $user['attributes']['hidden'], - $user['attributes']['disabled'], - $user['attributes']['pwdexpiration']); - if(!$newUser) { - echo "Error: could not add user\n"; + if(in_array('users', $sections)) { + $newUser = $dms->addUser( + $user['attributes']['login'], + $user['attributes']['pwd'], + $user['attributes']['fullname'], + $user['attributes']['email'], + $user['attributes']['language'], + $user['attributes']['theme'], + $user['attributes']['comment'], + $user['attributes']['role'], + $user['attributes']['hidden'], + $user['attributes']['disabled'], + $user['attributes']['pwdexpiration']); + if(!$newUser) { + echo "Error: could not add user\n"; + return false; + } + } else { + $newUser = $defaultUser; } } + if($newUser) + $objmap['users'][$user['id']] = $newUser->getID(); + return $newUser; } /* }}} */ function insert_group($group) { /* {{{ */ - global $dms, $users; + global $dms, $debug, $objmap, $sections, $users; - print_r($group); - if (is_object($dms->getGroupByName($group['attributes']['name']))) { + if($debug) print_r($group); + + if ($newGroup = $dms->getGroupByName($group['attributes']['name'])) { echo "Group already exists\n"; } else { - $newGroup = $dms->addGroup($group['attributes']['name'], $group['attributes']['comment']); - if($newGroup) { - foreach($group['users'] as $guser) { - if(isset($users[$guser])) { - $user = $users[$guser]; - if($newMember = $dms->getUserByLogin($user['attributes']['login'])) { - $newGroup->addUser($newMember); - echo $users[$guser]['attributes']['login']."\n"; + if(in_array('groups', $sections)) { + $newGroup = $dms->addGroup($group['attributes']['name'], $group['attributes']['comment']); + if($newGroup) { + foreach($group['users'] as $guser) { + /* Check if user is in array of users which has been previously filled + * by the users in the xml file. Alternative, we could check if the + * id is a key of $objmap['users'] and use the new id in that array. + */ + if(isset($users[$guser])) { + $user = $users[$guser]; + if($newMember = $dms->getUserByLogin($user['attributes']['login'])) { + $newGroup->addUser($newMember); + } else { + echo "Error: could not find member of group\n"; + return false; + } } else { - echo "Error: could not find member of group\n"; + echo "Error: group member is not contained in xml file\n"; + return false; } } + } else { + echo "Error: could not add group\n"; + return false; } } else { - echo "Error: could not add group\n"; + $newGroup = null; } } + if($newGroup) + $objmap['groups'][$group['id']] = $newGroup->getID(); + return $newGroup; } /* }}} */ function insert_attributedefinition($attrdef) { /* {{{ */ - global $dms; + global $dms, $debug, $objmap, $sections; - print_r($attrdef); - if(is_object($dms->getAttributeDefinitionByName($attrdef['attributes']['name']))) { + if($debug) + print_r($attrdef); + if($newAttrdef = $dms->getAttributeDefinitionByName($attrdef['attributes']['name'])) { echo "Attribute definition already exists\n"; } else { - if(!$newAttrdef = $dms->addAttributeDefinition($attrdef['attributes']['name'], $attrdef['objecttype'], $attrdef['attributes']['type'], $attrdef['attributes']['multiple'], $attrdef['attributes']['minvalues'], $attrdef['attributes']['maxvalues'], $attrdef['attributes']['valueset'])) { - echo "Error: could not add attribute definition\n"; + if(in_array('attributedefinitions', $sections)) { + if(!$newAttrdef = $dms->addAttributeDefinition($attrdef['attributes']['name'], $attrdef['objecttype'], $attrdef['attributes']['type'], $attrdef['attributes']['multiple'], $attrdef['attributes']['minvalues'], $attrdef['attributes']['maxvalues'], $attrdef['attributes']['valueset'], $attrdef['attributes']['regex'])) { + echo "Error: could not add attribute definition\n"; + return false; + } + } else { + $newAttrdef = null; } } + if($newAttrdef) + $objmap['attributedefs'][$attrdef['id']] = $newAttrdef->getID(); + return $newAttrdef; } /* }}} */ function insert_documentcategory($documentcat) { /* {{{ */ - global $dms; + global $dms, $debug, $objmap, $sections; - print_r($documentcat); - if(is_object($dms->getDocumentCategoryByName($documentcat['attributes']['name']))) { + if($debug) print_r($documentcat); + + if($newCategory = $dms->getDocumentCategoryByName($documentcat['attributes']['name'])) { echo "Document category already exists\n"; } else { - if(!$newCategory = $dms->addDocumentCategory($documentcat['attributes']['name'])) { - echo "Error: could not add document category\n"; + if(in_array('documentcategories', $sections)) { + if(!$newCategory = $dms->addDocumentCategory($documentcat['attributes']['name'])) { + echo "Error: could not add document category\n"; + return false; + } + } else { + $newCategory = null; } } + + if($newCategory) + $objmap['documentcategories'][$documentcat['id']] = $newCategory->getID(); + return $newCategory; } /* }}} */ function insert_keywordcategory($keywordcat) { /* {{{ */ - global $dms; + global $dms, $debug, $objmap, $sections; - print_r($keywordcat); - if(is_object($dms->getKeywordCategoryByName($keywordcat['attributes']['name'], $keywordcategories['attributes']['owner']))) { + if($debug) print_r($keywordcat); + + if(!array_key_exists((int) $keywordcat['attributes']['owner'], $objmap['users'])) { + echo "Error: owner of keyword category cannot be found\n"; + return false; + } + $owner = $objmap['users'][(int) $keywordcat['attributes']['owner']]; + + if($newCategory = $dms->getKeywordCategoryByName($keywordcat['attributes']['name'], $owner)) { echo "Document category already exists\n"; } else { - if(!$newCategory = $dms->addKeywordCategory($keywordcat['attributes']['name'], $keywordcat['attributes']['owner'])) { - echo "Error: could not add keyword category\n"; + if(in_array('keywordcategories', $sections)) { + if(!$newCategory = $dms->addKeywordCategory($owner, $keywordcat['attributes']['name'])) { + echo "Error: could not add keyword category\n"; + return false; + } + foreach($keywordcat['keywords'] as $keyword) { + if(!$newCategory->addKeywordList($keyword['attributes']['name'])) { + echo "Error: could not add keyword to keyword category\n"; + return false; + } + } + } else { + $newCategory = null; + } + } + + if($newCategory) + $objmap['keywordcategories'][$keywordcat['id']] = $newCategory->getID(); + return $newCategory; +} /* }}} */ + +function insert_document($document) { /* {{{ */ + global $dms, $debug, $defaultUser, $objmap, $sections, $rootfolder; + + if($debug) print_r($document); + + if(!array_key_exists((int) $document['attributes']['owner'], $objmap['users'])) { + echo "Warning: owner of document cannot be mapped using default user\n"; + $owner = $defaultUser; + } else { + $owner = $dms->getUser($objmap['users'][(int) $document['attributes']['owner']]); + } + + $attributes = array(); + if(isset($document['user_attributes'])) { + foreach($document['user_attributes'] as $orgid=>$value) { + if(array_key_exists((int) $orgid, $objmap['attributedefs'])) { + $attributes[$objmap['attributedefs'][$orgid]] = $value; + } else { + echo "Warning: User attribute ".$orgid." cannot be mapped\n"; + } + } + } + $categories = array(); + if(isset($document['categories'])) { + foreach($document['categories'] as $catid) { + if(array_key_exists((int) $catid, $objmap['documentcategories'])) { + $categories[$objmap['documentcategories'][$catid]] = $dms->getDocumentCategory($objmap['documentcategories'][$catid]); + } else { + echo "Warning: Category ".$catid." cannot be mapped\n"; + } + } + } + + if(isset($document['folder']) && $document['folder']) { + if(array_key_exists($document['folder'], $objmap['folders'])) { + $folder = $dms->getFolder($objmap['folders'][$document['folder']]); + } else { + echo "Error: folder ".$document['folder']." cannot be mapped\n"; + return false; + } + } else + $folder = $rootfolder; + + if(in_array('documents', $sections)) { + $error = false; + $initversion = array_shift($document['versions']); + if(!empty($initversion['fileref'])) { + $filename = tempnam('/tmp', 'FOO'); + copy($initversion['fileref'], $filename); + } else { + $filecontents = base64_decode($initversion['data']); + if(strlen($filecontents) != $initversion['data_length']) { + echo "Warning: file length (".strlen($filecontents).") doesn't match expected length (".$initversion['data_length'].").\n"; + $newDocument = null; + $error = true; + } + $filename = tempnam('/tmp', 'FOO'); + file_put_contents($filename, $filecontents); + } + if(!$error) { + $reviews = array('i'=>array(), 'g'=>array()); + /* + if($initversion['reviews']) { + foreach($initversion['reviews'] as $review) { + if($review['attributes']['type'] == 1) { + if(isset($objmap['groups'][(int) $review['attributes']['required']])) + $reviews['g'][] = $objmap['groups'][(int) $review['attributes']['required']]; + } else { + if(isset($objmap['users'][(int) $review['attributes']['required']])) + $reviews['i'][] = $objmap['users'][(int) $review['attributes']['required']]; + } + } + } + */ + $approvals = array('i'=>array(), 'g'=>array()); + /* + if($initversion['approvals']) { + foreach($initversion['approvals'] as $approval) { + if($approval['attributes']['type'] == 1) { + if(isset($objmap['groups'][(int) $approval['attributes']['required']])) + $approvals['g'][] = $objmap['groups'][(int) $approval['attributes']['required']]; + } else { + if(isset($objmap['users'][(int) $approval['attributes']['required']])) + $approvals['i'][] = $objmap['users'][(int) $approval['attributes']['required']]; + } + } + } + */ + $version_attributes = array(); + if(isset($initversion['user_attributes'])) { + foreach($initversion['user_attributes'] as $orgid=>$value) { + if(array_key_exists((int) $orgid, $objmap['attributedefs'])) { + $version_attributes[$objmap['attributedefs'][$orgid]] = $value; + } else { + echo "Warning: User attribute ".$orgid." cannot be mapped\n"; + } + } + } + if(!$result = $folder->addDocument( + $document['attributes']['name'], + $document['attributes']['comment'], + isset($document['attributes']['expires']) ? dateToTimestamp($document['attributes']['expires']) : 0, + $owner, + isset($document['attributes']['keywords']) ? $document['attributes']['keywords'] : 0, + $categories, + $filename, + $initversion['attributes']['orgfilename'], + $initversion['attributes']['filetype'], + $initversion['attributes']['mimetype'], + $document['attributes']['sequence'], + $reviews, //reviewers + $approvals, //approvers + $initversion['version'], + isset($initversion['attributes']['comment']) ? $initversion['attributes']['comment'] : '', + $attributes, + $version_attributes, + null //workflow + ) + ) { + unlink($filename); + echo "Error: could not add document\n"; + return false; + } else { + $newDocument = $result[0]; + unlink($filename); + + $newVersion = $result[1]->getContent(); + $newVersion->setDate(dateToTimestamp($initversion['attributes']['date'])); + $newlogs = array(); + foreach($initversion['statuslogs'] as $i=>$log) { + if(!array_key_exists($log['attributes']['user'], $objmap['users'])) { + unset($initversion['statuslogs'][$i]); + echo "Warning: user for status log cannot be mapped\n"; + } else { + $log['attributes']['user'] = $dms->getUser($objmap['users'][$log['attributes']['user']]); + $newlogs[] = $log['attributes']; + } + } + $newVersion->rewriteStatusLog($newlogs); + + /* Set reviewers and review log */ + if($initversion['reviews']) { + $newreviews = getRevAppLog($initversion['reviews']); + $newVersion->rewriteReviewLog($newreviews); + } + if($initversion['approvals']) { + $newapprovals = getRevAppLog($initversion['approvals']); + $newVersion->rewriteApprovalLog($newapprovals); + } + + $newDocument->setDate(dateToTimestamp($document['attributes']['date'])); + $newDocument->setDefaultAccess($document['attributes']['defaultaccess']); + foreach($document['versions'] as $version) { + if(!array_key_exists((int) $version['attributes']['owner'], $objmap['users'])) { + echo "Error: owner of document cannot be mapped\n"; + return false; + } + $owner = $dms->getUser($objmap['users'][(int) $version['attributes']['owner']]); + + $reviews = array('i'=>array(), 'g'=>array()); + /* + if($version['reviews']) { + foreach($version['reviews'] as $review) { + if($review['attributes']['type'] == 1) { + if(isset($objmap['groups'][(int) $review['attributes']['required']])) + $reviews['g'][] = $objmap['groups'][(int) $review['attributes']['required']]; + } else { + if(isset($objmap['users'][(int) $review['attributes']['required']])) + $reviews['i'][] = $objmap['users'][(int) $review['attributes']['required']]; + } + } + } + */ + $approvals = array('i'=>array(), 'g'=>array()); + /* + if($version['approvals']) { + foreach($version['approvals'] as $approval) { + if($approval['attributes']['type'] == 1) { + if(isset($objmap['groups'][(int) $approval['attributes']['required']])) + $approvals['g'][] = $objmap['groups'][(int) $approval['attributes']['required']]; + } else { + if(isset($objmap['users'][(int) $approval['attributes']['required']])) + $approvals['i'][] = $objmap['users'][(int) $approval['attributes']['required']]; + } + } + } + */ + $version_attributes = array(); + if(isset($version['user_attributes'])) { + foreach($version['user_attributes'] as $orgid=>$value) { + if(array_key_exists((int) $orgid, $objmap['attributedefs'])) { + $version_attributes[$objmap['attributedefs'][$orgid]] = $value; + } else { + echo "Warning: User attribute ".$orgid." cannot be mapped\n"; + } + } + } + if(!empty($version['fileref'])) { + $filename = tempnam('/tmp', 'FOO'); + copy($version['fileref'], $filename); + } else { + $filecontents = base64_decode($version['data']); + if(strlen($filecontents) != $version['data_length']) { + echo "Warning: file length (".strlen($filecontents).") doesn't match expected length (".$version['data_length'].").\n"; + } + $filename = tempnam('/tmp', 'FOO'); + file_put_contents($filename, $filecontents); + } + if(!($result = $newDocument->addContent( + $version['attributes']['comment'], + $owner, + $filename, + $version['attributes']['orgfilename'], + $version['attributes']['filetype'], + $version['attributes']['mimetype'], + $reviews, //reviewers + $approvals, //approvers + $version['version'], + $version_attributes, + null //workflow + ))) { + } + $newVersion = $result->getContent(); + $newVersion->setDate(dateToTimestamp($version['attributes']['date'])); + $newlogs = array(); + foreach($version['statuslogs'] as $i=>$log) { + if(!array_key_exists($log['attributes']['user'], $objmap['users'])) { + unset($version['statuslogs'][$i]); + echo "Warning: user for status log cannot be mapped\n"; + } else { + $log['attributes']['user'] = $dms->getUser($objmap['users'][$log['attributes']['user']]); + $newlogs[] = $log['attributes']; + } + } + $newVersion->rewriteStatusLog($newlogs); + + if($version['reviews']) { + $newreviews = getRevAppLog($version['reviews']); + $newVersion->rewriteReviewLog($newreviews); + } + if($version['approvals']) { + $newapprovals = getRevAppLog($version['approvals']); + $newVersion->rewriteApprovalLog($newapprovals); + } + + unlink($filename); + } + } + if(isset($document['notifications']['users']) && $document['notifications']['users']) { + foreach($document['notifications']['users'] as $userid) { + if(!array_key_exists($userid, $objmap['users'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newDocument->addNotify($objmap['users'][$userid], 1); + } + } + } + if(isset($document['notifications']['groups']) && $document['notifications']['groups']) { + foreach($document['notifications']['groups'] as $groupid) { + if(!array_key_exists($groupid, $objmap['groups'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newDocument->addNotify($objmap['groups'][$groupid], 0); + } + } + } + if(isset($document['acls']) && $document['acls']) { + $newDocument->setInheritAccess(false); + foreach($document['acls'] as $acl) { + if($acl['type'] == 'user') { + if(!array_key_exists($acl['user'], $objmap['users'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newDocument->addAccess($acl['mode'], $objmap['users'][$acl['user']], 1); + } + } elseif($acl['type'] == 'group') { + if(!array_key_exists($acl['group'], $objmap['groups'])) { + echo "Warning: group for notification cannot be mapped\n"; + } else { + $newDocument->addAccess($acl['mode'], $objmap['groups'][$acl['group']], 0); + } + } + } + } + if(isset($document['files']) && $document['files']) { + foreach($document['files'] as $file) { + if(!array_key_exists($file['attributes']['owner'], $objmap['users'])) { + echo "Warning: user for file cannot be mapped\n"; + $owner = $defaultUser; + } else { + $owner = $dms->getUser($objmap['users'][$file['attributes']['owner']]); + } + if(!empty($file['fileref'])) { + $filename = tempnam('/tmp', 'FOO'); + copy($file['fileref'], $filename); + } else { + $filecontents = base64_decode($file['data']); + if(strlen($filecontents) != $file['data_length']) { + echo "Warning: file length (".strlen($filecontents).") doesn't match expected length (".$file['data_length'].").\n"; + } + $filename = tempnam('/tmp', 'FOO'); + file_put_contents($filename, $filecontents); + } + $newDocument->addDocumentFile( + $file['attributes']['name'], + $file['attributes']['comment'], + $owner, + $filename, + $file['attributes']['orgfilename'], + $file['attributes']['filetype'], + $file['attributes']['mimetype'] + ); + unlink($filename); + } + } + } + } else { + $newDocument = null; + } + + if($newDocument) + $objmap['documents'][$document['id']] = $newDocument->getID(); + return $newDocument; +} /* }}} */ + +function insert_folder($folder) { /* {{{ */ + global $dms, $debug, $objmap, $defaultUser, $sections, $rootfolder; + + if($debug) print_r($folder); + + if(in_array('folders', $sections)) { + if(!array_key_exists($folder['attributes']['owner'], $objmap['users'])) { + echo "Warning: owner of folder cannot be mapped using default user\n"; + $owner = $defaultuser; + } else { + $owner = $dms->getUser($objmap['users'][(int) $folder['attributes']['owner']]); + } + + $attributes = array(); + if(isset($folder['user_attributes'])) { + foreach($folder['user_attributes'] as $orgid=>$value) { + if(array_key_exists((int) $orgid, $objmap['attributedefs'])) { + $attributes[$objmap['attributedefs'][$orgid]] = $value; + } else { + echo "Warning: User attribute ".$orgid." cannot be mapped\n"; + } + } + } + + if(isset($folder['folder']) && $folder['folder']) { + if(array_key_exists($folder['folder'], $objmap['folders'])) { + $parent = $dms->getFolder($objmap['folders'][$folder['folder']]); + } else { + echo "Error: Folder ".$folder['folder']." cannot be mapped\n"; + exit; + } + } else + $parent = $rootfolder; + + if(!$newFolder = $parent->addSubFolder($folder['attributes']['name'], $folder['attributes']['comment'], $owner, $folder['attributes']['sequence'], $attributes)) { + echo "Error: could not add folder\n"; + return false; + } + + $newFolder->setDate(dateToTimestamp($folder['attributes']['date'])); + $newFolder->setDefaultAccess($folder['attributes']['defaultaccess']); + if(isset($folder['notifications']['users']) && $folder['notifications']['users']) { + foreach($folder['notifications']['users'] as $userid) { + if(!array_key_exists($userid, $objmap['users'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newFolder->addNotify($objmap['users'][$userid], 1); + } + } + } + if(isset($folder['notifications']['groups']) && $folder['notifications']['groups']) { + foreach($folder['notifications']['groups'] as $groupid) { + if(!array_key_exists($groupid, $objmap['groups'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newFolder->addNotify($objmap['groups'][$groupid], 0); + } + } + } + if(isset($folder['acls']) && $folder['acls']) { + $newFolder->setInheritAccess(false); + foreach($folder['acls'] as $acl) { + if($acl['type'] == 'user') { + if(!array_key_exists($acl['user'], $objmap['users'])) { + echo "Warning: user for notification cannot be mapped\n"; + } else { + $newFolder->addAccess($acl['mode'], $objmap['users'][$acl['user']], 1); + } + } elseif($acl['type'] == 'group') { + if(!array_key_exists($acl['group'], $objmap['groups'])) { + echo "Warning: group for notification cannot be mapped\n"; + } else { + $newFolder->addAccess($acl['mode'], $objmap['groups'][$acl['group']], 0); + } + } + } + } + } else { + $newFolder = null; + } + + if($newFolder) + $objmap['folders'][$folder['id']] = $newFolder->getID(); + return $newFolder; +} /* }}} */ + +function resolve_links() { /* {{{ */ + global $dms, $debug, $defaultUser, $links, $objmap; + + if($debug) + print_r($links); + foreach($links as $documentid=>$doclinks) { + if(array_key_exists($documentid, $objmap['documents'])) { + if($doc = $dms->getDocument($objmap['documents'][$documentid])) { + foreach($doclinks as $doclink) { + if(array_key_exists($doclink['attributes']['target'], $objmap['documents'])) { + if($target = $dms->getDocument($objmap['documents'][$doclink['attributes']['target']])) { + if(!array_key_exists($doclink['attributes']['owner'], $objmap['users'])) { + echo "Warning: user for link cannot be mapped using default user\n"; + $owner = $defaultUser; + } else { + $owner = $dms->getUser($objmap['users'][$doclink['attributes']['owner']]); + } + if(!$doc->addDocumentLink($target->getID(), $owner->getID(), $doclink['attributes']['public'])) { + echo "Error: could not add document link from ".$doc->getID()." to ".$target->getID()."\n"; + } + } else { + echo "Warning: target document not found in database\n"; + } + } else { + echo "Warning: target document not found in object mapping\n"; + } + } + } else { + echo "Warning: document not found in database\n"; + } + } else { + echo "Warning: document not found in object mapping\n"; } } } /* }}} */ -function insert_document($document) { /* {{{ */ - global $dms; - - print_r($document); -} /* }}} */ - -function insert_folder($folder) { /* {{{ */ - print_r($folder); -} /* }}} */ - function startElement($parser, $name, $attrs) { /* {{{ */ - global $elementstack, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_review, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat; + global $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; $parent = end($elementstack); array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs)); switch($name) { + case "DMS": + if(!$noversioncheck) { + $xdbversion = explode('.', $attrs['DBVERSION']); + $dbversion = $dms->getDBVersion(); + if(($xdbversion[0] != $dbversion['major']) || ($xdbversion[1] != $dbversion['minor'])) { + echo "Error: Database version (".implode('.', array($dbversion['major'], $dbversion['minor'], $dbversion['subminor'])).") doesn't match version in input file (".implode('.', $xdbversion).").\n"; + exit(1); + } + } + break; case "USER": - /* users can be the users data, the member of a group */ + /* users can be the users data, the member of a group, a mandatory + * reviewer or approver + */ $first = $elementstack[1]; if($first['name'] == 'USERS') { - $cur_user = array(); - $cur_user['id'] = $attrs['ID']; - $cur_user['attributes'] = array(); + if($parent['name'] == 'MANDATORY_REVIEWERS') { + $cur_user['individual']['reviewers'][] = (int) $attrs['ID']; + } elseif($parent['name'] == 'MANDATORY_APPROVERS') { + $cur_user['individual']['approvers'][] = (int) $attrs['ID']; + } else { + $cur_user = array(); + $cur_user['id'] = (int) $attrs['ID']; + $cur_user['attributes'] = array(); + $cur_user['individual']['reviewers'] = array(); + $cur_user['individual']['approvers'] = array(); + } } elseif($first['name'] == 'GROUPS') { + $cur_group['users'][] = (int) $attrs['USER']; + } elseif($parent['name'] == 'NOTIFICATIONS') { + if($first['name'] == 'FOLDER') { + $cur_folder['notifications']['users'][] = (int) $attrs['ID']; + } elseif($first['name'] == 'DOCUMENT') { + $cur_document['notifications']['users'][] = (int) $attrs['ID']; + } } break; case "GROUP": $first = $elementstack[1]; if($first['name'] == 'GROUPS') { $cur_group = array(); - $cur_group['id'] = $attrs['ID']; + $cur_group['id'] = (int) $attrs['ID']; $cur_group['attributes'] = array(); + $cur_group['users'] = array(); + } elseif($first['name'] == 'USERS') { + if($parent['name'] == 'MANDATORY_REVIEWERS') { + $cur_user['group']['reviewers'][] = (int) $attrs['ID']; + } elseif($parent['name'] == 'MANDATORY_APPROVERS') { + $cur_user['group']['approvers'][] = (int) $attrs['ID']; + } + } elseif($parent['name'] == 'NOTIFICATIONS') { + if($first['name'] == 'FOLDER') { + $cur_folder['notifications']['groups'][] = (int) $attrs['ID']; + } elseif($first['name'] == 'DOCUMENT') { + $cur_document['notifications']['groups'][] = (int) $attrs['ID']; + } } break; case "DOCUMENT": $cur_document = array(); - $cur_document['id'] = $attrs['ID']; - $cur_document['folder'] = $attrs['FOLDER']; + $cur_document['id'] = (int) $attrs['ID']; + $cur_document['folder'] = (int) $attrs['FOLDER']; $cur_document['attributes'] = array(); $cur_document['versions'] = array(); break; case "FOLDER": $cur_folder = array(); - $cur_folder['id'] = $attrs['ID']; + $cur_folder['id'] = (int) $attrs['ID']; if(isset($attrs['PARENT'])) - $cur_folder['folder'] = $attrs['PARENT']; + $cur_folder['folder'] = (int) $attrs['PARENT']; $cur_folder['attributes'] = array(); break; case "VERSION": $cur_version = array(); - $cur_version['id'] = $attrs['ID']; + $cur_version['version'] = (int) $attrs['VERSION']; $cur_version['attributes'] = array(); $cur_version['approvals'] = array(); $cur_version['reviews'] = array(); break; + case "STATUSLOG": + $cur_statuslog = array(); + $cur_statuslog['attributes'] = array(); + break; case "APPROVAL": $cur_approval = array(); $cur_approval['attributes'] = array(); + $cur_approval['logs'] = array(); + break; + case "APPROVALLOG": + $cur_approvallog = array(); + $cur_approvallog['attributes'] = array(); break; case "REVIEW": $cur_review = array(); $cur_review['attributes'] = array(); + $cur_review['logs'] = array(); + break; + case "REVIEWLOG": + $cur_reviewlog = array(); + $cur_reviewlog['attributes'] = array(); break; case 'ATTRIBUTEDEFINITION': $cur_attrdef = array(); + $cur_attrdef['id'] = (int) $attrs['ID']; $cur_attrdef['attributes'] = array(); $cur_attrdef['objecttype'] = $attrs['OBJTYPE']; break; @@ -190,10 +789,16 @@ function startElement($parser, $name, $attrs) { /* {{{ */ } else { $cur_version['attributes'][$attrs['NAME']] = ''; } + } elseif($parent['name'] == 'STATUSLOG') { + $cur_statuslog['attributes'][$attrs['NAME']] = ''; } elseif($parent['name'] == 'APPROVAL') { $cur_approval['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'APPROVALLOG') { + $cur_approvallog['attributes'][$attrs['NAME']] = ''; } elseif($parent['name'] == 'REVIEW') { $cur_review['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'REVIEWLOG') { + $cur_reviewlog['attributes'][$attrs['NAME']] = ''; } elseif($parent['name'] == 'FOLDER') { if(isset($attrs['TYPE']) && $attrs['TYPE'] == 'user') { $cur_folder['user_attributes'][$attrs['ATTRDEF']] = ''; @@ -202,6 +807,34 @@ function startElement($parser, $name, $attrs) { /* {{{ */ } } elseif($parent['name'] == 'USER') { $cur_user['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'GROUP') { + $cur_group['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'KEYWORD') { + $cur_keyword['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'ATTRIBUTEDEFINITION') { + $cur_attrdef['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'FILE') { + $cur_file['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'LINK') { + $cur_link['attributes'][$attrs['NAME']] = ''; + } + break; + case "CATEGORIES": + if($parent['name'] == 'DOCUMENT') { + $cur_document['categories'] = array(); + } + break; + case "CATEGORY": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_document['categories'][] = (int) $attrs['ID']; + } + break; + case "ACLS": + if($parent['name'] == 'DOCUMENT') { + $cur_document['acls'] = array(); + } elseif($parent['name'] == 'FOLDER') { + $cur_folder['acls'] = array(); } break; case "ACL": @@ -229,97 +862,148 @@ function startElement($parser, $name, $attrs) { /* {{{ */ $cur_user['image']['id'] = $parent['attributes']['ID']; $cur_user['image']['data'] = ""; } elseif($parent['name'] == 'VERSION') { - $cur_version['data'] = ""; + $cur_version['data_length'] = (int) $attrs['LENGTH']; + if(isset($attrs['FILEREF'])) + $cur_version['fileref'] = $attrs['FILEREF']; + else + $cur_version['data'] = ""; + } elseif($parent['name'] == 'FILE') { + $cur_file['data_length'] = (int) $attrs['LENGTH']; + if(isset($attrs['FILEREF'])) + $cur_file['fileref'] = $attrs['FILEREF']; + else + $cur_file['data'] = ""; } break; case "KEYWORD": $cur_keyword = array(); - $cur_keyword['id'] = $attrs['ID']; + $cur_keyword['id'] = (int) $attrs['ID']; $cur_keyword['attributes'] = array(); break; case "KEYWORDCATEGORY": $cur_keywordcat = array(); - $cur_keywordcat['id'] = $attrs['ID']; + $cur_keywordcat['id'] = (int) $attrs['ID']; $cur_keywordcat['attributes'] = array(); $cur_keywordcat['keywords'] = array(); break; case "DOCUMENTCATEGORY": $cur_documentcat = array(); - $cur_documentcat['id'] = $attrs['ID']; + $cur_documentcat['id'] = (int) $attrs['ID']; $cur_documentcat['attributes'] = array(); break; + case "NOTIFICATIONS": + $first = $elementstack[1]; + if($first['name'] == 'FOLDER') { + $cur_folder['notifications'] = array('users'=>array(), 'groups'=>array()); + } elseif($first['name'] == 'DOCUMENT') { + $cur_document['notifications'] = array('users'=>array(), 'groups'=>array()); + } + break; + case "FILES": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_document['files'] = array(); + } + break; + case "FILE": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_file = array(); + $cur_file['id'] = (int) $attrs['ID']; + } + break; + case "LINKS": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_document['links'] = array(); + } + break; + case "LINK": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_link = array(); + $cur_link['id'] = (int) $attrs['ID']; + } + break; } } /* }}} */ function endElement($parser, $name) { /* {{{ */ - global $dms, $sections, $rootfolder, $elementstack, $users, $groups, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_review, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat; + global $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; array_pop($elementstack); $parent = end($elementstack); switch($name) { case "DOCUMENT": - if(in_array('documents', $sections)) { - insert_document($cur_document); - } + insert_document($cur_document); + if(!empty($cur_document['links'])) + $links[$cur_document['id']] = $cur_document['links']; break; case "FOLDER": - if(in_array('folders', $sections)) { - insert_folder($cur_folder); - $owner = $dms->getUser($cur_folder['attributes']['owner']); -// $newfolder = $rootfolder->addSubFolder($cur_folder['name'], $cur_folder['comment'], $owner, $cur_folder['sequence']); - } + insert_folder($cur_folder); break; case "VERSION": $cur_document['versions'][] = $cur_version; break; + case "STATUSLOG": + $cur_version['statuslogs'][] = $cur_statuslog; + break; case "APPROVAL": $cur_version['approvals'][] = $cur_approval; break; + case "APPROVALLOG": + $cur_approval['logs'][] = $cur_approvallog; + break; case "REVIEW": $cur_version['reviews'][] = $cur_review; break; + case "REVIEWLOG": + $cur_review['logs'][] = $cur_reviewlog; + break; case "USER": /* users can be the users data or the member of a group */ $first = $elementstack[1]; - if($first['name'] == 'USERS') { + if($first['name'] == 'USERS' && $parent['name'] == 'USERS') { $users[$cur_user['id']] = $cur_user; - if(in_array('users', $sections)) { - insert_user($cur_user); - } + insert_user($cur_user); } break; case "GROUP": $first = $elementstack[1]; if($first['name'] == 'GROUPS') { $groups[$cur_group['id']] = $cur_group; - if(in_array('groups', $sections)) { - insert_group($cur_group); - } + insert_group($cur_group); } break; case 'ATTRIBUTEDEFINITION': - if(in_array('attributedefinitions', $sections)) { - insert_attributedefinition($cur_attrdef); - } + insert_attributedefinition($cur_attrdef); break; case 'KEYWORD': $cur_keywordcat['keywords'][] = $cur_keyword; break; case 'KEYWORDCATEGORY': - if(in_array('keywordcategories', $sections)) { - insert_keywordcategory($cur_keywordcat); - } + insert_keywordcategory($cur_keywordcat); break; case 'DOCUMENTCATEGORY': - if(in_array('documentcategories', $sections)) { - insert_documentcategory($cur_documentcat); + insert_documentcategory($cur_documentcat); + break; + case "FILE": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_document['files'][] = $cur_file; + } + break; + case "LINK": + $first = $elementstack[1]; + if($first['name'] == 'DOCUMENT') { + $cur_document['links'][] = $cur_link; } break; } } /* }}} */ function characterData($parser, $data) { /* {{{ */ - global $elementstack, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_review, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat; + global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; $current = end($elementstack); $parent = prev($elementstack); @@ -347,33 +1031,66 @@ function characterData($parser, $data) { /* {{{ */ $cur_version['attributes'][$current['attributes']['NAME']] = $data; } break; + case 'STATUSLOG': + $cur_statuslog['attributes'][$current['attributes']['NAME']] = $data; + break; case 'APPROVAL': $cur_approval['attributes'][$current['attributes']['NAME']] = $data; break; + case 'APPROVALLOG': + $cur_approvallog['attributes'][$current['attributes']['NAME']] = $data; + break; case 'REVIEW': $cur_review['attributes'][$current['attributes']['NAME']] = $data; break; + case 'REVIEWLOG': + $cur_reviewlog['attributes'][$current['attributes']['NAME']] = $data; + break; case 'USER': - $cur_user['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_user['attributes'][$current['attributes']['NAME']])) + $cur_user['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_user['attributes'][$current['attributes']['NAME']] = $data; break; case 'GROUP': - $cur_group['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_group['attributes'][$current['attributes']['NAME']])) + $cur_group['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_group['attributes'][$current['attributes']['NAME']] = $data; break; case 'ATTRIBUTEDEFINITION': - $cur_attrdef['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_attrdef['attributes'][$current['attributes']['NAME']])) + $cur_attrdef['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_attrdef['attributes'][$current['attributes']['NAME']] = $data; break; case 'DOCUMENTCATEGORY': - $cur_documentcat['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_documentcat['attributes'][$current['attributes']['NAME']])) + $cur_documentcat['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_documentcat['attributes'][$current['attributes']['NAME']] = $data; break; case 'KEYWORDCATEGORY': - $cur_keywordcat['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_keywordcat['attributes'][$current['attributes']['NAME']])) + $cur_keywordcat['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_keywordcat['attributes'][$current['attributes']['NAME']] = $data; break; case 'KEYWORD': - $cur_keyword['attributes'][$current['attributes']['NAME']] = $data; + if(isset($cur_keyword['attributes'][$current['attributes']['NAME']])) + $cur_keyword['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_keyword['attributes'][$current['attributes']['NAME']] = $data; break; case 'IMAGE': $cur_user['image']['mimetype'] = $data; break; + case 'FILE': + $cur_file['attributes'][$current['attributes']['NAME']] = $data; + break; + case 'LINK': + $cur_link['attributes'][$current['attributes']['NAME']] = $data; + break; } break; case 'DATA': @@ -384,6 +1101,9 @@ function characterData($parser, $data) { /* {{{ */ case 'VERSION': $cur_version['data'] .= $data; break; + case 'FILE': + $cur_file['data'] .= $data; + break; } break; case 'USER': @@ -398,7 +1118,7 @@ function characterData($parser, $data) { /* {{{ */ $version = "0.0.1"; $shortoptions = "hv"; -$longoptions = array('help', 'version', 'config:', 'sections:', 'folder:', 'file:'); +$longoptions = array('help', 'version', 'debug', 'config:', 'sections:', 'folder:', 'file:', 'contentdir:', 'default-user:', 'export-mapping:', 'no-version-check'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); @@ -416,6 +1136,12 @@ if(isset($options['v']) || isset($options['verѕion'])) { exit(0); } +/* Check for debug mode */ +$debug = false; +if(isset($options['debug'])) { + $debug = true; +} + /* Set alternative config file */ if(isset($options['config'])) { $settings = new Settings($options['config']); @@ -429,6 +1155,25 @@ if(isset($options['folder'])) { $folderid = $settings->_rootFolderID; } +if(isset($options['contentdir'])) { + if(file_exists($options['contentdir'])) { + $contentdir = $options['contentdir']; + if(substr($contentdir, -1, 1) != DIRECTORY_SEPARATOR) + $contentdir .= DIRECTORY_SEPARATOR; + } else { + echo "Directory ".$options['contentdir']." does not exists\n"; + exit(1); + } +} else { + $contentdir = ''; +} + +if(isset($options['default-user'])) { + $defaultuserid = intval($options['default-user']); +} else { + $defaultuserid = 0; +} + $filename = ''; if(isset($options['file'])) { $filename = $options['file']; @@ -437,6 +1182,16 @@ if(isset($options['file'])) { exit(1); } +$exportmapping = ''; +if(isset($options['export-mapping'])) { + $exportmapping = $options['export-mapping']; +} + +$noversioncheck = false; +if(isset($options['no-version-check'])) { + $noversioncheck = true; +} + $sections = array('documents', 'folders', 'groups', 'users', 'keywordcategories', 'documentcategories', 'attributedefinitions'); if(isset($options['sections'])) { $sections = explode(',', $options['sections']); @@ -451,7 +1206,7 @@ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostna $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); -if(!$dms->checkVersion()) { +if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { echo "Database update needed."; exit; } @@ -462,7 +1217,25 @@ if(!$rootfolder) { exit(1); } +if($defaultuserid) { + if(!$defaultUser = $dms->getUser($defaultuserid)) { + echo "Error: Could not find default user with id ".$defaultuserid."\n"; + exit(1); + } +} else { + $defaultUser = null; +} + $elementstack = array(); +$objmap = array( + 'attributedefs' => array(), + 'keywordcategories' => array(), + 'documentcategories' => array(), + 'users' => array(), + 'groups' => array(), + 'folders' => array(), + 'documents' => array(), +); $xml_parser = xml_parser_create("UTF-8"); xml_parser_set_option($xml_parser, XML_OPTION_SKIP_WHITE, true); @@ -478,4 +1251,20 @@ while ($data = fread($fp, 65535)) { xml_get_current_line_number($xml_parser))); } } + +resolve_links(); + +if($exportmapping) { + if($fp = fopen($exportmapping, 'w')) { + fputcsv($fp, array('object type', 'old id', 'new id')); + foreach($objmap as $section=>$map) { + foreach($map as $old=>$new) { + fputcsv($fp, array($section, $old, $new)); + } + } + fclose($fp); + } else { + echo "Error: could not open mapping file '".$exportmapping."'\n"; + } +} ?> diff --git a/views/bootstrap/class.ApprovalSummary.php b/views/bootstrap/class.ApprovalSummary.php index 932b3fb7e..69bb71ff9 100644 --- a/views/bootstrap/class.ApprovalSummary.php +++ b/views/bootstrap/class.ApprovalSummary.php @@ -34,7 +34,10 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; - $db = $dms->getDB(); + $cachedir = $this->params['cachedir']; + $previewwidth = $this->params['previewWidthList']; + + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $this->htmlStartPage(getMLText("approval_summary")); $this->globalNavigation(); @@ -54,8 +57,8 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { $printheader = true; foreach ($approvalStatus["indstatus"] as $st) { $document = $dms->getDocument($st['documentID']); - if($document) - $version = $document->getContentByVersion($st['version']); + $version = $document->getContentByVersion($st['version']); + $previewer->createPreview($version); $owner = $document->getOwner(); $moduser = $dms->getUser($st['required']); @@ -64,6 +67,7 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { if ($printheader){ print ""; print "\n\n"; + print "\n"; print "\n"; print "\n"; print "\n"; @@ -75,6 +79,14 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { } print "\n"; + $previewer->createPreview($version); + print ""; print ""; print ""; print ""; @@ -100,8 +112,7 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { $printheader = true; foreach ($approvalStatus["grpstatus"] as $st) { $document = $dms->getDocument($st['documentID']); - if($document) - $version = $document->getContentByVersion($st['version']); + $version = $document->getContentByVersion($st['version']); $owner = $document->getOwner(); $modgroup = $dms->getGroup($st['required']); @@ -110,6 +121,7 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { if ($printheader){ print "
".getMLText("name")."".getMLText("owner")."".getMLText("status")."
"; + if($previewer->hasPreview($version)) { + print "getID()."&version=".$version->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } else { + print "getMimeIcon($version->getFileType())."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } + print "".htmlspecialchars($document->getName())."".htmlspecialchars($owner->getFullName())."".getOverallStatusText($st["status"])."
"; print "\n\n"; + print "\n"; print "\n"; print "\n"; print "\n"; @@ -121,6 +133,14 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style { } print "\n"; + $previewer->createPreview($version); + print ""; print ""; print ""; print ""; diff --git a/views/bootstrap/class.ApproveDocument.php b/views/bootstrap/class.ApproveDocument.php index 16e6d3523..41ea20a06 100644 --- a/views/bootstrap/class.ApproveDocument.php +++ b/views/bootstrap/class.ApproveDocument.php @@ -51,7 +51,7 @@ class SeedDMS_View_ApproveDocument extends SeedDMS_Bootstrap_Style { $this->globalNavigation($folder); $this->contentStart(); $this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document); - $this->contentHeading(getMLText("submit_approval")); + $this->contentHeading(getMLText("add_approval")); ?> \n"; -echo "\n"; -echo "\n"; - $this->contentContainerEnd(); $this->htmlEndPage(); diff --git a/views/bootstrap/class.Indexer.php b/views/bootstrap/class.Indexer.php index 53648feec..f9c117f34 100644 --- a/views/bootstrap/class.Indexer.php +++ b/views/bootstrap/class.Indexer.php @@ -31,22 +31,26 @@ require_once("class.Bootstrap.php"); */ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { - function tree($dms, $index, $folder, $indent='') { /* {{{ */ + function tree($dms, $index, $indexconf, $folder, $indent='') { /* {{{ */ set_time_limit(30); echo $indent."D ".htmlspecialchars($folder->getName())."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { - $this->tree($dms, $index, $subfolder, $indent.' '); + $this->tree($dms, $index, $indexconf, $subfolder, $indent.' '); } $documents = $folder->getDocuments(); foreach($documents as $document) { echo $indent." ".$document->getId().":".htmlspecialchars($document->getName())." "; /* If the document wasn't indexed before then just add it */ - if(!($hits = $index->find('document_id:'.$document->getId()))) { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $this->converters ? $this->converters : null)); - echo "(document added)"; + $lucenesearch = new $indexconf['Search']($index); + if(!($hit = $lucenesearch->getDocument($document->getId()))) { + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); + echo "(document added)"; + } catch(Exception $e) { + echo $indent."(adding document failed '".$e->getMessage()."')"; + } } else { - $hit = $hits[0]; /* Check if the attribute created is set or has a value older * than the lasted content. Documents without such an attribute * where added when a new document was added to the dms. In such @@ -54,7 +58,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { */ try { $created = (int) $hit->getDocument()->getFieldValue('created'); - } catch (Zend_Search_Lucene_Exception $e) { + } catch (/* Zend_Search_Lucene_ */Exception $e) { $created = 0; } $content = $document->getLatestContent(); @@ -62,8 +66,13 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { echo $indent."(document unchanged)"; } else { $index->delete($hit->id); - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $this->converters ? $this->converters : null)); - echo $indent."(document updated)"; + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); + echo $indent."(document updated)"; + } catch(Exception $e) { + print_r($e); + echo $indent."(updating document failed)"; + } } } echo "\n"; @@ -74,9 +83,11 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { $dms = $this->params['dms']; $user = $this->params['user']; $index = $this->params['index']; + $indexconf = $this->params['indexconf']; $recreate = $this->params['recreate']; $folder = $this->params['folder']; $this->converters = $this->params['converters']; + $this->timeout = $this->params['timeout']; $this->htmlStartPage(getMLText("admin_tools")); $this->globalNavigation(); @@ -85,7 +96,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { $this->contentHeading(getMLText("update_fulltext_index")); echo "
";
-		$this->tree($dms, $index, $folder);
+		$this->tree($dms, $index, $indexconf, $folder);
 		echo "
"; $index->commit(); diff --git a/views/bootstrap/class.MyDocuments.php b/views/bootstrap/class.MyDocuments.php index 0f3c72abe..0be5f097d 100644 --- a/views/bootstrap/class.MyDocuments.php +++ b/views/bootstrap/class.MyDocuments.php @@ -182,7 +182,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style { } foreach ($reviewStatus["grpstatus"] as $st) { - if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId()) { + if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) /* && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId() */) { $dList[] = $st["documentID"]; $document = $dms->getDocument($st["documentID"]); @@ -232,7 +232,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style { foreach ($approvalStatus["indstatus"] as $st) { - if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]])) { + if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && $docIdx[$st["documentID"]][$st["version"]]['status'] == S_DRAFT_APP) { $document = $dms->getDocument($st["documentID"]); if ($printheader){ @@ -268,7 +268,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style { } foreach ($approvalStatus["grpstatus"] as $st) { - if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId()) { + if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && $docIdx[$st["documentID"]][$st["version"]]['status'] == S_DRAFT_APP /* && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId() */) { $document = $dms->getDocument($st["documentID"]); if ($printheader){ print "
".getMLText("name")."".getMLText("owner")."".getMLText("status")."
"; + if($previewer->hasPreview($version)) { + print "getID()."&version=".$version->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } else { + print "getMimeIcon($version->getFileType())."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } + print "".htmlspecialchars($document->getName())."".htmlspecialchars($owner->getFullName())."".getOverallStatusText($st["status"])."
"; diff --git a/views/bootstrap/class.ReviewDocument.php b/views/bootstrap/class.ReviewDocument.php index aa6a1f669..676f57d85 100644 --- a/views/bootstrap/class.ReviewDocument.php +++ b/views/bootstrap/class.ReviewDocument.php @@ -167,13 +167,21 @@ function checkGrpForm() } ?> - +
+ + + +
:
: +printFileChooser('reviewfile', false); +?> +
: diff --git a/views/bootstrap/class.ReviewSummary.php b/views/bootstrap/class.ReviewSummary.php index 49001f7af..7ca1802a4 100644 --- a/views/bootstrap/class.ReviewSummary.php +++ b/views/bootstrap/class.ReviewSummary.php @@ -34,6 +34,10 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; + $cachedir = $this->params['cachedir']; + $previewwidth = $this->params['previewWidthList']; + + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $this->htmlStartPage(getMLText("my_documents")); $this->globalNavigation(); @@ -56,8 +60,7 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { $iRev = array(); foreach ($reviewStatus["indstatus"] as $st) { $document = $dms->getDocument($st['documentID']); - if($document) - $version = $document->getContentByVersion($st['version']); + $version = $document->getContentByVersion($st['version']); $owner = $document->getOwner(); $moduser = $dms->getUser($st['required']); @@ -66,6 +69,7 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { if ($printheader){ print ""; print "\n\n"; + print "\n"; print "\n"; print "\n"; print "\n"; @@ -77,6 +81,14 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { } print "\n"; + $previewer->createPreview($version); + print ""; print ""; print ""; print ""; @@ -102,8 +114,7 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { $printheader=true; foreach ($reviewStatus["grpstatus"] as $st) { $document = $dms->getDocument($st['documentID']); - if($document) - $version = $document->getContentByVersion($st['version']); + $version = $document->getContentByVersion($st['version']); $owner = $document->getOwner(); $modgroup = $dms->getGroup($st['required']); @@ -112,6 +123,7 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { if ($printheader){ print "
".getMLText("name")."".getMLText("owner")."".getMLText("status")."
"; + if($previewer->hasPreview($version)) { + print "getID()."&version=".$version->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } else { + print "getMimeIcon($version->getFileType())."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } + print "".htmlspecialchars($document->getName())."".htmlspecialchars($owner->getFullName())."".getOverallStatusText($st["status"])."
"; print "\n\n"; + print "\n"; print "\n"; print "\n"; print "\n"; @@ -123,6 +135,14 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style { } print "\n"; + $previewer->createPreview($version); + print ""; print ""; print ""; print ""; diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 7de29335e..69d0e52ba 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -355,7 +355,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { echo "
\n"; $this->contentContainerStart(); ?> - +
".getMLText("name")."".getMLText("owner")."".getMLText("status")."
"; + if($previewer->hasPreview($version)) { + print "getID()."&version=".$version->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } else { + print "getMimeIcon($version->getFileType())."\" title=\"".htmlspecialchars($version->getMimeType())."\">"; + } + print "".htmlspecialchars($document->getName())."".htmlspecialchars($owner->getFullName())."".getOverallStatusText($st["status"])."
@@ -418,9 +418,10 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { \n"; echo "
\n"; -// Database search Result {{{ +// Search Result {{{ $foldercount = $doccount = 0; if($entries) { + /* foreach ($entries as $entry) { if(get_class($entry) == 'SeedDMS_Core_Document') { $doccount++; @@ -428,6 +429,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { $foldercount++; } } + */ print "
".getMLText("search_report", array("doccount" => $totaldocs, "foldercount" => $totalfolders, 'searchtime'=>$searchTime))."
"; $this->pageList($pageNumber, $totalpages, "../op/op.Search.php", $urlparams); // $this->contentContainerStart(); @@ -602,7 +604,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { // $this->contentContainerEnd(); $this->pageList($pageNumber, $totalpages, "../op/op.Search.php", $_GET); } else { - $numResults = $doccount + $foldercount; + $numResults = $totaldocs + $totalfolders; if ($numResults == 0) { print "
".getMLText("search_no_results")."
"; } diff --git a/views/bootstrap/class.SetExpires.php b/views/bootstrap/class.SetExpires.php index 594e4837d..c6b840ae6 100644 --- a/views/bootstrap/class.SetExpires.php +++ b/views/bootstrap/class.SetExpires.php @@ -58,7 +58,7 @@ class SeedDMS_View_SetExpires extends SeedDMS_Bootstrap_Style {
"> - + "> - + "> @@ -126,11 +144,11 @@ if(!is_writeable($settings->_configFilePath)) { "> - + "> - + @@ -384,23 +411,23 @@ if(!is_writeable($settings->_configFilePath)) { "> - + "> - + "> - + "> - + "> - +
: - +
:showTextField('siteName', $settings->_siteName); ?>
:showTextField("footNote", $settings->_footNote); ?>
:
:showTextField("previewWidthList", $settings->_previewWidthList); ?>
:showTextField("previewWidthDetail", $settings->_previewWidthDetail); ?>
:showTextField("dbDriver", $settings->_dbDriver); ?>
:showTextField("dbHostname", $settings->_dbHostname); ?>
:showTextField("dbDatabase", $settings->_dbDatabase); ?>
:showTextField("dbUser", $settings->_dbUser); ?>
:showTextField("dbPass", $settings->_dbPass, 'password'); ?>