diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 7b14e446306b156583576f265c6899ac2e9dd736..a56fe9f6e7e0b6364663cdcdfdd680dbfdea08f4 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -30,7 +30,7 @@ class _DiffOp { class _DiffOp_Copy extends _DiffOp { var $type = 'copy'; - function _DiffOp_Copy ($orig, $closing = false) { + function _DiffOp_Copy($orig, $closing = false) { if (!is_array($closing)) $closing = $orig; $this->orig = $orig; @@ -45,7 +45,7 @@ class _DiffOp_Copy extends _DiffOp { class _DiffOp_Delete extends _DiffOp { var $type = 'delete'; - function _DiffOp_Delete ($lines) { + function _DiffOp_Delete($lines) { $this->orig = $lines; $this->closing = false; } @@ -58,7 +58,7 @@ class _DiffOp_Delete extends _DiffOp { class _DiffOp_Add extends _DiffOp { var $type = 'add'; - function _DiffOp_Add ($lines) { + function _DiffOp_Add($lines) { $this->closing = $lines; $this->orig = false; } @@ -71,7 +71,7 @@ class _DiffOp_Add extends _DiffOp { class _DiffOp_Change extends _DiffOp { var $type = 'change'; - function _DiffOp_Change ($orig, $closing) { + function _DiffOp_Change($orig, $closing) { $this->orig = $orig; $this->closing = $closing; } @@ -104,7 +104,7 @@ class _DiffOp_Change extends _DiffOp { */ class _DiffEngine { - function diff ($from_lines, $to_lines) { + function diff($from_lines, $to_lines) { $n_from = count($from_lines); $n_to = count($to_lines); @@ -135,7 +135,7 @@ class _DiffEngine { $xhash[$from_lines[$xi]] = 1; for ($yi = $skip; $yi < $n_to - $endskip; $yi++) { $line = $to_lines[$yi]; - if ( ($this->ychanged[$yi] = empty($xhash[$line])) ) + if (($this->ychanged[$yi] = empty($xhash[$line]))) continue; $yhash[$line] = 1; $this->yv[] = $line; @@ -143,7 +143,7 @@ class _DiffEngine { } for ($xi = $skip; $xi < $n_from - $endskip; $xi++) { $line = $from_lines[$xi]; - if ( ($this->xchanged[$xi] = empty($yhash[$line])) ) + if (($this->xchanged[$xi] = empty($yhash[$line]))) continue; $this->xv[] = $line; $this->xind[] = $xi; @@ -165,8 +165,7 @@ class _DiffEngine { // Skip matching "snake". $copy = array(); - while ( $xi < $n_from && $yi < $n_to - && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { + while ($xi < $n_from && $yi < $n_to && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { $copy[] = $from_lines[$xi++]; ++$yi; } @@ -210,15 +209,14 @@ class _DiffEngine { * match. The caller must trim matching lines from the beginning and end * of the portions it is going to specify. */ - function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) { + function _diag($xoff, $xlim, $yoff, $ylim, $nchunks) { $flip = false; if ($xlim - $xoff > $ylim - $yoff) { // Things seems faster (I'm not sure I understand why) // when the shortest sequence in X. $flip = true; - list ($xoff, $xlim, $yoff, $ylim) - = array( $yoff, $ylim, $xoff, $xlim); + list ($xoff, $xlim, $yoff, $ylim) = array($yoff, $ylim, $xoff, $xlim); } if ($flip) @@ -284,7 +282,7 @@ class _DiffEngine { return array($this->lcs, $seps); } - function _lcs_pos ($ypos) { + function _lcs_pos($ypos) { $end = $this->lcs; if ($end == 0 || $ypos > $this->seq[$end]) { $this->seq[++$this->lcs] = $ypos; @@ -295,7 +293,7 @@ class _DiffEngine { $beg = 1; while ($beg < $end) { $mid = (int)(($beg + $end) / 2); - if ( $ypos > $this->seq[$mid] ) + if ($ypos > $this->seq[$mid]) $beg = $mid + 1; else $end = $mid; @@ -321,17 +319,15 @@ class _DiffEngine { * Note that XLIM, YLIM are exclusive bounds. * All line numbers are origin-0 and discarded lines are not counted. */ - function _compareseq ($xoff, $xlim, $yoff, $ylim) { + function _compareseq($xoff, $xlim, $yoff, $ylim) { // Slide down the bottom initial diagonal. - while ($xoff < $xlim && $yoff < $ylim - && $this->xv[$xoff] == $this->yv[$yoff]) { + while ($xoff < $xlim && $yoff < $ylim && $this->xv[$xoff] == $this->yv[$yoff]) { ++$xoff; ++$yoff; } // Slide up the top initial diagonal. - while ($xlim > $xoff && $ylim > $yoff - && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { + while ($xlim > $xoff && $ylim > $yoff && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { --$xlim; --$ylim; } @@ -379,7 +375,7 @@ class _DiffEngine { * * This is extracted verbatim from analyze.c (GNU diffutils-2.7). */ - function _shift_boundaries ($lines, &$changed, $other_changed) { + function _shift_boundaries($lines, &$changed, $other_changed) { $i = 0; $j = 0; @@ -519,7 +515,7 @@ class Diff { * @return object A Diff object representing the inverse of the * original diff. */ - function reverse () { + function reverse() { $rev = $this; $rev->edits = array(); foreach ($this->edits as $edit) { @@ -533,7 +529,7 @@ class Diff { * * @return bool True iff two sequences were identical. */ - function isEmpty () { + function isEmpty() { foreach ($this->edits as $edit) { if ($edit->type != 'copy') return false; @@ -548,7 +544,7 @@ class Diff { * * @return int The length of the LCS. */ - function lcs () { + function lcs() { $lcs = 0; foreach ($this->edits as $edit) { if ($edit->type == 'copy') @@ -598,7 +594,7 @@ class Diff { * * This is here only for debugging purposes. */ - function _check ($from_lines, $to_lines) { + function _check($from_lines, $to_lines) { if (serialize($from_lines) != serialize($this->orig())) trigger_error("Reconstructed original doesn't match", E_USER_ERROR); if (serialize($to_lines) != serialize($this->closing())) @@ -612,7 +608,7 @@ class Diff { $prevtype = 'none'; foreach ($this->edits as $edit) { - if ( $prevtype == $edit->type ) + if ($prevtype == $edit->type) trigger_error("Edit sequence is non-optimal", E_USER_ERROR); $prevtype = $edit->type; } @@ -649,8 +645,7 @@ class MappedDiff extends Diff { * @param $mapped_to_lines array This array should * have the same number of elements as $to_lines. */ - function MappedDiff($from_lines, $to_lines, - $mapped_from_lines, $mapped_to_lines) { + function MappedDiff($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) { assert(count($from_lines) == count($mapped_from_lines)); assert(count($to_lines) == count($mapped_to_lines)); @@ -727,9 +722,7 @@ class DiffFormatter { $context = array_slice($edit->orig, 0, $ntrail); $block[] = new _DiffOp_Copy($context); } - $this->_block($x0, $ntrail + $xi - $x0, - $y0, $ntrail + $yi - $y0, - $block); + $this->_block($x0, $ntrail + $xi - $x0, $y0, $ntrail + $yi - $y0, $block); $block = false; } } @@ -754,9 +747,7 @@ class DiffFormatter { } if (is_array($block)) - $this->_block($x0, $xi - $x0, - $y0, $yi - $y0, - $block); + $this->_block($x0, $xi - $x0, $y0, $yi - $y0, $block); return $this->_end_diff(); } @@ -836,17 +827,21 @@ class DiffFormatter { define('NBSP', "\xC2\xA0"); // utf-8 non-breaking space. class _HWLDF_WordAccumulator { - function _HWLDF_WordAccumulator () { + function _HWLDF_WordAccumulator() { $this->_lines = array(); $this->_line = ''; $this->_group = ''; $this->_tag = ''; } - function _flushGroup ($new_tag) { + function _flushGroup($new_tag) { if ($this->_group !== '') { if ($this->_tag == 'mark') $this->_line .= '<strong>'.$this->_group.'</strong>'; + elseif ($this->_tag == 'add') + $this->_line .= '<span class="diff-addedline">'.$this->_group.'</span>'; + elseif ($this->_tag == 'del') + $this->_line .= '<span class="diff-deletedline"><del>'.$this->_group.'</del></span>'; else $this->_line .= $this->_group; } @@ -854,14 +849,14 @@ class _HWLDF_WordAccumulator { $this->_tag = $new_tag; } - function _flushLine ($new_tag) { + function _flushLine($new_tag) { $this->_flushGroup($new_tag); if ($this->_line != '') $this->_lines[] = $this->_line; $this->_line = ''; } - function addWords ($words, $tag = '') { + function addWords($words, $tag = '') { if ($tag != $this->_tag) $this->_flushGroup($tag); @@ -887,46 +882,80 @@ class _HWLDF_WordAccumulator { class WordLevelDiff extends MappedDiff { - function WordLevelDiff ($orig_lines, $closing_lines) { + function WordLevelDiff($orig_lines, $closing_lines) { list ($orig_words, $orig_stripped) = $this->_split($orig_lines); list ($closing_words, $closing_stripped) = $this->_split($closing_lines); - $this->MappedDiff($orig_words, $closing_words, - $orig_stripped, $closing_stripped); + $this->MappedDiff($orig_words, $closing_words, $orig_stripped, $closing_stripped); } function _split($lines) { - if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', - implode("\n", $lines), - $m)) { + if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', + implode("\n", $lines), $m)) { return array(array(''), array('')); - } - return array($m[0], $m[1]); - } + } + return array($m[0], $m[1]); + } - function orig () { - $orig = new _HWLDF_WordAccumulator; + function orig() { + $orig = new _HWLDF_WordAccumulator; - foreach ($this->edits as $edit) { + foreach ($this->edits as $edit) { if ($edit->type == 'copy') - $orig->addWords($edit->orig); + $orig->addWords($edit->orig); elseif ($edit->orig) - $orig->addWords($edit->orig, 'mark'); - } - return $orig->getLines(); - } + $orig->addWords($edit->orig, 'mark'); + } + return $orig->getLines(); + } - function closing () { - $closing = new _HWLDF_WordAccumulator; + function closing() { + $closing = new _HWLDF_WordAccumulator; - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $closing->addWords($edit->closing); - elseif ($edit->closing) - $closing->addWords($edit->closing, 'mark'); - } - return $closing->getLines(); - } + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $closing->addWords($edit->closing); + elseif ($edit->closing) + $closing->addWords($edit->closing, 'mark'); + } + return $closing->getLines(); + } +} + +class InlineWordLevelDiff extends MappedDiff { + + function InlineWordLevelDiff($orig_lines, $closing_lines) { + list ($orig_words, $orig_stripped) = $this->_split($orig_lines); + list ($closing_words, $closing_stripped) = $this->_split($closing_lines); + + $this->MappedDiff($orig_words, $closing_words, $orig_stripped, $closing_stripped); + } + + function _split($lines) { + if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', + implode("\n", $lines), $m)) { + return array(array(''), array('')); + } + return array($m[0], $m[1]); + } + + function inline() { + $orig = new _HWLDF_WordAccumulator; + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $orig->addWords($edit->orig); + elseif ($edit->type == 'change'){ + $orig->addWords($edit->orig, 'del'); + $orig->addWords($edit->closing, 'add'); + } elseif ($edit->type == 'delete') + $orig->addWords($edit->orig, 'del'); + elseif ($edit->type == 'add') + $orig->addWords($edit->closing, 'add'); + elseif ($edit->orig) + $orig->addWords($edit->orig, 'del'); + } + return $orig->getLines(); + } } /** @@ -986,76 +1015,145 @@ class TableDiffFormatter extends DiffFormatter { return $text; } - function _block_header( $xbeg, $xlen, $ybeg, $ylen ) { + function _block_header($xbeg, $xlen, $ybeg, $ylen) { global $lang; $l1 = $lang['line'].' '.$xbeg; $l2 = $lang['line'].' '.$ybeg; - $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.":</td>\n" . - '<td class="diff-blockheader" colspan="2">'.$l2.":</td></tr>\n"; + $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.':</td>\n'. + ' <td class="diff-blockheader" colspan="2">'.$l2.":</td>\n'. + '</tr>\n"; return $r; } - function _start_block( $header ) { - print( $header ); + function _start_block($header) { + print($header); } function _end_block() { } - function _lines( $lines, $prefix=' ', $color="white" ) { + function _lines($lines, $prefix=' ', $color="white") { } - function addedLine( $line ) { - return '<td>+</td><td class="diff-addedline">' . - $line.'</td>'; - + function addedLine($line) { + return '<td>+</td><td class="diff-addedline">' . $line.'</td>'; } - function deletedLine( $line ) { - return '<td>-</td><td class="diff-deletedline">' . - $line.'</td>'; + function deletedLine($line) { + return '<td>-</td><td class="diff-deletedline">' . $line.'</td>'; } function emptyLine() { return '<td colspan="2"> </td>'; } - function contextLine( $line ) { + function contextLine($line) { return '<td> </td><td class="diff-context">'.$line.'</td>'; } function _added($lines) { foreach ($lines as $line) { - print( '<tr>' . $this->emptyLine() . - $this->addedLine( $line ) . "</tr>\n" ); + print('<tr>' . $this->emptyLine() . $this->addedLine($line) . "</tr>\n"); } } function _deleted($lines) { foreach ($lines as $line) { - print( '<tr>' . $this->deletedLine( $line ) . - $this->emptyLine() . "</tr>\n" ); + print('<tr>' . $this->deletedLine($line) . $this->emptyLine() . "</tr>\n"); } } - function _context( $lines ) { + function _context($lines) { foreach ($lines as $line) { - print( '<tr>' . $this->contextLine( $line ) . - $this->contextLine( $line ) . "</tr>\n" ); + print('<tr>' . $this->contextLine($line) . $this->contextLine($line) . "</tr>\n"); } } - function _changed( $orig, $closing ) { - $diff = new WordLevelDiff( $orig, $closing ); + function _changed($orig, $closing) { + $diff = new WordLevelDiff($orig, $closing); $del = $diff->orig(); $add = $diff->closing(); - while ( $line = array_shift( $del ) ) { - $aline = array_shift( $add ); - print( '<tr>' . $this->deletedLine( $line ) . - $this->addedLine( $aline ) . "</tr>\n" ); + while ($line = array_shift($del)) { + $aline = array_shift($add); + print('<tr>' . $this->deletedLine($line) . $this->addedLine($aline) . "</tr>\n"); } - $this->_added( $add ); # If any leftovers + $this->_added($add); # If any leftovers + } +} + +/** + * Inline style diff formatter. + * + */ +class InlineDiffFormatter extends DiffFormatter { + + function InlineDiffFormatter() { + $this->leading_context_lines = 2; + $this->trailing_context_lines = 2; + } + + function format($diff) { + // Preserve whitespaces by converting some to non-breaking spaces. + // Do not convert all of them to allow word-wrap. + $val = parent::format($diff); + $val = str_replace(' ',' ', $val); + $val = preg_replace('/ (?=<)|(?<=[ >]) /', ' ', $val); + return $val; + } + + function _pre($text){ + $text = htmlspecialchars($text); + return $text; + } + + function _block_header($xbeg, $xlen, $ybeg, $ylen) { + global $lang; + if ($xlen != 1) + $xbeg .= "," . $xlen; + if ($ylen != 1) + $ybeg .= "," . $ylen; + $r = '<tr><td class="diff-blockheader">@@ '.$lang['line']." -$xbeg +$ybeg @@"; + $r .= ' <span class="diff-deletedline"><del>'.$lang['deleted'].'</del></span>'; + $r .= ' <span class="diff-addedline">'.$lang['created'].'</span>'; + $r .= "</td></tr>\n"; + return $r; + } + + function _start_block($header) { + print($header."\n"); + } + + function _end_block() { + } + + function _lines($lines, $prefix=' ', $color="white") { + } + + function _added($lines) { + foreach ($lines as $line) { + print('<tr><td class="diff-addedline">'. $line . "</td></tr>\n"); + } + } + + function _deleted($lines) { + foreach ($lines as $line) { + print('<tr><td class="diff-deletedline"><del>' . $line . "</del></td></tr>\n"); + } + } + + function _context($lines) { + foreach ($lines as $line) { + print('<tr><td class="diff-context">'.$line."</td></tr>\n"); + } + } + + function _changed($orig, $closing) { + $diff = new InlineWordLevelDiff($orig, $closing); + $add = $diff->inline(); + + foreach ($add as $line) + print('<tr><td>'.$line."</td></tr>\n"); } } diff --git a/inc/JSON.php b/inc/JSON.php index 332827f4ca08ea63911298956b0a317234bc483a..2dea44003fc24c7dfe84df7fdc96592a908c4f2b 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -112,6 +112,16 @@ define('JSON_STRICT_TYPE', 11); * @deprecated */ class JSON { + + /** + * Disables the use of PHP5's native json_decode() + * + * You shouldn't change this usually because the native function is much + * faster. However, this non-native will also parse slightly broken JSON + * which might be handy when talking to a non-conform endpoint + */ + public $skipnative = false; + /** * constructs a new JSON instance * @@ -130,6 +140,7 @@ class JSON { /** * encodes an arbitrary variable into JSON format + * If available the native PHP JSON implementation is used. * * @param mixed $var any number, boolean, string, array, or object to be encoded. * see argument 1 to JSON() above for array-parsing behavior. @@ -140,6 +151,7 @@ class JSON { * @access public */ function encode($var) { + if (function_exists('json_encode')) return json_encode($var); switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -352,6 +364,7 @@ class JSON { /** * decodes a JSON string into appropriate variable + * If available the native PHP JSON implementation is used. * * @param string $str JSON-formatted string * @@ -363,6 +376,10 @@ class JSON { * @access public */ function decode($str) { + if (!$this->skipnative && function_exists('json_decode')){ + return json_decode($str,($this->use == JSON_LOOSE_TYPE)); + } + $str = $this->reduce_string($str); switch (strtolower($str)) { diff --git a/inc/actions.php b/inc/actions.php index 9db7d5f24e18883b4c4dea893fe8a03411477455..fb2ae452fd93f4b035a51af359f38d5b02b07ac7 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -20,6 +20,7 @@ function act_dispatch(){ global $ID; global $QUERY; global $lang; + global $conf; $preact = $ACT; @@ -50,6 +51,12 @@ function act_dispatch(){ } } + //display some infos + if($ACT == 'check'){ + check(); + $ACT = 'show'; + } + //check permissions $ACT = act_permcheck($ACT); @@ -120,12 +127,6 @@ function act_dispatch(){ if(substr($ACT,0,7) == 'export_') $ACT = act_export($ACT); - //display some infos - if($ACT == 'check'){ - check(); - $ACT = 'show'; - } - //handle admin tasks if($ACT == 'admin'){ // retrieve admin plugin name from $_REQUEST['page'] @@ -143,6 +144,10 @@ function act_dispatch(){ $ACT = act_permcheck($ACT); } // end event ACTION_ACT_PREPROCESS default action $evt->advise_after(); + // Make sure plugs can handle 'denied' + if($conf['send404'] && $ACT == 'denied') { + header('HTTP/1.0 403 Forbidden'); + } unset($evt); // when action 'show', the intial not 'show' and POST, do a redirect diff --git a/inc/changelog.php b/inc/changelog.php index bb00df76c68f90eebc96c87b0ac1a229b6c9faae..cc7612bfd147d59866bedaf5e0c2a7030d84e434 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -37,6 +37,15 @@ function parseChangelogLine($line) { /** * Add's an entry to the changelog and saves the metadata for the page * + * @param int $date Timestamp of the change + * @param String $id Name of the affected page + * @param String $type Type of the change see DOKU_CHANGE_TYPE_* + * @param String $summary Summary of the change + * @param mixed $extra In case of a revert the revision (timestmp) of the reverted page + * @param array $flags Additional flags in a key value array. + * Availible flags: + * - ExternalEdit - mark as an external edit. + * * @author Andreas Gohr <andi@splitbrain.org> * @author Esther Brunner <wikidesign@gmail.com> * @author Ben Coburn <btcoburn@silicodon.net> diff --git a/inc/form.php b/inc/form.php index 70190d2b49b0dc2dceeab3cc18db93281260ab01..e614d2f30df29fc4555eaf04d3fab6b2a0d95038 100644 --- a/inc/form.php +++ b/inc/form.php @@ -252,7 +252,7 @@ class Doku_Form { global $lang; $form = ''; $this->params['accept-charset'] = $lang['encoding']; - $form .= '<form ' . html_attbuild($this->params) . '><div class="no">' . DOKU_LF; + $form .= '<form ' . buildAttributes($this->params,true) . '><div class="no">' . DOKU_LF; if (!empty($this->_hidden)) { foreach ($this->_hidden as $name=>$value) $form .= form_hidden(array('name'=>$name, 'value'=>$value)); @@ -597,7 +597,7 @@ function form_makeListboxField($name, $values, $selected='', $label=null, $id='' * @author Tom N Harris <tnharris@whoopdedo.org> */ function form_tag($attrs) { - return '<'.$attrs['_tag'].' '.buildAttributes($attrs).'/>'; + return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'/>'; } /** diff --git a/inc/html.php b/inc/html.php index 7f502afa528949553c5c40d9dc22a01ebea3d555..9d3c9270744b04f29c9b33c99ebac246228ed465 100644 --- a/inc/html.php +++ b/inc/html.php @@ -26,6 +26,7 @@ function html_wikilink($id,$name=null,$search=''){ /** * Helps building long attribute lists * + * @deprecated Use buildAttributes instead * @author Andreas Gohr <andi@splitbrain.org> */ function html_attbuild($attributes){ diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index 33c6db01a3cca8c63863abf8f78ba5b4511e2054..749a41a5bbc9910fbf07e7a6743b6e22411fcffc 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -242,7 +242,7 @@ $lang['i_wikiname'] = 'Název wiki'; $lang['i_enableacl'] = 'Zapnout ACL (doporuÄeno)'; $lang['i_superuser'] = 'Správce'; $lang['i_problems'] = 'Instalátor narazil na nÞe popsané problémy. Nelze pokraÄovat v instalaci, dokud je neopravÃte.'; -$lang['i_modified'] = 'Instalátor bude z bezpeÄnostnÃch důvodů pracovat pouze s Äistou a jeÅ¡tÄ› neupravenou instalacà DokuWiki. BuÄ znovu rozbalte souboru z instalaÄnÃho balÃÄku nebo se zkuste poradit s <a href="http://dokuwiki.org/install">instrukcemi pro instalci DokuWiki</a>.'; +$lang['i_modified'] = 'Instalátor bude z bezpeÄnostnÃch důvodů pracovat pouze s Äistou a jeÅ¡tÄ› neupravenou instalacà DokuWiki. BuÄ znovu rozbalte souboru z instalaÄnÃho balÃÄku nebo se zkuste poradit s <a href="http://dokuwiki.org/install">instrukcemi pro instalaci DokuWiki</a>.'; $lang['i_funcna'] = 'PHP funkce <code>%s</code> nenà dostupná. Váš webhosting ji možná z nÄ›jakého důvodu vypnul.'; $lang['i_phpver'] = 'Verze vaÅ¡Ã instalace PHP <code>%s</code> je nižšà než požadovaná <code>%s</code>. Budete muset aktualizovat svou instalaci PHP.'; $lang['i_permfail'] = 'DokuWiki nemůže zapisovat do <code>%s</code>. Budete muset opravit práva k tomuto adresáři.'; @@ -268,7 +268,7 @@ $lang['mu_toobig'] = 'pÅ™ÃliÅ¡ velké'; $lang['mu_ready'] = 'pÅ™ipraveno k naÄtenÃ'; $lang['mu_done'] = 'hotovo'; $lang['mu_fail'] = 'selhalo'; -$lang['mu_authfail'] = 'vyprÅ¡la session'; +$lang['mu_authfail'] = 'vyprÅ¡ela session'; $lang['mu_progress'] = '@PCT@% naÄten'; $lang['mu_filetypes'] = 'Povolené typy souborů'; $lang['mu_info'] = 'soubory naÄteny.'; diff --git a/inc/lang/cs/subscr_form.txt b/inc/lang/cs/subscr_form.txt index b786ac13792ad6d6fb8c933f35c6176d6cf1d42a..d051b646fcd96b1b32a396016a77eb6887f16f04 100644 --- a/inc/lang/cs/subscr_form.txt +++ b/inc/lang/cs/subscr_form.txt @@ -1,3 +1,3 @@ ====== Správa odbÄ›ratelů zmÄ›n ====== -Tato stránka Vám umožnuje spravovat uživatele pÅ™ihlášené k odbÄ›ru zmÄ›n aktuálnà stránky nebo jmenného prostoru. \ No newline at end of file +Tato stránka Vám umožňuje spravovat uživatele pÅ™ihlášené k odbÄ›ru zmÄ›n aktuálnà stránky nebo jmenného prostoru. \ No newline at end of file diff --git a/inc/lang/ko/adminplugins.txt b/inc/lang/ko/adminplugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..5312cf357eccc4e3e0a505268d2b4103b191a53f --- /dev/null +++ b/inc/lang/ko/adminplugins.txt @@ -0,0 +1 @@ +===== 부가ì ì¸ í”ŒëŸ¬ê·¸ì¸ ===== \ No newline at end of file diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt index d73f935fee0dda831afae481042e87ffe2aa34d4..9b59524f72c5719fea85e91a97211cdc33ef8e30 100644 --- a/inc/lang/ko/edit.txt +++ b/inc/lang/ko/edit.txt @@ -1,2 +1,2 @@ -페ì´ì§€ë¥¼ íŽ¸ì§‘í•˜ê³ **ì €ìž¥**ì„ ëˆ„ë¥´ì‹ì‹œì˜¤. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]] í˜¹ì€ [[syntax|(한글) 구문]]ì„ ì°¸ê³ í•˜ì‹ì‹œì˜¤. ì´ íŽ˜ì´ì§€ë¥¼ **ë” ë‚«ê²Œ 만들 ìžì‹ ì´ ìžˆì„** ë•Œì—만 편집하ì‹ì‹œì˜¤. ì‹¤í—˜ì„ í•˜ê³ ì‹¶ì„ ë•Œì—는, ë¨¼ì € [[playground:playground|연습장]] ì— ê°€ì„œ 연습해 ë³´ì‹ì‹œì˜¤. +페ì´ì§€ë¥¼ íŽ¸ì§‘í•˜ê³ **ì €ìž¥**ì„ ëˆ„ë¥´ì‹ì‹œì˜¤. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]] í˜¹ì€ [[wiki:ko_syntax|(한글) 구문]]ì„ ì°¸ê³ í•˜ì‹ì‹œì˜¤. ì´ íŽ˜ì´ì§€ë¥¼ **ë” ë‚«ê²Œ 만들 ìžì‹ ì´ ìžˆì„** ë•Œì—만 편집하ì‹ì‹œì˜¤. ì‹¤í—˜ì„ í•˜ê³ ì‹¶ì„ ë•Œì—는, ë¨¼ì € [[playground:playground|연습장]] ì— ê°€ì„œ 연습해 ë³´ì‹ì‹œì˜¤. diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 83014c151b60357a453d144eff52771d342c64a9..3765dd0114b912faa9e010d61c428e9f068c3992 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -8,6 +8,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,15 +42,13 @@ $lang['btn_back'] = '뒤로'; $lang['btn_backlink'] = 'ì´ì „ ë§í¬'; $lang['btn_backtomedia'] = '미디어 íŒŒì¼ ì„ íƒìœ¼ë¡œ ëŒì•„가기'; $lang['btn_subscribe'] = 'êµ¬ë… ì‹ ì²'; -$lang['btn_unsubscribe'] = 'êµ¬ë… ì‹ ì² í•´ì§€'; -$lang['btn_subscribens'] = '네임스페ì´ìŠ¤ êµ¬ë… ì‹ ì²'; -$lang['btn_unsubscribens'] = '네임스페ì´ìŠ¤ êµ¬ë… ì‹ ì² í•´ì§€'; $lang['btn_profile'] = 'ê°œì¸ì •ë³´ 변경'; $lang['btn_reset'] = '초기화'; $lang['btn_resendpwd'] = '새 패스워드 보내기'; $lang['btn_draft'] = '문서초안 편집'; $lang['btn_recover'] = '문서초안 복구'; $lang['btn_draftdel'] = '문서초안 ì‚ì œ'; +$lang['btn_revert'] = 'ë³µì›'; $lang['loggedinas'] = 'ë‹¤ìŒ ì‚¬ìš©ìžë¡œ 로그ì¸'; $lang['user'] = '사용ìž'; $lang['pass'] = '패스워드'; @@ -88,13 +87,45 @@ $lang['resendpwdconfirm'] = 'í™•ì¸ ë§í¬ë¥¼ ì´ë©”ì¼ë¡œ 보냈습니다. $lang['resendpwdsuccess'] = '새로운 패스워드는 ì´ë©”ì¼ë¡œ 보내드립니다.'; $lang['license'] = 'ì´ ìœ„í‚¤ì˜ ë‚´ìš©ì€ ë‹¤ìŒì˜ ë¼ì´ì„¼ìŠ¤ì— 따릅니다 :'; $lang['licenseok'] = 'ì£¼ì˜ : ì´ íŽ˜ì´ì§€ë¥¼ ìˆ˜ì •í•œë‹¤ëŠ” 다ìŒì˜ ë¼ì´ì„¼ìŠ¤ì— ë™ì˜í•¨ì„ ì˜ë¯¸í•©ë‹ˆë‹¤ :'; +$lang['searchmedia'] = '파ì¼ì´ë¦„ 찾기:'; +$lang['searchmedia_in'] = ' %ì—ì„œ 검색'; $lang['txt_upload'] = '업로드 파ì¼ì„ ì„ íƒí•©ë‹ˆë‹¤.'; $lang['txt_filename'] = '업로드 íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•©ë‹ˆë‹¤.(ì„ íƒ ì‚¬í•)'; $lang['txt_overwrt'] = '새로운 파ì¼ë¡œ ì´ì „ 파ì¼ì„ êµì²´í•©ë‹ˆë‹¤.'; $lang['lockedby'] = '현재 ìž ê¸ˆ 사용ìž'; $lang['lockexpire'] = 'ìž ê¸ˆ í•´ì œ 시간'; $lang['willexpire'] = 'ìž ì‹œ 후 편집 ìž ê¸ˆì´ í•´ì œë©ë‹ˆë‹¤.\n편집 충ëŒì„ í”¼í•˜ë ¤ë©´ 미리보기를 눌러 ìž ê¸ˆ ì‹œê°„ì„ ë‹¤ì‹œ ì„¤ì •í•˜ê¸° ë°”ëžë‹ˆë‹¤.'; -$lang['js']['notsavedyet'] = "ì €ìž¥í•˜ì§€ ì•Šì€ ë³€ê²½ì€ ì§€ì›Œì§‘ë‹ˆë‹¤.\n계ì†í•˜ì‹œê² 습니까?"; +$lang['js']['notsavedyet'] = 'ì €ìž¥í•˜ì§€ ì•Šì€ ë³€ê²½ì€ ì§€ì›Œì§‘ë‹ˆë‹¤. +계ì†í•˜ì‹œê² 습니까?'; +$lang['js']['searchmedia'] = 'íŒŒì¼ ì°¾ê¸°'; +$lang['js']['keepopen'] = 'ì„ íƒí• ë•Œ 윈ë„우를 열어놓으시기 ë°”ëžë‹ˆë‹¤.'; +$lang['js']['hidedetails'] = 'ìžì„¸í•œ ì •ë³´ ê°ì¶”기'; +$lang['js']['mediatitle'] = 'ë§í¬ ì„¤ì •'; +$lang['js']['mediadisplay'] = 'ë§í¬ 형태'; +$lang['js']['mediaalign'] = '배치'; +$lang['js']['mediasize'] = '그림 í¬ê¸°'; +$lang['js']['mediatarget'] = 'ë§í¬ 목표'; +$lang['js']['mediaclose'] = '닫기'; +$lang['js']['mediainsert'] = '삽입'; +$lang['js']['mediadisplayimg'] = '그림보기'; +$lang['js']['mediasmall'] = '작게'; +$lang['js']['mediamedium'] = '중간'; +$lang['js']['medialarge'] = 'í¬ê²Œ'; +$lang['js']['mediaoriginal'] = 'ì›ë³¸'; +$lang['js']['medialnk'] = 'ì„¸ë¶€ì •ë³´íŽ˜ì´ì§€ë¡œ ë§í¬'; +$lang['js']['mediadirect'] = 'ì›ë³¸ìœ¼ë¡œ ì§ì ‘ ë§í¬'; +$lang['js']['medianolnk'] = 'ë§í¬ 없슴'; +$lang['js']['medianolink'] = 'ê·¸ë¦¼ì„ ë§í¬í•˜ì§€ ì•ŠìŒ'; +$lang['js']['medialeft'] = '왼쪽 배치'; +$lang['js']['mediaright'] = '오른쪽 배치'; +$lang['js']['mediacenter'] = '중앙 배치'; +$lang['js']['medianoalign'] = '배치 없슴'; +$lang['js']['nosmblinks'] = '윈ë„ìš° ê³µìœ íŒŒì¼ê³¼ì˜ ì—°ê²°ì€ MS ì¸í„°ë„· ìµìŠ¤í”Œë¡œëŸ¬ì—서만 ë™ìž‘합니다. +그러나 ë§í¬ë¥¼ 복사하거나 붙여넣기를 í• ìˆ˜ 있습니다.'; +$lang['js']['linkwiz'] = 'ë§í¬ 마법사'; +$lang['js']['linkto'] = '다ìŒìœ¼ë¡œ ì—°ê²°:'; +$lang['js']['del_confirm'] = 'ì •ë§ë¡œ ì„ íƒëœ í•ëª©(들)ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?'; +$lang['js']['mu_btn'] = '여러 파ì¼ë“¤ì„ í•œë²ˆì— ì—…ë¡œë“œí•©ë‹ˆë‹¤.'; $lang['rssfailed'] = 'feed ê°€ì ¸ì˜¤ê¸° 실패: '; $lang['nothingfound'] = '아무 ê²ƒë„ ì—†ìŠµë‹ˆë‹¤.'; $lang['mediaselect'] = '미디어 íŒŒì¼ ì„ íƒ'; @@ -112,11 +143,7 @@ $lang['deletefail'] = '"%s" 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다. - $lang['mediainuse'] = '"%s" 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다. - ì•„ì§ ì‚¬ìš© 중입니다.'; $lang['namespaces'] = '네임스페ì´ìŠ¤'; $lang['mediafiles'] = '사용 가능한 íŒŒì¼ ëª©ë¡'; -$lang['js']['keepopen'] = 'ì„ íƒí• ë•Œ 윈ë„우를 열어놓으시기 ë°”ëžë‹ˆë‹¤.'; -$lang['js']['hidedetails'] = 'ìžì„¸í•œ ì •ë³´ ê°ì¶”기'; -$lang['js']['nosmblinks'] = '윈ë„ìš° ê³µìœ íŒŒì¼ê³¼ì˜ ì—°ê²°ì€ MS ì¸í„°ë„· ìµìŠ¤í”Œë¡œëŸ¬ì—서만 ë™ìž‘합니다. -그러나 ë§í¬ë¥¼ 복사하거나 붙여넣기를 í• ìˆ˜ 있습니다.'; -$lang['js']['mu_btn'] = '여러 파ì¼ë“¤ì„ í•œë²ˆì— ì—…ë¡œë“œí•©ë‹ˆë‹¤.'; +$lang['accessdenied'] = 'ì´ íŽ˜ì´ì§€ë¥¼ ë³¼ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['mediausage'] = 'ì´ íŒŒì¼ì„ ì°¸ì¡°í•˜ë ¤ë©´ ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ê¸° ë°”ëžë‹ˆë‹¤:'; $lang['mediaview'] = 'ì›ë³¸ íŒŒì¼ ë³´ê¸°'; $lang['mediaroot'] = '루트(root)'; @@ -143,8 +170,10 @@ $lang['restored'] = '옛 ë²„ì „ 복구'; $lang['external_edit'] = '외부 편집기'; $lang['summary'] = '편집 요약'; $lang['noflash'] = 'ì´ ì»¨í…ì¸ ë¥¼ 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.'; +$lang['download'] = 'ì¡°ê° ë‹¤ìš´ë¡œë“œ'; $lang['mail_newpage'] = '페ì´ì§€ 추가:'; $lang['mail_changed'] = '페ì´ì§€ 변경:'; +$lang['mail_subscribe_list'] = '네임스페ì´ìŠ¤ì—ì„œ ë³€ê²½ëœ íŽ˜ì´ì§€:'; $lang['mail_new_user'] = '새로운 사용ìž:'; $lang['mail_upload'] = 'íŒŒì¼ ì²¨ë¶€:'; $lang['qb_bold'] = 'êµµì€ ê¸€'; @@ -157,6 +186,11 @@ $lang['qb_h2'] = '2단계 헤드ë¼ì¸'; $lang['qb_h3'] = '3단계 헤드ë¼ì¸'; $lang['qb_h4'] = '4단계 헤드ë¼ì¸'; $lang['qb_h5'] = '5단계 헤드ë¼ì¸'; +$lang['qb_h'] = 'í‘œì œ'; +$lang['qb_hs'] = 'í‘œì œ ì„ íƒ'; +$lang['qb_hplus'] = 'ìƒìœ„ í‘œì œ'; +$lang['qb_hminus'] = '하위 í‘œì œ'; +$lang['qb_hequal'] = 'ë™ê¸‰ í‘œì œ'; $lang['qb_link'] = '내부 ë§í¬'; $lang['qb_extlink'] = '외부 ë§í¬'; $lang['qb_hr'] = '수í‰ì„ '; @@ -166,7 +200,7 @@ $lang['qb_media'] = 'ì´ë¯¸ì§€ì™€ 기타 íŒŒì¼ ì¶”ê°€'; $lang['qb_sig'] = '서명 추가'; $lang['qb_smileys'] = 'ì´ëª¨í‹°ì½˜'; $lang['qb_chars'] = '특수문ìž'; -$lang['js']['del_confirm'] = 'ì •ë§ë¡œ ì„ íƒëœ í•ëª©(들)ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?'; +$lang['upperns'] = 'ìƒìœ„ 네임스페ì´ìŠ¤ë¡œ ì´ë™'; $lang['admin_register'] = '새로운 ì‚¬ìš©ìž ì¶”ê°€'; $lang['metaedit'] = '메타 ë°ì´íƒ€ë¥¼ 편집합니다.'; $lang['metasaveerr'] = '메타 ë°ì´íƒ€ 쓰기가 실패했습니다.'; @@ -182,11 +216,16 @@ $lang['img_copyr'] = 'ì €ìž‘ê¶Œ'; $lang['img_format'] = 'í¬ë§·'; $lang['img_camera'] = 'ì¹´ë©”ë¼'; $lang['img_keywords'] = '키워드'; -$lang['subscribe_success'] = '%s를 추가했습니다. (%sì˜ êµ¬ë… ëª©ë¡)'; -$lang['subscribe_error'] = '%s를 ì¶”ê°€í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.(%sì˜ êµ¬ë… ëª©ë¡)'; -$lang['subscribe_noaddress'] = 'ë¡œê·¸ì¸ ì •ë³´ì— ì´ë©”ì¼ ì£¼ì†Œê°€ 없습니다, êµ¬ë… ëª©ë¡ì— ì¶”ê°€í• ìˆ˜ 없습니다.'; -$lang['unsubscribe_success'] = '%s를 ì œì™¸ì‹œì¼°ìŠµë‹ˆë‹¤. (%sì˜ êµ¬ë… ëª©ë¡)'; -$lang['unsubscribe_error'] = '%s를 ì œì™¸ì‹œí‚¤ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.(%sì˜ êµ¬ë… ëª©ë¡)'; +$lang['subscr_subscribe_noaddress'] = '등ë¡ëœ 주소가 없기 ë•Œë¬¸ì— êµ¬ë…목ë¡ì— 등ë¡ë˜ì§€ 않았습니다.'; +$lang['subscr_m_not_subscribed'] = 'í˜„ìž¬ì˜ íŽ˜ì´ì§€ë‚˜ 네임스페ì´ìŠ¤ì— 구ë…등ë¡ì´ ë˜ì–´ìžˆì§€ 않습니다.'; +$lang['subscr_m_new_header'] = 'êµ¬ë… ì¶”ê°€'; +$lang['subscr_m_current_header'] = '현재 구ë…ì¤‘ì¸ ê²ƒë“¤'; +$lang['subscr_m_unsubscribe'] = 'êµ¬ë… ì·¨ì†Œ'; +$lang['subscr_m_subscribe'] = '구ë…'; +$lang['subscr_m_receive'] = '받기'; +$lang['subscr_style_every'] = 'ëª¨ë“ ë³€í™”ë¥¼ ì´ë©”ì¼ë¡œ 받기'; +$lang['subscr_style_digest'] = 'ê° íŽ˜ì´ì§€ì˜ 변화를 요약 (매 %.2f ì¼ ë§ˆë‹¤)'; +$lang['subscr_style_list'] = '마지막 ì´ë©”ì¼ ì´í›„ ë³€í™”ëœ íŽ˜ì´ì§€ì˜ ëª©ë¡ (매 %.2f ì¼ ë§ˆë‹¤)'; $lang['authmodfailed'] = 'ìž˜ëª»ëœ ì‚¬ìš©ìž ì¸ì¦ ì„¤ì •ìž…ë‹ˆë‹¤. 관리ìžì—게 문ì˜í•˜ê¸° ë°”ëžë‹ˆë‹¤.'; $lang['authtempfail'] = 'ì‚¬ìš©ìž ì¸ì¦ì´ ì¼ì‹œì 으로 불가능합니다. ë§Œì¼ ê³„ì†í•´ì„œ ë¬¸ì œê°€ ë°œìƒí•˜ë©´ 관리ìžì—게 문ì˜í•˜ê¸° ë°”ëžë‹ˆë‹¤.'; $lang['i_chooselang'] = '사용하는 언어를 ì„ íƒí•©ë‹ˆë‹¤.'; @@ -213,6 +252,7 @@ $lang['i_pol0'] = '개방형 위키 (누구나 ì½ê¸°/쓰기/ì—… $lang['i_pol1'] = '공개형 위키 (누구나 ì½ì„ 수 있지만, 등ë¡ëœ 사용ìžë§Œ 쓰기/업로드가 가능합니다.)'; $lang['i_pol2'] = 'í쇄형 위키 (등ë¡ëœ 사용ìžë§Œ ì½ê¸°/쓰기/업로드가 가능합니다.)'; $lang['i_retry'] = '다시 ì‹œë„'; +$lang['i_license'] = 'ë‚´ìš©ì˜ ë°°í¬ë¥¼ 위한 ë¼ì´ì„¼ìŠ¤ë¥¼ ì„ íƒí•˜ì„¸ìš”.'; $lang['mu_intro'] = '여러 파ì¼ì„ í•œë²ˆì— ì—…ë¡œë“œí• ìˆ˜ 있습니다. íŒŒì¼ ëª©ë¡ì— ì¶”ê°€í•˜ë ¤ë©´ "찾기" ë²„íŠ¼ì„ í´ë¦í•©ë‹ˆë‹¤. íŒŒì¼ ëª©ë¡ ì¶”ê°€ ìž‘ì—…ì´ ë나면 "업로드" ë²„íŠ¼ì„ í´ë¦í•˜ê¸° ë°”ëžë‹ˆë‹¤. '; $lang['mu_gridname'] = '파ì¼ëª…'; $lang['mu_gridsize'] = 'í¬ê¸°'; @@ -226,4 +266,14 @@ $lang['mu_fail'] = '업로드가 실패했습니다.'; $lang['mu_authfail'] = '세션 ê¸°ê°„ì´ ì¢…ë£Œë˜ì—ˆìŠµë‹ˆë‹¤.'; $lang['mu_progress'] = '@PCT@% 업로드ë˜ì—ˆìŠµë‹ˆë‹¤.'; $lang['mu_filetypes'] = 'í—ˆìš©ëœ íŒŒì¼íƒ€ìž…'; +$lang['mu_info'] = '업로드 ë˜ì—ˆìŠµë‹ˆë‹¤.'; +$lang['mu_lasterr'] = '마지막 ì—러:'; $lang['recent_global'] = '<b>%s</b> 네임스페ì´ìŠ¤ë¥¼ 구ë…중입니다. <a href="%s">ì „ì²´ìœ„í‚¤ ë³€ê²½ì‚¬í• </a>ë„ ë³´ì‹¤ìˆ˜ 있습니다.'; +$lang['years'] = '%d ë…„ ì „'; +$lang['months'] = '%d 개월 ì „'; +$lang['weeks'] = '%d 주 ì „'; +$lang['days'] = '%d ì¼ ì „'; +$lang['hours'] = '%d 시간 ì „'; +$lang['minutes'] = '%d 분 ì „'; +$lang['seconds'] = '%d ì´ˆ ì „'; +$lang['wordblock'] = '스팸 문구를 í¬í•¨í•˜ê³ 있어서 ì €ìž¥ë˜ì§€ 않았습니다.'; diff --git a/inc/lang/ko/register.txt b/inc/lang/ko/register.txt index 999073a1d2de1cb97bfcefd914849e300dbe796d..24105efebc36cfe6967d7b9ba709060acb32063c 100644 --- a/inc/lang/ko/register.txt +++ b/inc/lang/ko/register.txt @@ -1,4 +1,4 @@ ====== 새 ì‚¬ìš©ìž ë“±ë¡ ====== -ì´ ìœ„í‚¤ì— ìƒˆ ê³„ì •ì„ ë§Œë“¤ë ¤ë©´ ì•„ëž˜ì˜ ëª¨ë“ ë‚´ìš©ì„ ìž…ë ¥í•˜ì‹ì‹œì˜¤. **ì œëŒ€ë¡œ ëœ ì´ë©”ì¼ ì£¼ì†Œ**를 사용하ì‹ì‹œì˜¤. 그러나, 아래 ë‚´ìš©ì„ ìž…ë ¥í–ˆë‹¤ê³ í•´ì„œ ê³„ì •ì„ ë§Œë“¤ 수 있으리ë¼ê³ 는 믿지 마ì‹ì‹œì˜¤. ì´ê³³ì€ ë‚´ê°€ ê°œì¸ì 으로 사용하는 ê³³ì´ë©°, ê³„ì •ì„ ë§Œë“¤ì–´ ì£¼ê³ ì•ˆì£¼ê³ ëŠ” ë‚´ 마ìŒìž…니다. ì°¨ë¼ë¦¬, 내게 ì´ë©”ì¼ì„ ë³´ë‚´ì„œ ì‹ ì²í•˜ëŠ” íŽ¸ì´ ë” ë‚˜ì„ ê²ƒìž…ë‹ˆë‹¤. 패스워드는 ì´ ì´ë©”ì¼ë¡œ 보내집니다. 사용ìžëª…ì€ ì˜¬ë°”ë¥¸ [[doku>pagename|pagename]] ì´ì–´ì•¼ 합니다. +ì´ ìœ„í‚¤ì— ìƒˆ ê³„ì •ì„ ë§Œë“¤ë ¤ë©´ ì•„ëž˜ì˜ ëª¨ë“ ë‚´ìš©ì„ ìž…ë ¥í•˜ì„¸ìš”. **ì œëŒ€ë¡œ ëœ ì´ë©”ì¼ ì£¼ì†Œ**를 사용하세요. 암호를 ìž…ë ¥í•˜ëŠ” ê³³ì´ ì—†ë‹¤ë©´ 암호는 ì´ ì´ë©”ì¼ë¡œ 보내집니다. 사용ìžëª…ì€ ì˜¬ë°”ë¥¸ [[doku>pagename|pagename]] ì´ì–´ì•¼ 합니다. diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e9c87848de7c38770bca65358c8d046ad64ccc0 --- /dev/null +++ b/inc/lang/ko/subscr_digest.txt @@ -0,0 +1,18 @@ +안녕하세요! + +@TITLE@ ë¼ëŠ” ì œëª©ì˜ íŽ˜ì´ì§€ @PAGE@ ê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤. + +변경사í•ì€ 다ìŒê³¼ 같습니다: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +ì˜›ë‚ ê²ƒ: @OLDPAGE@ +새 것: @NEWPAGE@ + +ì´ íŽ˜ì´ì§€ ë³€ê²½ì•Œë¦¼ì˜ ì„¤ì •ì„ ë°”êµ¬ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ +@SUBSCRIBE@ 를 방문하여 페ì´ì§€ë‚˜ ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. + +-- +@DOKUWIKIURL@ì˜ DokuWikiê°€ ìžë™ìœ¼ë¡œ 만들어낸 ë©”ì¼ìž…니다. \ No newline at end of file diff --git a/inc/lang/ko/subscr_form.txt b/inc/lang/ko/subscr_form.txt new file mode 100644 index 0000000000000000000000000000000000000000..31470f3723f1192809b2cd809f8a68811b465606 --- /dev/null +++ b/inc/lang/ko/subscr_form.txt @@ -0,0 +1,3 @@ +====== êµ¬ë… ê´€ë¦¬ ====== + +ì´ íŽ˜ì´ì§€ëŠ” í˜„ìž¬ì˜ íŽ˜ì´ì§€ì™€ 네임스페ì´ìŠ¤ì˜ 구ë…ì„ ê´€ë¦¬í• ìˆ˜ìžˆë„ë¡ í•´ì¤ë‹ˆë‹¤. \ No newline at end of file diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt new file mode 100644 index 0000000000000000000000000000000000000000..2661a6a15ca8730cd3bd527f04b58562db9c7810 --- /dev/null +++ b/inc/lang/ko/subscr_list.txt @@ -0,0 +1,15 @@ +안녕하세요! + +@TITLE@ ë¼ëŠ” ì œëª©ì˜ íŽ˜ì´ì§€ @PAGE@ ê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤. + +변경사í•ì€ 다ìŒê³¼ 같습니다: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +ì´ íŽ˜ì´ì§€ ë³€ê²½ì•Œë¦¼ì˜ ì„¤ì •ì„ ë°”êµ¬ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ +@SUBSCRIBE@ 를 방문하여 페ì´ì§€ë‚˜ ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. + +-- +@DOKUWIKIURL@ì˜ DokuWikiê°€ ìžë™ìœ¼ë¡œ 만들어낸 ë©”ì¼ìž…니다. \ No newline at end of file diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt new file mode 100644 index 0000000000000000000000000000000000000000..1aa4d7efa6d80e704feae445953bb41faf1c4d34 --- /dev/null +++ b/inc/lang/ko/subscr_single.txt @@ -0,0 +1,21 @@ +안녕하세요! + +@TITLE@ ë¼ëŠ” ì œëª©ì˜ íŽ˜ì´ì§€ @PAGE@ ê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤. + +변경사í•ì€ 다ìŒê³¼ 같습니다: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +ë‚ ì§œ : @DATE@ +ì‚¬ìš©ìž : @USER@ +편집 요약 : @SUMMARY@ +구 ë²„ì „ : @OLDPAGE@ +새 ë²„ì „ : @NEWPAGE@ + +ì´ íŽ˜ì´ì§€ ë³€ê²½ì•Œë¦¼ì˜ ì„¤ì •ì„ ë°”êµ¬ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ t +@NEWPAGE@ 를 방문하여 페ì´ì§€ë‚˜ ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. + +-- +@DOKUWIKIURL@ì˜ DokuWikiê°€ ìžë™ìœ¼ë¡œ 만들어낸 ë©”ì¼ìž…니다. \ No newline at end of file diff --git a/inc/parserutils.php b/inc/parserutils.php index 27a5190bd661a2c66ecadb5c9169dfcee8e7fa72..a50e3f4f348ddf5664a4c98b33188e9cef3f42ed 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -223,7 +223,7 @@ function p_get_instructions($text){ * @author Esther Brunner <esther@kaffeehaus.ch> */ function p_get_metadata($id, $key='', $render=false){ - global $ID, $INFO, $cache_metadata; + global $ID; // cache the current page // Benchmarking shows the current page's metadata is generally the only page metadata @@ -234,11 +234,7 @@ function p_get_metadata($id, $key='', $render=false){ // metadata has never been rendered before - do it! (but not for non-existent pages) if ($render && !isset($meta['current']['description']['abstract']) && page_exists($id)){ $meta = p_render_metadata($id, $meta); - io_saveFile(metaFN($id, '.meta'), serialize($meta)); - - // sync cached copies, including $INFO metadata - if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta; - if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } + p_save_metadata($id, $meta); } $val = $meta['current']; @@ -256,6 +252,15 @@ function p_get_metadata($id, $key='', $render=false){ /** * sets metadata elements of a page * + * @see http://www.dokuwiki.org/devel:metadata#functions_to_get_and_set_metadata + * + * @param String $id is the ID of a wiki page + * @param Array $data is an array with key ⇒ value pairs to be set in the metadata + * @param Boolean $render whether or not the page metadata should be generated with the renderer + * @param Boolean $persistent indicates whether or not the particular metadata value will persist through + * the next metadata rendering. + * @return boolean true on success + * * @author Esther Brunner <esther@kaffeehaus.ch> */ function p_set_metadata($id, $data, $render=false, $persistent=true){ @@ -305,13 +310,7 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){ // save only if metadata changed if ($meta == $orig) return true; - // sync cached copies, including $INFO metadata - global $cache_metadata, $INFO; - - if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta; - if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } - - return io_saveFile(metaFN($id, '.meta'), serialize($meta)); + return p_save_metadata($id, $meta); } /** @@ -321,25 +320,22 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){ * @author Michael Klier <chi@chimeric.de> */ function p_purge_metadata($id) { - $metafn = metaFN('id', '.meta'); - $meta = p_read_metadata($id); + $meta = p_read_metadata($id); foreach($meta['current'] as $key => $value) { if(is_array($meta[$key])) { $meta['current'][$key] = array(); } else { $meta['current'][$key] = ''; } + } - return io_saveFile(metaFN($id, '.meta'), serialize($meta)); + return p_save_metadata($id, $meta); } /** * read the metadata from source/cache for $id * (internal use only - called by p_get_metadata & p_set_metadata) * - * this function also converts the metadata from the original format to - * the current format ('current' & 'persistent' arrays) - * * @author Christopher Smith <chris@jalakai.co.uk> * * @param string $id absolute wiki page id @@ -356,26 +352,6 @@ function p_read_metadata($id,$cache=false) { $file = metaFN($id, '.meta'); $meta = @file_exists($file) ? unserialize(io_readFile($file, false)) : array('current'=>array(),'persistent'=>array()); - // convert $meta from old format to new (current+persistent) format - if (!isset($meta['current'])) { - $meta = array('current'=>$meta,'persistent'=>$meta); - - // remove non-persistent keys - unset($meta['persistent']['title']); - unset($meta['persistent']['description']['abstract']); - unset($meta['persistent']['description']['tableofcontents']); - unset($meta['persistent']['relation']['haspart']); - unset($meta['persistent']['relation']['references']); - unset($meta['persistent']['date']['valid']); - - if (empty($meta['persistent']['description'])) unset($meta['persistent']['description']); - if (empty($meta['persistent']['relation'])) unset($meta['persistent']['relation']); - if (empty($meta['persistent']['date'])) unset($meta['persistent']['date']); - - // save converted metadata - io_saveFile($file, serialize($meta)); - } - if ($cache) { $cache_metadata[(string)$id] = $meta; } @@ -383,6 +359,24 @@ function p_read_metadata($id,$cache=false) { return $meta; } +/** + * This is the backend function to save a metadata array to a file + * + * @param string $id absolute wiki page id + * @param array $meta metadata + * + * @return bool success / fail + */ +function p_save_metadata($id, $meta) { + // sync cached copies, including $INFO metadata + global $cache_metadata, $INFO; + + if (isset($cache_metadata[$id])) $cache_metadata[$id] = $meta; + if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } + + return io_saveFile(metaFN($id, '.meta'), serialize($meta)); +} + /** * renders the metadata of a page * diff --git a/inc/search.php b/inc/search.php index 03abec0c0bd200d09667788dbc2f27c53a660e3b..a6787c5d220bdce518866f0488cd4a8906fb0d65 100644 --- a/inc/search.php +++ b/inc/search.php @@ -511,8 +511,7 @@ function pathID($path,$keeptxt=false){ $id = utf8_decodeFN($path); $id = str_replace('/',':',$id); if(!$keeptxt) $id = preg_replace('#\.txt$#','',$id); - $id = preg_replace('#^:+#','',$id); - $id = preg_replace('#:+$#','',$id); + $id = trim($id, ':'); return $id; } diff --git a/inc/template.php b/inc/template.php index 00bfde723c065d08c9d5d0f7f22d9901cf686f50..e2ea6e386a9a79ca89bfa796ae14519cfdfd9acd 100644 --- a/inc/template.php +++ b/inc/template.php @@ -609,7 +609,7 @@ function tpl_get_action($type) { $type = 'subscribe'; $params['do'] = 'subscribe'; case 'subscribe': - if(!$conf['useacl'] || !$auth || $ACT !== 'show' || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){ + if(!$conf['useacl'] || !$auth || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){ return false; } break; @@ -617,7 +617,7 @@ function tpl_get_action($type) { break; case 'profile': if(!$conf['useacl'] || !$auth || !isset($_SERVER['REMOTE_USER']) || - !$auth->canDo('Profile') || ($ACT=='profile')){ + !$auth->canDo('Profile')){ return false; } break; diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index f35f9ed7294921b3a23ae6709f9e38b961b6e57d..3fa81715b9897e350987b859002a8738ac7ef32f 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -190,7 +190,7 @@ function metaUpdate(){ // rendering needed? if (@file_exists($file)) return false; - if (!@file_exists(wikiFN($ID))) return false; + if (!page_exists($ID)) return false; global $conf; @@ -213,7 +213,7 @@ function metaUpdate(){ } $meta = p_render_metadata($ID, $meta); - io_saveFile($file, serialize($meta)); + p_save_metadata($ID, $meta); echo "metaUpdate(): finished".NL; return true; diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 84932f7ac1e28a8bed5f27ebc27f085f1b483575..3e7bd8121ffc1a4322087679141074815f0cd3fa 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -765,7 +765,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { //build code $ret .= '<label for="pbox'.$label.'" title="'.$this->getLang('acl_perm'.$perm).'"'.$class.'>'; - $ret .= '<input '.html_attbuild($atts).' /> '; + $ret .= '<input '.buildAttributes($atts).' /> '; $ret .= $this->getLang('acl_perm'.$perm); $ret .= '</label>'.NL; } diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 43a5ceeeb0269b6474f2c9df1090fcc9f6cb1b97..6f4e991cbb505a7417c10ce15cc708c168e14064 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -10,6 +10,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['admin_acl'] = 'ì ‘ê·¼ ì œì–´ ëª©ë¡ ê´€ë¦¬'; $lang['acl_group'] = '그룹'; diff --git a/lib/plugins/config/lang/cs/intro.txt b/lib/plugins/config/lang/cs/intro.txt index bad92ac8e3887cd9faf8d8a83f04003b5d552786..63381b84e66fb258b56f4b2beb3e356d2a0882fd 100644 --- a/lib/plugins/config/lang/cs/intro.txt +++ b/lib/plugins/config/lang/cs/intro.txt @@ -2,7 +2,7 @@ Tuto stránku můžete použÃvat ke správÄ› nastavenà vaÅ¡Ã instalace DokuWiki. NápovÄ›du pro konkrétnà položky nastavenà naleznete na [[doku>config]]. Pro dalÅ¡Ã detaily o tomto pluginu viz [[doku>plugin:config]]. -Položky se svÄ›tle Äerveným pozadÃm jsou chránÄ›né a nelze je upravovat tÃmto pluginem. Položky s modrým pozadÃm jsou výchozà hodnoty a položky s bÃlým pozadÃm byly nastaveny lokálnÄ› v této konktétnà instalaci. Modré i bÃlé položky je možné upravovat. +Položky se svÄ›tle Äerveným pozadÃm jsou chránÄ›né a nelze je upravovat tÃmto pluginem. Položky s modrým pozadÃm jsou výchozà hodnoty a položky s bÃlým pozadÃm byly nastaveny lokálnÄ› v této konkrétnà instalaci. Modré i bÃlé položky je možné upravovat. Než opustÃte tuto stránku, nezapomeňte stisknout tlaÄÃtko **Uložit**, jinak budou zmÄ›ny ztraceny. diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index 3f8c05f262c5fb1db7c17ce250a5c8f80475ed60..06839c1d088e356cedfdd854e44e23f35a4be7c0 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -11,7 +11,7 @@ */ $lang['menu'] = 'Správa nastavenÃ'; $lang['error'] = 'Nastavenà nebyla zmÄ›nÄ›na kvůli alespoň jedné neplatné položce, -zkotrolujte prosÃm své úpravy a odeÅ¡lete je znovu.<br /> +zkontrolujte prosÃm své úpravy a odeÅ¡lete je znovu.<br /> Neplatné hodnoty se zobrazà v Äerveném rámeÄku.'; $lang['updated'] = 'Nastavenà byla úspěšnÄ› upravena.'; $lang['nochoice'] = '(nejsou k dispozici žádné dalÅ¡Ã volby)'; @@ -69,10 +69,10 @@ $lang['useheading'] = 'PoužÃvat prvnà nadpis jako název stránky' $lang['refcheck'] = 'Kontrolovat odkazy na média (pÅ™ed vymazánÃm)'; $lang['refshow'] = 'PoÄet zobrazených odkazů na média'; $lang['allowdebug'] = 'Povolit debugovánÃ. <b>VypnÄ›te, pokud to nepotÅ™ebujete!</b>'; -$lang['usewordblock'] = 'Blokovat spam za použÃtà seznamu známých spamových slov'; +$lang['usewordblock'] = 'Blokovat spam za použità seznamu známých spamových slov'; $lang['indexdelay'] = 'ÄŒasová prodleva pÅ™ed indexacà (v sekundách)'; $lang['relnofollow'] = 'PoužÃvat rel="nofollow" na externà odkazy'; -$lang['mailguard'] = 'Metoda "zamaskovánÃ" emailových addres'; +$lang['mailguard'] = 'Metoda "zamaskovánÃ" emailových adres'; $lang['iexssprotect'] = 'Zkontrolovat nahrané soubory vůÄi možnému Å¡kodlivému JavaScriptu Äi HTML'; $lang['showuseras'] = 'Co se má pÅ™esnÄ› zobrazit, když se ukazuje uživatel, který naposledy editoval stránku'; $lang['useacl'] = 'PoužÃvat pÅ™Ãstupová práva (ACL)'; @@ -95,7 +95,7 @@ vnoÅ™ené jmenné prostory, k nimž právo má, budou pÅ™esto skryty. To může mÃt za následek, že index bude pÅ™i nÄ›kterých nastavenÃch ACL nepoužitelný.'; $lang['auth_security_timeout'] = 'ÄŒasový limit pro autentikaci (v sekundách)'; -$lang['securecookie'] = 'Má prohlÞeÄ posÃlat cookies nastavené pÅ™es HTTPS opÄ›t jen pÅ™es HTTPS? Vypňete tuto volbu, pokud chcete, aby bylo pomocà SSL zabezpeÄeno pouze pÅ™ihlaÅ¡ovánà do wiki, ale obsah budete prohlÞet nezabezpeÄenÄ›.'; +$lang['securecookie'] = 'Má prohlÞeÄ posÃlat cookies nastavené pÅ™es HTTPS opÄ›t jen pÅ™es HTTPS? VypnÄ›te tuto volbu, pokud chcete, aby bylo pomocà SSL zabezpeÄeno pouze pÅ™ihlaÅ¡ovánà do wiki, ale obsah budete prohlÞet nezabezpeÄenÄ›.'; $lang['xmlrpc'] = 'Povolit/Zakázat rozhranà XML-RPC.'; $lang['xmlrpcuser'] = 'Omezit pÅ™Ãstup pomocà XML-RPC pouze na zde zadané skupiny Äi uživatele (oddÄ›lené Äárkami). Necháte-li pole prázdné, dáte pÅ™Ãstup komukoliv.'; $lang['updatecheck'] = 'Kontrolovat aktualizace a bezpeÄnostnà varovánÃ? DokuWiki potÅ™ebuje pro tuto funkci pÅ™Ãstup k splitbrain.org'; @@ -112,7 +112,7 @@ $lang['locktime'] = 'Maximálnà životnost zámkových souborů (v $lang['fetchsize'] = 'Maximálnà velikost souboru (v bajtech), co jeÅ¡tÄ› fetch.php bude stahovat z externÃch zdrojů'; $lang['notify'] = 'PosÃlat oznámenà o zmÄ›nách na následujÃcà emailovou adresu'; $lang['registernotify'] = 'PosÃlat informace o novÄ› registrovaných uživatelÃch na tuto mailovou adresu'; -$lang['mailfrom'] = 'Emailová addresa, která se bude použÃvat pro automatické maily'; +$lang['mailfrom'] = 'Emailová adresa, která se bude použÃvat pro automatické maily'; $lang['gzip_output'] = 'PoužÃvat pro xhtml Content-Encoding gzip'; $lang['gdlib'] = 'Verze GD knihovny'; $lang['im_convert'] = 'Cesta k nástroji convert z balÃku ImageMagick'; diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index efac643abbe17087575e7cef61fbcfbe7809f2c6..13f5efefec91cb3fb2fe3ab3873f856319d7bd49 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -7,6 +7,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['menu'] = '환경 ì„¤ì •'; $lang['error'] = 'ìž˜ëª»ëœ ê°’ë•Œë¬¸ì— ì„¤ì •ë“¤ì„ ë³€ê²½í• ìˆ˜ 없습니다. ìˆ˜ì •í•œ ê°’ë“¤ì„ ê²€ì‚¬í•˜ê³ í™•ì¸ì„ 누르기 ë°”ëžë‹ˆë‹¤. @@ -89,12 +90,15 @@ $lang['sneaky_index'] = '기본ì 으로, DokuWiki는 ìƒ‰ì¸ ëª©ë¡ì— íŠ¹ì • ACL ì„¤ì •ì€ ìƒ‰ì¸ ì‚¬ìš©ì´ ë¶ˆê°€ëŠ¥í•˜ê²Œ í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; $lang['auth_security_timeout'] = 'ì¸ì¦ 보안 초과 시간(ì´ˆ)'; $lang['securecookie'] = 'HTTPSë¡œ 보내진 ì¿ í‚¤ëŠ” HTTPSì—만 ì ìš© í• ê¹Œìš”? ìœ„í‚¤ì˜ ë¡œê·¸ì¸ íŽ˜ì´ì§€ë§Œ SSLë¡œ 암호화 í•˜ê³ ìœ„í‚¤ 페ì´ì§€ëŠ” ê·¸ë ‡ì§€ ì•Šì€ê²½ìš° 꺼야 합니다.'; +$lang['xmlrpc'] = 'XML-RPC ì¸í„°íŽ˜ì´ìŠ¤ 지ì›/무시'; +$lang['xmlrpcuser'] = '주어진 그룹ì´ë‚˜ ìœ ì €ë“¤ì—게만 XML-RPCì ‘ê·¼ì„ í—ˆë½í•˜ë ¤ë©´ 컴마로 구분하여 ì 으세요. 비어ë‘ë©´ 모ë‘ì—게 허용ë©ë‹ˆë‹¤.'; $lang['updatecheck'] = 'ì—…ë°ì´íŠ¸ì™€ 보안 ë¬¸ì œë¥¼ 검사(DokuWiki를 splitbrain.orgì— ì—°ê²°í•´ì•¼ 합니다.)'; $lang['userewrite'] = 'URL rewriting기능 사용'; $lang['useslash'] = 'URLì—ì„œ 네임스페ì´ìŠ¤ 구분ìžë¡œ 슬래쉬 ë¬¸ìž ì‚¬ìš©'; $lang['usedraft'] = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 문서 초안 ì €ìž¥'; $lang['sepchar'] = '페ì´ì§€ ì´ë¦„ 단어 구분ìž'; $lang['canonical'] = 'ì™„ì „í•œ canonical URL 사용'; +$lang['fnencode'] = '아스키가 ì•„ë‹Œ 파ì¼ì´ë¥´ë¯ˆ ì¸ì½”딩 하는 방법.'; $lang['autoplural'] = 'ë§í¬ ì—°ê²°ì‹œ pluralí¼ ê²€ì‚¬'; $lang['compression'] = 'atticíŒŒì¼ ì••ì¶• 방법 ì„ íƒ'; $lang['cachetime'] = '최대 ìºì‰¬ ìƒì¡´ 시간(ì´ˆ)'; @@ -108,6 +112,7 @@ $lang['gdlib'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ ë²„ì „'; $lang['im_convert'] = 'ImageMagick 위치'; $lang['jpg_quality'] = 'JPG 압축 품질 (0-100)'; $lang['subscribers'] = '페ì´ì§€ ê°±ì‹ ì•ŒëžŒ 기능'; +$lang['subscribe_time'] = ' êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); ì´ ê²ƒì€ recent_daysì—ì„œ ì„¤ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.'; $lang['compress'] = '최ì í™”ëœ CSS, javascript ì¶œë ¥'; $lang['hidepages'] = '매ì¹ëœ 페ì´ì§€ 숨기기(ì •ê·œí‘œí˜„ì‹)'; $lang['send404'] = '존재하지 않는 페ì´ì§€ì— 대해 "HTTP 404/Page Not Found" ì‘답'; @@ -115,7 +120,6 @@ $lang['sitemap'] = '구글 사ì´íŠ¸ë§µ ìƒì„±(ë‚ ì§œ)'; $lang['broken_iua'] = 'ì„¤ì¹˜ëœ ì‹œìŠ¤í…œì—ì„œ ignore_user_abort ê¸°ëŠ¥ì— ë¬¸ì œê°€ 있으면 색ì¸ì´ ì •ìƒì 으로 ë™ìž‘하지 않습니다. ì´ ê¸°ëŠ¥ì´ IIS+PHP/CGIì—ì„œ ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì¡ŒìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a>를 ì°¸ê³ í•˜ê¸° ë°”ëžë‹ˆë‹¤.'; $lang['xsendfile'] = '웹 서버 static íŒŒì¼ ì „ì†¡ 지ì›ì„ 위해 X-Sendfile í—¤ë”를 사용한다면 ì´ ì˜µì…˜ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; -$lang['xmlrpc'] = 'XML-RPC ì¸í„°íŽ˜ì´ìŠ¤ 지ì›/무시'; $lang['renderer_xhtml'] = '주 (xhtml) 위키 ì¶œë ¥ 처리기'; $lang['renderer__core'] = '%s (DokuWiki 내부 기능)'; $lang['renderer__plugin'] = '%s (DokuWiki 플러그ì¸)'; @@ -136,6 +140,7 @@ $lang['proxy____port'] = '프ë¡ì‹œ 서버 í¬íŠ¸'; $lang['proxy____user'] = '프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„'; $lang['proxy____pass'] = '프ë¡ì‹œ 패스워드'; $lang['proxy____ssl'] = '프ë¡ì‹œ ì—°ê²°ì‹œ ssl사용'; +$lang['proxy____except'] = '프ë¡ì‹œì„¤ì •ì´ 무시ë URLì£¼ì†Œë“¤ì˜ RegEx형ì‹í‘œí˜„'; $lang['safemodehack'] = 'safemode hack기능 사용'; $lang['ftp____host'] = 'safemode hackì˜ FTP 서버'; $lang['ftp____port'] = 'safemode hackì˜ FTP port'; @@ -183,3 +188,4 @@ $lang['useheading_o_0'] = '아니요'; $lang['useheading_o_navigation'] = '네비게ì´ì…˜ì—만'; $lang['useheading_o_content'] = '위키 ë‚´ìš©ì—만'; $lang['useheading_o_1'] = 'í•ìƒ'; +$lang['readdircache'] = 'readdir ìºì‰¬ë¥¼ 위한 최대 시간 (ì´ˆ)'; diff --git a/lib/plugins/plugin/lang/cs/lang.php b/lib/plugins/plugin/lang/cs/lang.php index c15a5ca213a25a991cb1ffa8fadcaf78726e5c5d..54de0ff1898cdff807b9785d4de3546d6a2bfa43 100644 --- a/lib/plugins/plugin/lang/cs/lang.php +++ b/lib/plugins/plugin/lang/cs/lang.php @@ -26,7 +26,7 @@ $lang['source'] = 'Zdroj:'; $lang['unknown'] = 'neznámý'; $lang['updating'] = 'Aktualizuji ...'; $lang['updated'] = 'Modul %s úspěšnÄ› aktualizován'; -$lang['updates'] = 'NásledjÃcà pluginy byly úspěšnÄ› aktualizovány'; +$lang['updates'] = 'NásledujÃcà pluginy byly úspěšnÄ› aktualizovány'; $lang['update_none'] = 'Žádné aktualizace nenalezeny.'; $lang['deleting'] = 'ProbÃhá mazánà ...'; $lang['deleted'] = 'Plugin %s smazán.'; @@ -49,7 +49,7 @@ $lang['error_download'] = 'Nelze stáhnout soubor s pluginem: %s'; $lang['error_badurl'] = 'URL je zÅ™ejmÄ› chybná - nelze z nà urÄit název souboru'; $lang['error_dircreate'] = 'Nelze vytvoÅ™it doÄasný adresář ke staženà dat'; $lang['error_decompress'] = 'Správce pluginů nemůže rozbalit stažený soubor. Toto může být způsobeno chybou pÅ™i stahovánÃ. Můžete se pokusit stahovánà opakovat. Chyba může být také v kompresnÃm formátu souboru. V tom pÅ™ÃpadÄ› bude nutné stáhnout a nainstalovat plugin ruÄnÄ›.'; -$lang['error_copy'] = 'DoÅ¡lo k chybÄ› pÅ™i instalaci pluginu <em>%s</em>. Je možné, že na disku nenà volné mÃsto, nebo mohou být Å¡patnÄ› nastavena pÅ™Ãstupová práva. Pozor, mohlo dojÃt k ÄasteÄné a tudÞ chybné instalaci pluginu a tÃm může být ohrožena stabilita wiki.'; +$lang['error_copy'] = 'DoÅ¡lo k chybÄ› pÅ™i instalaci pluginu <em>%s</em>. Je možné, že na disku nenà volné mÃsto, nebo mohou být Å¡patnÄ› nastavena pÅ™Ãstupová práva. Pozor, mohlo dojÃt k ÄásteÄné a tudÞ chybné instalaci pluginu a tÃm může být ohrožena stabilita wiki.'; $lang['error_delete'] = 'DoÅ¡lo k chybÄ› pÅ™i pokusu o smazánà pluginu <em>%s</em>. NejspÃÅ¡e je chyba v nastavenà pÅ™Ãstupových práv k nÄ›kterým souborům Äi adresářům.'; $lang['enabled'] = 'Plugin %s aktivován.'; $lang['notenabled'] = 'Plugin %s nelze aktivovat, zkontrolujte práva k souborům.'; diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index af14a0cd2c291c04530cf867483c1be6326e8884..72c04ddab25c36f39fc287ef44ac6f7b513882f6 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -7,6 +7,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['menu'] = 'í”ŒëŸ¬ê·¸ì¸ ê´€ë¦¬ìž'; $lang['download'] = '새로운 í”ŒëŸ¬ê·¸ì¸ ë‹¤ìš´ë¡œë“œ ë° ì„¤ì¹˜'; diff --git a/lib/plugins/popularity/lang/cs/intro.txt b/lib/plugins/popularity/lang/cs/intro.txt index 70cf1a42c82348e048c4979f3e89f74ced9a277f..4b386568ab2d36061215bcd3c61d88258a7ad90b 100644 --- a/lib/plugins/popularity/lang/cs/intro.txt +++ b/lib/plugins/popularity/lang/cs/intro.txt @@ -1,6 +1,6 @@ ===== Průzkum použÃvánà ===== -Tento nástroj jednorázovÄ› shromážà anonymnà data o vaÅ¡Ã wiki a umožnà vám odeslat je vývojářům DokuWiki. To jim pomůže lépe porozumÄ›t, jak uživatelé DokuWiki použÃvajÃ, a jejich rozhodnutà pÅ™i dalÅ¡Ãm vývoji budou založena na statistikách z reálného použÃvánà DokuWiki. +Tento nástroj jednorázovÄ› shromáždà anonymnà data o vaÅ¡Ã wiki a umožnà vám odeslat je vývojářům DokuWiki. To jim pomůže lépe porozumÄ›t, jak uživatelé DokuWiki použÃvajÃ, a jejich rozhodnutà pÅ™i dalÅ¡Ãm vývoji budou založena na statistikách z reálného použÃvánà DokuWiki. Chcete-li pomoci vývojářům, Äas od Äasu, jak vaÅ¡e wiki poroste, použijte tento nástroj. VaÅ¡e data budou pokaždé oznaÄena stejným anonymnÃm identifikátorem. diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php index 3a28b1b0e6d36f22f3d965d8531b26b40b7cb4d2..91d798a5fcc833389171fad11df7527fd8298b36 100644 --- a/lib/plugins/popularity/lang/ko/lang.php +++ b/lib/plugins/popularity/lang/ko/lang.php @@ -6,6 +6,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['name'] = 'ì¸ê¸°ë„ 조사 (ë¶ˆëŸ¬ì˜¤ëŠ”ë° ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다.)'; $lang['submit'] = 'ìžë£Œ 보내기'; diff --git a/lib/plugins/revert/lang/cs/intro.txt b/lib/plugins/revert/lang/cs/intro.txt index bbc0df25a413e5bc2c2b490688e0e3ecaa089336..1e1cd0fd86868ca6b42904023b8564feff270bc7 100644 --- a/lib/plugins/revert/lang/cs/intro.txt +++ b/lib/plugins/revert/lang/cs/intro.txt @@ -1,3 +1,3 @@ ====== Obnova zaspamovaných stránek ====== -Tato stránka pomůže pÅ™i automatické obnovÄ› po spamovém útoku. Pro nalezenà seznamu zaspamovaných stránek nedÅ™Ãv zadejte hledaný výraz (napÅ™. spamové URL) a pak potvrÄte, že nalezené stránky opravdu obsahujà spam a mohou být obnoveny. +Tato stránka pomůže pÅ™i automatické obnovÄ› po spamovém útoku. Pro nalezenà seznamu zaspamovaných stránek nejdÅ™Ãve zadejte hledaný výraz (napÅ™. spamové URL) a pak potvrÄte, že nalezené stránky opravdu obsahujà spam a mohou být obnoveny. diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index 5e070de92157a2d0369fbf9ab3fe4e6760cbd845..0163d27545156c280f2b1e41573c73e529efb26a 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -6,6 +6,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['menu'] = '복구 관리ìž'; $lang['filter'] = '스팸 페ì´ì§€ 검색 '; diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index 9c5a2abc9b7ce612c5b6117793c61a2e5c135877..7d8e4599d6f202eeee0ae952f9c4c46733981ec9 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -45,7 +45,7 @@ $lang['edit_usermissing'] = 'Vybraný uživatel nebyl nalezen, zadané uži $lang['user_notify'] = 'Upozornit uživatele'; $lang['note_notify'] = 'Maily s upozornÄ›nÃm se budou posÃlat pouze, když uživatel dostává nové heslo.'; $lang['note_group'] = 'Novà uživatelé budou pÅ™idáváni do této výchozà skupiny (%s), pokud pro nÄ› nenà uvedena žádná skupina.'; -$lang['note_pass'] = 'Heslo bude automaticky vygenerováno pokud je pole ponacháno prázdné a je zapnutá notifikace uživatele.'; +$lang['note_pass'] = 'Heslo bude automaticky vygenerováno pokud je pole ponecháno prázdné a je zapnutá notifikace uživatele.'; $lang['add_ok'] = 'Uživatel úspěšnÄ› vytvoÅ™en'; $lang['add_fail'] = 'VytvoÅ™enà uživatele selhalo'; $lang['notify_ok'] = 'Odeslán mail s upozornÄ›nÃm'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index eeb8eb791701a26e65d09de0f7d588149e6a9223..f2322414a9a27a131cd310b970a88592f6ee7ee5 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -6,6 +6,7 @@ * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author SONG Younghwan <purluno@gmail.com> + * @author Seung-Chul Yoo <dryoo@live.com> */ $lang['menu'] = 'ì‚¬ìš©ìž ê´€ë¦¬ìž'; $lang['noauth'] = '(ì‚¬ìš©ìž ì¸ì¦ì´ 불가능합니다.)'; diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 5b9372b68f50092dbd540c6ca5e6a1d45ab834b3..b90f7047baca9a1abe456346bda8695c574f4841 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -215,14 +215,6 @@ var media_manager = { return false; } - // FIXME these lines deactivate the media options dialog and restore - // the old behavior according to FS#2047 - //opener.insertTags('wiki__text','{{'+id+'|','}}',''); - //if(!media_manager.keepopen) window.close(); - //opener.focus(); - //return false; - - media_manager.ext = false; var dot = id.lastIndexOf("."); if (dot != -1) { @@ -357,6 +349,7 @@ var media_manager = { media_manager.popup = document.createElement('div'); media_manager.popup.setAttribute('id','media__popup'); + media_manager.popup.style.display = 'none'; var root = document.getElementById('media__manager'); if (root === null) return; diff --git a/lib/styles/style.css b/lib/styles/style.css index 81419161561f70a8258602d63f8fdddadd8d0356..395f82b7810ac41d2b40bdd5d4ea93554b5b5a91 100644 --- a/lib/styles/style.css +++ b/lib/styles/style.css @@ -4,86 +4,98 @@ */ div.clearer { - clear: both; - line-height: 0; - height: 0; - overflow: hidden; + clear: both; + line-height: 0; + height: 0; + overflow: hidden; } div.no { - display: inline; - margin: 0; - padding: 0; + display: inline; + margin: 0; + padding: 0; } .hidden { - display: none; + display: none; +} + +/* messages with msg() */ +div.error, +div.info, +div.success, +div.notify { + color: #000; + background-repeat: no-repeat; + background-position: .5em 0; + border-bottom: 1px solid; + font-size: 90%; + margin: 0; + padding-left: 3em; + overflow: hidden; } div.error { - background: #fcc url(../images/error.png) 0.5em 0px no-repeat; - color: #000; - border-bottom: 1px solid #faa; - font-size: 90%; - margin: 0; - padding-left: 3em; - overflow: hidden; + background-color: #fcc; + background-image: url(../images/error.png); + border-bottom-color: #faa; } div.info { - background: #ccf url(../images/info.png) 0.5em 0px no-repeat; - color: #000; - border-bottom: 1px solid #aaf; - font-size: 90%; - margin: 0; - padding-left: 3em; - overflow: hidden; + background-color: #ccf; + background-image: url(../images/info.png); + border-bottom-color: #aaf; } div.success { - background: #cfc url(../images/success.png) 0.5em 0px no-repeat; - color: #000; - border-bottom: 1px solid #afa; - font-size: 90%; - margin: 0; - padding-left: 3em; - overflow: hidden; + background-color: #cfc; + background-image: url(../images/success.png); + border-bottom-color: #afa; } div.notify { - background: #ffc url(../images/notify.png) 0.5em 0px no-repeat; - color: #000; - border-bottom: 1px solid #ffa; - font-size: 90%; - margin: 0; - padding-left: 3em; - overflow: hidden; + background-color: #ffc; + background-image: url(../images/notify.png); + border-bottom-color: #ffa; } /* image alignment */ .medialeft { - float: left; + float: left; } .mediaright { - float: right; + float: right; } .mediacenter { - display: block; - margin-left: auto; - margin-right: auto; + display: block; + margin-left: auto; + margin-right: auto; } -.leftalign { text-align: left; } +/* table cell alignment */ +.leftalign { text-align: left; } .centeralign { text-align: center; } -.rightalign { text-align: right; } +.rightalign { text-align: right; } +/* underline */ em.u { - font-style: normal; - text-decoration: underline; + font-style: normal; + text-decoration: underline; } em em.u { - font-style: italic; + font-style: italic; +} + +/* modal windows */ +.JSpopup, +#link__wiz, +#media__popup { + position: absolute; + background-color: #fff; + color: #000; + z-index: 20; + overflow: hidden; }