' . htmlentities($show) . '"', $words['cantbeshown']); } else { exit; } } /* Show a file syntax highlighted */ if (!empty($_GET['showh'])) { $showh = relpathtoabspath($_GET['showh'], $_SESSION['dir']); if (!show_highlight($showh)) { $error = buildphrase('"' . htmlentities($showh) . '"', $words['cantbeshown']); } else { exit; } } /* Upload file */ if (isset($_FILES['upload'])) { $file = relpathtoabspath($_FILES['upload']['name'], $_SESSION['dir']); if (@is_writable($_SESSION['dir']) && @move_uploaded_file($_FILES['upload']['tmp_name'], $file) && (!isset($uploadedfilepermission) || chmod($file, $uploadedfilepermission))) { $notice = buildphrase(array('"' . htmlentities(basename($file)) . '"', '"' . htmlentities($_SESSION['dir']) . '"'), $words['uploaded']); } else { $error = buildphrase(array('"' . htmlentities(basename($file)) . '"', '"' . htmlentities($_SESSION['dir']) . '"'), $words['notuploaded']); } } /* Create file */ if (!empty($_GET['create']) && $_GET['type'] == 'file') { $file = relpathtoabspath($_GET['create'], $_SESSION['dir']); if (substr($file, strlen($file) - 1, 1) == '/') $file = substr($file, 0, strlen($file) - 1); if (is_free($file) && touch($file) && ((!isset($newfilepermission)) || chmod($file, $newfilepermission))) { $notice = buildphrase('"' . htmlentities($file) . '"', $words['created']); $_REQUEST['edit'] = $file; } else { $error = buildphrase('"' . htmlentities($file) . '"', $words['notcreated']); } } /* Create directory */ if (!empty($_GET['create']) && $_GET['type'] == 'dir') { $file = relpathtoabspath($_GET['create'], $_SESSION['dir']); if (is_free($file) && @mkdir($file, $dirpermission)) { $notice = buildphrase('"' . htmlentities($file) . '"', $words['created']); $updatetreeview = TRUE; if (!empty($_SESSION['tree'])) { $file = spath(dirname($file)); $_SESSION['hassubdirs'][$file] = TRUE; tree_plus($_SESSION['tree'], $_SESSION['hassubdirs'], $file); } } else { $error = buildphrase('"' . htmlentities($file) . '"', $words['notcreated']); } } /* Ask symlink target */ if (!empty($_GET['symlinktarget']) && empty($_GET['symlink'])) { $symlinktarget = relpathtoabspath($_GET['symlinktarget'], $_SESSION['dir']); html_header($words['createsymlink']); ?>

 
' . htmlentities($symlink) . '"', '"' . htmlentities($target) . '"'), $words['samefiles']); } else { if (@$_GET['relative'] == 'yes') { $target = abspathtorelpath(dirname($symlink), $target); } else { $target = $_GET['symlinktarget']; } if (is_free($symlink) && @symlink($target, $symlink)) { $notice = buildphrase('"' . htmlentities($symlink) . '"', $words['created']); } else { $error = buildphrase('"' . htmlentities($symlink) . '"', $words['notcreated']); } } } /* Delete file */ if (!empty($_GET['delete'])) { $delete = relpathtoabspath($_GET['delete'], $_SESSION['dir']); if (@$_GET['sure'] == 'TRUE') { if (remove($delete)) { $notice = buildphrase('"' . htmlentities($delete) . '"', $words['deleted']); } else { $error = buildphrase('"' . htmlentities($delete) . '"', $words['notdeleted']); } } else { html_header($words['delete']); ?>

' . htmlentities($delete) . '"', $words['suredelete'])); ?>
">[ ]

' . htmlentities($permission) . '"', '"' . substr(octtostr("0$p"), 1) . '" (' . decoct($p) . ')'), $words['permsset']); } else { $error = buildphrase('"' . htmlentities($permission) . '"', $words['permsnotset']); } } else { html_header($words['permission']); ?>
:
 
: > > >
: > > >
: > > >
 
' . htmlentities($permission) . '"', $words['permsnotset']); } } /* Move file */ if (!empty($_GET['move'])) { $move = relpathtoabspath($_GET['move'], $_SESSION['dir']); if (!empty($_GET['destination'])) { $destination = relpathtoabspath($_GET['destination'], dirname($move)); if (@is_dir($destination)) $destination = spath($destination) . basename($move); if ($move == $destination) { $error = buildphrase(array('"' . htmlentities($move) . '"', '"' . htmlentities($destination) . '"'), $words['samefiles']); } else { if (is_free($destination) && @rename($move, $destination)) { $notice = buildphrase(array('"' . htmlentities($move) . '"', '"' . htmlentities($destination) . '"'), $words['moved']); } else { $error = buildphrase(array('"' . htmlentities($move) . '"', '"' . htmlentities($destination) . '"'), $words['notmoved']); } } } else { html_header($words['move']); ?>
 
' . htmlentities($copy) . '"', '"' . htmlentities($destination) . '"'), $words['samefiles']); } else { if (is_free($destination) && @copy($copy, $destination)) { $notice = buildphrase(array('"' . htmlentities($copy) . '"', '"' . htmlentities($destination) . '"'), $words['copied']); } else { $error = buildphrase(array('"' . htmlentities($copy) . '"', '"' . htmlentities($destination) . '"'), $words['notcopied']); } } } else { html_header($words['copy']); ?>
 
' . htmlentities($edit) . '"', $words['saved']); } else { $error = buildphrase('"' . htmlentities($edit) . '"', $words['notsaved']); } } /* Edit file */ if (isset($_REQUEST['edit']) && !isset($_POST['save'])) { $file = relpathtoabspath($_REQUEST['edit'], $_SESSION['dir']); if (@is_dir($file)) { /* If the requested file is a directory, show the directory */ $_SESSION['dir'] = $file; $updatetreeview = TRUE; } else { if ($f = @fopen($file, 'r')) { html_header($words['edit']); ?>
 
   
' . htmlentities($file) . '" ', $words['notopened']); } } } /* Show directory listing (and treeview) */ if (!empty($_SESSION['tree'])) { if (isset($_REQUEST['frame']) && $_REQUEST['frame'] == 'treeview') { treeview(); } else { if (isset($_GET['noupdate'])) $updatetreeview = FALSE; dirlisting(TRUE); } } else { dirlisting(); } /* ------------------------------------------------------------------------- */ function strip (&$str) { $str = stripslashes($str); } function relpathtoabspath ($file, $dir) { $dir = spath($dir); if (substr($file, 0, 1) != '/') $file = $dir . $file; if (!@is_link($file) && ($r = realpath($file)) != FALSE) $file = $r; if (@is_dir($file) && !@is_link($file)) $file = spath($file); return $file; } function abspathtorelpath ($pos, $target) { $pos = spath($pos); $path = ''; while ($pos != $target) { if ($pos == substr($target, 0, strlen($pos))) { $path .= substr($target, strlen($pos)); break; } else { $path .= '../'; $pos = strrev(strstr(strrev(substr($pos, 0, strlen($pos) - 1)), '/')); } } return $path; } function is_script ($file) { return ereg('.php[3-4]?$', $file); } function spath ($path) { if (substr($path, strlen($path) - 1, 1) != '/') $path .= '/'; return $path; } function textfieldsize ($str) { $size = strlen($str) + 5; if ($size < 30) $size = 30; return $size; } function is_free ($file) { global $words; if (@file_exists($file) && empty($_GET['overwrite'])) { html_header($words['alreadyexists']); ?>

' . htmlentities($file) . '"', $words['overwrite'])); ?>
">[ ]

Treeview >
<?php echo($self); ?> " name="treeview"> " name="webadmin"> $numcols) $numcols = $col; if (isset($tree[$path])) { for ($i = 0; $i < sizeof($tree[$path]); $i++) { $numcols = tree_calculatenumcols($tree, $path . $tree[$path][$i], $col + 1); } } return $numcols; } function tree_showtree ($tree, $hassubdirs, $path, $col, $numcols) { global $self, $treeroot; static $islast = array(0 => TRUE); echo(" \n"); for ($i = 0; $i < $col; $i++) { if ($islast[$i]) $iid = 0; else $iid = 3; echo(" \n"); } if ($hassubdirs[$path]) { if (!empty($tree[$path])) { $action = 'minus'; $iid = 8; } else { $action = 'plus'; $iid = 7; } if ($col == 0) $iid -= 3; else if ($islast[$col]) $iid += 3; echo(" '); echo(""); echo("\n"); } else { if ($islast[$col]) $iid = 9; else $iid = 6; echo(" \n"); } if (@is_readable($path)) { $a1 = "'; $a2 = ''; } else { $a1 = $a2 = ''; } if ($_SESSION['dir'] == $path) $iid = 2; else $iid = 1; echo(" $a1$a2\n"); $cspan = $numcols - $col + 1; if ($cspan > 1) $colspan = " colspan=\"$cspan\""; else $colspan = ''; if ($col == $numcols) $width = ' width="100%"'; else $width = ''; echo("  "); if ($path == $treeroot) $label = $path; else $label = basename($path); echo($a1 . htmlentities($label) . $a2); echo("\n"); echo(" \n"); if (!empty($tree[$path])) { for ($i = 0; $i < sizeof($tree[$path]); $i++) { if (($i + 1) == sizeof($tree[$path])) $islast[$col + 1] = TRUE; else $islast[$col + 1] = FALSE; tree_showtree($tree, $hassubdirs, $path . $tree[$path][$i], $col + 1, $numcols); } } return; } function tree_plus (&$tree, &$hassubdirs, $p) { if ($path = spath(realpath($p))) { $tree[$path] = tree_getsubdirs($path); for ($i = 0; $i < sizeof($tree[$path]); $i++) { $subdir = $path . $tree[$path][$i]; if (empty($hassubdirs[$subdir])) $hassubdirs[$subdir] = tree_hassubdirs($subdir); } } return; } function tree_minus (&$tree, &$hassubdirs, $p) { $dirchanged = FALSE; if ($path = spath(realpath($p))) { if (!empty($tree[$path])) { for ($i = 0; $i < sizeof($tree[$path]); $i++) { $subdir = $path . $tree[$path][$i] . '/'; if (isset($hassubdirs[$subdir])) $hassubdirs[$subdir] = NULL; } $tree[$path] = NULL; if (substr($_SESSION['dir'], 0, strlen($path)) == $path) { $_SESSION['dir'] = $path; $dirchanged = TRUE; } } } return $dirchanged; } function tree_getsubdirs ($path) { $subdirs = array(); if ($p = @opendir($path)) { for ($i = 0; ($filename = readdir($p)) !== FALSE;) { if (tree_isrealdir($path . $filename)) $subdirs[$i++] = $filename . '/'; } } sort($subdirs); return $subdirs; } function show ($file) { global $words; if (@is_readable($file) && @is_file($file)) { header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header('Content-Type: ' . getmimetype($file)); header('Content-Disposition: attachment; filename=' . basename($file) . ';'); if (@readfile($file) !== FALSE) return TRUE; } return FALSE; } function show_highlight ($file) { global $words; if (@is_readable($file) && @is_file($file)) { header('Content-Disposition: filename=' . basename($file)); echo("\n"); echo(buildphrase(array('"' . htmlentities(basename($file)) . '"'), $words['sourceof'])); echo("\n\n\n\n\n\n\n
\n\n"); $size = sizeof(file($file)); for ($i = 1; $i <= $size; $i++) printf("%05d
\n", $i); echo("
\n
\n"); $shown = @highlight_file($file); echo("\n"); echo("
\n"); echo("\n"); echo(""); if ($shown) return TRUE; } return FALSE; } function getmimetype ($file) { /* $mime = 'application/octet-stream'; */ $mime = 'text/plain'; $ext = substr($file, strrpos($file, '.') + 1); if (@is_readable('/etc/mime.types')) { $f = fopen('/etc/mime.types', 'r'); while (!feof($f)) { $line = fgets($f, 4096); $found = FALSE; $mim = strtok($line," \n\t"); $ex = strtok(" \n\t"); while ($ex && !$found) { if (strtolower($ex) == strtolower($ext)) { $found = TRUE; $mime = $mim; break; } $ex = strtok(" \n\t"); } if ($found) break; } fclose($f); } return $mime; } function dirlisting ($inaframe = FALSE) { global $self, $homedir, $words; global $error, $notice; global $quota, $quotacmd; $p = '&' . SID; html_header($_SESSION['dir']); ?>
" . $words['dir']); ?>:   
" . implode("\n", $out) . ""); } if (@is_writable($_SESSION['dir'])) { ?>
   
   
' . htmlentities($_SESSION['dir']) . '"', $words['readingerror'])); } if ($inaframe) { pnotice("' . $words['treeoff'] . ''); } else { pnotice("' . $words['treeon'] . ''); } html_footer(FALSE); return; } function dirtoarray ($dir) { if ($dirstream = @opendir($dir)) { for ($n = 0; ($filename = readdir($dirstream)) !== FALSE; $n++) { $stat = @lstat($dir . $filename); $files[$n]['filename'] = $filename; $files[$n]['fullfilename'] = $fullfilename = relpathtoabspath($filename, $dir); $files[$n]['is_file'] = @is_file($fullfilename); $files[$n]['is_dir'] = @is_dir($fullfilename); $files[$n]['is_link'] = $islink = @is_link($dir . $filename); if ($islink) { $files[$n]['readlink'] = @readlink($dir . $filename); $files[$n]['linkinfo'] = linkinfo($dir . $filename); } $files[$n]['is_readable'] = @is_readable($fullfilename); $files[$n]['is_writable'] = @is_writable($fullfilename); $files[$n]['is_executable'] = @is_executable($fullfilename); $files[$n]['permission'] = $islink ? 'lrwxrwxrwx' : octtostr(@fileperms($dir . $filename)); if (substr($files[$n]['permission'], 0, 1) != '-') { $files[$n]['size'] = -1; } else { $files[$n]['size'] = @$stat['size']; $GLOBALS['showsize'] = TRUE; } $files[$n]['owner'] = $owner = @$stat['uid']; $files[$n]['group'] = $group = @$stat['gid']; $files[$n]['ownername'] = @reset(posix_getpwuid($owner)); $files[$n]['groupname'] = @reset(posix_getgrgid($group)); } closedir($dirstream); return $files; } else { return FALSE; } } function outputdirlisting ($dir, $files, $inaframe, $sort, $reverse) { global $self, $words; $uid = posix_getuid(); ?>

\n"); echo(" \n"); echo(" \n"); if ($GLOBALS['showsize']) echo(" \n"); echo(" \n"); echo(" \n"); echo(" \n"); echo(" \n"); echo(" \n"); $p = '&' . SID; if ($GLOBALS['showsize']) $cspan = ' colspan="2"'; else $cspan = ''; foreach ($files as $file) { echo(" \n"); if ($file['is_link']) { echo(" \n"); echo(" "); if ($file['is_dir']) echo('[ '); echo($file['filename']); if ($file['is_dir']) echo(' ]'); echo(' -> '); if ($file['is_dir']) { echo('[ '); if ($file['is_readable']) echo(""); echo(htmlentities($file['readlink'])); if ($file['is_readable']) echo(''); echo(' ]'); } else { if (dirname($file['readlink']) != '.') { if ($file['is_readable']) echo(""); echo(htmlentities(dirname($file['readlink'])) . '/'); if ($file['is_readable']) echo(''); } if (strlen(basename($file['readlink'])) != 0) { if ($file['is_file'] && $file['is_readable']) echo(""); echo(htmlentities(basename($file['readlink']))); if ($file['is_file'] && $file['is_readable']) echo(''); } if ($file['is_file'] && is_script($file['readlink'])) echo(" *"); } echo("\n"); } elseif ($file['is_dir']) { echo(" \n"); echo(" [ "); if ($file['is_readable']) echo(""); echo(htmlentities($file['filename'])); if ($file['is_readable']) echo(''); echo(" ]\n"); } else { echo(" \n"); echo(' '); if ($file['is_readable'] && $file['is_file']) echo(""); echo(htmlentities($file['filename'])); if ($file['is_readable'] && $file['is_file']) echo(''); if ($file['is_file'] && is_script($file['filename'])) echo(" *"); echo("\n"); if ($GLOBALS['showsize'] && $file['is_file']) { echo(" \n"); } } echo(' \n"); $owner = ($file['ownername'] == NULL) ? $file['owner'] : $file['ownername']; $group = ($file['groupname'] == NULL) ? $file['group'] : $file['groupname']; echo(' \n"); echo(' \n"); $f = "{$words['createsymlink']} | ";; if ($file['filename'] != '.' && $file['filename'] != '..') { if ($file['is_readable'] && $file['is_file']) { $f .= "{$words['copy']} | "; } if ($uid == $file['owner']) { $f .= "{$words['move']} | "; $f .= "{$words['delete']} | "; } if ($file['is_writable'] && $file['is_file']) { $f .= "{$words['edit']} | "; } } if ($file['is_dir'] && @is_file($file['fullfilename'] . '.htaccess') && @is_writable($file['fullfilename'] . '.htaccess')) { $f .= "{$words['configure']} | "; } if (!empty($f)) $f = substr($f, 0, strlen($f) - 3); else $f = ' '; echo(" \n"); echo(" \n"); } ?>
{$words['filename']}{$words['size']}{$words['permission']}{$words['owner']}{$words['group']}{$words['functions']}
"); if ($file['is_file']) echo("{$file['size']} B"); echo("'); if ($uid == $file['owner'] && !$file['is_link']) echo(""); echo($file['permission']); if ($uid == $file['owner'] && !$file['is_link']) echo(''); echo("' . $owner . "' . $group . "$f

$g)) $l++; while (($r > $left) && ($field[$r][$column] < $g)) $r--; } else { while (($l < $right) && ($field[$l][$column] < $g)) $l++; while (($r > $left) && ($field[$r][$column] > $g)) $r--; } if ($l < $r) { $tmp = $field[$r]; $field[$r] = $field[$l]; $field[$l] = $tmp; $r--; $l++; } else { $l++; } } if ($r > $left) $field = sortfield($field, $column, $reverse, $left, $r); if ($r + 1 < $right) $field = sortfield($field, $column, $reverse, $r + 1, $right); return $field; } function buildphrase ($repl, $str) { if (!is_array($repl)) $repl = array($repl); $newstr = ''; $prevz = ' '; for ($i = 0; $i < strlen($str); $i++) { $z = substr($str, $i, 1); if (((int) $z) > 0 && ((int) $z) <= count($repl) && $prevz == ' ') $newstr .= $repl[((int) $z) - 1]; else $newstr .= $z; $prevz = $z; } return $newstr; } function html_header ($action) { global $self; global $error, $notice, $updatetreeview; ?> <?php echo("$self - $action"); ?> >

\5\0;\0"; case 7: return "GIF89a\23\0\22\0\x91\3\0\x99\x99\x99\xff\xff\xff\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\23\0\22\0\0\x020\x9co\x80\xcb\xed\xad\x9e\x9c\t\xd8k%\x8\xbc\x87\xe8l\x9c\xd0\x81PGr&\xb3\t\xae\xfb\r\xca*\xa3\xa5f\xab\xb8\xa7?\xd8O\t\x86\x84\xc4a\x91R\0\0;\0"; case 8: return "GIF89a\23\0\22\0\x91\3\0\x99\x99\x99\xff\xff\xff\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\23\0\22\0\0\2/\x9co\x80\xcb\xed\xad\x9e\x9c\t\xd8k%\x8\xbc\x87\xe8l\36\7B#\xa9\5\xc2\xba~\x83R&\xa7\xfb\x88c\xbc\xd8\36\x8e`>\5\xc\5\x87B\"\xa5\0\0;\0"; case 9: return "GIF89a\23\0\22\0\x80\1\0\x99\x99\x99\xff\xff\xff!\xf9\4\1\xe8\3\1\0,\0\0\0\0\23\0\22\0\0\2\30\x8co\x80\xcb\xed\xad\x9e\x9c,\xd2+-\xdeK\xf9\xf0q\xe2H\x96\xe6\x89r\5\0;\0"; case 10: return "GIF89a\23\0\22\0\x91\3\0\x99\x99\x99\xff\xff\xff\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\23\0\22\0\0\2/\x9co\x80\xcb\xed\xad\x9e\x9c\t\xd8k%\x8\xbc\x87\xe8l\x9c\xd0\x81PGr&\xb3\t\xae\xfb\r\xca*\xa3\xa5f\xab\xb8\xa7?\xd8O\t\n\x87\xc4\xa2\xb0\0\0;\0"; case 11: return "GIF89a\23\0\22\0\x91\3\0\x99\x99\x99\xff\xff\xff\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\23\0\22\0\0\2.\x9co\x80\xcb\xed\xad\x9e\x9c\t\xd8k%\x8\xbc\x87\xe8l\36\7B#\xa9\5\xc2\xba~\x83R&\xa7\xfb\x88c\xbc\xd8\36\x8e`>\5\xc\n\x87\xc4`\1\0;\0"; case 12: return "GIF89a\21\0\r\0\x91\3\0\x99\x99\x99\xff\xff\xff\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\21\0\r\0\0\2-\x9c\x81\x89\xc6\r\1\xe3j\xec\x89+\xc2\3\xf4D\x99t\26\x86i\xe2\x87r\xd4Hf\xaa\x83~o\25\xb4\x97\xb9\xc6\xd2i\xbb\xa7\x8es(\x86\xaf\2\0;\0"; case 13: return "GIF89a\21\0\r\0\x91\3\0\xcc\0\0\xff\xff\xff\x99\x99\x99\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\21\0\r\0\0\2-\x9c\x81\x89\xc6\r\1\xe3j\xec\x89+\xc2\3\xf4D\x99t\26\x86i\xe2\x87r\xd4Hf\xaa\x83~o\25\xb4\x97\xb9\xc6\xd2i\xbb\xa7\x8es(\x86\xaf\2\0;\0"; case 14: return "GIF89a\21\0\r\0\xa2\4\0\x99\x99\x99\xff\xff\xff\0\0\0\xcc\0\0\xff\xff\xff\0\0\0\0\0\0\0\0\0!\xf9\4\1\xe8\3\4\0,\0\0\0\0\21\0\r\0\0\x039H\n\xdc\xac0\x82@\xeb\x8bp\x8a-\xc2\4\xd8RYM8\r\3\xc5y&\x85\x8e,\x84\xces\xb0\xc5\nM\x8f 6\5/[\xa7'\1\xa6`\xc4\xcc\x883l\xc1,&\x87\x94\x98\0\0;\0"; case 15: return "GIF89a\21\0\r\0\x91\3\0\x99\x99\x99\xff\xff\xff\xcc\xcc\xcc\xff\xff\xff!\xf9\4\1\xe8\3\3\0,\0\0\0\0\21\0\r\0\0\2*\x9c\x8f\x99\xc0\xac\33b\4\xcf\xb4\x8b\x9d\x95\xbc\xb:\0\x81@\x96&\t\x8a\xe7\xfam\xec\x99\x8eo\31\xcf\xb4k\xb7a\x8e\36\xd9o(\0\0;\0"; case 16: return "GIF89a\21\0\r\0\x91\2\0\0\0\0\xff\xff\0\xff\xff\xff\0\0\0!\xf9\4\1\xe8\3\2\0,\0\0\0\0\21\0\r\0\0\2,\x94\x8f\xa9\2\xed\xb0\xc\x8\xb3\xd25\x83\xde\32\xa6\x076_\xd5P\xa5x\x94\34\x87J\xe4vzi\7wJf\xe22\x82\xb3\21\23\xfa\t\xf\5\0;\0"; case 0: default: return "GIF89a\23\0\22\0\x80\1\0\0\0\0\xff\xff\xff!\xf9\4\1\xe8\3\1\0,\0\0\0\0\23\0\22\0\0\2\20\x8c\x8f\xa9\xcb\xed\xf\xa3\x9c\xb4\xda\x8b\xb3\xde\xbc\xd7\2\0;\0"; } } function getWords ($lang) { switch ($lang) { case 'de': return array( 'dir' => 'Verzeichnis', 'file' => 'Datei', 'filename' => 'Dateiname', 'size' => 'Größe', 'permission' => 'Rechte', 'functions' => 'Funktionen', 'owner' => 'Eigner', 'group' => 'Gruppe', 'other' => 'Andere', 'create' => 'erstellen', 'copy' => 'kopieren', 'copyto' => 'kopieren nach', 'move' => 'verschieben', 'moveto' => 'verschieben nach', 'delete' => 'löschen', 'edit' => 'editieren', 'read' => 'lesen', 'write' => 'schreiben', 'exec' => 'ausführen', 'change' => 'wechseln', 'upload' => 'hochladen', 'configure' => 'konfigurieren', 'yes' => 'ja', 'no' => 'nein', 'back' => 'zurück', 'setperms' => 'Rechte setzen', 'readingerror' => 'Fehler beim Lesen von 1', 'permsset' => 'Die Rechte von 1 wurden auf 2 gesetzt.', 'permsnotset' => 'Die Rechte von 1 konnten nicht gesetzt werden.', 'uploaded' => '1 wurde nach 2 hochgeladen.', 'notuploaded' => '1 konnte nicht nach 2 hochgeladen werden.', 'moved' => '1 wurde nach 2 verschoben.', 'notmoved' => '1 konnte nicht nach 2 verschoben werden.', 'copied' => '1 wurde nach 2 kopiert.', 'notcopied' => '1 konnte nicht nach 2 kopiert werden.', 'created' => '1 wurde erstellt.', 'notcreated' => '1 konnte nicht erstellt werden.', 'deleted' => '1 wurde gelöscht.', 'notdeleted' => '1 konnte nicht gelöscht werden.', 'suredelete' => '1 wirklich löschen?', 'saved' => '1 wurde gespeichert.', 'notsaved' => '1 konnte nicht gespeichert werden.', 'reset' => 'zurücksetzen', 'clear' => 'verwerfen', 'save' => 'speichern', 'cantbeshown' => '1 kann nicht angezeigt werden.', 'sourceof' => 'Quelltext von 1', 'notopened' => '1 konnte nicht geöffnet werden.', 'addauth' => 'Standard-Authentifizierungseinstellungen hinzufügen', 'username' => 'Benutzername', 'password' => 'Kennwort', 'add' => 'hinzufügen', 'treeon' => 'Baumansicht aktivieren', 'treeoff' => 'Baumansicht deaktivieren', 'symlink' => 'Symbolischer Link', 'createsymlink' => 'Link erstellen', 'target' => 'Ziel', 'reltarget' => 'Relative Pfadangabe des Ziels', 'alreadyexists' => 'Die Datei existiert bereits.', 'overwrite' => 'Soll 1 überschrieben werden?', 'samefiles' => '1 und 2 sind identisch.', ); case 'cz': return array( 'dir' => 'Adresář', 'file' => 'Soubor', 'filename' => 'Jméno souboru', 'size' => 'Velikost', 'permission' => 'Práva', 'functions' => 'Functions', 'owner' => 'Vlastník', 'group' => 'Skupina', 'other' => 'Ostatní', 'create' => 'vytvořit', 'copy' => 'kopírovat', 'copyto' => 'kopírovat do', 'move' => 'přesunout', 'moveto' => 'přesunout do', 'delete' => 'odstranit', 'edit' => 'úpravy', 'read' => 'čtení', 'write' => 'zápis', 'exec' => 'spuštění', 'change' => 'změnit', 'upload' => 'nahrát', 'configure' => 'nastavení', 'yes' => 'ano', 'no' => 'ne', 'back' => 'zpátky', 'setperms' => 'nastav práva', 'readingerror' => 'Chyba při čtení 1', 'permsset' => 'Přístupová práva k 1 byla nastavena na 2.', 'permsnotset' => 'Přístupová práva k 1 nelze nastavit na 2.', 'uploaded' => 'Soubor 1 byl uložen do adresáře 2.', 'notuploaded' => 'Chyba při ukládání souboru 1 do adresáře 2.', 'moved' => 'Soubor 1 byl přesunut do adresáře 2.', 'notmoved' => 'Soubor 1 nelze přesunout do adresáře 2.', 'copied' => 'Soubor 1 byl zkopírován do adresáře 2.', 'notcopied' => 'Soubor 1 nelze zkopírovat do adresáře 2.', 'created' => '1 byl vytvořen.', 'notcreated' => '1 nelze vytvořit.', 'deleted' => '1 byl vymazán.', 'notdeleted' => '1 nelze vymazat.', 'suredelete' => 'Skutečně smazat 1?', 'saved' => 'Soubor 1 byl uložen.', 'notsaved' => 'Soubor 1 nelze uložit.', 'reset' => 'zpět', 'clear' => 'vyčistit', 'save' => 'ulož', 'cantbeshown' => "1 can't be shown.", 'sourceof' => 'source of 1', 'notopened' => "1 nelze otevřít", 'addauth' => 'přidat základní-authentifikaci', 'username' => 'Uživatelské jméno', 'password' => 'Heslo', 'add' => 'přidat', 'treeon' => 'Zobraz strom adresářů', 'treeoff' => 'Skryj strom adresářů', 'symlink' => 'Symbolický odkaz', 'createsymlink' => 'vytvořit odkaz', 'target' => 'Cíl', 'reltarget' => 'Relativni cesta k cíli', 'alreadyexists' => 'Tento soubor už existuje.', 'overwrite' => 'Přepsat 1?', 'samefiles' => '1 a 2 jsou identickél.' ); case 'it': return array( 'dir' => 'Directory', 'file' => 'File', 'filename' => 'Nome file', 'size' => 'Dimensioni', 'permission' => 'Permessi', 'functions' => 'Funzioni', 'owner' => 'Proprietario', 'group' => 'Gruppo', 'other' => 'Altro', 'create' => 'crea', 'copy' => 'copia', 'copyto' => 'copia su', 'move' => 'muovi', 'moveto' => 'muove su', 'delete' => 'delete', 'edit' => 'edit', 'read' => 'leggi', 'write' => 'scrivi', 'exec' => 'esegui', 'change' => 'modifica', 'upload' => 'upload', 'configure' => 'configura', 'yes' => 'si', 'no' => 'no', 'back' => 'back', 'setperms' => 'imposta permessi', 'readingerror' => 'Errore durante la lettura di 1', 'permsset' => 'I permessi di 1 sono stati impostati a 2.', 'permsnotset' => 'I permessi di 1 non possono essere impostati.', 'uploaded' => '1 è stato uploadato su 2.', 'notuploaded' => 'Errore durante l\'upload di 1 su 2.', 'moved' => '1 è stato spostato su 2.', 'notmoved' => '1 non può essere spostato su 2.', 'copied' => '1 è stato copiato su 2.', 'notcopied' => '1 non può essere copiato su 2.', 'created' => '1 è stato creato.', 'notcreated' => 'impossibile creare 1.', 'deleted' => '1 è stato eliminato.', 'notdeleted' => 'Impossibile eliminare 1.', 'suredelete' => 'Confermi eliminazione di 1?', 'saved' => '1 è stato salvato.', 'notsaved' => 'Impossibile salvare 1.', 'reset' => 'reimposta', 'clear' => 'pulisci', 'save' => 'salva', 'cantbeshown' => "Impossibile visualizzare 1.", 'sourceof' => 'sorgente di 1', 'notopened' => "Impossibile aprire 1", 'addauth' => 'aggiunge autenticazione di base', 'username' => 'Nome Utente', 'password' => 'Password', 'add' => 'add', 'treeon' => 'Abilita vista ad albero', 'treeoff' => 'Disabilita vista ad albero', 'symlink' => 'Link simbolico', 'createsymlink' => 'crea symlink', 'target' => 'Target', 'reltarget' => 'Percorso relativo al target', 'alreadyexists' => 'Questo file esiste già.', 'overwrite' => 'Sovrascrivi 1?', 'samefiles' => '1 e 2 sono identici.' ); case 'fr': return array( 'dir' => 'Dossier', 'file' => 'Fichier', 'filename' => 'Nom du fichier', 'size' => 'Dimension', 'permission' => 'Permission', 'functions' => 'Fonction', 'owner' => 'Propriétaire', 'group' => 'Groupe', 'other' => 'Autre', 'create' => 'Créé', 'copy' => 'Copier', 'copyto' => 'Copier sur', 'move' => 'Déplacer', 'moveto' => 'Déplacer sur', 'delete' => 'Effacer', 'edit' => 'Editer', 'read' => 'Lire', 'write' => 'Ecrire', 'exec' => 'Executer', 'change' => 'Modifier', 'upload' => 'Uploader', 'configure' => 'Configurer', 'yes' => 'Oui', 'no' => 'Non', 'back' => 'retour', 'setperms' => 'placez la permission', 'readingerror' => 'Erreur durant le lecture 1', 'permsset' => 'Les permissions de 1 ont été établies à 2.', 'permsnotset' => 'Les permissions de 1 ne peuvent pas être établies.', 'uploaded' => '1 a été uploadé sur 2.', 'notuploaded' => 'Erreur durant l\'upload de 1 sur 2.', 'moved' => '1 a été déplacé sur 2.', 'notmoved' => '1 ne peut pas être déplacé sur 2.', 'copied' => '1 a été copié sur 2.', 'notcopied' => '1 ne peut pas être copié sur 2.', 'created' => '1 a été créé.', 'notcreated' => 'impossible de créer 1.', 'deleted' => '1 a été effacé', 'notdeleted' => 'impossible d\'effacer 1.', 'suredelete' => 'Confirmez-vous la suppression de 1 ?', 'saved' => '1 a été enregistré.', 'notsaved' => 'Impossible d\'enregistrer 1.', 'reset' => 'remettre', 'clear' => 'efface', 'save' => 'sauvegarde', 'cantbeshown' => "Impossible de visualiser 1.", 'sourceof' => 'source de 1', 'notopened' => "Impossible d'ouvrir 1", 'addauth' => 'ajoutez une authentification de base', 'username' => 'Nom d\'utilisateur', 'password' => 'Mot de passe', 'add' => 'Ajouter', 'treeon' => 'Permettre de voir l\'arborésence', 'treeoff' => 'Interdire de voir l\'arborésence', 'symlink' => 'Lien symbolique', 'createsymlink' => 'Créé un lien symbolique', 'target' => 'Requete', 'reltarget' => 'Parcours relatif à la requete', 'alreadyexists' => 'Ce fichier existe déjà.', 'overwrite' => 'Réécrire 1?', 'samefiles' => '1 et 2 sont identiques.', ); case 'nl': return array( 'dir' => 'Directory', 'file' => 'Bestand', 'filename' => 'Bestandsnaam', 'size' => 'Grootte', 'permission' => 'Permissies', 'functions' => 'Functies', 'owner' => 'Eigenaar', 'group' => 'Groep', 'other' => 'Anderen', 'create' => 'nieuw aanmaken', 'copy' => 'kopieren', 'copyto' => 'kopieren naar', 'move' => 'verplaatsen', 'moveto' => 'verplaatsen naar', 'delete' => 'verwijderen', 'edit' => 'bewerken', 'read' => 'lezen', 'write' => 'schrijven', 'exec' => 'uitvoeren', 'change' => 'veranderen', 'upload' => 'uploaden', 'configure' => 'configureren', 'yes' => 'ja', 'no' => 'neen', 'back' => 'terug', 'setperms' => 'verander permissies', 'readingerror' => 'Fout tijdens lezen van 1', 'permsset' => 'Permissies van 1 zijn nu 2.', 'permsnotset' => 'Kan permissies van 1 niet veranderen.', 'uploaded' => '1 is naar 2 geupload.', 'notuploaded' => 'Fout tijdens upload van 1 naar 2.', 'moved' => '1 is naar 2 verplaatst.', 'notmoved' => 'Kon 1 niet verplaatsen naar 2.', 'copied' => '1 is naar 2 gekopieerd.', 'notcopied' => 'Kon 1 niet kopieren naar 2.', 'created' => '1 is aangemaakt.', 'notcreated' => 'Kon 1 niet aanmaken.', 'deleted' => '1 is verwijderd.', 'notdeleted' => 'Kon 1 niet verwijderen.', 'suredelete' => 'Wilt u 1 echt verwijderen?', 'saved' => '1 is opgeslagen.', 'notsaved' => 'Kon 1 niet opslaan.', 'reset' => 'alles ongedaan maken', 'clear' => 'wissen', 'save' => 'opslaan', 'cantbeshown' => "Kan 1 niet weergeven.", 'sourceof' => 'bron van 1', 'notopened' => "Kon 1 niet openen", 'addauth' => 'Basis-authentificatie toevoegen', 'username' => 'Gebruikersnaam', 'password' => 'Paswoord', 'add' => 'toevoegen', 'treeon' => 'Boomstructuur Tonen', 'treeoff' => 'Boomstructuur Verbergen', 'symlink' => 'Symbolische koppeling', 'createsymlink' => 'koppeling maken', 'target' => 'Doel', 'reltarget' => 'Relatief pad naar doel', 'alreadyexists' => 'Dit bestand bestaat al.', 'overwrite' => '1 overschrijven?', 'samefiles' => '1 en 2 zijn hetzelfde.', ); case 'se': return array( 'dir' => 'Folder', 'file' => 'Fil', 'filename' => 'Filnamn', 'size' => 'Storlek', 'permission' => 'Rättigheter', 'functions' => 'Funktioner', 'owner' => 'Ägare', 'group' => 'Grupp', 'other' => 'Andra', 'create' => 'Skapa', 'copy' => 'Kopiera', 'copyto' => 'kopiera till', 'move' => 'flytta', 'moveto' => 'flytta till', 'delete' => 'radera', 'edit' => 'redigera', 'read' => 'läs', 'write' => 'skriv', 'exec' => 'exekvera', 'change' => 'ändra', 'upload' => 'Ladda upp', 'configure' => 'konfigurera', 'yes' => 'ja', 'no' => 'nej', 'back' => 'tillbaks', 'setperms' => 'set filattribut', 'readingerror' => 'kunde inte läsa från 1', 'permsset' => 'Rättigheterna för 1 sattes till 2.', 'permsnotset' => 'Rättigheterna för 1 kunde inte ändras.', 'uploaded' => '1 har laddats upp till 2.', 'notuploaded' => 'Fel vid uppladdning av 1 till 2.', 'moved' => '1 har flyttats till 2.', 'notmoved' => 'Kunde inte flytta 1 till 2.', 'copied' => '1 har kopierats till 2.', 'notcopied' => 'Kunde inte kopiera 1 till 2.', 'created' => '1 har skapats.', 'notcreated' => 'Kunde inte skapa 1.', 'deleted' => '1 har raderats.', 'notdeleted' => 'Kunde inte radera 1.', 'suredelete' => 'Skall 1 verkligen raderas?', 'saved' => '1 har sparats.', 'notsaved' => 'Kunde inte spara 1.', 'reset' => 'återställ', 'clear' => 'rensa', 'save' => 'spara', 'cantbeshown' => 'Kan inte visa 1.', 'sourceof' => 'källa till 1', 'notopened' => 'Kunde inte öppna 1', 'addauth' => 'Lägg till grundläggande autenticering (basic-authentication)', 'username' => 'Användarnamn', 'password' => 'Lösenord', 'add' => 'Lägg till', 'treeon' => 'Aktivera trädvy', 'treeoff' => 'Stäng av trävy', 'symlink' => 'Symbolisk länk', 'createsymlink' => 'skapa länk', 'target' => 'Mål', 'reltarget' => 'Relativ väg till mål', 'alreadyexists' => 'En fil med detta namn finns redan', 'overwrite' => 'Skriva över 1?', 'samefiles' => '1 och 2 är identiska.' ); case 'pt-br': return array( 'dir' => 'Diretório', 'file' => 'Arquivo', 'filename' => 'Nome do arquivo', 'size' => 'Tamanho', 'permission' => 'Permissão', 'functions' => 'Funções', 'owner' => 'Proprietário', 'group' => 'Grupo', 'other' => 'Outros', 'create' => 'criar', 'copy' => 'copiar', 'copyto' => 'copiar para', 'move' => 'mover', 'moveto' => 'mover para', 'delete' => 'deletar', 'edit' => 'editar', 'read' => 'ler', 'write' => 'escrever', 'exec' => 'executar', 'change' => 'alterar', 'upload' => 'upload', 'configure' => 'configurar', 'yes' => 'sim', 'no' => 'não', 'back' => 'voltar', 'setperms' => 'setar permissão', 'readingerror' => 'Erro durante leitura de 1', 'permsset' => 'A permissão de 1 foi alterada para 2.', 'permsnotset' => 'A permissão de 1 não pôde ser alterada.', 'uploaded' => '1 foi copiado com sucesso para 2.', 'notuploaded' => 'Erro durante a cópia de 1 para 2.', 'moved' => '1 foi movido com sucesso para 2.', 'notmoved' => '1 não pôde ser movido para 2.', 'copied' => '1 foi copiado com sucesso para 2.', 'notcopied' => '1 não pôde ser copiado para 2.', 'created' => '1 foi criado com sucesso.', 'notcreated' => '1 não pôde ser criado.', 'deleted' => '1 foi deletado com sucesso.', 'notdeleted' => '1 não pôde ser deletado.', 'suredelete' => 'Deseja realmente deletar 1?', 'saved' => '1 foi salvo com sucesso.', 'notsaved' => '1 não pôde ser salvo.', 'reset' => 'reiniciar', 'clear' => 'limpar', 'save' => 'salvar', 'cantbeshown' => '1 não pôde ser exibido.', 'sourceof' => 'fonte de 1', 'notopened' => '1 não pôde ser aberto', 'addauth' => 'add basic-authentification', 'username' => 'Usuário', 'password' => 'Senha', 'add' => 'adicionar', 'treeon' => 'Ativar exibição em árvore', 'treeoff' => 'Desativar exibição em árvore', 'symlink' => 'Link simbólico', 'createsymlink' => 'criar link', 'target' => 'Caminho', 'reltarget' => 'Caminho para onde apontar', 'alreadyexists' => 'Esse arquivo já existe.', 'overwrite' => 'Sobre escrever 1?', 'samefiles' => '1 e 2 são iguais.' ); case 'es': return array( 'dir' => 'Directorio', 'file' => 'Archivo', 'filename' => 'Nombre de Archivo', 'size' => 'Tamaño', 'permission' => 'Permisos', 'functions' => 'Funciones', 'owner' => 'Propietario', 'group' => 'Grupo', 'other' => 'Otro', 'create' => 'Crear', 'copy' => 'Copiar', 'copyto' => 'Copiar a', 'move' => 'Mover', 'moveto' => 'Mover a', 'delete' => 'Borrar', 'edit' => 'Editar', 'read' => 'Leer', 'write' => 'Escribir', 'exec' => 'Ejecutar', 'change' => 'Cambiar', 'upload' => 'Subir', 'configure' => 'Configurar', 'yes' => 'Sí', 'no' => 'No', 'back' => 'Volver', 'setperms' => 'Establecer Permisos', 'readingerror' => 'Error al leer de 1', 'permsset' => 'Los permisos de 1 serán establecidos a 2.', 'permsnotset' => 'Los permisos de 1 no pueden establecerse.', 'uploaded' => '1 ha sido subido a 2.', 'notuploaded' => 'Error al subir de 1 a 2.', 'moved' => '1 ha sido movido a 2.', 'notmoved' => '1 no ha podido ser movido a 2.', 'copied' => '1 ha sido copiado a 2.', 'notcopied' => '1 no ha podido ser copiado a 2.', 'created' => '1 ha sido creado.', 'notcreated' => '1 no ha podido ser creado.', 'deleted' => '1 ha sido borrado.', 'notdeleted' => '1 no ha podido ser borrado.', 'suredelete' => '¿Borrar 1?', 'saved' => '1 ha sido guardado.', 'notsaved' => '1 no ha podido ser guardado.', 'reset' => 'Resetear', 'clear' => 'Limpiar', 'save' => 'Guardar', 'cantbeshown' => "1 no puede ser mostrado.", 'sourceof' => 'origen de 1', 'notopened' => "1 no puede ser abierto.", 'addauth' => 'Añadir Autentificación Básica', 'username' => 'Usuario', 'password' => 'Contraseña', 'add' => 'Añadir', 'treeon' => 'Activar vista en árbol', 'treeoff' => 'Desactivar vista en árbol', 'symlink' => 'Enlace Simbólico', 'createsymlink' => 'Crear Enlace', 'target' => 'Destino', 'reltarget' => 'Ruta relativa al destino', 'alreadyexists' => 'Este archivo ya existe.', 'overwrite' => '¿Sobrescribir 1?', 'samefiles' => '1 y 2 son idénticos.' ); case 'da': return array( 'dir' => 'Mappe', 'file' => 'Fil', 'filename' => 'Filnavn', 'size' => 'Størrelse', 'permission' => 'Rettigheder', 'functions' => 'Funktioner', 'owner' => 'Ejer (owner)', 'group' => 'Gruppe (group)', 'other' => 'Alle (other)', 'create' => 'Opret', 'copy' => 'Kopier', 'copyto' => 'Kopier til', 'move' => 'Flyt', 'moveto' => 'Flyt til', 'delete' => 'Slet', 'edit' => 'Ret', 'read' => 'Læs (read)', 'write' => 'Skriv (write)', 'exec' => 'Eksekver (execute)', 'change' => 'Skift', 'upload' => 'Upload', 'configure' => 'Konfigurer', 'yes' => 'Ja', 'no' => 'Nej', 'back' => 'Tilbage', 'setperms' => 'Sæt rettigheder', 'readingerror' => 'Fejl under indlæsning af 1', 'permsset' => 'Rettighederne for 1 er blevet sat til 2.', 'permsnotset' => 'Rettighederne for 1 kunne ikke sættes.', 'uploaded' => '1 er blevet uploadet til 2.', 'notuploaded' => 'Fejl under upload af 1 til 2.', 'moved' => '1 er blevet flyttet til 2.', 'notmoved' => '1 kunne ikke flyttes til 2.', 'copied' => '1 er blevet kopieret til 2.', 'notcopied' => '1 kunne ikke kopieres til 2.', 'created' => '1 er blevet oprettet.', 'notcreated' => '1 kunne ikke oprettes.', 'deleted' => '1 er blevet slettet.', 'notdeleted' => '1 kunne ikke slettes.', 'suredelete' => 'Vil du virkelig slette 1?', 'saved' => '1 er blevet gemt.', 'notsaved' => '1 kunne ikke gemmes.', 'reset' => 'Nulstil', 'clear' => 'Slet', 'save' => 'Gem', 'cantbeshown' => "1 kan ikke vises.", 'sourceof' => 'Kildekode af 1', 'notopened' => "1 kunne ikke åbnes", 'addauth' => 'Tilføj grundlæggende beskyttelse (basic-authentication)', 'username' => 'Brugernavn', 'password' => 'Password', 'add' => 'Tilføj', 'treeon' => 'Aktivér treeview', 'treeoff' => 'Deaktiver treeview', 'symlink' => 'Symbolic link', 'createsymlink' => 'Opret link', 'target' => 'Target', 'reltarget' => 'Relativ sti til target', 'alreadyexists' => 'Denne fil eksisterer allerede.', 'overwrite' => 'Overskriv 1?', 'samefiles' => '1 og 2 er identiske.' ); case 'en': return array( 'dir' => 'Directory', 'file' => 'File', 'filename' => 'Filename', 'size' => 'Size', 'permission' => 'Permission', 'functions' => 'Functions', 'owner' => 'Owner', 'group' => 'Group', 'other' => 'Other', 'create' => 'create', 'copy' => 'copy', 'copyto' => 'copy to', 'move' => 'move', 'moveto' => 'move to', 'delete' => 'delete', 'edit' => 'edit', 'read' => 'read', 'write' => 'write', 'exec' => 'execute', 'change' => 'change', 'upload' => 'upload', 'configure' => 'configure', 'yes' => 'yes', 'no' => 'no', 'back' => 'back', 'setperms' => 'set permission', 'readingerror' => 'Error during read of 1', 'permsset' => 'The permission of 1 were set to 2.', 'permsnotset' => 'The permission of 1 could not be set.', 'uploaded' => '1 has been uploaded to 2.', 'notuploaded' => 'Error during upload of 1 to 2.', 'moved' => '1 has been moved to 2.', 'notmoved' => '1 could not be moved to 2.', 'copied' => '1 has been copied to 2.', 'notcopied' => '1 could not be copied to 2.', 'created' => '1 has been created.', 'notcreated' => '1 could not be created.', 'deleted' => '1 has been deleted.', 'notdeleted' => '1 could not be deleted.', 'suredelete' => 'Really delete 1?', 'saved' => '1 has been saved.', 'notsaved' => '1 could not be saved.', 'reset' => 'reset', 'clear' => 'clear', 'save' => 'save', 'cantbeshown' => "1 can't be shown.", 'sourceof' => 'source of 1', 'notopened' => "1 couldn't be opened", 'addauth' => 'add basic-authentification', 'username' => 'Username', 'password' => 'Password', 'add' => 'add', 'treeon' => 'Enable treeview', 'treeoff' => 'Disable treeview', 'symlink' => 'Symbolic link', 'createsymlink' => 'create link', 'target' => 'Target', 'reltarget' => 'Relative path to target', 'alreadyexists' => 'This file already exists.', 'overwrite' => 'Overwrite 1?', 'samefiles' => '1 and 2 are identical.' ); } } ?>