From 3699adfaf56c0fd2cb24d0ab1ae05496790faff0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 31 Jul 2015 15:30:00 +0200 Subject: [PATCH 01/12] add method checkDate() --- SeedDMS_Core/Core/inc.ClassDMS.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 05f7b2a48..f0bcf8232 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) { /* {{{ */ + $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. * From 01c30a0b8a99784ec889535afb00fee2961c64c5 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 31 Jul 2015 15:30:35 +0200 Subject: [PATCH 02/12] add new method rewriteStatusLog(), add option parameter date to setStatus() --- SeedDMS_Core/Core/inc.ClassDocument.php | 57 ++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 63bda72de..3762dec6c 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -2413,7 +2413,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 +2436,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 +2451,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 From 42eaabfd2dce1286de55c869c3ba246828e3b1d3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 31 Jul 2015 15:31:16 +0200 Subject: [PATCH 03/12] write status log into xml file --- utils/xmldump.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/utils/xmldump.php b/utils/xmldump.php index 72742311b..b2da8b61b 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -224,6 +224,18 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." getID()."\">".$attribute->getValue()."\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"; + } if($approvalStatus) { echo $indent." \n"; $curapprovalid = 0; From f9b75e5071a377476bebf432cb0f9e82658a05c1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 31 Jul 2015 15:31:34 +0200 Subject: [PATCH 04/12] read status log from xml file --- utils/xmlimport.php | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/utils/xmlimport.php b/utils/xmlimport.php index b4fd36607..aded394cd 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -187,8 +187,8 @@ function insert_keywordcategory($keywordcat) { /* {{{ */ function insert_document($document) { /* {{{ */ global $dms, $debug, $defaultUser, $objmap, $sections, $rootfolder; - if($debug) - print_r($document); + 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; @@ -574,7 +574,7 @@ function resolve_links() { /* {{{ */ } /* }}} */ function startElement($parser, $name, $attrs) { /* {{{ */ - global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; + 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; $parent = end($elementstack); array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs)); @@ -648,6 +648,10 @@ function startElement($parser, $name, $attrs) { /* {{{ */ $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(); @@ -685,6 +689,8 @@ 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') { @@ -823,7 +829,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */ } /* }}} */ function endElement($parser, $name) { /* {{{ */ - global $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; + 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); @@ -839,6 +845,9 @@ function endElement($parser, $name) { /* {{{ */ case "VERSION": $cur_document['versions'][] = $cur_version; break; + case "STATUSLOG": + $cur_version['statuslogs'][] = $cur_statuslog; + break; case "APPROVAL": $cur_version['approvals'][] = $cur_approval; break; @@ -854,7 +863,7 @@ function endElement($parser, $name) { /* {{{ */ 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; insert_user($cur_user); } @@ -894,7 +903,7 @@ function endElement($parser, $name) { /* {{{ */ } /* }}} */ function characterData($parser, $data) { /* {{{ */ - global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link; + 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); @@ -922,6 +931,9 @@ 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; From 53bac225fbd4335527b49ec83fd9130c073852a4 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 31 Jul 2015 15:34:07 +0200 Subject: [PATCH 05/12] add SeedDMS_Core_Document::setDate() --- SeedDMS_Core/Core/inc.ClassDocument.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 3762dec6c..1aba718e6 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -303,6 +303,26 @@ 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(); + + $queryStr = "UPDATE tblDocuments SET date = " . $date . " WHERE id = ". $this->_id; + if (!$db->getResult($queryStr)) + return false; + $this->_date = $date; + return true; + } /* }}} */ + /** * Return the parent folder of the document * From 1200460ceeefa41edba45436eef7b145eb64c362 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 07:37:48 +0200 Subject: [PATCH 06/12] add parameter $format to checkDate() --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index f0bcf8232..7cb18d705 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -192,7 +192,7 @@ class SeedDMS_Core_DMS { * @param string $date date to be checked * @return boolean true if date is in propper format, otherwise false */ - static function checkDate($date) { /* {{{ */ + static function checkDate($date, $format='Y-m-d H:i:s') { /* {{{ */ $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; } /* }}} */ From bc1eecc08cdfa9d1db72b7e0fe02d137c21bc711 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 07:38:45 +0200 Subject: [PATCH 07/12] add methods to rewrite approval and review log --- SeedDMS_Core/Core/inc.ClassDocument.php | 140 +++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 1aba718e6..0ed87b0bf 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -315,8 +315,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ if(!$date) $date = time(); + else { + if(!is_numeric($date)) + return false; + } - $queryStr = "UPDATE tblDocuments SET date = " . $date . " WHERE id = ". $this->_id; + $queryStr = "UPDATE tblDocuments SET date = " . (int) $date . " WHERE id = ". $this->_id; if (!$db->getResult($queryStr)) return false; $this->_date = $date; @@ -2611,6 +2615,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 @@ -2668,6 +2739,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(); From 150e5445df1829bd9991ff4fc8ffb1cfe416aa69 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 07:39:14 +0200 Subject: [PATCH 08/12] add method setDate() --- SeedDMS_Core/Core/inc.ClassFolder.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 8d2b434b2..1ff8fe04c 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 * From 5c85afaed517ea7ccf0f403dd02dbcaa4b7db307 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 07:40:17 +0200 Subject: [PATCH 09/12] use same date format (Y-m-d H:i:s) --- utils/xmldump.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index b2da8b61b..1c77fd9b5 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -100,7 +100,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo " parent=\"".$parent->getID()."\""; echo ">\n"; echo $indent." ".wrapWithCData($folder->getName())."\n"; - echo $indent." ".date('c', $folder->getDate())."\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"; @@ -153,9 +153,9 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ 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"; @@ -213,7 +213,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ $owner = $version->getUser(); 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"; @@ -230,7 +230,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." \n"; echo $indent." ".$entry['status']."\n"; echo $indent." ".wrapWithCData($entry['comment'])."\n"; - echo $indent." ".$entry['date']."\n"; + echo $indent." ".$entry['date']."\n"; echo $indent." ".$entry['userID']."\n"; echo $indent." \n"; } @@ -252,7 +252,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." ".$a['userID']."\n"; echo $indent." ".$a['status']."\n"; echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['date']."\n"; + echo $indent." ".$a['date']."\n"; echo $indent." \n"; // echo $indent." \n"; $curapprovalid = $a['approveID']; @@ -277,7 +277,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." ".$a['userID']."\n"; echo $indent." ".$a['status']."\n"; echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['date']."\n"; + echo $indent." ".$a['date']."\n"; echo $indent." \n"; // echo $indent." \n"; $curreviewid = $a['reviewID']; @@ -316,7 +316,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ 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"; From df50e50b1f91e96c27a99fbbdefdc39bfed8e423 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 07:41:53 +0200 Subject: [PATCH 10/12] do not set approvers/reviewers but rewrite approval/review log --- utils/xmlimport.php | 98 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 4 deletions(-) diff --git a/utils/xmlimport.php b/utils/xmlimport.php index aded394cd..611c7faee 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -24,8 +24,40 @@ function usage() { /* {{{ */ echo " --debug: turn debug output on\n"; } /* }}} */ -function dateToTimestamp($date) { /* {{{ */ - return time(); +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) { /* {{{ */ @@ -245,6 +277,7 @@ function insert_document($document) { /* {{{ */ } if(!$error) { $reviews = array('i'=>array(), 'g'=>array()); + /* if($initversion['reviews']) { foreach($initversion['reviews'] as $review) { if($review['attributes']['type'] == 1) { @@ -256,7 +289,9 @@ function insert_document($document) { /* {{{ */ } } } + */ $approvals = array('i'=>array(), 'g'=>array()); + /* if($initversion['approvals']) { foreach($initversion['approvals'] as $approval) { if($approval['attributes']['type'] == 1) { @@ -268,6 +303,7 @@ function insert_document($document) { /* {{{ */ } } } + */ $version_attributes = array(); if(isset($initversion['user_attributes'])) { foreach($initversion['user_attributes'] as $orgid=>$value) { @@ -305,6 +341,32 @@ function insert_document($document) { /* {{{ */ } 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'])) { @@ -314,6 +376,7 @@ function insert_document($document) { /* {{{ */ $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) { @@ -325,7 +388,9 @@ function insert_document($document) { /* {{{ */ } } } + */ $approvals = array('i'=>array(), 'g'=>array()); + /* if($version['approvals']) { foreach($version['approvals'] as $approval) { if($approval['attributes']['type'] == 1) { @@ -337,6 +402,7 @@ function insert_document($document) { /* {{{ */ } } } + */ $version_attributes = array(); if(isset($version['user_attributes'])) { foreach($version['user_attributes'] as $orgid=>$value) { @@ -358,7 +424,7 @@ function insert_document($document) { /* {{{ */ $filename = tempnam('/tmp', 'FOO'); file_put_contents($filename, $filecontents); } - if(!$newDocument->addContent( + if(!($result = $newDocument->addContent( $version['attributes']['comment'], $owner, $filename, @@ -370,8 +436,31 @@ function insert_document($document) { /* {{{ */ $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); } } @@ -491,6 +580,7 @@ function insert_folder($folder) { /* {{{ */ 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) { From 1158ccaa1cf1cb7d57fafa47b8de50607923f868 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 19:25:34 +0200 Subject: [PATCH 11/12] fix some typos --- languages/en_GB/lang.inc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 1b8d2cfbc..4bcbf4c97 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 (1226), dgrutsch (3), netixw (14) +// Translators: Admin (1230), dgrutsch (3), netixw (14) $text = array( 'accept' => 'Accept', @@ -781,10 +781,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', @@ -913,7 +913,7 @@ URL: [url]', '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 ist not set or cannot be accessed, then the backups will be saved in the content 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', @@ -986,7 +986,7 @@ URL: [url]', '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', @@ -1263,7 +1263,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', From d75436e91785771988b7f0492006f88ad74e5758 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 4 Aug 2015 19:25:50 +0200 Subject: [PATCH 12/12] lots of new translations --- languages/ko_KR/lang.inc | 822 ++++++++++++++++++++++++--------------- 1 file changed, 500 insertions(+), 322 deletions(-) diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index 8d85d7bc9..3d19d8e13 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/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 (933) +// Translators: Admin (933), daivoc (353) $text = array( 'accept' => '동의', @@ -31,7 +31,11 @@ $text = array( 'access_mode_read' => '읽기 권한', 'access_mode_readwrite' => '읽기 - 쓰기 권한', 'access_permission_changed_email' => '권한 변경', -'access_permission_changed_email_body' => '권한 변경r문서 : [name]rn상위폴더 : [folder_path]rn사용자: [username]rnURL: [url]', +'access_permission_changed_email_body' => '권한 변경 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', 'access_permission_changed_email_subject' => '[sitename ]: [name] - 권한 변경', 'according_settings' => '설정 하기', 'action' => '액션', @@ -44,26 +48,26 @@ $text = array( 'action_review' => '검토', 'action_revise' => '수정', 'add' => '추가', -'add_approval' => '', +'add_approval' => '승인 추가', 'add_document' => '문서 추가', 'add_document_link' => '링크 추가', -'add_document_notify' => '', -'add_doc_reviewer_approver_warning' => '더 검토 또는 승인이 할당되지 않은 경우 출시로주의 문서가 자동으로 표시됩니다.', -'add_doc_workflow_warning' => '주의 문서가 자동으로 어떤 흐름이 할당되지 않은 경우 해제로 표시됩니다.', +'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_multiple_documents' => '여러 문서 추가', +'add_multiple_files' => '여러 파일 추가 (파일명을 문서명으로 사용합니다)', +'add_receipt' => '접수', +'add_review' => '평가 추가', +'add_revision' => '승인 추가', 'add_subfolder' => '서브 폴더 추가', -'add_to_clipboard' => '클립 보드 에 추가', -'add_to_transmittal' => '', -'add_transmittal' => '', +'add_to_clipboard' => '클립 보드에 추가', +'add_to_transmittal' => '전송', +'add_transmittal' => '전송', 'add_user' => '새 사용자 추가', -'add_user_to_group' => '그룹에 사용자를 추가합니다', +'add_user_to_group' => '그룹 사용자 추가', 'add_workflow' => '새 워크플로우 추가', 'add_workflow_action' => '새 워크플로우 작업 추가', 'add_workflow_state' => '새 워크플로우 상태 추가', @@ -78,65 +82,90 @@ $text = array( 'and' => '와', 'apply' => '적용', 'approval_deletion_email' => '승인 요청 삭제', -'approval_deletion_email_body' => '', -'approval_deletion_email_subject' => '', -'approval_file' => '', +'approval_deletion_email_body' => '승인 요청 삭제 +문서: [name] +버전: [version] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', +'approval_deletion_email_subject' => '[sitename]: [name] - 삭제된 승인 요청', +'approval_file' => '파일', 'approval_group' => '승인 그룹', -'approval_log' => '', +'approval_log' => '승인 로그', 'approval_request_email' => '승인 요청', -'approval_request_email_body' => '승인 요청rn문서: [name]rn버전: [version]rn상위폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'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' => '', -'approval_submit_email_subject' => '', +'approval_submit_email_body' => '문서 승인 +문서: [name] +버전: [version] +상위폴더: [folder_path] +상태: [status] +코맨트: [comment] +사용자: [username] +URL: [url]', +'approval_submit_email_subject' => '[sitename]: [name] - 제출 승인', 'approval_summary' => '승인 개요', -'approval_update_failed' => '승인 상태를 업데이트하는 중 오류가 발생했습니다. 업데이트 실패.', +'approval_update_failed' => '승인 상태를 업데이트 중 오류가 발생. 업데이트 실패.', 'approvers' => '승인자', -'approver_already_assigned' => '', -'approver_already_removed' => '', +'approver_already_assigned' => '사용자는 이미 승인자로 할당되어 있습니다.', +'approver_already_removed' => '승인자가 이미 프로세스에서 삭제 되었거나 승인을 제출 했습니다.', 'april' => '4월', 'archive_creation' => '백업 파일 생성', -'archive_creation_warning' => '이 작업을하면 전체 DMS 폴더의 파일을 포함하는 아카이브를 만들 수 있습니다. 생성 한 후 아카이브는 서버의 데이터 폴더에 저장됩니다.
경고 : 서버의 백업으로 만들어진 자료는 가독력을 상실 하게 될 것입니다 assign_approvers승인자 지정', +'archive_creation_warning' => '본 작업은 전체 DMS 폴더 내의 파일 모두에 아카이브를 만듭니다. 생성한 아카이브는 서버의 데이터 폴더에 저장됩니다.
경고 : 이렇게 만들어진 자료는 서버의 백업과 같이 가독성이 저하 됩니다.', 'ar_EG' => '아랍어', -'assign_approvers' => '', +'assign_approvers' => '승인자 지정', 'assign_reviewers' => '검토자 지정', 'assign_user_property_to' => '사용자 속성에 할당', 'assumed_released' => '가정한 출시', 'attrdef_exists' => '이미 존재하는 속성', -'attrdef_in_use' => '여전히 사용 정의 속성', +'attrdef_in_use' => '사용중인 속성 정의', 'attrdef_management' => '속성 관리', 'attrdef_maxvalues' => '최대수', 'attrdef_minvalues' => '최소수', -'attrdef_min_greater_max' => '', +'attrdef_min_greater_max' => '최소값은 최대 값 보다 큽니다', 'attrdef_multiple' => '여러 값 허용', -'attrdef_must_be_multiple' => '', +'attrdef_must_be_multiple' => '속성은 하나 이상의 값을 가져야하지만, 여러 값을 설정하지 않습니다.', 'attrdef_name' => '이름', -'attrdef_noname' => '', +'attrdef_noname' => '속성 정의명이 없습', 'attrdef_objtype' => '개체 유형', 'attrdef_regex' => '정규 표현식', 'attrdef_type' => '유형', -'attrdef_type_boolean' => '', -'attrdef_type_email' => '', -'attrdef_type_float' => '', -'attrdef_type_int' => '', -'attrdef_type_string' => '', -'attrdef_type_url' => '', +'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' => '속성 변경rn문서: [name]rn버전: [version]rn속성: [attribute]rn상위폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'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' => '', -'attr_malformed_url' => '', -'attr_max_values' => '', -'attr_min_values' => '', -'attr_no_regex_match' => '속성값이 정규 표현식과 불일치', -'at_least_n_users_of_group' => '사용자 [group]에서 적어도 [number_of_users]', +'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' => '', +'authentication' => '인증', +'author' => '저자', 'automatic_status_update' => '자동 상태 변경', 'back' => '뒤로 가기', 'backup_list' => '백업 목록', @@ -144,8 +173,8 @@ $text = array( 'backup_remove' => '백업 파일 제거', 'backup_tools' => '백업 도구', 'between' => '사이', -'bg_BG' => '', -'browse' => '', +'bg_BG' => '불가리아', +'browse' => '검색', 'calendar' => '달력', 'calendar_week' => '주', 'cancel' => '취소', @@ -161,48 +190,48 @@ $text = array( 'category' => '카테고리', 'category_exists' => '카테고리가 이미 존재합니다.', 'category_filter' => '카테고리', -'category_in_use' => '이 범주에는 현재 문서에서 사용됩니다.', +'category_in_use' => '이 카테고리는 현재 문서에서 사용합니다.', 'category_noname' => '주어진 카테고리명이 없음.', 'ca_ES' => '카탈로니아어', 'change_assignments' => '변경 할당', 'change_password' => '비밀번호 변경', 'change_password_message' => '비밀번호가 변경되었습니다.', -'change_recipients' => '', -'change_revisors' => '', +'change_recipients' => '수신자 목록 변경', +'change_revisors' => '변경후 다시 제출', 'change_status' => '상태 변경', -'charts' => '', -'chart_docsaccumulated_title' => '', -'chart_docspercategory_title' => '', -'chart_docspermimetype_title' => '', -'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' => '', +'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_document' => '문서 선택', +'choose_target_file' => '파일 선택', 'choose_target_folder' => '폴더 선택', 'choose_user' => '사용자 선택', -'choose_workflow' => '워크플로를 선택', -'choose_workflow_action' => '워크플로우 작업을 선택', -'choose_workflow_state' => '워크플로우 상태를 선택', +'choose_workflow' => '워크플로우 선택', +'choose_workflow_action' => '워크플로우 작업 선택', +'choose_workflow_state' => '워크플로우 상태 선택', 'clear_clipboard' => '클립 보드 제거', -'clipboard' => '클립 보드', +'clipboard' => '클립보드', 'close' => '닫기', 'comment' => '코멘트', 'comment_changed_email' => '', -'comment_for_current_version' => '버전 주석', -'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시하고 싶습니다!', +'comment_for_current_version' => '코맨트', +'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시 만들고 싶습니다!', 'confirm_pwd' => '비밀번호 확인', 'confirm_rm_backup' => '파일 "[arkname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', 'confirm_rm_document' => '문서 "[documentname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', @@ -210,24 +239,24 @@ $text = array( 'confirm_rm_event' => '이밴트 "[name]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', 'confirm_rm_file' => '파일 "[name]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', 'confirm_rm_folder' => '폴더 "[foldername]"와 관련 컨텐츠를 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', -'confirm_rm_folder_files' => '파일 및 서브폴더가 포함된 폴더 "[foldername]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_folder_files' => '폴더 "[foldername]"내의 모든 파일을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', 'confirm_rm_group' => '그룹 "[groupname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', 'confirm_rm_log' => '로그파일 "[logname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', -'confirm_rm_transmittalitem' => '', +'confirm_rm_transmittalitem' => '제거 확인', 'confirm_rm_user' => '사용자 "[username]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', -'confirm_rm_version' => '버젼 [version]의 문서 "[documentname]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', -'confirm_update_transmittalitem' => '', +'confirm_rm_version' => '문서 "[documentname]"의 버젼 [version]을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_update_transmittalitem' => '업데이트 확인', 'content' => '콘텐츠', 'continue' => '계속', -'converter_new_cmd' => '', -'converter_new_mimetype' => '', -'copied_to_checkout_as' => '', +'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' => '', +'current_quota' => '시스템 전체 할당량 [quota]을 설정합니다.', 'current_state' => '현재 상태', 'current_version' => '현재 버전', 'daily' => '매일', @@ -239,52 +268,80 @@ $text = array( 'default_keywords' => '사용 가능한 키워드', 'definitions' => '정의', 'delete' => '삭제', -'details' => '세부 사항', +'details' => '세부사항', 'details_version' => '버전에 대한 상세 사항 : [version]', 'de_DE' => '독일어', -'disclaimer' => '이 분류 된 지역이다. 접근은 허가 된 자에게 허용된다. 어떠한 위반행위는 국내 및 국제 법에 따라 기소 될 것입니다.', -'discspace' => '', +'disclaimer' => '본 사이트는 접근이 허가된 자에게만 사용이 허용된 곳 입니다. 허가받지 않은 접근이나 불법행위는 국내 및 국제법에 따라 기소 될 것입니다.', +'discspace' => '디스크 공간', 'document' => '문서', 'documents' => '문서', -'documents_checked_out_by_you' => '', +'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' => '변경된 코멘트rn문서: [name]rn 이전 코멘트: [old_comment]rn코멘트: [new_comment]rn상위폴더: [folder_path]rn사용자: [username]rnURL: [url]', -'document_comment_changed_email_subject' => '[sitename] : [name] - 코멘트가 변경', +'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' => '삭제된 문서 rn문서 : [name] rn상위폴더: [folder_path]rn사용자: [username]', +'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_checked_out' => '문서가 현재 체크아웃 되어 있습니다. 새 버전을 업로드하면 체크아웃된 버전은 더 이상 확인 할 수 없습니다.', 'document_is_not_locked' => '잠겨 있지 않은 문서', 'document_link_by' => '연결', 'document_link_public' => '공개', 'document_moved_email' => '이동된 문서', -'document_moved_email_body' => '이동된 문서rn문서: [name]rn 이전 폴더: [old_folder_path]rn새코멘트: [new_folder_path]rn사용자: [username]rnURL: [url]', +'document_moved_email_body' => '이동된 문서 +문서: [name] +이전 폴더: [old_folder_path] +새코멘트: [new_folder_path] +사용자: [username] +URL: [url]', 'document_moved_email_subject' => '[sitename] : [name] - 이동된 문서', -'document_not_checkedout' => '', +'document_not_checkedout' => '문서가 체크아웃되지 않았습니다.', 'document_renamed_email' => '변경된 문서명', -'document_renamed_email_body' => '변경된 문서명rn문서: [name]rn상위폴더: [folder_path]rn이전 문서명: [old_name]rn사용자: [username]rnURL: [url]', +'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' => '문서 상태 변경rn문서: [name]rn상태 [status]rn상위폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'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' => '문서 업데이트 rn문서 : [name] rn상위 폴더 : [folder_path] rn사용자: [username]rnURL: [url]', +'document_updated_email_body' => '문서 업데이트 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', 'document_updated_email_subject' => '[name]:[sitename] - 업데이트 된 문서', 'does_not_expire' => '만료되지 않습니다', 'does_not_inherit_access_msg' => '액세스 상속', @@ -293,21 +350,21 @@ $text = array( 'do_object_setchecksum' => '오류 검사', 'do_object_setfilesize' => '파일 크기 설정', 'do_object_unlink' => '문서 버전 삭제', -'draft' => '', +'draft' => '기본값', 'draft_pending_approval' => '초안 - 보류 승인', 'draft_pending_review' => '초안 - 검토 대기', 'drag_icon_here' => '여기에 폴더 나 문서의 아이콘을 끌어!', 'dropfolder_file' => '드롭 폴더 파일', -'dropupload' => '', -'drop_files_here' => '', +'dropupload' => '빠른 업로드', +'drop_files_here' => '이곳에 파일을 올려놓으세요!', 'dump_creation' => 'DB 덤프 생성', 'dump_creation_warning' => '이 작업으로 만들 수있는 데이터베이스 내용의 덤프 파일. 작성 후 덤프 파일은 서버의 데이터 폴더에 저장됩니다.', 'dump_list' => '덤프된 파일', 'dump_remove' => '덤프 파일 제거', -'duplicate_content' => '', +'duplicate_content' => '중복 내용', 'edit' => '편집', 'edit_attributes' => '속성 편집', -'edit_comment' => '주석 편집', +'edit_comment' => '코맨트 편집', 'edit_default_keywords' => '키워드 수정', 'edit_document_access' => '액세스 편집', 'edit_document_notify' => '문서 알림 목록', @@ -319,7 +376,7 @@ $text = array( 'edit_folder_notify' => '폴더 알림 목록', 'edit_folder_props' => '폴더 편집', 'edit_group' => '편집 그룹', -'edit_transmittal_props' => '', +'edit_transmittal_props' => '전송 속성 편집', 'edit_user' => '사용자 편집', 'edit_user_details' => '사용자 세부 사항 편집', 'email' => '이메일', @@ -340,39 +397,63 @@ $text = array( 'expired' => '만료', 'expires' => '만료', 'expiry_changed_email' => '유효 기간 변경', -'expiry_changed_email_body' => '유효 기간이 변경 rn 문서 : [name] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'expiry_changed_email_body' => '유효 기간이 변경 +문서: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', 'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경', -'export' => '', -'extension_manager' => '', +'export' => '내보내기', +'extension_manager' => '확장자 관리', 'february' => '2월', 'file' => '파일', -'files' => '', +'files' => '파일', 'files_deletion' => '파일 삭제', 'files_deletion_warning' => '이 옵션을 사용하면 전체 DMS 폴더의 모든 파일을 삭제할 수 있습니다. 버전 정보가 표시로 남을 것 입니다 files파일', 'file_size' => '파일 크기', -'filter_for_documents' => '', -'filter_for_folders' => '', +'filter_for_documents' => '문서에 대한 추가 필터', +'filter_for_folders' => '폴더에 대한 추가 필터', 'folder' => '폴더', 'folders' => '폴더', 'folders_and_documents_statistic' => '개요 내용', 'folder_comment_changed_email' => '코멘트가 변경', -'folder_comment_changed_email_body' => '코멘트의 rn 폴더를 변경 : [name] rn 버전 : [version] rn 이전 코멘트 : [old_comment] rn코멘트 : [new_comment] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'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' => '폴더 rn 폴더 삭제 : [name] rn상위 폴더 : [folder_path] rn사용자 [username] rnURL : [url]', +'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' => '폴더 이동의 rn 폴더 : [name] rn 이전 폴더 : [old_folder_path] rn 새 폴더 : [new_folder_path] rn사용자 : [username] rnURL : [url]', +'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' => '폴더의 rn 폴더 이름을 변경 : [name] rn상위 폴더 : [folder_path] rn 옛 이름 : [old_name] rn사용자 : [username] rnURL : url]', +'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' => '에서', +'from' => '시작일', 'fr_FR' => '프랑스어', 'fullsearch' => '전체 텍스트 검색', 'fullsearch_hint' => '전체 텍스트 색인 사용', @@ -394,18 +475,18 @@ $text = array( 'guest_login' => '게스트로 로그인', 'guest_login_disabled' => '고객 로그인을 사용할 수 없습니다.', 'help' => '도움말', -'home_folder' => '', +'home_folder' => '홈 폴더', 'hourly' => '시간별', 'hours' => '시간', -'human_readable' => '인간의 읽을 수있는 아카이브', +'human_readable' => '가독력', 'hu_HU' => '헝가리어', 'id' => 'ID', 'identical_version' => '새 버전은 최신 버전으로 동일하다.', -'include_content' => '', +'include_content' => '내용을 포함', 'include_documents' => '문서 포함', 'include_subdirectories' => '서브 디렉토리를 포함', 'index_converters' => '인덱스 문서 변환', -'index_folder' => '', +'index_folder' => '인덱스 폴더', 'individuals' => '개인', 'inherited' => '상속', 'inherits_access_copy_msg' => '상속 액세스 목록 복사', @@ -417,7 +498,7 @@ $text = array( 'invalid_action' => '잘못된 행동', 'invalid_approval_status' => '잘못된 승인 상태', 'invalid_create_date_end' => '작성 날짜 범위에 대한 잘못된 종료 날짜.', -'invalid_create_date_start' => '작성 날짜 범위에 대한 잘못된 시작 날짜는.', +'invalid_create_date_start' => '작성 날짜 범위에 대한 잘못된 시작 날짜.', 'invalid_doc_id' => '잘못된 문서 ID', 'invalid_file_id' => '잘못된 파일 ID', 'invalid_folder_id' => '잘못된 폴더 ID', @@ -431,7 +512,7 @@ $text = array( 'invalid_target_folder' => '잘못된 대상 폴더 ID', 'invalid_user_id' => '잘못된 사용자 ID', 'invalid_version' => '잘못된 문서 버전', -'in_revision' => '', +'in_revision' => '개정에서', 'in_workflow' => '워크플로우내', 'is_disabled' => '계정 사용 안 함', 'is_hidden' => '숨긴 사용자 목록', @@ -455,16 +536,16 @@ $text = array( 'js_select_user_or_group' => '적어도 사용자 또는 그룹을 선택', 'july' => '7월', 'june' => '6월', -'keep' => '', +'keep' => '변경하지 마시오', 'keep_doc_status' => '문서 상태 유지', 'keywords' => '키워드', 'keyword_exists' => '키워드가 이미 존재', 'ko_KR' => '한국어', 'language' => '언어', -'lastaccess' => '', +'lastaccess' => '마지막 액세스', 'last_update' => '마지막 업데이트', 'legend' => '전설', -'librarydoc' => '', +'librarydoc' => '라이브러리의 문서', 'linked_documents' => '관련 문서', 'linked_files' => '첨부 파일', 'link_alt_updatedocument' => '최대 업로드 크기보다 큰 파일을 업로드하려는 경우, 대체 업로드 페이지를 upload page 사용하십시오.', @@ -474,7 +555,7 @@ $text = array( 'lock_message' => '이 문서는 [username].에 의해 잠겨 있습니다. 허가 된 사용자 만이 문서를 잠금을 해제 할 수 있습니다.', 'lock_status' => '상태', 'login' => '로그인', -'login_disabled_text' => '너무 많은 로그인 실패로 당신의 계정을사용할 수 없습니다.', +'login_disabled_text' => '귀정 이상 로그인 실패로 당신의 계정을사용할 수 없습니다.', 'login_disabled_title' => '계정 비활성화', 'login_error_text' => '로그인 오류. 잘못된 사용자 ID 또는 비밀번호.', 'login_error_title' => '로그인 오류', @@ -483,16 +564,16 @@ $text = array( 'logout' => '로그 아웃', 'log_management' => '파일 관리 로그', 'manager' => '관리자', -'manager_of_group' => '', -'mandatory_approvergroups' => '', -'mandatory_approvergroup_no_access' => '', -'mandatory_approvers' => '', -'mandatory_approver_no_access' => '', -'mandatory_reviewergroups' => '', -'mandatory_reviewergroup_no_access' => '', -'mandatory_reviewers' => '', -'mandatory_reviewer_no_access' => '', -'march' => '월', +'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' => '마임 유형', @@ -504,58 +585,82 @@ $text = array( 'monday' => '월요일', 'monday_abbr' => '월', 'monthly' => '월간', -'month_view' => '월', +'month_view' => '월간 단위로 보기', 'move' => '이동', 'move_clipboard' => '이동 클립 보드', -'move_document' => '문서를 이동', +'move_document' => '문서 이동', 'move_folder' => '폴더 이동', 'my_account' => '내 계정', 'my_documents' => '내 문서', -'my_transmittals' => '', +'my_transmittals' => '내 송부', 'name' => '이름', 'needs_workflow_action' => '이 문서는 당신의주의가 필요합니다. 워크플로우 탭을 확인하시기 바랍니다.', -'never' => '', +'never' => '불가', 'new' => '새', 'new_attrdef' => '속성 정의 추가', 'new_default_keywords' => '키워드 추가', 'new_default_keyword_category' => '카테고리 추가', 'new_document_category' => '카테고리 추가', 'new_document_email' => '새 문서', -'new_document_email_body' => '새 문서 rn 이름 : [name] rn상위 폴더 [folder_path] rn코멘트 : [comment] rn 버전 주석 : [version_comment] rn사용자 : [username] rnURL : [url]', +'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' => '새 첨부 파일 rn 이름 : [name] rn 문서 : [document] rn코멘트 : [comment] rn사용자 : [username] rnURL : [url]', +'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' => '새 폴더 rn 이름 : [name] rn상위 폴더 : [folder_path] rn코멘트 : [comment] rn사용자 : [username] rnURL [url]', +'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' => '알림 목록에 추가rn이름: [name]rn상위 폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'notify_added_email_body' => '알림 목록에 추가 +이름: [name] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', 'notify_added_email_subject' => '[sitename] : [name] - 알림 목록에 추가', 'notify_deleted_email' => '목록을 알림에서 제거했습니다', -'notify_deleted_email_body' => '알림 목록에서 제거 rn 이름 : [name] rn상위 폴더 : [folder_path] rn사용자: [username] rnURL : [url]', +'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' => '', +'no_current_version' => '당신은 이전 버전의 SeedDMS를 사용하고 있습니다. 사용 가능한 최신 버전은 [latestversion] 입니다.', 'no_default_keywords' => '사용 가능한 키워드가 존재하지 않습니다.', -'no_docs_checked_out' => '', +'no_docs_checked_out' => '체크아웃 문서가 없습니다.', 'no_docs_locked' => '잠긴 문서가 없습니다.', 'no_docs_to_approve' => '승인이 필요한 문서가 현재 없습니다.', 'no_docs_to_look_at' => '.주의가 필요한 문서가 현재 없습니다', -'no_docs_to_receipt' => '', +'no_docs_to_receipt' => '문서 접수가 필요하지 않습니다', 'no_docs_to_review' => '검토를 필요한 문서가 현재 없습니다.', -'no_docs_to_revise' => '', -'no_email_or_login' => '', +'no_docs_to_revise' => '개정이 필요한 문서가 아직 없습니다.', +'no_email_or_login' => '로그인명과 이메일은 필수 입니다.', 'no_fulltextindex' => '전체 텍스트 색인이 필요한 문서가 현재 없습니다.', 'no_groups' => '그룹이 없음', 'no_group_members' => '그룹 회원 이 없습니다.', @@ -563,29 +668,35 @@ $text = array( 'no_previous_versions' => '다른 버전을 찾을 수 없습니다', 'no_receipt_needed' => '', 'no_review_needed' => '검토중인 자료가 없습니다.', -'no_revision_needed' => '', -'no_revision_planed' => '', +'no_revision_needed' => '보류된 개정은 없습니다.', +'no_revision_planed' => '문서의 개정 예약이 없습니다.', 'no_update_cause_locked' => '이 문서를 업데이트 할 수 없습니다. 문서를 잠근 사용자 문의하시기 바랍니다..', 'no_user_image' => '이미지를 찾을 수 없습니다', -'no_version_check' => '', +'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' => '', +'order_by_sequence_off' => '순서에 의한 정렬 설정이 켜져 있습니다. 이 매개 변수를 사용하고 싶은 경우 이것을 활성화 해야 합니다.', 'original_filename' => '원래본 파일명', 'owner' => '소유자', 'ownership_changed_email' => '소유자 변경', -'ownership_changed_email_body' => '소유자 변경 rn 문서 : [name] rn상위 폴더 : [folder_path] rn 이전 소유자 : [old_owner] rn 새 사용자 : [new_owner] rn사용자 : [username] rnURL : [url]', +'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' => '', +'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' => '비밀번호 분실', @@ -593,87 +704,133 @@ $text = array( 'password_forgotten_text' => '아래의 양식을 작성하시고 당신에게 보낼 이메일에 있는 지시 사항을 따르십시오.', 'password_forgotten_title' => '비밀번호 전송', 'password_repeat' => '비밀번호 반복 확인', -'password_send' => '', -'password_send_text' => '', +'password_send' => '비밀번호 전송', +'password_send_text' => '로그인 및 이메일이 기존 사용자와 일치하는 경우 새 암호가 지정된 이메일 주소로 전송됩니다. 당신이 잠시후 이메일을 수신하지 못했으면 반드시 로그인 및 이메일 모두가 올바른지 확인하고 프로세스를 다시 시작 하세요.', 'password_strength' => '강력한 비밀번호', 'password_strength_insuffient' => '부족한 비밀번호 강도', 'password_wrong' => '잘못된 비밀번호', 'personal_default_keywords' => '개인 키워드 목록', 'pl_PL' => '폴란드어', -'possible_substitutes' => '', -'preview_converters' => '', +'possible_substitutes' => '대체', +'preview_converters' => '문서 변환 미리보기', 'previous_state' => '이전 상태', 'previous_versions' => '이전 버전', 'pt_BR' => '포르투갈어 (BR)', 'quota' => '할당량', 'quota_exceeded' => '당신은 디스크 할당량 [bytes]을 초과한다.', -'quota_is_disabled' => '', +'quota_is_disabled' => '할당량 지원이 설정에서 비활성화되어 있습니다. 다시 활성화 될 때까지 사용자의 할당량 설정은 적용되지 않습니다.', 'quota_warning' => '당신의 최대 디스크 사용량 [bytes] 초과됩니다. 문서 또는 이전 버전을 제거하십시오.', -'receipt_log' => '', -'receipt_summary' => '', -'recipients' => '', +'receipt_log' => '로그 수신', +'receipt_summary' => '접수증 요약', +'recipients' => '받는 사람', 'refresh' => '새로 고침', 'rejected' => '거부', 'released' => '발표', 'removed_approver' => '승인 목록에서 제거', 'removed_file_email' => '제거 된 첨부 파일', -'removed_file_email_body' => '제거 된 첨부 파일의 rn 문서 : [document] rn 사용자 : [username] rnURL : [url]', +'removed_file_email_body' => '삭제된 첨부 파일 +문서: [document] +사용자: [username] +URL : [url]', 'removed_file_email_subject' => '[sitename] : [document] - 제거 된 첨부 파일', -'removed_recipient' => '', +'removed_recipient' => '수신자 목록에서 제거되었습니다.', 'removed_reviewer' => '검토 자 목록에서 제거 되었습니다', -'removed_revispr' => '', -'removed_workflow_email_body' => '문서 버전으로부터 제거 된 워크플로우rn문서: [name]rn버전: [version]rn워크플로우: [workflow]rn상위 폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'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' => '', -'request_workflow_action_email_subject' => '', -'reset_checkout' => '', +'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' => '문서 버전으로부터 제거 된 서브 워크플로우rn문서: [name]rn버전: [version]rn워크플로우: [workflow] rn 서브 워크플로우 : [subworkflow] rn상위 폴더: [folder_path]rn사용자: [username]rnURL: [url]', +'return_from_subworkflow_email_body' => '서브 워크플로우에서 복귀 +문서: [name] +버전: [version] +워크플로우: [workflow] +서브 워크플로우: [subworkflow] +상위 폴더: [folder_path] +사용자: [username] +URL: [url]', 'return_from_subworkflow_email_subject' => '[sitename] : [name] - 서브 워크플로우에서 반환', -'reverse_links' => '', +'reverse_links' => '현재 문서에 대한 링크를 가지고있는 문서', 'reviewers' => '검토', 'reviewer_already_assigned' => '이미 검토 지정됩', 'reviewer_already_removed' => '이미 검토 과정에서 제거되었거나 리뷰로 제출', 'review_deletion_email' => '검토 요청 삭제', -'review_deletion_email_body' => '', -'review_deletion_email_subject' => '', -'review_file' => '', +'review_deletion_email_body' => '검토 요청 삭제 +문서: [name] +버전: [version] +상위폴더: [folder_path] +사용자: [username] +URL: [url]', +'review_deletion_email_subject' => '[sitename]: [name] - 삭제 된 리뷰 요청', +'review_file' => '파일', 'review_group' => '그룹 검토', -'review_log' => '', +'review_log' => '리뷰 로그', 'review_request_email' => '요청 검토', -'review_request_email_body' => '', -'review_request_email_subject' => '', +'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' => '제출 검토의 rn 문서 : [name] rn 버전 : [version ] rn상태 : [status] rn코멘트 : [comment] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'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' => '워크플로우 되돌림 rn 문서 : [ name] rn 버전 : [version] rn워크플로우 : [workflow] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'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' => '문서 제거', 'rm_document_category' => '카테고리 제거', 'rm_file' => '파일 삭제', 'rm_folder' => '폴더 제거', 'rm_from_clipboard' => '클립 보드에서 제거', 'rm_group' => '이 그룹 제거', -'rm_transmittal' => '', -'rm_transmittalitem' => '', +'rm_transmittal' => '송부 삭제', +'rm_transmittalitem' => '아이템 삭제', 'rm_user' => '이 사용자 제거', 'rm_version' => '버전 제거', 'rm_workflow' => '워크플로우 제거', @@ -684,9 +841,16 @@ $text = array( 'role_admin' => '관리자', 'role_guest' => '고객', 'role_user' => '사용자', -'ro_RO' => '', +'ro_RO' => '루마니아어', 'run_subworkflow' => '서브 워크플로우 실행', -'run_subworkflow_email_body' => '서브 워크플로우 시작 rn 문서 : [name] rn 버전 : [version] rn워크플로우 : [workflow] rn 서브 워크플로우 : [subworkflow] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'run_subworkflow_email_body' => '서브 워크플로우 시작 +문서: [name] +버전: [version] +워크플로우: [workflow] +서브 워크플로우: [subworkflow] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', 'run_subworkflow_email_subject' => '[sitename] : [name] - 서브 워크플로우가 시작되었다', 'ru_RU' => '러시아', 'saturday' => '토요일', @@ -696,16 +860,16 @@ $text = array( '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' => '[doccount] 문서와 [foldercount]폴더를 [searchtime] 초에 검색 .', 'search_report_fulltext' => '검색된 [doccount] 문서', -'search_resultmode' => '', -'search_resultmode_both' => '', -'search_results' => '', +'search_resultmode' => '검색 결과', +'search_resultmode_both' => '문서와 폴더', +'search_results' => '검색 결과', 'search_results_access_filtered' => '검색 결과는 액세스가 거부된 콘텐츠를 포함 할 수도 있습니다 search_results검색 결과', 'search_time' => '경과 시간 : [time] 초', 'seconds' => '초', @@ -713,22 +877,22 @@ $text = array( 'select_category' => '범주를 선택합니다', 'select_groups' => '그룹을 선택합니다', 'select_grp_approvers' => '그룹 승인을 선택합니다', -'select_grp_notification' => '', -'select_grp_recipients' => '', +'select_grp_notification' => '그룹 통지를 선택합니다', +'select_grp_recipients' => '받는 사람 그룹을 클릭하시오', 'select_grp_reviewers' => '그룹 검토를 선택합니다', -'select_grp_revisors' => '', +'select_grp_revisors' => '감사 그룹을 클릭하여 선택합니다', 'select_ind_approvers' => '개별 승인를 선택합니다', -'select_ind_notification' => '', -'select_ind_recipients' => '', +'select_ind_notification' => '개별 통지를 클릭하여 선택합니다', +'select_ind_recipients' => '개인별 받는 사람을 선택합니다', 'select_ind_reviewers' => '개별 검토를 선택합니다', -'select_ind_revisors' => '', -'select_one' => '하나를 선택', -'select_users' => '사용자를 선택합니', +'select_ind_revisors' => '개별 감사를 선택합니다', +'select_one' => '선택', +'select_users' => '사용자를 선택합니다', 'select_workflow' => '선택 워크플로우', -'september' => '9 월', +'september' => '9월', 'sequence' => '순서', 'seq_after' => '"[prevname] "후', -'seq_end' => '끝', +'seq_end' => '마지막 위치', 'seq_keep' => '위치 유지', 'seq_start' => '첫 번째 위치', 'settings' => '설정', @@ -739,18 +903,18 @@ $text = array( 'settings_Advanced' => '고급', 'settings_apache_mod_rewrite' => '아파치 - 모듈 다시 쓰기', 'settings_Authentication' => '인증 설정', -'settings_autoLoginUser' => '', -'settings_autoLoginUser_desc' => '', -'settings_backupDir' => '', -'settings_backupDir_desc' => '', +'settings_autoLoginUser' => '자동 로그인', +'settings_autoLoginUser_desc' => '로그인하지 않은 사용자의 ID로 접근. 이러한 접근은 세션을 생성하지 않습니다.', +'settings_backupDir' => '백업 디랙토리', +'settings_backupDir_desc' => '백업 도구가 백업을 저장할 디렉토리. 이 디렉토리가 설정되어 있지 않거나 액세스 할 수 없는 경우 백업은 컨텐츠 디렉토리에 저장 됩니다.', 'settings_cacheDir' => '캐시 디렉토리', 'settings_cacheDir_desc' => '미리보기 이미지 에 저장된다.(웹 서버를 통해 액세스 할 수없는 디렉토리를 선택하는 것이 좋습니다)', 'settings_Calendar' => '캘린더 설정', -'settings_calendarDefaultView' => '달력의 기본보기', +'settings_calendarDefaultView' => '달력 기본보기', 'settings_calendarDefaultView_desc' => '달력 기본보기', 'settings_cannot_disable' => '파일 ENABLE_INSTALL_TOOL 삭제할 수 없습니다', -'settings_checkOutDir' => '', -'settings_checkOutDir_desc' => '', +'settings_checkOutDir' => '체크아웃 문서 디렉토리', +'settings_checkOutDir_desc' => '이것은 문서가 체크아웃된 문서의 최신 내용이 복사되는 디렉토리입니다. 사용자를 위해 이 디렉토리에 액세스 할 수 있도록 하면 파일을 편집하고 종료시 그것을 다시 확인할 수 있습니다.', 'settings_contentDir' => '내용 디렉토리', 'settings_contentDir_desc' => '업로드 된 파일의 저장 위치(웹 서버를 통해 액세스 할 수없는 디렉토리를 선택하는 것이 가장 좋습니다)', 'settings_contentOffsetDir' => '내용 오프셋 디렉토리', @@ -759,8 +923,8 @@ $text = array( '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_createCheckOutDir' => '체크아웃 디렉토리', +'settings_createCheckOutDir_desc' => '문서가 체크아웃된 경우 문서 버전은 이 디렉터리에 복사 됩니다.', 'settings_createdatabase' => '데이터베이스 테이블 만들기', 'settings_createdirectory' => '디렉토리 만들기', 'settings_currentvalue' => '현재 값', @@ -783,25 +947,25 @@ $text = array( 'settings_Display' => '디스플레이 설정', 'settings_dropFolderDir' => '드롭 폴더 디렉토리', 'settings_dropFolderDir_desc' => '서버의 파일 시스템에서 파일을 Dropping 위해 디렉토리. 브라우저를 통해 업로드 할 수 있습니다. 각 사용자는 디렉토리를 소유 했거나 사용이 허가 권한이 있어야 합니다.', -'settings_Edition' => '판 설정', -'settings_enableAcknowledgeWorkflow' => '', -'settings_enableAcknowledgeWorkflow_desc' => '', +'settings_Edition' => '판(Edition) 설정', +'settings_enableAcknowledgeWorkflow' => '문서 수신의 응답 활성화', +'settings_enableAcknowledgeWorkflow_desc' => '문서의 수신 확인을 위해 워크플로어를 선택하고 활성화 합니다.', 'settings_enableAdminRevApp' => '관리자에 대한 검토 / 승인 허용', 'settings_enableAdminRevApp_desc' => '관리자가 검토 / 승인으로 워크플로우를 전환 할 경우에 사용.', 'settings_enableCalendar' => '달력 활성화', 'settings_enableCalendar_desc' => '활성화 / 비활성화 달력', 'settings_enableClipboard' => '클립 보드 활성화', -'settings_enableClipboard_desc' => '클립 보드 활성화 / 비활성화', +'settings_enableClipboard_desc' => '\'View Folder\'의 클립 보드 활성화/비활성화', 'settings_enableConverting' => '변환 사용', 'settings_enableConverting_desc' => '활성화 / 비활성화 파일로 변환', -'settings_enableDropUpload' => '', -'settings_enableDropUpload_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' => '거짓, 폴더 트리 표시되지 않습니다', +'settings_enableFolderTree_desc' => '\'View Folder\'에 폴더 트리 표시 활성 / 비활성', 'settings_enableFullSearch' => '전체 텍스트 검색 사용', 'settings_enableFullSearch_desc' => '전체 텍스트 검색 사용', 'settings_enableGuestLogin' => '게스트 로그인 활성화', @@ -810,12 +974,12 @@ $text = array( 'settings_enableLanguageSelector_desc' => '로그인 된 후 사용자 인터페이스 언어 선택기 보기 . 이것은 로그인 페이지에서 언어 선택에 영향을 주지 않습니다.', 'settings_enableLargeFileUpload' => '대용량 파일 업로드 사용', 'settings_enableLargeFileUpload_desc' => '설정하면, 브라우저가 설정 한 파일 크기 제한없이 jumploader라는 파일 업로드 자바 애플릿을 통해 사용할 수 있습니다. 또한 한 번에 여러 파일을 업로드 할 수 있습니다.', -'settings_enableMenuTasks' => '', -'settings_enableMenuTasks_desc' => '', +'settings_enableMenuTasks' => '메뉴의 작업 목록 허용', +'settings_enableMenuTasks_desc' => '사용자의 모든 작업이 포함되어있는 메뉴 항목을 활성/비활성 합니다. 이것은 검토, 승인등이 필요한 문서를 포함 합니다', 'settings_enableNotificationAppRev' => '검토 / 승인 알림 사용', 'settings_enableNotificationAppRev_desc' => '새 문서 버전이 추가 된 경우 리뷰 / 승인자에게 알림을 보내 확인', -'settings_enableNotificationWorkflow' => '', -'settings_enableNotificationWorkflow_desc' => '', +'settings_enableNotificationWorkflow' => '다음 작업 사용자에게 알림을 보냅니다.', +'settings_enableNotificationWorkflow_desc' => '문서의 통지를 추가 하지 않은 경우라도 이 옵션을 활성화하면 다음 워크플로우의 이행 조치가 필요한 사용자와 그룹에 통지 됩니다.', 'settings_enableOwnerNotification' => '기본적으로 소유자 알림 사용', 'settings_enableOwnerNotification_desc' => '추가 된 문서의 경우 소유자에 대한 알림을 추가 확인합니다.', 'settings_enableOwnerRevApp' => '소유자에 대한 검토 / 승인을 허용', @@ -824,12 +988,12 @@ $text = array( '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_enableRevisionWorkflow' => '문서의 개정 허용', +'settings_enableRevisionWorkflow_desc' => '일정 기간후에 문서를 개정 하기위해 워크플로우를 수행 할 수 있도록 설정 합니다.', 'settings_enableSelfRevApp' => '로그인 한 사용자에 대한 검토 / 승인을 허용', 'settings_enableSelfRevApp_desc' => '검토 / 승인자로 워크 플로우 전환을 위해 나열되어있는 것이 현재 로그인 한 사용자가 필요한 경우이를 활성화합니다.', -'settings_enableThemeSelector' => '', -'settings_enableThemeSelector_desc' => '', +'settings_enableThemeSelector' => '테마 선택', +'settings_enableThemeSelector_desc' => '로그인 페이지의 테마 선택기를 켜기/끄기로 전환합니다.', 'settings_enableUserImage' => '사용자 이미지 사용', 'settings_enableUserImage_desc' => '사용자 이미지 사용', 'settings_enableUsersView' => '사용자보기 사용', @@ -842,11 +1006,11 @@ $text = array( 'settings_encryptionKey_desc' => '이 문자열은 CSRF 공격을 방지하기 위해 formular에 숨겨진 필드로 추가되는 고유 식별자를 만드는 데 사용된다.', 'settings_error' => '오류', 'settings_expandFolderTree' => '폴더 트리 확장', -'settings_expandFolderTree_desc' => ',폴더 트리 확장', +'settings_expandFolderTree_desc' => '폴더 트리 확장', 'settings_expandFolderTree_val0' => '숨겨진 Tree로 시작', 'settings_expandFolderTree_val1' => '보이는 Tree로 시작 및 첫 번째 레벨 확장', 'settings_expandFolderTree_val2' => '보이는 Tree로 시작 및 전체 레벨 확장', -'settings_Extensions' => '', +'settings_Extensions' => '확장자', 'settings_extraPath' => '추가 PHP 경로', 'settings_extraPath_desc' => '추가 소프트웨어의 경로. 예를 들어 이 디렉토리는 ADODB 또는 추가 pear packages를 포함 합니다', 'settings_firstDayOfWeek' => '요일의 첫날', @@ -857,10 +1021,10 @@ $text = array( '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_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\' 설치', @@ -871,8 +1035,8 @@ $text = array( 'settings_install_zendframework' => '전체 텍스트 검색 엔진을 사용하려는 경우 Zend Framework 설치', 'settings_language' => '기본 언어', 'settings_language_desc' => '기본 언어(폴더 내에 있는 서브 폴더 이름은 "languages")', -'settings_libraryFolder' => '', -'settings_libraryFolder_desc' => '', +'settings_libraryFolder' => '라이브러리 폴더', +'settings_libraryFolder_desc' => '새 문서를 작성 하기 위해 문서를 복사하는 폴더.', 'settings_logFileEnable' => '로그 파일 사용', 'settings_logFileEnable_desc' => '로그 파일 활성 / 비활성화', 'settings_logFileRotation' => '로그 파일 회전', @@ -887,17 +1051,17 @@ $text = array( 'settings_maxDirID_desc' => '상위 디렉토리 당 서브 디렉토리의 최대 수 기본값 : 32700', 'settings_maxExecutionTime' => '최대 실행 시간 (들)', 'settings_maxExecutionTime_desc' => '종료되기 전 스크립트의 구문 분석 할 수있는 최대 시간을 초 단위로 설정', -'settings_maxRecursiveCount' => 'Max. number of recursive document/folder count', +'settings_maxRecursiveCount' => '최대 재귀 문서 / 폴더의 수', 'settings_maxRecursiveCount_desc' => '이것은 재귀적으로 개체를 셀 때 사용 권한이 확인됩니다 문서 및 폴더의 최대 수입니다. 이 수를 초과하면 폴더보기에서 문서 나 폴더의 수가 추정됩니다.', 'settings_more_settings' => '기타 설정을 구성합니다. 기본 로그인 : admin/admin', 'settings_notfound' => '찾을 수 없음', 'settings_Notification' => '알림 설정', 'settings_notwritable' => '구성값을 저장할 수 없습니다 구성 파일에 쓰기 권한이 없습니다.', 'settings_no_content_dir' => '내용 디렉토리', -'settings_overrideMimeType' => '', -'settings_overrideMimeType_desc' => '', -'settings_partitionSize' => '일부 파일 크기', -'settings_partitionSize_desc' => 'jumploader의 업로드 파일의 크기(Byte). 서버에서 설정 한 최대 업로드 크기 보다 큰 값을 설정하지 마십시오.', +'settings_overrideMimeType' => 'MIME 타입 재정의', +'settings_overrideMimeType_desc' => '파일이 업로드 되는 경우, 브라우저에 의해 제공되는 MIME 타입을 재정의 합니다. 새로운 MIME 타입은 SeedDMS에 의해 결정 됩니다.', +'settings_partitionSize' => '조각 파일 크기', +'settings_partitionSize_desc' => 'jumploader의 조각 업로드 파일의 크기(Byte). 서버에서 설정 한 최대 업로드 크기 보다 큰 값을 설정하지 마십시오.', 'settings_passwordExpiration' => '비밀번호 만료', 'settings_passwordExpiration_desc' => '비밀번호 만료 및 재설정되어야 하는 날짜 수. 0 비밀번호 만료일을 해제 합니다.', 'settings_passwordHistory' => '비밀번호 이력', @@ -915,14 +1079,14 @@ $text = array( 'settings_php_gd2' => 'PHP 확장 : php_gd2', 'settings_php_mbstring' => 'PHP 확장 : php_mbstring', 'settings_php_version' => 'PHP 버전', -'settings_presetExpirationDate' => '', -'settings_presetExpirationDate_desc' => '', -'settings_previewWidthDetail' => '', -'settings_previewWidthDetail_desc' => '', -'settings_previewWidthList' => '', -'settings_previewWidthList_desc' => '', +'settings_presetExpirationDate' => '프리셋(Preset) 만료일', +'settings_presetExpirationDate_desc' => '새로운 업로드된 문서는 설정 유효 기간을 갖게 됩니다. 이 값은 PHP의 strtotime() 함수에 의해 입력 날짜가 지정 됩니다. 예: 5중', +'settings_previewWidthDetail' => '미리보기 이미지의 폭 (세부 사항)', +'settings_previewWidthDetail_desc' => '상세정보에 표시되는 미리보기 이미자의 폭', +'settings_previewWidthList' => '미리보기 이미지의 폭 (목록)', +'settings_previewWidthList_desc' => '목록에 표시된 미리보기 이미지의 폭', 'settings_printDisclaimer' => '인쇄 면책 조항', -'settings_printDisclaimer_desc' => 'true의 경우 lang.inc 파일이 페이지의 하단에 보일 것입니다.', +'settings_printDisclaimer_desc' => '활성인 경우 메시지 내역이 모든 페이지의 하단에 출력됩니다', 'settings_quota' => '사용자의 할당량', 'settings_quota_desc' => '사용자가 디스크를 사용할 수 있습니다 최대 바이트 수. 무제한 디스크 공간 사용시 0으로 설정합니다. 각각 자신의 프로필에 사용을 위해이 값은 변경 할 수 있습니다.', 'settings_restricted' => '제한된 액세스', @@ -933,40 +1097,40 @@ $text = array( 'settings_rootFolderID_desc' => '루트 폴더 ID (대부분 변경은 필요 없음)', 'settings_SaveError' => '구성 파일 오류를 저장', 'settings_Server' => '서버 설정', -'settings_showMissingTranslations' => '', -'settings_showMissingTranslations_desc' => '', +'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' => '', -'settings_smtpPassword_desc' => '', +'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' => '', -'settings_smtpUser_desc' => '', -'settings_sortFoldersDefault' => '', -'settings_sortFoldersDefault_desc' => '', -'settings_sortFoldersDefault_val_name' => '', -'settings_sortFoldersDefault_val_sequence' => '', -'settings_sortFoldersDefault_val_unsorted' => '', +'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' => '조각 업로드 디렉토리', 'settings_stagingDir_desc' => '취합하여 함께 넣어 전 jumploader로 부터 업로드된 파일의 조각을 배치하는 디렉토리입니다.', 'settings_start_install' => '설치 시작', 'settings_stopWordsFile' => '정지단어 파일 경로', 'settings_stopWordsFile_desc' => '전체 텍스트 검색이 활성화 된 경우 이 파일은 색인이 생성이 되지 않는 정지단어를 포함 합니다.', 'settings_strictFormCheck' => '엄격한 양식 확인', -'settings_strictFormCheck_desc' => '엄격한 형식 검사. true로 설정하면, 다음 폼의 모든 필드 값을 확인한다. false로 설정하면, (대부분의) 의견과 키워드 필드는 선택 사항이된다. 리뷰 또는 문서 상태를 제출할 때 댓글은 항상 필요합니다.', +'settings_strictFormCheck_desc' => '엄격한 형식 검사. true로 설정하면, 다음 폼의 모든 필드 값을 확인한다. false로 설정하면, (대부분의) 의견과 키워드 필드는 선택 사항이된다. 리뷰 또는 문서 상태를 제출할 때 코맨트은 항상 필요합니다.', 'settings_suggestionvalue' => '제안 값', 'settings_System' => '시스템', 'settings_theme' => '기본 테마', @@ -988,7 +1152,7 @@ $text = array( 'settings_workflowMode_desc' => '문서 버전에 대한 자신의 릴리스 워크플로우 지정하실 수 있습니다 .', 'settings_workflowMode_valadvanced' => '고급', 'settings_workflowMode_valtraditional' => '기본적인', -'settings_workflowMode_valtraditional_only_approval' => '', +'settings_workflowMode_valtraditional_only_approval' => '통상적인 (리뷰 없음)', 'settings_zendframework' => '젠드 프레임 워크', 'set_expiry' => '설정 만료', 'set_owner' => '소유자 설정', @@ -1007,8 +1171,8 @@ $text = array( 'splash_add_group_member' => '새 그룹 구성원 추가', 'splash_add_user' => '새 사용자 추가', 'splash_cleared_clipboard' => '클립 보드 비우기', -'splash_document_added' => '', -'splash_document_checkedout' => '', +'splash_document_added' => '문서를 추가', +'splash_document_checkedout' => '문서 체크아웃', 'splash_document_edited' => '문서 저장', 'splash_document_locked' => '문서 잠금', 'splash_document_unlocked' => '문서 잠금 해제', @@ -1021,8 +1185,8 @@ $text = array( 'splash_moved_clipboard' => '클립 보드가 현재 폴더로 이동', 'splash_removed_from_clipboard' => '클립 보드에서 제거', 'splash_rm_attribute' => '속성 제거', -'splash_rm_document' => '', -'splash_rm_folder' => '', +'splash_rm_document' => '문서 삭제', +'splash_rm_folder' => '폴더 삭제', 'splash_rm_group' => '그룹 제거', 'splash_rm_group_member' => '회원 그룹 제거', 'splash_rm_user' => '사용자 제거', @@ -1033,81 +1197,90 @@ $text = array( 'state_and_next_state' => '상태 / 다음 상태', 'statistic' => '통계', 'status' => '상태', -'status_approval_rejected' => '초안이 거부', +'status_approval_rejected' => '거부된 초안', 'status_approved' => '승인', 'status_approver_removed' => '승인 과정에서 제거', 'status_not_approved' => '승인되지 않음​​', -'status_not_receipted' => '', +'status_not_receipted' => '아직 접수 않된', 'status_not_reviewed' => '검토되지 않음', -'status_not_revised' => '', -'status_receipted' => '', -'status_receipt_rejected' => '', -'status_recipient_removed' => '', +'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_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_receipt' => '접수증 제출', 'submit_review' => '리뷰 제출', 'submit_userinfo' => '정보 제출', -'substitute_to_user' => '', +'substitute_to_user' => '\'[username]\'로 전환', 'substitute_user' => '대체 사용자', 'sunday' => '일요일', 'sunday_abbr' => '일', 'sv_SE' => '스웨덴어', 'switched_to' => '전환', -'takeOverGrpApprover' => '', -'takeOverGrpReviewer' => '', -'takeOverIndApprover' => '', -'takeOverIndReviewer' => '', -'tasks' => '', -'testmail_body' => '', -'testmail_subject' => '', +'takeOverGrpApprover' => '마지막 버전의 승인자의 그룹를 인수 합니다.', +'takeOverGrpReviewer' => '최종 버전의 리뷰 그룹을 상속합니다.', +'takeOverIndApprover' => '마지막 버전의 개별 승인자를 인수 합니다.', +'takeOverIndReviewer' => '최종 버전의 개인별 검수자를 상속합니다.', +'tasks' => '작업', +'testmail_body' => '본 메일은 SeedDMS의 메일 구성을 단순 테스트한 것입니다', +'testmail_subject' => '테스트 메일', 'theme' => '테마', 'thursday' => '목요일', 'thursday_abbr' => '목', -'to' => 'To', +'to' => '마감일', 'toggle_manager' => '전환 매니저', -'to_before_from' => '', -'transition_triggered_email' => '워크플로우 전환 트리거 Workflow transition triggered', -'transition_triggered_email_body' => '워크플로우 전환 트리거 rn 문서 : [name] rn 버전 : [version] rn코멘트 : [comment] rn워크플로우 : [workflow] rn 이전 상태 : [previous_state] rn 현재 상태 : [current_state] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'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' => '', +'transmittal' => '전송', +'transmittalitem_removed' => '송부 항목 삭제', +'transmittalitem_updated' => '최신 버전으로 문서 업데이트', +'transmittal_comment' => '코맨트', +'transmittal_name' => '아름', +'transmittal_size' => '크기', 'trigger_workflow' => '워크플로우', -'tr_TR' => '', +'tr_TR' => '터키어', 'tuesday' => '화요일', 'tuesday_abbr' => '화', 'type_to_search' => '유형 검색', -'uk_UA' => '', +'uk_UA' => '우크라이나어', 'under_folder' => '폴더', -'unknown_attrdef' => '', +'unknown_attrdef' => '알수 없는 속성 정의', 'unknown_command' => '명령을 인식 할 수 없습니다.', 'unknown_document_category' => '알 수없는 범주', 'unknown_group' => '알 수없는 그룹 ID', -'unknown_id' => '알 수없는 ID를', +'unknown_id' => '알 수없는 ID', 'unknown_keyword_category' => '알 수없는 범주', 'unknown_owner' => '알 수없는 소유자 ID', 'unknown_user' => '알 수없는 사용자 ID', 'unlinked_content' => '연결되지 않은 내용', -'unlinked_documents' => '', -'unlinked_folders' => '', +'unlinked_documents' => '연결되지 않은 문서', +'unlinked_folders' => '연결 되지 않은 폴더', 'unlinking_objects' => '링크 해제된 콘텐츠', 'unlock_cause_access_mode_all' => '액세스 모드 "all"를 가지고 있기 때문에 당신은 여전히 업데이트 할 수 있습니다. 잠금이 자동으로 제거됩니다.', -'unlock_cause_locking_user' => '당신은 여전히 업데이트 할 수 있습니다. 잠금이 자동으로 제거됩니다. You can still update it because you are also the one that locked it.', +'unlock_cause_locking_user' => '당신은 여전히 업데이트 할 수 있습니다. 잠금이 자동으로 제거됩니다.', 'unlock_document' => '잠금 해제', 'update' => '업데이트', 'update_approvers' => '승인자의 업데이트 목록', @@ -1115,13 +1288,13 @@ $text = array( 'update_fulltext_index' => '업데이트 전체 텍스트 색인', 'update_info' => '업데이트 정보', 'update_locked_msg' => '이 문서는 잠겨 있습니다.', -'update_recipients' => '', +'update_recipients' => '받는 사람 업데이트 목록', 'update_reviewers' => '검토 업데이트 목록', -'update_revisors' => '', -'update_transmittalitem' => '', +'update_revisors' => '재 제출자 목록 업데이트', +'update_transmittalitem' => '최신 문서 버전으로 업데이트', 'uploaded_by' => '업로드', 'uploading_failed' => '파일 업로드중 실패 최대. 업로드 파일 크기를 확인하시기 바랍니다.', -'uploading_maxsize' => '', +'uploading_maxsize' => '최대 업로드 파일 크기를 초과하였습니다.', 'uploading_zerosize' => '빈 파일을 업로드 합니다. 업로드가 취소 됩니다.', 'used_discspace' => '사용되는 디스크 공간', 'user' => '사용자', @@ -1145,7 +1318,12 @@ $text = array( 'versioning_info' => '버전 관리 정보', 'versiontolow' => '낮은 버전', 'version_deleted_email' => '버전 삭제', -'version_deleted_email_body' => '버전의 rn 문서를 삭제 : [name] rn 버전 : [version] rn상위 폴더 : [folder_path] rn사용자 : [username] rnURL : [url]', +'version_deleted_email_body' => '버전 삭제 +문서: [name] +버전: [version] +상위 폴더: [folder_path] +사용자: [username] +URL : [url]', 'version_deleted_email_subject' => '[sitename] : [name] - 버전 삭제', 'version_info' => '버전 정보', 'view' => '보기', @@ -1154,7 +1332,7 @@ $text = array( 'wednesday' => '수요일', 'wednesday_abbr' => '수', 'weeks' => '주', -'week_view' => '주간', +'week_view' => '주간 단위로 보기', 'workflow' => '워크플로우', 'workflow_actions_management' => '워크플로우 작업 관리', 'workflow_action_in_use' => '이 작업은 현재 워크플로우에 의해 사용된다.', @@ -1172,7 +1350,7 @@ $text = array( 'workflow_state_name' => '이름', 'workflow_summary' => '워크플로우 요약', 'workflow_user_summary' => '사용자 요약', -'year_view' => '년', +'year_view' => '연간 단위로 보기', 'yes' => '예', 'zh_CN' => '중국어 (CN)', 'zh_TW' => '중국어 (TW)',