From ae5dcca69cfcdac2d88c346a4e2330dfe32f4f96 Mon Sep 17 00:00:00 2001 From: Matt Burchett Date: Tue, 31 Dec 2013 11:31:21 -0600 Subject: [PATCH] Added PHP directory listing --- files/.bzr/README | 3 + files/.bzr/branch-format | 1 + files/.bzr/branch/branch.conf | 1 + files/.bzr/branch/format | 1 + files/.bzr/branch/last-revision | 1 + files/.bzr/branch/tags | 0 files/.bzr/checkout/conflicts | 1 + files/.bzr/checkout/dirstate | Bin 0 -> 17436 bytes files/.bzr/checkout/format | 1 + files/.bzr/checkout/views | 0 files/.bzr/repository/format | 1 + .../68ee712b13e0e7f57440eba88983470f.cix | Bin 0 -> 189 bytes .../68ee712b13e0e7f57440eba88983470f.iix | Bin 0 -> 146 bytes .../68ee712b13e0e7f57440eba88983470f.rix | Bin 0 -> 146 bytes .../68ee712b13e0e7f57440eba88983470f.six | 5 + .../68ee712b13e0e7f57440eba88983470f.tix | Bin 0 -> 1407 bytes files/.bzr/repository/pack-names | Bin 0 -> 140 bytes .../68ee712b13e0e7f57440eba88983470f.pack | Bin 0 -> 59480 bytes files/.htaccess | 8 + files/.pdirl/config.php | 109 +++ files/.pdirl/guifunctions.php | 357 ++++++++ files/.pdirl/icons/default/asc.gif | Bin 0 -> 841 bytes files/.pdirl/icons/default/audio.png | Bin 0 -> 951 bytes files/.pdirl/icons/default/back.png | Bin 0 -> 955 bytes files/.pdirl/icons/default/default.png | Bin 0 -> 850 bytes files/.pdirl/icons/default/desc.gif | Bin 0 -> 839 bytes files/.pdirl/icons/default/directory.png | Bin 0 -> 680 bytes files/.pdirl/icons/default/home-disabled.png | Bin 0 -> 883 bytes files/.pdirl/icons/default/home.png | Bin 0 -> 920 bytes files/.pdirl/icons/default/image.png | Bin 0 -> 900 bytes files/.pdirl/icons/default/locked.png | Bin 0 -> 430 bytes files/.pdirl/icons/default/package.png | Bin 0 -> 695 bytes .../.pdirl/icons/default/parent-disabled.png | Bin 0 -> 824 bytes files/.pdirl/icons/default/parent.png | Bin 0 -> 877 bytes files/.pdirl/icons/default/program.png | Bin 0 -> 1044 bytes files/.pdirl/icons/default/reload.png | Bin 0 -> 1364 bytes files/.pdirl/icons/default/search.png | Bin 0 -> 825 bytes files/.pdirl/icons/default/text.png | Bin 0 -> 523 bytes files/.pdirl/icons/default/video.png | Bin 0 -> 1343 bytes files/.pdirl/icons/default/web.png | Bin 0 -> 1158 bytes .../languages/cs/LC_MESSAGES/default.mo | Bin 0 -> 2280 bytes .../languages/cs/LC_MESSAGES/default.po | 135 ++++ .../languages/da/LC_MESSAGES/default.mo | Bin 0 -> 1616 bytes .../languages/da/LC_MESSAGES/default.po | 133 +++ .../languages/de/LC_MESSAGES/default.mo | Bin 0 -> 2387 bytes .../languages/de/LC_MESSAGES/default.po | 134 +++ files/.pdirl/languages/default.pot | 128 +++ .../languages/el/LC_MESSAGES/default.mo | Bin 0 -> 2708 bytes .../languages/el/LC_MESSAGES/default.po | 135 ++++ .../languages/en_GB/LC_MESSAGES/default.mo | Bin 0 -> 2218 bytes .../languages/en_GB/LC_MESSAGES/default.po | 131 +++ .../languages/es/LC_MESSAGES/default.mo | Bin 0 -> 2301 bytes .../languages/es/LC_MESSAGES/default.po | 135 ++++ .../languages/fr/LC_MESSAGES/default.mo | Bin 0 -> 2314 bytes .../languages/fr/LC_MESSAGES/default.po | 133 +++ .../languages/hu/LC_MESSAGES/default.mo | Bin 0 -> 2304 bytes .../languages/hu/LC_MESSAGES/default.po | 135 ++++ .../languages/it/LC_MESSAGES/default.mo | Bin 0 -> 2303 bytes .../languages/it/LC_MESSAGES/default.po | 133 +++ .../languages/nl/LC_MESSAGES/default.mo | Bin 0 -> 2232 bytes .../languages/nl/LC_MESSAGES/default.po | 135 ++++ .../languages/pl/LC_MESSAGES/default.mo | Bin 0 -> 2278 bytes .../languages/pl/LC_MESSAGES/default.po | 135 ++++ .../languages/ro/LC_MESSAGES/default.mo | Bin 0 -> 2302 bytes .../languages/ro/LC_MESSAGES/default.po | 133 +++ .../languages/ru/LC_MESSAGES/default.mo | Bin 0 -> 2599 bytes .../languages/ru/LC_MESSAGES/default.po | 135 ++++ .../languages/tr/LC_MESSAGES/default.mo | Bin 0 -> 2196 bytes .../languages/tr/LC_MESSAGES/default.po | 135 ++++ .../languages/zh_CN/LC_MESSAGES/default.mo | Bin 0 -> 2205 bytes .../languages/zh_CN/LC_MESSAGES/default.po | 135 ++++ files/.pdirl/pdlc.class.php | 760 ++++++++++++++++++ files/.pdirl/templates/default/index.php | 114 +++ files/.pdirl/templates/default/style.css | 101 +++ 74 files changed, 3604 insertions(+) create mode 100644 files/.bzr/README create mode 100644 files/.bzr/branch-format create mode 100644 files/.bzr/branch/branch.conf create mode 100644 files/.bzr/branch/format create mode 100644 files/.bzr/branch/last-revision create mode 100644 files/.bzr/branch/tags create mode 100644 files/.bzr/checkout/conflicts create mode 100644 files/.bzr/checkout/dirstate create mode 100644 files/.bzr/checkout/format create mode 100644 files/.bzr/checkout/views create mode 100644 files/.bzr/repository/format create mode 100644 files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.cix create mode 100644 files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.iix create mode 100644 files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.rix create mode 100644 files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.six create mode 100644 files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.tix create mode 100644 files/.bzr/repository/pack-names create mode 100644 files/.bzr/repository/packs/68ee712b13e0e7f57440eba88983470f.pack create mode 100644 files/.htaccess create mode 100644 files/.pdirl/config.php create mode 100644 files/.pdirl/guifunctions.php create mode 100644 files/.pdirl/icons/default/asc.gif create mode 100644 files/.pdirl/icons/default/audio.png create mode 100644 files/.pdirl/icons/default/back.png create mode 100644 files/.pdirl/icons/default/default.png create mode 100644 files/.pdirl/icons/default/desc.gif create mode 100644 files/.pdirl/icons/default/directory.png create mode 100644 files/.pdirl/icons/default/home-disabled.png create mode 100644 files/.pdirl/icons/default/home.png create mode 100644 files/.pdirl/icons/default/image.png create mode 100644 files/.pdirl/icons/default/locked.png create mode 100644 files/.pdirl/icons/default/package.png create mode 100644 files/.pdirl/icons/default/parent-disabled.png create mode 100644 files/.pdirl/icons/default/parent.png create mode 100644 files/.pdirl/icons/default/program.png create mode 100644 files/.pdirl/icons/default/reload.png create mode 100644 files/.pdirl/icons/default/search.png create mode 100644 files/.pdirl/icons/default/text.png create mode 100644 files/.pdirl/icons/default/video.png create mode 100644 files/.pdirl/icons/default/web.png create mode 100644 files/.pdirl/languages/cs/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/cs/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/da/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/da/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/de/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/de/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/default.pot create mode 100644 files/.pdirl/languages/el/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/el/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/en_GB/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/en_GB/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/es/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/es/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/fr/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/fr/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/hu/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/hu/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/it/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/it/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/nl/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/nl/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/pl/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/pl/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/ro/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/ro/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/ru/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/ru/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/tr/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/tr/LC_MESSAGES/default.po create mode 100644 files/.pdirl/languages/zh_CN/LC_MESSAGES/default.mo create mode 100644 files/.pdirl/languages/zh_CN/LC_MESSAGES/default.po create mode 100644 files/.pdirl/pdlc.class.php create mode 100644 files/.pdirl/templates/default/index.php create mode 100644 files/.pdirl/templates/default/style.css diff --git a/files/.bzr/README b/files/.bzr/README new file mode 100644 index 0000000..f82dc1c --- /dev/null +++ b/files/.bzr/README @@ -0,0 +1,3 @@ +This is a Bazaar control directory. +Do not change any files in this directory. +See http://bazaar.canonical.com/ for more information about Bazaar. diff --git a/files/.bzr/branch-format b/files/.bzr/branch-format new file mode 100644 index 0000000..9eb09b7 --- /dev/null +++ b/files/.bzr/branch-format @@ -0,0 +1 @@ +Bazaar-NG meta directory, format 1 diff --git a/files/.bzr/branch/branch.conf b/files/.bzr/branch/branch.conf new file mode 100644 index 0000000..cf5454a --- /dev/null +++ b/files/.bzr/branch/branch.conf @@ -0,0 +1 @@ +push_location = http://bazaar.launchpad.net/~zuwig/pdirl/dev-1.0/ diff --git a/files/.bzr/branch/format b/files/.bzr/branch/format new file mode 100644 index 0000000..dc392f4 --- /dev/null +++ b/files/.bzr/branch/format @@ -0,0 +1 @@ +Bazaar Branch Format 7 (needs bzr 1.6) diff --git a/files/.bzr/branch/last-revision b/files/.bzr/branch/last-revision new file mode 100644 index 0000000..bd5509a --- /dev/null +++ b/files/.bzr/branch/last-revision @@ -0,0 +1 @@ +1 zuwig-20120516232456-kcaglp2jk1vzqwz1 diff --git a/files/.bzr/branch/tags b/files/.bzr/branch/tags new file mode 100644 index 0000000..e69de29 diff --git a/files/.bzr/checkout/conflicts b/files/.bzr/checkout/conflicts new file mode 100644 index 0000000..0dc2d3a --- /dev/null +++ b/files/.bzr/checkout/conflicts @@ -0,0 +1 @@ +BZR conflict list format 1 diff --git a/files/.bzr/checkout/dirstate b/files/.bzr/checkout/dirstate new file mode 100644 index 0000000000000000000000000000000000000000..17edd5e12c033976e28fc50f8930bf12e978d588 GIT binary patch literal 17436 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 CnGb>h literal 0 HcmV?d00001 diff --git a/files/.bzr/checkout/format b/files/.bzr/checkout/format new file mode 100644 index 0000000..e0261c7 --- /dev/null +++ b/files/.bzr/checkout/format @@ -0,0 +1 @@ +Bazaar Working Tree Format 6 (bzr 1.14) diff --git a/files/.bzr/checkout/views b/files/.bzr/checkout/views new file mode 100644 index 0000000..e69de29 diff --git a/files/.bzr/repository/format b/files/.bzr/repository/format new file mode 100644 index 0000000..b200528 --- /dev/null +++ b/files/.bzr/repository/format @@ -0,0 +1 @@ +Bazaar repository format 2a (needs bzr 1.16 or later) diff --git a/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.cix b/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.cix new file mode 100644 index 0000000000000000000000000000000000000000..ae2fdcc173f7c48cb392b488631a1fea10b809c2 GIT binary patch literal 189 zcmZ?L4k=1aRd6p#EXYvs%u7kFP%z@k%TGy-FG@{|&&ez%1*6}Pt8fqP0a&x z4Y_hs^K6Z{it@|jfvohB43JpG9Mv<{d`yNs3>Vja7qM)5d&FLaZ}N>k4UGv49)4Tn zVtjY@`R}3M)6drKlNZj{@ct(E;`{@cwc p@zF9D?U{1+vN)@jV~eZG3xTxVHqGA3@-@5xH{bkWjL%Ve4gfv&O;rE@ literal 0 HcmV?d00001 diff --git a/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.iix b/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.iix new file mode 100644 index 0000000000000000000000000000000000000000..271eb8248fd7a6466f21a2a184c09004a3e477e0 GIT binary patch literal 146 zcmZ?L4k=1aRd6p#EXYvs%u7kFP%z@k%TGy-FG@{|&&ezE*M2 sem>_l4Njdh(^;*hv)(8r!CE*M2 sem>_l4Njdh(^;*hv)(8r!CvX#fBK literal 0 HcmV?d00001 diff --git a/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.six b/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.six new file mode 100644 index 0000000..a2afde6 --- /dev/null +++ b/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.six @@ -0,0 +1,5 @@ +B+Tree Graph Index 2 +node_ref_lists=0 +key_elements=1 +len=0 +row_lengths= diff --git a/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.tix b/files/.bzr/repository/indices/68ee712b13e0e7f57440eba88983470f.tix new file mode 100644 index 0000000000000000000000000000000000000000..9d6276a3c7b2ef1744c15a710d9effbd09172fde GIT binary patch literal 1407 zcmV-_1%UcOD^zl2Wgtg#VQ^?5Np56icpx$gZf|5|Uvgz;Uu-%)v&cp4n$Y3vmK{WIb!4RO@ZO*6Nw11or^CAP>qk=>+^%$^F z7_%5=e!EQj!)=k0y%3a;r3VS6lVqJ-7i(ki7LPF~^+;AbblYLMGPsY;$&US5d0ejS zp1NjDUxjzW{kS}BaF3gbF|?K^|5)ts{9pOUm-8Y)+yqlJm{X{l5-C6v#(jqwqupTv zEVc~5O_bm_g%2HPmftqW?BK5~&CEZJHp>VDFRH9?8wDhxxD{_58slD#le<+q=0&A8>4*ryQc z-Dhq>xV6Wmwp*2*!YIgX<8o_HwhbloF@20HwNR2!$S>9sMpZ-7z zds`l>li9?dF5~8QzP$OO%$@(FXuFa^xtKP*ZajV8ua_HXi5L8{j*X7Z+I?~+urXgh?#mT0`)U3#O^R%i^j_g_p)M_8|>D_ z(hRFb;^F)<`aI-c?#!!NK4nWANENZ2uEY8`Zha`XGyuuAy9_1aQTpR0zZD308+ z(79$CSr}~V$4fjra6Y}TZF!C}*bUeSmC%k$q)Ru19+vGfeM6IL;Gks+l1nGcSQ)Px zRPZ&FPGvL+CCzzGzzblp@YG77%;ik$xXoYO3!u}uwfdmcB@o}9Jg1NZ;eF6fQ;&qf zA27H~rb_|`DydEAlEA~1&STUg(Q;)=-6a8g2Zznj*NX-o;4LV0$pRY zr};j`bve!{-w^k>r+TSmgAg(G`y8T-9gZ=6qL(VcE~p#{b8{;9!v@bPY1*)71;T#} z1ZyOR8(G4Q_!DVLQUseW35NZfH<`*ZT^>vr_4dOXXoI_sDm)T;!MrC$88IoC##rZrajd>AcsGpYeJQ+Wq#x2WKA!a@!Jm1B zV*Vzj3g!`?zwRSAQuy_xoa0nTqSQ%SH>5gyE7+|#`_tvP>8tL8@OG2UKKOU?IgKg4 zW2J%XFCFm+c@xUEc@}xSmTd;&X2VDP`|fzbszE5>ZlkTE<3@qZ!}ap|s!T7Cym@ z{Q;1s3YqtbDZC*iD|5ZhfV}zhfub+__MvC&f$VT{v9aQSz0TG;QU|wK4_v3kz|cu_ NJ^E3TRyQO@ejMNZz>EL@ literal 0 HcmV?d00001 diff --git a/files/.bzr/repository/pack-names b/files/.bzr/repository/pack-names new file mode 100644 index 0000000000000000000000000000000000000000..acc14dc72028b0500d8bae2a3912d71ddd7cfd42 GIT binary patch literal 140 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 + * If something's not working, remove the both slashes before error_reporting and report the bug to: + * + */ +//error_reporting(E_ALL); + +$conf = array ( + + /* Language must be in ISO 639 format + * e.g. for French type 'fr_FR', for Italian 'it_IT' or for Simplified Chinese 'zh_CN' etc. + * If you are running pdirl on ubuntu, run "sudo locale-gen xx_YY.UTF-8", xx = Language, YY = Country + * If you want to use English, fill in 'en_GB' or leave the field blank ''. */ + 'language' => 'en_GB', + + /* The domain that will be shown in the title and the breadcrumb navigation. + * You can fill in something like "files.yoursite.org" + * Leave it blank to automaticly detect the host with $_SERVER['HTTP_HOST'] */ + 'host' => '', + + 'ignore' => array( // files/directories pdirl should ignore + "index.php", + ".htaccess", + ".pdirl" + ), + + 'listhidden' => '', // Show hidden files + + 'searchenabled' => '', + + 'searchtag' => '', // Search string, leave it blank it will change through user input. + + /* What does "case-sensitive" mean? + * If you search for "a", you will get in a case-insensitive search "amarok" and "Amarok", + * in a case-sensitive only "amarok". Case sensitive means that you have to mind the capitalization. + * Default value is case-insensitive, $conf['searchcasesensitive'] = false;. */ + 'searchcasesensitive' => '', + + 'searchhidden' => '', // Show hidden files in search + + /* do not check size and modification date of a directory, + * but just the number of elements in it + * it is on by default */ + 'countelements' => '', + + /* How pdirl should sort the files. + * You can sort according to: + * file/directory name - 'name' + * path - 'path' + * location - 'location' + * size - 'bytes' + * last modification time - 'mtime' + * type - 'type' + * Sorting order: + * ascending - 'SORT_ASC' + * descending - 'SORT_DESC' + * regular - 'SORT_REGULAR' + * numeric (strings, too) - 'SORT_NUMERIC' + * as a string (intergers, too) - 'SORT_STRING' + * + * default: array('key' => 'name', 'sort' => 'SORT_ASC') + */ + 'sort' => '', + + /* Allow the user to sort elements + * on by default + */ + 'usersort' => '', + + /* Why the hell are MIME-types and extensions mixed here? + * Because it's the fastest and simpliest way and very often the MIME-type part after the slash is the same as the file extension. + * e.g. application/zip and .zip */ + 'types' => array ( + 'text' => array('ppt', 'pptx', 'doc', 'docx', 'txt', 'rtf', 'odf', 'odt', 'ods', 'odp', 'odg', 'odc', 'odi', 'nfo', 'xml', 'pdf', 'x-office-document'), + 'package' => array('7z', 'dmg', 'rar', 'sit', 'zip', 'bzip', 'gz', 'tar', 'deb', 'bz2', 'bz', 'x-compressed-tar', 'iso'), + 'program' => array('exe', 'msi', 'mse', 'sh', 'bat', 'x-executable', 'x-ms-dos-executable'), + 'web' => array('js', 'html', 'htm', 'xhtml', 'tpl', 'jsp', 'asp', 'aspx', 'php', 'css'), + 'video' => array('x-shockwave-flash', 'mv4', 'bup', 'mkv', 'ifo', 'flv', 'vob', '3g2', 'bik', 'xvid', 'divx', 'wmv', 'avi', '3gp', 'mp4', 'mov', '3gpp', '3gp2', 'swf', 'ogv'), + 'audio' => array('spx', 'ogg', 'oga', 'mp3', 'wav', 'midi', 'mid', 'aac', 'wma', 'xm'), + 'image' => array('ai', 'bmp', 'eps', 'gif', 'ico', 'jpg', 'jpeg', 'png', 'psd', 'psp', 'raw', 'tga', 'tif', 'tiff'), + ), + + 'template' => '', // The template for pdirl, default value is 'default' ;-) + + 'icons' => '', // Which icons to use, default value is 'default' + + /* + * modrewrite makes more readable URLs. + * If you leave it blank, pdirl detects if its turned on and activates nicer urls + */ + 'modrewrite' => '', + +// /* The directory you want to list. +// * You can fill in something like "downloads/" or leave it blank (default). +// * If you leave it blank it will dynamicly select the directory that the user requested. +// * It is as I think tecnically impossible to implement a redirection like "/test" to "downloads/test" +// * because you can't implement variables of the config into htaccess */ +// 'directory' => 'examples/', + +// 'scriptpath' => '', // Relative path to this script +) +?> \ No newline at end of file diff --git a/files/.pdirl/guifunctions.php b/files/.pdirl/guifunctions.php new file mode 100644 index 0000000..78376e6 --- /dev/null +++ b/files/.pdirl/guifunctions.php @@ -0,0 +1,357 @@ + 'en_GB', + 'template' => 'default', + 'icons' => 'default', + ); + // replace empty configuration variables with the default ones + return $GLOBALS['pdlc'] -> configuration($configuration, + $default); + } + + function modRewriteRedirect () { + if(!empty($_GET['gosearch'])) { + if ($GLOBALS['pdlc'] -> modRewrite) + header('Location: http://'. host() . + dirname($_SERVER['REQUEST_URI']) . + '/search:'. $_GET['gosearch']); + else + header('Location: http://' . + host() . + dirname($_SERVER['REQUEST_URI']) . + '/?directory=' . + @$_GET['directory'] . + '&search='. $_GET['gosearch']); + } + } + + function setLanguage($language) { + /* + * Sets the language from the configuration to use with gettext. + * Thanks to + */ + // Set language + setlocale(LC_ALL, $language.'.utf8'); + putenv('LANG='.$language.'.utf8'); + // Specify location of translation tables + bindtextdomain('default', './.pdirl/languages/'); + bind_textdomain_codeset('default', 'UTF-8'); + // Select domain + textdomain('default'); + return true; + } + + +// Views were planned for the 1.0 series, but I think, it would be better if +// I don't build so much features in pdirl-1.0, but fix some security relevant +// problems ;-) So you get the view features maybe in some 1.1.x version + /** + * Returns the current view. + * @param object $viewConfiguration [optional] + * @return string + */ + function getView($viewConfiguration = false) { +// if ($viewConfiguration === '') { +// if (!empty($_POST['view'])) { +// setcookie('view', htmlspecialchars($_POST['view']), time() + 60 * 60 * 24 * 7, dirname($_SERVER['SCRIPT_NAME'].'/')); +// return htmlspecialchars($_POST['view']); +// } elseif (!empty($_COOKIE['view'])) { +// return $_COOKIE['view']; +// } else { +// return $this -> defaultView; +// } +// } else { +// return $this -> view; +// } + } + + + /** + * Sets the view. + * @param object $view + * @return + */ + function setView($view) { +// if (setcookie('view', htmlspecialchars($view), time() + 60 * 60 * 24 * 7, dirname($_SERVER['SCRIPT_NAME'].'/'))) +// return true; +// else +// return false; + } + + /** + * Converts bytes to a more readable format. ex. '3,21 KB' + * @link http://us3.php.net/manual/en/function.filesize.php#84652 + * @author + * @param interger $size + * @param interger $precision [optional] + * @return array + */ + function sizeReadable ($size, $precision = 0) { + $sizes = array('YB', 'ZB', 'EB', 'PB', 'TB', 'GB', 'MB', 'KB', 'B'); + $total = count($sizes); + /* + * $total is the number how often while was executed. + * If you have 10 units and while was executed 3 times, $total is 7. + */ + while($total-- && $size > 1024) + $size /= 1024; + $return['number'] = round($size, $precision); + $return['unit'] = $sizes[$total]; + return $return; + } + + + /** + * Returns time left from supplied date ex. '3 days ago' etc. + * @author + * @link http://us.php.net/manual/en/function.time.php + * @param interger $timestamp + * @return string + */ + function lastModificationReadable($timestamp) { + $current = time(); + $difference = $current - $timestamp; + $lengths = array(1, 60, 3600, 86400, 604800, 2630880, 31570560); + for ($val = sizeof($lengths) - 1; ($val >= 0) && (($number = $difference / $lengths[$val]) <= 1); $val--); + if ($val < 0) $val = 0; + $new_time = $current - ($difference % $lengths[$val]); + if (floor($number) == 1) + $periods = array('second', 'minute', 'hour', 'day', 'week', 'month', 'year'); + else + $periods = array('seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'years'); + return sprintf(_('%d %s ago'), $number, _($periods[$val])); + } + + + /** + * Returns (linked) path navigation + * @param string $path + * @param boolean $link [optional] + * @return string + */ + function path($path=false, $link=false, $absolute=false) { +// if (!$path) +// $path = $_SERVER['REQUEST_URI']; + if ($path == $GLOBALS['pdlc'] -> getScriptPath()) + $path = dirname($path); + $path = explode('?', $path); + preg_match('/^(.*)?(search:([^|]+))?\|?(sort:(name|mtime|size)(:(asc|desc))?)?$/', $path[0], $match); + $path = $match[1]; + $path = str_replace('./', '', $path); + $dir_array = explode ("/", $path); + $counter = 1; + $path = ""; + foreach ($dir_array as $dir) { + if ($dir != "") { + $dir = htmlspecialchars(urldecode($dir)); + if ($link) { + $linkhref = implode("/", array_slice($dir_array, 0, $counter)); + if ($GLOBALS['pdlc'] -> modRewrite) { + if ($absolute) { + $linkhref = '/'.path(scriptPath()).$linkhref; + } + $path .= ''.$dir.'/'; + } else { + $path .= ''.$dir.'/'; + } + } else { + $path .= $dir."/"; + } + } + $counter++; + } + return $path; + } + + function goParent($path = false) { + if (!$path) + $path = currentDirectory(); + if (modRewriteActive()) { + return scriptDirectory()."/".currentDirectory()."/../.."; + } else { + $parentdir = dirname($path); + if ($parentdir == '.') + return "?directory="; + else + return "?directory=".$parentdir."/"; + } + } + + /** + * Seperates directories from files + * @param array $elements + * @return array + */ + function seperateDirectoriesAndFiles(&$elements) { + $directories = array(); + $files = array(); + if (is_array($elements)) { + foreach($elements as $element) { + if ($element['directory']) { + $directories[] = $element; + } else { + $files[] = $element; + } + } + } + // Sort directories by their number of elements not their bytes + if (sortKey() == 'bytes' && !empty($directories)) + $directories = sortElements($directories, array('key'=>'numberofelements', 'sort'=>sortOrder())); + $elements = array('directories' => $directories, 'files' => $files); + return true; + } + + + /** + * Adds human readable modfication time and size. + * @param array $elements + * @return array + */ + function addHumanInformation (&$elements) { + if (is_array($elements)) { + foreach ($elements as $key => $elementData) { + if ($elementData['readable']) { + $elements[$key]['sizer'] = sizeReadable($elementData['bytes']); + $elements[$key]['mtimer'] = lastModificationReadable($elementData['mtime']); + } + } + return true; + } else { + return false; + } + } + + + /** + * abbreviated form of %s', iconDirectory(), $icon, _($iconDesc)); + } + + /** + * translated filetype info + * @param string $type + * @return string + */ + function filetypeInfo ($type) { + $typesList = array ( + 'audio' => 'Audio file', + 'image' => 'Image file', + 'web' => 'Web document', + 'text' => 'Text document', + 'package' => 'Compressed package', + 'program' => 'Application', + 'directory' => 'Directory', + 'default' => 'Unknown file type', + ); + return _($typesList[$type]); + } + + + /** + * breadcumb navigation, $pdirlView -> path () doesn't return the actual directory in plain text format, but in slash-seperated links of directories. + * e.g. dir/anotherdir/blubb + * $pdirl -> getHost ($link) gives out the current hostname, if $link's true, it will give out a link + * A combination of getHost(1) and path() returns a breadcumb navigation + */ + function printBreadcrumb () { + $scriptDirPath = scriptDirectory(); + // path: bla/bla/blubb + $scriptDirPath = explode('/', $scriptDirPath); + // folder: blubb + $scriptFolder = array_pop($scriptDirPath); + // path: bla/bla/ + $scriptDirPath = implode('/', $scriptDirPath); + $breadcrumbPath = sprintf('%s/%s%s%s', + host($link = true), + path($scriptDirPath), + $scriptDirPath, + $scriptFolder, + path($scriptFolder), + path(currentDirectory(), true, true)); + + if (searchTag()) { + // It wil return "search for 'searchkeyword' in host/path + printf(_('Search for "%s" in %s'), searchTag(), $breadcrumbPath); + } else { + echo _('Directory listing for '), $breadcrumbPath; + } + } + + function sortLink($key, $text) { + if (userSortActive()) { + $sortlink = "'; + } else { + $sortlink = $text; + } + echo $sortlink; + } + + function currentTemplate() { + return $GLOBALS['GUIconf']['template']; + } + + function templateDirectory() { + return scriptDirectory().'/.pdirl/templates/'.currentTemplate(); + } + + function currentIcons() { + return $GLOBALS['GUIconf']['icons']; + } + + function iconDirectory() { + return scriptDirectory().'/.pdirl/icons/'.currentIcons(); + } + + function searchInput () { + if (searchTag()) + return searchTag(); + else + return _('Search...'); + } + + function host ($link = false) { + if ($link) { + return sprintf('%1$s', $GLOBALS['pdlc'] -> getHost($link)); + } else { + return $GLOBALS['pdlc'] -> getHost($link); + } + } + function searchTag() {return $GLOBALS['pdlc'] -> getSearchTag();} + function scriptPath() {return $GLOBALS['pdlc'] -> getScriptPath();} + function scriptDirectory() {return $GLOBALS['pdlc'] -> getScriptDirectory();} + function currentDirectory() {return $GLOBALS['pdlc'] -> getCurrentDirectory();} + function numberOfElements() {return $GLOBALS['pdlc'] -> getNumberOfElements();} + function totalSize() {return $GLOBALS['pdlc'] -> getTotalSize();} + function urlPath($path) {return $GLOBALS['pdlc'] -> urlPath($path);} + function sortOrder($r=false){return $GLOBALS['pdlc'] -> getSortOrder($r);} + function sortKey() {return $GLOBALS['pdlc'] -> getSortKey();} + function sortElements($elementsVar = false, $sortOptions = false){ + return $GLOBALS['pdlc'] -> sortElements($elementsVar, $sortOptions); + } + function userSortActive() {return $GLOBALS['pdlc'] -> isUserSortActive();} + function modRewriteActive() {return $GLOBALS['pdlc'] -> isModRewriteActive();} +?> \ No newline at end of file diff --git a/files/.pdirl/icons/default/asc.gif b/files/.pdirl/icons/default/asc.gif new file mode 100644 index 0000000000000000000000000000000000000000..e93a5edb03c3e9226ec004fc8f63dde7dab5049d GIT binary patch literal 841 zcmcJOJ!+g`41{OFMRo(ZK+>d1<8&$<0x^KKpQd{!&vtNY#;5QRP)urOq-dqtYv_QeBL! zhzhT;3U#k%d6av(m8(ZB%c9K7tV|%4vJ@pRS&0N}puu98ZuOpy$n;FhRIeqA$nXry zP_v-uk?!f1t|mpVMVhBsn&8N2DpH=Z6kA~p7^GndEov+V8)&c?RtxH!@Cb`g>tijM zd$@(G<-&rZd6^^l@Bp$b|((m$~o}r!fFtv|}`Cu@XO^$uxGr3Bf3YHDHit5?b(JG1x$>Pt@I% z$q8{Wj6@%6$xQt?+ShUKE{+qn&EqQFJB)7Ehj%?X?C2v5g^e^w_e}+ba1{hzOYzg)aNI{d%C{Qh(Q(k}l8B`^iCA$YIF$SY4jedgVu$TS>p%pdqG)_WtpP#$; z6H(GDk`0TsV6Xl0h)E%Nz*xAi?(k99~!u^C_6x`aOv)I!VSY>F-MHU`vO(^0}F<8?=N-!f7_p%A5%0U7*r+p<*}j|j8@xj z-~OlpF+#Ne0gMsdxh2Z}V25DD_N`b00-7aZf5p**3Ot)#m&&@ZE+SI<64Uax(ZBjIb zN67O$i_t0KKv0`RGdDlcNRs%5h|W&L@!MZ|?QZok_*$)6s)h_ygYE$*i9J7gZ+-NU zho3fg9+^&ya)W$lm1g@}Iy)_52x3h%7|u*iPCWYL<1=>R$P`7nDcgB7TVDGN=Qr`* zOSV^Wj0_Ktq-LeP$ol3IF*=;@;GO5qQFWz&g Z{sJU`uR+$N!_EKz002ovPDHLkV1n;)xqtuw literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/back.png b/files/.pdirl/icons/default/back.png new file mode 100644 index 0000000000000000000000000000000000000000..93be3d1ee6b90843d7df0f517733f63ce72f4611 GIT binary patch literal 955 zcmV;s14R6ZP)b zl}%_|RTze!@0@e*&7V^HBN&Y|1&xTHg2tGcEZQg$sloamid{(QrYma`p)R6`8xe$x zE=)JAVs%lCB0?>;8x67IczQ|E_9Y~NZ8{U=yn5|bNt zZ{FN-`>T5f542e0(zO_A*m+=BT65yYyKmi^zpwkzroe@3VKxTmpO<#Qo$9}PN9Ubg z_Xgiie@@TlL5!nPUT}-K{lP!##V{MR`u1A(tAcYQ;T_gAofzD<^P1~6-C!rCJ_VE{ zO?Y9~Tg^rcf*`V-pKddeGBNcDMl99@d@*?#BMu`5 zYb=66M96P>ym1t{;b7mot2ey7qkmV+`Nb)IK6?gh0-Om*H6=|GtZ^8z_|#xB$4MHa zD6$$jKjIFyZ|rzxApcm)!!tZo00$ zhq5n{niALwE`qSx617;GS}jp)^&B)CQmI@XtfQKK{hHtR*X)JiW5*8{*M}YSbUs87 z1lYjfLPHRlDtrlQago7TL4k#H%e?#y8Bg9ja)0mkw!Y3Mr7-(3 zYAQUqh^+o!nj9Hs){H z=}ylcLsNMD&@1I~F^*P_E-*KL76XJLlGGgAOs=NizD)j@|COP{pFB8!alR|pGZbnf z#AOW%WB!5iMHYZ^rc$=oSgzquXnvZ7!rRH-LgDnu&rXb&7mKAv<@GDAIZiV9I`7ewn;fJhF#0jl@vQT*g_QU!iIgs_I1~i>lhOu8{-W_eYbl%HYh8>o&{o zBxWuf-PgfmU=b*(s!IKhkt#g^qHK3{6G$e_R6k`ID61~NDss8UR75P*@7&g@Hcf4! d1W0rh$lr11Sh~C<&aD6d002ovPDHLkV1hiw#cluq literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/default.png b/files/.pdirl/icons/default/default.png new file mode 100644 index 0000000000000000000000000000000000000000..80efaf5af175df727c4016c673dc29dd9dfe9d51 GIT binary patch literal 850 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 YZ=>v}zGvq^U;qFB07*qoM6N<$f<&0NlmGw# literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/package.png b/files/.pdirl/icons/default/package.png new file mode 100644 index 0000000000000000000000000000000000000000..dc76287383949c66297633fd7762422a4ca57c71 GIT binary patch literal 695 zcmV;o0!aOdP)Qa1E5Zt)vLhQ0DB`aST3f&kf`UfZlYcV^a zg)Veq1W^=`mLe32xap#;iV7`=x@arGT4M9Ocg981^wv~p>P|e1Vdls1ox{xU%)tMs zh43!Y33(Kl+9InxmC@4;;8key?iaFi6XbKtfB`@Xkg~ef5+H;?NP+OTf?LK8$9Z_; z^g6ikLN5+XQ(6AZX+M$Mnlq#@pt(^jA z2Lz*SC_Bi=a4!mAer^(ggB_RA**9P`#%NrlF~$X>>so!T-72}JA2{B{%*5k*LIp53 zlmy^X-+1l1wiYul2iL%^*30mg| ze`>GYt^v3HvM;WuGP-}G1~HvyukvGVyeV2_e+Ofa?vTo?6{>#UWc!1JBC)2xKHJ}* zZ2%5HWP4L!>EHH8umB7oDt002ovPDHLkV1oQuF)085 literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/parent-disabled.png b/files/.pdirl/icons/default/parent-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f18b2c96d279ed82e75111c36d3a5e48a46280 GIT binary patch literal 824 zcmV-81IPS{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXT6 z5djhmMUu4u00Ov4L_t(I%e9ohOIuMC$G_*^`(B>LXCc%I30Yh+WXTW$f-mlXkFX>Z@KiYcWz`d7y zKj+K2=Nw{YJcbE8l06z&-S?tpS)TwTZQEYm-QD&73)r%(_tVqUYeYlb-|vHn5R1hSxsQ6ie(Acd5gv_8Dc=IP3a;1d&#$G0 zrIgS#4X*1#*L4Un$Q(06N(t9>jYgwE4{m881RTeK5CWQ}K}rcC0yB?-{MD==B6yw$ zBEnF8s1$>-anD&n15-paN~YsD0DvF};QKy2&qELd(Kq8n6eA*aLvc8@v~aJ&HJBOM zYb zluc+{RTRg6=YG6-nK4FWENw9c#kNAwg^Z<6Qfw))AhxL#BepICrCGR3Y*ImRp({T? zTnLJSb>SjV3*th8NWh2|-MFv{h6ar?CQOCaPCGO2Slu7MmO%Abnk;~-!>l)Pfcm^zkmlP{Y%^L=sSi%YWmx|!0380>y~0* z!X3S>RDStj^=N5m&yix!t>xo;CxRE&i<7mwVsI>|6icO+%I^m*!Zwe4fYlJz4V3of(`Acij|t za8kNcXJ-!Yd!{F~EiPRA5oa9Mcz#{_o<>q_+~<$(9_igu z-fDhX`VMP+#~q09!@?JoZYj#ZgF{=4chi+o@#}(XciZ=>{X@I^cU1gOwXd;a@y=5S z0(@Xl+s1h1+`?JDjm9&mi}M7%StyFV1zn^1<@}STD_2 zPkb2qz|m+g64?gc8w5}VPHP+$-&z05^zF;s0 z5J6S3R*2gge)DD|*VlIy_(o=o(1`y=ZHx;9;{*{wQ$_3zc^d?arI}tr3>YgoZ!k`X z+bOa(cXe0DvN;hcWNXd10ScNznkY%6XaeX;Oi@G%BC<-P%YcCIe7nvZRXET)ib{&H zAR;W^9;E5Y8`BNMKqMk@Hg~xMHV1V;{p8!n%WEH)dL|-g3M8Vcnc_S&8?$7l;~l-E z9gl$|Qwg+zwyLK8c{V#qY|b;N?QBVN@FWLU&B6W!?MVva87!da00000NkvXXu0mjf D@Zg=6 literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/program.png b/files/.pdirl/icons/default/program.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb2adfcff39e85c879261a5859587047615707c GIT binary patch literal 1044 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 D@$zgQ literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/text.png b/files/.pdirl/icons/default/text.png new file mode 100644 index 0000000000000000000000000000000000000000..d68a56c68a1651c6524c4f971189b661c1994ada GIT binary patch literal 523 zcmV+m0`&cfP)p|SjxEtIFrXLJDv%5U=&O7fg@SjTJ&S*Tm06rW7Q`O6}_vasXUXI2?J+wyS zp~k#Ide+ryh39#wDk6f&!=mhdJhqfltyXt98L$nQ&1M-$x;mW>s+xJf7u;+%DHI-m z3Bzz_{FM4!u!u07PIEV`+wEeEaRVD;P*vLPHUPz9@!1Kh*f&aHM^AR%~y^K9BqT{_}EdSEJEL)Wr(ZPgQk`Te)0*k*g^IM^SWj z^XdBh5ZJGuzu#rfv1k6c9 zK~y-))s#zYRAm&$|L1<+eazfDb7$IVJJ2?ES{2*C%(M*(3qS>l;KBtMjT;{*3pcvr zAs7<^;jtnyu0>;vXoP^c5Gi!RqJYwefzl>)IxVGTW;%UL=XLMgJJ$tMg9Z~b3%`T=~sZ_j~m{7V+8X6m$xLGvm;-!mc_U}Eo<1dbn96j`2Boh6osksS;S%P60P*s%*g#s5v&LvSK zP1C3)^aLg16Bv&tD3h7f5{ZfVndzBCdq+o|B*`7C*K|zvT)Hx_EX;{$cQhQu=-oTk zL}G%?W-_G63cR`(8#ir0E|-I@>o5!h52ll-tqH&|4Z$#tx_mA#Pu-s^MZ;0o(9qyJ z08Rn00YD(4h@vPMyBlXjj20KOuq+FU3t0@`x&vL;0RXZrLzZO#4*Y&U48uSmQ0w*A z_+5&kph}Rq3fCsswx)d7Z8nxQQuGx zk&6HT$8iXN44@3a7L1aSE0s#{(*j6>FuqYJA3YYI1=6- z3WZW5Bcs0psL;0UFTYw>7x;_>%Cxn$ML6fQcI{fUg<7F$9x%pW+xDMlF1LiS@i?ws zyM|OM<)o5nYsb!=To$ErZ>%>vH#c|w%Tr(NA^^VE-+1jq#ii^oo8@#vuwL=`{I#ZO zkR(YEMG-`Vhs4+@7E4%M%p#Rc!Lls4H5VFJHlwzt7Ik%XxbV}Di8DW(4RHX4)8Bso z`KC=9Znw6DPNq|{`pnFOd0AE@QRJ3kn2K#%V!2$lEX#H(6&plk%d+h9xYbH}HdA=| z$!ENd<3Q6?6bi-SGRI{A*;wpqZ!C88`OTYOc%`YiakoH1i)C3l69fVnIOhyNg@}qy zr81RBOn$*d4pmhHmR){duml)}p$JTHmW3SvCV&M1W>3$R?*Lq=q9Z;sL5X+Ls68aRjXFLmCY`dWLfe*x;6ozQgv@sa|u8ez+$!Od^HyU%vJx30LsI+hhxDN z!MTaaM1V2&!R=eaGxQJ3f4MGHvr>IKf4l$p@dqbM_bP6%D@p(W002ovPDHLkV1h$$ BSJ40f literal 0 HcmV?d00001 diff --git a/files/.pdirl/icons/default/web.png b/files/.pdirl/icons/default/web.png new file mode 100644 index 0000000000000000000000000000000000000000..160b2984772d3752393e15631f48954d9c6c0cec GIT binary patch literal 1158 zcmV;11bO?3P)dD zGs^=)0`S*|+YdL^H@7ZYSc8a6o9O#K$y9=5GQrUBP^P>4eB4_5zQVyBuf1s>2yXxC zfVXYS4re5O8_)AlRjjpGwWzg-2%%7za5#+bT4uyz{CT5^*Q{?_-gy1(+mpd2 z_^?(T5y5rc9MD=+Z7zW-p6`)LCmD^8aHIbkmoD{CzpAll-RhQFF{X3h!Ox2ef&=A& z%3!D}v1e~&2u&e@b(dL9<=BzOq|L_%TIPS{$% zsv$IQUeyMxx^_C)YLEfVk6cM8sN_on5CMcxI6_o~0zViGOZI+4sY7RxD`XolSLAS5=dBvsi0!UH7pES`p|S zjc3`@@f};9@1thn5H}O=acgV=OPBn?TdgPQzkQnDdImAZp(t8JWo0G4wV~l>nB zMLEA--iR+zL^71ePEq#IMed9^q?o~Qd>9dj;GpWHvYcjx5rZ)XK^Tg!VQ%ROW)*i4 zPo%jMcNmEmVIh8;7}o~YGq<#k`kFG*scMe>*h16N zN2srzgJW_+?)P}2j_p*ih|sXCf)BT^=Fo}R^!9gg&$U#QM|h!WB^#P+h(scY7?9v_ z*#hAE8Vw5NW#z12H;0xrkK=hB0O3%Wa3nlFN113+woti&`l`9ssj8^tgb0c;LNpQ~ zs4MIHlk+1;Ak3cv7Ln+#Pd@JKyVCpIlA79rH^_g5s?v9*7tixLMI@@KnUIJWprY+S zds`}*j>TdnYgH#zOK|BGv`kS25wVFx@=Qm^(Ket$MEXTl5s@e`9|-?1snf#+`c*aa YFSfl1`R+YNsQ>@~07*qoM6N<$f7%Q6vtm__^8Wg`7GsQT1eE2uH&Q)Ev5}k^FgCJX-M1<6>%8vPVBAMGpn6l zw~i1JClClu^}r1&J>XghE(nQ3gakqeK~GfT!U>80TW^{asS=}|`FVEV zysvrBKkw-IlrZ`*pTR6`AsPbTxeE)%%vPdp;2Yp}@GUS0R>2-H0(XGtK$iOud;+`x z?gu{y9|YGxKKBRs2>2Js=XdW@~ zv;6@05ps73l4_I?dyJHKT74Me)qntK6!8gmyW%dp*E zOt$kpCXW}pNNsXya&0_^$+p)A$HTegI^e-|0W-J8PWgLBLAa?R|)q+U<-S|O{3M#3=gT^ajE(@5g^MlAY)qT|x7)2L~L zk+N2KBE()+6^;3ka$^&h^a z$Ykl*$k^EI_}tuZZst_k8I4q0CeE0QRZ$EU1_qtNkTY-yKZ}D0Un*cg(3w?DpKWc( z6`TS@2gKlk;$WdG$M@@$BdKj5QBFnS777(9j-1wYZO-Z8TuJI`f^u-mN;ZmObV=dT zkGS?&;O9+L9nMWnPK|GbHIOglMv*Suqf>5$@Gr*Q_J;v(@Kxc~WMox*^mKW`IlLjq z<`-4ujB6K_rmID9xZ=mT1*aqv?bbr+IpgQkMExh^!=g|q9(=hQ%7XK{(kkkPaqFbm zTS@%D69YqoL$B=1QP{bNHcI;rJs0?O=_)$YOzNiDUKQ3P6%)~!@cN~gPIBA%4bzkw zpSarnCd~z=bFD6EzP%cvOl`Vt37VFHT2iPn^i>!&>z%8@2v-HHcSST6EE%+C)_Hjv zGf-^n?d42`q*Ilsy}WdrA2Y@V%G2#DVySWcl9n_L3Du;|YI_;4R|R}#2~`(0puG&y zJY4ZQ7bTq8r2LFF%|vK<{p0o(8`B9$%edQ-O>W5f7Auf3x8!{0Y}%G-T0B$FS`*n_ zcUYK;m9^xoN<%iB2>5a5pz~DTd|Inp=R4QZa8|PPx6%&1-LR)LdAill$v~5$N@N$^ uCY4, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-02-01 23:20+0000\n" +"Last-Translator: c00ba \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "sekund" + +msgid "second" +msgstr "sekunda" + +msgid "minutes" +msgstr "minut" + +msgid "minute" +msgstr "minuta" + +msgid "hours" +msgstr "hodin" + +msgid "hour" +msgstr "hodina" + +msgid "days" +msgstr "dny/dní" + +msgid "day" +msgstr "den" + +msgid "weeks" +msgstr "týdnů" + +msgid "week" +msgstr "týden" + +msgid "months" +msgstr "měsíců" + +msgid "month" +msgstr "měsíc" + +msgid "years" +msgstr "let" + +msgid "year" +msgstr "rok" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Tato složka obsahuje %s položek o celkové velikosti %s %s." + +msgid "This directory contains no files." +msgstr "Tato složka neobsahuje žádné soubory." + +msgid "%d %s ago" +msgstr "před %d %s" + +msgid "Directory listing for " +msgstr "Výpis složky " + +msgid "Parent Directory" +msgstr "Nadřazená složka" + +msgid "Back" +msgstr "Zpět" + +msgid "Home Directory" +msgstr "Domovská složka" + +msgid "Reload" +msgstr "Znovu načíst" + +msgid "Search..." +msgstr "Vyhledat..." + +msgid "Search for \"%s\" in %s" +msgstr "Hledat \"%s\" v %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Nalezeno %s prvků o celkové velikosti %s %s ." + +msgid "No search result." +msgstr "Žádný výsledek hledání." + +msgid "not accesible" +msgstr "nepřístupné" + +msgid "Audio file" +msgstr "Zvukový soubor" + +msgid "Image file" +msgstr "Obrázkový soubor" + +msgid "Application" +msgstr "Aplikace" + +msgid "Web document" +msgstr "Webový dokument" + +msgid "Text document" +msgstr "Textový dokument" + +msgid "Directory" +msgstr "Složka" + +msgid "Compressed package" +msgstr "Komprimovaný archiv" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Název" + +msgid "Last modification" +msgstr "Poslední změna" + +msgid "Size" +msgstr "Velikost" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/da/LC_MESSAGES/default.mo b/files/.pdirl/languages/da/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..23c85b9d5a4c7ad214cad544ab3c13e61f48f682 GIT binary patch literal 1616 zcma)+L2nyH6vqc>pfxR&28x7`G7U0HfZ5t^Qql!lft^A{T%yEJ`=FNLEZ~V)JQ{M`- z7a=c0euAt(zJ3fH+UduII0K#mFM`Y98{li;bKoc73!nkn?hEib_$7D={1JQt{1rR} z{#NsMa0&V!;FI8A;8WldjCuSV$m7d3Ujljl63BkmLAHx(eWTW|fj=Pj8{pHJXQK9d*Cr-wfGq;z4@FXaXXiuv>T44BVS}868n|Pu2!3Vl}($z9*v?%493RGejZS5^qkT{Vr>)O4t}d2) zWar<>Pv_qsnN+@g#~#@H$X;*kXqy%~B{d*DK_LBG{q05Mh`G_l8Q^x+U^Ycmf$oRP z(+oH9mK=_?^Az5>Gq|a?7IwVph@9HC!#qJL#B%GN35~mIM;CTDp6Wzx-!D($Ux{wX zRx94PS|xB-y-${075vFcxpuEGSt8q;oy}|O@VT2)VuI?T7K59`vbTM^|L)$0ioRZpSn5uKRKk1ZuNpnE#N Qzd#M>1y)0xm>*a2H<2!fR{#J2 literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/da/LC_MESSAGES/default.po b/files/.pdirl/languages/da/LC_MESSAGES/default.po new file mode 100644 index 0000000..2ab6a60 --- /dev/null +++ b/files/.pdirl/languages/da/LC_MESSAGES/default.po @@ -0,0 +1,133 @@ +msgid "" +msgstr "" +"Project-Id-Version: pdirl 1.0.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-01-12 22:42+0000\n" +"Last-Translator: René Züwig \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-Country: DENMARK\n" +"X-Poedit-Language: Danish\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "sekunder" + +msgid "second" +msgstr "sekund" + +msgid "minutes" +msgstr "minutter" + +msgid "minute" +msgstr "minut" + +msgid "hours" +msgstr "timer" + +msgid "hour" +msgstr "time" + +msgid "days" +msgstr "dage" + +msgid "day" +msgstr "dag" + +msgid "weeks" +msgstr "uger" + +msgid "week" +msgstr "uge" + +msgid "months" +msgstr "måneder" + +msgid "month" +msgstr "måned" + +msgid "years" +msgstr "år" + +msgid "year" +msgstr "år" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Denne mappe indeholder %s file(r) med en størrelsepå i alt: %s %s." + +msgid "This directory contains no files." +msgstr "Denne mappe indeholder ingen filer." + +msgid "%d %s ago" +msgstr "%d %s siden" + +msgid "Directory listing for " +msgstr "Mappe visning for " + +msgid "Parent Directory" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Home Directory" +msgstr "" + +msgid "Reload" +msgstr "" + +msgid "Search..." +msgstr "Søg..." + +msgid "Search for \"%s\" in %s" +msgstr "Søg efter \"%s\" i %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Fandt %s file(r) med en størrelse på i alt %s %s." + +msgid "No search result." +msgstr "Din søgning gav ingen resultater." + +msgid "not accesible" +msgstr "" + +msgid "Audio file" +msgstr "" + +msgid "Image file" +msgstr "" + +msgid "Application" +msgstr "" + +msgid "Web document" +msgstr "" + +msgid "Text document" +msgstr "" + +msgid "Directory" +msgstr "" + +msgid "Compressed package" +msgstr "" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Last modification" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/de/LC_MESSAGES/default.mo b/files/.pdirl/languages/de/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..165248a14b77eeb4f9b091b9dd709778af9aa2d9 GIT binary patch literal 2387 zcma)+O>7)B6vqt>A6?2<`6zAqa0{tg=qyRv&~ytCX_B^~n>Hj{T8f0^-FZ7}cE?`X zo}{Tb_QV-(NSrtz?woSl0~d}+^a4moh;jfVB*du_|2H#XS0GTWv47*4=jZp~=kIop zeI(Ehp+AjYze|W|@cp|npsnl>Vkh_}_yG70SOF7o40Paba06ty55OnE55c40=io!& zO_1091U?G>4)Xdj3_RZnJ_7Cs?*)&7Pk_fj*1H7a5o;J81h0UzU>iIDehTgazXYLL zd=26eH%opC-h=rMAnU&c-Ut3xe*d%lej8-{V-RM!-5|^D1@TK90P%=J<@{(lp9H^0 z>`s7e?;b4TI2-^uZZjb3S-|i(STDaTkmXYF1b72{7~BFmUSEM6mv2Dc{}#w``32;4 zJMJ&+-3Rjb!yxZJ3qnMkEB~*6bqn6F{|vIM;6C*I=xhtG8%Jk-&!KaB zp+N2%A5Hf4S#&;I+l}qu*s)*S_*}3p+ifpi4xw}WpF(GQIL4#xnR3E8<8!@d>r<*gXm&Bmg8Qk#EQ9ozo%O&Xluk=7Hccpx<}%)YIViDP5X|#r&#te zR|$y)?Wh&3+Z?{hp7ueTM7FJy;*8BquAF+5k_m_X5gBYyy&j8TQ#{&8udh>8oUXg>IP+i2O%YOG6_=?w+$~m{ z0^N&_&0Icsk!q6#DuF31=oF(D#s;ZcE%LgF{CI+SaS1Orh`RaU#U>oj2QOBfeGl1+ zmg49wavmwJ$vzzH$;s+O^;l(<`qqVL*(W-VPG^aa8nz}YD;FElyrcX~L<=fVO-@Zr zPDK;b(c}rd)~1fXG=T=eXqDDAEB?3K%CSvta?zq`;jEdYCTE&DRIWsIm6=wjui|L&S{|f- z#9>BGOw^9QQuuczIt$}m;oILU<>6+gd$F9Ho|-;+1UgqN#X3ausF2_`Yx3;k>hj!$ zw}*eW{l_nIsWQVqYd9kYo&MO&}>)V5^j%%VCyhPp;r_!`2=sY!A zT+Q5I3q^gNi(03eT!82tYDupP9FOayTOFhQ=({!@)eCan8Yxh>i)BgE5t(Wf4mlX= zRT>gE_+s!0<${pIlTaJ?02$Oc>2!TW{b|IcG^tMEdLTKt0ZEscMC3Jop0pvkmbE(M z5^BOEkE>$vag(Rk#fAblzQ`|5%ymPiZ~?&`G9q6jjl%sfTJ)^SaM7PF?9A&vTCm-s z?iVz9@^T~wvI!g5bqegvo%>zIwfKL^y18$BmNdr(7sAkthDroFiM7C?D`CWPaVZqQ n)EX6vk%U3cf+XiSc}PAkxNfnypb?iXoG(Tr-cTKv4\n" +"Language-Team: René Züwig \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-Language: German\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "Sekunden" + +msgid "second" +msgstr "Sekunde" + +msgid "minutes" +msgstr "Minuten" + +msgid "minute" +msgstr "Minute" + +msgid "hours" +msgstr "Stunden" + +msgid "hour" +msgstr "Stunde" + +msgid "days" +msgstr "Tage" + +msgid "day" +msgstr "Tag" + +msgid "weeks" +msgstr "Wochen" + +msgid "week" +msgstr "Woche" + +msgid "months" +msgstr "Monate" + +msgid "month" +msgstr "Monat" + +msgid "years" +msgstr "Jahre" + +msgid "year" +msgstr "Jahr" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "" +"Dieses Verzeichnis beinhaltet %s Element(e) mit der Gesamtgröße von %s %s." + +msgid "This directory contains no files." +msgstr "Dieses Verzeichnis beinhaltet keine Dateien." + +msgid "%d %s ago" +msgstr "vor %d %s" + +msgid "Directory listing for " +msgstr "Verzeichnisinhalt von " + +msgid "Parent Directory" +msgstr "Übergeordneter Ordner" + +msgid "Back" +msgstr "Zurück" + +msgid "Home Directory" +msgstr "Heimverzeichnis" + +msgid "Reload" +msgstr "Aktualisieren" + +msgid "Search..." +msgstr "Suchen..." + +msgid "Search for \"%s\" in %s" +msgstr "Suche nach \"%s\" in %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s Element(e) mit der Gesamtgröße von %s %s gefunden." + +msgid "No search result." +msgstr "Keine Suchergebnisse." + +msgid "not accesible" +msgstr "nicht erreichbar" + +msgid "Audio file" +msgstr "Audio-Datei" + +msgid "Image file" +msgstr "Bild-Datei" + +msgid "Application" +msgstr "Ausführbares Programm" + +msgid "Web document" +msgstr "Web-Dokument" + +msgid "Text document" +msgstr "Text-Dokument" + +msgid "Directory" +msgstr "Verzeichnis" + +msgid "Compressed package" +msgstr "Komprimiertes Archiv" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Name" + +msgid "Last modification" +msgstr "Letzte Änderung" + +msgid "Size" +msgstr "Größe" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/default.pot b/files/.pdirl/languages/default.pot new file mode 100644 index 0000000..a716cdc --- /dev/null +++ b/files/.pdirl/languages/default.pot @@ -0,0 +1,128 @@ +msgid "" +msgstr "" +"Project-Id-Version: pdirl 1.0.3beta\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: René Züwig \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "" + +msgid "second" +msgstr "" + +msgid "minutes" +msgstr "" + +msgid "minute" +msgstr "" + +msgid "hours" +msgstr "" + +msgid "hour" +msgstr "" + +msgid "days" +msgstr "" + +msgid "day" +msgstr "" + +msgid "weeks" +msgstr "" + +msgid "week" +msgstr "" + +msgid "months" +msgstr "" + +msgid "month" +msgstr "" + +msgid "years" +msgstr "" + +msgid "year" +msgstr "" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "" + +msgid "This directory contains no files." +msgstr "" + +msgid "%d %s ago" +msgstr "" + +msgid "Directory listing for " +msgstr "" + +msgid "Parent Directory" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Home Directory" +msgstr "" + +msgid "Reload" +msgstr "" + +msgid "Search..." +msgstr "" + +msgid "Search for \"%s\" in %s" +msgstr "" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "" + +msgid "No search result." +msgstr "" + +msgid "not accesible" +msgstr "" + +msgid "Audio file" +msgstr "" + +msgid "Image file" +msgstr "" + +msgid "Application" +msgstr "" + +msgid "Web document" +msgstr "" + +msgid "Text document" +msgstr "" + +msgid "Directory" +msgstr "" + +msgid "Compressed package" +msgstr "" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Last modification" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/el/LC_MESSAGES/default.mo b/files/.pdirl/languages/el/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..bb6edbe58e16661cd7a74943c42767fbeae737dc GIT binary patch literal 2708 zcmb`HUu+ab9LGnje|r9}_y_UNfR;e)9(RS(a$-Yi4{W?*Z4V{!#qI6%y0W)>?(7LQ zK7h0;T1ZrQQ4&p5Vj>4Q;H-yj&KIMJ$?StZkQg=LL5VLW^5B!k?{9aHYat{)IJue6 z?CfuT|Mz}wYdOL&R$<- z0e%AB41NPbHTwa?kDZJ76L=k-&x54@0(b-XM|A#IbpAI;`dc7Oa%~{VEd%k2tpM?3 ztD@(Q=s5|#kKA>G6z})AO!1rtDUOTajbJO3Jq)&iB)0*KgK2OS^uPzeZ^7l@uizSR z2`*FqI>02@4N}}DNOs-=SA$1EviCJe`hNr;0)Gbu7(+6hO zIS^OaFVXu85idskCt@ouFN54t@Ln(;aT`c}Jr7cUyaRpP5dS)diYd3hi=5)_=Y}QvYOoxw~mS9`- z+%DGd6pF5pQW(65XFV_2fa!{y=eU#29k)#BnRcF!J1%Eiosu0W7nUdp+gmNyaL@5{ z%OVjN#m}_4G+!2R_JmUqys2`q02878j4nN1a13+2;oNq;AlP&Yl%xO>2fe$uK3Ga7u2lNLDcIk|!eI5gts0t7Nw0aXpt4(i}s5 zq=0)y1j%*_u`5_4n?&HjBH6I(ynt$HgNF8ua3xBd;za~##YRNYaXoEF=1oJ}Qp!s$ z>!kSB9hnT@-Zzxyo6-xWcdXal+@QoJ*f?9>unTCyA4 zROk9f6BrQGM#M`d*=ouqwM3`Z*~60?Q|r1yIjXOgb#+@>I@&44hjdq$=p_E6V@prB z(NT`%n|9c{Y-hLK8_Vc+zJ&JBvO+JU_%;_2^G(9qY?*P#&G*KJ28YtkFq82_tRLw^ zUA63F5&n9p_1dC^iay436S^yf_xO(NR;{NgNA8RZS4-PDbe^40@t!f$i|y1hddbdB z6m>&O?+FrjSqgf1B9U6ZAq;J&woTZ=4a2&0ldm2tnU=wmU7cMU*TkYP(BJFtQ#Ccu z)DizRRl&oYs;krL1XFMO`~25cRh?9Iu1;WE_otcqP@VMm`v;i%$e&ho{$5ywo<3Zd#yeGOm{<#G*sjuxX>tIHYU->%L#Jh^tKvQx3cmYzBd96a*7Tvq;1&Q!{}hbE?ABVO*N$>eOYCKqK9n3RISZ z^igIiaPVEkFdtfmgA_SlEJztbAdfK1{(;b5cd5% z41P8mj?%ZNg0(Pq{~$vTp&ux!=C+Ee`iFwE0Q8LZsp6BE@@Fn>)p3TqCn)J85N-q6 zIW>#mp`eaBoKnZJQl{#Rd=2^pdGTi&I, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2011-02-28 19:35+0000\n" +"Last-Translator: Maraslis Konstantinos \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "δευτερόλεπτα" + +msgid "second" +msgstr "δευτερόλεπτο" + +msgid "minutes" +msgstr "λεπτά" + +msgid "minute" +msgstr "λεπτό" + +msgid "hours" +msgstr "ώρες" + +msgid "hour" +msgstr "ώρα" + +msgid "days" +msgstr "ημέρες" + +msgid "day" +msgstr "ημέρα" + +msgid "weeks" +msgstr "εβδομάδες" + +msgid "week" +msgstr "εβδομάδα" + +msgid "months" +msgstr "μήνες" + +msgid "month" +msgstr "μήνας" + +msgid "years" +msgstr "έτη" + +msgid "year" +msgstr "έτος" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Ο φάκελος περιέχει %s στοιχείο/α με συνολικό μέγεθος %s %s." + +msgid "This directory contains no files." +msgstr "Ο φάκελος δεν περιέχει αρχεία." + +msgid "%d %s ago" +msgstr "%d %s πριν" + +msgid "Directory listing for " +msgstr "Κατάλογος φακέλου για το " + +msgid "Parent Directory" +msgstr "Γονικός κατάλογος" + +msgid "Back" +msgstr "Πίσω" + +msgid "Home Directory" +msgstr "Αρχικός φάκελος" + +msgid "Reload" +msgstr "Ανανέωση" + +msgid "Search..." +msgstr "Αναζήτηση…" + +msgid "Search for \"%s\" in %s" +msgstr "Αναζήτηση του \"%s\" στο %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Βρέθηκαν %s στοιχείο/α με συνολικό μέγεθος %s %s." + +msgid "No search result." +msgstr "Δεν βρέθηκαν αποτελέσματα." + +msgid "not accesible" +msgstr "μη προσβάσιμο" + +msgid "Audio file" +msgstr "Αρχείο ήχου" + +msgid "Image file" +msgstr "Αρχείο εικόνας" + +msgid "Application" +msgstr "Εφαρμογή" + +msgid "Web document" +msgstr "Αρχείο ιστού" + +msgid "Text document" +msgstr "Έγγραφο κειμένου" + +msgid "Directory" +msgstr "Φάκελος" + +msgid "Compressed package" +msgstr "Συμπιεσμένο αρχείο" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Όνομα" + +msgid "Last modification" +msgstr "Τελευταία τροποποίηση" + +msgid "Size" +msgstr "Μέγεθος" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/en_GB/LC_MESSAGES/default.mo b/files/.pdirl/languages/en_GB/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..7da722af22c866ad44d2af3837fe76d02135fbf6 GIT binary patch literal 2218 zcmeH`&yN&E6vsTsV>Vecipx#>B+CR{GVatLN3L_r9;@ z=jo|W8OAK^dD!wjjCH_^_hQ26-pANZ@LljB@ElkJV{i)0z-e#{lHbSRGvH-#4*VK? z6ub%2zTdznz*`{gpTb1zo#5l(9`FHh4tyFs1XA235D#0!^a!{P9t8*Be(($MVenfJ zq1pE!9(J?hPvHGn{{m9{-@zT=pVjx<)%QCf#h-#R`Avi5w;RMyY(I#H%~tEVYTW`a zLAxU$<$E2QNw4ofs{2Qf_Wuf!UVnh(cLyZBcHj`wYcEK8odRj!S&;NmAnhMl>x&@i z^$Ca&>ihZXdkRwgakc&kB)>}_#k&kroX@KDm1_Mt2)T+o_agWlY!8fbA^$pz;_QRbc&S8D z8(mGRbuWyx+8U(CV=%f0G^kD-b9d~<+brxU*e)35M;dP*FH{Ta9rfwiZ9hJVck0#F z;CP|lkUpfr42;zyUUyu^mK{seM2FIAYuK?o(v}Z&qS$d6ZmMk{4svh3OcHXzp?I|6PJgHx>}@+zd=heL zgd@uHm!JhEX9W&N*8HUQ~KKkPn(u*oMHdbn*m>k3+3F+cI6LkB7oizdWnGI7A?``Xvm#j?yzI80?E7B3Vk{H@S=-fRYkUo8t*7blfb tS(*IZo%}#Q*Ga@%op$H7gNWI+D$-u8p`oE#C=&{JnbH4$x&Opp?l0km|5X40 literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/en_GB/LC_MESSAGES/default.po b/files/.pdirl/languages/en_GB/LC_MESSAGES/default.po new file mode 100644 index 0000000..2dc3cc3 --- /dev/null +++ b/files/.pdirl/languages/en_GB/LC_MESSAGES/default.po @@ -0,0 +1,131 @@ +msgid "" +msgstr "" +"Project-Id-Version: pdirl 1.0.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-01-12 22:52+0000\n" +"Last-Translator: René Züwig \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "seconds" + +msgid "second" +msgstr "second" + +msgid "minutes" +msgstr "minutes" + +msgid "minute" +msgstr "minute" + +msgid "hours" +msgstr "hours" + +msgid "hour" +msgstr "hour" + +msgid "days" +msgstr "days" + +msgid "day" +msgstr "day" + +msgid "weeks" +msgstr "weeks" + +msgid "week" +msgstr "week" + +msgid "months" +msgstr "months" + +msgid "month" +msgstr "month" + +msgid "years" +msgstr "years" + +msgid "year" +msgstr "year" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "This directory contains %s element(s) totalling %s %s in size." + +msgid "This directory contains no files." +msgstr "This directory contains no files." + +msgid "%d %s ago" +msgstr "%d %s ago" + +msgid "Directory listing for " +msgstr "Directory listing for " + +msgid "Parent Directory" +msgstr "Parent Directory" + +msgid "Back" +msgstr "Back" + +msgid "Home Directory" +msgstr "Home Directory" + +msgid "Reload" +msgstr "Reload" + +msgid "Search..." +msgstr "Search..." + +msgid "Search for \"%s\" in %s" +msgstr "Search for \"%s\" in %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Found %s element(s) totalling %s %s in size." + +msgid "No search result." +msgstr "No search result." + +msgid "not accesible" +msgstr "not accesible" + +msgid "Audio file" +msgstr "Audio file" + +msgid "Image file" +msgstr "Image file" + +msgid "Application" +msgstr "Application" + +msgid "Web document" +msgstr "Web document" + +msgid "Text document" +msgstr "Text document" + +msgid "Directory" +msgstr "Directory" + +msgid "Compressed package" +msgstr "Compressed package" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Name" + +msgid "Last modification" +msgstr "Last modification" + +msgid "Size" +msgstr "Size" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/es/LC_MESSAGES/default.mo b/files/.pdirl/languages/es/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..fcc5335c0c24889217f51ef327574e3fe0a3faef GIT binary patch literal 2301 zcma)+J8T?97{>=Nj~wA;!XpI8Bw#BM+2hWMi8+Fmi+u)*voXGNutX8f?T+t;?9D7Q zvvC~JBSAq!npC8SgcMN#9R-b%(ojVd5mHh>K|~WN1(A@D_UmcTAJ0$OksTnFjgr{L4z7vLfA zGWaNX4WxU&gHM3BLApPJh4wqZ$H6_|1K=U>Dey2za_2!jtcB$fa21>e*T8+?C2%Kr z1%zn!Gl+*>D|j8eANyZHl7AC?5WH2qzf-*b8zlK7I85h8K{~e^#3!~7#KXpm{h?xC z1wTjZj)LUp6YT7kC7$fKP%Fq_}K=6o=11x_=RT z3H%Bqxj%s<=Q>E|Z-NxBzd$@}xBlBY2S|EugQVvUh;U^!NB%sANpT?A^qp)Z zeS0x!yqqKRjY^YZ@**bH*4ChSJcdbiK!fT6Y6fFBevM=9!h9B!?4j6gA1@Re${pqD znQb2_FI3xGgX0IqocyF1?8jtd5g&70bPcN~NvuNQmC>x8M#}It6-#zPgs0hz=_gh? zCnKI8?8fjHkCpREclnyJoXwe3XToJH`%?P@?jZNZi#VnuP>M%s?$kM1 zW^bFmpBmqE3@}y zXQ(X_8w}I2o=I)CIM!D>^|AoAu%MT(j%nk$2t(;q2l;Ul=0yb@TbJ^5wm7x{$Fs$; zC2KxJwu1R6I4P||ifcT9gK=qDCdT?;!F5#>oJhMaXqy_JTWL1=Vtt{(k2MzR^UdS+ z+1cert2JF(dbb_SSecbcFe|*Q@rg=xBB)FT)uZ@Xn>g}H1p^0zWqC%CuHm^#P&ph_ zr}#v*Hd&mb{040+w2KAGsm9;&@u^d*C;71zeOjA!JzZ)F-Az#tL0gJ`jkgk^mFw|i z(jAXg+1T!MX<>e$F?6k3u9RjFGUPI7ZzQnMBfqaEF|zmu4|~Eo>EB#w&jnM%b7aDr zv_V6Ms5afL@u`mTrPZJ*QXTdZ5e1F2S+MSMdx}>owIi?PZm$M!NiA*e%HSqH&`DJs z@#^HnRFvJJd#{c2eP`in-|^SeMoJn`YJMmro*8o zx=uvdt*x3x^CrRy&d3?5^0{Kk~G$>vL_7NbQxFaf41 zYEI2IFT@@{2fdlQuxR=no3&?8Y!tnjY0vD51@ENpqf|zs%w~j5q!+xECekWnSv~Zr zh}Aii?TOTdqG(u{hK9}GP{X!!JK1c}u9@eQV8a^D%R%EJ2;{s%KFG, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-03-18 21:54+0000\n" +"Last-Translator: Ktl__XV \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "segundos" + +msgid "second" +msgstr "segundo" + +msgid "minutes" +msgstr "minutos" + +msgid "minute" +msgstr "minuto" + +msgid "hours" +msgstr "horas" + +msgid "hour" +msgstr "hora" + +msgid "days" +msgstr "días" + +msgid "day" +msgstr "día" + +msgid "weeks" +msgstr "semanas" + +msgid "week" +msgstr "semana" + +msgid "months" +msgstr "meses" + +msgid "month" +msgstr "mes" + +msgid "years" +msgstr "años" + +msgid "year" +msgstr "año" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Este directorio contiene %s elemento(s) sumando %s %s en tamaño." + +msgid "This directory contains no files." +msgstr "Este directorio no contiene archivos." + +msgid "%d %s ago" +msgstr "hace %d %s" + +msgid "Directory listing for " +msgstr "Listado de directorio para " + +msgid "Parent Directory" +msgstr "Carpeta Superior" + +msgid "Back" +msgstr "Atrás" + +msgid "Home Directory" +msgstr "Directorio Personal" + +msgid "Reload" +msgstr "Actualizar" + +msgid "Search..." +msgstr "Buscar..." + +msgid "Search for \"%s\" in %s" +msgstr "Buscar \"%s\" en %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Encontrados %s elemento(s) sumando %s %s en tamaño." + +msgid "No search result." +msgstr "No hay resultados para la busqueda." + +msgid "not accesible" +msgstr "no accessible" + +msgid "Audio file" +msgstr "Archivo de audio" + +msgid "Image file" +msgstr "Archivo de imagen" + +msgid "Application" +msgstr "Aplicación" + +msgid "Web document" +msgstr "Documento web" + +msgid "Text document" +msgstr "Documento de texto" + +msgid "Directory" +msgstr "Directorio" + +msgid "Compressed package" +msgstr "Archivo comprimido" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Nombre" + +msgid "Last modification" +msgstr "Última modificación" + +msgid "Size" +msgstr "Tamaño" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/fr/LC_MESSAGES/default.mo b/files/.pdirl/languages/fr/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..198f46398a3586fe6d73dab5062348b4f3ab2521 GIT binary patch literal 2314 zcma)+&u<(x6vs^og)Tn|;b#dy+(1GrGRtn#wCNU#l1)+~B_SkRh}4ra^LE$Cti2k~ zG+o4BfH)yIao_?H3liei8v-qY0~Zb;^->N<2u?-f0O|q3_sz^^Lq#R5u|MOn{ruju zzw_hp(7OU<9Q85O!UPehA(L zegnd^_#VU~uH?K5-iH29Alv^HydC^4|NdwG{V$O14`DLT8wPpa5fDS-D2PXl=lzMi zUk1NK?oNU1$8{{`d>zDMwl@rNUxJ*k2@sEX5zYPJIj{s?06AZ8fxPZLkn`CEIj%22 z&eK=mBj67p=k*%M`MM7BK8Nqf{2u|?&M0^qEP>B}+aUY-Hpp?k55jfvLC%jsj{mcq zmqC~opMyOA>zv<$Z0Eat{3?h?{G9i%<^4ZEzEXeZ-w)tWk*@U4Jq13BI)chEvL9op zyx)_kT%OL5-UYV9u|9#yx#}0r%VAXZhYQ~eY`0gA;B6fB0aVT%$HBSVUmnjpoI^gR zhxZNgIq_Nai^L1xUCvXQV^E9*a?DB9uwu5|4z;ghZH<^s0&Qhoha~2dzay%))sDzH z3S=97)gUpiBl2S#bp~%T)GpShA?r4hV$mihHBKS5$i&CoaT(iKg&|MDrg*fGPQOk? z@se$k9GF~cVT)}4W#wYovVpGmom*8c6024^Qjy=3@GA-9qF7TAcG+iSokFVuv5`$< zpGL>rDDOGu@~_2WQEb2gQKL(-46L89r=r%>P6qt|rEg8Fv`IbwKf&B=xye%MisCie z8tfLRjzD#yX_F{zoM>s2#FPVFc+kvRCyb4y@_ll83+Lkq?gcrV*d^LY8z(vlJZ+p< zi|jT|%UcS(S1EEh;)-k|z)+TprQ%d!o!T~vy%pEcfj5^loL93ISy+3y=2as~?}Rt6 zVyei=QhCxVO?%~2c&$vHc(#OsiQYP0)NFV#ujG|ZdXtz}u1uA(d3=~&EmFpX3U{X> z=g8RJr?Fh7B%oM6f8OjEyKBxCmX&EFxCCB}R12=GEUhdIe23SCDsqCu@@kzn{EBga z&$UAw(;4YERpcms;e2h;n;FdGZR-?y3&zKFGL4Fy+0t=g(_2=F@tbWGcng=(JlqiK zj4YKZCr)M|YEp1uW+~9ISA_`Ts8f-P>$9uXg~32S zK8)bn`pv<}25x~*)hvdJOyW9%5KE!#NF`Ib{!6Nh+HY!#q+-e9pnF}v*A4g<_ecC( zyuGfNx6WZQ^vtzdE0`OI839n%{)e13YZ{F\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-Country: FRANCE\n" +"X-Poedit-Language: French\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "secondes" + +msgid "second" +msgstr "seconde" + +msgid "minutes" +msgstr "minutes" + +msgid "minute" +msgstr "minute" + +msgid "hours" +msgstr "heures" + +msgid "hour" +msgstr "heure" + +msgid "days" +msgstr "jours" + +msgid "day" +msgstr "jour" + +msgid "weeks" +msgstr "semaines" + +msgid "week" +msgstr "semaine" + +msgid "months" +msgstr "mois" + +msgid "month" +msgstr "mois" + +msgid "years" +msgstr "années" + +msgid "year" +msgstr "an" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Ce dossier contient %s fichier(s) pour un total de %s %s." + +msgid "This directory contains no files." +msgstr "Ce dossier ne contient pas de fichiers." + +msgid "%d %s ago" +msgstr "Il y a %d %s" + +msgid "Directory listing for " +msgstr "Contenu du dossier " + +msgid "Parent Directory" +msgstr "dossier supérieur" + +msgid "Back" +msgstr "Précédent" + +msgid "Home Directory" +msgstr "Dossier racine" + +msgid "Reload" +msgstr "Actualiser" + +msgid "Search..." +msgstr "Chercher..." + +msgid "Search for \"%s\" in %s" +msgstr "Chercher \"%s\" dans %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s fichier(s) trouvé(s) pour un total de %s %s." + +msgid "No search result." +msgstr "Pas de résultat" + +msgid "not accesible" +msgstr "inaccessible" + +msgid "Audio file" +msgstr "Fichier audio" + +msgid "Image file" +msgstr "Fichier image" + +msgid "Application" +msgstr "Application" + +msgid "Web document" +msgstr "Document Web" + +msgid "Text document" +msgstr "Fichier texte" + +msgid "Directory" +msgstr "Dossier" + +msgid "Compressed package" +msgstr "Fichier compressé" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Nom" + +msgid "Last modification" +msgstr "Dernière modification" + +msgid "Size" +msgstr "Taille" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/hu/LC_MESSAGES/default.mo b/files/.pdirl/languages/hu/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..8b123881ec54fb19c50b6cd92abdee55cd4e4a97 GIT binary patch literal 2304 zcma)+PiS049LL8R|8(o$s@2-6(`ssqdFyW4*t*uxwAtFwO^nG#3q4Kt&Axrv_hue% z=53nAn>WEji+T_*dk_qz2Z`*(|n`n3>Pa+u!{D z&g}J_BkwS@0~mWTYPT>p0lvNs6WaW(jBN*B0e67s!2;-kBVY{f1Xn?ldlTFRz739n zm%)3$YapHb0lXjl4W#oUm}tKpybs(1-VTm|4}ph4(mMm9vqemIgXh3WunF!1KLGCn zKLeqfeFdVkYdOCGZ^QmOko5lu-U0rSfBz%@{ufC4M<7gcJ3*4$4dN%Z4@74N^8Hx8 zFN2qmyQ3h*`#BC%zP<)Y&-Xch1|P=$caZY21Il-UyTBu038XkANcLio^01ok-vXb+ z{t~zc?1SX*7a+-f3zFR%Alcn^=b%2@LCV)&@M-WoNPfNnQob&MaGkvilHK<~I^WCp zALjcjIX?!`*(aDt&!-^8^Cd|BUk6FgPax_26(l=1^8KG6(v{sgisw-biic!KeiQ>C zuqQC6JvBgf7wBqItdC=m?afB_=Uxo5PmS&c%-n30=K~lIVmyLD{*ljH+hh5La!B`@ zYPH!Oz=H1fX5(1U-K9KH4fbQOQJ0SzEAuwN6#@=&{ebJMvw5lS|vxsf7nv^e}q0$XJBB8HVMN)}|Gh07KP zV&v2QQL~?Hj+*>yu~=k_aDdh212cU5@(ZPp|27vb6^V(T7%gzr7ahYhBW>%>SH9_b8{HBDrGyH3|m9s z*<{#!tXEJiXU272m9asID?CDgL195gI=0TN@qE`gnRv#j>k2=;RIBm1so5$&UY(tq zshyabo?fUfE>0HaU#>f+VwqhNXIfZU;p3(9xKo;N%15!Rj30TXga$!pL3VtyHIyqk z<&tx_%*%%><%xkD)z_)VLYY9|I#oC-Ame0J@Z(FWt@NszEYyVZ65I%0&lcLY@~g0sealy zHk2bTnlg5(s(}lqyb3?I?AyXQrzR5BXhp(xsu!|+{Uh>Yyi}?jd2SHVIp-w`VGzyD zll&zElbhP9%0%eMS?TDF}%367qo;;H#ptigR*^SjHi7lmqw~l zZqRv{uE)||{YbWp?5ym%S1u+HkYn<*qjV=6IO&M zp4WsC#FT$T7AQCoLBEwjh=37Ad+2-m-U?Ec_5+))8<@s(#$xbPJHlI|$GZ8Ip6hJp zC|m5N{f_kTirU$mMMA1wF1Bc<|Cj8wTDTG;3&`%4xanu~LEOty{p+~O0?QBbX4+c` zbX(Z`?cTJiM8q(3o247EpegOOStR2|HsLk4(hU+C0CJ>Q1_+~tgkNMKDy7}*z;Kxz OTel1%SW=!bu=*P, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-10-31 13:15+0000\n" +"Last-Translator: meneruwa \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "másodpercek" + +msgid "second" +msgstr "másodperc" + +msgid "minutes" +msgstr "percek" + +msgid "minute" +msgstr "perc" + +msgid "hours" +msgstr "órák" + +msgid "hour" +msgstr "óra" + +msgid "days" +msgstr "napok" + +msgid "day" +msgstr "nap" + +msgid "weeks" +msgstr "hetek" + +msgid "week" +msgstr "hét" + +msgid "months" +msgstr "hónapok" + +msgid "month" +msgstr "hónap" + +msgid "years" +msgstr "évek" + +msgid "year" +msgstr "év" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Ez a könyvtár %s elemet tartalmaz, összesen %s %s méretben" + +msgid "This directory contains no files." +msgstr "Ez a könyvtár nem tartalmaz fájlokat" + +msgid "%d %s ago" +msgstr "%d %s ezelőtt" + +msgid "Directory listing for " +msgstr "Könyvtárak listázása " + +msgid "Parent Directory" +msgstr "Alapértelmezett könyvtár" + +msgid "Back" +msgstr "vissza" + +msgid "Home Directory" +msgstr "Kezdő mappa" + +msgid "Reload" +msgstr "Újratöltés" + +msgid "Search..." +msgstr "Keresés..." + +msgid "Search for \"%s\" in %s" +msgstr "Keresés \"%s\" vagy %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s található elem(ek), összesen% s% s méretűek." + +msgid "No search result." +msgstr "Nem találtam megfelelő találatot" + +msgid "not accesible" +msgstr "nem elérhető" + +msgid "Audio file" +msgstr "Audió" + +msgid "Image file" +msgstr "Kép" + +msgid "Application" +msgstr "Alkalmazás" + +msgid "Web document" +msgstr "Web dokumentum" + +msgid "Text document" +msgstr "Szöveg dokumentum" + +msgid "Directory" +msgstr "Könyvtár" + +msgid "Compressed package" +msgstr "Tömörített archívum" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Név" + +msgid "Last modification" +msgstr "Utoljára módosítva" + +msgid "Size" +msgstr "Méret" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/it/LC_MESSAGES/default.mo b/files/.pdirl/languages/it/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..74706f577df802997b06b513ed0fc20f025cf65a GIT binary patch literal 2303 zcma)+&u<(x6vqt&O2Y3@ew0$`1`?%eX4%~~G~Gg_bd$hJo029Q2yk*{yc?5Qdu4l) zrs5Aky#f~wNE~{oIKYidC4`EEI3jTLCg4-a?y97Q8z6(x) zAA$FS*FjqMGx!kr8%XPi&`^IEd=NYc-UUv9kATNPvfBXhuoX1-fotFyunisoFN61j zUxF~rz5(&D>w({cccT9jNcMjL_klOU_{}i>7fAMpFq!6!f;8^{h)?VYh=)yt{#58! zz|WAoli&mReiMtypM6+NaqkE31`mUjugTCq4N~6cz)4Vm4}+IL%Et%be(+GdyzfA=djq8Te}w)p25H|>km5N6o&t}7W1tM*-v%kpcLLuBDSsaZUJm0|0zU!C zk52=yf)wxPAhu>-2Yw6Ex&0XUD@f~p5Bw8Ey7Jhc2A@DZh)R1Sg=`#^>>Wm>@=Sr; zCS6Us8&9Fq-Rc*LpM0UbQ=xl-ZFb86yiK4|J|9OVe<(+L%c0PryH4ly*q)D+Z@Sz4 z!tp|9LHVN`Q(oD4!p9vK9m8gOy;Q}*E2G(LmMFv9DwXW4h&Nf?bbD4hCllU7Uvwm! zQ&z^_*qy-}PnGjZcX-=a&K69jbK^3VU8((~JIcNBB28%uHpQbfcj}@nv6oC&@`1@l z7h4qjH-+=OYZBG&J9kcWB|B%hlfuRu9DZe~FR>+IvCAGK%Q7`0VJpQn@@Z_`jnSUt zE{v8+CAIzFp4i#V1}t>b*0gnLPVW7|@0=8a=J2t02bTe9X&oL1CG zqF1DKIN}=bA;6SZO6Ah=k!9I4)<=u3qmt-s)^SnG)cDBK%dMzxWqv23IpJlESId=Z zRGyA1C-GXVo;X%U!Nh1;ZYeT6m{*RT!BIu6ogTdMIKF3lDGup0 zk2i#M(!a3UT8L%_^Jvqyw9&kdahY_d#%I=*A6bi+#70VhrQPNw88Ol&w&~RV5hSi1j zGED_*LZyNyQsn~UBy40-K^Qg8TGnjgyh)rS|0&*+mS?(9u7oHG<(78M@g=Ktta<`> zG4}*h8eQmD!L`-YtFFQCrK611(5?0c(k1=kZvwMck$4f?KMcxPCYUPOY*@(Z(#B%1 ze)9p6@0@~Fx_E=_Thd{h^BEv`9Kz03tZ;b$9onrcwb6sslok5fAU?sNW0r?z3Mgi* rKn=<@g@6_7BE{4wh*uZlg?j1tTFBP~D$pZkLW|uu$%NL18pZwwP%0ga literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/it/LC_MESSAGES/default.po b/files/.pdirl/languages/it/LC_MESSAGES/default.po new file mode 100644 index 0000000..3b2d698 --- /dev/null +++ b/files/.pdirl/languages/it/LC_MESSAGES/default.po @@ -0,0 +1,133 @@ +msgid "" +msgstr "" +"Project-Id-Version: pdirl 1.0.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-01-12 22:50+0000\n" +"Last-Translator: René Züwig \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-Country: ITALY\n" +"X-Poedit-Language: Italian\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "secondi" + +msgid "second" +msgstr "secondo" + +msgid "minutes" +msgstr "minuti" + +msgid "minute" +msgstr "minuto" + +msgid "hours" +msgstr "ore" + +msgid "hour" +msgstr "ora" + +msgid "days" +msgstr "giorni" + +msgid "day" +msgstr "giorno" + +msgid "weeks" +msgstr "settimane" + +msgid "week" +msgstr "settimana" + +msgid "months" +msgstr "mesi" + +msgid "month" +msgstr "mese" + +msgid "years" +msgstr "anni" + +msgid "year" +msgstr "anno" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Questa cartella contiene %s file, per un totale di %s %s." + +msgid "This directory contains no files." +msgstr "Questa cartella non contiene file." + +msgid "%d %s ago" +msgstr "creato %d %s fa" + +msgid "Directory listing for " +msgstr "Lista dei file presenti in: " + +msgid "Parent Directory" +msgstr "Cartella Precedente" + +msgid "Back" +msgstr "Indietro" + +msgid "Home Directory" +msgstr "Cartella Principale" + +msgid "Reload" +msgstr "Aggiorna" + +msgid "Search..." +msgstr "Cerca..." + +msgid "Search for \"%s\" in %s" +msgstr "Cerca \"%s\" in %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Trovati %s file, per un totale di %s %s." + +msgid "No search result." +msgstr "Nessun risultato." + +msgid "not accesible" +msgstr "non accessibile" + +msgid "Audio file" +msgstr "File Audio" + +msgid "Image file" +msgstr "File di Immagine" + +msgid "Application" +msgstr "Applicazione" + +msgid "Web document" +msgstr "Pagina Web" + +msgid "Text document" +msgstr "File di Testo" + +msgid "Directory" +msgstr "Cartella" + +msgid "Compressed package" +msgstr "Archivio Compresso" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Nome" + +msgid "Last modification" +msgstr "Ultimo aggiornamento" + +msgid "Size" +msgstr "Dimensione" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/nl/LC_MESSAGES/default.mo b/files/.pdirl/languages/nl/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..2e99f885b6abbe10869dc9ab473f27c6d499e113 GIT binary patch literal 2232 zcma)+&ub(_6vs=Ax;y@kKX+Hx+GxTqrpK9V;>IzCoy|eH|LRn>d1-s>NS zhu#-xV;GNOG;b1O3cPwVCbX4Xgg6eq0Nw$<3KqZs90C(?7~BC_?``lQ@I7!G{0zJs zybkiZpTYaU-$7nKgo)+j;Jx4}@HTK9d=NYj^1claU9>RW1+Ig$;0AaGyawJ0eg$G{ z@g0aRuIKy#ycP0KAn*SRcsux8{{GMW{a+yOKLlmg8wOeL1c*=K42Ukqa(O(L%iueR z-35@>e~rcL@An|vbpymF@hf-__y@>#4q8 z`-LFuy^+g1Alv_DF24(+iw`mJ`j0`@|0I_`&*d*bglmv?;IbF@d$<(_2sCQDlnqj??+)*xzK1)P5scwjW8l{Np*W-&cywMtR-Le zA*+ByEljBEOtO3UB%{!}PzQ3uBvQQ+l&~v}Tv4p31g9L?WR)VLe9_9(*rt(D zJHls<+Wc*?SQIT7Alh`rN#Ar+wp6q?Lo5A#2W8i2r$Rlj`2RTbU(0nCQd<-+QRnb9 zU+oGED>hA<3??h$P^XS^K!gRG*=&V2PO5H~Y}mp5Sb}+e4l8zudV|S|T{u3NtXN6R z7H-RH_}+_@SX^;M_TgYuSf##6oVRF$(DyE-f%V#^BInndO}SKEtjn4DVztq{SgqAo z>#f#oVP(1P%_THQ6R)NmRpdmeJmHn5yz&J+RwgE&DxpEqTcz!g&pOmAd8M*9ah~t0i(y1Us|zE{68h}J*+o|dIjW%8NKpLK76G$olY2P@^-P8vqOEKf~L zJ$tT@mtBBt@=1%fp}w*fXJ(bxA?p+_wM|JHh=vaEx#v)Ny&gHSsQNr`(@CJVNp2f1 zH?Af}F;`hY+eiu0GA1VpVV2qB!tsco3`&KtPL=k&0no2p8 zUO+qH)?OI+Vo9l3EbxANhI(1qApta3Z$L@5!DUJ!#Xh|P9jFeBJ5qPqYp%P6%p5q` zv+khuYP3g3O0PrP%CWWkbw@h;i>N5`fy+5}tSJ69sN@9*-^G?f0dDbcN&F22Q3F~4 literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/nl/LC_MESSAGES/default.po b/files/.pdirl/languages/nl/LC_MESSAGES/default.po new file mode 100644 index 0000000..76d878f --- /dev/null +++ b/files/.pdirl/languages/nl/LC_MESSAGES/default.po @@ -0,0 +1,135 @@ +# Dutch translation for pdirl +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the pdirl package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-01-23 20:18+0000\n" +"Last-Translator: cumulus007 \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "seconden" + +msgid "second" +msgstr "seconde" + +msgid "minutes" +msgstr "minuten" + +msgid "minute" +msgstr "minuut" + +msgid "hours" +msgstr "uren" + +msgid "hour" +msgstr "uur" + +msgid "days" +msgstr "dagen" + +msgid "day" +msgstr "dag" + +msgid "weeks" +msgstr "weken" + +msgid "week" +msgstr "week" + +msgid "months" +msgstr "maanden" + +msgid "month" +msgstr "maand" + +msgid "years" +msgstr "jaren" + +msgid "year" +msgstr "jaar" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Deze directory bevat %s element(en) totaal %s %s in grootte." + +msgid "This directory contains no files." +msgstr "Deze directory bevat geen bestanden." + +msgid "%d %s ago" +msgstr "%d %s geleden" + +msgid "Directory listing for " +msgstr "Mapweergave voor " + +msgid "Parent Directory" +msgstr "Hogere map" + +msgid "Back" +msgstr "Terug" + +msgid "Home Directory" +msgstr "Persoonlijke map" + +msgid "Reload" +msgstr "Herladen" + +msgid "Search..." +msgstr "Zoeken..." + +msgid "Search for \"%s\" in %s" +msgstr "Zoeken voor \"%s\" in %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s item(s) gevonden met een totaalgrootte van %s %s." + +msgid "No search result." +msgstr "Geen zoekresultaten." + +msgid "not accesible" +msgstr "niet toegankelijk" + +msgid "Audio file" +msgstr "Audiobestand" + +msgid "Image file" +msgstr "Afbeelding" + +msgid "Application" +msgstr "Toepassing" + +msgid "Web document" +msgstr "Webdocument" + +msgid "Text document" +msgstr "Tekstdocument" + +msgid "Directory" +msgstr "Map" + +msgid "Compressed package" +msgstr "Ingepakt pakket" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Naam" + +msgid "Last modification" +msgstr "Laatst gewijzigd" + +msgid "Size" +msgstr "Grootte" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/pl/LC_MESSAGES/default.mo b/files/.pdirl/languages/pl/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..ef8780f074fdad19c87e56f78ef97d9a6cdd6d33 GIT binary patch literal 2278 zcma)+O>7%Q6vrPBpfz8me3tStEu>0B*4UvTttnB{CV{BV2eC`5a$&MNu_wEpv37QG zZ4ifwUN~?9s)}=k1V`XjPBip}df-rm0Ko->kdWZO35oynZsG_DsiU3w?OV_LoO%9X z_t5)kjrDaTn0Zt z?IuCa^J^%x-nSsjKY?uTcP#gVe}Vk_4lFysU0@m919H7ifG|a8K;HjaE~nsL$ZvpL z_X{A`=VOrT_*pK01>&J=`Sv2l0sCL-+;Z5m?D#)9T-YWl`iq*}@(BW_eAHjz=pTi_IrHp1ziD$+}~ zrNqGGdFidfKoQ*N9SI8UQxD2|*op|Kq^Rj5kSNO3W|x{|GmShl!t zO>v|h9gTF+#*L}M!u-PQAj5L8R5*^x;YhuDw~bH}9P=~n2#5K+fS1^*u4Dpd|Xmt}R@dr=t`XBlm2 zijmb+M}a6$j87aME#%FYs8-4+)QDw^mLnaCe*4iWmngqSwJ>Ww+mWV=_6xO2=!8Tg z*~TUXoiQ>}Jrvt=U*)&-%TGIFV&mME^L`JivF)|AjI-7&ZmG`LmhE(DX*HHTT5^d@ zP=|$vn)kV!cr`6G_&ohMyoCLjmr{| z;V%P!beu$S;MQs7Yjzv-5cAs<7)=ce!N{B=-O;QaWrj>f6Qa8K!Y>#7?g%6`O7Lp= jmxhcCw`hpJLYb2llWy)O>B5WABhZO$NN9l(IZFQm4PhcO literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/pl/LC_MESSAGES/default.po b/files/.pdirl/languages/pl/LC_MESSAGES/default.po new file mode 100644 index 0000000..a0e89ab --- /dev/null +++ b/files/.pdirl/languages/pl/LC_MESSAGES/default.po @@ -0,0 +1,135 @@ +# Polish translation for pdirl +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the pdirl package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-04-27 19:07+0000\n" +"Last-Translator: Michał Parniak \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "sekund(y)" + +msgid "second" +msgstr "sekunda" + +msgid "minutes" +msgstr "minut(y)" + +msgid "minute" +msgstr "minuta" + +msgid "hours" +msgstr "godzin(y)" + +msgid "hour" +msgstr "godzina" + +msgid "days" +msgstr "dni" + +msgid "day" +msgstr "dzień" + +msgid "weeks" +msgstr "tygodni(e)" + +msgid "week" +msgstr "tydzień" + +msgid "months" +msgstr "miesięcy(ące)" + +msgid "month" +msgstr "miesiąc" + +msgid "years" +msgstr "lat(a)" + +msgid "year" +msgstr "rok" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Ten katalog zawiera %s elementów, łączny rozmiar %s %s." + +msgid "This directory contains no files." +msgstr "Ten katalog nie zawiera żadnych plików." + +msgid "%d %s ago" +msgstr "%d %s temu" + +msgid "Directory listing for " +msgstr "Katalog " + +msgid "Parent Directory" +msgstr "Katalog nadrzędny" + +msgid "Back" +msgstr "Wstecz" + +msgid "Home Directory" +msgstr "Katalog Domowy" + +msgid "Reload" +msgstr "Odśwież" + +msgid "Search..." +msgstr "Szukaj..." + +msgid "Search for \"%s\" in %s" +msgstr "Szkukaj \"%s\" w %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Znaleziono %s elementów, łączny rozmiar %s %s." + +msgid "No search result." +msgstr "Brak wyników wyszukiwania." + +msgid "not accesible" +msgstr "nieosiągalne" + +msgid "Audio file" +msgstr "Plik Audio" + +msgid "Image file" +msgstr "Obraz" + +msgid "Application" +msgstr "Program" + +msgid "Web document" +msgstr "Dokument sieciowy" + +msgid "Text document" +msgstr "Dokument tekstowy" + +msgid "Directory" +msgstr "Katalog" + +msgid "Compressed package" +msgstr "Skompresowany pakiet" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Nazwa" + +msgid "Last modification" +msgstr "Ostatnia modyfikacja" + +msgid "Size" +msgstr "Rozmiar" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/ro/LC_MESSAGES/default.mo b/files/.pdirl/languages/ro/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..577a6cfd4e75a53b9a2ebe6546e4d2fce589432d GIT binary patch literal 2302 zcma)+%WoVt9LEiWM;FQ?JlawoZs>+q$t=5R)1(Vj+HMk9DM>@Jfk<$1X1u#5v-U8y zlcwS?;J~RIIUvCS0S8Xpxb#r&aHxdf00)o|LgGLrBn02z%ya0B<6W~YSec*Kv zrr9?jE_S2fci^3P{sAQWKZAFJzZLIq7VrN8$^IB7)4Xwz<{bm^iJbs(vB~0jx_GXE z*HODUkkH z1(?NA@ES;Qd<7x|_I1H;L5l0gg1>^~=O#$@{{&I4?94p_K8}7IoxYL3GCJ9N8lBq7 z9GOkBLucbDbgJc`(fN4*o${ha=K^kq?HKMR(H}vlno}MW`@!~P@jx}CbDh<+c=s?! zXM4~%ZfI|)E>vTxD=SC5Y`N$f)<}|Ag~BPLS;I%l@Q#WlyC}jP)-?SjmDb9LCwLZJ z$re;9LubI{Ng6@AH84YyLHVUHs&AG-=$6DhnLFtRRVBOF1i;$zvg45nJw?jeJ!N?`NRWp{JE3$I@&8HYzn1H~q_)CdliMS2k=SSG zmi3HJv%#{y(%#7ectixfe6&m($3+-QtG2N}RwBHpfMt79?qq{y`$#++EL%&>o7kPaXtSp;l$M3=dYprxEkz&Eth81ZN8uyzQWIsteg*CQ1fe! zJ&{`JUfgUi1@ohMmZLpt-CVpDQKWk2v)KslwPJ>kZhUKA~9mlo?#g@Gfenq5)2AWNKT r^g_V{ImccLhC#88NJTDUQZ9a!0)Hf;WE&!J0>=SwiaW)G#--Rl>f#$% literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/ro/LC_MESSAGES/default.po b/files/.pdirl/languages/ro/LC_MESSAGES/default.po new file mode 100644 index 0000000..ee0092c --- /dev/null +++ b/files/.pdirl/languages/ro/LC_MESSAGES/default.po @@ -0,0 +1,133 @@ +msgid "" +msgstr "" +"Project-Id-Version: pdirl 1.0.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2012-01-10 16:21+0000\n" +"Last-Translator: Tudorancea Andrei \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" +"X-Poedit-Country: ROMANIA\n" +"X-Poedit-Language: Romanian\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "seconds" +msgstr "Secunde" + +msgid "second" +msgstr "secunda" + +msgid "minutes" +msgstr "minute" + +msgid "minute" +msgstr "minut" + +msgid "hours" +msgstr "ore" + +msgid "hour" +msgstr "ora" + +msgid "days" +msgstr "zile" + +msgid "day" +msgstr "zi" + +msgid "weeks" +msgstr "Saptamani" + +msgid "week" +msgstr "Saptamana" + +msgid "months" +msgstr "luni" + +msgid "month" +msgstr "luna" + +msgid "years" +msgstr "ani" + +msgid "year" +msgstr "an" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Acest director contine %s fisiere cu un total de %s %s." + +msgid "This directory contains no files." +msgstr "Acest director nu contine fisiere." + +msgid "%d %s ago" +msgstr "%d %s vechime" + +msgid "Directory listing for " +msgstr "Continutul directorului " + +msgid "Parent Directory" +msgstr "Inapoi ..." + +msgid "Back" +msgstr "inapoi" + +msgid "Home Directory" +msgstr "Director Acasa" + +msgid "Reload" +msgstr "Reincarca" + +msgid "Search..." +msgstr "Cautare ..." + +msgid "Search for \"%s\" in %s" +msgstr "Cautare dupa \"%s\" in %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s fisiere gasite cu dimensiunea totala de %s %s." + +msgid "No search result." +msgstr "Nu s-au gasit fisiere conform cautarii." + +msgid "not accesible" +msgstr "fara acces" + +msgid "Audio file" +msgstr "Fisier audio" + +msgid "Image file" +msgstr "Fisier imagine" + +msgid "Application" +msgstr "Aplicatie" + +msgid "Web document" +msgstr "Document Web" + +msgid "Text document" +msgstr "Document Text" + +msgid "Directory" +msgstr "Director" + +msgid "Compressed package" +msgstr "Fisier arhivat" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Nume" + +msgid "Last modification" +msgstr "Ultima modificare" + +msgid "Size" +msgstr "Marime" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/ru/LC_MESSAGES/default.mo b/files/.pdirl/languages/ru/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..7001a5190ea22ea586046a25c6665508322523f5 GIT binary patch literal 2599 zcma)+TWl0n7{`xTFRUnv3L+|pYOxzT>u#X}3pNy5q;ZS2yC?=!0q6Ea4q-_NOfEQ+rV!@is$!u zpWVpVgOE8${&s^@uV+At-vOx}FM;=ihrvAf8MqZ(f}&D<-5@@(JV^S_g5<{pDZXm_ z{pDDm1}XlxLF)U*Ao-n-_rC@yo{J#ay9AQnA0XLXj>ELS5=6PeJ4f-|jkyMsdWRB* zIV07u765yI77UnSbT!H6eV7zueURPdnBIbayE)s(C9WYcqJ8T)yF(4v>avTkR2|pT24u-Jv>kp)Y6U0DckRvP z_@17DKEADQpr=2#y{ET#s4t)IP7FR#&~~~aye3+&?ujh#OlLZ^beERdgx756#)r}v zP}GLR^CtOf=%uyv1}&53nT^@bEs-AeS1Y)>EiE0_Da(5-aY(lf;qu4*VO^HduWftn z1GaO}?oQ-%yX50;Xa%8HvV6#w($t~g`r9ot<+!Ep#6bT*Un9#*DxKJg>Y=S#VYG^H zJ+%7as)dGb<;Ak@O5r`ax3Ejw+|Z+FMue;N*+pDDyOiadhfOcBPs{1PT`X61L+d*f z*6peaZ06~7cH<*aX8W|qge}}CtIH>O`>=0X2G4YLc5O)};vb+ouV&R3m}i(e5saxh zbxtj+&s7Z@bE?MFkzi7t!RsOqUV+-YI>*$zjWb7rvEWr~pJM8`nhhqfLk3Pq))s?t zwV)P*iC~PYv(5Wzmc#71V1`HL<{^>Kh8tKpmBlZngX8UF@Ftwhb3{ntE~r{CMw@t2 zOdW;B0<6Cg20ee3E2fU&2-%>+O{twgWa9|82H)qg);N5G#zQeKz%jKD%rNyK&La6> ziqj@7B!@uzPIi+2 zRc59>C673KWkyjs{^sGbdDu?je_{9^f{coX5}^FSOgmzqPqN^3G;%yfJvfHU=Abl* z5N4Z%_FyVWVh!b(30`Y@rIR(J#iDMZKvXf5=u0XQL%dYPN$j41#bz, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-03-10 14:29+0000\n" +"Last-Translator: Alexander Kubashin \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "секунд(ы)" + +msgid "second" +msgstr "секунда" + +msgid "minutes" +msgstr "минут(ы)" + +msgid "minute" +msgstr "минута" + +msgid "hours" +msgstr "часа(ов)" + +msgid "hour" +msgstr "час" + +msgid "days" +msgstr "дня(ей)" + +msgid "day" +msgstr "день" + +msgid "weeks" +msgstr "недели(ль)" + +msgid "week" +msgstr "неделя" + +msgid "months" +msgstr "месяца(ев)" + +msgid "month" +msgstr "месяц" + +msgid "years" +msgstr "года(лет)" + +msgid "year" +msgstr "год" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Каталог содержит %s файла(ов), общий размер: %s %s" + +msgid "This directory contains no files." +msgstr "Этот каталог не содержит файлов." + +msgid "%d %s ago" +msgstr "%d %s назад" + +msgid "Directory listing for " +msgstr "Просмотр каталога для " + +msgid "Parent Directory" +msgstr "Родительский каталог" + +msgid "Back" +msgstr "Назад" + +msgid "Home Directory" +msgstr "Домашний каталог" + +msgid "Reload" +msgstr "Обновить" + +msgid "Search..." +msgstr "Поиск..." + +msgid "Search for \"%s\" in %s" +msgstr "Поиск \"%s\" в %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "Найдено файлов: %s, общий размер: %s %s." + +msgid "No search result." +msgstr "Файлы не найдены." + +msgid "not accesible" +msgstr "не доступен" + +msgid "Audio file" +msgstr "Аудио файл" + +msgid "Image file" +msgstr "Изображение" + +msgid "Application" +msgstr "Приложение" + +msgid "Web document" +msgstr "web документ" + +msgid "Text document" +msgstr "Текстовый документ" + +msgid "Directory" +msgstr "Каталог" + +msgid "Compressed package" +msgstr "Архив" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "Имя" + +msgid "Last modification" +msgstr "Последнее изменение" + +msgid "Size" +msgstr "Размер" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/tr/LC_MESSAGES/default.mo b/files/.pdirl/languages/tr/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..19bc246e093d9080f95e2e3ab2880197feeb94bb GIT binary patch literal 2196 zcma)+O>7%Q6vqb$A2pv1AElI!X(3fBy2dsQEha>DnxsTHA;b<1LP8qvPVB+EGuF&5 zsUw6qaO#B%h)YFIsE0}jUwYye7fy%+94aA@KuB;yaDWpM|F^rYD+Cgwo%!vo-@LDR z&)-i@e84acV?K;ozk#u7@U0uMV65K6*dFj@@OJPuumHBf3DAO*;1)=7=fMZS_rYV} zCGalrDoE#k2KR!$gLHlZ3+?xS_kah$Tfk%B{ovCe>0JWxum+Yp!3}U0+yoDTAA@&* zUw}}}z5(&Dt2w^|Z^r&dko5lo-U|MjfB!T8{ufC4Cm>96lOW0M2k{d-2;yOf^Zl`W zUj{!!?oNP|r>}7MHt<`J{Q3!`^S^-)fq#GyWqYBV;@$^Nfk!}!cLk)pZGe>DHc0Z@ z-~sR*kn(u}gerCs+y{P=?>`4g{!5VJ`5G*NKY)*blW>mwEP>?LOwL-)#hfpKq<=N% zS&&NO^_&7EJwg6^FXt9W_TSF=E=YFH=X?)Dy3(3^9Hg93Ty%GIZVD5wvd1uKJdq*I z4cVvKcodUzG#Zr0yD=%>G^j3M=Gxegx5JqCVLpgS{!k9DACwy!6cgp0aylCK;)QB^ zG&o+Ub}2uU<3pHiD&SL&i?(64UN2O>h?UW-mITW1O%+NuC;TouZK9r)&dGrHuorE~ z=9QIxY;1r0#zW;|rQ3YdSk4wrqEqEEl#$f&5qFfwCKh2xA~1?aY3|gvEV36&B>7n7 zQUnv3{km{5k4&I8N6xK?NU{~fofOvZaQKykagnVG3oF+tS(Bj=0c&Jpm1(Px;B zbxdN@#j!}~B$hd_g$JE%bxfO>3*VPcwQxU9!o47eV_Q;o)5Wnq0#6smR;_shx8*Gb z-Ye2NTyd565MWqXlRaZ&Z`rj~;LRm%=QT~0FRs_?e5JO$z-JbgYfJT0wfXtAg+^nx zu=-NdJ8flJCf>Y=WtCS-<%(CD_R1&lTCE&^vV;LaZ%w|b$kte{?3K!1rNS$f>hyFb zNB8SBtsvz2Um9D;lK_DVMOm}#IB6d zeA`NAYubKkeR780+Pys7k-U|JXv3t)n+9P=yk+`HT+P~#)wDpFlY%u=Q#7{PFq#K) zxT9cGS-K83{1g(bW<@X@40nbDJsfOj+Tk<471{0ubZVyVRjKK}1JYWc)Y87Y@=;;~ zL8j?Db>1BL!j>ieGk8meZTP_El1v48m_?v=FCqthWB)yd(Sbnn4n$kZW?}HY>1K^K zQr+JDOtW-xLc}ax0?}1nf%Z#*M#KYaS9aijB)1`?RUb{3p(8e9!LqfFi(u*UH|V?u AjsO4v literal 0 HcmV?d00001 diff --git a/files/.pdirl/languages/tr/LC_MESSAGES/default.po b/files/.pdirl/languages/tr/LC_MESSAGES/default.po new file mode 100644 index 0000000..6dfa277 --- /dev/null +++ b/files/.pdirl/languages/tr/LC_MESSAGES/default.po @@ -0,0 +1,135 @@ +# Turkish translation for pdirl +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the pdirl package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2011-01-22 22:55+0000\n" +"Last-Translator: Tubilmer.com.tr \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "saniye" + +msgid "second" +msgstr "saniye" + +msgid "minutes" +msgstr "dakika" + +msgid "minute" +msgstr "dakika" + +msgid "hours" +msgstr "saat" + +msgid "hour" +msgstr "saat" + +msgid "days" +msgstr "gün" + +msgid "day" +msgstr "gün" + +msgid "weeks" +msgstr "hafta" + +msgid "week" +msgstr "hafta" + +msgid "months" +msgstr "ay" + +msgid "month" +msgstr "ay" + +msgid "years" +msgstr "yıl" + +msgid "year" +msgstr "yıl" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "Bu dizin %s öğe içeriyor. Toplam boyut: %s %s" + +msgid "This directory contains no files." +msgstr "Bu dizinde hiçbir dosya yok." + +msgid "%d %s ago" +msgstr "%d %s önce" + +msgid "Directory listing for " +msgstr "Dizin listeleme " + +msgid "Parent Directory" +msgstr "Üst dizin" + +msgid "Back" +msgstr "Geri" + +msgid "Home Directory" +msgstr "Ana dizin" + +msgid "Reload" +msgstr "Yenile" + +msgid "Search..." +msgstr "Ara..." + +msgid "Search for \"%s\" in %s" +msgstr "Aranan: \"%s\" Şurda: %s" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "%s öğe bulundu. Toplam boyut: %s %s" + +msgid "No search result." +msgstr "Aradığınız bulunamadı." + +msgid "not accesible" +msgstr "erişilemez" + +msgid "Audio file" +msgstr "Ses dosyası" + +msgid "Image file" +msgstr "Resim dosyası" + +msgid "Application" +msgstr "Uygulama" + +msgid "Web document" +msgstr "Web belgesi" + +msgid "Text document" +msgstr "Metin belgesi" + +msgid "Directory" +msgstr "Dizin" + +msgid "Compressed package" +msgstr "Sıkıştırılmış paket" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "İsim" + +msgid "Last modification" +msgstr "Son değiştirilme" + +msgid "Size" +msgstr "Boyut" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/languages/zh_CN/LC_MESSAGES/default.mo b/files/.pdirl/languages/zh_CN/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..67e8fd570d51a7aba6d23086341d345d669cba7f GIT binary patch literal 2205 zcma)*Uu+ab9LEQ(3g>?W6;T<`5(w;hE!5(P4W%v8D}&SXU|e% zl!PGVPyYZd)o`(vl(dMDDu^wm_+sLlPd*ThKA79R-V=#2@yW#R?9Oq-XyRmNKJ(`{ zzkl=FUzb*m5VW=E&!a~c5mE=fe;)?4j{6B&0=@-4488*fz$91&THsQ!2NZJ0!KcAt za3gpLda3=aIX5Q26l^E(;bV{{V%)MNlU87lR_M<)E;)3akbdxgQ0E+&;W>DDKDY;8>kK{f{O|lyl zep;Z=^P%Knd45!KK<hZJss$_eDCuNrQ`Jb+7ZX0Mspe~h z&1x=pgTWw)!T}Ov2W+aD@tp9K#8Nt^S~)-(Hw|0W4bS8M6U={IH~f_HAbFd0Rjg@h zFG1%dW#%kz;3T6PIh#pf2@g{K$cbUvRE@_O*SqjOoWVU!f|DM`y1jvuUIgw9oOD>` ze!P~_swsPz#qq>pnni%=Kqt$ZmaVk$q^>F3b4jkm%rM=tI})MojcqM-YfD>WYh+tv zb8}})G};j8*cDTnEasJo(yZDnOlw0mwMwW?sj0^_T)TNg2n~WtCwos9wkmQVCA3+o zt*4>-a8120C*D_yS*pR)D#|HLdCp4MDW>Wc-MZW8Hq0KQArMiGWDYf<#F&~1)25Ve zFwW?@sGdR9CUmB)r&|xE-fe2%mezx&m23#KwYIfXqOA#r0!_#wo>z(WX5qGtCx0cI z#>2i&<0;kR%zk5cY=^R?A}72`FiUAM;wV5P8KzshbUUzDiKsavp3174(sIDd-#;?3 zg@!`m&9C|q?p5Ao2DAL=?%t&9x^jA2qcwH4b+4@t$RDvVd%`)^Pn;XW#o?*q)CuRt zASsPqEuBB*o;_NayH1>;fzqKv#2GkIym?XX`EVv?iJbL~E{so6;vT!@^i9)hTA2CV zKe==Bq;up;`SUpwlg{)YDa_0j&s}lmM~HLomUDPeDlL3_#T}k?N3WMgufb}6adMit zUyZx@WA0GCc

~?u`3s9=DGdZ%kG^C>`y0&rUDQ&pSsh5GOw+Y!zlM`**w_koa@) z>y@v0eqiC|zmV3Qp~L0FS?A;tXXuiz=wIR>?&S$zwlLH0%NFM53iBgURdN1QY5eQ5 z-ieFE5q)|Pq1{E_N2Swa#PK1rmG47j9^BE-+^ZuC1K&7, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pdirl\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-05-17 20:24+0000\n" +"PO-Revision-Date: 2010-04-27 07:17+0000\n" +"Last-Translator: surftheair \n" +"Language-Team: Chinese (Simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-18 00:46+0000\n" +"X-Generator: Launchpad (build 15259)\n" + +msgid "seconds" +msgstr "秒" + +msgid "second" +msgstr "秒" + +msgid "minutes" +msgstr "分钟" + +msgid "minute" +msgstr "分钟" + +msgid "hours" +msgstr "小时" + +msgid "hour" +msgstr "小时" + +msgid "days" +msgstr "天" + +msgid "day" +msgstr "天" + +msgid "weeks" +msgstr "星期" + +msgid "week" +msgstr "星期" + +msgid "months" +msgstr "个月" + +msgid "month" +msgstr "个月" + +msgid "years" +msgstr "年" + +msgid "year" +msgstr "年" + +msgid "This directory contains %s element(s) totalling %s %s in size." +msgstr "吃文件夹包含 %s 个文件,共 %s %s" + +msgid "This directory contains no files." +msgstr "此文件不包含任何文件" + +msgid "%d %s ago" +msgstr "%d %s 之前" + +msgid "Directory listing for " +msgstr "文件列表 " + +msgid "Parent Directory" +msgstr "上级文件夹" + +msgid "Back" +msgstr "后退" + +msgid "Home Directory" +msgstr "主目录" + +msgid "Reload" +msgstr "重新载入" + +msgid "Search..." +msgstr "搜索..." + +msgid "Search for \"%s\" in %s" +msgstr "在 %s 中搜索 \"%s\"" + +msgid "Found %s element(s) totalling %s %s in size." +msgstr "找到 % 个文件,共 %s %s 大小" + +msgid "No search result." +msgstr "没有搜索结果" + +msgid "not accesible" +msgstr "无法获取" + +msgid "Audio file" +msgstr "音频文件" + +msgid "Image file" +msgstr "图像文件" + +msgid "Application" +msgstr "应用程序" + +msgid "Web document" +msgstr "网页文件" + +msgid "Text document" +msgstr "文本文件" + +msgid "Directory" +msgstr "文件夹" + +msgid "Compressed package" +msgstr "压缩文件" + +msgid "Unknown file type" +msgstr "" + +msgid "Name" +msgstr "名称" + +msgid "Last modification" +msgstr "修改时间" + +msgid "Size" +msgstr "文件大小" + +msgid "%s elements" +msgstr "" diff --git a/files/.pdirl/pdlc.class.php b/files/.pdirl/pdlc.class.php new file mode 100644 index 0000000..ae3910e --- /dev/null +++ b/files/.pdirl/pdlc.class.php @@ -0,0 +1,760 @@ + configuration($configuration); + $this -> host = $conf['host']; +// $this -> scriptPath = $conf['scriptpath']; + $this -> scriptPath = $this -> rewriteScriptPath(); + $this -> ignore = $conf['ignore']; + $this -> countElements = $conf['countelements']; + $this -> sortOptions = $conf['sort']; + $this -> userSort = $conf['usersort']; + $this -> types = $conf['types']; + $this -> listHidden = $conf['listhidden']; + $this -> searchEnabled = $conf['searchenabled']; + $this -> searchTag = $conf['searchtag']; + $this -> searchHidden = $conf['searchhidden']; + $this -> searchCaseSensitive = $conf['searchcasesensitive']; + $this -> modRewrite = $conf['modrewrite']; +// $this -> directoryPrefix = $conf['directory']; +// // strip double prefixes +// $this -> directory = $this -> stripDoublePrefix(@$_GET['directory'], $this -> directoryPrefix); + // make the path more secure and remove illegal characters + $this -> directory = $this -> rewritePath(@$_GET['directory']); + $this -> sessionSort(); + } + + + /** + * Adjusts user configuration with default configuration. + * If a configuration key has an empty value, use a default value instead + * @param array $configuration + * @param array $default + * @return array + */ + public function configuration($configuration, $default = false) { + if (!$default) { + $default = array( + 'host' => $_SERVER['HTTP_HOST'], +// 'scriptpath' => $this -> rewriteScriptPath(), +// 'directory' => '', + 'ignore' => array("index.php", ".htaccess", ".pdirl"), + 'countelements' => true, + 'sort' => array('key' => 'name', 'sort' => "SORT_ASC"), + 'usersort' => true, + 'listhidden' => false, + 'searchenabled' => true, + 'searchtag' => @$_GET['search'], + 'searchhidden' => false, + 'searchcasesensitive' => false, + 'modrewrite' => @$_GET['modrewrite'], + ); + } + if (!$configuration) + return $default; + foreach ($default as $key => $defaultValue) { + if (isset($configuration[$key])) { + // If configuration is empty, use the default value + if ($configuration[$key] === '') + $configuration[$key] = $defaultValue; + } + } + return $configuration; + } + + + /** + * Makes path more secure. + * Please try to hack this, I'm not very sure if this is the most secure function + * @return string + */ + private function rewritePath($path) { + $path = './'.$path.'/'; + if (count($path) > 0) { + if ($path == './') { + return ''; + } else { + if (($path[0] == '.' OR $path[0] == '/') AND $path[0].$path[1] != './') + return ''; + $search = array ("..", "//", ".?", ".*", "././", "/./"); + $replace= array ("", "/" , "", "", "./", "/"); + while ($path != str_replace($search, $replace, $path)) + $path = str_replace($search, $replace, $path); + } + } + return $path; + } + +// /** +// * Returns current directory path with the directory path in the configuration. +// * Because you get a double suffix when you list a subdirectory with pdirl (suffix + path) +// * it must be removed. +// * @return string +// */ +// function stripDoublePrefix ($path = false, $prefix = false) { +// if (!$path && !$prefix) { +// return ''; +// } elseif (!$path) { +// return $prefix; +// } elseif (!$prefix) { +// return $path; +// } else { +// // double prefix to search and to destroy ;-) +// $prefixSearch = $prefix.$prefix; +// // Escape . \ + * ? [ ^ ] ( $ ) +// $prefixSearch = quotemeta($prefixSearch); +// // Also strip something like '//' and '/./' +// $prefixSearch = $this -> rewritePath ($prefixSearch); +// // Escape '/', too +// $prefixSearch = str_replace('/', '\/', $prefixSearch); +// // Replace the double prefix with the normal prefix +// return preg_replace("/^{$prefixSearch}/", $prefix, $this -> rewritePath($prefix.$path)); +// } +// } + + /** + * returns a legal script path + * @return string + */ + private function rewriteScriptPath() { + // make sure the path contains no illegal characters + $scriptPath = $this -> rewritePath($_SERVER['PHP_SELF']); + // delete the "." at the beginning of the path + $scriptPath = str_replace('./', '/', $scriptPath); + // delete the slash at the end + $scriptPath = rtrim($scriptPath, '/'); + return $scriptPath; + } + + +// /** +// * script path should'nt be part of current directory path, to prevent double bredcrumbs. +// * @return string +// */ +// function currentDirectoryOnly($currentDir = false, $scriptPath = false) { +// if (!$currentDir) +// $currentDir = $this -> getCurrentDirectory(); +// if (!$scriptPath) +// $scriptPath = $this -> getScriptPath(); +// if (strpos($currentDir, $scriptPath) === 0) +// $currentDir = substr_replace($currentDir, "", 0, strlen($scriptPath)); +// else +// return $currentDir; +// } + + /** + * Returns formatted path, when modrewrite is inactive it will return the path via GET + * @param string $path + * @return string + */ + public function urlPath($path) { + $path = $this -> rewritePath($path); + if (!$this -> modRewrite) + return "?directory=".urlencode($path); + else + // because basename() sucks on foreign characters, I use explode -> array_pop + return htmlspecialchars($this -> getScriptDirectory()).'/'.$this -> encode($path); + } + + /** + * urlencode on everything except the slashes + * @param array $path + * @return unknown_type + */ + public function encode($path) { + if (!is_array($path)) { + $path = explode ('/', $path); + } + $newPath = array(); + foreach ($path as $pathElement) { + $newPath[] = rawurlencode($pathElement); + } + return implode('/', $newPath); + } + + /** + * Sorts array columns + * @link http://us.php.net/manual/en/function.array-multisort.php#83117 php_multisort + * @author + * @uses array_multisort + * @param multi-dimensional_array $elements [optional] + * @param array $sortOptions [optional] + * @return array + */ + public function sortElements($elementsVar = false, $sortOptions = false) { + if (!$elementsVar) { + if (!empty($this -> elements)) { + $elements = $this -> elements; + } else { + return false; + } + } else { + $elements = $elementsVar; + } + if (!$sortOptions) + $sortOptions = $this -> sortOptions; + foreach($elements as $elementKey => $elementData) { + $columns[$sortOptions['key']][$elementKey] = $elementData[$sortOptions['key']]; + } + // $idkeys is a key-index + $idkeys = array_keys($elements); + array_multisort(array_map('strtolower', $columns[$sortOptions['key']]), constant($sortOptions['sort']), $idkeys); + // if we have no idkeys, we'll return false + $result = false; + foreach($idkeys as $idkey) { + // apply new sorting + $result[$idkey] = $elements[$idkey]; + } + if (!$elementsVar) + $this -> elements = $result; + return $result; + } + + + /** + * + * @param string $file + * @return string + */ + public function getType($file) { + if (is_dir($file)) + return 'directory'; + $typeList = $this -> types; + $pathinfo = pathinfo($file); + if (isset($pathinfo["extension"])) + $extension = strtolower($pathinfo["extension"]); + else + $extension = ''; + // MIME-type will be split in two parts, type and subtype + $mimeType = array("",""); + + // via mime_content_type, the most exact method to get the mime-type, deprecated in 5.3 + if (function_exists('mime_content_type')) { + // MCT is "mime_content_type", I use this name to separate from the mimeType that should be set + if ($mctType = mime_content_type($file)) { + $mimeType = explode('/', $mctType); + } + + // via Fileinfo, "alternative" for mime_content_type() + // Problems with Fileinfo + // + // + } elseif (function_exists('finfo_open')) { + $finfoHandler = finfo_open(FILEINFO_MIME); + if ($finfoType = finfo_file($finfoHandler, $file)) { + // + // "contrary to the documentation, finfo_file seems to be returning a + // semicolon delimited string that contains not just the mime type but also the character set." + $finfoType = explode(';', $finfoType); + $mimeType = explode('/', $finfoType[0]); + } + finfo_close($finfoHandler); + + // via Unix file command + } elseif (array_search(php_uname('s'), array('Linux', 'FreeBSD', 'Mac OS X', 'Solaris')) !== false) { + // output buffer, "records" what the shell returns + ob_start(); + // --mime-type returns mime-type only w/o mime-encoding, -b keeps it brief, w/o the path of the file + system('/usr/bin/file --mime-type -b ' . escapeshellarg(realpath($file))); + $unixFileType = ob_get_contents(); + if (stristr($unixFileType, 'error') == false) { + $mimeType = explode('/', $unixFileType); + } + ob_clean(); + } + + // + $subtype = ""; + if(count($mimeType) > 1){ + $subtype = $mimeType[1]; + } + $mimeType = array('type' => $mimeType[0], 'subtype' => $subtype); + + // search for MIME-type and extension in $typeList, if found, break foreach + foreach ($typeList as $key => $value) { + if (in_array($mimeType['subtype'], $value)) { + return $key; + break; + } elseif ($mimeType['type'] == $key) { + return $key; + break; + // the last method: search in the extension list, that was defined in the config + } elseif (in_array($extension, $value)) { + return $key; + break; + } + } + // if no other type was returned, return "default", which means that the file type is unknown + return "default"; + } + + /** + * Checks if file/dir is ignored in configuration + * @return boolean + */ + private function ignored ($element, $ignoreList=false) { + if (!$ignoreList) + $ignoreList = $this -> ignore; + if(is_array($ignoreList) ) { + $ignoreList[] = '\/\.(\.)?$'; + foreach($ignoreList as $expression) { + $expression = str_replace(".", "\.", $expression); + if(preg_match("/$expression/", $element)) + return true; + } + } + return false; + } + + /** + * Replacement for sql_regcase + * @link http://de3.php.net/manual/en/function.sql-regcase.php#86011 + * @author + * @param string $string + * @param string $encoding + */ + private function iregcase($string,$encoding='auto'){ + $max = mb_strlen($string,$encoding); + $ret = ''; + for ($i = 0; $i < $max; $i++) { + $char = mb_substr($string,$i,1,$encoding); + $up = mb_strtoupper ($char,$encoding); + $low = mb_strtolower($char,$encoding); + $ret .= ($up!=$low)?'['.$up.$low.']' : $char; + } + return $ret; + } + + /** + * recursive glob() function + * @link http://de3.php.net/manual/en/function.glob.php#90278 + * @author + * @param string $pattern [optional] + * @param string $path [optional] + * @param mixed $flags [optional] + * @return + */ + private function rglob($pattern='*', $path='', $flags = 0) { + $dir = dirname($pattern); + if (!$path && $dir != './') { + return $this -> rglob(basename($pattern), $dir . '/', $flags); + } + $path = $this -> escapePathBrackets($path); + $paths = glob($path . '*', GLOB_ONLYDIR | GLOB_NOSORT); + $files = glob($path . $pattern, $flags); + + // if glob returns false + if ($paths == false) $paths = array(); + if ($files == false) $files = array(); + + foreach ($paths as $p) $files = array_merge($files, $this -> rglob($pattern, $p . '/', $flags)); + return $files; + } + + + /** + * Works like stat, but only for directories. + * A patchscript between http://us.php.net/manual/en/function.stat.php#61238 + * and http://de3.php.net/manual/en/function.filemtime.php#91665 + * @link http://de3.php.net/manual/en/function.filemtime.php#91665 + * @author + * @link http://us.php.net/manual/en/function.stat.php#61238 + * @author + * @param string $directory + * @return array + */ + private function rstat($directory) { + $files = $this -> rglob('*', $directory, 0); + $newestModification = 0; + $DirectorySize = 0; + foreach ($files as $val) { + $stat = @stat($val); + if ($stat['mtime'] > $newestModification) + $newestModification = $stat['mtime']; + $DirectorySize += $stat['size']; + } + return array('mtime' => $newestModification, 'size' => $DirectorySize); + } + + /** Counts number of elements in a directory + * @param string $directory + * @return interger + */ + public function countElementsInDir($directory) { + return count($this -> rglob('*', $directory, 0)); + } + + /** + * if search query was detected in URL or not, get the elements for the search/dirlist query + * @return array + */ + public function requestElements () { + if (!empty($this -> searchTag) && $this -> searchEnabled) { + $this -> getSearchElements(); + } else { + $this -> getDirectoryElements(); + } + } + + /** + * Returns all files in a directory + * @param string $directory [optional] + * @return array + */ + public function getDirectoryElements ($directory = '') { + if (!$directory) { + $directory = $this -> directory; + } + $directory = $this -> escapePathBrackets($directory); + if ($this -> listHidden) { + $elements = glob($directory.'{,.}*', GLOB_BRACE); //list hidden files ("."-prefix) + } else { + $elements = glob($directory.'*'); + } + $elements = $this -> getElementInfo($elements); + $this -> elements = $elements; + + return $elements; + } + + + /** + * Searches for $search and returns a array with paths to found files/directories + * @param string $search [optional] + * @param string $directory [optional] + * @return array + */ + public function getSearchElements($search = '', $directory = '') { + if (!$search) { + $search = $this -> searchTag; + } + if (!$directory) { + $directory = $this -> directory; + } + + if (!empty($search)) { + // Search for term in current directory + $search = htmlspecialchars($this -> searchTag); + # thx to + if (!$this -> searchCaseSensitive) + $search = $this -> iregcase($search); + $found = $this -> getElementInfo($this -> rglob("*$search*", $directory, 0)); + $this -> elements = $found; + return $found; + } else { + return false; + } + } + + + public function getElementInfo($elements, $directory = false) { + if (!$directory) + $directory = $this -> directory; + $list = array(); + if (is_array($elements)) { + foreach ($elements as $path) { + if (is_file($path) || is_dir($path)) { + if ($this -> ignored($path) === false) { + + + /* + * path => "./examples/sub directory" + * urlpath => "?directory=./examples/sub%20directory/" + * or with mod_rewrite: urlpath => "./examples/sub%20directory" + */ + + // If not in the directory where pdirl is + if (!empty($directory)) { + // The reason why pdirl is not compatible with PHP <5 + // + if (strpos($path, $directory) === 0 AND $this -> modRewrite) { + /* + * If you search with glob e.g. in "examples" you will get paths like "examples/foobar.mp3" + * The path should be shortened. + */ + $item['path'] = substr_replace($path, "", 0, strlen($directory)); + } else { + /* + * Okay, you will probably ask why I save the path of the file/folder + * Because of the sorting options - files and folders should be sorted according to their name and not + * their path. In version 0.9.2beta files and folders were sorted according to their path (only in search mode). + */ + $item['path'] = $path; + } + } else { + // Take absolute path + $item['path'] = $path; + } + + // if you have brackets etc. e.g. '' in your name htmlspecialchars would distort the name it wouldnt be accessible, + // so they are seperate variables for (display)name and pathname which is encoded with urlencode + // There is also 'urlpath' which is especially for using pdirl without modrewrite and adds (if needed) ?directory= before the url + $path_array = explode("/", $item['path']); + $item['name'] = array_pop($path_array); + $item['directory'] = is_dir($path); + $item['location'] = ''; + // pdirl needs location only when you search or + // modRewrite is on + if ($this -> modRewrite || $this -> getSearchTag() || !$item['directory']) { + $item['location'] = implode('/', $path_array); + $item['location'] .= '/'; + // Makes location path more secure + $item['location'] = $this -> rewritePath($item['location']); + } + // urlencode on everything except the slashes + $item['urlpath'] = $this -> encode($item['location'].$item['name']); + $stat = array('size' => 0, 'mtime' => 0); + $item['numberofelements'] = 0; + $item['countonly'] = false; + if ($item['directory']) { + if ($item['readable'] = is_readable($path) || is_executable($path)) { + if ($this -> countElements) { + $item['numberofelements'] = $this -> countElementsInDir($path) - 1; + $item['countonly'] = true; + } else { + $stat = $this -> rstat($path); + } + } + $item['urlpath'] = $this -> urlPath($directory.$item['location'].$item['name']); + } else { + // stat() is slow, but faster than using filemtime() & filesize() instead. + $stat = @stat($path); + // if stat() returns an error, we ignore it and convert it to false via the @ + $item['readable'] = (bool) $stat; + } + + $item['path'] = urlencode($item['path']); + $item['name'] = htmlspecialchars($item['name']); + $item['locationurl'] = $item['location']; + $item['location'] = htmlspecialchars($item['location']); + + + /* + * Ok, fine, what did I do with $item['readable']? I mark files and directories, + * that are not accessible with $item['readable'] = false; + */ + $item['bytes'] = $stat['size']; + $item['mtime'] = $stat['mtime']; + // Add this items file size to this folders total size + $this -> totalSize += $item['bytes']; + $item['type'] = $this -> getType($path); + $list[] = $item; + } + } + } + $this -> elements = $list; + } + return $list; + } + + /** + * allowing brackets in directory names + * http://sockittoemjt.tumblr.com/post/20481660360/managed-to-come-across-your-tumblr-whilst-googling-for + * https://bugs.php.net/bug.php?id=33047 + * returns directory path, but only that the brackets are escaped. + * @return string + */ + private function escapePathBrackets($directory = false) { + if ($directory == false) { + $directory = $this -> directory; + } + $escapedBracketPath = str_replace('[', '\[', $directory); + $escapedBracketPath = str_replace(']', '\]', $escapedBracketPath); + + /* Next, replace all "escaped" brackets with brackets like so */ + $escapedBracketPath = str_replace('\[', '[[]', $escapedBracketPath); + $escapedBracketPath = str_replace('\]', '[]]', $escapedBracketPath); + return $escapedBracketPath; + } + + + /** + * returns pdirl::elements + * @return array + */ + public function getElements () { + if (empty($this -> elements)) + return false; + else + return $this -> elements; + } + + /** + * returns pdirl::directory + * @return string + */ + public function getCurrentDirectory() { + if (!isset($this -> directory)) + return false; + else + return $this -> directory; + } + + + /** + * returns pdirl::scriptPath + * @return string + */ + public function getScriptPath() { + if (!isset($this -> scriptPath)) + return false; + else + return $this -> scriptPath; + } + + /** + * returns the directory of pdirl::scriptPath + * @return string + */ + public function getScriptDirectory() { + if (!isset($this -> scriptPath)) + return false; + else + $scriptDirectory = dirname($this -> scriptPath); + //if the script directory path is only consists of a slash, give out an empty string + if ($scriptDirectory == '/') + return ''; + else + return $scriptDirectory; + } + + + /** + * returns pdirl::host + * @return string + */ + public function getHost() { + if (!isset($this -> host)) + return false; + else + return $this -> host; + } + + + /** + * return pdirl::search + * @return string + */ + public function getSearchTag() { + if (!isset($this -> searchTag)) + return false; + else + return $this -> searchTag; + } + + + /** + * Returns number of elements + * @return interger + */ + public function getNumberOfElements() { + if (!isset($this -> elements)) + return false; + else + return count($this -> elements); + } + + + /** + * return pdirl::totalSize + * @return interger + */ + public function getTotalSize() { + if (!isset($this -> totalSize)) + return false; + else + return $this -> totalSize; + } + + /** + * Returns "asc", if $sorting is "desc". Returns "desc", if it's "asc". + * @param $sorting + * @return string + */ + public function adesc($sorting) { + if ($sorting == "SORT_ASC") + return "SORT_DESC"; + elseif ($sorting == "SORT_DESC") + return "SORT_ASC"; + else + return "SORT_ASC"; + } + + public function getSortOrder($r = false) { + if (!isset($this -> sortOptions)) { + return false; + } else { + if ($r) { + return $this -> adesc($this -> sortOptions['sort']); + } else { + return $this -> sortOptions['sort']; + } + } + } + + public function getSortKey() { + if (!isset($this -> sortOptions)) + return false; + else + return $this -> sortOptions['key']; + } + + private function validizeSortOrder($order) { + if (in_array($order, array('SORT_ASC', 'SORT_DESC', 'SORT_REGULAR', 'SORT_NUMERIC', 'SORT_STRING'))) { + return $order; + } else { + return 'SORT_ASC'; + } + } + + private function validizeSortKey($order) { + if (in_array($order, array('name', 'path', 'location', 'bytes', 'mtime', 'type'))) { + return $order; + } else { + return 'name'; + } + } + + private function sessionSort() { + if ($this -> isUserSortActive()) { + session_start(); + if (isset($_SESSION['sortorder'])){ + $this -> sortOptions['sort'] = $_SESSION['sortorder']; + } + if (isset($_SESSION['sortkey'])){ + $this -> sortOptions['key'] = $_SESSION['sortkey']; + } + if (isset($_GET['sortorder']) || isset($_GET['sortkey'])) { + if (isset($_GET['sortorder'])){ + $_SESSION['sortorder'] = $this -> validizeSortOrder($_GET['sortorder']); + } + if (isset($_GET['sortkey'])){ + $_SESSION['sortkey'] = $this -> validizeSortKey($_GET['sortkey']); + } + if (!empty($this->searchTag)) { + header('Location:http://'.$this->host.$this -> getScriptPath()."?search=".$this->searchTag."&directory=".$this -> directory); + } else { + header('Location:http://'.$this->host.$this->getScriptDirectory()."/".$this -> directory); + } + } + } + } + + public function isUserSortActive() { + return $this -> userSort; + } + + public function isModRewriteActive() { + return $this -> modRewrite; + } +} + +?> \ No newline at end of file diff --git a/files/.pdirl/templates/default/index.php b/files/.pdirl/templates/default/index.php new file mode 100644 index 0000000..91e16f7 --- /dev/null +++ b/files/.pdirl/templates/default/index.php @@ -0,0 +1,114 @@ + + + + + <?php echo _('Directory listing for '), host(), $_SERVER['REQUEST_URI']; ?> + + + +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
> +
title=""> + <?php echo _('Directory');?> + + + + + + + + + + + + + + + +
+ + + +
+

+ + + + + + -

+
+ +
+ + + \ No newline at end of file diff --git a/files/.pdirl/templates/default/style.css b/files/.pdirl/templates/default/style.css new file mode 100644 index 0000000..2abe014 --- /dev/null +++ b/files/.pdirl/templates/default/style.css @@ -0,0 +1,101 @@ +@CHARSET "UTF-8"; +* { + padding:0px; margin:0px; + } + +body { + font-family: Helvetica; font-size: 12px; color: #333; background: #FFF3CF; + } +img { + vertical-align: bottom; padding: 0 3px 0 0; border: 0px none; + } +a { + color: #857661; font-size: inherit; text-decoration: none; + } +a:hover { + color: rgb(60,60,60); + } +h1 { + padding-left: 0; margin-bottom: 10px; font-size: 21px; font-weight: bold; color: #FFF3CF; + } +table { + width: 700px; + } +table td { + font-size: 16px; padding: 5px; vertical-align: middle; + } +table td img.locked { + margin-left: -22px; + } +table td small { + display: block; color: #CFC98E; padding-left: 30px; + } +table tr { + background: #ffffff; width: 70%; color:#857661; + } +table thead tr td { + background: #FFF9DF; font-size: 12px; padding: 0px; + } +table thead tr td a { + font-size: 12px; display: block; padding: 5px; + } +table thead tr td a:hover { + background-color: #F6E49C; + } +table tr:hover { + background-color: #FFF9DF; + } +table td.size, table td.mtime { + white-space: nowrap; width: 12%; font-size: 14px; + } +table td.mtime { + width: 18%; + } +div.total { + background: #f8f8f8; padding: 2px; + } +#headerwrap { + background: #083844; padding: 10px 10px 5px; border-bottom: 5px solid #D6C47C; + } +#header { + width: 700px; margin: 0px auto; color: #FFF3CF; + } +#header a { + font-size:inherit; color: #DFD999; + } +#header a:hover { + color: #CFC98E; + } +#header ul { + list-style-type: none; + } +#header ul li { + float: left; margin-right: 5px; font-size: 15px; + } +#header ul a { + font-size: inherit; + } +#contentwrap { + margin: 20px auto; padding: 0; width: 700px; box-shadow: 0px 0px 10px #999; + } +#nothing { + background: #ffffff; color:#857661; font-size: 16px; padding: 10px; + } +#footer { + margin: 20px auto; width: 700px; color: #857661; font-size:12px; margin-top:10px; padding-left: 10px; + } +#footer small a { + font-size: inherit; + } +#search { + width: 100px; border: 0px none; border-bottom: solid 1px #999; color: #999; padding: 2px; height: 14px; font-size:12px; background: transparent; + } +.asc, .desc { + padding-left:15px; background-repeat: no-repeat; +} +.asc { + background-image: url('../../icons/default/asc.gif'); background-position: 3px 10px; +} +.desc { + background-image: url('../../icons/default/desc.gif'); background-position: 3px 8px; +} \ No newline at end of file