From 362a4f084345b496ab6b155db3ec50cad3939d0e Mon Sep 17 00:00:00 2001 From: Szymon Olewniczak <szymon.olewniczak@rid.pl> Date: Tue, 10 Dec 2013 09:19:46 +0100 Subject: [PATCH 001/440] add TEMPLATE_SITETOOLS_DISPLAY and TEMPLATE_USERTOOLS_DISPLAY basing on Starter template --- inc/template.php | 19 +++++++++++++++++++ lib/tpl/dokuwiki/tpl_header.php | 19 ++++++++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/inc/template.php b/inc/template.php index 60e178d1a..fb468d041 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1786,5 +1786,24 @@ function tpl_classes() { return join(' ', $classes); } +/** + * Create event for tools menues + * + * @author Anika Henke <anika@selfthinker.org> + */ +function tpl_toolsevent($toolsname, $items, $view='main') { + $data = array( + 'view' => $view, + 'items' => $items + ); + + $hook = 'TEMPLATE_'.strtoupper($toolsname).'_DISPLAY'; + $evt = new Doku_Event($hook, $data); + if($evt->advise_before()){ + foreach($evt->data['items'] as $k => $html) echo $html; + } + $evt->advise_after(); +} + //Setup VIM: ex: et ts=4 : diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index a2bfd4346..547dd1401 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -46,10 +46,13 @@ if (!defined('DOKU_INC')) die(); tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } - tpl_action('admin', 1, 'li'); - tpl_action('profile', 1, 'li'); - tpl_action('register', 1, 'li'); - tpl_action('login', 1, 'li'); + + tpl_toolsevent('usertools', array( + 'admin' => tpl_action('admin', 1, 'li', 1), + 'profile' => tpl_action('profile', 1, 'li', 1), + 'register' => tpl_action('register', 1, 'li', 1), + 'login' => tpl_action('login', 1, 'li', 1), + )); ?> </ul> </div> @@ -64,9 +67,11 @@ if (!defined('DOKU_INC')) die(); </div> <ul> <?php - tpl_action('recent', 1, 'li'); - tpl_action('media', 1, 'li'); - tpl_action('index', 1, 'li'); + tpl_toolsevent('sitetools', array( + 'recent' => tpl_action('recent', 1, 'li', 1), + 'media' => tpl_action('media', 1, 'li', 1), + 'index' => tpl_action('index', 1, 'li', 1), + )); ?> </ul> </div> -- GitLab From ece4159b488ee81a13b9122239c88d82ec1aa59c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 27 Sep 2014 14:08:37 +0200 Subject: [PATCH 002/440] Send CRLF to Windows UAs for code blocks #863 --- inc/parser/code.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/inc/parser/code.php b/inc/parser/code.php index 00b956c27..2353e0dfa 100644 --- a/inc/parser/code.php +++ b/inc/parser/code.php @@ -21,6 +21,11 @@ class Doku_Renderer_code extends Doku_Renderer { $filename = utf8_basename($filename); $filename = utf8_stripspecials($filename, '_'); + // send CRLF to Windows clients + if(strpos($INPUT->server->str('HTTP_USER_AGENT'), 'Windows') !== false) { + $text = str_replace("\n", "\r\n", $text); + } + if($this->_codeblock == $INPUT->str('codeblock')) { header("Content-Type: text/plain; charset=utf-8"); header("Content-Disposition: attachment; filename=$filename"); -- GitLab From 3940c519db432ec22e8c587504d86191631f9bfb Mon Sep 17 00:00:00 2001 From: Mark <mc.prins@gmail.com> Date: Wed, 8 Jan 2014 11:56:06 +0100 Subject: [PATCH 003/440] use nav+ul element for "you are here" As described in the common idioms of the HTML5 spec, mark up navigation as a list inside a `nav` element for better semantics and accessibility. see: * http://www.w3.org/html/wg/drafts/html/master/common-idioms.html#rel-up * http://lists.w3.org/Archives/Public/public-html/2013Nov/thread.html#msg6 * https://dl.dropboxusercontent.com/u/377471/breadcrumb.html for discussion and background. --- inc/template.php | 41 +++++++++++++++++++---------- lib/tpl/dokuwiki/css/mixins.less | 15 ++++++++++- lib/tpl/dokuwiki/css/structure.less | 15 +++++++++++ 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/inc/template.php b/inc/template.php index 3bccb0bd8..1fad18271 100644 --- a/inc/template.php +++ b/inc/template.php @@ -893,12 +893,12 @@ function tpl_breadcrumbs($sep = '•') { * @author Nigel McNie <oracle.shinoda@gmail.com> * @author Sean Coates <sean@caedmon.net> * @author <fredrik@averpil.com> - * @todo May behave strangely in RTL languages + * @author Mark C. Prins <mprins@users.sf.net> * * @param string $sep Separator between entries * @return bool */ -function tpl_youarehere($sep = ' » ') { +function tpl_youarehere($sep = ' → ') { global $conf; global $ID; global $lang; @@ -909,12 +909,15 @@ function tpl_youarehere($sep = ' » ') { $parts = explode(':', $ID); $count = count($parts); - echo '<span class="bchead">'.$lang['youarehere'].' </span>'; - + echo '<nav><h2 class="bchead">'.$lang['youarehere'].': </h2>'; + echo '<ul class="navlist">'; // always print the startpage - echo '<span class="home">'; - tpl_pagelink(':'.$conf['start']); - echo '</span>'; + if ($count > 1) { + echo '<li class="home">'.html_wikilink(':'.$conf['start']).$sep.'</li>'; + } else { + echo '<li class="home">'.$conf['start'].'</li>'; + } + // print intermediate namespace links $part = ''; @@ -923,18 +926,28 @@ function tpl_youarehere($sep = ' » ') { $page = $part; if($page == $conf['start']) continue; // Skip startpage - // output - echo $sep; - tpl_pagelink($page); + echo '<li>'.html_wikilink($page); + if ($i < $count - 2) { + echo $sep.'</li>'; + } else { + echo '</li>'; + } } // print current page, skipping start page, skipping for namespace index resolve_pageid('', $page, $exists); - if(isset($page) && $page == $part.$parts[$i]) return true; + if(isset($page) && $page == $part.$parts[$i]) { + echo '</li></ul></nav>'; + return true; + } + $page = $part.$parts[$i]; - if($page == $conf['start']) return true; - echo $sep; - tpl_pagelink($page); + if($page == $conf['start']) { + echo '</li></ul></nav>'; + return true; + } + + echo $sep.'</li><li class="curid">'.noNSorNS($page).'</li></ul></nav>'; return true; } diff --git a/lib/tpl/dokuwiki/css/mixins.less b/lib/tpl/dokuwiki/css/mixins.less index a88767e97..4b15bb600 100644 --- a/lib/tpl/dokuwiki/css/mixins.less +++ b/lib/tpl/dokuwiki/css/mixins.less @@ -7,4 +7,17 @@ background: -o-linear-gradient( @declaration); background: -ms-linear-gradient( @declaration); background: linear-gradient( @declaration); -} \ No newline at end of file +} + +/** + * provides inline list styling. + */ +.inline-list(){ + list-style-type: none; + + & li { + margin: 0; + padding: 0; + display: inline; + } +} diff --git a/lib/tpl/dokuwiki/css/structure.less b/lib/tpl/dokuwiki/css/structure.less index 3ea2f83eb..f7dea3948 100644 --- a/lib/tpl/dokuwiki/css/structure.less +++ b/lib/tpl/dokuwiki/css/structure.less @@ -87,3 +87,18 @@ body { #dokuwiki__footer { clear: both; } + +.dokuwiki .navlist { + display: inline; + padding: 0; + .inline-list; +} + +.bchead { + display: inline; + font-size: inherit; +} + +.curid { + font-weight: bold; +} -- GitLab From dca6aaca5c13a4a9f3fd386d65cb44122cedaaf7 Mon Sep 17 00:00:00 2001 From: Gilles-Philippe Morin <gphmorin@gmail.com> Date: Tue, 13 Jan 2015 22:10:21 -0500 Subject: [PATCH 004/440] "Recent changes" becomes "Recent Changes" To improve consistency: it is surrounded by "Update Profile" and "Media Manager". --- inc/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index fb455f85f..92eb636ed 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -27,7 +27,7 @@ $lang['btn_top'] = 'Back to top'; $lang['btn_newer'] = '<< more recent'; $lang['btn_older'] = 'less recent >>'; $lang['btn_revs'] = 'Old revisions'; -$lang['btn_recent'] = 'Recent changes'; +$lang['btn_recent'] = 'Recent Changes'; $lang['btn_upload'] = 'Upload'; $lang['btn_cancel'] = 'Cancel'; $lang['btn_index'] = 'Sitemap'; -- GitLab From 5af3d1cd434f85882bb29253a3757cacc5c5338a Mon Sep 17 00:00:00 2001 From: KeenRivals <KeenRivals@users.noreply.github.com> Date: Wed, 14 Jan 2015 16:14:41 -0500 Subject: [PATCH 005/440] Losslessly reduced PNG images with optipng -o7 -strip all, advdef -z4 -i60, and advpng -z4 -i60. --- _test/data/media/wiki/dokuwiki-128.png | Bin 33615 -> 27895 bytes _test/data/media/wiki/kind_zu_katze.png | Bin 970 -> 437 bytes data/media/wiki/dokuwiki-128.png | Bin 33615 -> 27895 bytes data/security.png | Bin 7917 -> 6516 bytes lib/images/admin/acl.png | Bin 1074 -> 1065 bytes lib/images/admin/config.png | Bin 1496 -> 1484 bytes lib/images/admin/plugin.png | Bin 1127 -> 1115 bytes lib/images/admin/popularity.png | Bin 1189 -> 1172 bytes lib/images/admin/revert.png | Bin 1295 -> 1295 bytes lib/images/admin/usermanager.png | Bin 1467 -> 1460 bytes lib/images/bullet.png | Bin 112 -> 101 bytes lib/images/closed-rtl.png | Bin 118 -> 111 bytes lib/images/closed.png | Bin 119 -> 110 bytes lib/images/diff.png | Bin 206 -> 190 bytes lib/images/email.png | Bin 659 -> 370 bytes lib/images/error.png | Bin 648 -> 637 bytes lib/images/external-link.png | Bin 816 -> 431 bytes lib/images/fileicons/32x32/7z.png | Bin 992 -> 911 bytes lib/images/fileicons/32x32/asm.png | Bin 989 -> 955 bytes lib/images/fileicons/32x32/bash.png | Bin 993 -> 966 bytes lib/images/fileicons/32x32/bz2.png | Bin 1001 -> 920 bytes lib/images/fileicons/32x32/c.png | Bin 945 -> 929 bytes lib/images/fileicons/32x32/cc.png | Bin 955 -> 933 bytes lib/images/fileicons/32x32/conf.png | Bin 832 -> 666 bytes lib/images/fileicons/32x32/cpp.png | Bin 960 -> 943 bytes lib/images/fileicons/32x32/cs.png | Bin 960 -> 944 bytes lib/images/fileicons/32x32/csh.png | Bin 981 -> 952 bytes lib/images/fileicons/32x32/css.png | Bin 969 -> 952 bytes lib/images/fileicons/32x32/csv.png | Bin 819 -> 663 bytes lib/images/fileicons/32x32/deb.png | Bin 991 -> 914 bytes lib/images/fileicons/32x32/diff.png | Bin 975 -> 942 bytes lib/images/fileicons/32x32/doc.png | Bin 1034 -> 956 bytes lib/images/fileicons/32x32/docx.png | Bin 1078 -> 970 bytes lib/images/fileicons/32x32/file.png | Bin 605 -> 543 bytes lib/images/fileicons/32x32/gif.png | Bin 944 -> 873 bytes lib/images/fileicons/32x32/gz.png | Bin 994 -> 914 bytes lib/images/fileicons/32x32/h.png | Bin 941 -> 884 bytes lib/images/fileicons/32x32/hpp.png | Bin 974 -> 942 bytes lib/images/fileicons/32x32/htm.png | Bin 983 -> 945 bytes lib/images/fileicons/32x32/html.png | Bin 983 -> 945 bytes lib/images/fileicons/32x32/ico.png | Bin 941 -> 865 bytes lib/images/fileicons/32x32/java.png | Bin 992 -> 961 bytes lib/images/fileicons/32x32/jpeg.png | Bin 948 -> 877 bytes lib/images/fileicons/32x32/jpg.png | Bin 948 -> 877 bytes lib/images/fileicons/32x32/js.png | Bin 960 -> 937 bytes lib/images/fileicons/32x32/json.png | Bin 996 -> 966 bytes lib/images/fileicons/32x32/lua.png | Bin 979 -> 941 bytes lib/images/fileicons/32x32/mp3.png | Bin 947 -> 896 bytes lib/images/fileicons/32x32/mp4.png | Bin 1197 -> 1116 bytes lib/images/fileicons/32x32/odc.png | Bin 1061 -> 946 bytes lib/images/fileicons/32x32/odf.png | Bin 1059 -> 951 bytes lib/images/fileicons/32x32/odg.png | Bin 1066 -> 949 bytes lib/images/fileicons/32x32/odi.png | Bin 1058 -> 944 bytes lib/images/fileicons/32x32/odp.png | Bin 1060 -> 949 bytes lib/images/fileicons/32x32/ods.png | Bin 1063 -> 955 bytes lib/images/fileicons/32x32/odt.png | Bin 1060 -> 949 bytes lib/images/fileicons/32x32/ogg.png | Bin 950 -> 885 bytes lib/images/fileicons/32x32/ogv.png | Bin 1187 -> 1106 bytes lib/images/fileicons/32x32/pas.png | Bin 976 -> 945 bytes lib/images/fileicons/32x32/pdf.png | Bin 1076 -> 1003 bytes lib/images/fileicons/32x32/php.png | Bin 974 -> 952 bytes lib/images/fileicons/32x32/pl.png | Bin 951 -> 936 bytes lib/images/fileicons/32x32/png.png | Bin 957 -> 877 bytes lib/images/fileicons/32x32/ppt.png | Bin 871 -> 850 bytes lib/images/fileicons/32x32/pptx.png | Bin 924 -> 866 bytes lib/images/fileicons/32x32/ps.png | Bin 1086 -> 996 bytes lib/images/fileicons/32x32/py.png | Bin 966 -> 942 bytes lib/images/fileicons/32x32/rar.png | Bin 1000 -> 914 bytes lib/images/fileicons/32x32/rb.png | Bin 953 -> 936 bytes lib/images/fileicons/32x32/rpm.png | Bin 1001 -> 920 bytes lib/images/fileicons/32x32/rtf.png | Bin 867 -> 738 bytes lib/images/fileicons/32x32/sh.png | Bin 962 -> 941 bytes lib/images/fileicons/32x32/sql.png | Bin 827 -> 664 bytes lib/images/fileicons/32x32/swf.png | Bin 1268 -> 1173 bytes lib/images/fileicons/32x32/sxc.png | Bin 1078 -> 964 bytes lib/images/fileicons/32x32/sxd.png | Bin 1079 -> 965 bytes lib/images/fileicons/32x32/sxi.png | Bin 1067 -> 962 bytes lib/images/fileicons/32x32/sxw.png | Bin 1086 -> 968 bytes lib/images/fileicons/32x32/tar.png | Bin 987 -> 914 bytes lib/images/fileicons/32x32/tgz.png | Bin 999 -> 919 bytes lib/images/fileicons/32x32/txt.png | Bin 836 -> 661 bytes lib/images/fileicons/32x32/wav.png | Bin 944 -> 888 bytes lib/images/fileicons/32x32/webm.png | Bin 1232 -> 1210 bytes lib/images/fileicons/32x32/xls.png | Bin 1137 -> 1124 bytes lib/images/fileicons/32x32/xlsx.png | Bin 1182 -> 1131 bytes lib/images/fileicons/32x32/xml.png | Bin 615 -> 560 bytes lib/images/fileicons/32x32/zip.png | Bin 987 -> 914 bytes lib/images/fileicons/7z.png | Bin 415 -> 375 bytes lib/images/fileicons/asm.png | Bin 427 -> 379 bytes lib/images/fileicons/bash.png | Bin 433 -> 378 bytes lib/images/fileicons/bz2.png | Bin 419 -> 378 bytes lib/images/fileicons/c.png | Bin 412 -> 369 bytes lib/images/fileicons/cc.png | Bin 411 -> 369 bytes lib/images/fileicons/conf.png | Bin 402 -> 370 bytes lib/images/fileicons/cpp.png | Bin 430 -> 377 bytes lib/images/fileicons/cs.png | Bin 419 -> 374 bytes lib/images/fileicons/csh.png | Bin 427 -> 378 bytes lib/images/fileicons/css.png | Bin 427 -> 374 bytes lib/images/fileicons/csv.png | Bin 409 -> 371 bytes lib/images/fileicons/deb.png | Bin 421 -> 376 bytes lib/images/fileicons/diff.png | Bin 425 -> 376 bytes lib/images/fileicons/doc.png | Bin 410 -> 372 bytes lib/images/fileicons/docx.png | Bin 415 -> 375 bytes lib/images/fileicons/file.png | Bin 319 -> 249 bytes lib/images/fileicons/gif.png | Bin 407 -> 374 bytes lib/images/fileicons/gz.png | Bin 417 -> 374 bytes lib/images/fileicons/h.png | Bin 411 -> 368 bytes lib/images/fileicons/hpp.png | Bin 417 -> 376 bytes lib/images/fileicons/htm.png | Bin 417 -> 375 bytes lib/images/fileicons/html.png | Bin 417 -> 375 bytes lib/images/fileicons/ico.png | Bin 405 -> 372 bytes lib/images/fileicons/java.png | Bin 420 -> 376 bytes lib/images/fileicons/jpeg.png | Bin 412 -> 376 bytes lib/images/fileicons/jpg.png | Bin 412 -> 376 bytes lib/images/fileicons/js.png | Bin 420 -> 374 bytes lib/images/fileicons/json.png | Bin 435 -> 379 bytes lib/images/fileicons/lua.png | Bin 418 -> 374 bytes lib/images/fileicons/mp3.png | Bin 415 -> 378 bytes lib/images/fileicons/mp4.png | Bin 419 -> 377 bytes lib/images/fileicons/odc.png | Bin 407 -> 369 bytes lib/images/fileicons/odf.png | Bin 411 -> 373 bytes lib/images/fileicons/odg.png | Bin 411 -> 370 bytes lib/images/fileicons/odi.png | Bin 398 -> 371 bytes lib/images/fileicons/odp.png | Bin 404 -> 374 bytes lib/images/fileicons/ods.png | Bin 416 -> 373 bytes lib/images/fileicons/odt.png | Bin 403 -> 372 bytes lib/images/fileicons/ogg.png | Bin 408 -> 373 bytes lib/images/fileicons/ogv.png | Bin 412 -> 376 bytes lib/images/fileicons/pas.png | Bin 435 -> 380 bytes lib/images/fileicons/pdf.png | Bin 425 -> 377 bytes lib/images/fileicons/php.png | Bin 424 -> 376 bytes lib/images/fileicons/pl.png | Bin 418 -> 372 bytes lib/images/fileicons/png.png | Bin 417 -> 375 bytes lib/images/fileicons/ppt.png | Bin 412 -> 375 bytes lib/images/fileicons/pptx.png | Bin 414 -> 375 bytes lib/images/fileicons/ps.png | Bin 424 -> 377 bytes lib/images/fileicons/py.png | Bin 426 -> 374 bytes lib/images/fileicons/rar.png | Bin 418 -> 377 bytes lib/images/fileicons/rb.png | Bin 421 -> 375 bytes lib/images/fileicons/rpm.png | Bin 415 -> 374 bytes lib/images/fileicons/rtf.png | Bin 418 -> 376 bytes lib/images/fileicons/sh.png | Bin 422 -> 375 bytes lib/images/fileicons/sql.png | Bin 410 -> 373 bytes lib/images/fileicons/swf.png | Bin 416 -> 379 bytes lib/images/fileicons/sxc.png | Bin 420 -> 377 bytes lib/images/fileicons/sxd.png | Bin 424 -> 377 bytes lib/images/fileicons/sxi.png | Bin 414 -> 377 bytes lib/images/fileicons/sxw.png | Bin 417 -> 376 bytes lib/images/fileicons/tar.png | Bin 417 -> 377 bytes lib/images/fileicons/tgz.png | Bin 417 -> 377 bytes lib/images/fileicons/txt.png | Bin 407 -> 371 bytes lib/images/fileicons/wav.png | Bin 415 -> 375 bytes lib/images/fileicons/webm.png | Bin 412 -> 378 bytes lib/images/fileicons/xls.png | Bin 415 -> 378 bytes lib/images/fileicons/xlsx.png | Bin 425 -> 379 bytes lib/images/fileicons/xml.png | Bin 400 -> 376 bytes lib/images/fileicons/zip.png | Bin 418 -> 377 bytes lib/images/history.png | Bin 149 -> 149 bytes lib/images/icon-list.png | Bin 3342 -> 584 bytes lib/images/icon-sort.png | Bin 316 -> 211 bytes lib/images/info.png | Bin 725 -> 721 bytes lib/images/interwiki.png | Bin 443 -> 442 bytes lib/images/interwiki/user.png | Bin 741 -> 684 bytes lib/images/license/badge/cc-by-nc-nd.png | Bin 1475 -> 1456 bytes lib/images/license/badge/cc-by-nc-sa.png | Bin 1587 -> 1567 bytes lib/images/license/badge/cc-by-nc.png | Bin 1421 -> 1401 bytes lib/images/license/badge/cc-by-nd.png | Bin 1283 -> 1261 bytes lib/images/license/badge/cc-by-sa.png | Bin 1421 -> 1407 bytes lib/images/license/badge/cc-by.png | Bin 1204 -> 1186 bytes lib/images/license/badge/cc-zero.png | Bin 1202 -> 1182 bytes lib/images/license/badge/cc.png | Bin 898 -> 846 bytes lib/images/license/badge/gnufdl.png | Bin 1667 -> 1649 bytes lib/images/license/badge/publicdomain.png | Bin 1345 -> 1326 bytes lib/images/license/button/cc-by-nc-nd.png | Bin 396 -> 391 bytes lib/images/license/button/cc-by-nc-sa.png | Bin 403 -> 396 bytes lib/images/license/button/cc-by-nc.png | Bin 388 -> 381 bytes lib/images/license/button/cc-by-nd.png | Bin 386 -> 382 bytes lib/images/license/button/cc-by-sa.png | Bin 386 -> 379 bytes lib/images/license/button/cc-by.png | Bin 369 -> 364 bytes lib/images/license/button/cc-zero.png | Bin 386 -> 381 bytes lib/images/license/button/cc.png | Bin 399 -> 391 bytes lib/images/license/button/gnufdl.png | Bin 509 -> 497 bytes lib/images/license/button/publicdomain.png | Bin 368 -> 364 bytes lib/images/magnifier.png | Bin 569 -> 565 bytes lib/images/media_align_center.png | Bin 250 -> 249 bytes lib/images/media_align_left.png | Bin 251 -> 247 bytes lib/images/media_align_noalign.png | Bin 220 -> 218 bytes lib/images/media_align_right.png | Bin 252 -> 250 bytes lib/images/media_link_direct.png | Bin 720 -> 714 bytes lib/images/media_link_displaylnk.png | Bin 306 -> 304 bytes lib/images/media_link_lnk.png | Bin 580 -> 578 bytes lib/images/media_link_nolnk.png | Bin 464 -> 452 bytes lib/images/media_size_large.png | Bin 102 -> 100 bytes lib/images/media_size_medium.png | Bin 231 -> 226 bytes lib/images/media_size_original.png | Bin 212 -> 210 bytes lib/images/media_size_small.png | Bin 210 -> 206 bytes lib/images/mediamanager.png | Bin 507 -> 455 bytes lib/images/notify.png | Bin 736 -> 735 bytes lib/images/ns.png | Bin 800 -> 799 bytes lib/images/open.png | Bin 118 -> 107 bytes lib/images/resizecol.png | Bin 158 -> 148 bytes lib/images/success.png | Bin 728 -> 725 bytes lib/images/toolbar/bold.png | Bin 251 -> 249 bytes lib/images/toolbar/chars.png | Bin 496 -> 493 bytes lib/images/toolbar/h.png | Bin 258 -> 257 bytes lib/images/toolbar/h1.png | Bin 290 -> 287 bytes lib/images/toolbar/h2.png | Bin 328 -> 319 bytes lib/images/toolbar/h3.png | Bin 322 -> 320 bytes lib/images/toolbar/h4.png | Bin 310 -> 310 bytes lib/images/toolbar/h5.png | Bin 325 -> 318 bytes lib/images/toolbar/hequal.png | Bin 311 -> 306 bytes lib/images/toolbar/hminus.png | Bin 409 -> 403 bytes lib/images/toolbar/hplus.png | Bin 396 -> 391 bytes lib/images/toolbar/hr.png | Bin 254 -> 251 bytes lib/images/toolbar/image.png | Bin 554 -> 539 bytes lib/images/toolbar/italic.png | Bin 241 -> 239 bytes lib/images/toolbar/link.png | Bin 405 -> 402 bytes lib/images/toolbar/linkextern.png | Bin 904 -> 902 bytes lib/images/toolbar/mono.png | Bin 296 -> 293 bytes lib/images/toolbar/ol.png | Bin 304 -> 302 bytes lib/images/toolbar/smiley.png | Bin 684 -> 680 bytes lib/images/toolbar/strike.png | Bin 318 -> 316 bytes lib/images/toolbar/ul.png | Bin 291 -> 288 bytes lib/images/toolbar/underline.png | Bin 317 -> 297 bytes lib/images/unc.png | Bin 553 -> 290 bytes lib/images/up.png | Bin 248 -> 248 bytes lib/plugins/acl/pix/group.png | Bin 700 -> 699 bytes lib/plugins/acl/pix/ns.png | Bin 800 -> 799 bytes lib/plugins/acl/pix/user.png | Bin 653 -> 650 bytes lib/plugins/config/images/danger.png | Bin 648 -> 637 bytes lib/plugins/config/images/security.png | Bin 706 -> 682 bytes lib/plugins/config/images/warning.png | Bin 613 -> 606 bytes lib/plugins/extension/images/disabled.png | Bin 1396 -> 1163 bytes lib/plugins/extension/images/donate.png | Bin 724 -> 677 bytes lib/plugins/extension/images/down.png | Bin 280 -> 197 bytes lib/plugins/extension/images/enabled.png | Bin 1398 -> 1172 bytes lib/plugins/extension/images/overlay.png | Bin 109 -> 68 bytes lib/plugins/extension/images/plugin.png | Bin 6824 -> 4054 bytes lib/plugins/extension/images/tag.png | Bin 753 -> 341 bytes lib/plugins/extension/images/template.png | Bin 7547 -> 5206 bytes lib/plugins/extension/images/up.png | Bin 281 -> 197 bytes lib/plugins/extension/images/warning.png | Bin 613 -> 606 bytes lib/plugins/usermanager/images/search.png | Bin 550 -> 549 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 251 -> 78 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 247 -> 74 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 374 -> 184 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 246 -> 73 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 301 -> 126 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 301 -> 121 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 371 -> 186 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 319 -> 122 bytes .../images/ui-icons_222222_256x240.png | Bin 7006 -> 3778 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4599 -> 3778 bytes .../images/ui-icons_454545_256x240.png | Bin 7071 -> 3778 bytes .../images/ui-icons_888888_256x240.png | Bin 7092 -> 3778 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4599 -> 3778 bytes lib/tpl/dokuwiki/images/apple-touch-icon.png | Bin 6399 -> 6336 bytes lib/tpl/dokuwiki/images/button-css.png | Bin 299 -> 297 bytes lib/tpl/dokuwiki/images/button-html5.png | Bin 354 -> 305 bytes lib/tpl/dokuwiki/images/button-rss.png | Bin 180 -> 178 bytes lib/tpl/dokuwiki/images/logo.png | Bin 3820 -> 3744 bytes lib/tpl/dokuwiki/images/page-gradient.png | Bin 280 -> 209 bytes lib/tpl/dokuwiki/images/pagetools-sprite.png | Bin 11325 -> 7759 bytes .../dokuwiki/images/pagetools/00_default.png | Bin 616 -> 494 bytes lib/tpl/dokuwiki/images/pagetools/01_edit.png | Bin 740 -> 519 bytes .../dokuwiki/images/pagetools/02_create.png | Bin 808 -> 580 bytes .../dokuwiki/images/pagetools/03_draft.png | Bin 828 -> 592 bytes lib/tpl/dokuwiki/images/pagetools/04_show.png | Bin 458 -> 321 bytes .../dokuwiki/images/pagetools/05_source.png | Bin 753 -> 478 bytes .../dokuwiki/images/pagetools/06_revert.png | Bin 752 -> 462 bytes .../images/pagetools/07_revisions.png | Bin 1144 -> 769 bytes .../dokuwiki/images/pagetools/08_backlink.png | Bin 844 -> 527 bytes .../images/pagetools/09_subscribe.png | Bin 589 -> 374 bytes lib/tpl/dokuwiki/images/pagetools/10_top.png | Bin 465 -> 297 bytes .../images/pagetools/11_mediamanager.png | Bin 441 -> 320 bytes lib/tpl/dokuwiki/images/pagetools/12_back.png | Bin 483 -> 288 bytes lib/tpl/dokuwiki/images/search.png | Bin 316 -> 307 bytes lib/tpl/dokuwiki/images/toc-bullet.png | Bin 121 -> 113 bytes lib/tpl/dokuwiki/images/usertools.png | Bin 1541 -> 1428 bytes 279 files changed, 0 insertions(+), 0 deletions(-) diff --git a/_test/data/media/wiki/dokuwiki-128.png b/_test/data/media/wiki/dokuwiki-128.png index b2306ac9571f39c6f30c0a5967e5b520415b3d80..f3f1d66bd752d6874220fa4d35415ea97de79774 100644 GIT binary patch literal 27895 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 literal 33615 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 Rnxp^#002ovPDHLkV1iIzXKw%i diff --git a/_test/data/media/wiki/kind_zu_katze.png b/_test/data/media/wiki/kind_zu_katze.png index a5c151e3faba898ad17894334061b9644fdd2e69..e0eee61bc43f5e7626bdc823b52ddeea25641ac7 100644 GIT binary patch delta 422 zcmV;X0a^aa2eku`8Gir(0055yE&>1m0eneBK~#7F?bN@kQehm&@y{i0_*mSm3zz7& z)x|+LIusIQKcFFKOM`IfA1H_*nu2IL39SuTinKLEAwq-@5d<~0HbhGXc|Z!|aE@f} z=)p5oClOp4p7;8|3!cyL6-(v-2ROh1|0Uo62T0P+N|)56MSlR>lO+K7cuwV|06xn= z>=%tGHYN~W&u7<8b&(BtaD3PH16RKQQh0G=TPhG8lkMb$3$i7^kGgDyuOL+={Rs@t ztBkK)YdE~WrUp6P9>uTE&UBjE|1bz&9o99FHhbf=5g+5J4RB8-wshvkizx|E)=Pl* z+5+hj`~~bd+JA+N0)U|m{S8S6-zGp-vsOVGrHu%`0ffEF`&3CDjgmm(Ux23$KuaY6 zJ}C<;`VJh@8<OS#zIJzlpq*2L)6c$*?<fQ7dOH1O?rnYuqjz_Y%mt!~Y$sx5t3yqa z;L<{0Ao9J8@ovTNyt;1kH$xay_pAu$*EUy8;fkHr9Ul}2IKTl8a6oE50U`g~{+61k QX8-^I07*qoM6N<$f<gwl6#xJL literal 970 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4mpd;uunK>+P+B-b#fc>>r-D zJ<M0y%+mQL?2)5{wTRFX(Grebrfd(F)-O<KdLiP{Zm=-BUB`7-X~&`#4n-x7S68+= zm#kbMIpL7Ru@(EOi%yts-F7!(+xG-L<Nfz%->*r#H(PKE14HfOACC8JBpMhAqXS7B zMRLD>{VKxMno(Z<eZB6of_3`5Q#h5hcIW2jKhAei{2zX-znnpkVb`u*izZGKR8oqH zi1<;T^+37&@wabcE-Z>IJN4(ESC;BM^!~du2csg(pE~=bjS_P5@@ETotxGN|6N_6f zK1t<Z-uC2#1O{tsYti{Tu5aA8ukYTyI1>|-1>3fX<>uzjm^bg(-Me>ZXJ0Rsef;=w z!OoZ!D_2(jwz6kVkYICK7;y9G_wV0lb0jAxi|TK>v~l`$aTleDo04nn<lnu2?|p5Z zhF9bne&(3?_~eoj5tkMR1qOx=x5Wxd7BYM)LYymBafOC%+_sHv_gy|ECmk_n2B5fr z;IwJeCY(*1c>Z}|QBl*whYwfTD#-OWcU-u2tE;z{H)9rC?DfK$nx1v*^aKRc($c&> z?YNt_<Z|YdqMe^=pO?>iaP68HgTu5`0l`TpQ%?T5dNou)(8|h+fkCdH-KAyWLd7#@ z&p!O{LE!xP^Y62o8XXv1S{5%}JSkaRTwFn^!e-tio7uBxUzL7e&G_oos|%MeCtuTH zxRGNfAZX&NJ#+o4tiYWqMv^;X)-9Uz_U&5>YwOiq3Z6knrJY<hM6Fe=+;sEJb4IPB z?hIVL26O$Ai;9GFb#)b#Seg&6dM@G=!dhYbUU~gxe?}26g{fXsWxQ2{Tvb10-??+A zp+muQ($4cq8yh-4eEAY$vTgHbVV9Q6moMA@v;C;q;3S-rljEW_wP{)A1ry$rDVK7p zTGcEpEIR)Ft+lbSQJ8)@v9eOqg=O~Hv}eUua}|`{ynQSBwVf%gxY+p7M+-fD{e`cs zcn%-<`O`8iEbPMFyMMnjv?VG?@Jy>!`TgtHg!9j}&8~W=Bt7G9Kb$K6y0f#hemx5p z$HfehO*)6uHal`KMo!zfV@F1u4TFq~j6<M^#aurQ#Rp%j4DIdtW3P9|ZS7jLVCBk_ zI_=jdo=g$oYkyd_J8^52VoSsM=ZCLcxw3oK%jm?1|2aRMPh?AAz=wXAeH4~E`bR3= TX5Lv~9%b-!^>bP0l+XkK_z0u| diff --git a/data/media/wiki/dokuwiki-128.png b/data/media/wiki/dokuwiki-128.png index b2306ac9571f39c6f30c0a5967e5b520415b3d80..f3f1d66bd752d6874220fa4d35415ea97de79774 100644 GIT binary patch literal 27895 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 literal 33615 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 Rnxp^#002ovPDHLkV1iIzXKw%i diff --git a/data/security.png b/data/security.png index c4f1a977189e88ffeb7b8a8f80050847033757d8..cea639eca4ead79de695186127d41e6499c97e4a 100644 GIT binary patch literal 6516 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 NQC?N<Gt4aPe*m)Ads_ei literal 7917 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 a0b;5>cOm5y3_=^vFmh7Lk~QKc!T%5S=#xtT diff --git a/lib/images/admin/acl.png b/lib/images/admin/acl.png index c8f610c12df1ee977d82fd4af08e084ddff67058..542e10899183cb0b367cc27b61d1a2dd09d3e807 100644 GIT binary patch delta 1044 zcmV+v1nc{<2&o8=B!BQpL_t(|0kzb9XjOF_$MN^?oOAEpoO8N|>E@=>X{&T|Q=8s` zibW_DmJb^BhuA+O#DWZ?pod~6J<tO}v_DqK%IQokYJq_(6%~fVw5FT$s##?2;X2*D z_w1f~&iQ>4G%7a13BBR-@9VEGUnL^^A6WqJRZZcBDNwFpd4C$q6_o805~(a*kbE%} z@`~TwA?q~$PZk0QLEtDFi<?X|xJi|lH`!l1XX#MwZA+4cfplR|2bwnTR8M%wv43MX z1#2IICJ)Ve)ZRFEWvnWz$Ojk5faULcxBI@?xcMs{_n~uCFrwy%*Tfp<EsNz4gR6tg zAU}K%8tOTla(|aS<(8+ps`;%JRs^9NzyR<~b;CKfF=j?MSy%aRJco;b022Vag!<3M zwXfglZa8(&iZ0ox%WJFj79Xa|->{f!#JSoar^u_lclG7PrYn#RWC0n#q&O=cn_BSX z#K7$QQWav(a@M?E5`MbM-{L}%1rWkuSOS(}TJ^HnYk%2AE(`$UucKpuU@xm)$(*rj zb>TCVl>&<(>l|5`=jM7)WdSrrdWYSZ0KUiI*fyi9B5W))C+L6RGz(NQ6c=9IG~gcS z>!kmS<7_&_{shu#02mno)R=2C(gT=jCV`-VX{qR*?}8uwaV!LR5Vv6{X<kE_0h9sN z;HAT!W`90x_I^F!t9l?}0W7X4K(s<cVQ7t&@-ZC^Hs$jl7}$_s;}9PJ`?w-2JQ<h? zlmN5A8wW=|p>6B$y1rL6gR}xz04Y!Z2lhRUwwZZ%&6Up|eBn|>JS8NLDe@K+qw?<r zrUI1^OTfO@>G-sp=UdIaQT#^09`TMvz)Km^tAFpmvTf0G(K)s&Bs&bU?<z!1Duezc zoN0yJKD-|fvb&)-QP*a)bl|@aoaB1eFf?gQnOA*z>m%#?<~eBW6BfA(3Q!1i94FRp z)BbgmnI#dnd~aTSr^{@J;Wq&10fxaM;5f$Q>hQq!mCyDpOc|QwFOXL?7W^SP>j&vR zihr}Wi{F~M*j5?}q_sQVNkMi4F@O=_)K#>iGS;+oZBN)$8arZ<U1}0NoS^$qfR`Js z!|na<mvOw)8rgTr!3GS#XQV`g4K;U6Y*;sC&rr81iStPRekBsm6}gZln`$z9^Ni5P zpza&>KhB@zyt=aX&qYRtk9}5=lch);Nq^Auvq9?_b)ru@b-;yD!?_ckvOvfs-eZzI zE5zw<g_r6Ao!wEdBQiMj4bTrTYB*<tpPTMOdVv86XxbHu?urb)0lEc90NfIMCL&i_ zwvTbNgHFXQV@I2N0QCM_MFEtEFg`6<?xj?fC_rJ@zIzI!4ba?Te*x`j%Z>>i&kgMW O0000<MNUMnLSTYYko^V# delta 1053 zcmV+&1mgRt2(k!}B!BryL_t(I%e9qTY*bYghQEEznVA+Sh2EeyC={#;EgitZXriXZ zK-8dIjXn^3X$(OVF&Is}rbxWROGu1;s7i_yihxFIf(cb1K+@14XrZMHAR3Y0D0F5{ z=gc{0FCU5;u|#R&pZsq-U-sT>{c9-^;s1~Y@J@KjjZY|0u76;88p{=w?GqBIEM1U% zJ{9tcU*9R~H2(J%0ti9i7<w4|UnCmbq{_`L^w-W=I#hGZl4L<3T^Q7X#?8CbV;*wc zy8g!hChbGe<bhca+Z*SujD<6cd~kuWu>5WBR^K-pHh<2eK6Km^7*X>hYhn%amc_D( z0WlyW$hYr>hJU)xrQBstxaDcCYI>uY6+!3%FaUg0-O!G0jF}Nh)>b|k&*l;!z(l|< zq3)CMZR>Zr8%`gx`j>3f<uzfw#fRzg2UtusqFrr}UF6l=z52>x(-lYuGKar_$#GUZ zGByA4NrBmUr7Fan<*a$LB=Tg~-{L}%1rQqMU-x{l6o1pImc?GlDso`}m~ag`4hZ(J z>ZObst5z30MOi7Z2r|!;nQ?xu2Vo1KG1~Kw9uvU#7#!DXbXG)+h2}*47dXuVRSd-i zP&^H|3wk@~`}72x4s#%ZbQl1}*Z^wGu#NNpW|~PLXkc2ZfA8194}Lu!f?SB(FqAZh zq09ivfPX6R(qV5C?>Bir9rRTl5VZgnSL7pFA)+v}#!C5^js~0Z`S%TM$g6gU4}g6_ zkr^ojW&$O^Z1Bdz(T`}|_KU9TQB5E%f3{o7(|-f|o<`fuytDf1*888kToF$R$>WOL z1;wbm+kvS-CBzc2|5e&Q?&8@Nb6-Dx17MHX$A2Q=rHtuS_g>w;=$ZaGwksst4YKYi zKus=#z9gJ&ft+5v?+&r2z9&)JYBaawzYCliF(4w~C5<Wbs;+E%XnpTI2aSEwB4<JV za5>vg5Noq(`y$EAk|<lgF)zK<Y1YT^>wyc56loD~9HX!*GO%Oi)7=YGh9>zV<c7zA zKYv6=-5_1ZaQ1cbb7LplOGAOQHpe?9$ewFiWJGYvF$yaxV~tDKc1K*Lv7;7Qr6&DH z5_BC7@M42?q^-~WERJ_ZBl|Bq*w+H)k30rM*ie1jr22JJ_6~KKlDL5M9Z(|i9FdEe zvZ*?wC)Wsl2<o1jp2vBUotIbE{I<v#>wjaPQ)Fi<5=Rqs|6tH^R-NqCPAzcprolOr zoU%a3CEjh4H7mrKuY?zB107xcUVC(K=u4n)R2w9FqMwuQLwdde3259M>faq5d<}Fn zkQnu9IvbU%%{#_8+Cit{ma((dJqY^1XrTZ~M3|5kEca3>EDBH<w(p(>X$ACX!4|&* X?P<%72?KOv00000NkvXXu0mjfwgUWP diff --git a/lib/images/admin/config.png b/lib/images/admin/config.png index 3ec3923d114d829f57eafec58a1e525ddb65edb6..679a673722b8df339289f70b200d05be11905be2 100644 GIT binary patch delta 1466 zcmV;r1x5PU3(O0UB!81hL_t(|+O?E>P?S{|#?RiD#a)(BSp{=Qv=A1QNukM6L_h<{ zh>M7ULaCr>65<Fpa%oW194{kUGr~rqTm+M*bSO|0gz}QyMC5)^KwJjmCTlJ{z55Y~ zWA<Oq%)__Ld*=7O=bY#L7=Zu9+#grhWz5-m30t+wTO1m?F@H8O@z8I_kEe7bB^{{_ z2w11Fu$bW@lNs^Z1gTUi77`M|f`WorKtKQs4i08(*REwYHgg$|#~TB?xw$fXdpovx z@ls`UbV5x}j}8Vsdj>pyJb={HES-&wI*xe!iQv%CP!8zl=f?sA*UXHKjXU7%ymTFv zc^uf?-EHy$l7C1fWD131NlZ*an^rr7(NSPz1kme&^z`qbQcc@F4mLA0<DmZj{wy*w zGW^=L;`Xw#W_Wq|-KDaP0Zd!^c)v!I1v|TWaf~Dui=8%aiL9${Xh(nl6ATXOpw$i{ zBqY3r%4#y3GGz+$_I{svdU~1`78bOCbmHV$Op+_osDC_-11BULxIH`!<mVT`+FHHu zZ@6_tL`-96=O5_q?n7Un4ky1lt(QurVT`nFnG5ss^5pH=6C0P8SAbo+lAyM8sGyP? znQ`EQ2a^fVhu&TtE?g)Wb#Pd4NNs2D8W(@CuC-N*_IB;~Swkk1#mMDyy6BaH#Ke7v za&q$F;D5024xzS@7m%gnU^=6i!rIynG&Oaixw#8JUMw2bXmW-sDjLzy(1F_82WV;0 zA~`t?#>SIk=ghHUhYuf1&dB&4YW4hEgz+E?*aUH4N5{86y>zJr^>vR>QPF^!`wvl9 z*NLjCW|Y(am3Lcl?_Mh!8y_J$CcY^uYFEBSbAL`hYu4<mgm4~by#y8t`KJD>gYt{7 zSD~h+1LfsSC@X8AXCr>6XJLK`?$OISyLxctaxqd;voUwB`d4o2q*sC^5)qTjjV;~W zJ@QVaWRG6HavP<k)hN1Ai}bxmkha1NS-bZjFaIji&g9~H$xS3B9qTbOQw0%%8WS># zDt}!#J%xhjV6jxf6s9JO$LGlvN@b|6-TZ9Fca~hXeaq=$_`Lbr-t05D92|)FmEO31 zs{#fMJ<;Rn(UbuTi`PCGOOc3c(1=(90e=iURU%<ClqO6`Z<R2{*`6__i;*OuaBJ8T zZPpo7`+I`|ij2r8X!~_Em3j>8MsVs>rhne@^;tU%muKkM$VmDe97Pkjg(~6XEg~@s zqktc@ej~l*>tqb%W}@P~<;b0Cg5%T8@omITv{1IS+CDthJ>#ZQ^G(jvH?3{r=@ao{ z$2$nTnV=iUn;3IUU*URZpr{ai=QC07>wycCWpI*Ds`UBrqlV&=yA;7LG&OdjtADE( zI^9$5o05_F!>F~j?H7DL6Y}{Jz#9$SQXUI8t?wMYSB}23sc7(VN2$32D;09XDEo?y zr0R7cVK<73D^XuRmizXOZajF<MPvUba&v!zlhdNZ)VUD{jvz3N&AY{0H+7@=K6*9D zX!UkM)l3D#P365zAT*qzOu*;S?SG4`{8k4Q7Zq2b(a?EQ2YxQNMY(^7M_oe*3*XU0 zDe>UIpD|`v5ERgg<{I>;97TtZGa4=Bh&G)xC>DzL6I4m&Zk^7L(!*x@`Ud`T<w_ZK z{s`68EvT$&L(J~Iqf^aP=V_^$1E<-}$<db<V)*n4^n9=gZB}x8ZYmox7JrJ4(IRs; zCV~nmRvetnGxzfH$uB6lNz>VesGae8g^41Amf8N3<2+l-Dtx&UBZ1WEEE%>bq&-5u z(D0R;&L)V?jsugqm+*N!m50Zwa~n2oA66=r>9l0_3zO%>V{5WilE>%GWqLP>sGK&t zjY_6u_6jg(A;Ia~O=$<qsWWW#(nyndMietC<E^LP3&~<K`!BFaOd~83asD^`1-U6M U3)dLrBme*a07*qoM6N<$f^FQ?*#H0l delta 1478 zcmV;%1v&c63)l;gB!8btL_t(I%e9nyP?S{|#?Rg_u*)(kt6+|S7Q%uuDKt5X2xuS~ zaS<_4C<Qc4LL9+HE)9l~<7Gr^M%YM{i(t}}4#k2ALU~DU0&>47H<y99$(qYPo$td7 zmi^h8dB3yYyk~#kd(QhjhX5e|N3ai9*VV+?c_mrD-dh+Nx_>P$De1`XCr_sJBqtxM z3kcY(wy>D%B9%(GWZF<Fl_Vr2gaiczk$`{z5*!>%Hf`EOY-|=04u>-Zc5`zj_V#vU z#fnvmn3%+d!9g9E@#G2c@Zl)Z({pq-HmZ2a<4y;MhK900KR-Vb7`Sm>TwMHNXXjO$ zX_~`=-QC@0EPtg#Am9_ZT)r|kHnB^q9f!dHOiluNJ&>9CJ(SAXyPtv0%*<G*zrR0; zii(Q3cCD<tva%gsUVe9J+J*&(gnWERt<Hg+-D0LHA`}Xpw(p2)YHsPq$jBp%jp?A( zjv*u@qJySY%$k`qXA*Dk_lc*cr>RC$)WPiV)ammumVe1JXnHmaPE0&}dtw48EG&h! zwd%{KaO=p(*w)_OKQS;cjNxG&PJew?FBXf#nf&V2F2u{rlXKueTzo-65%%p%hRV*N znx@>?EivGflvD~B#?X)smo60<92}M&QQ6tM#wVmSb#`je-K~9g){si2u`-#AHhLW| zDe222d4G9@aBx_5hoW}TSV}|u92^xDt7&ZPL0eld+S~i_)8$fwTAepuUEPY7mL4=V z-bY7=7OANjFfuZZTe#4Q96fp>H7n}}s8maCQH%!--gMQlU`NNdKfQ9L9L-IAsIG27 z!@UP+YU)L8Z9A&yd(GWW)Yo^SwY3j1u?cO_(SQ32)#?j+OUngUDZ-h&YA|3vpKI#B zA*itIdMz3ndQer>hRVtoI=A8vI%^8cQBObC+dqhs;xeSA=VH+!)o)L?PW}@t5($V* zW;EZ;-J{@4TCSnE<TffQ>QH*45t#>%A!Dr@a`qoULE%+ooXf}c@|#FbJ~3!!rVL^j ze1ATlFj5r?>CET701L$;A~!W594<#DS13Yl?Uv*^zO%B}_ARH&5sQ~-hjP!MI5-dq z>%4LORyAv$@ke?bKb|&fVe#50Qz{a$1xhH3$Ky_cXNg2)uEK;U=vPH_5fk==C|o3> zM9t3dN7|fosPp#*6)3WzqM;qpQCI3Qp?{minKRk?`LA2<VVcKOERl#`fTO7cchF1( zjU56Zp+cRVV*N&D$2X}M&Cf>lduxzC%LFIqnB%+1z38CY)@q0GSoef=rTW{v$8TEO zBrsRROBL^-;O!K;l|~pLj+tv+?~ImeFnlo^&AuMEG(!p}nQ@KJhaa_+mEWZj?0-jF zYcKlyhoI9vX77}&>>mx**0x`8xrEQ<P6Kaas-=3=gl*|H)K_8nd^%cu+)-gJ$2z%; zv9hmFB35k<3BOTVR)gl|DcyJX4B-C#ero%_ke~lEoSc>)rIkxqa3lp&+q_%0Gi(6u z_b{YRMW?q5YUjxjVJaIUJU(-VQhy$oL%T1q^4kzpR$5kzR;Kc{9{f^ti|YOX`ufKa z9<gVTs>Fi@e@2L1QBXi9+8Z#Eb{suE&S;%4LyW2Mn2;|xM4<|%^Gw&7^W$*IJYV0y zUrS0VY2|&WtLs2bZ5LwqA2iG|Q(j~*Dh8ZkyD(2*p~1x2QyBbUIl8Q5_<!6~I&Q=l zoS=)$pJ|@Q<FT@0;5;73+{??Su&C%Jb!Qi%_a^A&Ch{!0%=WpC3vB1t;;X%w45XD> zO0i2W9^`ZR%q=%(x|x`+GvFyWk8n90rH9A*3tPi>Pbd_MOuA&jOU`rRkd3)Y(Zh@8 zQoWl<P(?S(+*GFjbm??36F+<kr{``;cd&-0t^Q?c=06fDGcn<8p}&_gMtYU~r-KF5 g3_^i`jaQAo0l6tI3xw7p<p2Nx07*qoM6N<$g87}&djJ3c diff --git a/lib/images/admin/plugin.png b/lib/images/admin/plugin.png index f71124e5c83f8ded2ad6a31ba2c2ff60b2d4d61a..27bd154102123cb11b02376a4591045855a11622 100644 GIT binary patch delta 1094 zcmV-M1iAa?2-^sdB!41FL_t(|0kxD(Y!y`$fWLF^o%i!-OB;T)AO(t4>W?IXiaTw9 zps-_Ml!b&8F=5kgY9gpn7w%XXqJS~s2TIUj0ZkJkfe6$RL5x8}16ZLDAp)_4zBlvc z-FqeT;-r!n7bbp_vzc?}n{&^ZJH~s@|A7IJH33+GN(Q`;V1Mo7V*Q?3P1D-~6W}XS z&3Oe5hOYm9J&J87Cfg6bnu`rs@L&Cgp%%_&jB}s8v3y-yXGbUX**cta0Eh^&jp-Zw zvbkr=`rg}7`7yK^u32%4vfvC<qDNXLw$56+_%)gu8aZ|KBwA@i6cr!yVAE{YEO~`b zj~y6)_{6~u@_+T)aKXQb@gNrPHe)j0D8s;|0XnvKkjv({dykQLgbfQf&^@o4LcR`= z7_Y$#wZ+aFqWC!+0U>R7!aHKEMTwA6nIr-gV3a|N2B26Pg;H@oWNu+aV{(H?aEnyz z{KFdkMccGFGqXV+7sgDVFjF!nz<HPSb!>P%01rJdi+>yK^Se~8zRSgq^TR_oO6AH* zpg$2y#qH=>`g&{E;w~BsjaX-ssxm=<xfL*mM4DAu06yq^pYqCBv{FQsh+T*KCiQH5 zdn+(G5jT&Y(!ToH)l6!bNdM3Mpg<6mC{ABHoxDUyDoxsP=H?j=T{?sliztP~@=Wsr zRxNpn&3^}WOh{W1D3eV6!i@_o`(znt5G{xif*_!fEmT|JJ@r97yMNlv&T~7HywZxI zFY@^dds#Sn30eoFV(&f9xun8ukWHjo>*OIZ)k*~+ty%}kFqKis8a&Caymv{Y;<1Pl zlu~I3!o4U|b)6{wzG@$71QCVxmarItrkc^9Gk=<fd_y`ojiyv7CBsr$p-i<Ev5ymn zh>(i!3I*}BG`6ti#mz}IAQ)pf`^Q-}o!*oTO^IT(GRpEf%ULvI5iv1JRZru*2~Qvj zyc^SsYqzfr^$zy7cQ5W@_0z91mVwIyY&^9Q;|+ok+K>fP7O<jy1&qZ*?~(odI(%^? z6@OQhTlG%gyL<ai9cUhxYmg`mnb9<jk2*i3?8_tw0Es-Z5db|~-{bfX-;l}GQz@7E z@%*_zN221|RE($-Q6-#x@|VFycp50tdinmAx1u;wS`_z?4)o;t?-@LCa5MSwN3q11 z{85y-o{AH+DU$R1@dk(<t;>&Fua#ETS%1QEh*OTh2gGqq>|y}wa&=G`cZ6JF4_3fy zu)fCU<`q=Md26jW98XStiv2I|Lo1yOs_bIs-ZvM3D2@PMKpcpMs<W0js3vvx%$1wN zSGRq=qouQB70<UW#d#0jSO3Yb!k%OM`0m`dMY4sXC<O`#N#%xG=pYO$<rV98zdzZ# z{m8DVfyv>m2QNT%yBDtvjodDkx(PBDN$`-h{}lU=V`^|5XyHHd7aljY8ip5=1ONa4 M07*qoM6N<$f(PLWOaK4? delta 1106 zcmV-Y1g-nq2<HfpB!4bRL_t(I%e9qFY?Vb6hM#k0zVH6fmNxuoK?)S9)ISnM#ho@l zP}s3B%0fbln6PO#H4)UP3wJCGQNWn+TY?4)XqpfSM4*-kVhkc0zzT&35r`$w-tT^Q zW?bCTT3cP1cqWrsoXMLr@B5xPHiW?c5f(sJN8kiXF$5`RoPT>%T-ZIUW_m+pBSJ~a zxuD>o=h|=AlGHV0Go291xzvJ#@a3;%;8EdSY`y>V^<`@tnwy%b%v9jL2S7wfT}nsy z7qxAh*R|hDijQDy@0b-2g*xySO36cY6YFQKS@bG3Rn?rlass0U5v3GT?ys56>cubf z$<h7e4;??yM1QVwD?a)cU;>B(f{Se&tXjG*cG0x0iEJiIY-9S;KGrW-PwV5Y<Z~5( zqy#fe;V5A5EJ^w-o`?bsw+pw$Ifsf6YfP*$kw#dx7%>3!58Q!){&^7J#EHRXyOHST zFt85~8qDVn)8@>~L^*sRW%`7f659wLJR&k;2g*)*;D5eZTyLD$qS?w8pL)*q_FNw* zmR10rWmlB^_O>Oj)we8ap*mlU^A011IEt`0qrZ_A$Y=(D_nY6NxFQv!N>WPLd8lJj z+lIHc0Fy01?f5B;tDafKq^gN@{?rKyf}o<Dx_SyD2BBPOq!FiYoaW%ggLrX>Dh|if zwewlI_<uz<?cY9Oh>A!pMh)k$pJ(aEOTmB`L97r(5&2BMOhE`#MwRUPaThzz?m(=d zM(GdzeD?ev7EE4@G10JiAq2els3@5zgBZaWgBnF_xl$Qifk0#;VvSL&s8I-D#1Mif z1V5JDKvYoGp)JU${!z4iPn5fB?3P9lQCx5o`hN>x1~UdsY^cgr4GCv343q{)N(pKd zwPh;OkRqap$S|-APLM!dbsd{u*o3G6g0+@2zn@{_sf|P$p`zR=-C^0BWh|VrkdzeF zayLFc;W0!Z_`gtb_14v%_U`t^)<rF>dg_%CPwKkV#fFm`u)!h-1y^AHl=&=gTt2F4 z+kX%5<CoqGeM7({^()`*cxO+?$^EtCvQ?543e2dP#)r)xPz=RE^6wr(;t~Mbw!F)+ z@4qI_R#GY!`QhBzKl+mXHN)bG9#2Yz*(ZMPUPz#d0qQT^TlZ#?CTe7~Fn0w#aqc_1 zk001XZu}7(DK>Wmwbw?v!q|SYVIRQ)$$!HYxpC`^8g<@LC>HSQi9$r0rldXvpdwoV z`EiHI=6B-+f&mxCuv<_Dfpg9|@pzt?`Xu{a+KW+xs#5eRbMKi8K$0dv$Ri%aK=`L` zGeqU2$(+7?qxZ_zueR4UH?8Ek`X%@fAcXRt>`UxEx|eUye$!7Te*{%fpuiCL*h>?{ zM1?}BxP0xdH`=!y-Z?e0S%MoJKa`();c`#kt$~47qWHp)Ei!H-aQG-43;q~T_g{zU YpB^{08V*I&0RR9107*qoM6N<$g0b-!od5s; diff --git a/lib/images/admin/popularity.png b/lib/images/admin/popularity.png index 19392367a6d2024d5847921ef54e836b5c48785b..e18a8cb444bb9f3e579edabca92303f914ea9c6b 100644 GIT binary patch delta 1151 zcmV-_1c3Xc36u$tB!62;L_t(|0kzb5Ow;Ed!13qj54M35Gn2&(j~GJ`=jOuDD2_n* zOF;~vz|^?a&WX;$NtlPuEi<}I%`z3C9D)Np9P^l>vl_8;Xo8@W1Iy7O2L(i0i?kpI z)c2mWiF2X)pP%I2H0`&qe%gHV2;jB!?-My8Av?svg~vpAcz>3owQJA)u2AId2@Xzw zGc+_)1O;V?z`zXQ@1G`S&P)?ir~V*DkN!}+Fe6}jQK(qFIQKak6_p*X(><cS-O9dw ze-}$QV%99xf8goU(}j;us&IFI|K)IW^wH<rE?AK1sZtfy@xqjsKV;*^%lZEPs*h*P zNO8b^ekuv8gny@J^vmJM$Q%i0iLkINp;YF5-(~4zco_Pgg3Si~ePFXf{zbz;boA*X zK0Zkke0-86oFY6tB4m?Y!gAA02Q2fwaz)=eGzexBbUcJMBQ!TcV?DIDLcM;F<m9rB zprGu;DN~MkczQ+&FRzcp`0-0!!gAY8v2&;TlEwTCV}CO=NXSqJH9F8$$tt0;3`$Gj zUa_6r96fUbkKJ)|oAHj2Gj3djYdAJGC$gm2BtZw_sH)rv{Z%l)Z>Ku=`9K8;o39fW zdy=i&i`lieRw|QXg>ziNN4?TgOKMvhK`Ws`%@AkvOdR^<KHntXK=JumVq%Uvii<mm zLV1lk{eLiOjg7ax7Nxutj*mZ+df~j0!xGxI^(IQ?d17Nvuw+RtOP8HSvGN?N<1g{m zIyH(_1zgow0WdT@W7-G1%cbe&5>DJ!(4Cdr!m4;Rk<lmlbZH)|zRYLcdNmt2T_+(? zBY*lW)~vt9sS6$00sAo6dLd@{rG6pa@^cBV_<!uo6@C3MCJWpwvY<-8&z5b4Y)&X- z$F5@b{HW#YEn0F;H963sA$a-}1_t2JVS|*Wt#k>`pP#kv>eV)SdYl&z+o9u8KLrJ? zB&XD{^}A{graWM9@R<yHd!f7AnMTvY*s(Fcx`ac5)BTc?w7n)Xm^z`W%ej%=4m~zI z_kT*e=rj$`-w#$RSS--l32p6AT?+vL`)Z`?F#?tc&8Q6<{w!@YLURkWw>v-h_%S?r z;`|b8H<-<i*B$RSHA7tk)HH$e3-zE7V`jU8#iEGghwoMNQT+h)4ba#OMkBPfIcsf& z79%uDNdEw;^l-OYRu8FJEsPp9d%H_GaDQ%k)cO1tv<4`xfr>iN8K9=#S+&85RmiFu zpxOxco1v%*l2k_Ca1YBK`5%X*3wd&R@85r?w?qOr%Al|kZdXB(4oVG9NZ$r!wQx~w zVfUW9gokH5oZ!7$EkwY#Lf&#C;Cb^hB%CUgia&}<>fo{#Zb?AfB-6vSn^q1cRd}*& z`Em0!-%T2Kw@>y8@otz9!uyp6{hT?u4mc$E#80<NY!nprkd~=q&DuQk>{(k1y~czd z5aPW^A^ta6xE|N=#EG#E*xNhKHy|M4+T=-5*+NWNA;kZEg?w<$yc&Kj{R45@tI0$3 RL1+K~002ovPDHLkV1nZ+Jcj@P delta 1169 zcmV;C1aAA338e{;B!6s4L_t(I%e9qVY*S?%#($?hr|q_`Y~yR)SRpX>g=~DxF~)R` zFC8C&3#Wp2dS~Rq#7Im`)I<fMh6@tnrI$n`B*KL;MvMVL7-Jh7wnH}9x^7*&wQEn$ zIqmtV7u_IaC3?e2-uzF_o9Flb^StkQA0eB~@;n}K;YAPxI)6Go#_e9u!eTyO$q%Y( z1V%^WU)b&Tw60s2CTLo&%JLN9@C8z-yN`hjTHC^hwQD<By0rfBgu`LqckEbu_lXl- zpX}RL_Xlu5(~PIOayq?uz3(AO4U0N{3~p*VN;;hrT2{7j@7~(e4Gk;sdW$)J{N<L@ zr}tmlzTNkerhge*G8uEeI}^wvNwv=gTb2XJlFfqGTm0dXw>H(7CTJ?iGSt<U^VOI8 z4}SjHp6fL=WoHy6Q)w91yhf*>z?a`+UDpu=0h^7Q?(WUU-EJ507#IeaMy^^WG;ghT zG}Nzt|L0$Zy3d{K|2h~<o)rX96~$6Kp0>r{c?;OQxqtH8)|TqRsY%dvFwJ>rt~ruP z&~=H{7aLc4ii^HE``y*<VDNsIq721Eu_`~<?UoK5KGb|59v4uRg~cF~fkYxhcsfQf z7-k|g&BVksYt~h>dw<)u8`nSG4V<5yy_^r6_3YYNf2w@NGNKWXWrOKRoZv*5;6#{6 zBt}Y6bAKCSvr*t)#=GxqWhAKL_H24ZPK=+=>+z~pC8x?)dTTFU93nIoWjZp8EGt-+ zh2)TMIvtdjl^}{DN?PK`+bz_rw_|e@QR!>m5g5EA0>&b6acSw%89B><f1GG!7MD}R zv&4hbDPgyZh>{&il9)@vs|VM!r?VK#g!1JA8-E+O)CC4z)u8zo9k*~OcI~CM3QnGU zjSoKRqN8&IWlKwNIErw4Jd~A{kT#2G+fl`vhgM=4kj{WZg!XN9PFUTV*NVt=;_}Ep z;jZ@f3bt=4rM;z;Xf(~>-6;M*lCh~QYt}e9^12UG&z%^<$koP;UY0D`*fBR3_<j*s zQ-6)$hKIw-*5-;rRRK`~PqCBE&PrOhS@?$&_<V&}mOv(xgBk|t29#G6QC;2Kdi(Z| z1%UdL6<HV_9-j2eDkvJL^M71C4u)x?p}qu{!+|V=rsamBf~<kyg2tw%bx{1mB98&< z(ZkuRGqV~gJts)1peT?^K`aJ|WDb^6Kz~*tnTCW0vH>kSHb^#G-L8CKqEY3_*rN!V z^+c4=AfY}Pb1Eb<kQTsR00l*0sGz3>MEkP3JohnZY4hg&zeCEZ`l`aD29h0Y0@!Wf za6o|zoHj@$;b9;~U(W;nx_)P>zwcJxM5y;F3|+``2?>A@^52^r=sZlTn$5uqU4K9Z zA`?mO4Ls!LjsBV5o?8PWBe(z5jp1t$=?6m3Oc2v_0VzgCQ@>~C<W`p{Fx2~qJ3WIl zy*)km0)d_ziKPD;Ox=O(*ndTnu#gy4Rd29-`A)*&D>Ytk<(bIz=;YXV->)!!6U+yI j`G2x*fhRn#F#Q*6I2#ULPp4%7015yANkvXXu0mjfxoSW_ diff --git a/lib/images/admin/revert.png b/lib/images/admin/revert.png index 5304f1b7628bd09d3a2903c6a5aeb2192d5ff5dd..c74c7928b919edd26d075167c4c1395184adef58 100644 GIT binary patch delta 1270 zcmV<S1PS|(3XckqDSvnYb=7@rRplMP@$d7TbME`?yLd~1W{yqQZjfw3%_>8QICU|Z zfYz)twPvn%RlD|&u`r=wrh*$KU=uN$z?QNRsL{-2t*9fzM(bv{F{3&swJ#vG-7RhI z?aF<*=XsvJ>;}qu`6lPDlYH{zcYY_2ZHxgx2mt__fC!)^Xnz4lf|j6ikE6DeO8Kz@ z+i*SLTHx9+rQn@uavnAd+X9pWifbmd4A$JVVe8;W@2$YiK8dhq04ViBKmz<9d>gP7 zaJiDvpfqT4`NTSzad*}2BoUvle`x>rR>$XN>aYtwL>suhFb}+H0jek<tsiu}{%@89 zuUjUKZK0$=3x7!Iij<mX<r+o*&fYKAceea-baMDxSfMB$UmiFESU{TFB8BBIwBGx} z8`oB^#ut(pG#~&F2s}QE-o%TntgPl}$Mcc8?Jd6>|Hr4b;GA0w1Eg8Ern085`{BL* z;etV4o$DqsKa0WSU;}`j(*#8UXQ%tPtK7%V?`~W6@PDqR?<0IqErvBkON%NFcGd6p zA4%?IXevr=@dm!;zY}5PWmF1DJQL@&nU@KAgDj7KmCiSNG{SiulkekYX==W;`3onK zFZ0I4N!ly7V~v#2|Nco*u5vM!Kno*WVKv;dSwwtMHv1l-Ykx1VzkA{_{GqpS?Zt3O zxa>RSk$)w$|E+^>M>cWk121ho4M%}JXlEWR1xgx{s%^{qyPN8Rt!&-Xm40{V?Ir@@ zUt<gy7Q^M?imK(o6+98yN^Q}twD$hwGc2bOuQ!bmka0jugs@|8o*v|l=sTn5FN`!0 z3=d!cZ2@`Uk&ENA+m1c$3CXbOPY;OU*w_%ZlYd4SuuPZ?a{$KJo<pzw_5{LeB;@^! zOfrBgKv`gU4UoJFPNptZpB@>Mmw#W!pTJUHGMW82A%&7HXd9H=gX5h>D+Bt_%4Ij+ z5s(GA%4KY7!Ub-)3P#8njt>kV1!NMR3;N1>9$0sO?U8}wFJ=w7cRGfVpj=AB<u(0X zzkgUB^9@sJRq<e32l@9H1(twhYW?SzeCg<KS`U}|y#WsY;h-Paj-dZHXR^}ErPQN8 zsB5e`8yw)3*<aG=baH-TdNe;Q_z${q?G5W*Iq>A(;CtRzsg7^t&Q+Tp&|2M#u|Nqt z+OjvU*$`NJ*HWGz?_hQ5&5T7;jExWfet$7+1i0=OzfyVgv99K)gNNsK^U1`=IAz5& zKYov+QO?2xjJqH6(@%a*vA3ApRXvX$+!x2NZ!xSTq}{t4zus6JHK#cB>06XJOXwc? z83+S{D;e<H0d6U+<v#x-JoC(P-v1!_I9`9AQMeXZ{+IUkb+<oP@$8CKfg1jD@qf=e zQSl=RWf87c<iZjb0k@FYUo*5E@18mH_cQGTf=5t_#jx^#6c^4-p1ZH@z>dCM4Lhzc zx$b(xGZCKsRZl`G6+_#gB}Pdz9gk1V#3oN7?L+@Y#{iHr51f!tWWWhVM<>VbXnyX; z$96yTR8>h)DIcC6dI=+%b9)TRGH+mK@%wUD7a#=0=kmaRnt{zh$QrN%L$m)(tbgo< z9S6Q~(=A(UCuCfm$@~`<5`=XHB!_0Q@X<&fIO)QLER;Hc0n0OOvfO{_^xK`-{ty<| gE}e!mXIa?400zPTn*-`HL;wH)07*qoM6N<$g3;P|KL7v# delta 1270 zcmV<S1PS|(3XckqDStT2b=7-pk5?SW@%MQy{oUGXwfI%h%xsK}WOK{Pm|$2WbC-2O zWk%=H@y9IY5)-#g1x=96WlL>Bh0L<nZ8F4V6OBxnQPsM4t;(+*zuR-p*&nUa^yef` z^5n^rSH9<b&iNioYYl)90szJWen1(Z1Zbn-T{b?pTtX=1!GH8F!ifXN1jm9Z31@0} z>RCKL#sg`9<b}gfhOb|@Aq&r5J>Ll@IuBvi0+8YYuhI11Gk7r29&nyhv;wIbDsQY< z1tZStNz17VJkFZ3@#9{B`r1iYiC0h>-fa~F?)e-lNhGW$+b++0t$l4e7}_$ChDHep zsq~P1OqV{A;(z6ZuV<~C{oBn4W$$Cgmk{TU0Y?B62s7B<Ds5}-=+C<L?a>Q&yn#jm z4H*aoac+~sx@~mH=)vw~oBflP%>KFZ-#eLL-)ad1gc;Z;qhC?}wDq2{#Iqc%&!_J3 zBQ&}ZZU{!zD|{l6>orA;NOQCNqeUI2t)BS_!o9d9tba&qpOn5mFKdlwS8zS0RV8F5 z58*A(aD+CRP(v65A^{H7?#Jiy(J}BQD~}Z@gna}ZE4(N(a|YzRayYo3qxX)pAY%z; zc`C&hj}vmFgEj?9XyFKR>ZozT?=E4Sdpda=3psM`@GLy>CvmKnaO;HB57Yc@S@8EV zKJbs_$$w=R^9!c#2G*hM$0$P}4NXwaA3td1%q(9n3)kg^&y}8@i8tW~w0=6N=5Sg< zdiRdLPR#W$Br|CMxrJZe$F#F?xx#1x5gU|&5LWfE3uif6a^~jkyX8~yC7eP7%4`-_ z6I}kV^3kF_E8^mf1YI0HCCaKRO0n!PLW8Ljh<{KIptTjZ<Iqos5oR{=uKPrSUK|0^ z1k<H~U^6%vdeY-U`B|gs_}ZR2Oz9#L*@zu4k;ZJ41=3iD?W#dZ4QfZ14qb<OjYJ&j zP*HWy0XjDiPZ-tM?uK<T1Vrjy^0`wBCJvmCx$D&4ZBgC0F$`6WHb6S0B&78#&il4w zwST*e46{3v=Px7nK1PBmAQ&3-a@*H-|CqZo&ExX2^VjVj9LtYtSZAV!izlHOpH9l| ze%*J91CPEV+g{1-do?#>!vY9~hV|_{@W7UN>wV{42k8+Q#_*nFCn_aJqfL;4IAvPH z`V8^*9nqf6mCNXr(wmBs5EYeWzqEw40Ds4M^^J_)d-8Ht_;%K>;l{md*s00n%o$}X zr2TvWmCiN3y73Lku4LYoS<KkJA%JE>jFV?T*cqAqc6M@!KEa7QCrP#2l3)Hc2>rBG zG!_9K%S->1OvZSovuf2|E?zE~gUb_RDI60_&%O;s`3p9sukF;++mAmV{=wYz&wpuU zB;lxMP1+PDUZ)k+e?^$RH^27MKbIEZ_3c8+7~#n{FvQ(k4{nW_zh!CB>ZwcHwQkdn zgjzpqzb~khQdXlZPzG8Wx+V~)s;z!-9K+gy*H_WdNMiMhIs=k4*uIjR4=RS{Z2Dr) znkkFBw@ymo%I(s9Xpz&nk3pImtZyhDcjMIs2myim81V14FwO^24VJg`(SLP=W^G-% z<(+Q*$6I#1c2p#SvOpLh%x55tXe0_(%VWSn2ku58#coK)jH}U6CY-o%dL@=89`nWb gAmK1vy58*5{|3STo8a#|CjbBd07*qoM6N<$f=s4*BLDyZ diff --git a/lib/images/admin/usermanager.png b/lib/images/admin/usermanager.png index 898544ce9b489ddd1454fb362a4e3f5f51f9a686..e6f72e077db42e9e1b5d269b5f02a62374320934 100644 GIT binary patch delta 1442 zcmV;T1zq~P3$zQ6B!7EJL_t(|0gcZ4Z=GcU!13?<zRx-5eb4E=Yu9xxU0J)!Dl|ic zv2{XetPsIn5ZsKDI211#f)R}|M*Ts8nP?0NI5v!;#Q77>L9&ZDg2An<TQ?wq!bTbG z>3Uh)bKY|~@8x}-_c5Un;tyWFf50bSvG21f0ML*x$AqG`|9`69jo)Zr-E*UkO8SkF zb7zjcboMu|PWVUMKw}zkLIXer$N_tSIbf2H5*jc7sU$UZOLlMm+M|!J>%Ti=COoK2 zF|d8S<F=QN-tpj%e*eScqs7PgKNA)jtz!}<z5QQ#_*dP7_hvwYSAa?Y64u<jDfRR3 zF8plx!9TrocYl~X+!6+i0}{~x32v}LR0NIPt9D;~{ibRv?}HW~%Mb?;dgxM-o|~?- zc5XQK^{N*a0_WOm2HQJ3t_o+b6i0{8yy8psM+N@B!6_gHmbEQkZ<zs<Cc#XA3L(ma zDkEb_zEI%a#`b}ZryuKYx@)U#IwrUabe|sjviQlPpMU%I**ES7vLC`TKBx$zJ*-6d zvmgyH5)g-ISwTe}J^}MDzQwg)-J7%r20_Q@QXT_vHeAp4XP&(M%KdxxJ#g~1oe>lP z#Katg0XiIdZ)p9tnOkEkjaCxSs92#;%)fh)+WOVleH)?T0tUzktrXgIF&dlLwdcOi z?0@~?t$!n>@DBju046E}b?)r`-V@J%sjvUeHeV`qtcb#ZvX{dh8>6dh2b2pRU>F9- z5FPlSW1@0}bk|C5>}tJr<ou<BfE1VeEU1bov^0O}SxZ*eoj*xU#wMyx<CpRjv+v^O z@^sl2l#6IB0RvP7QH0W<WCXD!nRaRb8z>1pMSoM>()*qo`1OHU2<9Ak`S3p0|Lrtk zY%+AmI@0&7pm(f7CJNEg0{{&QP;m@0Kuu5a+T_9v5CRBHv+JQ-9{B0nB^@lUTEUgL zO!|wD)A7tMf=oTp=O3XqQNg}EO*}V2)UXtkLhBeE$7sJoraaG||MJ4+f4o0)^h0>X zl7Fr*T-Uj>rKEFsMk5WDL%Xw#{8LYm!eTJpL($K3&|k_mZw_%&Zvj<P58A-+ikP$G zWV0r}i|#B(>DS+*G7f-fuWRl1%q#e$n5>Lpn`si^WfDErn1;cH;#pogWn-G1Os>6+ ziSRtruZ&@97vI-J4OcO=bQ9Zlw{^FyU4Of8|Bvt4iJTr6nT%LjW*#%JD9HjT%OPo` zFav>;QvCgtL4&xN8@i!sStA!_2go&V<k(v|R=1>SXsBbL8S26!AMe_{@!YEq?HxY+ z{aqsO7I4)Jp7cps8IqR$0h~+-ic=LPv!A4ALxvz3V;Hb%31r$FZdl`xwm?e2f`5D^ zLuDam`;Hx3&K^JTX>sXIcXTSqwpSSitRPKF*d&Z3HZc0Og{GCfGRbI@i2^tR+z65u zR5ZvKJPBcJvJfchm$%t<%X)7Y)5oTtJigAkW%Cv{VcRyAv=Jmo>4?dhPMSq6MQt$a zffFu*2@6aE&>%I03IYWsZQ)r^Re#s8Trib8H2esACQdf};OY%ddt-+%ovH*P?J=IM z!EQ0hM-a%x+oTENUofCFL<)Qbp$0dEC?X}WOmK7irw_R&rVl0iu*C`-tKJaO(oxi$ z{^snq*7cpj^uSIm9t-oMV+BNV@meO~(quqxBI^qPFu>p<+P{bo_@DuJ$A1}l?z!5= zk9}vbu?><E5(+E>Ojv{s7OxE`yKw5@(b#uSj|l#2NpEiSx8Hi<dkasm*|MXrX;mwk z`Wli>V(~ZzDPt=6BJ<;OTsU^5ICJio&%?sO{{fqT@pdu$i><>?JbRaL+CGu2Zm1VY w$HuTMh>4>>g{8a~ma;Q&=^G5FzXFs01gm72h8#p>YybcN07*qoM6N<$f-UjB2><{9 delta 1449 zcmV;a1y=gB3%d)DB!7ZQL_t&-8I8evY+ZE$!13=n=XcLN=ia`%c3s!5D{J?v&<qjA z)(NGtLIn3fa5GNgP<&(vMl{A4^$!VVq9G*U*f5F`=U+Gn$sXbe2Dh?q-GBrN8)dY& z>tlV~bD!t&`<<VqG0{H^@$(V;Kc8fghHNn=6xF>ex;K5Rb$?CQO*$&*w}#H2J^ISI z-@ZQPAN2x_X~0R%q7pC<>;q<iasESSzyPF@RMjlmv*jC)J-NR3p0t@LLurD(9iwfx zzk2M>hko*hAD<Y`KhFP2SZK74Ntkr^e(jMbI{WWSgNAYrN&!e%d&}nJFTX$ci@}Hf z{N6pGeWWQ27=HyMp!wfKofV=YsPA08=b9TfS5o>Av;bLzIDoK>F68OD`Fd;D#^c|t zczG^xue-LtwY_acIDIugJb3msU#dST@cAzy3B<s%mgO5PGl0T4m<doJL|ITpWGu<% za@<$n+Sm5%<Gl@cZ*xr71aFScGXq~0KYQ#8-#z!%1Ajn<e-l$as0gDqEJgU!APq1Q z5Qk`4LPceK0%l)+hwHw+&vyFyLC5Gq76WiM-oTFMp1$Mi1AF&Bc<PN^5#(7Q#%3T4 z(BZ%b0~@wa-4<IZw32{E#R`RD_Wes#*RH|o*#spIFhE9VrO=*-QQyGsz4w3az?+Y3 z8!Ci<WPgD;h>1!=jW>Ou`{avX>FK?z#g_^lE21!<Sf0ll8KI+NClqsNrNA&ihUmZt z9TOExq&ik{Q%Cb{Ll-U|0;IUoV?jkkuBq`e&s(yx=E5ne(hgB&3crvgpLri|K1+vV zK{1ck5->nT5Je~rN=6V%?37ytI6y&ARy5Qsy?_6izTX^-g<!^oSC8yx!{5&k#wG)I zt|xWxO1ei%q@xfm%Pi8M02Rj|1JvXMZ;a1P0U-+nrrGiEtq=Zu-I6wzSFGe}TqO17 zCuw_bH$l3V=!=h1ohad4nIxVWBdS{pN}+X(j$^c6B3+#2FMoaM%0EAxItGL+5G$8- ze1GZs_Ek*<Jx|%Fr_OR|b(fKS<|&d`^ryPW`&kb8OS$�dDTjp{i;@8yMw0=JY6; zjLGk#yNXfj%?~Jz@)6Nm)7)D&ui}$ryflJirbvWWNOV<V8U`2h=Xm9`gK4%izV3F$ z!V65kHiDx)d|wmQtzcm3X14EX>1<lJZh!xQpWeF*IXNoQX|bxvEM{O)kU5f;i)|z^ z1A&`V{NuDiow$V?JE37&Jr}3@m~Y&~@ptA~)0CpFu7<uws0s6YvSZ7p^RGX=Z}7+u zcZ;l-!&6g~rBBjIV_Ockk;G02@)IS-GoPkwW17H@F$`F}1kx=oH?DO_Ss*1~L4UTC zrZg9`W9QDT=T02_thoHPH#`w!S}TkkR*)ho91@0&0}Q`wp=l<oOw!t9EC;RtF9O?w zk_H(=Swa|_%ms?t<t<LlvhF*?<nhU;Ppo%u-Lln7IF5rQ9RvxII%0gPokmejUK>o8 z!41K-AYp-N02-u*P(h%epe@Q4RDaaeEf-A8A0B*^y<?{uess-7x3#`am~KS^kt#Eq zslsV8$wm-Ja0S>V2n$SuMM^`Yz*i7z@Ir_pk^;*FZ~nmKVejPRVY>%Mti-iy4IwQZ zMUAO%Pj7GD&@Rj}I0>*V5GI%gpg{qVgiwLB;qrLE{8+{pEHc306579n4}bWe`N(_j z&<ihA*MH)B{q-$iOGqfN3@}-sK^dSlL<ST+IDP0??0aX11Ru*T&kX<WJ1_lU?%B0l zclI=_ZYEt@h3zIV4Il<7V@laPv!gRyJbpAkb^g~c!rURj$1(xq-F)U(+XkO{{%+y6 ze9Eq@s};8EU|1H!#8IHaLL#;t7BW+C`7Efv0ptGyt7Mpl2u06+00000NkvXXu0mjf Dv3$4! diff --git a/lib/images/bullet.png b/lib/images/bullet.png index 5e557b334a36b3f1274edd6c7b9d70ff24347c02..b8ec60c74ee86e648646af84d6611ccd3c5075f5 100644 GIT binary patch delta 52 zcmXR&ogl%<$jrdN@Ndr12@@5Slz2T|978G?lQ%Rv889$#<}rM<%sx2-sDQ!K)z4*} HQ$iB}kx>tQ delta 63 zcmYc-m>|K)!OXzG@VRIC!-<MYx)Po)jv*DdN{=cs0!5h={?teDdoW7AU(U3FK`>9V Q6eP;v>FVdQ&MBb@09PjxLI3~& diff --git a/lib/images/closed-rtl.png b/lib/images/closed-rtl.png index caa027e341541f00572a80f103413950e731a37b..016a3c370245ae211e243b4cf7ef23d8daa24f2c 100644 GIT binary patch delta 62 zcmXTRpCG}>$jrdNa3Hzl?nFf;9dS<=$B+uf<b;F?2|)=(2|o`0VP}z)V30k)QWTf) RLmsG<!PC{xWt~$(6984g6Jr1X delta 69 zcmc~Vn;^l-!OXzGaJE=%%|t~dV>wS3$B>F!wp|-Jfuc>H{x4_llsU6dCO|_ZJ6&Fr XX)=SvE@}H}pd5pztDnm{r-UW|+9VX+ diff --git a/lib/images/closed.png b/lib/images/closed.png index e3bd0f9e94cb25e2fe5db97ce4ff9743cbf3e06f..927bfc57ff7d734f41f2f66a3f8298849b20dfa7 100644 GIT binary patch delta 61 zcmXTVn;^l-$jrdNa3Hzl?nFf;Z81+5$B+uf<g^6419uqORL@ABVLZdlpuB`d<N89U Q`9PHnp00i_>zopr06^svGynhq delta 70 zcmc~RpCG}>!OXzGaJE=%%|t~d6M0V;$B>F!uBSHgGB9u)Hu&@ZGLN8A^VNmHOQzI) a-zmnlnL%RL%QOd|76wmOKbLh*2~7Y>AsFNU diff --git a/lib/images/diff.png b/lib/images/diff.png index 657b109994d3c2d3f3f74c2a761cdf854f942c91..04fab07b737f3d74fd0c3f164aaa915078bc160f 100644 GIT binary patch delta 116 zcmV-)0E_?50loo{7zqdi0001&nI~?MAw6JANkl<Zc-lpdO9}un2*p~R`n&&u=c%As zG(;47fQZZsl*J$u*3B7o?m#VB2N%|g6YlT1e?<2Zp)1kIYR=@~Ozdm)T`PYOVDtm# WY69>homSld0000<MNUMnLSTZAIxx-v delta 132 zcmV-~0DJ$w0nP!C7zqRe0000|Y07VrAw6(gNkl<Z2-jm^U`qobASljY;7BfDU|=_E zU|?u72MaKOg(^Ba3P6})v9Ym*v9a+2hLuwzrzi<30U4n)rzi>m8H*!lS{W)SFJPzw m$}cvy0vfbx6$96*1q=X#;Trb(5$6m50000<MNUMnLSTXm>MJ_{ diff --git a/lib/images/email.png b/lib/images/email.png index d1d4a5fd5db9f90c4f07dd98cb774cbc3a45db9f..575b8314209ddee37692fd0910971d410218d887 100644 GIT binary patch delta 354 zcmV-o0iFJn1@Z!r8Gi%-006c6H|hWY0Xa!TK~#7FrO7dB6j1=i@&EVUTV;19LEKHT zXdp2m1Vj|91KL<y=?SdF!VBmbRPYEwj$l9y+ND^$fC#2a7qZ!zOy<peB1pu_!e9I2 zzX_fXPF=2Fz9e(OG`aphG&#ZO+4QJ<eRQ=)7adqVtDYQ>d4DB%>Cun-hlh8*6<7jn zt(~oZ-JhIpq5uQ(>Zi%|*+wnN`qj<a>|@z%BoYB|()rfj%I3kfHY;nIw`cE*^P5Ss z2+*l_RKLAD-uXQB#5)JOvA-Q<cj`!BdSPk2^=AHbU!%9}%H5hCVL<T01EVWmFju=r zHF#K3_ynspAzMM`pk-GqNag`VSArpPcY*+DiG~v-6Nw;sp@t=d5Pa~Le4HW}@td5r zobLr<f?JPnyaPb|As`lyLD0xUg!!AWYRtd<1l0F`z3fjZ@Bjb+07*qoM6N<$f}ymk AegFUf delta 645 zcmV;00($-O0+R)h8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pm1_v1vB$5kz0006YNkl<ZILpOTv1%JZ5Pfqy7jx3- zz>!oOmOw(n2vQ^vH7NwHQl|;|f>b7jzaU?b!V&f-1Vp~T0)N{g?p&C3sZ1a)f?Ns7 zcjrCt?xZ+fLP#L)@?e|cy*JF;8Q_0|0AO!#&%e33kuVIq8yg!Bh)DiM77=KzO_pU} zgCGz9h5?{bsl18fcpiq~`}utS&^ZSp`a|q_9@_2pZJMU97mGz5z&-;2Grtp&Z^Pm6 z%hlD@lgrD?Dt`c>UoIjd)ai6?yWQ^R*=+Wfnfn0tJpk~1AI6yW>FH^s)oNYzdcBMa z2oaTH-RX2LPEJljt#yx?!OZZ=4$Mq>o^Ma5(`LWlKi}Hgx--U*F^1weHiN<7;^^q8 zn&<f=W-iSO18Xfg=R_$*&bh&4GO3S7qfc=hOQX?{(SK-kKAB9EbMCQHibO=LwPdXY zmjOBFsGPfAuWygX<JIo&?u>{khlhuE&1UmymSrdd7AZc80l+y2=bQkb&CN|olEn9Y z|JlL8!4$xE-}hhSd5$QGWVu|zIY(=LVPLHl&+{mXB1zK}Ns@q>1;BFvP)bRfrUU>% z5MZ@hiGH<~0Q?M*YPA}))>tl=pdxxGrJ$4oP?VA+A+0rPwHk=1cmQyGd@N^YXJ)Zj z@LC|{mj1T3L}HAgD2mL^&W;B_5dd6YU%yO}<U={qJs{O;^%a1R1OQrV5|LotRqk;= fLPXg;xc|lv^56-ph(4@X00000NkvXXu0mjfLwY62 diff --git a/lib/images/error.png b/lib/images/error.png index 7bd84f7a36dedfa8107314e54836462ab93e5f7a..da0692429e404d4620f23a496890f09f6c8fc8ec 100644 GIT binary patch delta 612 zcmV-q0-ODa1^on&B!5InL_t(|0i{#ROH@%9|2e4>D$`X#bi_wKM9Nh}n{Z<fC?W!B zk!XUe9!P&d1W{2f+6=U+g%6Atf;&Mlii(gHN{vqWP)Z$pj82M9Gjq=Qo$k5fotb9o z4?ZsU`_Aw8J@~#Htu^+8-2WZw!OePV-J!{=B+E&H<PVblRDT?@9`-LF4H*@P`#0J( zbzmnazaqcB0l7Zku77J2u}}z}*yb9kddr@?9L^F*-n(v-*_SA*E-YwjgbIHHZ8Pvx zRKw%1!PZO&@!8KiRI0n`>Bz7vkhpuTj^x{9d9}Z=sR_yVV=ySV{R{@%cX|M7<hP#1 zW^fwYp~<i!TYnp#k1l$gzLo5ZdAupIEvlJnjgnAOBQ`z?U-J>@qEf#UqSM420V!pd zx6v+pWyv8@*#eRo0u%}=NhB5*aHzQjLWr((fyz9~f?QrQL^tCe3{i<)e|&xcc~%Le zkd-L`A)%GtBf1&IY%tY=*flBwwn-_FR)JVeL^kYc*MAtIoAK|vacqygaI;eoxmC4@ zMIt8YYI+3&e}bQIz+dY=HeX-QEfih4;t-YbDZ*P@hhI}4P1^&mfDmFZxgHKjr-LYH zJLigQ1Ri5O@W>&Wf9w1O{0>ebx;z)Q1qL$~X{PH`JC*9Qj-Dtiwx=9lT66|x;@-n` zjzw(p_gxQTJ0!c?UVRzPTIH$BC)*VnI9TGZC~Y|guT=~ajz>4}b8-UFmH9Q2y{BJ) y&01v_6Bm!ylkA`}$D}fki5xofW-j}f_Je<w(XUKBip@#@0000<MNUMnLSTaVI2d~X delta 623 zcmV-#0+9Xv1c(KYB!5pyL_t(I%cYacOO#<0#vi}b36<$nL7Wk9V~Uikh&JKIE>J`S zLyN=<xaxxR7eo*h)uPQnt6F%$XffbU5R9TCq=iF`PN}1qI(8YI6rE<~eb4i@u)Z0y zHg$II;hf)j4)1yLj4}A1$p1Ydx34tNn07;Uk*p*MlAlQSQ-3&Q-|3I$*5~CaP`57o z4NYJxuh3K2upjwu_jZ0`9mz-pR&srXl-`Q_PlCGunVXmVhU`mM)D#yrH9}$wU~B;Z zV0mg_d26vT6+vqH-4;c<s~-#p9YFfVMIXr*naUb(aZ?jAuSNj?Mb{nz05-4p05m9U zJ&E=3BsL=xF@GUj_dgn$vj9LucO)%Ww%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r z>rPi=BV=hFh6WS^qqze>C6Ek}o{M5%a|@JGow<Oj0^5dOoQKhLCOSWpAw+HGQ?pSN z*k#a4S7iZ8!-#Pje@#@=;p__PCqxJcp|wJe0=1luuYbYv)H+f{5#L{qVRQJgGo6aa zudYKf9*0(XIak5JxA0r+@zy!Tq6l}-Rg|2&04hQ>Awsz7eE1T21FiLd15ip0W>#ad z#AFynZKoW_THqd519u^^{kBh^!PjsIiN%?i)_QQqAx(82^HZeHK6s?Kw7CVT`8lL! zqcFz6RcP;ntKNrrIE0U{N4H3Jw>^Cy+;z&K^GE$c2KJVDJ>@Nj;Id0$43J8!;q$~e z5=*lyBzuoP`w;x27XV=V?BNEI?G$#AveQiD(23_We>c;=#1ECxuS{wM>;C`%002ov JPDHLkV1n}RAiV$p diff --git a/lib/images/external-link.png b/lib/images/external-link.png index a4d5de17c3ba2a00e4cd79fe10dc165044682148..fecac61c9204efb9a55a77b83a46c4da5cef8cc4 100644 GIT binary patch delta 416 zcmV;R0bl;G2CoB<8Gi%-006c6H|hWY0d`45K~#7FV;})kXxBD3tZ6vbu)eOV!UQ5# z29wO;YABeo?RML*{@+V}O}gDXYeP$WIzL=*HbZmuy0iZi?np!U|Aqg?@7vSamdpuN zP;S!m?p2(PU~yS)U@8+-k<rHET^^~7U{2@8ruVIrYj?MP+JCa>9!m+s8nEd5fQjpy z*ul(>FHL`&el-8@{y(SuKg?C~ZAq=~Te!fS#(xw4xBPDd;+j8Y=RqQs7L|``|J47l zhbWly`{R`*K<U<hP5<it*VHmFEcKZ1zwv+9|89tax%V0+9xs{yzu|xL|N8&aPBAdF zgf#<s^Zze{D1SJ<qH;xENexh_0jQw&K_pM*o?0M#_u-2WM}E;=^|Itg&Hws;^*{yH zKgyTX{IC4K?EhV#|BO&KKP=q#zv+L~zdE3z>i^~c>;A9*e`n?|E_hh}<$RNS;o}mZ zqB5Y-bN`?I^{W0qA6jI+*M2+m?W4E<-oALd?42b<>=`5BI0gXrd&pl!C^b(20000< KMNUMnLSTZ^Ddc+q delta 804 zcmV+<1Ka$s1F!~=8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pm1_u@iUTE&l0008LNkl<ZILoDzPe_w-9LAsTyUo3u zFFKb?*}IpCo!Xoh7TZA)Sp*%tc~B%0mUd7h2>e5OGGjw3A%8m9P93^PNFfP<Y!E>p z7J^0x|83}{LA}^J-Me>t-(QzD73$P;{Qe$3-yaXp7x+)n--hGk<9>_9(ql52E&^}^ z_-+`+mZoV7(P(t7<Qp9wJqs8f9=6xk)(+O!*Iy5Z!|PtJ*G5Dx#@NqvI$cO6lNU0X z%(wmh{pkGs{D0w@twTdYn4X?~u(-JRnK9PCy}d1-erJrG({=q;B9T~$#bS>lk%$cd z%q4>$2v=-2+x@n-wtMaE?MuO6aA0I)WJ^`mxAAz~Afg`tUNXiu6h(PXL>~qQ2Huwe zPN#F~`1qLO@%Yuw&d!@W&j(vtTHg44zNPBwY9ka1p?|x(8$|R)mgQI~mAWHIQnH*u zG#brnnq~t~AR;Tz^Qft*8IMFFF(Nvhlh^HbhZ$p!8DnDk2l;&7?r=CrQ4}l3ameTM zNTpIUV`F1I04@W-#Kc4hz(OvUb8{SL0syWA5Jge%@9+QG(9i(GFhE4CqN0N1dH&Mm z<m40pG=DWUIqK@_B(vFUs;sPpAP6S_BHEvuo4eN0(eX+YMHC7J`XjjA?k)h>+uN&B z6a|bixLhuXqId%E`FyLYs?N>M&aUt5>;M3CT?YW<a=G)py}iQG(b1r$X#fC^$Meze z_v__!ve|54d3kwdb#=9x=XtBiWMZYJ7K_Dvv42>6ZLwJTbX`Xv5I`^(>}qUme0RDB z8|id9DhR@pwY4><stU8&3?gCxtN{8rjzeo}D*}PQ3rUg^M8wWiS=V)&EX%hK4h|k} zZf;iX?(QO+&BAWCLy{ykH#Zl&Uhj;{<$6j)zy5hlvMl=z!?+9J1^^F$41fd?J##vp ipB+lR!^1=Tw|)b+_z<K_;D-nR0000<MNUMnLSTYl&vsM* diff --git a/lib/images/fileicons/32x32/7z.png b/lib/images/fileicons/32x32/7z.png index 9ba7da94a99e3cbf5535d25a991ad71640c235ff..2537cb96d6ee151e70ef93659a2eceb86084ad45 100644 GIT binary patch delta 899 zcmV-}1AP482agAk8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l1W5CRCwBL&dn=CVHC&l-#PbQ!%&D6CMAn$B0EbZ(%36|rK~KO zzd<bh0e@^HWlveiODS2*YL;T*rA&w!lY2eKW$tr5_nG-Fp2c%MosJ7|TbB|T3Gr)9 zp<W26a|L!6$2Exo3l1o;VSZ!PKd&kcNZ>ezkZ(|NN?m@a2mm2KA{xA!=8KAo0Wpje z(2L@fclxgE4H|T8k{qpFS0W(bKlkX92#92Vxql8B8aV8Ge!1`Exn~k*<=*byLErnD zHI8hBgNK0})7b$s3!+N*neY$)fPvd=4u=n!MI7(-&rOs{!!Q8>weh37ktGr2>12B- zUnCm@)zLBBKtRZ5r5cbM1AXd~`(6KgbAoQTjs-~CNv{<VN&*Jpr3~PKVFC{z=~6LZ zA$%_ZQXxo70G*qrRA6mjN~;(!u}9Vo?#>tfYjN2=at2mn0zqSJfUOFe)UJW9fUx!Y z3!Mh~xA6NG^xOi7M&V-vdu{_x%u&!cum+Ak!n)7Vpps50G{mYJ0rgo!(?mr8+#IN1 Z@B<|gi{4Z#<E8)r002ovPDHLkV1jK5@r(cf delta 981 zcmV;`11kKF2jB;g8Gi-<0047(dh`GQ1E)zuK~z}7wU<qA8&wpBpL55bwG&d)D0Z5p z4lQOIiFyHXO9-2m4V9><WR(qzvf*Qu|G-y&Kv~nYfm(*L=nk@I61qUFf&>*xN}3Eo ztz|<@8*I;IVSD1(V|(m`SGt<f)!cL5^WJmMJtOSFlgVbkL4V|RZCPmgfd&L6LZwo< z{no{cZvthvtHYUWRv#9&x3~568#l6m>g3eZ@E*{*8u!}z14N|v__by-eu6LN=ee9t zGdnYLVSZuZ`}CztueDR6k)5i`u9QM4g<%-3M|}-|C`CSBAR3J_bLPz1g<H2anu2vC zU_(SuN+BYyM}Pf$00DwWf;@hlBNmHsc6vJcWhV2$i9}lh{f;{PJ|E$Mu&u-^snlpD zn>CwBc$^8SzH*?x=J`{nxPJ2{QacxxW$|`84R8zy1Nk-tbZrmCkwAX=V|F)xunpU1 zRj}utOr%J@@d?S(r(4!r)g<?|S3vLI0!wRD?O9m4%6|~Q@buUarny5bdW6_$7yxr? z2lJ1Ah{eJLDy#gQog?z{+}?W2Vl);7tven=8%8bq`m?b784>S&h9b`*z*u}3bMr6m zE^Pvkcp*yir4h8H(SXX`C%5z|k?Fabo%W@mYZB&`K4K*Fkm2K_c!Oa~v&g;WH84EP zo||I!+<z1p9_}r#VVXs}!7#(eM;Qq{<j*_rRqZJ0k$@6=Jo)`Dk@y%}8;@97T*Vvk zlRBSdA~BBg`B6SU6NzzB=aYB?epVJ&+1hwSBtAwdzi!)cQwdwLxtbRh%7Yg;dg4cp z#;bh)-qrh)hU)jvj88H(4rq(=;ESNYYdN016Mq0G<$3zsSBUbU>3lo|jke18BPaKY zni#zisFzebx^e+eZ~(*$-RgtZpi59LRBuM54z7S$MGSuk#IWV=cqMBeVild$bftha zDPR@x27+jmD*}QAR<YI_sDl$Q*ad&6>;5<9fx)g#KzC?w+T?(-e>;3-jDbO1w@Cu{ z%73+6(!kP{{&PV2Lj3ggZLA)9G$qxwB7)Fk5;m5n#5;F5C`9*4pwE`H+coWqz_(Xl z#r$=V!$vGI1C#H&RiG7DuC=Q2`Mc6~-Yr}cXf|4R+&F*bn(oOt-Fo&;YB&+<)p=h8 z4%2z-7IdlG?VLB~NLw-v_C4)yL0lzQFHVs=+4nS6(4ErB55tk?K5%Rx4^Rjwi6F4! zRJH3E0^&e~{|`A}z45<5n$!q4_w9#_f2pcq|ET^41D9`+*k>iW00000NkvXXu0mjf D51``t diff --git a/lib/images/fileicons/32x32/asm.png b/lib/images/fileicons/32x32/asm.png index f1a1f322b16fe9cdf5de311e9db0f4ba89dc1aa2..17e74d0b21d113ab568f22921f4b91f43444a585 100644 GIT binary patch literal 955 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-9);uuoFn0xMEmawD5fsg-djCt2aZEWnA9^}GbrSa%!_b-O9i|j9# zez$%8%#$_V@q<E~lf2^|&vQ*~ERIc{**Ups&nGY3e0ay~|A)lCo$jAmsvv#dX@N&? zZT+nrnHkIZGs-{zT$!eDO5HoKHhoL^hfn?|)LG^T79CXh{Pyql{mx7cg%gDPciP;& zS-+J-vLk@Y;P20G2fH6%V93_w%8`{?EB}74uY;iX%|~(@qcR#q-|wq>f62Je`kwB3 zarv8zkDq+kbmi#ABfOFd4d?h?Kgj;OI@&*^fzM*Kyx*UqZ`pr;tYPK}`27?ZGA}Pq z<$a&cyp6?->Ff4=fA{=O)|<X%TY^>iivI-*|LxeBR=tX88+VhfR7ZsJu3yT3pIte7 z?dS~C`;1~7&+IgXbuzeX%!G@w<MRZf!g;1O&f#InZLFLBUz^d(T=T$eL+x98XE7SI zbXlxy6Lpxw>#_dukMO!ip(U=O=R55`W;SZwFVb7U;8f`2YCM5$$7kQE-zs;p^~l9? pmk3#VDa_fEoGK;c5E0q&Kt9D|aqg)-D*r%P(9_k=Wt~$(69C_m?mhqj delta 978 zcmV;@11<c!2i*sd8Gi-<0047(dh`GQ1EfhrK~z}7wU^It6Gs%sKQp`DIGcr1oVE^^ zLYs2TrQyU6n^p*^7b1a*6t!1~)QEd7`3ur;X@%&y1X5wyz^Tfi^iD;UV^yi3Mnb9N z#14*wvpX|A_y=oeZEu|Lq|vTtXP!Uvo%i0(3f`KX%jX{<#D7;tYYc;!0R&PAlv0ns zzIN>@5X7DB<??xRShl{tZtmT`p9f^GKea>mNn`5k{^!L@gb@2*zcHLT`7u8)E%D9t zG+$)1Q%lRszfE7i{$)2M!gR7JyOa_sC6;ByZp}FWLP|=dGU;@h?D_K-mLER+w_~x9 z04)<jAf-eI5r4Zi#{&pp*d3-=++b{Mj0<Parhm!hUPeK51sJq7ZOC!(j(9C4GUv{n z$mR2|Iw9<6069<$H0OLaKF+-d4-k#K&|35D^fbUI-~pvB0H(2rVjuu1C9k(CoSB^D z%;e;r=ei!`PIm=N`xa<pkV3G!y2|UVEi?v+=zBeK^nWN56BDiZT5C>>rNNk<Y1lHW zvHIq<Tq=>xX7GK#uL_Aof~QY^N3{8ovFgB{y=+ORHMLre+1XjN))-^ZTDRKvb``B5 zl{(IyJ3peeZucSBCxGk#Fq$9;&{{J;KhMg_3Tta?)M_<~#Z8QHaGW7_b}IF8M(^>_ zHE!ahp?_AY1+cKNKqiwRoldi{QRdAXh3k&sx*m>`tdCP_PmMSbK%f-9@1vArW@d&$ zp}_O!e{$>AcU-)fA(`|@ChGvc?-O(a2y1^^&`GQs3IsvG;^HESL;|fXZr}caWYS}J z_&sbpfo&%Uf&isdn~z>89V-Y`NC7D&wVIFTy?>A6B(ZG=+fKBkZjOsvN1_$zNSnZ~ zuYP1?gmSrzZ97O=W_NcRDQ%<_fM96Isw?FOdwd)SV5eF|2*KRkT&!}uQ?0i7Fg=bp zU1H#E&=iYBEX(HcqbIRT^62O&o0}z4sZ=A4)!;GUx-M6)Orf-j4PZ$N*L6d$=Y0lY zIDa`^&&Bmz4r0RW7hu36X}{NWEP$KeKjDwRUUAs=`ROq(or<kM-JadO(Yl|!`BP+n z^VzezH`>O8$42${1?ZgE{N2l8)SQ9pKraVPh$v;kfZ^-F0Nqv-rA(ad=noL1en;(p zFYtc;!#yA73WfDw|CaA83oegqu1-yT1WWuEsepjW<xiD&>5~s450D2a1W2I}h)OR7 zjsYiu<GefD0A7T@3q(gec%A3=L$+O@68=#AAJxy+gx>BnkpKVy07*qoM6N<$f<0T} AUjP6A diff --git a/lib/images/fileicons/32x32/bash.png b/lib/images/fileicons/32x32/bash.png index c28404ed12e851a420e8ffb637038f42608314de..a31ee688bc95c745573b2ed93da10cd011c7b546 100644 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-m{;uunKtMqbe@L>mmhKE94g_`f8?%ch**40bl=v}Xik1jAB)n&PH z|1=ZlcIJmCeTru9DV|x=;kNi;jjpnd=@D+bIc<gF5Bi1k&BZEu4m{%8%3)jZ;P|%- zA2(!eHM|yT5O+9^!JX+fTPo}2->fn}igh;R2AUZh{B1girO5u^vbnb!G#8(|!P^wZ z*OpK{f7AWL;&JNiX*X=|*viPt{jqc_+}1pk^?1gCjf)F-9@Mxr2VdDgFVCZ|zmt#C zFY>*;t4YD4eW`~_ifco|LV|u2%@@A-famKu^(j5(PmiRD9X<Q~(VIn$+@)ua_L!#h zZ=EtN{aoq88qa3!E0)rUCr*24uUm0${@Wuzr?Hu@NLJIa-MD4Xre)g-mNBPG9gxkM z@4?sWbM~yhhR*Da{mv#8E^8-0?m8JZM?OQL>rqs+^5t!6UH&E$R9@C(Hbz=aUy?4h zXJy60gR7;4uDrZ@WumOWy})x7Kcgl*D88bdeuQZkb4~n>sM>b_{qYBxFP&zL{OpzR z^SQQ;mw?KLXZtG@J@~fFi+g4B^ncUkS64DEYko0)>yjwY@z8Aq<wj3eKbLh*2~7aO C`}bS` delta 982 zcmV;{11bE*2jK^h8Gi-<0047(dh`GQ1E@(vK~z}7wU^It6Gs%sKQp`DIGcsGIBjh% zg*NRmmxdERY+50tN{C3HB1P>LA~oW|DVO{OX}GjP>A3__#n`~9%Axd5MU`V!sh~ze zspP~CPJ**LGd=hR{_V9BzS3ydvu~ci?>q0kofW)+oz7$)B7ekJMr#a%zyJa%1WKt# zUthg?1qi~f_R^V*IV@~!Y?!<E?qvYk?N9Bx`=~MHxc_<n0wF~I@f*X*6Cd&O(h}cH zP4Pu4HMz9B{M*#EYhQL!qMn_s$}XiuN{MAzp+|KMfRK`WzCb)4Cw2Dhx#g9Wf184B zOP~fJ1X4<b5PzXZ)gC|q!|pJ-+$M=cf^(-&$A3wuU$i69k-(s%iXq3rJL1)pNS--! zJe|qBY$jp1Cm;vPf$Ex1$HusO|30Ep7g}q+otgp|1w0_%fq<#(p%{pOl#*B5MNUmj zaB5<r<+&~=xzkwz)3^oN7^D!at*!BDdmD{GB6?nr9DhB^`1p8jz1EuJi8vV3wG3;p zD$!T3g?ye=Dv9s=JynQAB0PEWJEFml4Alo(_Od3O)|5&mW@cv4T4RhsYh4>VJG*EN zvDh*0-1!l$b)yeKp9EwR0iy|m0IfB1b91b&uCl(qPN`HPm)pV^2gey=Z?9OkGrGk` z$GizshJRYA8iD!wd6LN_@pzog%>u7qD_nO3*Y$9mXxUDwmL72+0)bNazK>Fh>FH^* z*(}eV{mIRn-*NtYl4#T;8Z8s>eV?G2fUx@8f@a35qCgM?EG#S#iA2!a;`Z$yh(<kz zhu^`rBiMF?AP7)OHTdXO(xH-2)hQsQq*U_pynpv_oG7;KVB3+J)K$B%eWbktO=T1K z<>*I7Mko{t*tUa|1@`xMkkUp<0SJbMtg=#m(Bk7j1on1!5kfFKI~%GU@9pk3_%L0L zHyv`|P159YIV{WO(Zk1~Tk`1WC|g^3VzF4IjMd;d;JPlCFHfSh3QfS07Ov~oy`K9_ z!hibWbUhc>b2$iv>6gHON77!e=}-i2eE*m~{(8w_<MYoFTsRqmz~Ze-4ZkOD{8YPt zx_G_keD&GW#p?|=i?=SZ^58+ZEogS$&S9tde$kdd*huT64QoHJ0{v`9FZ<2}D%sk} zc`vnk+PA5O`k4>X+3d!zf6KR41sBIOS5GD<KLq}3tAK#w#ZQ!X;p6w)9v~0U2#`V{ z5XEi^ybGKFj`8-e2|Ta=E)Y%m;5DDy4;lMFvHnB#f8X-ibCYUAcK`qY07*qoM6N<$ Eg8NPF>i_@% diff --git a/lib/images/fileicons/32x32/bz2.png b/lib/images/fileicons/32x32/bz2.png index 7be9b7c0627d15f23e2359f515b3aba10f6c7d0e..c780316526fb1a2f8b5339dadb2f9c4c21fc8749 100644 GIT binary patch delta 909 zcmV;819JT72bc$t8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;n@L1LRCob(&M|8gK@`C8|9i9R#fxBqLC^$2ERLYqSqeds*bDZ8 zU}dTM8GjZn{Q%mC2<Z)^5Mw|Pi>s~_EsTOeMejVan|Z=6vo{Rqzj$-U{&>6$^!SoD zqD=JX)YF!MoV-uk-p<rIpvIOEWw#zZsNPO|0Ae^72|GfD8~)uN-vR*Vh(lK2U(>y@ z?|>*#9#$A`<Zpia`5QbZ9*b>1{4j0-hBoeNC4Xj!*voq@R042X<<-IIAKy=1W%poZ z`T1&<AKr+LT)?q^c3ow6i?!S4M_<-hfEiHuG+5`={@NXOUYxmkWi&cZ3<Rc^w?ALF zYsRL$etK?mC@H8X7ccP<Ll_KfQcD&<nD#9@qUo2bm&sfL#1=(pGc$<+D3JFekfX#P z2Y<08-vKqrV?Yn2Z#AK;FTFb1pwjn*R5X|5hV0oPvyNq&9(kQ4i-C~_8i6Nc=Cn8i zKmnA^q-=jf44{OfYz8IGlYoNRhvL5*C^{4a?KTwQff6(T*Zxl?xB$leo+l0UlNR9r jPMMo|T7WV)?}2{=4U+<b>2zuU0000<MFvhpu0mjf#<cuQ delta 990 zcmV<410npF2k8fp8Gi-<0047(dh`GQ1F%U%K~z}7wU^IN8&?p=Kl9c<a99X&gRlt@ z)1>Ydso~H<Qc5pLFOAfwkx+W+A-VL&iT|O$@&_d6hJ-fAZF<P9<q)7bR6S9tjVee9 zY^f5<ZgCQ7dtVRhT@37+wV@+D?dt8DdEfcInR&CqmPBT9xqojFc}v?inpQ*uf)b%x zt=@U}!i9H$N?2`kCYRF(CF|?!`o_(hIY2eqG*b88rnTeu((*$@q<R0fW-xP{FQ=xs zG%>;W*x320>FFOPE?#^yh>3c1%B5W?g;EN`FhUPk2SAjfP$-g0r5HPX`poq0+bcVq z^#$OGh@g~0M1MjLcRhdri9-pVJjs(zr#Uk+lKN_9=Aj>mKme@{SK_f4W{2r9@%rd! z?@TUd?F13=2cTMt0axdxlP9@x>lRYW3){ANZ(;)AC}0AG006pnhT;pLF#jo=t3P^% zy<8Q%xn~2T48Q#u!>3N|(zl%;j|DTJw;zG6HLCV3E`MC5i(h$uv<u7HAe}lyy4M82 zTHC<-^C{`HNn3T1UviTqUz^<0w{3dUDbTuM8hT>Xymz0)`7cODAJCP20Rj3l-B_!C zb8l`Hfb7dDhF|SL+Zqk1`~&iHpOYM!tl0@J1$zcze(n=`+8@z<te0rQ#Ij1<pI-ta z!uZ)C#(&Qaff3>U{1TQ`BAPJiKGsW5`y>9k`+;LeNs|DSc;ne0_ef^?SX+6_!t5f^ zwm75bh8f8AqhfJXEY3i-pV4!}MBCyl%r3IF@|a|%k8)wzvlFHg?uuq7E~->I&vWGX zPaMfOc>med+k*yY{o(#WhWY_*Q|WvK^!K~cvwwL20ObPDfBza$5j2g{Q_yI;LOgk5 ztEh?5900eZdfruvL=qh!QP`_KXbrjym7;SqDz$$G#4cgP+d&ME?uJ*gjv;o*pUqGV z$PNbV64AB<8WjqFV1r$%^#*GH01P%E-oEGg*T;durUyVbXm0{yz}S8qu?j{<C!yOU z0e@nZ+AV2d>uT#UpknR({LLNgCVMm`j;@FxG#P~T<th9AUG^)Yn+4EfOS;!J9SXpA zSKq+;ZI*+Ubao5|KMc!&BbTpjXX5%5@tt?S1+8y74TFqazNWc;MSSP{Hmv{FGJtxo z!feoJ{edyiX!9_e1_SVkRzHv2xklf7Sy%9}9|^t%gDGrwKFIzq00JB36Caz&7eDfC zAoo!SD2pJl;a9a?=>jr9lK)Tgz;gY6f$U(z+}XDuu>6a|g7>5PAIq$QofS}YQ~&?~ M07*qoM6N<$f>X}uqyPW_ diff --git a/lib/images/fileicons/32x32/c.png b/lib/images/fileicons/32x32/c.png index 0a01f8f3a69d59b17d7e2c13328f3ed5cca45fd4..d8032d07599664c0125fb93e072da4b86327f33c 100644 GIT binary patch literal 929 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*sk()aSW+ooO^C#R*0iW!^8S>XY@Ly47s(<6g$MCST=49ls};HOCj@8 z{@in3tnrQ;1ZJ!DE0k^8x<I>0p?h~{c2e0h8O}S^<vTV{y?;QYUH%-W!t3)PCue+q z@BiA9;rkcHT=V(!ql7y?o}BDi-nRR<{{IYF3ssAS3;AZ|zTNw8Z79Qz1Cw0tJU#jC z-s+uZjU1AU*JtOx-EVQt>chOAO_eWnZ12@Zv$j<feXgG4?Ic^#`7pa@Vb$XevWFj4 zm8DGAQ@1YG5_d1MOO)hDxO{kt;m!ElHAze&2P3O2`nq4P-}-p7Qh`HP_r<sGCok51 zZK%d>$8R%1=iaYxpWpS*jM?<$ps2P^-Hr)%c_lU1eGW`-{Iz&rM|slf{vPSc2C>4= ztu}JlEO=)px?FCJXiZtN)Leb@3)i~-Ic0jpZwR~adSdok1FuP}`ECKXc1E$!WKM8c z%frXEg_Y~SAjek6I_4nu##BeOEB8NKG+nAt7r|Qfsc)*!YKBDB&<FB&SthaFt=;zs Pl+iq0{an^LB{Ts5Chp(A delta 934 zcmV;X16ll`2eAi`8Gi-<0047(dh`GQ19(Y9K~z}7#h1@-6Gs%sKQp`DIGY7poJuyA zLQ8whrRKyBn^ve&FCY~a$!f1nq(<Cx$zKq{r4=e?2n1m{z%hr?dn>9Odnu@qP!3M) z;5azDGt+~A;NM<v()LNC-PO*#{mggXdowF|XLi0&c!CgL8Go%YL@@&hq!1{jo_=%v z`qw}ZcC?o-6wFcC*4CD}|KLFZki$M|x828$sn7ebm#+{)j6Z*4ICJ_#?yaowZ7#>> z+3dBI)zx2eH*S0}NQrhj*_2&MiIft{vO>4!7yuz9rBaz>GD-I0#Y?M?AOGDo*}ecR z6G9-RL<kYOHGlg92w>8kq*&Z0l}d5x{Q2ageEwBGh=Bl6Thk^S2k)5IQX+HV!l`_r z@VXnq?hha%#Xxh+Cuh%c|KUSKBQLbpe3#1sOamTJ8USD#YbYWCNGW-<Tj5+f&AD{C z=e@26xieS+)42rN7^DzvY;5pmcNdL8B1T@19Y4;@%zsR4yw;jisU#RPG!0v3HD=$u zmP;kF*$lq#k5nNRi}C#VuZRvmGE^PtS<9AmT2rgln4h0VYmG4mt#zyI?N!kl5{Z-C zx$_fR>rNknF#%*3fYAg&fYzGD#YNWF*V)|Mq*kj@Ebd^8gX2uFzh9~MGrGsez_<yM zhFYl>z<<)x5}8bfWHQP2cA2+t6|Osl>v}j&yxvc#o*Ho|fIumH-$yCM+}s>%YiqoC z@dr0={=ntS8RBt|c)Ska`#wQ8fUw3}f^K5fP#_2bmY0`_#bRh}ar^d<#N!^5lP9q4 z7`7cF2m+K+9X^Jobf_RyZ3;*!snvWu?|mF6j(=@C*mkTXb+cdCI?`W(uCxjK`s}Bs zrYM)o*tUa|WeyJZkkUp<0SG20th!Qu(BtD!0Q=P{LI@TX7DAQd{c5$thZ%Cb84v^S zf~Ht3Vp%p%pF9g)lBcJq+1V+PNF*9*tfI$&>$+UMdJUyjXaGxExUSo_J&zfL?aAqS zE`P4)au^e4T!4s2(ox%VD1g~p&-ne%*BrHd_GyYMXF@A5+J5`_`;O=I?A=Iy?5H1) z`oU0p!GCH0JAmC4uAv5{XYWRffj<82VY}cch$x5Fp#TCZUw*8-D<6H(_W*f_LVy$s zfvEJnYP)|AI1QZq7ngh+c-j76AiC7>x*yN&M{EZ`rTs_sA4IO6kFadda{vGU07*qo IM6N<$f=u4U!2kdN diff --git a/lib/images/fileicons/32x32/cc.png b/lib/images/fileicons/32x32/cc.png index b09b3357fc591566f6f190a3ce52b755ba244b8f..241ebd4e80166887b2a050687df29a4e0bb7c1e3 100644 GIT binary patch literal 933 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*sk+*aSW+ooO;eMTi8M5z{mf4cTWpjd&A+#Qjv>}?Mixjuh=(q)lJa5 zYg}F&ba1_bMThqbcLDR0IvFkkDl@hmyY}pzZQwhLNv9wEf53a3{~ou(YyXgiY3KIa z>e@5jd0eei_V?vV(FO^58`Dc`|GoS7IX<c(xJg)JrL$UewSIjTTLbqMl}CDg+rG#7 zOl5Lep!UFO^4h=Y$D<m)UkNbdpS!eu_j+T46h4E!%nm|aAA}A+mvF8-yg~Nxn=IQ& zp<$LcXHK%VpRnIPM4_RVfAX=E{kfkfa$acITv9KQ{#ZWycsg%^L)YemXV))Y?ETtM zja^RbgTtnZ$EUyFzOPnva1#6VH5-1si>cbb@lp6$mKyFW@};hOgrn<H?ntzLoMo|H zNcsU|Y57UZuL;}_7E3#2KD}&OlIU8#Ow=QM1M7vC2KQwQZnbd5@h-@HUc|VRdBODb zJU*E(uW}r3*Eba9zrX)2Zm%O3M@nFt-js{=1+JMw_s=`{-`ikvnMYvSGOj<2%p0fv U(KEb#1(ex5UHx3vIVCg!0HwL(1ONa4 delta 944 zcmV;h15f;=2fGK58Gi-<0047(dh`GQ1A<9JK~z}7#h1-*8$}q#e>1z@Y&P2hb&%{{ zXrXY-1^3hsyPyh*ODj=P$$~41MAUmO`3pjN0af%&(+1UY+8%SD+(AV-a-kKGsvMly zspHhyof!`PsK3@(J3)P<(eBR9y!*`ae$1@k4eUa(_y{4sG=ExS7zYLrNFh*4J^uQ} zjjw<(?rgtMESlrO*4CD}cmIA7ki$M|cig+iG}isk^A`vqMqj@%oIUdazpSkAO+L?O zx!m=Y)z#nfH*bC(r9>w?*^*sKiIft{vSPQ^8~`CD<#L5oDn;(nrOT@iAO733*ntGv z5JDiOL<kYPwSUF~2w>8iq*U4_olbN4!iChYg~E$LBq9ln+gg}#9Q+f0TZ!z&i>C|4 z;>%tV_Fw{XtQcs``S{#9?mc*bXy%31ns4)YfN8)7$`J%i(}!X#0#Zs|?N<$#6cC z>3gpmLGDB=V7gtPjX?^*#>NJ(c6ZSjB;wHPiIXRpnSYsS&(~UWI-LSzhNfW~R&({O zYo%N!m&+0a!J#T75(%C@{T<O|N5-lHeZFi<r#1C@o%#8BwAL77&|0_K-d+u@A(=eI zojX6FweGed7?FVNAz(CN7^1aiadDCL^>sEkH>ua_luA1o<KQ?G?C)0_<BaaJ5g9je z(oieaCV#NBv_v+WC6!9Cy<Oq;YlY`c;dwre<2J@A)mI~qL?Bd(AP7)OF*i5I+S(e= zp8dtGTi<i#N*34kaoq-iAP5M12?%R67xXe#O$EX*WO;d+L?VIK7PoKzi0k@HPQHU} zC$Q}VVHl#6>asB`rDFx5>QF#RNxdH6`|sg6E`PS|VB3kd)U9!G>&RdQdeSBg8mph0 znxayvVA~E-Rya7=LrNPd1t6H1uo_AQVV{j75!kQQ5JIr9un?;p@7HQwHq4OYO+*a5 z37S%=gk{-0e)J@ENuHjbW@o2NGMQ|qu^K-HJkR6Wwd*LYViT~Wh39!4+w+J)*qNN3 z?|<R>9!G&NqY@bNNP5^d9gD#14^Q~>@0T1mKK&%k)w8h`7>qxD{;umeGkbSv|JZ35 z_3=T5qxxeXVtC7V>jdncaE%<8nY}yE*HQfu=`ftYuzh=&;kYp{$bJ_A0o5-)QvTHs z-ye8@JVGHr3WY#a`(Ab2zYClJPW_KA-zf&3cm5ZM9yR>lbNeyl0H}8UsQw2~x2gH5 S;3h}_0000<MNUMnLSTa7Z_exh diff --git a/lib/images/fileicons/32x32/conf.png b/lib/images/fileicons/32x32/conf.png index 91a8a10de17ddd89b4944e0468cfba9555ef474e..9797c2ad800ae3d048181eb3bbca55887b32cd15 100644 GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dye*%0$T!Az$uypzIRcqF)UB7<W z%9X3uu3ZUcuiLO;=FFLkmM&eqbm@}i%YkZ^EnBvH`SKMjR;&an1EN){Rs#_btX;c$ z9T2Ts0|e{VtzEljEfB0<zjnh0AZOjWb(=PAI(7Q=z55UDKX~}y;iHF-9zS~g<nfcI zkDoky^7Pr0XV0Gk(eoG2fZ+Ly=Rok{<%{PpU%Yq;2CrVde*O9l5WIc!_U*fOAKtwO zf)DRM0MW;fA3uHi`1#YP&!0bi`TY6ImoHzxe)<0O+qZ9De|-D?{oD5+KYsrF|Np;4 zzVU9L=LJiG{DK*nSa<|P#0;F)Z`^wD>GRj0?XDf4!@$63<LTlUQo&eyzBA~Mfk4AU zDeVgHsfVSQIfM8nHg$DzDK%X?T(#l-f4y~EX2?qK<2l{(hb1dg?DmRjs-ctaS#92u z$}jXQ+uJHa)A@5t)*-nsW?yABId%81{i%Dx??KV*i3i>X*gaYH{le`etBm=9xhD>m zF#VPNCO)TZC7(=s@y*x|Z!9zp{uI4h+a@`)t63=~Mm=1-%W8+|j)eyqR$2x9XnUN{ zkWrBC)T}5}8WQXrx;m8Qox6#Iq|Jqdo*#j(J^WLHlFr25vA_7>Vgs9iLimH}l?Pf2 znrj*|K4g7xY8H6P{m|}to}$hUi$foJ+2*soH~C@qW5L1coSag9p3N)`GU`(2-g685 z<@^&Me|FhEML`#CU9N&Z`yJK(Ig6aA42b<8a<y{8#}q@)s+krWF0W3@wC0*I*J!ik aynhUpk7l(0v)PveN@1R^elF{r5}E*@0An-& delta 820 zcmV-41IzrH1;7T78Gi-<0047(dh`GQ0|!Y&K~z}7wO3tF6G0R`Gm9vuCWeT%yod?@ zgYpDzw@{&cv{WIIH2TVq;#s~7Wr2kVDW*k!h!7u|nm|wrCgRTZf$lQ9-7UMNoMf}} zdFRZTd+*LN+@PbNX`5hdf`kB}6%YUh&KL~C*m^%ZI|JaK-+$Smf~HZsP_0&Jad}w- zz?&`FA(bByUGMw*(J>ff!S_#uSA8$>X=w=`@_7uaYHn$DwUnQm8}U*?X2(t0Ip^S< zLs1mpk2wbb80R=U`-N~g3^f*uudc2AaBS9<fCa`FIOkxD`F_mt0KforJ?_HE$tfa{ z2;zf-;m?J_v40y0PXetzCLVTnBJ?C=DUlc&>Mdwm#Yv*Wod9pi2h2II`}?uDvI16* z3n2tP=JNpX3_u9LnFj%?pCN0B0OuU%ziSwXMlleLHuQ^YC-3xDfb2&gh`<B93Bbjl zOPpU`*!zV*ZzK#5H4Q@xN`3e3dvjlTpy4b{93FnNLVwJXQwYRjaa*6+c2F)Mp(Z7R z2uOh2XT%c;PXlg!>hQ2{zwxC&xm1FpD9*G8L4<^=;-Fjxug@{PUQH%F?FA-~yk$r7 zVy@A_lwbs$=e=JnLQyz?YmXjDrSP>_1e3-Q5k^ue>=%n5BD@(LZJz?NF%v15Hm|XP zeSkZ{W`B40i!Ij^5r_z5V`=Q|?ON?Z2&B{F*xA{}<m6QQ2uzGmdKwr{Pc*b;rm~Lw zMnQeR?lhZQ8W>~9W^&NCH!U9_A_yUn&E&A9Z`krdHj|T5uyHpZ$W6bq%Ccb@)7iJ) zA1MTM!seH#;9wM#K#Nz>+dk922<W<wN~MB!BYzT!_*Y<le%@AJSXgLim)p#;TzA?4 zfVK7Y+X-Yc8Jj_;VYj-o&q*?{0zqN!*hxZGLD%*BBOsHwn*xkM*L7Dz&IP<AcRPF8 zeq)Zf!Slk#M)d*b_Z9_LLSQDBdja65s{#zDT^UBGyQjzX0(pl-fGfiQW31Lpfu{ia y04;Rm{%{K5Nd7Ni4u1$a@9k~IUjQ}vNA*7)S$VEc7cQXy0000<MNUMnLSTZ<)O+;+ diff --git a/lib/images/fileicons/32x32/cpp.png b/lib/images/fileicons/32x32/cpp.png index 1ce35422cdb9446e93ef8f5393d630eb3560e578..1289065283639fb99ec31f0de9f8b9fe84e7df8c 100644 GIT binary patch literal 943 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*zWLjaSW+o%sqE7E7(z_{bT+)AE(t}ISP-KiCk>e>)KJc*sdY;i{q}B z|JLm;UfQ%?VTXYE!hVH!D%p<8O$rB>m~K-uPFG25d-&|0{s(m)`*%IeH*1!8b!NQz z{ki7R0h`(bRp#^OyBke7q0YUuAbmsqk5Bz+2_oq&GFcN|o;&#Z{w#(B8P$(7PCvfe z9BzD;LC}k1#=Vl~AC9g}OVCxF@-|uc@Z-PRIbD{p&A6K!DPXkW(cSR(vA=rntSj$+ z{d8i<%c5=O%B6)Gr-iu$6#V*{e+m3Q_EtTxfo(>6yYl`Se{NaKHE&>Sis#9%m!BVV z^NXFthJc3HrWg6Ozbn5V579fCaL{C3$G^j^9|~6|?>6MRp%zemNqnPQ(r@Lz*KYWl z9huRW&%nK6r~j!HtvlH4W(z*CiqBh+9sWf;s^JSzq{{ZyRfi=r0}jkq)O{Np+jvDV z;IDkx>{AaiN`rL&FJ0UGX2Gf3Tw15Z6rTQyn$*a=VwQYCC0qYG&E6w?LKildZxJ(P dY`GTFSid!I)(g*#j?tiO=jrO_vd$@?2>`4U@gV>J delta 949 zcmV;m14{g_2fzoA8Gi-<0047(dh`GQ1BXdOK~z}7wU^Cr6Gs@ve>1z@IGcr1oJuyA zLJK|Sf;sVF(+XAU1*D=PS?#q%YQ#O4`~_*av_kE<1X5u+z%hr?dn>9Odnu@qP!3M) z;5azDGt+}VvR;2=?WB)1+OK!sdERH<cV<>_0J~T!Jw=EwjDOY`#(@C@QV5h%&%U~S z`%55*+uJLaO6It*xw&Z`K6+FF<gh{Q(0$UFX59b0dW{fb^!Sb8+}RKLWqFye3k5#S z=Wi{qto&BEbLX=`N`%?Tw(L?$q?A~e6}z?j00=3mRH~%YY4TUEUR!zc<ljiJeF=0R zgg{D(5F&PK+kXQHVA7qWT;3v+$#CuR<@B$`;_H4S1`-&zwK3s1cqhD$61gi^&J;_f zH&GIHe*$u>9BB8saQ-|GA3sL4>OyPHH-!SgG~fZ10R&8I4#ijmq?Ekfsc|Wr<x)1= z^IbQS+!?HZ>7D{@3{nWz*VlQwvxCMU5r<w+oIJ_Q%zsR$zt);FnKT$Pv<y42TG6+! z)k=kYK8Nr7hpLcBBzW=ScSM&T8EYNrnahrJTGMDWn46nJYmG4mt#zmE?$*&7QmNBC zc<>`y>uw){5edi$0iy|m0If9(3k$5Rt+BDOL8H;2T;9eQ2gjLUZ?D$0GrGsez`Ti5 zhFYl(fq%utMRK_u>2#W{tt#){DO`67*Y$9mWYbQmo;Bh~1Olb-eIKP1v$M0TuCDU( z<zL*p_Z`=-=SU_!lF23k-}eck1cWu(6hs-TmI6T#u(Y&9B9TCAi~IL~Aer=-oO}=4 zPGH*!f*?RC)#YPYNykb;6;eP-Nu%N8dGF&mNq=nH!L}0}soQpO*OC4TM9L=co6%2A zO;N2@v26z_tL*RZBBhO#0uW40SWTt;pvT9N2<+AC2qBoCpO3X1@73#FKFpBg&43&@ zNSboFjAhw8d-^=~k~}><&GvSMR4UafV>NybxUS31o3~I}#U@}$3)gi++w+J?7%ooN zbANF?m!m+KQ3;HBBt2}Kjz!?^_s{wB?>8JbE`E~X#<|!E9N>?izU_L>-u=1nyFs>N zm0@`BK~BQ&!*+w-k3}G^GSNYgO@U#Eqs-_lVI*6J&G(q)Fq}ZYeY@X)<3``le-{A( zwa-6R-i?nw=zD-XO5{=~1ftgSDRh4dI4%pE=KsSM@GAUYAR=mb(R2GTV;`u6e^mbi Xfn>MQp|m9&00000NkvXXu0mjfzzo(T diff --git a/lib/images/fileicons/32x32/cs.png b/lib/images/fileicons/32x32/cs.png index d300f755167e2171ab3ff74854cd479f08a32075..6c2aae2727d8dd77fae10eb9c1f4ba7636ef12b7 100644 GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*zWXnaSW+o%)MZr9ULgp@bP)=dCxVu%4!1a3q=YGH6J}v`pXb@@T~sD zrPa@J^6EGbo^<^!c*NI;TZ)}kQ*Gk4S#yfxO!rQo{^Z%t4}9(Se;yXS@cO*h!NV$h zcCHC$IrQ22+V5|VE=7nr_VzRO*ZhBb@#N`lriLbwMQ;AeR(GxMU6o=Gy4u}z$KtmA zy+HO|QXcuc$}a^fFbObKw7y#zQCIY3R}7<bIKy*(#uHw=P0N0$E{&*tykq{OM}7;L zE-X9yzPWf+ncJ^=R(7r%PfVsydD~w)e-;z3!TI*bTW0*Z^UHL7<Nx;hr&}cM@@>9( z_TAPgt}0FQ1sZZ*-n%Z(zt6w)dJ#irOybMGW&bW@wr-p0l+h%VR(n+;YqtDMtMtN6 zOO@7MVPMqw)S;!xn8RB$$?(cnyZcMm#9oXSVZRlg!~3Ob%@(enw65lGWwVlk*IX6O z2?1wUi5kfK$YIDgXgR3%V3FO?#$WfcHuz)<)aHM#WqSMe_|6L+hj(}X6gr}ibEc?? fgEcjIDMLNu34y-Xf6Xp>g7TfGtDnm{r-UW|lfLdL delta 949 zcmV;m14{g`2fzoA8Gi-<0047(dh`GQ1BXdOK~z}7wU^Cr6Gs@ve>1z@IGcqQoJuyA zLQ8wh1#{xVrWLBx3rIypvf67CsS)>F@)xAxLWRm10;#YZ;Fv?{9YmF5F9kIc%E5^p z90zB2W_s`k{#s}4xQ{g2ubFqA_nG&7XIAh5cD_(}f)L*tt$#6$0s{!75GbXdet+Y} zcR&zzw3jaw%($?%wPhYWd{_YFph@kv`?xW6zyEpt1|h`o{u{%Y)1PvGWrZJdIljtf zudl4G{*k+R^Xo7r+S$pb>{3dklvtJ(xi!ZC2q`I*$|RFXvX?GhUVZ%d-!5nS5@<mP zfs_&<MC8`&4}TzlNq3TBahp^s#pMeZlE3HkZ~Bo4B`|7hV#0Coj(II5G8ZqN$`=Z6 zyGhvn3CNLRpgHD?vuAnm=n<lk7g}q6%;f;40S_pJ5HO836eAIkQu1!M!ufQX^XYWY zcU=#1CtLy3xdhr6q!4UuZ18S(7mYz84!s^bew>+^nSa)Jtu?1oNib$$8n$3Hyl-C1 zr4rd}2H*D&RUsCO@%;Iphz>h4QXS}7%a(LnQ>)dOpPxr-jWGtTb*t^|RnZy}iId#D z`zu=OP8)(D3CJ!2MiT@9T5A>;7g=9lXLECtTCGO0xPvhcjx)jjex=^e=pGxPaT6sC zwNfntOMgpCWHK3&$t2s`W!}G6xb76L>)|-@dOxLlYQ&KU1WMuiK1wO(=H^&iTjSNM zzqoblXRchy5RZGr<8=bQ?-O(r5Y})@(9Kvi6bOQV<>h5!u^3ug+`fH>c-&)h@*`|J zhHb|Pf&isdhmAog9VrM^n*vfwYBe9vJAvcGv43p`+m5xQZuW~>NBS$!l{SH2_kL<> zigLM(Z97O==HOrtDQ%<_fM8<6sw?FOJvNR+V82>L2*JX_LZouMU#)i7FawS^Au;eF zXo|%mmSyww$+O5Md3t)9ot+YiM52+#YV;UzU6*UuuA{VyOu&*BuIsjK&qD@bdvdy- zi+}6690kG*OJKw!>0#S+Bm%R)JmclxZy7hveVO9wnaB$C$BW;7>Ud7i-W&LS<TMPM zyr1E)_hTmzhV<;c4h4oKV~=Bf+b11X5xXl~BYQgN-GFo$OkmKy9cFwOZ~NKrARwUf z&F9Ly`q?La50FPF1W2I}h)U0=w)>BP(=NbC{y%I3uiO6%M3)*~_qlz{H~=c`KdS!$ X#AC5C)&HB)00000NkvXXu0mjfShd8Q diff --git a/lib/images/fileicons/32x32/csh.png b/lib/images/fileicons/32x32/csh.png index 72ecbcc52f6f897c3d70313e0a5c64501c3ff6e6..e43584c7e6ac409574ee183cf758642647b9c5bd 100644 GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-R=;uuoFSbBbM*5p8m10Vl?o-;Y(wwsRvUy|mdM?pu9x>hlU9dzB( zsdv}9y!f*kOKi-R=?Zz1A}?rYco=qWIrgL`qk^OT`{DW%51)RpmUnm1xA*H5ioEl> z@{mx0|M!*O-`=#jJ)Qk*O~I6o@_RBew);2Oil{uiI{nJx%X1Is#xgtXnYKqE{9GCT z_ALx+*^Fkqllgk(9fJk?QkVZBMKu*4j3iHFuol#v*IT`&@$v)v_6N;>kJXv~czTwF zZGrdn`_<1Aa(hcmof)~FoXqr5d}hD%zlQb&hVC8qe5X&I?~U(f+Mxe4oagk#QuEod zZ{xWFU2Fp8aUPM$tN&T}{ddUr;u3{k<)Vu1lJ~z`t((2MDZA-Onscc7tlRpMRq1t` z7AnoXz`*BGB(LMiSHxR0#c<8*nq97|WDR4MF_o-%A|=7IB8+innir$K+m<cmyv)}) z3vwQxG+gsfBth8h+NUXD-HBWO>}R;WM}j#k`?~X2S*E+{@wej(A74Fm;92vGj3w{h owlcnNxmLvUKyl%gX+j^wYtB#2?{0ql8I=D#UHx3vIVCg!0ErjyCIA2c delta 970 zcmV;*12z1(2h|6V8Gi-<0047(dh`GQ1Dr`jK~z}7wU^Cr6Gs@ve>1z@IGcr1oVGTX zLYs2TrRKzkLo0;T3z0xYvf3*|YQ#O4`~_*av_kY;0;#ZU;8f*MdZ(hwv8q&1BcW7s zVh6{;*`1jl{1Ja=?Ie#h+MU^%cc1r}_kDL(um?Mn%|1bhuYZiz7>0oX1X2i;Qcu6W zapO7=gk9}rvRQLjSYKZ^4<0_u0<zyr?WX&vF;&0+dG#70#NhrL!<o|`^YhXY-=x!g zF*P;4w7mRV`sU3qdnwV(PS$0YQX-|qvaHapz6L-@Nuf|A9*;A1@#3ZB$B+MQbG9pi z280kuDG@@1Zh!Up00J0wN6F_mNF)+mI)6U?OD6NW8;PC-hHZ6>I1b)1uc1Wh!i7_r zZ1zn%3A;N1IaCbP*L*fH!GlMS5VgF}TJvo>4KNOPK%oZ#Q`<u^6agtEZ?{UEOC~v& zOm;li)gX6zD_~l;KpTS;g4NYk-fnH7F-XL|*JH<zGk-Zb*;uc&=2RjM#`I0Y2CSO* z^=q+EU}`Fb@B90z5Q#*1{`_}DiyaxN4s`5gLprUgR4UBQ&Z4!(7=zZj(YCkCXbrL0 zN$%bI5v_Hr4Z(l}WE%ma34#EvHS_cHtgNiCwzfv4QX!w;#25$18DVFqRGnvZhmD?b z6DAF{QhyBs3kwURQYqr`I2#*9-n~<}?ijA?;W*LiJf%8n#DNF|O5yuHN-1V$X2|7o zynOj5ckX=0<;y9eQIBY}O2GGhf_4JJ8f**N8LOHCK@hOGxJV=tL2HY<cYh!n^%xy} z58IAl+Yy2wKq=K?qhCsg3PRPSfRvI-#mDpB$A596*tUahM;cPs=Y_2!-4$p{o4~Jn zKQ=Z-u~@{m9i%L>ySt5)Hc|>eFfw9QmGXlQ8wVn=Q!XQfU~X<MR5{)$ms@O@KF6CL zF|Zdj`FtMBvU&RCS?H2HK0eOoW`S5NR!d_wd<?j*%e8CMD6K*hu%w0Sx=o+w0fVqP zIe%Tx#r0ec0$~OvFyxVRzt40i0=K_^#vgyZ;jr=f*#uY4gjQe=FYe!J=_hah)N}mB z{acOa^*PP`0k)vOfiQ-{!X9Q(-P?9mx+!xc1iHPn-XD~V-4?EWJ?%FZG95aHn(jZ$ z<Z|o3{w<Fz3$9LRu1`;Y1pL=k0Rg3}pF=9|$|oOmJwP6y5Fmv@AWHodI02jnPI7eE s0A4l!7l^ia@Y>Jqhm2jI)cm9RKaHHkgdftP{Qv*}07*qoM6N<$f)WAHcK`qY diff --git a/lib/images/fileicons/32x32/css.png b/lib/images/fileicons/32x32/css.png index 638957637a29c868f5a373e0f4b2b93d45e8a585..786f304718bdac6cfa3782740f6f935dc3bd8ac1 100644 GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-R=;uuoFn0tP2*5p8m10Vl?o-;Y(wwsRvUy|mdM?pu9x>hlU9dzB( zsdv{nz4)^lOKi-R=?Zz1A}?rYco=qWx%Q+cqcZ1y|M$P_a&dh7KMOMM{bQl(m0Gyo zUwB$W^)Bzd`RDyM*H&IQ!|uMa;`!No2R{p2J39)+)lRG`*|&B7O13vj>s{j}XuIG3 zEgi+Mmd$8JzU-GP_ZTePSGxQUD5}}<-AM9825UjhdAZedn3o@{=R5fSzwh6&536T$ zGCNGy+h5+d@y3i7H@R2?6wdP{a~b|W`PV(NkuBob-OPxyb?g2{O>3w<xj!kwcirxz zkFx#;btpYLt!|<4tl;<Q{@wSV@0z)oIWuPB;oV<<?7LogcaCU`u*!CcRaO`8{5x^M z`qO4p(U&c31rC#bCwLZ3$bPWcXXlE~FU3}t9W9u;!=v46UE{%qEYS&>%TzxkIeA-O z=ZWZP3`}*B>~a4Z$$Tw?M|rky!lRu1XN3Z8SKDpKe9ciZzb5y;xOto|?;87#PPbS0 o=1F|;%g{Z}ASdLNt;tx=$k96e!Lhp6g`oWB>FVdQ&MBb@09DxX!2kdN delta 958 zcmV;v13~<_2gwJJ8Gi-<0047(dh`GQ1CU8XK~z}7wU^It8$}eyKQp`DIGb&OI!Jae zv`{$af_v%@yPyh*ODj=P$$~41MAUmO`3pjN0af%&(+1UY+8%SD+(AV-a-kKGsvMly zspHhyof!`P5qs@*)=v0JqurgIdHa3edGF1v;1G7PRC<CCUw;~{F^mHP2&51wrJjC$ z>(*C55O=m$ES1bjVQXv4Jb3u91ju0@wY%<<#x(u@=jAJe5TpBV4Cl{%z%MH+d{Zd! zSw4SrWp(wp!tL9iM=8<GPPS#2QX-|qvaHyxJqJKYNu^RHolcX#a^>pk<H!GooE=D@ z10e)bN`w%xTYq~zfB+`lNy_DIGMNllFI`IiS}eXAL?V*FxUG!|$H6=0b(F|mzI?V= zD!mSqum=;6W5qyw&c_!n@ZixSL@O_})_hwi089fOP>CR5T5BlAA|R#Y&2Ej0*(?{c z*}nI>8RSm10;YEfv@u8_*x1<M&F(H5gG3y8J$3ptGk-HPo%vd8&SuhJ%+NIKz-oEl zzE&$0^7$OT?;oi`B9Y+v^WPCYc4VwN(6^Qy>9nTNXfQuNkJcJv3|i|>+uN(7HKbB! zxOeX-wAQ^g1S1lVAp%Ad1OZxW78e&;Utec)bCX7+LAktxF%FJ1!Tx@&InL-l8<BAn zCk?ey9e)B#OH1T(InwDg+uK#%zE!yH6t3&xILYQXrTS{bu?Pf8;rl*HDdy(pSX*1; z#f!hVbLV@mUCWV7dL)xg0>1APgb4_1v?T~LRxJgBAYgfUnM5Li))sf~{zx+EF**4T zww=JX69hqkQmV(su#}D!gsMvcDJ6}DkLSII<9{TvZ3o*<bfj*Ni(5wqD-cSXz;Aj# zH8n-GTE(^<q^xpqu!od3QVKvYF<~{8@`FAb$0D#_uOozDVPPRwIo_|=du*5?$D4>4 zI1HL{xr}AmJbm&kc1fO|o@QsKLMoMNrLh`623*(W#*LdOtzr|fq=oCcUEA}BLD-#~ zu7Bs^dM?L-FryL}^GJHsHXVz=><`cQ^Y7Q3G(P<#!}asA6*$BnKY!QroSnTtR{w}g zaQN{-21e~4n?Mw@v-f*EZGSYX|HKJ|jdyz<)gO;QC|biF4eN`w{sXeX9<~cc$r$C; zQQi)+-$Ot^?Te3;cm2cn2Oc1gQ3#MiAvX}UzE@rM?*iw5GyH$p23~gm7l@D=UijR8 g!Z-kG-9M`T0XGf9(V9HtnE(I)07*qoM6N<$g0qFmM*si- diff --git a/lib/images/fileicons/32x32/csv.png b/lib/images/fileicons/32x32/csv.png index 3ee42f04709e443a2363117e798d3ff3443cb419..e5cdbf94064d821f348bb72460c29053147c65ea 100644 GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dye*%0$T!Az$uypzIRcqF)UB7<W z%9X3uu3ZUcuiLO;=FFLkmM&eqbm@}i%YkZ^EnBvH`SKMjR;&an1EN){Rs#_btX;c$ z9T2Ts0|e{VtzEljEfB0<zjnh0AZOjWb(=PAI(7Q=z55UDKX~}y;iHF-9zS~g<nfcI zkDoky^7Pr0XV0Gk(eoG2fZ+Ly=Rok{<%{PpU%Yq;2CrVde*O9l5WIc!_U*fOAKtwO zf)DRM0MW;fA3uHi`1#YP&!0bi`TY6ImoHzxe)<0O+qZ9De|-D?{oD5+KYsrF|Np;4 zzVU9L=LJiG{DK*nSa<|P#0;F)Z`^wD>GRj0?XDf4!@$63>FMGaQo)#ejyt%?LEu2) zE|2Q;r9u~9&h6~?*|KTVr88SzOtii8{(tPPM86wJ_2!$;6xF9~(DBZ>qSd9PT^}3K znJOQ|mhJ7iA*k`1=GCU!7x`TlCp0qH=ek^I`y;Y$8!Km%o~T3OKZd`$6ItdKuVQAM z;h(rc`O$+l?xhb^;!nJ9%%8o0NBnxodsZc_<R+n*drSQJy*vw!?^t?J;3eCo9|sC8 zTugR6zmU+9!hH3s$Mx5toxf+WB_C7fRXbt5?$pVN*P{Gv#J{IY*%)RpC>E*Ky=k2{ zB`<<UkoTU%dXpIo7a3cBu(>|da^33(|NNTukFoRCNz6C-@od6^ou@PZ@iNTh+;M2X zLY1eQyh6hZF@9l*349@c_#1p$8lzZDc_hx>QabT-)s$s_=5W4wqoto6Etr^IvF*U^ Y_!RT0oNFu&7l4wNr>mdKI;Vst0A-tEQUCw| delta 807 zcmV+?1K9kR1+xZ_8Gi-<0047(dh`GQ0{TfrK~z}7wO3tF6G0R`cebLKniwM5@**bq z56Tm?-9m-((Ncv-(&%e{6wmTyXcj0$NHHz)LxlLy)C7W3FcEjI4|JF9vRigbImu*q z@66mi_s*HSvxI8|3YxY7qDht#jCQ~P2!aT@u5Z4do0|pj&wuOeU_sNkQ>fKyyturq z0T8WT8nE0yV!n#|`{5CY$bbCIc-8+BpO%*JA(z95s%Do~SIfEi`BAq_SlJ09?Lr6$ zA)qLV=Vr_S01^VHr@s&ig`h^GvDLM;AGTl}378-v2q8d3o|`cq00=<$<8B-upCB9# zBQ`V?`dla+Ie(FGCD3j&@UW{3!6!j86Y=5UzJjJz?IZ%u1VmdJFy_1-7{KDn3aGI! zq?GuW%K^YM06_q!E(Ex-hSU}TAq38T*D)B0U@#K7(J!w=-sPSFZe9Y(4B_L-0M7qh z;OyeOxnD~3g+l;y%WY^vX++<-tMF6@Zmgw&gM)A87JoC-DJ7!OSW};2+pm-nR}&V8 z@JT>4&xpn2t`3~~)R7U-y782OO1TV0QS4<8k{NMT#eSs%(U@bXUQHxi{rM)4xFsU% z%N%zHDgFr9*L$y2f}#ijSBf4@Ch@gY0$Ii}Ge(n1?3GGjX1p02>s$t`&I}|SY;I$H zYe3kx&413$m!?|J%wT4WkEgJ^yJOm=lt`r}u)V#7sj2DC5ty8qa&<6~n!I64PiJiP zjs0q%Su`7)8i)v)bQZ;}4O1h`3@Ift=`1#j>rM3_lg?U7uzoiUWM|%)_g2SN%w*oW zf2813gsl%z{z2@QK$}O>+dk8t2o#G&RI62V8h_z%*iQzok<aIwo);DtT<!UM-t0HV zSf70paC6|rvFAffJClrPjb^v|AsJ|wx!+WKBVbdjHKN;Wt+e3g-+oqkURYnRJrLsF zcEP2Tn9XKi0Ql*c0Rrlmx*qK5?R7jr-k}iSQrAI5^;Q{p3ZNfA5AF{q01mDH1!U7h l&>((p?=b!Xs9S$j{{z_=aap*{mD>OS002ovPDHLkV1o7AfJOiS diff --git a/lib/images/fileicons/32x32/deb.png b/lib/images/fileicons/32x32/deb.png index 8d625ccf2ec0d00a0e43bb29a6636782d64c68c5..e2828a347189959098b577985d5df24ddcb0224d 100644 GIT binary patch delta 902 zcmV;119|-42a*Sn8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l}SWFRCobx&M|8gQ4qlK|IFL<;zcmQAZQLjERLYqSqeds*bDZ8 zU}dTK41bH3egJJmg!Bedh%q3D#Z^~|7DmCKqIVv-%^SgG;O%4o#qf&X8>Rp~z7&ll z6a6`hG!-Bx?~}K;Gcz2hu_Ywgtw#^$Z>Q0L7$GFWj*!uMeD^0d03ZZf$?E%Sx;Kdq z5G5(X3ZwP%&F|Q~A#&oe*!IH@lLlaD0q}J$W`Bs-%X<w}90Z-0^MlhrzMs0v?!n6P z^VNBIcq2J-fx!ORHI>~h2DdGazYJIa2cYn2xW=pf!5wy9oVj^rJU&kf1ZJ1FKVP_O z#)iCpdTwJRIjE->FYysW7!GY(OX0w$eJhRt;8&=ZDMALs7RA?^nY4idWiJ6GN(xF4 zTYriUOijub=z;XD#w+^LtFsL%{fMWcrDQi0&kph6SfTlm*U7RJ7<r%xcru}*MF#+E z0@eRX)x4nvs9>|AO5PdpMN~dJLH7o2{iX5^>L4_qvI)V#q~D9=p>f&(;@=saS)>6d coy7?J1JX5*6uaC2qW}N^07*qoM6N<$f-9E&O8@`> delta 980 zcmV;_11tQJ2j2&f8Gi-<0047(dh`GQ1ExttK~z}7wU<qA8&wpBpL55bwG&d)D0Z5p z4lQOIiFyHXO9-2m4V9><WR(qzvf*Qu|G-y&Kv~nYfm(*L=nk@I61qUFf&>*xN}3Eo ztz|<@8*I;IVSD1(9%t;BBVEmSeD9g}y!Solo)PxUlgVbkL4V|RZCPk~F%1Yxgi57y z`>l%?-vr8TSBEp%tnQa>Z*S}CH*RDB)#;_4hWmil)wtKzA0Q&#$FDV$@e_P8KhNcK zn%S9|3-b#L-={BKdd-Q6Ms%u9yHX0J6oz5A9`!W<q7?ajfoL?!%$YN17jE6!XbQG1 z0NX?ar4%CKdVkdC0|*d266EpY9I;r8v(wYjFEg13?LasJ=ylZ1@ADBJ2-{4&l1hzc zvRShkgr_|K)sqJ5Yo0%Kit9ITBDK7*EQ`0(X@Fxu7|1&S(6v33wgB?WAG5ppgYDSP zRl$DtWFkfKjZa9PKHak3s*2p_%z)m%1(w#R+O@E9m46|A;pwp<Oml}=^a!!hFaYM( z4(1>K5Q~KgR95*pJ4fW@xxMw4#b_)FT6auC+l*TD^=o1IGa}ym3`L$rfU)>6=H_4A zUD^a7@j{g3OCxAYqXCt>Pj2Z`BGYp<KhCA#KoRDaK4K*Fkm2K_c!Oa~v&g;WH84EP zo||I!+<z1p9_}r#VVXs}!7#(eM;Qq{<j*_rRsAUG5`YqWJo)`Dk@y%}8;@97T*Vvk zlRBSdA~BBg`B6SU6NzzB=aYB?epVJ&+1hwSBtAwdzi#_+QwdwtT-8N|^56xIp7@cY z@haZGclCbJP@VtG_#{)~fVL<Pz6koemh|i%0DnL!&(q(&LX-zh=kydb+A8CZoZKsF zVsr<fUQ+Go$^|^Z0T3@7R3EekU4n9<dNL|?cm~8OV)#QKhD~?JBU$?ptJt1RR}4rK z16C1lAc#h}0w7pm6>GhLIy?Y_UGRqv-2X-$80^{rbcgoFK?BDA?eLW`1_p86CJEpx z*MCk)14~zW*MRbc`04B0SY7sLN~&u`1ffe2HkPNvJ9jv&iS8Cak1gpz$FwT|-(Gzc z^VdcCZL!1*Oup}yfvR1(wx5a5-<7t{>;E~;?>Y^goLsr4?cYw$o#yupzzsXiFYPM> zZkXvG18vmmCQ>JTw7k5He~<Gi=q}1`L`~Q1zXgE6PU+-_;mC6zv~3^{Q3xoBAh6S} zYS(QDhyxM+Kg$8@jo$^*#74NeZ|}4HOO*xtL-jvZY;~da@;gQV0000<MNUMnLSTYD C4dPh< diff --git a/lib/images/fileicons/32x32/diff.png b/lib/images/fileicons/32x32/diff.png index 4dd98e7cc15ab34d85768e4ed4f9de5347585939..9e413cb6ee9279dc638cf83c159f5a7480fbf418 100644 GIT binary patch literal 942 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzc9aSW+o%ssb1E5uQx;bZ<eAE!lbXAX7wax7{UbIi%P!fw!I=P~O` zbbk8Mru7OD9cL%G3s~Qbx*+N};pp8XriRwVeH_K@)!*;EKh$Xb=b1ml&6;Iiy2bzg zMs5{4U|V}2%Y6R)NXDd^PglIk-F~<0|Ie^=<n+^6>HN%^eSLj4TLX8%q>kM-cWo=S zUSM)r!CkQT=edX7!fPA8UkTdQKWFLj-}%M{OBf^WFe`A1eh@l*UBdaFTB3Q|)33Lb zuSY&F$#;DBDB|CG2S%nFZ!|J}zFproe+GkY!8|#?M@8SVA3xc{Dl_3xQO)n)Uw)iQ z>p9uDo|#{zd;7k>dwwVDP1mU`SgWm5w_}1`-rAp~#*FvbUiJT0y4P81Z<ObIILCQT zbhqvU#?tR6Ex#scKiE7wAnJD!bL`GV`$N1giRZ9>sWQo8T0Hm4f!T(#Z)0^C+72{4 zOyHQH9-{D{kG<0JJd+e};)Hbd7j}-P&ZPx42AG-gb6l0M-L-6sko_qK|N9qbX0mb2 cUCH#H!Ovk<a?q63rl4Hs>FVdQ&MBb@04YW1mH+?% delta 964 zcmV;#13Ub#2hRtP8Gi-<0047(dh`GQ1C~idK~z}7wU^It6Gs%sKQp`DIGcr1oVGTX zLYs2TrRKyBn^p*^7b1a*WVP2OQX}rU<S$6Wr4=gY5=ez*1E(s7(t9ha9IHwNH4;iC zCw6cgoZXq}!9Vcttex<r(f*ow`+47aZ+2Gj#_Vh^_Xr`rFn?NO7{v@AkV2r8di>>$ z8`ps#>}W5W%bBCH&CN}7@BaN9AP2qFZaI${Q;Ykb=PwXK3?IKSoH_j=Kdr3rRVKq{ z>GaIX>gunVn>Ro2r$j5AY{)L9L`sQeS)p5F41kc5VzER#9w&YA;-%Gx5C825wkJT- zgb+w65kiD+jeq_C0vLD4DHOIyBobUYe?I<mHv6I%L|=eWTf@d22k)5IR3dfZ!l`U7 z_p%eh?hPPE%7Mn1Po}20_uv7dUKd(xzRqL-CIJs9_5m>UITRxSNGW->Q|4SU$+={* z>$$Eaxzk?((>?{-7^D!audnlJX9tZzA`UzrJARz$>3`|wc&#<35^*qQU>P>esz={A zmWoBv=@h>2AE-hk65;97-w<tnWT<tZYc8A8X-&0SWqy7htu@9NwARhGyIVnPh{aBF z=gtpkt=oMFh6Iou07er80a|Mo7Z+JuTVrEmgKD)(p|FiH4vsU%-d?%Z&*&~6ee)(v z8EU1P0DntMOQcdM;_*0JTP0q<R=Dm2uIu4A(ON&Hy4Hw80R&3n`#wr3=H}+e=kq*! z_9wS)eaq#`DWXx2XtW04`#wP@fUt&}f=*&pS0D%imY0`_L?UQyar^f7M57+#<L_YG z5o|j`5CkZt+I$Qu=}<|iS`?5{Qmy)U-n%$X6o1=xu<b}w>PEk?>qu_}I?5*SYtc_k zOi(J7ux$q^OYHCOBBhO#0uYRiSv95npv%Xh0QM>sgb*w&EQDH)_bQb(A7;SzrcVyM zNt!~TfMwY{e)J^tk~}#%$@X@USS(gAV>NmXxUS2!YcnXVLIYUR!gbx2&-0K;*jk*f z=YQgQE{8E;h6NaLOM1{}IuyX{cTf1^ua_LPeR?**l{29gfZu=ortLa8d$)N%IeWM3 zd81Fi`$JAa_rS)B!#E!F!l3{TvesxjVZ*{43gGA!=*ZS#A_-Xz-M3oK-_Pdro4@=m z-&z%1ozh&NnfU<tucrb6%2z*D-j$Eu>pi)FJWS+LC<LNBNP!c;Y2YMp&$fW)t^Wn0 mBOkoZeftsHK2UD`QT-n<iM%5d*+`QB0000<MNUMnLSTZxILzw+ diff --git a/lib/images/fileicons/32x32/doc.png b/lib/images/fileicons/32x32/doc.png index 8369c1f7327709761e9f5d34611ef5504ee6c3b1..43ec354163fe4e6c1a34a5da35429e87c6daf8a8 100644 GIT binary patch delta 934 zcmV;X16llv2)qZ7B!7cRL_t(|+U=J~OcP-khKZsgidHcg*TkC_6Am6VG2Xm-(X$)w zYdn}}ym`}jFfp7oY9&CY)3TU=#+AecH(b~((9+IK$Cgf~3lvdazxhHY4hf~dmYZMl zWT5=t`#=BEgem!>N+nrtm3%&Uyk0c^6%s!w2Mr#N-^wfzsDGtaW3futb-3&5WXhda zsK6>(IX4du1u+y1iNbwW-F3V9sc9PS*VjKQbSJ7Brv!qbVT6Xm7!F4YhQ@QBRrl)Z zU>HgMSyffkdpsIT6ez%9;fNv%_gUp8f!z2w;_(rCCmJM4VTl3+ctsIK6^8n30V<ZD zov`l&-LV);%zq{jj;K&njTs08(A^h+{NgkG9r=--b#ecj&Q3lC65;2asXIXepm|(* z1SB39p@~&3%JhC4#MaC0SX|>n*&#VEiw?>-=I+8wWi8N}XJ!G31)$KxT2$v}^Q#`7 z9FsW!6SFXh`THeDKR;ECb1A<tfoN2>dC=L9auO)8Xnz;Hh(#mZYoqC60=oX)rtMt- zu48^w9QI+^5g+F7^YEAt!6eELc~M3aKJSas#1dA}xaCLvNXB(X1|cT!Jr=WRe?Nc< zn)sV)pz^pMyKlVYF<UORW8Ik+tUA%ezi&GK0K2Zfz%mj@8QkkYNFWxE+dTR>ge7zY zU&AB3!hbzCU!nHN0IE(lVdJ@0tUcX~y*FRe7#WGoIPXZ-OgJ*)BO_u0)L`@YQwZf0 z-W^V0CGEhrE03}HLL1i5#2e1GGL<L%xYpLsy`^*sa~ac-kw_%P1QLc}^YlxY1$rWM z1hn1j&$eLosb*aCeqo8VbPU_CJi%1)w_su{?SIHHlBSRVH6(4GcPn54#jwts&%OHc zLj?2;-w79;c`%-J2uzNTIx>U>OfzNE(W_4FK$6e7;;@XbiixgalW+d@_I~_Pd<6KJ zb7T-=0_jx7rlUtg8GYUQR1^KtH1j!PGQC=wWj=(Gcpo&-t)x(TKmvaKaAc%XX)%Fp zW`E3vmV=sGZ?S+@w(vk+cudXhcfjO?BO{&8hzX2lb44YS$qEXL<%&vnbW~Jetk@JT zu%oF7CAGChhjPUQrj;Xb_RqQgSzvm&z~{_=0YL$;cP{V1?Ee$ed*PgZ3n)LofY;|s zOR~(Sv|Yu*eqpup^9i_!YGUUcQl0O;pdXa~NQQHWYx<kfZ!fi3YMa%$A^-pY07*qo IM6N<$f<p$xAOHXW delta 1012 zcmV<Q0}K4T2Z{)gB!AIKL_t(o!^M|RXk1kk#((GDH`62?OIjPuq-s-XMKo?C7A2iD zRxRR2u{Fg(tI!gW;zH<3P*6b-glq&Q(3K`_q+zJtMbYB23$2R^V$sAuBq^p%B$;$3 z@80VoGnsjlH#0AjNDo}z<KB19`_4JvIqy87B;Hsia{-ZOoqx4B8W9HwN(5ufSN%ti z9s&HQ+KI7D#%-3&%*?pqvu87as`XN@?7qpl6~BL<m_$U@@4s{G>D<j1BO|<=PIIWQ z@A;9@(eKj7jy+i|66NSrG3-hylu~G|Bd?+kfGEY>+&t~=?ewKmy`$&P|5@Q|D1cQF z5tLGhNaR&~9)Cc9=9Xq=XK#>9Ch6_zY5#I;Y%&Z)RRE2yqHKxBN!*cGjl{tN2Rg<w znW;(;UO0e~H@C8j<P7|BeF;^E7QV6EbN4Rx?cK}pxpPRNF08e@l1>Bc1QNhp6#%Y~ z!;&}4PH}wX8ds;Y6iHg0gmCgN_$1xUqut$W&h3hRynlKGTrdUJIewkZadkRN_S0uT zbe%fTcqcQwedsP!L0^ert)(N`zJjnu8J5fxyw@UVtq}m(5~&nDCB((Y5G%8zBK3g) z30J`=Mcfm%y>S5%Sj_qOXO3`Xa-N<Kzr{KjKb_*~kH4oS?$H#}#Jm{Rlo6%|cfzYc zNok2-tbgN&cMlTN!gG)80^s<W%WU5oC(-1Qx_>7ft<5}k-wqt0v<lj&!QQ%MsFcE5 z$Qz4w5YxiYrQevDzlBypTnjIKcA4w{<`{l`Klx>YR(g$%hEt%F!r>4E5%~LNmcj9B zXeBtelA^DFp5}uW9%B2}IKFi&yzxtfQ#HsN3V*HGRs-#|;LXH8S#D<Yoao(yZ!N|- z9!zfIt;73P3rXvs{)SUfB$5<rJ=xmCYdxLheM>fH_<Uf0u!<^D5cO+V7BW>9je-Fu zEaeTkWyARC6pJ~-LeA%-7awN#oh<>vi&g;}8v=kUG!!NL_})_h<a~=#@YDN;G1hYB zkAHcbb2P<t0YMOet1;e$15hQ>^gPhUtB>DH*E`=(Z$xkoPNX_PBw)ij(|8puWqk(w zyBO^6iaeMsEt!A~snLnN=+tan#H|-VgCl8G0J07MPh7mnrKu@4Tl$hoPDPJEAr1or zK~IK;LeHx0SDvw60Aa>uXlV6XZ$FACZf&#Nb^u-lU2F277~W#I>+P@MK!|;>@+%mX zK-JD_>4eP%0RRFEZyJ+0)z%g|KyIKBpo~F87S<e<-M0drz>fbh<u`zd^8W&<h(@Av iZr^0d0}JIps{a9PLy(QE4!fWL0000<MNUMnLSTZYJ?<F* diff --git a/lib/images/fileicons/32x32/docx.png b/lib/images/fileicons/32x32/docx.png index ce5dfb3d38430e362ce0d055321f33d58713bf56..a25f260c66744fbd67642b2dc6c8f7ba53bde70e 100644 GIT binary patch delta 948 zcmV;l155n22+9YLB!7`fL_t(|+SQjyOcP-g$BCdK3f3hU*TkC_6Am6VG2Xm-(X$)w zYdn}}ym`}jFfp7oDiXBQY1tCcxRSV_Aj(dWmUd=3wsbmOposGK%?p_@B$OG`9(>6! zA1&W|-|u_hH%X^xPLv3u*erOxaC<y>_D={rQXM>XyM0DY!hd$GG7|F@s;Z*4u1=)7 zOY91)r=4^1kI?`|13{;7o)M2~Yk5=@1yAbh-`MR$<+E9VKyVDfu@J^WVcXDr&NJe1 zT^%$n!GFuLjC!|QVF{Z8Tr3opoWgk&M(dHCnnEl#Zg%3SAV@4>Lx6V_mSo3Jo+&`V z64VLvPS72TvVX*40->-BNmiH<zaM>reu(eB!`Gf0;Y~N^f9mMqV;~V8AI{zh5&*5^ z${`@|#4s%^D-mX3_y=~~Xv2zXFG`P#Iaz*8#Oc~@EEL8Djdd0l5Lf^bEv!UT9veUO z^WvDv0+?Qe85AE8Ecraj3fHCj_5>mk)ug3k2xTN-Gk>TH9z-Ky&NWd~X9BAF)1>u_ zAFk6rl%MdT;-nYFhuu7<E093haSuvq!MB4^T3Emunz#Ct4~dv+sX;gs_!*6wv~`Z4 zoE9FIHLN@1!-2c+dCt!3ZP<LV3G2@`@aOGUTCo4tJ5-QBQsZ0;js&8yn8}N;qgY8t z&>I@(9e*CY_W?DpMo@XK0oyJ&W7CC39J=?B=7@-=r??{-J#MKH8y|NjKnW%<zXef7 z#rr~Wtfda@zWEY6uC`($Exh$oGqdij54T%~IJbl@VK%K>YQ*CSX996eGkM(;VuAiJ z9Ram_%cUl4INykCo*tIiM8~k_<}1twKLyj1DSt~1EulLSpoE0U+dc^_AZf;V^SM{u zcn-gs<~!k{GY`Zv7J-?m2}=#f0=k|wX&;bhJCNXWE<YinSJKfvrt{6e(>8=T!AF4K zSxXJVnLsL;HfiryP)d*6psZskl48Dxb!I?Gu}oJmfzE)2J}HTkqXO{fm!(EBnQ|tO zNq<k8&~{LL|1*}-&Xyg`3D2p1@CBHew$w<a(#`}XGTFS6PG=knOlI>+W@5srz+}F$ zFR-_v0Yx=6d57xS6POp4B8z`-{%`&qXGdU7<j;1$UvLg}pr8VaN|3<+&;gI9P<O!I zZ$f%6Ea+1}^>Yh&yxx=`ifl^l$`|Gft1VGKmw=0?BK8%Ks$A~{C4`F&3x{j|o6%pG WS7vYN`#Gur0000<MNUMnLSTab)w_QH delta 1057 zcmV++1m63~2et^1B!B%$L_t(o!@ZYHXk1kk$A9O(nQ4-aC9O@HN!6y(ifG(OEJ`|Q zTD6D}45p?yXcbyUq;w&4B`ByM2tpPL+CW#Dw6U2?Yj#mgaoL5|MFp{F;s^P_w235> z&g8v&U1TORZ}MjHGD$pe;c-9C{Li`n|Cw`zyaf`;<W)qTH-B1VsKg8)C=ndT`MT@) z@lL?@dpev*Ce23K<m9C3y?8MRsB%9VDEO{2W-0F9N5>G6wa0G^`x^K1WnUk!#9|z6 zYwPIi?;nYsIPr9;OcbJ1xwI>#P)cE0mhX`}10YH<Gc!wleLZc_Xlwt#z@J6IdIDHB z5kV=1i1;44{eJ)gRM%89J$;)<BtmOTOZ``g#F!U|k^m|lIolEn5xyt9oQcDS4mBi_ z$?;+k0dD~LXzr%wNjvb%)B<W1TG)=}{`>ZDVE=x4FI_^iy3ktlYAgn@69@w{B><T0 z9p<B1G>Vgbx41cxB1h8FB!ts{!Kblio@j1fv96cShkr_Ez__nK8^f>DX>LxWNPYGk zh_#9iECQ#KynS>xDtlguptYtUQon?-j12Q`ve8>2SeAtV$QEBx3@9NaHV(l8Kgw4f zaFK8sj8cRG!nQZBA_DVi8~Z{hH^ydZ`S3fmf#Gvep8fcHYC-|3f)>F*5bYEYrVMwy zRiGq4M1OF!;fHq*6SRaE9^V7N$qU!nzBNR+DnRt1oix-|^W=j&Fo3d@+eaDpt|~*N z6k0>Z(P#rfOX#`w8<Vqlv6K+9gqJ_R&eXqYdfzxmX3@b?)(RgLUx88zgFz5P;O{#r zx`%IJDZ!YfEBfZ=2|jr7QMPXlVQaI*8#_-pRey%Op3rh-)m2`z(Tx6+;!Y~Vsn&hi zTH_eQBav;qb?m^hkSxo6e%)7)Ba&pb9;vP3^_E65wkDN!_#%GLt)ikU@cVCAkTO+} zjjRJBEMy$giw?u*qRgiq=F&DFz4RD+@2znWUM%JEu`U3ZY(Y`NkMBJLK-$(Q1wXxi z41Y&!Zu~KeF@~z3l||qNV9K;N-T+jdG%XL;@!C@l(Dcr?tkxnJ1E->mAmZ|&jZ?V_ z7E(6dT}^a%HTiB#78V?r4=GcL0{*F4xrtdTfC^jEk^p240FDd|acz8@jkdN(gfo5s zjI_7A(f9P^^AeA*I-grJ@wjWxNP9a2gMWiQNm%6E%VDW`FAydk=g82IX9g6TXypL@ zF8~TN;Kz1d9vocp!r}b+<>6;Ox8}9y^5CEWcDb@t2q1Cg%H$_XZJG+sYE5TH$8KQC zlY|0uXB{VermoJjfm}x+KsgQ~GPh!>;JX%R1a@p9Ep7v&h3^6>l4Q8JZ{J|c02*_J b57qwwiKz2j^kF6)00000NkvXXu0mjf3%d3p diff --git a/lib/images/fileicons/32x32/file.png b/lib/images/fileicons/32x32/file.png index 52318f6e2c7fa4b9450f7deecffdbf1332e8b0f2..7f6d51a0982ba202d424b18c3ae1e289909f2fde 100644 GIT binary patch literal 543 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyPXc^GT!A!xuypzIRcqF)UB7<W z%9X3uu3ZUcuiLO;(bA=hmo8nhd^u3T>a}ZEuLGiWYu2p;s$9Ea!>QA!@7;fJ|G~ot z4<9{z^!U-^Cy$>zef;Fvlc&#~JbV5Wh@QWA1_aMvJO_doFJC-=`QpV(FnIOq_3PJf zfZ*+$w{PFQ`|$2P5PW$50f;_+{P^k9$IqWWeg6FE%jeHuzI^%m^~?9K-@bkO`s3U8 z@87=v`0?}S&mTX2{rdI$_wPS{{`~#>_y7O@Za<HS06i&O666=mz|6wRD<CRn=;XX^ z!<GY2pS}A0!z8{AD1F`2#WAFU@#uw(Ud)aH4G-(n`Xe|5Ynl|cWvzUFKU4L_vP%tO z>Jqkktve;B^1NHb?Va<7ecP{TjV~Se`_E_=UHqEy<`>gv?z(MJee)WN)kS{Z{QC4; z;s%C}#X%h9OX6=lzAeHapsL<>X1-sEsZVLc;Ws<tOTMoUX4t|a!EXNO^y)f}2N{dr zJgs4$n!n(-UjN$p_V>RBD>Ix~<;>=_mFJ1RL$vl1)*$W;;vRp_MIVULuF-$6)_Li- zmH(wRN*AzrT=8a+$Um#~zf}0ZvEG1_cbOK17&F^3Y`X8qoqSE&8x+l+u6{1-oD!M< DFHR=i delta 591 zcmV-V0<is`1l<IX8Gi-<0047(dh`GQ00v@9M??V903iS&e~_!s00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-vj5DgJ2*NXcu0005%Nkl<ZSi|L)Pfrs;6u^J)ZK<Lq z(Su2si<00sC?`M~<IR&vBgsa;ofK*)TR(uG1vK%{16ZZSM1So(58Z_V-F3HYZGtbE z>||$W=lA~2yb&&>)DFWAA}`H3jA_IGK}8r2haX-y8V%rg*4az#Ftnni+wI!U?(PBL zr7c<->)$mS>3w+g2@%P!zZok}9`ml*<V_Ipyk39RY_&cH+uJXaETLn4iOsI6s4AZ4 zWp42t08ypa`+r8YTBW|Zxz*a={|qer4d8-A1XV>uGPn49009>7EpmK(g75o0TVMCz zx7$aPAQAzlZL!=bm#HjO&MmREv9a6^!!K7MN|OO}su+mpJY8L7XKxRQ^1?aC+aLgV z1l$LD2>=%PP^JP<RZhS6S*z7ptJSWJyHSvrlPzGEU4P)r&>T+#20zX?JsVsecaCMh z3TCNkcrIR~eQ{6Cv=3bKWnm)Z1ki#3V7?Ye``<qSQ1S8s#9QjEu|Vz^P|@23U@7HI zLJW9?0yrDaISt7fgcKYCVtE0kEJ+JXLvP+`C_3jfocl)f9|J@S>#Sm6f?_($Q!vXZ zTe?y?^+*poor*J?SU}!Ha~&1B{j_TB0k8r*Ot0c@a3;Z5;Bfq2Fuu@2bZIEh&<j6- d0q`q+@duyn($z+wt~~$%002ovPDHLkV1jf$0Z{+| diff --git a/lib/images/fileicons/32x32/gif.png b/lib/images/fileicons/32x32/gif.png index e39af08cccf99f7380bf5a51e93deb10211d0f83..dde2d84143a5e9f4f42346b118cfdd95b10b10af 100644 GIT binary patch delta 850 zcmV-Y1Fih92k8coB!4hTL_t(|+O?PMOH*+a$0d5%3j+~~h^Rn{D3RVuVsH8j`ZI!F zXplWnQGqE!`B;j}nq#`Vt$|M!f##dEphQc{hdtiAtJ6)l`S9x7IoG-RO`QAH-GL8h z=k9mT{oLQ~;NF72;-KPk^(k&Q98M>C{|Uv&GzUEn#~YqmAb$~uxY4Z8bsbil%|&w$ z<SJ0aSI#lN;KhR1Ck^*;ys}!2tZ5p$?e^hZccQpACE)e>;qwRJ4+L|D*K;4oYnu(x zXbc>xs>1GYXe^Pl01pcUL(*^`hm{02x3&<8ET?y(M^Qp7k&^&lQ81*+!hLB04wm4Z zNZk{Bb1t#OzJCINpo);HNyEFqF*ZKVKLd*xxhr)~kO1gBg;@j?a0F?Xs)f@eC#rz) zQs8q5s>gxb#N7<;5H+6wj~9CeUm%}nZvkanAVeqC!g@Mm_$=`8B2j_|Ux6n?-3}8e zzHJ|W{Kb$F`gwOaXnt-2;jk`%{^P*lDa?)DMEw--Y=07HoFcvh&7&>o@Eqf8)K4c# zWFljRrppQF`l3MX51?U&PCN~?(&y(4)$Ow+p`1XY>l|mJZkr~Fsa-SV1QwT;1X^fl z$4{V>u%zgkBcZo9P-j1b`rb0mMs1lR$(da<<OG%?5dq6DpqmEUc9;ix{J{Or!+2;d z!6Vyw&VNR2_mSYNI3u#WEG57V0=5Of;RTcwP9NY70u6oFQS;&mZgrmIY}BqGc)ifS zvJ#UMScygjcxb;03}}BC3<E<E;C&ouzgooEsQc--D<sZ{##W^Ss39g$|Dg;`!{ulm zxg^jsT8Y-ND`==V%Gs!!M#_1;&@U~py1FKC&wqUZwSDEN>#q<QAciVY_wF)hu6Z4= z&zvDA5MN6OT%+H&%5oajFH3gQm4<6x$LoduwY9jMKr*pmD)D$iPGCK`X)1|CQc_@J z(^Qh{>#_nHW|O;s$5Vl}wgR)^x&J4S5qwO@8DXvf#hy}oe{a4(t~-z?0kO{04mh0> z_e+4Z!2ZvK^j?_Pe*w+UF5q;#<Mimvro3Hdk$z$2`Pl>tiBh66kCbM6FF2U`vN(?v cX1*Ey23g5$^6k+I@c;k-07*qoM6N<$f*81;Hvj+t delta 922 zcmV;L17-Z_2CxT^B!72FL_t(o!?l;+iyKuG$3N#zGLvKzt;Lq4P~1X&&_`YALw^|c zNkI@=ECz*wu-FIn(Sm<~6tT}G;G5lcr6FkXNl^a)Uqum#yGU8G%Qowp-#c@!5BXtc zGD#;t{K92I=H7F@=X=gQ_m1!%Vx@BV8${kPT4R_81`w18o`2_k`}UP9mjO5G>U61G zHp@b_S~Yj>-Yo-an$y_G?}RbExc}VRMnq<h-x$uUKEqcV8@yX6@M=E)*2d=MkA<sO zUz?=FC_6QfT`7f93d^!0kHH!MQHq0uzsY8^<S$;lw0ZyjUx8pl2@D}3D5VgQ$YU@c zK!9W_$^QN$a(}rTm(HKheqAbUhmn{_VBRr+W80)N>7f!YU$}6pR4(rXNyNelsJUuj zu;$sbXSs9l9@5_zT5H}b6abzE(!jw40;Zose>6|-eL<@8JxGgB%x^d$(iy<haL$D{ z*VcGxZEcL8?iIN`Spnlufi?yuLaO#1s1yL13?%w__J1YOfHCmPKK#4~*H7;b*K4gg zmCN=fM5zHw1Q~hKs6(ShMJ|(yLm~!=I3#RH9p2`tt<$9bxlPiB6$dg7zV()<NPS=| zmjir$W}CQzn1L13XRSb4(5~L3rH(=MCW-6^crM@tY)mPq@Liz9H!=cG2&5GxEU>Mf z3a!cw+JA16j%(9)le8)~aN=Oc#%;_-Ah5NP79_2nbH@UwpMu)MA{|%Laa}sDruMK% zGS-_H>=6qQaALiv2g9+zR**S)jb`(ZX1h+ac}V8uwc&do0kLMQfgs~V92^C{v<f_b z?iQAFi>>!hu=?d5UWZ-{h~LJvo)W1DE5E-;!hc#p0@W<aLTsDXuFW66zK-d3(fWwC z+aUkK50RQzxB>x3^+OLY4k{RlXi#1F^f~IaE@+L`&^q$QY%D}ze{UBj-ax`~DgH)g zj7R6F;j>|;TyG}SfZx$)?^IX>+IWlAz@iXlEJ75^C17SHFz1!@amREd0uLU%!p_c5 zEPorhTpsu^ssiI!U-zq0EDG!EX7~)ESd{s<VVLvB8I0<1ZUurW1RYL$w=@C+!;45h zoxp@@os{P}w!?G+)6VU%2nYW~jXunNEYQ~LN8ZQj<0n1}y+AG!`H?4xP@i^`90OK? w<NSYk1Z<6d7f3*jbnxE3WORZ0=!fdRR}))a+)XmRE&u=k07*qoM6N<$f_EyvB>(^b diff --git a/lib/images/fileicons/32x32/gz.png b/lib/images/fileicons/32x32/gz.png index 573ce7afd3620a2c4b2979baa3beac65f5469f20..5bddffb6daf1f29fc8e8a4b42bee195a36eae77a 100644 GIT binary patch delta 902 zcmV;119|-72a*Sn8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l}SWFRCobx&ar9~Q51*q@0^)&<3=#SAZQjrES8|ySqeds*bDZ8 zU}dTE41a@`K7ckNLV5!!#2667Vyi7h3!`9A(Os9!<Q^qE2ku_>>xTQ|%s&S`z7&io z6a6^}Ov^z|-Y0E$dtx|HV^fH-TaO;pZ^yxb7+DqxJ46QS;oYCm0{9P@Nmk!q)7?>U zfGAM`Rv4@oZ+?gLf`b!}#kL-P7`4FABlooyGk-+v<-I9X9AsJ-_5SG}-%nj-XMbh+ z`D$Gp+=xalkg<1mO=V}3-fauRFFh8(0VsUxukmWHcZcm4XKr2@4$l(<fyw2q&lm2R zu_3RYp4%8m3Yzi7OMJu-`h6QWk~_ese#;Lz>Q~k*lV=GKTNFQQW-<#DC^``+P-0Mk z*nd(G2WnExfDTC48oazKohG@U(hYbjT1c`Xe|CTe$8t?aUMI;M_(z&X;K_(NEjsWh zfvN<k@M2I_?OR!q0w?Kv3M$I<o!s~O?@LPGpbj!WknGDGjJlmb8XCqe2!AKc%|Z)M c<`x3*4<?9<-v0hCr2qf`07*qoM6N<$f{O<7761SM delta 983 zcmV;|11S8G2jT~i8Gi-<0047(dh`GQ1F1<wK~z}7wU<qATSXLxpEK8=wG&d)D7KrV z4lQOIiFyHXO9-2m4V9><WR(pIy5VD$|G-y&0A16xfm(*L=nk@I61qUFf&>*xN}61P z+Q^2OHrT$y!uE}0U)$GCc%{+38qJ(}&pT(%oDufm$>wt3Ab;|@wk$OLKm&pjp;D>b ze(U1JH-WO-+2L$1rw<ETTU+}2jT<>Ybz0QZ@E_2+>i6o}14N{E|Fvc!ae^=A=D3{6 zFf%=UVQzl@`^=?FueDR6k)5i`u9QM4g<%-3TYV0IC`CSBAR3J_edf&B`CGTvo1Aqd zU_(SuN+BYyTYr5#fB?ZGK^{NeCKiivc4{j6Wj6c3i9}lh{kA&%J|E$Mu&u-^>2y4s z%bCq2JkA7EUolXh^Zcn(T)%k}shtbUvUod_0XPPPfqWYRy0(YnNFcxTF}oW-*oN)1 zD%gEb#?z$U_=MEy(=GF@YLNTdE1>spfu%L7_AM-5Wq*iYczSFI)7&8zJwhxV2Eg3h z!TjSNVzDrR$_hW{W{JE!yEosmh{vL!b;o09!>D;*{}z@$BjUZ!P~=$z7)=agZv4gF z#SH+GFGNYbG=jD?8c^H!*<SpV$kc4jPWx2QH3+vCKVl^Gkm2KTyumQ0S>)c*Di|JS z&P_6NZhsOC5BHW<G0h_0V3^_KaYjN9`SZ?uRXa+0B%s7@Pkz5kBr(e7`XiPXR`3S= zq|c`qPmZB{ew5G8cyf&N`4rxOpXG%WHrF2!NsLm;ui19oWWttcuEs@$^56xIp7@cY zi7MZ}clG|Dp*sGVu?Z%}0Bunod=d0_EyuHW0)GIdJWqf73Q-<3osXxW(N-CM<m6sb z6Qef*^^|IRS1#ZQ4uE)}TYk_QbP39Z>dmOs!4(jzh~W=`7`EIUuVn2*tfI4;t`v|a z1*{_8KoE^`ML@8?D%NTPb#MX(yWkIX-T%foFxa&T=nmygn;0<mZ-=jpF))bhGD!em zxqo&`8d$p0e+(#Jh@ZZ`jn!j~rldMoL=bum!p8KJeCG}ah3H-h^jVU2yQW<c`1b0n zn7=M?*oY;kVd8za3OM84&-W{H?TWPY)%)GT)63#ch8z3ZjX4woPAVL9ak@PkoN(=m zv@F!`;;jmFh}L%dUGHnBOgH<U_O~Fef>5g$&z<ahnlk84>Ewsu$a5b!7LW%>1e8P& z*m26*bqoOsAj1ELZD6hOT_8<rgq!R3L&m>URj?nb{{dp!ZkOR6E>r*j002ovPDHLk FV1nXL>23f3 diff --git a/lib/images/fileicons/32x32/h.png b/lib/images/fileicons/32x32/h.png index 27c8ceaf3f47bc849325298ef34f69bd6035d8b4..5c169a33b4c556d0381fe40a616d8cd8aea4c10f 100644 GIT binary patch delta 861 zcmV-j1ETz`2lNJzB!4?eL_t(|0mYQhZyQw*$3O4w#z~xQfjUTbFSJlN=0Z62hh0#G z#HE#}sAR#FMk4Axm;41Gy?`n>)3ia2lD5YjD0fg%j$CL(q$&p|c5#wA_S?tPpr^>I zknB3P`jJNCwPt3&GxOdm_6e7kmmi|kXEu(p^nwKxS}BY%kAJ?ne*JTxLrNki!1jxc zjSYME-o0f&a|j{(jJP}i{(ANtr4(6l`J6rT4nHj{@MX2i$Cb*pg~i2RsyA+Ya^NHq z>a_Jgv=$43Ahr1%0OfqW-k?}4Qn`5X(&B>$e*@uB0zA^aD<(dz`FH>YjOItF)ix=W zN?baBzWDRf(tmRxOf8^S^9<*5L?<HrB+3^qoOWmIMN&j~umImpHhj+e=gx8W{(Tf+ zfjEx&s#*mY2O^+;umA}MrByEiWDWnkZ1U0Mq*#*JT7caDPr!DqKoYd`Yinz+@JnJW z8g-;Uaq=V+6B9mPCUCk`1Q7s7t{_mV%QxzEDwQ(rc7L0r7#bSl$&+7EU3D~`Gy;<2 zmkwI37Sq$y^4nS~-rM%}j`L6`oZ`-%@8!R)8j6epbV7iQ>2x|$cy@M{)zwwj*Vjc< zt+s`=IdZvSc6XadoQ<VM8d6=u*cdN>xw$#Y<+5C@&CLd{UK#TFF=vqzF@nSyll(>; zPe8{Q*?+%rerjrpm6a8qKK+ARx4z-><uW59k(d)8ah;?96=YjMQnC4O0%G&?^K#JQ zIN<i}@8rd!qi+y~Lt-vQ;(ZO@(6J7o*`I(EZnfG((Oc4S80O@~e$+lLQ6u9764$2F zmhKrF8>7)^$V;_uu(!AEeCSL8is9iv;#|Dc=zp7l-JKojXl7<6)#up7ch#`itY;v= zQ>)bof{;fKACs2x@o~1c>J$nE0Ag!;KLh!Eo~u`{VPZpC0v$-6ucOF#2+`olM|rX1 zplntFSo%cvYk2e9$Nc{13;NB6AC$Oq_RwLc=eHleCi&ben%7JS(EAi#qkzeqKMr68 zN>(vYlsa61);e?d{y7a&|F9J(Xny*hiLSi+Hdx!&&b2ZqRFedXeclAl0H+uno4_-m nevp6=h=3e}V-IKo9YFXO6lk67GbnKr00000NkvXXu0mjfW<{&d delta 919 zcmV;I18Ds82CWB>B!6^CL_t(o!^M}&ZxdG(#(($Dcruv`Pp6X2rqBY*Y%nVxHmy*l zZa^w3lGScYq(<zs$zPC$O)J!{A&?5o0hU>m?psl1*-b%>gtBmA2gkvgx%YPA2YzR4 z2lYr-Go!iZ%y+)?xMu|K#m?pPPZ8ovqcw(6!~g;*1WKuAUw_}a^%W3C)%J7wyg4k{ z+}tz|A3e$ga?nTZmV4Kjn&1DtdW{fbc>j&z%;}GLu)NGS*({%BGB=l3R({LgzWsSW zCR)+S2JKQxq?A~e6?rvu0ECnjizO0?1eq&WuC6?J@^6Q;JpnXD2!WImAw=ZW*bg9p zNpF%uVT)uk$$!;LmlD6`a<6-V=nG)f)sP9t!9U_RnMhy0d@7gEzv%>F_XZ$G%7KQ? zxwB_^`1moRUKd(xzRhL<rU4%)_5on(F%%;KkW%t?r_9Avii@dK*Lz({a;HB7rac7O z7^D!audnlVX9tZzA`ZMBIeL_tnVF`()|ykv1Q;{041b$q)xB?AOT{9YOqw7F4rCz~ zi}B*c?}#=#GEyJtie-~Jt*KV4%+1ZAwZ<5O*1EZNcPnTO@%TyZ-~S1%b-NA0kN{){ z0HX=R5Un)}3k$5Rt+BDOLA6??P}s&82gjLUZ?9b2XLOg1zIhX+47E~C0E>%@q|<2< zi3D3)C4b(%Q+VDKp6BB@Zf&1ZT|Htf0HIO@L4Z<<+1XiES66xY@-Ob*{hn*r(zvdV z>(&4SK|t6EKv=_tpcApGGZ2O$OG`_{VllL~xOeYIT-RrE@)))q!?t6DVTe+y&BmaT zj+BI|g#jrg)oOt6pTKckY}>)MV@;|X`=a)d-hT{qlua1ayq}tyqEsqj+YVBe*x%np zN*gH!Aefl2YD@)TmyNLi>{TiVA()?^kJOI$DwQ@HX25vUCkNgqO`%Z0vTU9`eIB_b zPft&?y<H?8kJrmsjh+LZ=W*l4O_WxV0a(()^SqYhdB`MeEl$t(@O+PPM3`X#j5v}W zbbm}o0&wSt=luEi8xC78oKJH7OvFxjko@uUcLSe?nj!d~#U5309Ip=rK<dsfA0PxH z%z;Ce!(ae|&h38Q_j(>Qv<?h`fbtigD*yT?AN3p{$MIYWg+P?MUbWmG2TlVgKVT5H tfLE>m1)_ruzjJOsWZ4JGtv{;&0TgJR>=1k2U^V~%002ovPDHLkV1hb`xDfyV diff --git a/lib/images/fileicons/32x32/hpp.png b/lib/images/fileicons/32x32/hpp.png index 04876a5d5e72feeff58662a1f3d61e28fcadd188..128110d5b764bf3092d22ba902856a351d992bf5 100644 GIT binary patch literal 942 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzc9aSW+o%sqE7E7(z_;bHwbAE(t}ISP-KiCk>e>)KJc*sdY;i{q}B zcCX*WtbCx&p?Adhg>r}W$*2n*3LXZTy=%{&u@o|nX{&xOUnF+8{J9Uq&6;Ii6D|M$ z)0r=Dz_!+5@9gvE*Dxj3d=gn|z4-6p>GfN7Idb}~2x>o5&KLLp8V`f`0xzX^pGv+z zxay>>;G}ur>oe<ieLoZCJ<C0A+7(Tcd%yqe0RjJ;kK|TQn!p&B^g}B7#D32ky@{23 zD^jNGEwAP-5<kAlY9SLx!sf+G3~$EYu1jJvIZ#<;(Rupj`rgT(*$N!GPJev+{_<n( z*@kND`&jB&b?*K8_W51^&X`S44w{BV{3%eZz4PkFx|t36Oka=J3cf#bOI~vOvczqQ z=Sq{9D;)0D7Wvsm@Ya+Gud<5ITd-C1@6sUE+JjjOt}kA*?NEjqYlZQ$rF&P4GPE^c zt>@s0I3Kg1=fBQ*DT#H@Z<*w4od2xTaA97G!wGrbEb$f_3EN%EOoZ%DIr!hdI4hHl dW9>_>Kg<!Kvva*8GCV-J&ePS;Wt~$(699X=>mC3A delta 963 zcmV;!13dh$2hInO8Gi-<0047(dh`GQ1C>ccK~z}7wU^It6Gs%sKQp`DIGcr1oVGTX zLYs2TrRKyBn^p*^7b1a*WVKg_)QEd7`3ur;X@%&y1X5wyz^Tfi^iD;UV^yi3Mnb9N z#14*wvpX|A_y_)-wG*B++V%L&oA3L+A2Ta>D|R-QdxQ{Q8Go%Yj3NdQNFh*4J^uRI zwW~l7cD0wy<;-Ep#>R%ZcmIA4kb^e0Ti&C_)cpSE#Y=<`!~1Uxr%ry%&&$hvlgaQ! zIz6+zvhrKz`t>jSG0}=nHfWbpBBjK#tk9#e20%zju~;G=kCQ%s{=&+`hyQjs+Y>-j zgb+w65kiC>4S#(A0gSuj6bhRp5(zGxJsbZen|;{}L|*`-j)sgm4&D*3$wcbhxf9u3 z?o}rUyEgziQVulMd^R=3y$25v^}5hn^KB*rFbQ}-u@3-KkD(X|fRvKg+hxuqlblH= zyZ+a;BzO8VVA?~VjX?^*+S(egx3|$4Bx2v^k)ubMo`0ThuGd;~A`u5;29{w{th)D& zXQ@~uolfEV{=O_kA`zZG{T<O}M~3PHU9oIZr#01TmASb&wAL77&{{Xg&Q1lbAr?E% zojX6GwQjc|7!rW&0AMsh5TLbYVPS#Q)m7Hl*Qr*k6bf4y<KQ@B?CzFpdPaBI=$kiT z%1|rS1b?u&xJW9MA|8*kxmn`P8-?pm;JO};6Rqhf)zu>o1Rzif-}g~UF*`d;KA-3L z^FO(D>pL!9Oc9NGM58qTzV8!s0ua`4A?QS`>I?)yz|ztZkw^rsEpFfbfoRlYeEdCZ zJA!RT2!a5mRGW=KB^@dWRSN@BN~%>K&wC%oiGO0-4z?X>Qr*xC+edmc&`~ylU-N!q zVuDhsgl#)WSz>Q*2Pti&6o6oC%&IZv2VFJ}1YoyPK?uS8{Cuc(yj!WX*)RjHH+^#8 zZPFA91uV<v@uMf9Tk_=OBwJfWVzF4gjMeBl;JPkXuFRmc3Jt)L7Ov~I9M3~0VQX=^ zo_~w$xg11<85Y2ZSJM5C=}-V}e*c6&{(8k>%jc&PTsjq+ftozKdxPZ7pSpfOyL+Qe zuc6a#e&{j`BfWqPnjaZJr&qn^J2yR428J~rX4C$s;RyG@A<LnAs^$H|Y(Bs7>)-O7 zRl(&c&DEKikAVMrhCo31@~6tX^vMT3FFcS3@mvapK$HhDa11yJ9Dj#F*aTj*eiw+2 lg!DS^?T0LTK)Llp^?&+Hzqh4sh8q9?002ovPDHLkV1h|4%jW<9 diff --git a/lib/images/fileicons/32x32/htm.png b/lib/images/fileicons/32x32/htm.png index ec4f15ac6c109ce5ccc48982449045f50de455c5..79096dc7e253209ffc1bec2705a004768189a428 100644 GIT binary patch literal 945 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*zWRlaSW+o%ssa;E5uQx;bHx`GkTp;hTPg_iXCE6EE_il${*19rI2|k zzt&n?w1)MdQ_eJ-rW+@(HLc@l(s`%0uJh(h%ftuw5_gpUPn>nwd`_XlZ2hDq9=(4n zuKCE!c;25;{`=|7G=)>*-hn&J@7dS<)i*ofGDooJqC)rF=I!;#ybO;O)a8mxw^e^g zlQb4sD3ZX|J@;_9`bNfUK_WNpjHKqh+rPe1Y1*cz%t4MB4WjS&Rlk2_T)O+-+B~uO zZ!SMC$@jebv~vlkq(Z~Fey1;v|6hMI7G1!6?(pN4@n`?%%$ZZ(z}OV;`|jTy+4$RE z>?Ag*Zs1(8|MTPTf8)7#E;`usa!tVhmq9=FT-{t7%6Oagq8z{L8o}8Ap8HLUKl2(c zdv1Mz>7vb&b1vMsnBvb)iFtopH!1sQf#}JT0T;w1cr>!t2JG@=yyqKn`QBHa1yW0+ z8GBX*8lPN{Ipx?^wa|uDC81Wj6Xc)jvI-Q<T)u=+&$sKg#Px=clcgv6B^@{ISS}wi g`<Rr%8eO#lM#;2!pYqn91Z7GFPgg&ebxsLQ0Eg}A$^ZZW delta 972 zcmV;-12g=w2iFIX8Gi-<0047(dh`GQ1D;7lK~z}7wU^It6Gs%sKQp`DIGcsGByDXj zg*NRmmzonlY+50tUWf!LQq*2aBqHv)<S$6Wr4@p638ccZfm4-3>79xy$Es36jf7Ik zi5(mVXLn|LaO`aSbM1sDjl8yJ-hSS9-g`SM*f%?y%RNSjZ-0!|7zQx|2&51wrJj6y z?b=l!h`QR#=5pq!Y<+#*+<)*O2gq(WwL{l&V`_2#^YRr!i2ma@hSR4$;pe3#zMGoj zt4wBcX?gj#sq5Fj?xaMRPS$0YQX-|qvaHCXz6L-@NwHWWkw}m^fBwSqqeuTX1=|*& zVL}L`ln5arkAM1n009iU!xRb|B$G)loIRWPC7XTK4x%H#prdX>j)Qm1YbcREckX01 zmwVj|VYdg61LZ({&FACe+<*8Gu~!#bYrdbF0vH24px6Px?Cqf#2tZ27o2@cuQYp@) zQZ4`MT9P}R6)*?4KpTS;g4NYk-fV55F-Szu&tu1rGk-BL(O9pw=43Jf#&j*ihFN>j z*FQ_eBAHAY-}if}5R1il_Uw1W0Y5TQA86UjhICp}tyY<xokeSnF$S%5V{C6%&>BWZ zPjKhXPiU<V`VjO9Ae#V;CI|ww*38e(v$C?n+S(e`YL!A^6Js14XNaAha&4Z`Ej~Kt zO_Va!N`Ex~78Vvrr_&@72{txLynU;1-4R^Z!*SxZc}lhPh(iGcO5yuHN-1V$X2|FB zym;{^w{G3!;>9%axJNu*1Mq#Hpcz0|{cS-rvD#B02m%%t7m3AUXl-%(_K(El9>c@$ zVcRimJ4O%$D5Vbg=vLB^l2C;dkWx~u`gq<4IDbwY+jg++SVQXiyr_Moy#h^T6Zp00 zM@B{{l}gyQgOnw9cejz!MoIw)hK8(~Qhw0l<4^!Ql?p-#=H})iwd0*i<$w><<#^K} z2lkVuP$*zoHcuWujogyQ#>Uv(EHXMex>v?(@EmYmmn&B$QCdX?u%w0Sx}nE&pGg=l zPJh>PaXpvAm@xeU40t5%^_Y$XF#W?*{`l)PM{Qqzk>t|ph@BAN`Q00Bzdyfwqh++4 z-^ov8fKHa0zDH{MUdwei=z#&6ql^L<RwNA9XA<r^>?fKqM3kGiDlot~uorkQ|KVRg z%I5Ryzy2-XSruF!*Ib>P{22JJ?G^|qUq${*d6z!@u<Zfz5RCvS6arE1roj8aDc}U} u&NhIT;r9a3l#pKYx&4T37bu5cRR0GmeadPoOww!s0000<MNUMnLSTaF6x4zM diff --git a/lib/images/fileicons/32x32/html.png b/lib/images/fileicons/32x32/html.png index ec4f15ac6c109ce5ccc48982449045f50de455c5..79096dc7e253209ffc1bec2705a004768189a428 100644 GIT binary patch literal 945 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*zWRlaSW+o%ssa;E5uQx;bHx`GkTp;hTPg_iXCE6EE_il${*19rI2|k zzt&n?w1)MdQ_eJ-rW+@(HLc@l(s`%0uJh(h%ftuw5_gpUPn>nwd`_XlZ2hDq9=(4n zuKCE!c;25;{`=|7G=)>*-hn&J@7dS<)i*ofGDooJqC)rF=I!;#ybO;O)a8mxw^e^g zlQb4sD3ZX|J@;_9`bNfUK_WNpjHKqh+rPe1Y1*cz%t4MB4WjS&Rlk2_T)O+-+B~uO zZ!SMC$@jebv~vlkq(Z~Fey1;v|6hMI7G1!6?(pN4@n`?%%$ZZ(z}OV;`|jTy+4$RE z>?Ag*Zs1(8|MTPTf8)7#E;`usa!tVhmq9=FT-{t7%6Oagq8z{L8o}8Ap8HLUKl2(c zdv1Mz>7vb&b1vMsnBvb)iFtopH!1sQf#}JT0T;w1cr>!t2JG@=yyqKn`QBHa1yW0+ z8GBX*8lPN{Ipx?^wa|uDC81Wj6Xc)jvI-Q<T)u=+&$sKg#Px=clcgv6B^@{ISS}wi g`<Rr%8eO#lM#;2!pYqn91Z7GFPgg&ebxsLQ0Eg}A$^ZZW delta 972 zcmV;-12g=w2iFIX8Gi-<0047(dh`GQ1D;7lK~z}7wU^It6Gs%sKQp`DIGcsGByDXj zg*NRmmzonlY+50tUWf!LQq*2aBqHv)<S$6Wr4@p638ccZfm4-3>79xy$Es36jf7Ik zi5(mVXLn|LaO`aSbM1sDjl8yJ-hSS9-g`SM*f%?y%RNSjZ-0!|7zQx|2&51wrJj6y z?b=l!h`QR#=5pq!Y<+#*+<)*O2gq(WwL{l&V`_2#^YRr!i2ma@hSR4$;pe3#zMGoj zt4wBcX?gj#sq5Fj?xaMRPS$0YQX-|qvaHCXz6L-@NwHWWkw}m^fBwSqqeuTX1=|*& zVL}L`ln5arkAM1n009iU!xRb|B$G)loIRWPC7XTK4x%H#prdX>j)Qm1YbcREckX01 zmwVj|VYdg61LZ({&FACe+<*8Gu~!#bYrdbF0vH24px6Px?Cqf#2tZ27o2@cuQYp@) zQZ4`MT9P}R6)*?4KpTS;g4NYk-fV55F-Szu&tu1rGk-BL(O9pw=43Jf#&j*ihFN>j z*FQ_eBAHAY-}if}5R1il_Uw1W0Y5TQA86UjhICp}tyY<xokeSnF$S%5V{C6%&>BWZ zPjKhXPiU<V`VjO9Ae#V;CI|ww*38e(v$C?n+S(e`YL!A^6Js14XNaAha&4Z`Ej~Kt zO_Va!N`Ex~78Vvrr_&@72{txLynU;1-4R^Z!*SxZc}lhPh(iGcO5yuHN-1V$X2|FB zym;{^w{G3!;>9%axJNu*1Mq#Hpcz0|{cS-rvD#B02m%%t7m3AUXl-%(_K(El9>c@$ zVcRimJ4O%$D5Vbg=vLB^l2C;dkWx~u`gq<4IDbwY+jg++SVQXiyr_Moy#h^T6Zp00 zM@B{{l}gyQgOnw9cejz!MoIw)hK8(~Qhw0l<4^!Ql?p-#=H})iwd0*i<$w><<#^K} z2lkVuP$*zoHcuWujogyQ#>Uv(EHXMex>v?(@EmYmmn&B$QCdX?u%w0Sx}nE&pGg=l zPJh>PaXpvAm@xeU40t5%^_Y$XF#W?*{`l)PM{Qqzk>t|ph@BAN`Q00Bzdyfwqh++4 z-^ov8fKHa0zDH{MUdwei=z#&6ql^L<RwNA9XA<r^>?fKqM3kGiDlot~uorkQ|KVRg z%I5Ryzy2-XSruF!*Ib>P{22JJ?G^|qUq${*d6z!@u<Zfz5RCvS6arE1roj8aDc}U} u&NhIT;r9a3l#pKYx&4T37bu5cRR0GmeadPoOww!s0000<MNUMnLSTaF6x4zM diff --git a/lib/images/fileicons/32x32/ico.png b/lib/images/fileicons/32x32/ico.png index 0a219e6f26095b55903cf7f84bed8c04fb7d33a3..60f73bd38fcc76c3d475b79893663bcffcbff1f4 100644 GIT binary patch delta 842 zcmV-Q1GW6E2jK>gB!4JLL_t(|+U=L!OH*+e$0fS#!a#%~A}Sa~lt{Od*iC;ye@4)S z2H6W06__HFucf%GIi@??8aTBg(7Z_tO0=|m+56etbaOAhTzz|<<L3HJru)fu*8?A( z^PK&j=X}m@XRuT9PaIaP)<MN)gV|!iz=2S-Omon0HoxPUC4Ulegc}PL!C(*uqtQxp z59KRR#&^!Kxa7o=(<Ke}alA1Yw5+Ns`b?(Le0QRJASK{*x#4nq;P!a)hSzf+$6KQj zkw_FAe!m|kvsq<{yajle$Lo`Z`#20Fu(`E`aCl{BC;An|#}au7@Ev)5erdQbEkMB% zyc6kXf*;NhOMmPu;PLw5^Q+SEE^tgtPV(2lB3kZEJrg7Vx=!gH0tz_1G|aCCc1TXu z0+SWMR~_mmfxE>0EbbBYUjVxkIfHMIuajFq*%t88Mb$uXCu8(H@cA;K!=vxOGomrg zREi(l=bwJlWQ2a+9S)kGpFkiG6oBI-Fnk6J<G0Z?1An}j23lr_pFrDqJG$*BIBWIu zX%d;rnxO{e1cJe3frei|^Bi4x7U-bkmkiZi^CY31LW}hRXRYp>C5f3`Gvox8Lm`27 z8ruCE=ppnedKXCO{Vg<_&Y@|blCxIp7f5n$*9<v<P&h20{{!^VU}Ks^px+HV>^X|Z z1|6OlFMo2@YLklu=fxS}l@%!gZV)go0cIzlq_DUEn-^#vyovf($8e|TG-s{0dco_3 z{?*l}oWN=%BEUl(eqcz=FdP6z!obHk&~?3xvsOFkywxYph(y<<1gIe@(DbPit)o?F z8@nRVK3;>4iEC)CKF(RITgR$+z0fZ$u(lQxcz<BKgoeQ?G&-t9hKP|GG=8|snQLCh z>$7Lb3B+RwfgAMw*6Poq?zL_=y&0(Hb-Z5akHzA00?EWiL5ar`asung&4Q9hBqaql zHVaB}eO*>yqtN6pV7FJJv$Leo@Z5t7P-KoXk?VZX1ac0i$gckj98kbwDdsb<|9?Vy zFGDQquYl(7Enu<P;)>PEro3GRBJ;w^^Y;=cB`S!TB2ux}d%@w<hvh}2H2clyFDUM1 U#@9=!cmMzZ07*qoM6N<$g16P6L;wH) delta 919 zcmV;I18Dr=2CWB>B!6^CL_t(o!^M}~iyKuK#((db$xM<>Y%R7Vh2j?Kg<k4PFZyBB zD+NJlu^1EzLeUHLvIYMDDPpfnz&pF`N<+}%m7x9s-ijg;cagGWmu=QH-#c@T7x^$V zJBgEI)dvnUoH^$`&-=d5dCwW)Z`kEZ<x50fHCkhs2L=$72!FosfAz-Y%a;Hz?(9st zQZa{xTCHa8+`U@?)U-wIvG=4geZPNO-#|oW_um*!FF(oWtE;?KEb>yJ@cQc7+IPh( zS6-eJiE(yn7<Q!;N+~SMirt2D07NNvcmE)l%Tc&+;o{o;`@e^rjU+IFh@g~0L}It$ zcmM%X=@dIVkAKML^ISZ4F84*byb(oWB7u3^5U%5p$!128c;Wo{ljTZfGfcvcCZOih zz;Mn}XU=fv-aTZnFSORYT`U4T0c3#P2?Wd_he2<SY=26+`wd8&>*i<Nh|n3p*KpQ@ z*H%_|er4qVLERU*GdTh#m;!AKN`!R%YfxzbvROzD@_!siq5)&z#~t`#8{Rv$HJY!r z=43wC9}q_amIyNTq}hOGovK_Soq(hb$pj=FNblX|@%2-r|GZ7gfh8BRE`j-$s91I2 zKrV;)<n#s!1-5}DGhnSiS<tE7q^*uZ?Iy|GyZ9d9hipudQ}ixS5@=b0#{@D8k`_2t zKML*Y4SzabimvC-@lv#_H*gc+*avOQMj*7cQWm7F{^G6$?jQyAhb6k6rt5ihJx%># ziIm+R7p@Tt5peCk*Td#o;3&wRxJs+FN2}AI)!HL_;_B#ofPh%DX&}rvnE+QoAguz= zoV|tR-eUco<1Bx+jo+oO0SVfeR#Re$u=>k$B!8_XB&23h7UDRxw;X=`=@m?`ht~Ua zye5Tbzl~MAq9YJmsIlkcCqRWg5e=#bA3aT@-UF@C8ru8*0UHYu*xBB~O*E0HTuQKz z8ROI4Zw73bDc73`8VD}*@tai^fj0hP8dwy<j3PvFxCG3s1m?Vw{?joXi@<{iFS5D$ zJ%5Lde7*p@A2$L)T)So{m1Oijj;Q`&-`v|U4v}g7lg9lAa+@9hI{`Z+*QtX`C5hBP zxPM~!BkbGLPQfUHlZ?m7d6a!SRMs2&{)d@k$3KX?KrT=S*!Kky8q<!Fqrft7>|adz tBVc{}zd%CK$b|3hhm0Q382?fI3(Ol{*bwui5Apy2002ovPDHLkV1j4?$g}_e diff --git a/lib/images/fileicons/32x32/java.png b/lib/images/fileicons/32x32/java.png index ee9cc4ccb720913b0dc57ce4c6d39e58d51306ad..1d8694996146c3c495787fc42d1d3615672aeaa6 100644 GIT binary patch literal 961 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-I-;uunKtMqbe_@M%khQc`=cki~|y?aA9;X%ob*p5!w8(pT$@11{r z*K+pmLw|JN-z@%TU2WLwc9<pVcx2X;r%V#Phh{VLKmQl!^}v`<`}Gwro&$vwHnsJ& z^3IM;yv=Z#S*FcEWkYVTnL+*i1BC{QS-!=d;!FEc*YG*unfZ;vfZGPyMzeo4UiLbu z@kTbVFP%Yf^<*Y)nK?3Ze0qBS<Oy3?A6Ueap7En7zRa@cvnH?Jg$rSQcFL-TibhJs z*)Nzb9_VDd{-yZs*{?r8zBJ5k_H$|0PKohaJ10xq=aja8oYA8i@8;+$+h<tZ3^KSG z7&>|TjrPy7yzc_vJFVGgVZM9OwuLDR#h<H7*({p(^TnJkt7h#wwrtZ+xjFw?^sd;> z6%?Hw8WI#0W_$OolSzf^T;t$PGyUeoXB_zaCoO#SqU_1f?`J4*9QyidQ_|NcfqR)B zmOg4`o1f*8z!9GOLzv+m!=uoB<@^Q3*3~RZFEu-^giT=jE*kNvtVklla>KvRqG6UC xk0ZL(r*ThaTDyL}Rs75S30tg6qduPh#rW@p@JY5dAt_Ks^mO%eS?83{1OUl-^-2H$ delta 981 zcmV;`11kK%2jB;g8Gi-<0047(dh`GQ1E)zuK~z}7wU^It8$}eyKQp`DIGb&OI)L2^ zEd-9a;GX)!DX6N1gc_+8l`OcDNJPDG$|Zk6nqELvd!}iFYB_CAC<n?NRFoq^q7{*< zAUUzq#Hq78GaUS*{;_t}PWqKbyY{|$^L^iW@9nJMHSAnI|9=P}zA##27z73oNFh*4 zJ^t$2wW~l7b+(tw=gm=JV`IbIyMI3q$X<)uP4{tQs&W7G>^VY+{^K`>)2BY*r^Q9S z&Sv>+Vq$V}Y3bMO_3NK^Q=*xjtjjK?L`sQeS&>J54uFu7VzERrnPlSp`3p-AAO71G zY$$;Sgb+w65r0BN9(8*F0Svpt6bhT9QYkK+J)8VFmwO&YqAP(xM;$|sgLlkpD3LjL z?qn{Xf6-3D4ksW7%7OZvkH^Ni_uv7dRu@`pzR6|*Mgb2fb|GMDdng7XAf@Ex_6}## zY0jk69nW<&$(`;BnAR=O#vp}YZEcO0+uLXi5^>=5*njckjE|2u=4-7vnM#5&J<G5G zs}_CzS}GQqn8@J!{(&mQVlkdP`3=$HM@H%c9edf3PHQTa3Nte^Xst2EptWv{-Q6-; zLn3j4+qZv2Yu)NY&?f=eM!;x-AV6!)+}s?itE;T9uT!a1C=|9Z#=&uh*xTEw+8N#9 zqifzoDStz)RD;0${5+XVhGa6y=4OdkuN1C3g6n!XPP}TTR7a0E6oEh~eBVbY#q{(v z%gf6=eflRiZhXhZiy7i^k9fRF!1sNEb^^lcZwuNPtC|8q5U{YYKr9wRYl~aAejpzA z7#@BL+m2z|F@hjKDb?bmS4l@oLe->zl#)ut$A9zQ!Exf)wu5cQ8dBHoqV|z+1=`9c z@T<{}jEqn!m9T9GDNF3{?;@p*lmZY84OvyC{Gh|fp$P1i%LpNuot=%;j`zyt79Xa^ z@uo`-yiS@zp@3!CJbttixh0Q|j<U5?B#}te%2*Aa1Fq|G<;o;VtH=Z_Y2mtV)9bm< zB!6r!PS<mBJ(t5kn0^TicqBdOH64k-)Xf$C`0E8njZZ&Gap`o#PFTn9cfM`8uaB_j zQSAHJf=(josk>c&N3ox}xiUC`uxJ6&Q+FGSg)KU8BML*m&ZFAfZRyIL@4pOn(rclE zwxrpA$6rnN@8y=4H-7nBzOgE}Jf^uiIZpXL@L#9`0(LHcq`XTXz8iXgJVYZv3WY%I z^itq$;1qCzH-}B&S@U;+Xv+t${oH=U*avo+KUDt*8!^&5iMKwB00000NkvXXu0mjf DvW(-# diff --git a/lib/images/fileicons/32x32/jpeg.png b/lib/images/fileicons/32x32/jpeg.png index 5fb71dd735297e4d390c83d5f90618cd9d936ba7..4b5c425ad32977533e6167cfbc43d57798cf8289 100644 GIT binary patch delta 854 zcmV-c1F8J92ki!sB!4tXL_t(|+QpacOH*+a$0d5%3j+~~h^Sx`Q6jyS#NPB5^k)RU z&>(xDq5@Nd^05@nnq#`Vy9A#q0?jvRL5Y@@51ZTW-PP%I4?ev5cFuKM{U*-+YO4bu z&OLX(bMEK<b_ct8zr}t<ReKee3l66f-G78)W}1U8hvOB`%zu-J1KgOcFbo4$n@y#; z`!W?M;5+A-n|EX0?U9E2I9^z-X4Z8bop$?BraMvC9T#wW7T{U%V!`Xn7+%kP94~D) zghH#}&@>HpheKzHj0Jd@*XNgp`#7v5u(`E`U~oCP6J3hpXNimi_>O#jO&0D;3Q({F z??mF6;D>XGC4cr5@cK0PHC-Cs1&-0NG5#7@#LOM>XMzMk*U3*Kpn$_i!!$jRBsN|S zj1>VNEvOg+ZW6asxJ6Wc0D9cmHTVYkI=c%f+X8;Ns2(tq8AGRm_vZ-<?tKOx5!DIC z<9yjZ|L~J3BlPp`aM1kB1Ofp=0DVV+ffJY=xsIAi;D5;kP&Y|@1sX;g(b{u_vspi$ zAd&Hu8M+}SU>J)6Ro{TxX}a(f&_u^i8LC@mNJ2S=I`s@^vu>UuiOC%^<OCL%mINAU zXzO>NjcAY4F-t<Puc6w03N_uuoXxs@mL#Wl%#agU3I+w*e*m2{*p^@p=vn~owjIQM zs|62iXMZ`HwcSI4GvbWk^0JfwHwf6~0f!q<;y68k%Lml<UPa}zL%7j)oU>W0KJa>> ze`RG=PGBVz65yeI8qlx*Vjutv27$K`pyhG_XS433^QvE*5n5f75}<}vftq*4s2?gp z!|(-x#*s2Kjb1`+>0!=hT|ZpH>xF)4fwi@;z<(XrIaKwQpt`SAq@NfpL-m`BoVn(8 zygqe?oIoTT6}Up*Z+ZJkR6Murq$3H}ypGok{o!y#P9PTD$SRRYR8C+$wwYC;(U_#b z#%5NDt*^@pY-F3v1$uf)(cGMuZFuhA32<;u32}`WITP6J{D0kn#PL7h0cO{okr!|} z1y6xAcbY)v8QA+jA-xyo^jARh(+fCVu85+lY|7h}Es`&+JU^X4K2b!J<&dIu?*;qg g9~S12{M0w2pQvbXi1=bQX8-^I07*qoM6N<$f-d@*0RR91 delta 926 zcmV;P17ZB_2DAr|B!7EJL_t(o!?l;si(6F`$3N%3<h>-5Xf3uRh2j+ILYF$yMSmD| zr633`7K1`T80<n_TJR5$B6eK@?(DQ94MB@5LHz^ViXswckTPV3X~r?X^WMEKl8kvT zFY)C^zi>(5-h0mXob$cs-Y5KrSgBn829Y<6))?l20R$z2=YM(MzJ2A&Wx$QPJ6$T5 z&9YFfR?VHecguj9<}^0)KVeKi?mxG-5s}&BH-<B-&+yg82JaRMyqeFywXwPRW8v!6 z*Cu6Rl${!;T`7f93d^!0kKrBwQHq0uzsY8^<S$;lw0ZyjUx8pl2^>L0P)Z>pk;ia7 zfB?x<lKuTh<bQHGE}cK0{kl}z4kIy<z`SD!$F@ml(npzi`ND-$rE+;ENFo+aK+UCr z;htyDp5@NHd&uBiXsvm#Pyl!uNCO8G2$(?){n0$R_XVlW_aH4kF~8x2q|N}IhI1~w zxwghjYinZ!bzkK6<O~>p3A8aN5mL49K&1f4WFRr9vwyFM28@AU_TlF}xPE%~XusB) zQ@Lz^K@<&GBFM-ujXE@HROB+LI3!|_h(p4L)ZuNO+B!|@pW7sDSaBfZ;M;GBiqr?j zYB|K`XSRteh#6Qh1J(+Z1?}ohTIv{7Z<5G<fad~Uz{V6gg`WZ?zL61lLLjXmVS#P+ zv(T#CpnvTq>9{s+H%Y5<11Ao4Y~03d1Oi7ZX+hHJJ9jK_1|_IHEYfi`9oMDfYHAOQ zBxC(`!5*;?0VmdvdN>>lYz3K<*Jw5mX}0S$n}=jhUOSri5fE!O4Fnk{;@~Lol~v&R zbGNXZTWr05g4Hkg@H+H0AbuOudP*b_R(^kxgnzYy1k^0bLTsDXuFW66zK-d3(Yi<5 zZIFNAhe*vUJOcqo^+OLY4k{RlXi#1F^f~IaE@+L`(CT?(HWnhVzqgAMZy;f{6n`T# z#-r0~_-vRd&zlJv@H_hKoeGOU8*ecUEDB*p5u#Ww0W&LsIiIBecTGnk@ZiBK?Cku+ zvVW1w<$({QW?&ra>xN=cSYP*Nr&tu<nn`mrmS8%9PKU&zI9v*W(MW?%r_DW<3{08} zmLnPgnLnB^eS{o`=>&qeV3^Y=(NDblL*50kKwGc(ypPkzPka>mfLx#v(DMWl>eH^0 zW56nKoX3Ypz}Dz@fdsOV4!+x$j4n_g{TERE7p!(<+>Shg`v3p{07*qoM6N<$f`N~` ARsaA1 diff --git a/lib/images/fileicons/32x32/jpg.png b/lib/images/fileicons/32x32/jpg.png index 5fb71dd735297e4d390c83d5f90618cd9d936ba7..4b5c425ad32977533e6167cfbc43d57798cf8289 100644 GIT binary patch delta 854 zcmV-c1F8J92ki!sB!4tXL_t(|+QpacOH*+a$0d5%3j+~~h^Sx`Q6jyS#NPB5^k)RU z&>(xDq5@Nd^05@nnq#`Vy9A#q0?jvRL5Y@@51ZTW-PP%I4?ev5cFuKM{U*-+YO4bu z&OLX(bMEK<b_ct8zr}t<ReKee3l66f-G78)W}1U8hvOB`%zu-J1KgOcFbo4$n@y#; z`!W?M;5+A-n|EX0?U9E2I9^z-X4Z8bop$?BraMvC9T#wW7T{U%V!`Xn7+%kP94~D) zghH#}&@>HpheKzHj0Jd@*XNgp`#7v5u(`E`U~oCP6J3hpXNimi_>O#jO&0D;3Q({F z??mF6;D>XGC4cr5@cK0PHC-Cs1&-0NG5#7@#LOM>XMzMk*U3*Kpn$_i!!$jRBsN|S zj1>VNEvOg+ZW6asxJ6Wc0D9cmHTVYkI=c%f+X8;Ns2(tq8AGRm_vZ-<?tKOx5!DIC z<9yjZ|L~J3BlPp`aM1kB1Ofp=0DVV+ffJY=xsIAi;D5;kP&Y|@1sX;g(b{u_vspi$ zAd&Hu8M+}SU>J)6Ro{TxX}a(f&_u^i8LC@mNJ2S=I`s@^vu>UuiOC%^<OCL%mINAU zXzO>NjcAY4F-t<Puc6w03N_uuoXxs@mL#Wl%#agU3I+w*e*m2{*p^@p=vn~owjIQM zs|62iXMZ`HwcSI4GvbWk^0JfwHwf6~0f!q<;y68k%Lml<UPa}zL%7j)oU>W0KJa>> ze`RG=PGBVz65yeI8qlx*Vjutv27$K`pyhG_XS433^QvE*5n5f75}<}vftq*4s2?gp z!|(-x#*s2Kjb1`+>0!=hT|ZpH>xF)4fwi@;z<(XrIaKwQpt`SAq@NfpL-m`BoVn(8 zygqe?oIoTT6}Up*Z+ZJkR6Murq$3H}ypGok{o!y#P9PTD$SRRYR8C+$wwYC;(U_#b z#%5NDt*^@pY-F3v1$uf)(cGMuZFuhA32<;u32}`WITP6J{D0kn#PL7h0cO{okr!|} z1y6xAcbY)v8QA+jA-xyo^jARh(+fCVu85+lY|7h}Es`&+JU^X4K2b!J<&dIu?*;qg g9~S12{M0w2pQvbXi1=bQX8-^I07*qoM6N<$f-d@*0RR91 delta 926 zcmV;P17ZB_2DAr|B!7EJL_t(o!?l;si(6F`$3N%3<h>-5Xf3uRh2j+ILYF$yMSmD| zr633`7K1`T80<n_TJR5$B6eK@?(DQ94MB@5LHz^ViXswckTPV3X~r?X^WMEKl8kvT zFY)C^zi>(5-h0mXob$cs-Y5KrSgBn829Y<6))?l20R$z2=YM(MzJ2A&Wx$QPJ6$T5 z&9YFfR?VHecguj9<}^0)KVeKi?mxG-5s}&BH-<B-&+yg82JaRMyqeFywXwPRW8v!6 z*Cu6Rl${!;T`7f93d^!0kKrBwQHq0uzsY8^<S$;lw0ZyjUx8pl2^>L0P)Z>pk;ia7 zfB?x<lKuTh<bQHGE}cK0{kl}z4kIy<z`SD!$F@ml(npzi`ND-$rE+;ENFo+aK+UCr z;htyDp5@NHd&uBiXsvm#Pyl!uNCO8G2$(?){n0$R_XVlW_aH4kF~8x2q|N}IhI1~w zxwghjYinZ!bzkK6<O~>p3A8aN5mL49K&1f4WFRr9vwyFM28@AU_TlF}xPE%~XusB) zQ@Lz^K@<&GBFM-ujXE@HROB+LI3!|_h(p4L)ZuNO+B!|@pW7sDSaBfZ;M;GBiqr?j zYB|K`XSRteh#6Qh1J(+Z1?}ohTIv{7Z<5G<fad~Uz{V6gg`WZ?zL61lLLjXmVS#P+ zv(T#CpnvTq>9{s+H%Y5<11Ao4Y~03d1Oi7ZX+hHJJ9jK_1|_IHEYfi`9oMDfYHAOQ zBxC(`!5*;?0VmdvdN>>lYz3K<*Jw5mX}0S$n}=jhUOSri5fE!O4Fnk{;@~Lol~v&R zbGNXZTWr05g4Hkg@H+H0AbuOudP*b_R(^kxgnzYy1k^0bLTsDXuFW66zK-d3(Yi<5 zZIFNAhe*vUJOcqo^+OLY4k{RlXi#1F^f~IaE@+L`(CT?(HWnhVzqgAMZy;f{6n`T# z#-r0~_-vRd&zlJv@H_hKoeGOU8*ecUEDB*p5u#Ww0W&LsIiIBecTGnk@ZiBK?Cku+ zvVW1w<$({QW?&ra>xN=cSYP*Nr&tu<nn`mrmS8%9PKU&zI9v*W(MW?%r_DW<3{08} zmLnPgnLnB^eS{o`=>&qeV3^Y=(NDblL*50kKwGc(ypPkzPka>mfLx#v(DMWl>eH^0 zW56nKoX3Ypz}Dz@fdsOV4!+x$j4n_g{TERE7p!(<+>Shg`v3p{07*qoM6N<$f`N~` ARsaA1 diff --git a/lib/images/fileicons/32x32/js.png b/lib/images/fileicons/32x32/js.png index 9bbbfb709943eef4e5f7a1a983229dba318a50ee..5a8dabe81eee2d25c82b146ed6589abab3e8bee0 100644 GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzN4aSW+o%sqE7E7(z_{bT+)AE(t}ISP-KiCk>e>)KJc*sdY;i{q}B zcCX*WtbCx&p?Adhg>r}W$*2n*3LXZTy=%{&u~fQ~cw%mi_`9SZcdh?3Z2IXlRp{BD z-<xZM4%pT@?4Eu8d=Jl&A5RuedDrueKmOlEo;gBu9Q<UB?ps#;jh1HE;ozzC?o-M4 z2Und=I<yEetuw!GSyQ-3vcjJ;_4kR$sy+X=F}AH?5c|&H;lvh~^g}8+W1i=Y-o(ni zJxjc&U*5~=D}Mab{}v{e4L1WX&3Lmu*WQp(t6-j--=m^$*^i&>VdC>BwA}Z%wyGx8 z_}G&J;tX;gV)?bdE59F)(Tn`_V3oE`-Hr)%d8IYieGXiA_*)o%#Cqdb<;T}d&X^t9 z>9?kV{mR|tCs(p(H=fUP>N_`GI^%WMzaZ`j`x107yxw?=%iz@#hI>6Lliz2tEq&Oa zXs|$Jfv?x=0|^|>r3*T)#XH@!Zn?@i$??Sfu-~(;zqn|+)a%a*#;RX^TW6XvB<8L< ZV1MBFv_Id3l=?s!&ePS;Wt~$(69B)c@$mov delta 949 zcmV;m14{g<2fzoA8Gi-<0047(dh`GQ1BXdOK~z}7wU^Cr6Gs@ve>1z@IGcsGIF%eO zg_ic13+BX!O)FHX7m$jIWVP2OQX}rU<S$6Wg$k8(38cbufMX7&_f}Ln_EJzIp&Xpp z!EtbQXQl^#uwH*;ZKsbk+R^UJJJ0*f`@S<Pcn7;sEIvVquYZiz7)F5s1X2i;Qcu6R zdGl)^h&$UW6pQA#u)V!)9z1+l1mvJa?NC2yOvCSgUcN#IF}(lAaQ4hc{Ia^rxA{Du z=W;hz*VcZ^-@5fhKPAHKWJ`7_B~nT(%ZlAva{z>tl*<*;=`^{^m#?fne*AC5*`5U2 z5JDiOL<kYPwSUF~2w>8kq*U5rW@d&f7cZuNEfik$BGH$?sI7$w$H6<{wUx+Tx^%iw zEWVDCuzM4bBgH^#&Zp<j@!-)TL^Ch6)_j-G155)RQ0_y(H1|-9L_kW(o4qO*G8ryp zGF{(wBgmcp3Yg9<(8eHzU~_YmH+y?%3=(nV^Tf%M%zw_#w&!cDIX#mGV+N*S8&=c% z*0WMBlgnlCeg8-m5{U%QpZ|{Nup?vDfv&x5OQ$vUdYy%Z1+>-}W6)Z++x~tHts#{< z#l3q!p|$R`AsCW?j1VxIAPCS}v$V9t#>NI)TU*rYbxNgOjB#+B2@Vdbjd4bI+2|WL zanevL)qf_iyu3^{n<br2v$Ip-?OTQGPT{&9j+1PRQ>v>*j71<&3g7opN-;k_&-(g0 zFJAn`?b|<a^=g)6(j%E{5b%AUAWA@3!)-y7v1%$11OY26D<l#Lw6?f&=Pt>l$K>RD z*meTjP7nkEN~sPTgHk$H5UP*@QcCJ|AJ6*$$A3v;+YYv!XiME17q^b|Rv?l#f#2|c zYHEr~rGjlcNLk_Va33jcq!fT)V!~=D<p*6h#v*V~t09D7ad9zLIX<Y>I&7E$*PA{u z@GfXdr4p89^YqEH*d=*-dYawcGO1LmnZ|1L7;s&e>(_6fw2Do@k`}J(hK}bUgD{+& zu7Bs^dM@KYm|+QwcqKjRn2tqY?#E~R`S)v%8|Ocp;o8~Q3Jk^{KYveV?tZ%;M(cfC z*yDH=CNe6<B9NK8-=V-LWbASGHoWL4irA5G9VmBn(V_Rhhkbj{DR`9eVZH5Tzk`5) z>X)A=@7l*7_PjujQ3#MiArRHBPoe(%z%Ci!6#pM~fS2L_0ufQei{9Ih8HYeM{G<9G Xt(2_&$9k&k00000NkvXXu0mjfVPDhJ diff --git a/lib/images/fileicons/32x32/json.png b/lib/images/fileicons/32x32/json.png index 583ece68309cab4b2bff7b5659245e2f421b0c71..e4a55e634ba78e0ca7bc2efa40b9723c2324c9c7 100644 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-m{;uunKtMqbe_@M%khQc`=cki~|y?b{>!h@0<O}#U2aA|eDol|AM zUi^GQ_{{xBEzAF>Ti@>16yZ|4VQ@4^SV#PbhRQyfik%!^CNk~UjJUfXERn;{X-WEu zh#Mx+D$jf`SUuF}QEaSiH)?+On$6EiQgg$bK(Px4rwi*HlJwt@y|gUBarI?BrsX2d zoHy*3t?~cR9NO6^$LG)Qzg+#e?QN5DVHdm)T1st}-Es3+f!*SRs#15)1*b1nRd;ny z&F_y>lDcv6#ICB1tJiKcFf`7qJ<^v^(AqZr^6GT!?qDvh;OXs!Wfu-Knk;)V^V_1C z?`G{{n#}e*TI$Y1#^gP_OzgL>+PCtIMZ;%i-gkljgL2~Bd}E!9y^jXjpWEN$e#Lyc z=;R5(L1A%$*4MvxWPE6<dX|3oS#?3(GRE_tqxZ^Ax~Ds@erclu$MtOONn5iWD;6JI z-cv4Bb3)NEd&!(@@r)1p>dvj>?BCz`deM%SspSsuOLL7Hcc{#3WYKAOF8acH!@C0? z&WB6fab!9EYVXFF772~N%ujxH|7Tqsax&Ox$1h&CMIwGI_6?vM%i!ti=d#Wzp$Py> C67{YC delta 985 zcmV;~119{&2jmBk8Gi-<0047(dh`GQ1FK0yK~z}7wU^It6Gs%sKQp`DIGcsGByAlo zg*I@^rRKyBhgJxwQbi<Ck)rn6L?YtSQ!e=n(r{^o;9LT!upHo2<xqNWMU`V!sh~ze zspP~CPJ**LGd=hR_Ihovo$!@LyE{AY&3C@@-rHHh8`#-g?tc+Nd||Z4&<_kCkV2r8 zdi>S3Ygd6FuC<rV<;-DWV`IbIyMI3i$WD{m4fjc7D(n8|`3r;)y|3RGPM-LPpO%*R zdTNT#CMG7AmY08>x_<rhc1kp|lQr3;lt?MDEGu@a*#HPBDHMvNQYj|RpTDsD@ZrCq z#YPgSLkNMC5`Q5?>{c5OAb>%4kbHiV(a}*ZoIRWRIh%bEMWQW%ep?L#j)Ql^t1FQ? zckXyLmwOo|VMh~?eZ@e{=G532_Z~bzRP#b>%{Nn103(106xt9l)jbq_5s*^yYP-al zbec2ibjy2P338{s0;YKjv@u8_SX*1;)%G?TgG6+_9)CG{l=1QLy1mw#<D)4srehk` zVO3XOyA}%tCMGiYzTZ`aL?Xe{r@tYZ{K!~!pk*)X(rHb(TxNE57OgeL7_`>)wzIQ~ z)-XJLjN7+=L~GsbL(n4u86sdbK@gy|W`2I2)zwwj*VieR%jEN07~|kL1MKaUD&vf9 z@zFMJ;(w%}R;o^5VPSzxCPONfVso>|>(>g`9l~`z94A>Br&LRgI1qtADSY2YDaFjp z3@a-uJbU&hH*enH;>8Tfq(?GYA>jKyL70HBdfS39V^vik2m%%t7fB=%Xl-%p)(<3; z9)pALVA~07J3$ZxD5aWwbV})1L8uxOkWx}E`+s=edpJ%K+jg++L|y9IxVUvBT7gj7 z1b$`pLqkIpi$!ePLCPZg`#VT!Bc%WY0|Qn?DL-iOaUcSFySoS>n46o6RgU*|cbj~e z4#%4|G4Lj6^7%ZLW%Kyalh`GBWMqV`tpdZt!__oa{l|dox?H(3iP9=I0ZUrAuG{c= z?td`|8<W%ZTwKrPAP}Zk0(~AyyM3l(5t#n|34i?clEcQQr$@PTGG-;L;rBb=Hr+S2 zsQxIssOK14&`KmdeYb0W<8wQko)oAdJ$*NFrEzTfDn#uZc2lGu5_TwDx%1tZEt7_w z)cV5{M3HJ56Oj##Js)IORyKb5TfVg{xKcc(xjH%dA@E<M0s=~xKT+PLkKd0xKpvnF zAcaC8N}UvV7dQbN<LzM+c;5J5AVTrrh0pDWjD4Wg_@nwi#|+t$xA7Bx00000NkvXX Hu0mjfmtNEb diff --git a/lib/images/fileicons/32x32/lua.png b/lib/images/fileicons/32x32/lua.png index 9e8fc9517176be27aa4cb5c888f906d893013bb9..c8e0bf208c75080f6a93b33d589ba40db068ff23 100644 GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzQ5aSW+o%ssa;E5uQx;bHx`GkTp;hTPg_iXCE6EE_il${*19rI2~) zzSZ2RT>F|56wSQl9N(m5JBG73ij@mrKl0{`rPdjPclZA48y|hRdk&|<YyXgiY3KIa z>P}{O_tAFR?tfpda5?nw&y#w2EusAXPkr43ng=<jTv5EdcJFk1Q|1G#Swe;4$8T5b zr+G0dT@fhQ`|{eq&B?k4s<Sj^x1YOo`0jN{iA@YM?lLNHvQ~6HEbdXPU%Wx~@Sm(& zmDpW#-kdoxSN_y~PEn48$%mI1-ps#Ulfty+K;$m_uFog?w?5u1R^ZU}`Qh31j~9Et zHdJH(SO1_f<>RsG@3-&wecGhTzi#WHN4tw({&hQEewL+1dWHR~?h5s7za|zY%cx~P zic#Ozz<%Yf>hmkjx{dvLEKAQV&wg>K>tBragnbF#3$7<GbWPYItW{y!Qf56}lffe6 z)7S4Z4$hhvv^I0yYP#ihK_s~0$^BW&@|K@*w&R_$`(%5-x`WNyUfLg<dA>a1)iyrM dkeIsafPAIb%s+k4zfA*WI!{+Wmvv4FO#q#H?vnrj delta 968 zcmV;(12_Dw2h#_T8Gi-<0047(dh`GQ1DZ)hK~z}7y_e5V8%Gq!KQp^t%(6+_n6@UD zCN1reOPy1Gn6!!_^%A5+jfC1OAQk1#g};E3OREUZ4GC2&JISfy(DY7~iepu&iHa0a z$zT&OF}pL<gMVcG3)Tkum7aEYJoEg0-+Axttl%x|Og8%%A%DIyT4U%11`tRgP)a@d z`qr(RKoE7cm&s<$abaU)!`y%HAPdNY{?rcL$Bn7P{r8KP2qC(U-x$uH`-q>GmiT6T zoG(U4$Cj3te;vPl`^!#BgxSfO>{3dklvtJ(*=lP5gp?EtMUu%Rqn9sVS$_2BpQd2j z5~xE6fs_&<M1N$f%?A)bzuQkfzsb<h5LYf<O#Yn7ylh9JBY|G6hCau^JLT1tNME{i zHj~Z1Y9?W~Cm?&uf!dl+hljcU@FAjF7g}q+9Uli61U#V7fq<#*q3DT#l#<umJ6uSm zxR6S<{H`lW?sQhbG;V=51}Ow<YiqpT-bQ1Ph(oWZPJf?fWMrhiUTe+Sp(Ge{U>Vk7 zRim$6i-iKCqiKBKKU9TSEXK2Ezabj@$Vh#lWiRW}X-&CYW_o%Wtu@9NwAOXo-7TRt zBob%1ckf5E){Q;{T@sK@1dJvK0<_l5&d##3vcmfMI^}Yie0~dK92}>Qy}g~vJfmBD zbj+J5Wq+uZsuP%-n<Jf0lT0Sr+${3ujly*Ya9t0_iC5++)zTx5L?BQK-}g~UF*P+s zE|=r^^FO$A=R2-mO%soM#N!nLzV8z>6A)H+ThPo{RTT(=fcg1(VzC%nTim_-1M#>= zfB!q!b`0B&5d;BBsRkbhm2{*eR3QbVl$6Upo`3fqjuXeW9c(*Rm%27DY9DE@KvUTS zekJ;WfdPueBDU=yWs&{;U8J;;QUHR!KC7aXAGG*55`n!^2_XbCGc%Fe@m{Ia;KLkn zyy=hwZ<8jU&tq9OPaZ#w+>!?e2ie*xkVqt|WvqJ70oQf8abpanRb&E|v~XQF^m^_x z34g=I>3S}%=W-MX(=CA>kEDmarXvxU{QfDw|M`mJ#^;|6aqWD>PFTb0!o;Ct;pf$b ziMmCFeOwW)E=-V`T<rLK;siP=_P-KnR-k(VZL&4&C^flAYI3n<tc!AJ9SYrlkjdpX ze)&tDSQT6!*4!K$`w;lItpWmeu79GuYe65s-}V4`ghqfA3W3-;NP%~ObHEu+4x7M> q@OOb|$_KCc+<wg12X?|As{a8ED!SUm!=PjU0000<MNUMnLSTZH<J9c{ diff --git a/lib/images/fileicons/32x32/mp3.png b/lib/images/fileicons/32x32/mp3.png index 1acd8327683146530e37feedc431426e43f1ca90..9bf1695533c2cab1cfceb70e518b15cd71c20e3f 100644 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V4M`-6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8yIFXn3<WGo10r$SXf$GT3K1ySX<lJ0FjNIot?cs5ZOBb!6pYs zM@Kg|HxGAr4-XGdPfve;|M2ke$jHc~q@?WZ>>MD-1%dp6f`*2M#>U3(?(UwRp5ETx zsZ*y;n>KCw3=o((Yu22(bLY;Rw`l3o#Y>kiS-u?Tu+?kVu3iU3>(;DW2Xx`u4I8#? z-M(YTj$OO<95}H501zBJbmZvqQ>RZ~zH;T>{Rj6SJbdu*(ZffNA3c8Z_{r19Po6z_ z`s~TG=TCv?`HN>j@chMdAb9ce`OB9tp1*wY;^m8%uU>+{tCz3dynOxo6$rg~_4@7W zH$d?A&D*!{-hFuY9tb|X{{TcEKYaM~@#CjYA3uNk1Vmpx1JUO%U%q_(^6lG~@87<D z`Tq6Ww{Ks6eEa_W+xH*efBgLM6NrBO{Q2wG@85s^{{8pw|G)nrU>laT78oUhB|(0{ z3`{IM0wQ7tPU|;rJ^1wb>(6%Aj?V!`U5}@WV@SoV(#z?=ha3bN5_<%9Cmoa$sTQwh z=5gGZ?Qrzo?v6!CjvE)g`~OYP{S4Q~vuEzUdHRseF2O)zN6vQdBfVWgV(AyWrYfww zdq#wJ$<Bm4IdgX94f7V?O%zFV{FZf+J7IsrRU1CWo9&Yiek|j9y>kxR9&ZbMiwAF+ z%0BOm-|*u2&xB*|Ht;teIet(>XT9c0yZ^_|{rh;)RHO5lMZuv{ZJ%=de82OWZ0CH& zZ1nTs%EsJlp^?tP(dps)pHAb6mUy#KPUml|tgdhGG<U1Sf)iEZt8PcPv!#2-zic_k zshyTq9oVCjE-`20KJJ@&|5Q#}vN2vdF78mMU=XH#CHz9OH&4@&kF!qw>Ppyf<l1dr zmy>_kTRcw94mgqXdgD|Lc8M0xQ?m<hB<pUkdU24KP4JS-+yHaQi@Od#h+JOH6IW7o zNMV&YQz&ayXd=UxmNgDa)|!F=j1CLCgd2V_EIw&|p<ly=S3uxmd4lzB$B@R~^Wz_e xHF^roJ=r-)lkdkDp1+qW*(~m@koW%|Y5%e9#jfg8fA)d$k*BMl%Q~loCIBUP;i~`u delta 936 zcmV;Z16TZj2eSu|8Gi-<0047(dh`GQ1A0kBK~z}7wU<q78$}eye>1z@#9kvA1d-h$ zQKWK;)T&iN1a6BBH%>%URI=dO3RQ(ODu*_OR7I7_$Bi>hZ4_hb+(}QU*QOVGq85iL zidqHOdLui#!y#FJtasOI$2@5?tJ(M7{NMk*`4V(RuhwdJ5r5)+<+>=w5d{dO5IBxg z|LE-54}smd*6C`krY0quo15zPojWx^Mop^sd`~O27x$l!8weprk6$TXKk^zst*r2I zsl>a5!Urpr%6jSCx%a}D=tU<z+NG38DbX}7cJpiigp_P=|4lZVrEvQ6nab+wU%p@i z0dzzNfs_&<M1Sn&=>rHLnM(5X=`(V<9B1<R?9bI|BM3w&fN`5AQ-(qMg>;9BcTSx; zRISyX_(ABw0OVLT;Mu%!^eDH>WyJova9x*AN+p1ofi$ok0zmEOP=o?#x7(e3chlqn zR{Z;q#r)hH^K)|pw(ee$8{rJ7{uH=MA$`3uW$@^aM}O#gf`<<uAf;sE!G6E7L95l` z*Loe-al3Y|%b{Erl!{!29ntoq59+6<l6-mj3l1NC71J~^O_Q0K8BEh;c6OF>xlD2@ zNwfL9$4<uD2L^H(Xkh5*dV*rHh-Fz=mc`cA7L7&&+qU;AJK?J#!H5841OQD(DMh7H z;n?xxIDd}AiIXQ$O0lr8z^4~3pb0I~$AK7-QqXF(sIRRB7wPUUn%2)iB%>pzK-X~` zCse0*b#%srHW~nLOZCJ|nIsYkJfFSW?)~5I^ZgIsVcRyDOol`vf!6bXA`Gmr|Hiks zZej1(WHK*e7)D3utFN!IxVVUEn%K5Yy<W%O*?)<>kp(m0TQ*BeO9PX5I^GGYl)`mg z+U+*U>1o=n_T&HrP2%ZXy?TwCH@~6TY?4Z)xN>D_z=w*s-h|XZf6-jOzRZmq-AR_0 zmpeN7xAWwGx!b4Te7@7?!&T0~YT(WJx2Uex7*_-%7Gd-yY778sQ~+aMNrxTNu>cg; zihtaDa*s(%Ay?ocm*O%2>byeyC_=~8`F@r>-LUZyQxFUy%DJcOpD-+tSOC08{e2Li zFrWuwzz-tmUzp8!42a<lhdxfCY9PSB9(D>2i!M&|!%o=&00OK_&gbciuY4AGfjq!Q zfOG^xU=8k)UC97PfS36H<Qed|_gx@-Y$2rm_x1@(3$S`0s{a9|!IT||;HmHc0000< KMNUMnLSTYJhth}u diff --git a/lib/images/fileicons/32x32/mp4.png b/lib/images/fileicons/32x32/mp4.png index 03db6f45093564d224381de7010ca5873bb3e5c8..071abc324ac4c8bf960dbf1125f6509c96ae5067 100644 GIT binary patch delta 1095 zcmV-N1i1UH3ET*fB!44GL_t(|0kxOeZ<JLS#);w53oeX*0p3tU$1a^RGac%rwN{WW z)fibSTJ^%#gs>0`q?DrIVvLob)Ilzawa#>w=@<ns(UuxXYXpfPgzmGn)7h7)Vjs^F zlauda`ei<tKFO0aU(S1;^E>Z%rp>HVXuZ?z{@&^Fz~ORX=zoFi<Oq=iyTdWeOyRus zC>It=!C(*rgM)67`$)b3kMZQxy~!y|PEBhz*HIS-20;1!etcuIUCFl-kF$N$)btFd zXJ#=oJD0av&vn$-gM)}fqM&>}A8ZbXpAdNiFl=^ip2ppKlW@4)&{tIArI&Z%<h!Tf z_IPpYuRE9$b$^p$Q`X$Ra~C)Nyamc`w<EK>j8JGvcEav-&J!Xp0G?=W-beE@PV}6F z&1MI6{rU|Uja6uE-HWcSZk#&(K8C&D5rD4&LVWk2vI0VMLf#2+#}*}o3V=Ad5A#0% z|Mmx9GMaGY$Wa_W-VKYT7T<~!-d|b4ZPA7L`fX@`tA7JsVy?aYZBV~nyT;c*5RT~Q zod5^`vCjq-04Jz9v9V8VOcUbL<sb3EhaX|*&Ry8FsR+%@E$9?L<z;%D`_hVZCX3&1 z+!XV>5sxLXns`9&vpRs&35uuo2Z9_0j1Pf@1%$$3MB*{TQ%Q_ZOyIorJUZGtP*?XX zT3TK}S$|mt_U+p*K>iT(zoE9KPUi3s6!Y@}2n2%COW_D&@dOgd6q2blQt1pb*=79w z&wc#60*ag9hf9~y``H=nX?+D|b2WyB9FRHwpf-SDa6$Umu`X1IZ@`u<Mi>kxR8|_G z*Bkg5CX<;LQrL{@Y71&=o<VJG9ky<@C^Kkn0DlXMi_#?}WuV;dVf6Q3L?V$~<=G29 zQ-oAz(3$`iLm}zn;-^6U^z(=aHe&alR`7L<j9z6|<TK~X%k>x^pFnA8Ig}Zpr6o-O zTp+Cz0Ap9jaAjnaH(#{(X>_0H!RXj8=sYT)F(PUX9y$#Ey(kr3Q)Yz2QEdR>NJN?) zuzy;usDExd8k$<r)chhE8k@1Bp$UzO=jV4cV%zoxT=?n&bh;8KGa}KLHh@SpD!qAg zG0uK|4trm1!)tACpzZZHbDDFkIr~K)*C;cz1H@u+>7t@1@oDcF>_2b_2M!)qHEUSQ zHOdTH6F?%Kl-{`U34HuXFM7m3p`Q0ntACm`tmPVIMm(O-29Qc-q&wf~gwbGx*;EB{ zmAYBOTCP!M@T;l`Af3t<)X8K@BS0owP^Z#qtpJ%qJAVLgwHJNs`U-C5Y675g1qsPf zsT_6GLjh2$hUS>d0r`*s>Z4T7%?k#Q&*_xTAq@a7m!><wF}HJffcdHb{9U+~-#`N9 zs{*(@o`lowCMnxhD9azL%vS^0AgmL%tf6&kzYErLl7wq$=5rsZ{{Zx1^#cr?8$tj8 N002ovPDHLkV1j)K6bS$T delta 1177 zcmV;K1ZMl(2(1Z_B!6^CL_t(o!?l-hXj4}h#((GB+kY+tP3vs@vJM?oivvfyA=Vn* zw|!bMRVa2aHUi2z#W5$0vX3&H6Q=0sr@75P6|?vUgjQh#8Iwtps<p7SqOsewV->Zv zn%v%V_8}&{NpoXTy9X}h+}!(|=e+OpzUN%QG|W&qd>SF%)_+Q&nGG}`kV0VF_L+@= zzy@Hd*tb2Qa9Gb3Mn^~Wkz>cgfGjkr>G)l#b!y!=Z^aQpl)iqgd8O`UemHuR&F$^1 z_xs;D+SBt>`=(8AxkbXMPNu^yr9?`JVHibU>30Bxl-$4nfZEzx{A<><^qf37lC#*n z0x}RnAf-eIL4VS+`0es#+BO9EWap<GKKvb#NR-LPk5O7<D@D?>c#=r)XmS#Oa>Jl< zUKL|w_wf0Aw5(oTdm<Ey=M!PN2}q})ysV7t0|V^%cn2FdwsGy+09&?fWyz8y)Ya8d zSyf3xLj(28mNBoY3INNtsVpx?yy(e9Vr_Ht;!rqzXMaO$tIwGZ7XdOOz%WhD_x6%_ z@`S;`K`vhWh0blA1OfqW4Bue;w(a~i@+Xl<gt33eIB?)=UR}DBBgc;;p4Np@ijMYn zfEvI9+;<V6pXP8n0$OW6>+0g_)vH|T@8|B_zd3Qdhb#S8xX^cj_k$nsZbt`0!#DV1 z_in}?PJhtU*ho`j<BWx=l*!B8Q=qd`ptMG#S^4@(n%-!_FjIyb`uz`LktpMDHW3bm zIN#e#Jbs(z=4Ni*jx%Lh?Ap1DZ@)i`6au9bi+#1AHAQ*ANQYkt$||ZbO*3OkAq2~p zH?U&GYrJO|NC9_8{~;EOF*G#9mwWaQzZIvm^M6AJk1VPWWSKCHeP8XPudffoFj7%b z3a!B~Qe~Iw9fGnl6Vo)Gij=gpv^WSUQGlF&<J`G(L?V|tb?OY`;}2<VZN=kxA<y_M z<KqwL=-AAvRjac&3PBbsLy_v~094mhbMW9dY}vY%iAR$xd}$$v4o#1%YrO2=e}HH- zhJR&QSsdvGH7fxExb*8Kv=FRY?`P!p2z&SLMM#O?F_wnGTK`&xhlfGyYyrY3Ed@@+ z8W^}fz>ne6lvh;Xt*#*!>n9qGA*IZWBatXdX_nX5V=I-#QD|RzrU|uHBrTgoixy=n z!EGZ_O7S>pp_E<pW|lt!j<T_B8_TlrdVjsoB-L7DC6m~;oyGB70uqS?Q?_FMf(7ub zRcXzXtw<yiSsc2+@y5ji)23+)1PGrzfgxqVdQKb0R*JSjAd5q3d-fja>iV4Lg`h+e zBAHVNU8;at9!XsVlv0Lg*PZ3g&v%$>`20TTEFsuI9V~c1sDoKozUSOHiq3W}L4WSJ zTXbhG=YK&Rq+4{)elv1T;9PMosWSrU|4Ny>fC*=c$VcinQ7O?dbL{FWqF6YeoiTYH ze(AOgx=otCUyP{SXY!p3%<PWEgtg7~ct2X0_W=1EjQ~s72*kw9E;)_)Kpo)a|HD1t rmh-zn<V3@hdv2d&B!LO%m(hQr{}Le%r^h1Q00000NkvXXu0mjfPBu&m diff --git a/lib/images/fileicons/32x32/odc.png b/lib/images/fileicons/32x32/odc.png index 9a34f21291c5a47d90916d9ba9f88764a6a9d345..3ad6a3c2d98f0aec616fea49db221d9e7bc9d822 100644 GIT binary patch delta 924 zcmV;N17rN92(kx|B!78HL_t(|+U=LiYZFlvhl{v$(S`VL=t6WQXni1pkBzt!6$KyQ zLPbG*AYu{4g`!AxBi0&Qle7lJ7PY|#Ra+FbShTjLdCW{ElgUhGCNr@LKhL?5Aljz6 zCEa=8<1&x)yWiZoEt#f2YJQ}<`(dP~2jOTG_h&^!jFf|}aDVs#XEsUH0&Z+n>AH@N zP^g=7=hZ8)ke{6ETVeu<iKH~#$JO4^Ax2HpaJRGbS-mT<h?kFRBAG%ml}0L^sT;nZ z`?&6eLa;0wT&k*~GaS}fqHX~WOJ@{mxQ~jL9_8=fk<XjemFS8@6qcw<fS)L%sIqWh zRe*~n#7b251b=T%gC%AZNM}?iswNGu0@vWs5WfZ%5##O3o?rpcJk2!(BH+qUn5t!^ zVF{<`V!Gl7<awqSh*Sg=3e&QB!$ub4qWt;<veeX2G+j<W*K>koI$b5BWROUv5bAx8 z_~2)J8cpEy*aS|tJ;$=$omjCijJ@aka3%B#BXlj1On)-fEGdDUVK8E6E2>HX8eY5` z$JR6bXgSi0HN@JZy;y&&59^4tw+2xx<d8RXx>xK4?q#Z3QUXRkFHo~t=s6wNV<R{h z`heKWui~8!kEU@cJdADUU*X}v7_5RJh`$*Xo6)xOFioB~Cvx(pDJQ@UjGn95n-o$o zDTqcsHh&B{F63bsOjv}j8#s021(wsRSi0*T7H_|c0~a3S`u!o!p?hsPfr4c*RS}aW zaf%j7t}SpKi;u;aQgrNSeS%d7A7E$eQ}hpwqwE*ynho2o<XCo5N`M+{L8aM3;5%q- ze~Z<JA7S%}$2fFt09T_Qal3Z}Tj-eg!k&xI#D9N1$Dv;F00PdD7bq4Tf$O-K3`)4r z^#L1B^kd`6_;30Jn@+{C`E(rnFTbYyUAV5xeN!PP;5webrqGMwPuSWzfSZrLAZHda zrkHs0E`xjVaU8$(9%n<tG_i-0UxMp-|G+tp<H`w?yg+az_62=!6?mSHpOa;jgFrA@ z4u9}tGT?JG@_8S=KP8;Qf^q_WsoYRJuOulDlp9LP_hkiwMpM7Q%2*6dZEcN)b7v>; zXZ?GwdcMZB*$Ye+E_0swFCZxpjn3sBnE5v$eHYH@UjgOU7Krxrxb)MRO?kN*MfHP~ y^J@t-6HADeIb=z#?}GV!kqzgN=D)v;eiZ@wE~&J3CBgdu0000<MNUMnLSTXm*}jqh delta 1040 zcmV+r1n>K@2c-y*B!BElL_t(o!^M}+Yg|<n$3OSHm-*Fcj5R4Ul{T3eQJSI)6BkJu zW1=A9PmC=DBZ?&;Me#3iE4c9oxamd&lQz=nP=kvKRTo{9b|dXVYl0?~nnaqI-#=#N z-Rt7bOD6LxGh?I&F7Lg2-@EsFzUO<+y-%@ic07@|h*HlRt$#68V+K%&QaFzD?TP;W z*MM}nUx(v~gxM>bot-tqXU`@8DYdAbbssRs_4|*>DU?!``)>@frbfOV8R3nA0eX9S zUKtr3{c+&r$-ZJtWTO+0b`e2Duq><W=6wU8L|9l@Boc|xbNqPs==t-1<~Umrz?Lbc z5D}D8WjF7A0DlDpLqX=|=7~n5ba!?}zKO@D3V|pJpxWk{-{&K|KfJ}nQ(aw$;)%p` zE(p6Y0I5m?-Zu}ov@m?`94eC+T5ARe1_0`TFtAVrfXT#ARRusqSYBG8y{(P*wzj-+ z?TXx2oB^{l1lky+f~x^m*VkBHTirRXHHV@RFs5W0Zhx7T@qX{FQdS+vi{(aga~qT> zQfbZAU*?G%2yn2@k0pxX%eT37eHwp_MQh`JjyBfv%o7oUes|GOAn2w=MF1p&Tr89V z+fw{?XN}LtrkGn!B7hRtLk+yx732Mvnn*bYM;p?P!7FOsTvah3mSBnE!qqwES5pl3 z9j3jdmVdiTNxr|az_p1L-t2Cm<I(%jz|G$mc;rYe`$9E188Er&SrGt_ffF4EQ3|wi zl^nT0$lJX^-syFPmrQBCxcDoVuKk6h4XL!I>sSNFVs*UU+l(lyG5}sl-9`j<h7B*B zi~*(KpXDSUesz<nnN^N9*E9HR6CJJfq|z<}+J8_z18#YRfY0KS_&Aq;{+n>n=Ar05 znxkQALpB$#++ic7X*pcS$EP00vS594dpqB)o)l&vlQtp>e~s|z*aTN@EfNX^(7^c2 z2IDguZhS49=7u02z14~cXl)QFzj&1d;26Va-%WCTVwG1rALQjHBP?yCnVenc?&2ml zrhk?R`Yk?qA%<AWUEIp?Sc55XyeXmqS2SP#aGS?sb-eprjDSx_JBHejk0TF+Py+p( zt_U4RqYYac*;!l_+Bnr|;8b7ZR$nsZZM2{PoLx87%v_+TP=pA3YRXg!pvoiZZrgNO z0G=Kj<EQCq_S$-)QBIf7Ko%E6L))I5Ie(Mam)*bH7?lDrLqmC!d(VaXbKfuP5W_vT zdk(<POWK_H71BU4ZREb6r-1_5V3*tli-@RHoJ)-rn%~aZbywbVobc&}hJpvk|4;}J z$3ZEzk~frfUk5Y+2mZ&9&jXX${{<?Cjd1R{eUB{(tYrVF{tJ<Yv<BIyz-9md00{s| KMNUMnLSTYoC-(6G diff --git a/lib/images/fileicons/32x32/odf.png b/lib/images/fileicons/32x32/odf.png index e3b4333adb8acb8a1d064c63903c16fe162de5d1..8dd89eac608abe3d38636276201d6203d9244a77 100644 GIT binary patch delta 929 zcmV;S177^22)752B!7NML_t(|+SQlKYZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#3G6dMUm=8)EZlpv<Ac$wZR8fTNJfew6>;s%uFVe$xLP@GqDOk&$*FMiq^R` z6+G~9naBCvZ|>ZdOw)v#9qa78AM5HuG#<y@X%Q16<)9-Py?@7<O%gSS8yi)+uA?my z>7?9QVFl*$lXHDZjUhFbmWKPdZnm|FQPVWsZf}1Qb|vQV@^Ou&Ge~E$$YgV&;rqFd z>sBNJ%d)|xsw&!}QH>=+3vgIAr%1znRJ`=4e*KDK(X6jTM=YkWL?{7%qMV}2!hLlC zE|w50QQH%|Ie!h7_@h8Jr$SLRX?PX5`UeL1HL!>nZ`Ae#3xMWno<bl7t{jD_T3#BK zaLO)zSNwoH&+i3dH35afw7lN1k;S+uKb%0Gni`6x%L(XuL6FX7>*SOiQt1pL-EWcX z|A-I6DSR9m!?D(<ShS-ZOLj-G>r4+WMqXfuuBFmxrhlF#B~UO7M(k`wRVhHjvp1vI zbg~!A4|ZcEvFcDa)*SA^YU0%Oew0fE6b+s36?=hunR=F#fKe<8)O;R#LC2NE5Kc$l zA@TgPc&CHIS)7j!V)L07xZgJdt7Hh0uZG2DwCy5HlP4~SoT6#U32+0W7i#t<g_KMR zqLGgcgMW@oMc5@17NP3~j$eI-#q=r`Zoh;1TW(|T*@w7tcYt%~URzF}WLZpI#H2}_ zvW1Fk3tY$IV=-nF9a~!-VcEWW*w*qGy#u4D`enLi!?tTVmR*(-paxq|Yqk*h4q9%$ z#)<<Eu;J)K?7!THOY!%((LIEXbj*8U=eZ~1zki<NP_K9Z0q4jIl*^95bzF=G6`bvO zhqXt0vF=#%C%uC8$CKD_B8fd0Uef(8T-W8kUm+*pI-bC$&~wob*woU8YY#r5V3skW zn0WLihdaqp9J&4$ry_$iv4@IZf$Mpb5jl?I$_Z4wKyWef2|ceBc%F~%<5g6HKrmhn z@PBPQ;Bz$cc^|(2OE`xG<plgnwV`-kMN%NBHk69*%L)XICcMDXL;_8%t&N6rrzbF> zCY}p(p6l-fs3yzEoM-;Iz~ra@-&P<VpY9$ABk<?ng!ElFqkjdIKea%-tIMUI&TPud z)hOy8teiiUKr^v`SU!U+nCiP=HeY1J85*Q{@|V#M8PuzP9|TVC00000NkvXXu0mjf DlF7v^ delta 1038 zcmV+p1o8W~2crm(B!B8jL_t(o!@ZZwZ(Bta#(#6J<5%4@l%%qY+QcCU)Kst_VUeUE zBp@Ngt0J^gL=cFo5~@J_1#FSn@Q~PKgOEttpt@FxSQM$iqKm5CpmqTz5hO(=32H(f zb{@9x42$a<JC2>$PT)wRdp+Yh^PO+Lb7rn0XP#I*ei@}+Fn?NOsKyMS5T&qf``c6f z{jUL;a%YEP@wnM5o1L9C!{^V(0oiU*Pu{!V7$@#OCZ|wJRUW@FM4KA<dSrw*1_tQu z>3MZzbo9r8)2I7NF_Di>T-rqh5y7&ovYR^xK#8!hut+!@rsu?o?$L`E|11c$D1Z%9 zN+BXBrOIyZ|9=4#5C{gCo0}&RiO}8I8U7{~n<@sPB!Ft0Yd)`+(EiW{6Hj+_9gfB0 z(}f^B#Q{iF8gS=4($d24g$t-`UTCcu92fwo2SUI?2>>R$hpH+7BEs@gg7&sH+S}T; zjB7{a-qH-1&0C<2K`M9}Ai282@=9{^xYitwgu$3?(|>TotZejq_mr~gz?QvSOReWX zi6WiRT>oXB@IgO^>U>zD7`}R!D>tX{)mXGP?&nxzEzdp~Cg5`x4f+F4T2ur;vdG0k zDezc|-|nsO`PdY5%P9m<;zX!{m%5_7|8f&)+hA)$#x}S`&Gl6k17Zo5C@x)}V?LQ? zu<r=%Eq}G#UrO=)tp#pOBzUvCfsV%xpn==JFYxHmTJ{BNu(Mza)3YJ~E(51J4xtoi z<0v`&K!CS<1H9Ag2rre^d~x|#uH5(wTN~0DP1o@Tjz{Zwy|)=rR%HO(lA1#Vo-7+~ zIvE2>!9U9>KK$x7Q!`19HP<uvToWCw^`tWn1Ap33Jp)d81;5wglh`;{fBu_Lz{A6l zeKbcx)CN6Vx^|DXw5H`q9Uq^00?UHc_1tm3Q#~opKsIee6uuha)3FJz-B~0U^rM0C znKi~|)|~ydJTx~1_~@-xL_lkUNcqKUTL88(eD>WWHz$&u?0kq<o(i+HmSJ*smHUh9 z+<%%{Cg8L9;Ke9nDQ9u3AYu(>o9j&p4LG9t@`t-T9<Afu=cD+&LdG`K2E818Fo+W9 z?{q|H+Zt`y(8%WEs?f%+P6KE98aMh<Y4@N74PfthsAheEqCycO?5QbJDS#@kq&pqc zWdV3*Y>c0#r`c=ki9|S8J_C7NoIRV1WPfOAOW$_=`C}DsL2mJU2l>Ct>94vD?8b^Q z_P+wy9RmewRYOB1BdRpgV*a-PkRnCAnDbH#?gXTme^0@wn|RN*L+2VAie4ahQ3w#* zMk$rpGL-jT2Q&c(`R{BVn9Tn!Pz7v+3h(WEY$+g-|DpOXoe{D>$~_*R00000Ne4wv IM6N<$f`QZa+5i9m diff --git a/lib/images/fileicons/32x32/odg.png b/lib/images/fileicons/32x32/odg.png index c3b192b2def39718deef1d586ba8a92b60f3a349..7020d1396596e123d8e34d7c380125f45339038c 100644 GIT binary patch delta 927 zcmV;Q17Q5B2(<^0B!7HKL_t(|+Rc~CYZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#3G6dMUm=8)Hb#zX$^=iYJ(4|wkT?`Xl+gNn3+r_lbOs+X3{GBJm*HDXpOlg zMGt&j=5c=an>)89)AUo#j&yb1i*$D*9F5}6w1|k2a?lwL-+$%ICW)HEjg2Z@*U=UV zby4oDdIje4lXHDej3Y6gl!p7bZnm|FQPVWEcXT|icO~ZW@^OtPQ%I)LNToA%!}oI^ z*R4<pmSuxWRaJC^!x~G}Ex=*vj3N#9QSs8FJTZZM-mI=fXC$JqL|p>>L>Wbuh5M=k zTr440qOvD=bAK8v@mGO#Munnk((o#94Ga$QYhV#E-l*&e768rDTtgrNt_+2#T2>mC zaEdPeRQ!NE&z}V%6#<39w5;B+k;S+uzdnI1H8m7XmlM$SoFJJ_SIH<DB$6qFdfp&D z@B!~f68JDWj$^G)uxLjImh28=*O^{i3_Zs%T}vdBOn)^?N+4$#jM&+Vs#1W4r?1Db z>0}?4AMC+OV%4D@tU26^)x@dm11J`9$QwG{EA|5SGSw_80VAImsM##^oQ^B8VVn-V zMeNxp@lJ<E(l{R;!sav2aj$<AR>2U&Uyg{)Xxn+1CQqCbIeF8R6W|6$&sFSA3MrTr zL?a&?27etF@~{ggEJD`}9KZS$i|JJ?+<qJLx3pvL*$23CXOMH~URzF}U|CF6#H2}_ zqJ@%c3tY$IV=<-_9a~!-V%fgC*w*q0eS>2t`$f8D!?r6qmR*z*paxq|X|@pf4q9%$ z!iod;vEk?g?7!TPOVM|@(KC#Vbj*8U=eft?zki<NP_K9Z0q4jI6pN0)bzDpaC7kVi zi?v7lu<ls=JAH!n$K%*=B91*5UeNt6T-W8ksgM(J9Zz6W=(+HFY-;Jpwfi5DGm98i zOgwy@!R`1Mj$D6(Q=uW6*h9%L!S%e~;2g(s<pfGzAh;O&h~8HUJkQ71$ui18Aebx% z_<u4P@Hra!ybs@>63$^kIRU>^ZYZ8tk`xHa4W;D!vI0S)sb64eEQY4m)<(m*(-Ziq zen0o)e2r_<7nmws<~;LH1pc2DkQazXXL1kx{Wl?f7tZKk0p-^gh<10o^wXJ5dAS<I zj}KPPuO-k-EFhN8APZ`J7tH31Y&e57{}}pZ^bOV_u;6qXQAGd%002ovPDHLkV1o9c ByGH;3 delta 1045 zcmV+w1nT>>2dW5=B!BTqL_t(o!?l;qPh3?P#((F%!+dp$SfQDzX<-nfDUB`!7eEm~ z6Jz|0*d|1b#)iZ+8vg>fCT{#l+^{hwLW}8iQi+S2R9$q@v>Vedv_ceWDqspi`JS13 zj*B}NhM7CV%#^;#$-Vb{KJRnh_c`Y(w#}DFCNH4Wi$-e<)qj`)6rvQiZGV5FzyA#& zQ|{<UBAGOMWpi_LX5`G7Bp{_0_2s+=jdA?`Yib&$ROS8~L%gYxZ%0RYYhZxho}Sl6 z$HsmhIC-+K7!$eZ#HC$C5D_fPD!aI20F(%ei%UeKQF@La?;bmM?(aNjJppW)QVJ14 zDOGlH`vWK-6n_peKfgdM7NfhfGx}X3G3^DSD1d5<YXQHX$o|L{6VG&Y9ZDpVGx;EV z-T<Vk7;wit+S0<v*|Vr@UTCcu92fwo2O_{?5dbE;hpH+7BEs_B724a{Xm4vPXxC1V z`-?MRc5Z<-2C3j_fYtRime*EywrkCySQLyYnTA_tWq-ZjyQh?;0|k4zk=on_C5m)L zbLF=Mq6dN;tP5a?V&u{-E?%1<P-D^BxSykqwLJG!lu*D~G#m^$X;BdX$s!jErNCz? z{<yuym*dmSFQ*VdiQ}OLUhazX;VVs~ZG){18Qb8Bnmboj42UIIqBwtLo`uykgMEi- zZ>i<Z-G3B6USH(u<O*+hH_-9;18CsJpNl+pq?Uc*8tg2X{Pe5{fXl#%j)N!#+BlIM zeK5qky&>M~bpkJy)_is0cP?K22U{D`8BN!*29Cw+c(b<|QC4LDTuI$V1imaAZaNtQ zO2L22DL($@2Gg^v9Br;=@cAY>TI)$?90s(ZdVdBSd4-_g;<LmAmwx@1NXW+{v3)eh zBGiU`oWFdVjkKoaa2=nXdJ@Zm_08?$d^bJuW+0n3B8otb@cH;8mv1f+4hPY|#OwwW zvm4I-T0WW^LVWU0D<Yt^L8N@~Dha?ghA)1Y;@adYuXjGot4~L{yOCjPZk;<zn_Qn> zCVv#L_~@lLVku{FE6-yMro{E8NDMeZ^Yu@+cp_fM`!B=^`h|>bs15r$@=zEh(BJ6< zp>1olVJk*<imO5!ySf-S)z`RHmrA<_EocCH*F!Zs7bq$WLWDgvWhw<w<&|`|W4bH= z&yJ7t%ghXWZ9TCVr^{y`hl`=1ZBK@W3xDcz>vwCTQUGRXs9<vU+p9jmf7Lp0uja*C z(OcC00HB74%Vxq?khFOd74yccKEJ=GD3k&q9wP4LNh$A2wRz3&%R6;fKCtb`>4pZ+ z3*<cr0b<)IrB(`>a^CBJCg1?~&lZ5G-2VcV$3`Uo-oD3{0#<T=RR0G79=JV8aSnx^ P00000NkvXXu0mjfQF-$; diff --git a/lib/images/fileicons/32x32/odi.png b/lib/images/fileicons/32x32/odi.png index 6baa6940728716979a718dbf82738694bc6a9558..9a08a426ac1134f379a1f80bdcdc6a1820e6a544 100644 GIT binary patch delta 922 zcmV;L17-Z82(Sl`B!72FL_t(|+U=LiYZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#3G6dMUm>Js5Q1GX$^=iYJ(4|wkT?`Xl+gNn3+r_lbOs+W?~h7o^vBXtgX2^ z-Fe{SGLQ4S-`u$^nWmp=cC4%GUaY$t(Rdtp{)(6wDF>a==zm?#Y?7!s+!$8rx{mfp zq>FNAH7YQdpPcJ+Y8<KYv^3nub)&sqjGCt5R!7I<Mpt4UFCW)<I)ij3i%d4xFnmAv zaovnWU|BY}R8>VsG^(*g!vY+Z%_-7w9~Cb>s$agKSTyS^(HV;=EYXkvKT%FmW#PWM z02NErSAzBgZ+}jMCH^Ro&8bjSO&VSWu7SZpehn-l#_P2`!2+Opnx_$nfh$L0s+O0A zC7iO0sfr(v=b2g{RufPtOv~$`jV#7R`HczWsVP)6T~0vP3xaeuTPLUFkV<C|>3M_X zzz4h^N#VojIF7YG!J-`<Sh72cU1xf6G4dS4bS;%mGk^6gDS?7vFk)vbs!9PGp1vN# zrjvbGey|5CiB*Ssu;y?tRuiY%22d^)P&9P9SL_AuW$IZ{0!FbYQ1f}{1szus!#Evz zi^Q`};++nSWN|(^gw1E3<6i$Ltdb!}z8n#o(YA{)O`f<Qa*C!YC%_GiUZ~ld6jCxN zh(<m(41YQ<6=9c5ScI+{IDYjh7SpR(xcxTfZ@GoNXCL6ook7l_du=&^l4UV<5tAly z$`&fFEpQ!+kHwf#bZl*Th-LfkVq422^bL-o>X+%74co5eSaw-TfEsK;t=U50J7~G_ z3M&rW$A+U1u>W#DF2&#Bde1O6(lPIao#!5l|9^UpL%rew1e_x;P%b+H*KsisRB*QQ zE!H0G!@6V1AM^><A5UV#i6r)1ctQ8Oa9x-CeutcZ>v#g2LeE9tV^d2%uHFBLf?39> zV&dWJ9BwDaaHQ=GPDO@jVh<I+0@w2<!8wlO$_Z4wKyWef5xuVzc%F}M6IE1$Krm4a z@PBn8;Bz$cc^|(2TR4XW<plgnHB>yWA}J75L#5*TvI0TaG%m0-kw8;xYuIq^zX|+Q zlg~{)AEv<MK&q+E{}=d2fp~l-_rRZj6Vi9#jQ$l+{`3Oz?rxWUI<qM+S6I|PSUG<> wfo5U>v3v$uFx_{-Y`(~bGf4BVUq;^n91|g)^2;)2u>b%707*qoM6N<$f>o)nQUCw| delta 1037 zcmV+o1oHc^2cig&B!B5iL_t(o!^M}~Ph3S9#((pkWxu*btkCS%w6KWLltwQEFMuL~ zCdT*~u}z2=jZG8NX#5MjHSxxe#2apmiO^!Y-BjX5O{!k>qG@kTd!ZGgP*VX@5LiBU z_sn>4_Q0~7U3OPY-(+&;%$%8d-e;coojHmv^CgnWizxNH(SI64HD&;XD1~j?-=662 ze+|f%J35j`Ce2>i?Ch)=K6^F^NU24AdG(+%j^BSwPN9^l+<#+;H#PG0$Ovx?4A9%t z^UBER=#K*@PxcjKA|IW&w2KHLf@N7{7k3PR5@BIsk!UnZ&++5kqvy~6S>UWEfK5|M zAtETH$}aBr0DlSyg+t8E%@d2o=<e){ev?Q{d4VVjpxWYE!0#urKeEZhQ(aw$63OIr zAqby00I5m??wE&LS{Oce4wZ`wtu=!K0|50v1Xw5nz~uH&RRusqNG&bX-quEYTicF) z?TFl8oB^|a3$!sv1y2L4tgVt-UD@8RHHTtRFs5V}ZhxAU^M3E1QdS<=v6t)VjV(~3 z$YeEFf0-wGAjrYG0G23*FW=_U^=Se%7Ojo@IoepuGfzYb1)N30!H^Rc6#<YOa<Nbf ze3s(3JF9#?HpN^jjQ~m<4>j;&SDg1>Y9eDBY;DNe1~;j>b5+HFSb`;r3s>iuU&%1o zcbN8;T7T{?rTPBG0@o&%d9%BLjz{l912=zP;E^M>><iam=fD((XGH*922OMwL@Ch5 zQF8SD5O4Q}c&FD9UOJ=s;^MDdy7m{gHe|Azu44@xi`VgbZ!@B-$^f`2bqf*ra%{Na zWDF<;|D@7<_|;9OW>z@bT+iUMO?0%@lgT;^Xn#ZX3^?f(f_{rn660L{`EMd29}mU$ z(Hx6V8}@PG${p4-nwG<Le0=J0EDP2)wvO}N@`*PCxv&vY1Zsp&$0oRPYmsm`hz7=I z))}8!clOuv(cBQ?qqkZS0j&)p<tML_0BmFU?7K;>Ppt52=YzcbWR#`#ER(Zq++Ez@ z#(z|bP{87Y7vhMeoW-pIk2RPQ*P9|5a76Rv54U+NUdOx7#R>X_tZk?b`#JJJ7$wl( z>4?y_HQKPLk?qM<p^aUg22S-gZnmW}?m-J0z~1#x&CLah3Pp&pr>0D$0IIx_?siO< z1>otiF@Bn!X0NR$7UN9$40v#I`t+7ZLw`d%+6vp<dR1ZQwRrx7`R~Qr%f7^LkL{iV z@a+g%FBK0Bd1|1THcBRiQUIhx68D<C*n-8{z2^57oVv^J*>>biLxbl9@;@X3#I{jN zE$`^ctJeWdz=8j9%jbc~{Qm+~z(%C--oD3{2A1=GRR0BJt*p@~_Ch280000<MFvhp Hu0mjf^8p9V diff --git a/lib/images/fileicons/32x32/odp.png b/lib/images/fileicons/32x32/odp.png index 8e09dd6e4d65835eabbcdbf0ba8a0c19eb1d3993..e6b538d277705497146432585d86d3a34b0bd51e 100644 GIT binary patch delta 927 zcmV;Q17Q552(<^0B!7HKL_t(|+Rc~CYZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#8MO&iXzobQEO~X(l#J%Q5$?vwM9{jrPkIokD1A2GMUNDWF}VO=Q%eLO3|8I zQt`mYWgh2uzqxZ;G7ZyeVWhM3QKYL2;b;^O=R`z|l!K0NxPO~78zgEGH`c3kT}N9e z)JeGuY86<_PtNr<F^R-vQX1~#y4%(!MorUjzrFogtt+vFmyc^QnL;v^Mk<}D8NQ$U zxbB5Quq+!~s;Z(r9M)K(W&sXMXB26;kBXNb<!|4R&zsei=!irVmZ(X9pD3fKvT$Ej zfQlumD?xjLH-D$W5`Ps)XH+PvCJnCw*Wl0)zXlc&<DJT$U;)rPjk5?uz?GpeRm)1l z5>C;@pNb!l=lQchq#~eDn3mP+HnJEO<<};VrKY-~>2d<Po)aX~=_(l|gG4fgQ15%h z2S@Q~EP>JSNt|hUjurdbvFczL2b%kEE%XW_bS;rgGJn-9DS@0}Fk)vbs!9PGUc8&Y zj`RIkd%PFxi47-uvFT(VHWC+F2T?5KkT-O?SL_AuWvW?H0!BVBP_tR+IUP4+Be)p) zfY{3~;++nUrEw)ZjGfJ|@MvHhR>2U&-;9aPXxn+1CQqCbIeF8R6W|6$&sFSA3MrTr zL?a&?27etF@~{ggEJD`}oW1n|E9q4%-}?YdciqR~OOJ8$;SlH0y|$b{!LpdDh)I(; zMGGa@7PyYZ$6`z=I(9cb!I~r8*wgeB{X-Kd`$f8D!?r6qmR*z*paxq|X|@pf4w~-1 z#kylX*mn9cj@}r+_2@_3=^ep#I_ABw|MD~OUw_YWs8>9IfOF&pibY4@IxePy5-xRo zz~<Ba*m5TRi+;h@vvF)Y7ssKiujzgluIqB&?~oI49Zz6W=;iPy>}VRm?ViubnMI5% zCZ4>@;6Z!>r&{0RLTH#K_E7Rma6NA(BFAxDIf0TF2(HCGqwlQ(&-3wPs*G|F2&T#b zzJE^ze2zvw@5A?h3+J$)oPb{{*A>qzNeTqzx>E9eS%IM5)Gn|(7DGczOTFRTxd}|G z>E~q5&s~6Ori|?Qe<tvMu7JEiG&<KkP>aCde-qMo;k^D8Q2y)!(XK9+emb)$FIT;& zez0=>YyyqMGGgsKvTU~Rf`xpM4d;=@nHXP2KLIj&tA9{bql*9l002ovPDHLkV1j`{ Bz!U%g delta 1039 zcmV+q1n~Q{2c!s)B!BBkL_t(o!@ZZwZ(Bta#(#6J<5%4@l%%qY+QcCU)Kst_VUeUE zBp@NgQ-oHE2m(=6LKTR=fGrXm9uk{u5E4lnRM#pIiy{?RbWyb%)Gl}=g1A*lf|`(r z^Rj(sSX|%OaqPr4h9iycy)$>t`OY`zoS9MN#1o6hFQL?PMt^Gz)rbKUq7=4me{*th z@KqpF?(9%39yhg;xw$zrdhT2tkll=W^4|T%IDY>zoj@s7x&OuxZE5DKu`ymB8lu0i z@8z-a@gIgxof;^`L_RukX%`Vh1k19@ZtffaCBow365()|z7r>U$1hyCQ{Ze-09&Gz zLPStXmEGL`0e=(_2nLv+Umy~R(A(V|{yG**6a!HbK();kpVv!he`t$|CwqDh$Kvss zLJ*$f0HmrIaOXVK*2d`h^QdfIXssC@8UknpLcn4P04BSJsww~?!pd@z&W;W`J34lZ zYbVIPr5P~Wmp~hXRPZ#w>iQZhYpdJGwdQan494u5hJRaPWxcQ6Q_89XJJxa|wV4AY zigZSE?dJu;2mKss@L`E!^vZ26-<ZKyXVKogpJUDSJpFi>fX^`+^aq@@s0e^$k&A^= z;IS0H-Cg6ei3Ia2DFjgBc&LFFdZN7dVhd^8U~5ChHn>I2)m0S(VhNTgE?%2wVKvS0 zz!5sz>VLVnoZ`Eii(H>d@<wkHU5^|<1Gj!(<l&?B><iXmXTcPvXGH*922OSzLMhP3 ziRAEo0p98l@OHlwc&W7J^Gm;Q`TC#O+K|p@dX6`7Jleo({jG?yDg)q_)Epx4WZ7`j z$rw-y{$5G(!I!s4%&u~*wUOaxTIgzTB%N^>(0_*N8F0!g_`Mb%$0oV*(_e%F9v+PB zqcswuKIq}%)w^t@HEl;4_~`UwSQe~r=C<>_>Pc}1vS}lt@YM;QOiXe0*Cm2MKN^^v z-C%Nd!&zU;Lu*rj58rG@1hh7YlwZ7d1z;P)r{7L<V``OGx*y=BC&DamWSE{?=ibsL zH-8f=1bi0nKOaRb<rudLJl0@#Io_0r0Vim_`2IGJMjLqN*(iRmkg*N*K`%$|526GH zyPY7kZH+c;#mM&Js?f%+E(T5yG;j5#((XnJ8o=IjQ_boEMTJ3#P*YK+QUFyRN%z{O z%L4G!!~{Ri%us9Ti$pkEJ_C7NoH>*8WPfC2M_)Pp6{lgo@q8uu-<9@P1)!>{NfE~W zR{-T0Ee)U`TGhx%NslV^w3z-K0HjC}FQ&Yd!M%VK)9)$Rb(8PfcIa$VQ_%zDzbFKV zZKIS*?ik8@Zva|=gZy{008HoK3seCcp~7=}jU@#n^DnCZ0Gqb8Kcv^WssI2000>D% JPDHLkV1f@g_M-p* diff --git a/lib/images/fileicons/32x32/ods.png b/lib/images/fileicons/32x32/ods.png index 90892f3d4a7f510609ec1d78f3868bb687c6137b..cf4a226ff601f342420df9305fb2d1cad3129655 100644 GIT binary patch delta 933 zcmV;W16us22)hT6B!7ZQL_t(|+P#;{YZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#3G6dMUm>Js5Q1GX$^=iYJ(4|wkT?`Xl+gNn3+r_lbOs+W?~h7o^vCi*cx+d z>Vc2TJkIZabLX~XnkLoUNLSZ`NOw2F(J1cCh=>>|2c6;YeSgkulBjvy*r?KV9qpk| z7v;{WS71IrIoH?3I1=MYX}FK;R(rb`HBG~vj*h4GuEYXfKCba(3dvL&sdT1p_<ru= zx*ZC^vTSgvs)~+qSYwI01vo67QKaEMDqeb&zkNeKZ&p{LGZIl)qAme`qKu--!hKZ% zE|w50QP~r`Ie!h7_^UuVqe4+NX?PX51_lTDHL!>nZ&vmM3xMWnt|1TsSBAn=Eh`O6 zI7JtKDt<to=g$I>ihx34T2^n^$YNZSU!Ophni`6x%L(XuPLNEet7Mc663G-oJ?{`7 z_=Jxm349tI$BEWwShA}F%l3w`=Ugu?hhAcst|gL5rhl3xC6F@=M(k`wRVhHj^S5Kz za=H&I5BFd-vF1n*)*bD|TH;LG0E&ei@`g_LioL+SOf^eNz{uwXYBmc!r{h{|7-vK8 z5qt4PywjnPG%kjRu=U(aJm?>VRWJnc*CS#x+IAkM$rI;9PTn--1h|3Ga}|4&LJB4Y z(a6V!L4U`EJnVuAi_mogC$B%pQhF7OcizRqZFjK${3BeuH^@13uPrA~uq>u3V$vi| z(L%|!1+HW9u^3Z|j_oavvEsme>}Yv{zQHk+{UTknVcV4)%PvX@P=hU~G+PLK2Q9bW zVAY|A*mV364qolYmFNfD>>0*pI_ABw`@&Q4Uw_YWs8>9IfOF&pibY4@IxZ%H63%zN z$NJ-a*l;5Li$1}|lW}Z17013yujqakuIqB&bjS&~jwi4w^g{R}wzTx)#>3CZnMI5$ zCLX`d;BI^j$J*ZEOlXKE_E7Rma6NAdoZ~pIoIuG71ear<(fdY$=lS?CQARlk1QX=| z-+w0pK1U;;_u>1~!Z|D`C*YUL4aM_Hk^(`wp_F`IRv>6J^$RSI#n9B++Gsd;W&)FI z>bdIq8rNnnFkQIJdFKBLFq7)P3rs=&6-1-|v<Ikat-#-Z6Vi9#to{{Her<thcehJF zo!OL^t5H-xSUJCzKr^w3SUHO<s`XtkmmV*&;Vjbp`<KyAUvjNVLZa#e00000NkvXX Hu0mjfb2Y;A delta 1042 zcmV+t1nv8~2d4;-B!BKnL_t(o!?l;qPh3?P#((F%!+dp0u|hLb)50J|QyN_eE`TC} zCdT;Hh;2f|XlzJKqwz0rYvRU_#7#HGL})RcPAYLxld6j@ns#H_g;t0{O$AIrU>H7T z=APr?&V^w<U}hZO<mBFa&OPTo&vTyho^uu3;fclLmr?2kqklDqYQg{tQ3~6(zdbcL z_!^KYw|6KOkDFS>{QSHbJ%2t9$Zj9?<lOs>ad`hRJ%duJa{k5;ZE5D~u`%8l8lu0i z@71yK@gIjypB^ZsL@qjUWfu`d1k19@E^Z$HCBo9uGU0HTz7r>U$1h&|GmmUh09&Dy zLPStXm0jHT0e=(_2nJYKSR@jO(A(V|{w5ZiDF&h>fNF~yKChS1{?L{ZPxtg3j>Y4% z`5-*S0Z3IIaQi&c*2d_C3#jb6&{{J*Gz8EHgn*?I08DlcRaF2)gv81!ogE!?c61c9 zYsci?(h8WJQ=pAOD!3XTxxPkXExEH@YYs=kV9c(|aDOYTEc@DBrK~(qFqa#t&23Pk zNM|(He_14a(9fX;AC@RauioX#%~^bP7VXXZIo4dyvrmQz_?(Xh{Q+lLR0Ke>$i+e_ z@K}o9?yd3p#0(3G6apx57;509o+$6X+(Ozm*xHb>4Q^6%$Er#Ju>?yLm##0cm`pP~ zaD>jbdVlV(r1<{U5;vw+d9$~PuE!3bf!n_?@#xWd_66&(vtaU<XGH*91x|GxLMhP3 zadP;90B`pPc&FbnUMj8m;_|Otx$zgaHl#C}p5sj%k2dgne=DM_$^f`2bsG_QvTC@? z$rw-y{z;_x@T=R*%q2P2+Q{&8Ep)XvlFm2^Xn#ZX3OMN%{9cPsVv}6``ENo24-ZH7 z(HaR+AM|kP+C4VXnzkbie0=5!EDP2*x3}}X@=0+8vdcz9;j0rqotWa<on?YSKN^^v z+hB5T!<k>pLu*rjkKSrW1hh7Yl%KqI1z;P)XWvb8b1KQn?uU5gsW2-W8K&pgxxc*0 zt$&#W0iVSOFGdkdIUl$37;7-Q9B)c^z%k92KiuW<Xany)AI0w#GPa>U=;i2xL6pE? zw_`%v)@Z|)M|LJxg*J9|9yl}5yj7P<yBjTN0DI3(H9Hn4Dl{QNO+%SV0aSS;-D{gJ z3&1lI6Z|wgORb|X65(w53gl=pGP2F&+<&=(y4?D`+NczO85t=U+<h)qpZ|W<d7$dK z&VneHea!)sQl@+Wd2Zc}QKjA}HhuvBDU!sCF(}1qFSf<T_vG!mtMA!%=xkF{(F5dv zNCb#&qm)`LXv(>709t^9{C}|sOy~X=s5~`7`RDc;M+#WY{ZaiFu7kTjv%jLn01E&B M07*qoM6N<$g6{74y8r+H diff --git a/lib/images/fileicons/32x32/odt.png b/lib/images/fileicons/32x32/odt.png index 22ec1fffbaf89d24787a6341f805476508547936..1eae19cc757b761b97fd5fd4a0edea1818e333c3 100644 GIT binary patch delta 927 zcmV;Q17Q552(<^0B!7HKL_t(|+U=LiYZFlvhl{v$(S`VL=t6WQ_(lXD8*wKp3O>Mv zih}q+#3G6dMUm>Js5Q1GX$^=iYJ(4|wkT?`Xl+gNn3+r_lbOs+W?~h7o^vBXf;PD| z-Fe{Sa%blJ=9@dWCDZa-&5iW*Jc#u6A{>q4-i(Ndk#f)-4u9Y0%od57$BoS@UDweW z3iVL#oJIxa^OJLZO-v#&nUse6xNdcJic!-v-0A9i+UQCw;N|0*Os0@brIAW!8iudu zKCauL5G>0Em#V7h3Wqh8Xjp*5(iue>?xW(RNBP?~<nv~ACAuRKg(Vsi;3vu`sw~`B z6`*2?>Ppa_;D60&utZ&fbVh}uYSQp3a19L)^J`!cG2X1~2^Ij|r*#^E2)Hs7rfOMf zSi&i~_*?M<@_qg;5UB_#6sBeMrj0DdMfr^hWT~mCXu6z$uIB{Fbh=7L$smzTA=LK{ z@u5%nIF`Vt@kyL$e}*Nyy0C0-7<<n3<8tUFM(JE4nSW%eSyBQy!(hbDR#cS&G(3Mh zfi0&8u<~#pRugNE^kLo6eyk<VbPS<b$RTg&bgkG6+{;w6qy&t7UZ7^P&~rMj#YS;9 z^d7MnU&K2d8B610cm!L|y~KmTaaaXI5Pv-;HluClVVZp7oXE+WrknsbFnX?HZ&FCX zq#zo3ZhsgwFXUktOjv}j8#sCWIhN9^SiJKt7H+$P{pTOy+Pz`Up=)h9fr4c*RS}bJ z;uI~ETwCBe7SF|)Qgm!@dyEwa?qf&W6ATPbpzIgvoDJKq<XCo5N`M+{L8aM3;5%r$ z^#-dBJ;bKtk8tqnAg)9|;AY<_Hq)H<!tM)C#eaW2$Dv;F00PdD7bq4Tf$O-K3Q9QN z{T}O&4`9QI_%8+o8&Afu=~Nv1F1@1bUAV5xeSbnuz;!%<O`#XUAF-uv5H}uvM$Rl^ zTru(ZZ3cJa6FAoK4rf9mbYl-CzXaFwY7se(<H`w?yg+a{_8I+e6nLJGA5&$NgFrA< z4u9}{D&S)@@^K%&|3^571?2?%Qn{&kUP)3QC^wao@5>4V&8BgI<*^uA+S{8A=gv&v zx2ic-_c+(T2~gF_)E=)l|1TgZ5RJ}!57ZZ^|C^A$3upDOfbypoi1zln^wXJ5dAXWJ z^@El3rxR!;77;6Fkww#e7tH08Y&eUw));;n{RFcLrXE{r?&JUf002ovPDHLkV1lXz B!V&-g delta 1039 zcmV+q1n~Q{2c!s)B!BBkL_t(o!^M}&Z(Bta#(#6J<5%4@l(@2s+QcCU)Kst_VUeUE zBp@Ngt0J^gL=cFo5~@J_1#FSn@Q~PagOEttpt@FxSQM$iqKm5CpmqTz5hO(=32K7# zPHf*97S}g+9NV!?DvmU|*E61(?|kPwXXYw$=7}c~mr&{jqklDqTFd|nQ3~6(zdbQ9 z@EVY*bap77NSNKS+1Xh$eC}KVkaC-P^4|T%IDY>zIfYWHdjE|f*4)I`BO|;qI7nY_ z@2exDqdyLwJlS80iF|b8(k>#12$p44+}t?;N`z!`fk-4m@3CV&qZcmxS>S9@0Gp<i zLPStXRovYF1AizW5DYLkH%~MgrKhVa@=ZKGRSZN)0JS#Pd|of1y`fDep6>2G7*8ao z3qg2_1CW|D;LdrZwUy!X=TX_b&{{JzI0(=Pgn(oT045tlRTBUaVQF!hj`nss+S|8{ zYe(eX(hQibA<)JkRXh!_vbM_7>dMw}tvMKtfH7s$aDUURtoOV3l#1%WwpgyGHgcdu zk<MtY{W4Evzn=pQJ}glTU%A8O8`JpeEZUm(a-^xAXP=A^@Hv|X{Q)N}ssbQc<YJ)| zcr3+lcUSp*Y>K(16apx5Jk-ET-7(&OxtX+Wu(cs$8{DGiu2mBQVhNTgE?%2sekILN z{~<bB>wmeonBx1JNv=;U^JY(&&d2tlfm^>PdGv5SdxCY?Sulm^Srq`6ffJnvPztnh zlpJ{=z}tNR-sy9Mmr85Cxb!QRum6Ru4e5-g`)HV>u?Al6YeAG%9RRna<`97=%Z8gy z#(+}r&r*sHzq-ZL%nC<Z8X0=7na;LG(iw*VZGWhp0jIoz-)r$ne4Hyk|4k_1;o;~W zTB0H9gB~tky~}!9(|V|Zk54^;Wx?7;?l|A6o)l*wn>Hc}U!Cyj*aTN^FAxm+(ZKl3 zI^#3zPJAs7E#Uwkz14;YXl)Rwym*xbU>n0{-%WC3Vuj;f5An)V5f;}oOwO)xZ()O* zQ-4bYd=?+P7(*=OY;F~JtihDI-jvXQBbqONxWnVI2Ht%>hTkh>Y(ss}%i#xuD1m`4 zM})Sm(S}WpY%Q(|ZS2}KaH_v)voDo)4_eRw_Kt^Yb}dj;DMEx@HD#&=P~(+!r(?Pz z0MCq#@zeA)yKTMEC}%2XAdidFr*od1J%78cuUvorSd}5jZJxhC{_kS_`9OBs_&&+4 zdi&o2c(x^NLHvqopp-T$NQd$Oq(~7jw)jpPmKra%zNg^SU4GBDLubO_q8G^jPzVs) zMk%$tZ7A=(0cZyH-^Y;81C#mR1*(9JP~p9Omn{V>=YOdF3&{ep1~Ntd7XSbN00>D% JPDHLkV1j9;_I&^V diff --git a/lib/images/fileicons/32x32/ogg.png b/lib/images/fileicons/32x32/ogg.png index f988fabc36bf4280d16f04ad51d8a33e1ba830a3..d7b0553f65b2da51a1c946e4f77df0fadb0c4344 100644 GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V4M`-6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8yIFXn3<WGo10r$SXf$GT3K1ySX<lJ0FjNIot?cs5ZOBb!6pYs zM@Kg|HxGAr4-XGdPfve;|M2ke$jHc~q@?WZ>>MD-1%dp6f`*2M#>U3(?(UwRp5ETx zsZ*y;n>KCw3=o((Yu22(bLY;Rw`l3o#Y>kiS-u?Tu+?kVu3iU3>(;DW2Xx`u4I8#? z-M(YTj$OO<95}H501zBJbmZvqQ>RZ~zH;T>{Rj6SJbdu*(ZffNA3c8Z_{r19Po6z_ z`s~TG=TCv?`HN>j@chMdAb9ce`OB9tp1*wY;^m8%uU>+{tCz3dynOxo6$rg~_4@7W zH$d?A&D*!{-hFuY9tb|X{{TcEKYaM~@#CjYA3uNk1Vmpx1JUO%U%q_(^6lG~@87<D z`Tq6Ww{Ks6eEa_W+xH*efBgLM6NrBO{Q2wG@85s^{{8pw|G)nrU>laT78oUhB|(0{ z3`{IM0wQ7tPU|;rJ^1wb>(6%Aj?V!`U8ARqV@SoV((~;>ha3bN9!e<RsNTS;{jG^t zI)SIml}Sr0VncVsqNMjLe&3U`H0f^BH=ccScfHX81D@H>X9#R83_O)88M=(+KTDC( z6@_f3Io>mbj~$r4zRp>_$-8WIig?7~4RI$HIebenx)JApApF3p#%k8$X5P5N0vbv6 z&8hm&8d+DLwc-+*&T}lW)LF55&%e2Q7a!&h=-8E#&~Cc_Q_i`w{CrzWx&GMQ+>;RA zocn6erkz_iFTb9&N9nW}U)jp&#Y?yE-n;c^#q=8m1rB>TOJik~4|j{|ck;3y51F(4 z{U!@ZM;Vrt>w|thvp->R)Ul)DKZ^!`tC}=xaOtB5JnVu=s}>#$k?oW?!(4kv_-1gE z#=<);i}&ojpA*1WAfP;Dc0|sueXHuM3JW@$tCN;_X3W|f9{cz~;9*|Ad8RfG9(Zzd zWqEJ8vW$(vLH)u{^MJgQ&KG9tF?jf$W$>5j$gFGrA#8E!5BG8Z0G-Zn|6NvENEZCc l$*t;R(^-D`*v2Q{q{Td6E?Ut#bp<H%c)I$ztaD0e0sua5)b;=X delta 939 zcmV;c162I=2DS%~8Gi-<0047(dh`GQ1AR$EK~z}7wU<w98$}exe>1!5#9kx0h(>mc zM3KrVQY)&22;3GMZk&jysAR#F3RQ)31&20;RIMtNKewD|YNHra=T3S;y*9nj6SX*0 zQPe8H)*IQ`9S+Ib>-Da)cFdDTyL$WHyl=ku=FP02D|)q7yMKoeA1K#FF^VWaAceqj zochP-&V2;z#Pv>BYc(}4+1S`nckbS;0di1K-S<AJ)b6_fe9}M&G5q?K;`L*%@ze4$ zpOi|xS15eAT&b*;&YyojiU~hD>CrBwL`sRKX|adr10bYiYwK^a*(`-KXU<kuR{jbs zHWWZdgb+w65r0C&9-cjb0FtRB&z?Oem&<WBpU?hWtv13yL;@IfcruYlkbWuMVdCA> zr;k)?wWmQ4dN=?%QVn=MZyZ0)opKqmw=Z1R<<n9L;1wVZY()T2dpQ)50NU+#C*R#P zd4LuF{$nvaGsEo6OrNj2TjYso22^hfT&0kKXJR73<9|OMqw5Bb9z8@#$@;^+=lVLW zR*PTjbzH~o`nfJga#>Jn;5O`twzvAQ=j23^ufMv?(W9?onkJ@cGBq`YX_`z=Pg5?J zNlqkbHedMsWUM~Wm&;IxgpRHo6pKYH%fhlOHa9nEG#c2py<6EvpoRoP0+0g$XgW$M zDwPT+PJf=naU9+}bqb{vb8~Zie&GU|&<4(NAO@rqv|26dtE=Hfy0e3(^)fJ!(V<hI z>o|@RY2)7=9i7mI1K_n(Pt25wVHkLG`rGb<-yiV9kKbe4HknKY!!Xc%-^aqh+S+e? zcl$Q>woN8;h(sdMvH9lPYs}BjW11$mZBwt;v46L>V>hyJ1_Ik=VPT;!h-c%Sph_uR z*QMQVlboES-D-~yKv)pZ=IYgJ+`4s>X0u5umEy{kg}yn|fa^^}4fGbx_3Mk=xX}%= zxVYG{$-k2)|I57|`{s-7o;h6Q9IOW3nthw<N{vxPFk}%9zC?`xKn)9E#4G83$8;<J z#edZz_n+Qp+)~IDxX7ir4EVVCtjmU25}|tkw<!IPDd+|X1{F)9PakDJavz9&4UfUj zet-^C?_x=W28hz{&p@DBJ-UOd3F@QlL$<?U0Krpm5QW3)qvqFpI~LX@=gaiP!(W76 zAP>+8kd8nIto|<9l?-qUc$xoCo&!((|0D$>z(zWFZy&R?0L%ZQ`X6c}hksVdx_JNq N002ovPDHLkV1k}?&fEY1 diff --git a/lib/images/fileicons/32x32/ogv.png b/lib/images/fileicons/32x32/ogv.png index 1083455fb401b621f12d818836b249c10ca772f9..4fdedbaeef530d683a093eef4717e1699d941d92 100644 GIT binary patch delta 1085 zcmV-D1j75H3DO9VB!3x6L_t(|0mYZ=Pn%^J#);WSKkS3?FPLA38OV9Gbl8B1o8y4S zxC2g6KL{qv4vTCHV{9@H#)!*w*tri(#FidPjc$IN!Z0pi++5t;G7gj;ptSVd>g4jd zV)CSKGT!thC0@yuw=d6qU(fHo-=`$a%g_d!!||QX>4ep8$A9peYy+<%2NtV!gqe97 z^e7v1CBNT~!J#3C$bBSRfXDdc)cvVxOij;dHv6bcgM*;FUN62jo3Ca&iN`rUYI<fC zGqZD;opWbx*0YcLYG??d&@w2G#{;v~>Lo<h01TUR&(pYfe+pK+1Lb8Ec<JTcICZ)g z4yOyZ|GbN7QGYijHf7D7yZ3PGkK3Ru77LQ;Gy;JoISGr+HcyDG0Qf}ic@NFcIN5Uw zX0rv<jT<+i(^a9hbsxIAy3u>)J&d@%B>-Oo0Px*|N~P1Bggg`Cj4etCHGny{2lF29 zfA;#I*XeQe=rNo)(G8=q7T;Jbc(Ag9J7Nm;_1n?@R(}V	Dj%+n|2AejR)b1mSgn zX96Gq#6BBU0BoS#Vq=fkm?p&KD?i}<4?e`MUAwV)b3U4zThJ+hN=wRd{tFWl$rOIO zc}uMCK_nc-YT^TOpVa|uHc)(Oug}k`fbqb$uz)}?h)^VqNIZs#$w^!=T|h^B2kPpc zMN7*ID1Rv_!~XpT1jz4V{a4i1)X5w^1jYQU0DL~b^inW{a3qRoERI+_fp{W`WGaon z{(gXeRsf2de1G{0`aV62y{)gnV5r9MuoW`L>(>V0_b*5vKi-A1vI=b7szYU^9u*ap zC@-%BKkM}d9!OyWs;iBtsd)yqwRPCG&B$JbHGcstEG|kH6_tQ;I7Toqa0$_9Y?XT# zcux_My&2X9uowtP7Zf}N>c^i(MX(Ng_O^nrV|45qry}pUURqj?iHS)R7ndqB0!vGp z0N5a1C;-N<jpOR*7*D<!@6+f$*@Ln1pV4_t-eXkM96Edi{C`ngRHDcT2A8z~1VbTd zPJh5;GNJyt9cXB3K~wXKXlQK4&W0v5X52r&vk}{OG~nWw7g1PPq{s*@hcy9+hGpq3 zTMBUQv-8;ZY8zf_djoB+zxhyejWy>!?`Mx9Lo+})9Ffk?e-fYcoyCEJhjH-G5jC@h zwd`T9!kPf0k(l(RO;6yXkNePbx)(j~o_|p@Ygo%3MMfkN)dmocC8ayx>4dIQ2ZO!} zhALIFhPCWbWbmu12_O+q<<zlQTq8g-l~czP39SIhTswOJSG5cMdHuOIbJqrtq1FB_ z*B(-{W&pK7c~$y<0LYX&<oZq^hX8i_TF!t9kP?9TssQ|5xSrnv=BonOozAGu;Wi*C z$CWF~AFRw*1K22BC~RCu7pna(*uX^+uA`aHeWd;cKoswyXXjcT00000NkvXXu0mjf D?aT_i delta 1167 zcmV;A1aSM(2%`y*B!6m2L_t(o!?l-xXj4}d$3OSJ*V?)aG_AAopLNthwK#CJ8`9cF z_uu|nF;ysbFg60px{6~?7-fITaGfwkNB^4J{82HBS`b==4P;CvNm{MK){3UxrX8!O zt<~i9-Mc?xezi%OwA~jTyz^e}$@iS|J?GvhNW%2_{pS(lZGWv4nuS0E0x1NxZC}{# z@oWQT@?Gul`TcsSFg`x6Pn<gC2V|~4HB;_Ow2sAn=WZAwMB(vk%`25J^TWxL>}+ji ztK0p~$)28{T6gStD_bT~*~xg?rIbi1F$^Q`E4~ImNXf&8kEp1qz`c2MW6#;MW3z(I zNFV_r1X4<b5Pw81i{GwYqh*_iPxgJv@#EhS2n3ma`V^%#wo*hbi)WDtPo}2<C^igA zmX|Uy@c@_0MPq$^#TlP3oQZ^)jX=Bv#YIKj92#Qp$9vhny@eY$hS;@hH&s<tR903} zQd&YyO%2uS*0H>_6adS%DJd>Syy!?|qN$-_jnD7Dw|}j<*_B$3ECghNfMJ?k>gyx& z>>0Oi-QvoXUuf@W$K&yEd*n8II`;6_*q;Of0Ve*P;K-4$d3EhtPMkiCc-|LEDcV|F z0m=af@GuJj{k(?B3}~(Sth1Br*RL};Fu?u$e{<$^4}$}PT<*Wj``!<Dx2=ugk=uN6 z-~f}4r+=uct);HEc1~a_Ci3F!CD7?5P+FtWY<ztqb#K&Rm@&Z(|NaM|K#<8d>+t)0 zT<Ys193G{ip@BQ2VP-6g{rmRw?f1u#LZFmljjIB*CNB*b@$?Hp(XvuZ(@cm`2*LXG zHEh`M8t)kfQo#N3e+Y#_3=a?U<-vo5?}lk_|9>#WkIZWhq=_(&Lth=DzrP>DFk)Fz z3a!B~Vr>_j9fG1F6Vo)Glaw?zHl{eFKmszk;^M`N1OnGMckTj{laFa`ZpPtwA%oq^ z<m4mT+IF&OQ+=9`T#&iiP{d|B0A=N696kCCyLRtp>d7>#URuSmV@bQL+{xj?M+gQ( zSbvt4<|96!7DPY*SAV^V7J@BX-HeTn(bd(3kP>%_Ee(SvcM~HcBcOFU0bvwYf>g#D z7`i#ckN)!%FI$GQtejA2fM76$lrmul0zs70tgo)dRw~U$u6<=*5o)c7S~ja!uTFGA zwv9+B#nY&TQg+^(S>_C+w2f`sSeAv;>3^Kpsn!}R8pXElG#`s15Q#*Xu@x&;u7vrb z(wZ4t5s5_7eCQm<n=Begil)Wm!GHD)hLkz`IW8DmDOx<9G#^Ua3)etr=jSXIf&xW| zWJw`(p#&CqB+W{okT&ey(#yS{@3GWyxn0nncLtL1YH#AcTXbi99)IW6-Z{TXwSNmJ zL1qVWJ0HjSVo`GQYH#97%|gD>FPcEN=w5Ut%vo~HSl8JanEiY{EoAdQhd`!%J6nXg zBG2|NlYcXPVlicP*be7Mt1=!S7cmI1gpEK<&7G1-tN<zjC;uNF0C!Wr3&gB!IA)*Q hml#oCD)r0gKaZ0Xg#mQaqW}N^00>D%PDHLkV1hudK!pGR diff --git a/lib/images/fileicons/32x32/pas.png b/lib/images/fileicons/32x32/pas.png index c2c05d2d1fbae8e8779efa364f69a2cd247d6b88..8d2999e98071d029876165fa032a12ab7b841cdd 100644 GIT binary patch literal 945 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*zWRlaSW+o%<VgvB^)Tyw!iwFZ^qRwUY9#lly+Tk6*SMg!oH!)&cpof zc`NI1tsh)X+=arwI3D?J5;IZa5b}vi&Mtm$DKuwhOxh=2nKtA5bN=%y%swA-(%||1 z`JuBJ-o0d=b*H8-ZL7jDb$_>A#&_&%e!9Qr_9}4dwMyAm{NdO3X-p58v{fGI`Iqs> zo!u(ta)P&D@6B@$yM@=XygwPRt$)ta<G=I04+{97`y=N)DS$IB>4#LZ#{9w?y@`dk z+BcV;etB=sq;BQNya-OF8(%aseZF1aHh%_#?n4_}nd3*lTt9ZQ(!0Q+tNY^H_mdxM z&o)$Jw-dLSpmXonx6kkTXU1%La&W7XPTh_Pc6p^W*L@CbXZ?D-R`C6iYtwt8CmY-q zcy6^(wZh?Ut=F8Y4Q(H8_O5(cv$N4m=@<7>w_i=BEph#G+*&TW89hA9aqCU&TGj*x z5rY+Ktd%Z5w@O?QmU8;0fAs(NZ>*oD*f^bt44vS`@sqJ@O}u4W|2j?GBmCZu{`WVE gT@G@H=+^qcANPM=?zaV!RiKRL>FVdQ&MBb@0Jn$h-~a#s delta 965 zcmV;$13LV%2hazQ8Gi-<0047(dh`GQ1D8oeK~z}7wU^It6Gs%sKQp`DIGcr1oVGTX zLYs2TrRKyBn^p*^7b1a*WVP2OQX}rU<S$6Wr4=gY5=ez*1E(s7(t9ha9IHwNH4;iC zCw6cWoZXq}!9TDaud{Z-lSX6Dym|Y5-}hr@1#iU87YdIM;(rUHHHKlt00JolN~y<R z-nelc2%?_$@`ZvqDp_A&H}~$}F95RNL+!TTabxO!|MUC>LWsfrH-<B(Kjf#SCBDk# z_$-^9T3TNIHFxvo=V45=qmxbArIbi1u`Da{Xr2KOQc^BgNG6kHFJ8Q~{P5wwUC#Cd z&=Mg8Qc8pnk$*>1A3y-3?kJ_w2B}nvOXtrgf6nJ$^a2qIVA#==5y!zh=Czo}T)1#5 zUnson24VLGAcx9<=9y0>Cb;+D0isbCT5G<}<p9P34=9HKFpU_Bp#VrJd9_vLTsqCU zbb8;ut|z$@&VcC*fi?yy1gop7yxQ7AV~~gg=VQl@Gk-Zb**dSa=2R*P#`G=2mRJq% zn{%aHCY#OR`~HC}#9}d?KK%{RVMj*l1N&mxqE2gSwHmXtvuLd`#-O!sjqU9nw1!0D zBzNxofY!RxhG0MdvI~IG1VMn-n)&&8R#sM6TU(=6t5GU#VvK|1jIg^~t?L=R&qiq8 zL@7h9RDTP=!omWXOon7K$;L*7*RK_>JBI6eI8MB-r_{b4aVP+RQuw})Qi_?G8H&Xs z&z}9sty|x6`ErJM+#?>Z1Mq#Hpc{a&1`9zqV%1<E2m%%t7m3AUXl-%(_V>i&9;2i0 zVB0ZlJ4O%$D5W}V^egE|NvPTwkWx~s`FP&DIDbwY+jg++Sc~eWUerF)n}M#f3H-YE zV`F1fDiv(oLCOkyd)r89Bc%WYBO_LwDL>d}<4^#0cXkj$FgG_BsU7d`>~z>LeXchl zIq)WFN~IE(W%KyalgKT3e0-eE%`%BZqEW_b_#ALumuuIiP+CO>U`Y$tb=zLg114d6 zaeum=i|e@@MuZs@z>rtcgI?2-08D@Pgg^dz$x+LvXH#4`6Pba!{Ql!N9skqQcYE%I zt#|JY5Q6ZBrl;?==7ZLU?gL>g^z*d2AEtjK3=9*F!9p;^Juqs{gxPOjc|Tt)uK)74 zd}~#3bwYD}YU%^vzn%;Ts9yb8c~?GquRiAm@(_&xDHH-x?Z?0g;52ZOw<jCG^Y-ro n(UlKg_r3jyWe=#ff2jTs`XtD?6r&P_00000NkvXXu0mjfEDqEF diff --git a/lib/images/fileicons/32x32/pdf.png b/lib/images/fileicons/32x32/pdf.png index 0efa0dc3115f9eea5950bf2713a0d4242c54d5a6..09ae62e6ab3063f8de6093a12f56d01a581cfdae 100644 GIT binary patch delta 981 zcmV;`11kKq2<r!sB!99=L_t(|0kxOQiyT!H#)D+(V!+_irS2s92bgGfW-%I9K}20R zpaxwi(YP2;HxUQLO%MVK#<7{$-P1<HC_Ye^W+lQH9n;f~di3pjcRi}Q=ka+z3JRyG z?(~h*2YwWDZk=;~b*hT#I`W@5T3cVgUTZW^t=IA89Z};EvVRY*R;ypJ=Mjatn}vrJ zLI|u@D(kZEU9$=t<CQa-+bwLj+RCtwab<NC4AV66#oF30vrgh(j*ro5chK&1(dlY4 z!}D3k_`Fhq=lNh5hJm$e)uhDC0&LdRbY)lvfTKq?9KyDpViH$tHJuVO3Gj+E-6(|{ zZQW|(Psz>S|9`+%v&kISSXT%DphPhVAp{>zixRgL=xPRZ!z_gxZF19B-$M753)qw* zy#HLI2;;XKH^AFK5gtFwp9u;;?z1pOpazC!m@v#<DSXiWYPX@izKre0b^I;=zSZ0Y z*C;UvLQD!?AorOpP|F2$vj?*$#*Y-kKXS7zO@nd%ZGVW<XR)Ol%u!%s9mN>zKa)VO zCrZ(EBY)+1&o6y~{v(TM3c(ySO)sw_rce_QqF)NHq}}bJZJN+Fet>my5iQqY4qaWJ zR7cbV`j%CS+3V$RgJq+)d=c)k2cU1>gqG(a`u$0@Y66yRmtqP5gG3>m2TwwLy#f32 zvoNATo`07jJg1k76m_=as0pxO95xbt3&Qi!zkCJuGcQ7nhOl0K1J=1WA<`5g2q1jo zL&zFo<pQqjs|mQCcL2wAa}gfprp|p2!ESY6XDMv#!+H1=oJXI8{m%P2%NJpP_Y>^E zXB|90P!sTczu<sO9Krpx0_W5jI3HYsd*NNUFMpkf`{BoMuWi6R^BkOe?uYZjYj93K z4L6Bdr!Ei#gM$o01X%{Z)qyMTy?^an1bv&ioHRv{NJb+Bt_T0eU*UiMGlDoNdMF8m zgD5AIBniU(J^0J-!F%d?1Rq^SxVwWejuA#YXAI`jG_MQuK7&E1CJ;v{K_Z(ZdwcMn zJ%5Km{TsL^7Lfo*(tItBB@s!dK@l~9B+dxZEJFrx?C?%Jfnky$+udPa3h<oSh@x0g zAk7H>onmKyAH$B0T>zuKT?~gKq+C}ZP7+mtw18JjirgJCv%t#A3YM0Z4jcAW7Z?lG zJmY^0@L0f5$<J{DB?9H=AMOOmd?!$^Pfiz5m`sVl?SB*UyKtUw0sBuCs5crRe>&5Y z<2odY4_5Y{Ca@qmE_rN@9G~`GaFmNQoFfb4Uq=4|Ll3qrmZfGy00000NkvXXu0mjf D_0Pzr delta 1055 zcmV+)1mOGY2eb%~B!Bx!L_t(o!?l-BY!p=-$3MT{o86_bGz5)lNuVqR65~OmMF_Nr z5ThY6F^ZB@IT$tE<l=#&Mxz(&zj)cG(F3K_P!<e{-i#jfV!}a8NH0J%(t>Tk7VK_! z-p|8yx4UI$ouT+mUS{5#`MvqR@9)ohBP=2qE0xY5vfsSNxPKEEAgBmo7=H7@fdkJ0 z)uh(>u~NzI7A7YrZFpp)1ZcaD1`YQs%%XK)ymT26NxyzG3LASkcKkRm4Gyw*&z@(F zkB)vnc<|u9I3*g{X-#%jMOAUmC2lnv08!=o^&50`b+Kn)VE5?BlfN%nY)b-lhzP2R zh$L>c_W=axSby2U)YLTH-QDcowX5svv9ZgoNW>C|YXEcQGPC6}H>akVtCX8;YRF}? z<X7kGN<7xzzizBly0Vl+(3*g@je&WA)gONjX3QLUji6d3o6Xj3wrt+a@QD-1LSA_9 zIW#y3a4(PtuE!9t1s_T*fpWQwa}LP_%=d36P{n&+cYnjo-?MD%>tkDA-)*)&3i52c z3#{1%ws2p&dNaHk>Kv+$m7g6$vf0I&A;QgnZt>^DBomWY7q3?)YH5-z2%QMh;wol1 zRRRRRaXm6~3l}(?Dn1Nj?VM<$I?xn^w0?j(1*cHhfGB7tKq`t!J3CSm(AE}ef-?s} zhT!L4aDV47keRrKtz845hjt`lkSYxkK?8?&<j9=<j`=S?BKO8yXnrLcI706Uy{`pZ zQ;k?Q0RR=nWpe~0r?Cg`hbQ-9g$-nmzKiSZ#C3F_xfM}hs^S-7PQ|5j!BWPxJ;DVF zt2&UkKfr!GgYzCfeGhr$33UG;_V~`opc=xiM}J|*!%z)lU79Ee&1_MHYzBr;VOt8w zsk6wnDY!8Mhn|Pt9^|W0?1!J=*{9)?FOY%l)MZGeKx5iS6#Zl~*u+)*heg~wN0A+U z(3xM%Zv&p%2eUV^bH9T3hzY1$1_2>TxfMCWH{Zv8yMTM;MRfl@C|96brRn4nhLK7; zw|_;XLJy)?o8yhPj)ADsIj6W>j_S)t(1#wt{+cH9`m4D4Doz9yU1)Bx;m{D&OVn4_ zHZ|MEfT$p<*tzqBm;PYYw<B0s#Y8ZRsvHT@UPwuxri+N+%vg1H7`J{M-iJ{2QAw9% z9|xjXNJU`5XWkoDsla{r5YEkUr%2_3p?{$v#>dCG+t|8wD?NomQUxLui^Zn?;lqbh zjW<3^>4Mf16pO`rKgoC!{3n6NRVA4`?fa<|NP^`lkYX=SyVAJ%gLb=M+{9_e<L1AO zfWT~_w>RIjX;aGs<T45Y8l4Yk+nv_d02_g|{C}7RE;ara$PzX3OV90h85JTG>KH$& Z{{pUMrX@~t#4G>+002ovPDHLkV1fy50l5GG diff --git a/lib/images/fileicons/32x32/php.png b/lib/images/fileicons/32x32/php.png index 8f3c84e32bed483f4de91a1a3299aa17fdf57f1c..1f4cabf6f491c0401f7745b6c2aea78e61c31b84 100644 GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*q-R=;uuoFnA?9oOE^%ZeSh&g-!-|)Y69X(nvah83YzCF;ZG2~)1iOS z_j_#m^K;V$N*=rY=6K|{Nz8<cE67J_t>Mmk9=W-a>CdF!6<B<K{O6qLg>L@fMNVSh zizXVd+<9F4s-|+&iLlBGXRO^@D_&ncc=2-a?1c)P>-V|XTHUt16DF*4BD+)k$)%U? z9!{Iq^pF2U!nWco!M7O;`nWp(bv~*1|De)HadDqkdU;Od)A<ife)KE;*nj`Xd$#?% z=4mMHD*3syobA}Pi0iT%tgN5Ds4Nrsy#7x81kntR(>v@rSHJw;D}TBxVd|RBMALn* zo_#+3ms_!`W4&L2!<mQAmgjHZf3C#Zo&8eBiHB#?YHq*Yk#~-3ou-Pp{3@%9clM>c znEUHxTUUvbbAiL8-4Y%}6S5Cg&kVTmv!FSoTVkCMt5rymuLRGEpzaeU7rQ>>_;6Q; z`xv+#FkGB`?ReH=fgi<J*LWwU)ULj*e&c?g_Z2_sYvM2Le%<-km90NbE$3c$C)=yI o`LiF)z2McyXrnSEEQqO&nT>7oi{s3(o}m2a>FVdQ&MBb@0M~@|W&i*H delta 963 zcmV;!13dh=2hInO8Gi-<0047(dh`GQ1C>ccK~z}7wU^It8$}eyKQp`DIGb&OI)L2^ zEd-9a;GX)!E~u)+rIA`u$$~45)TsAd@)v~k0;=Fl(+1VD+n!Jklsl*>M}$NxB2__h zVyBK%XLn{e_(%OaYsY=kXlHldy!pQGdvAUSUW=X0<sKr$7k@@;45Nqv1X2i;Qjfm8 zcI_$<gdOc=b2&3E+1lDNckkWH0dml!c1u5MOwI3qo;^nhF}(lAaQf5-{It5tSD6f- zrPFh(Yiqw|u3!JW9}}(UWP^4oB~nT(%L?5ZV*rGd6pJO|@i^)8=P#^1c<^tBvpoSc zMF@eE5+OwB)_>3k5Wu86NujV!B9Y+2*|YJVv)SjpK=cJLYHP@Z<KP|hnoOk5ojaM$ z<z94xuzLfLBjrG2%*Qh`+`WGvQLhWFHD6~k0Mmd66#D=$^%#ng07xl$xm)H;GRc`_ zvg^ODCArg|0n;7=Z46QfHa0eRxx0(TAQ6W?j~zeG?0@WRbG+7?lZiMOGq4PsV%5EG zJWItQ>2wO;_YY+u5{dBS$!~}@J2KQd&=t!jby`!cR#{kBKx>UL2Ca3o?d?_28e*{% z+`02TTI+Tjf*}FO4gf|I1OZxWmX?-SUtec)bCYVdN};fWF%FJ1!Tx@^re}1QjlOvk zrVO=GO@9E(%gdxvDdO=s+uJ2xy;8XD6t3&xIMJG(QeA7rkpKir;rl*HDdy+r$>;Mt zeflT2Zr$YK#T3z~M>JXk;QKy7Cjem$7lKa2s?I<V1gxyA5Q#+4+T!-@?}$b{CMVy* zwj<bfgdhk|O10S-RMMf6P_-~1rKDQ*@w|6%oPQ{`?O@xHCe;nSu<J-~20F?n@N3>r zO-)fMm9T9GDN7t2>>;I%lmZY;OjtFh{GiLmkpS#hDhMH1TwDyb9Pd{uZ8pq+<4vC& zc%3wbLIKONdGzpc=p}i2dYYY`BC%MkUdC$l9B^HiD_7=FT7?E+NekC?TejyRld!co zU4PHT^<0i3!VC*w#3Sip+jJ-ZH@<z$AAh}I-16xs2`-%u%|K0l|KXdq_vDQqo8KG# z*7tt;LziJcBb^hEL;p|!tzLB+A4Y#H3=Hygm`VHZh9jH<hb)KgPc8lTvibbhFMrE7 zRt1-5G*{>5-Ut5c83F<2%O5H4(ueQ%JUl=i#d9eX0#P2sz}vtn;KUmY!Zz@%^<E%4 l64L8Dw~tv4fO6|a^?wOMzqi@Ba<c#c002ovPDHLkV1n@=&aMCe diff --git a/lib/images/fileicons/32x32/pl.png b/lib/images/fileicons/32x32/pl.png index 88aa2723fe5b11f29dbb997c7412516e8be9695c..038e9f3a72fd789e18f6c01031b25f04e852ce28 100644 GIT binary patch literal 936 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzT6aSW+o%suCrE$k?A;N$;2Gh4#e-f%eLt+|NZR^;O&*S`#57x^!F zzqfq;%#(G0(*wsnEp;p()hxNC1X(!M)^6N7vvNI4nfc*&|HQu;e15!_Q(?A#$VsE; z_VcEyGv4{^er5OHPiM3gj*0t+?J~b*U-Q@B`@xh4En1}~YMwuM8?Vdofa$f$qji4e z{P%RWFeyD@ipk$s{Nt62_XFF=Q{N_T{!;S4mXYV<6J5CtTAZpMgbsg~aQ^6fD39m# z?3>EFODyk32b5ImtQNlJz%W}@wfE$|+uw|Z7cic?{Ma+*+`pVTbIco<gJSyL|C=Kh zf4j%f@`L3E?Szl#`tN_QKl`*xm4DsFLywkwzx*6_y!<RnjqnQlcik20*Z!T@VamIi zw{V@X^a18qazRh7G+#XsZoY8U=eJ@}(HG;jLNAH0VXLzJl%?I1HmR{ZIqKH#xQ0!N z1_>4l`s_R>*4;iJu<7?V&Mi!h*DQmYCh(p(-tx)3s>nH0r7ncQ_OC<sGFFESU(p>5 Y6E98qlVb3w5tQFNUHx3vIVCg!0NOC>x&QzG delta 940 zcmV;d15^B{2e${18Gi-<0047(dh`GQ1Aa+FK~z}7wU^Cr6Gs@ve>1z@IGcqQoJuyA zLJK|SQgh<NrWLBx3rIypvf68j)QEd7`3ur;X@%M|1cI;};FtsS-ij*6UJ7a?l!FsH zI1bM4%=F+7)}L8_^pQq8_RhTXywAMvJF|lKu=9n&6NLEMXn&1i6c|7tg+M9w^xGRZ zz5#-$v%P$wU?zp_?QL`a!Gi)I2Q6xc`f+3Ge*g38HA0Bt{Wpd)r$6T2>MGyma(t1^ zUSC~Xd!D;_^UHopgxSfa>{3dklvtJ(xi#ki2q`I*$|RFXvX?GhUVHrb-wtPc5@<mP zfs_&<MC8^S4}TzlX?L1pafehY#pMeZl8^HF*S$#eB`|7hV#;ywj(II5G8ZqN$`=Z6 zI!V~Q3CNLRpgHH<*|Xe#_z=;^3#~QZ=W+nEfCrTN5HO8B6eAIkQu21M!ufQX^XYWg zdtDE5r@sQGeG9ZPNFmtV+~n=v9vXv09QizU{5W%SbAPS*T5C?Fl3>ihG;G0Yc;9@M zOC_?|48HFlsX{Ck<Hd{L5p8y4q&m>Gmo4eErdF%5u&{vE8e<Gv>sH&}uc9?15+}KP z_ZPI*?KT8M5|AAPj3x*IwAL&wEwQn&!PeFmwOWm0aTjA89A}DygGzmz(OowB#!Zwo z)JnAoEPpRAlgVUACX?*!lzI0~;kq-pu7~5q>*JK_su5!m2$aJ2eUwtn&(E{IzRt^+ ze{uWvk6gKuAs+XL$Lj=q-zVrKAgtlGpp&s`C=dhzD=RC+VllL~xO3-c;&G4Z=?}2& z7`7cF2m+K+Z8ip_bfh3uAqAwA)M`GScLK+WV}IKYwjFCp-5eLSj`UWbBW(h|?)}Wn z4CQhe+jfw$%;DiaQrbu<0KwFhRaeRnx@?R^;GkMX2*KjwVx)3>P_4GvFaxePePZB! z&=iYBEX(HUlV_1j^6cy^ySpV4i9{of)#x$cx-QqQT}NpZnSdoNT-Oa9&qD@bI5}O< z#eel&#(^-y5*YDHdeku;iNLL&p7H13Z<sVb|18DTGm#bO#vi}_(Dplh>$leb&HgB` zhZ!7RXxxQIA`n(#5{r+ez@%VzgzHE~A}iCwzCGv^jN<(;s`RqoMnFL2t5218^^=c! zULeOP1W2I}h)UP1Q2#^VG;ost4?DoC@FjPF=upG!ythvnhd?F#q52=9JEr}lQz9_{ O0000<MNUMnLSTZ4zSG(O diff --git a/lib/images/fileicons/32x32/png.png b/lib/images/fileicons/32x32/png.png index 0ecd2969101d7adec9a0f85c80f22372743c77e9..e3ea1c3a046f456b335cfe718f7269f2217cadc9 100644 GIT binary patch delta 854 zcmV-c1F8JI2ki!sB!4tXL_t(|+P#<UOH*+a$0d5%iv<!C5mCV?qC|QtiM{DB=+6jx zp+WXQMFlny%EwY%mX7J}wgx^`1e$Nsf)Xt)ANF|frqj(m`0(o6IoG-R&D{2jtpgv< z&gFN`?{j~<gWZxpV!z^W^eav$Y<4^P{s~3TGzYyl+iRX#B7YGFxUo<X3Wd;Zu{db% zzI+8r`OY~O7Ts8Md!*q$j+fotde$@zJyz>Tz9(_0FD2mic;WH-;Pv_QhSzf+$195k zkw_FAs;a_jvuP}mw*U|G`2*5$9|a#hHn+AA4zHw7qE}G@ERmN0-;qC{%EEnV0S=bn zlSn-i{BSO_M1M{JpI=2l)uiE5;258n;IDy2^xTztCP)CZk0FbI0uDb7Q?+24<YYB4 zQ3iZ6qGkfPMcm2YHc|T#aJjK(@D1`ldkZMr0s-1o3x?7eBWHjQ7YHNne*qp7rX40z zeBHkO=(8>(^z-R((ER)ag29jg295zkCow;E1NGCu(|;+TahmuBG>^5Q!*!IiUO$;4 zk;#l1T1ZYH6j~Cf`wleB(#A7DD}8>(P~AR963THjI?i&|>$Vw^nBFx*PGD(yS)hf6 zcKiT333H0Bc@lba9VY8()c2Kh)@$=TNzU$?At$gL4hxun0zEX?vcm$<>jmz09>jxg zBOY4LaevlptA_;V#2Mk06)6F35U?x)HaDQ8uzLWfA86>mhT7+cakKLTXT5g#!Rv+o z)zzq+z-lBSz(WUAU{L$bP!Jdn1MlKM`;}78dObkb9RYDhB)TRgKn+oW`uF8%8mU0@ z=tY5+u`0BVUq(aa5zczuG+M#yg??#)wY8YQU4Q3!)b&@uG*BrrNDNoO^!5^Gu6Z4= z&zvDA5RWAUuG05gZ9avX7slOmrQw>_@p_>@7K_UXBoiA2B_2=639KhK3rZr9loZ(5 zEGWtKby<OpLX*FM%T<ZCwvs}_bL9mxLby&@sI&A)3*_2pPa%r`b^_UQQBEM&k^gnQ zyib7LE+HWO4CMY#NbiM3{T0ys>;iVDGp;xsY|6(~DAF&iJU^R&fhZ%Yibz?u_k#U| gfenj@A@j}X7r04#N_mT%T>t<807*qoM6N<$g62MzRsaA1 delta 935 zcmV;Y16cg+2E7N6B!7fSL_t(o!?l;+iyKuG$3N%JWG2ZbT8k}7p}2+mppUxJhyF0? zlY$_$SPTjUq3DD9Xu&@~irD88@Xc<!(h#)xB&dIYucC;=U8F48Wt(-)@66omLw=Z< zor(Fe9=K$3=bm%E=X=gQ_m1$d*yT#)YeZf%T4Pv53?L{Ge1G5n=FKZtE(6}I+L>~t zVvb5`wVJte_ihDH)12B9&q-qjasRQog^0`_zcHLyeTpyF*Lk~G<mE!)jrEO<ABtD6 zz7og8Bsw*sT`7f93d^!)9wQw9QHuTjzsTis6fR!8v~mCbpP^tQ0gOdNP)Z>pGmp`F z00C0z6nlG*$baYaTsnU~_f@&P6$K&|z@lR$uH%r&X2wjsc;UjSa;35z24P17Pz%+- zNayLZXSs9l9x~h)T5H}Z76G0FGQfTe05i;CFq+4AKPTP&4y4V;=2zSZ>I~p(IOoCZ zYiqo)wsr`h9u&C~&wvT0KpTS+Azl9#R2qP67Lvm}2Y-@iz!>;>4}RK(_fPMP^|jWV z%I5|PW~l*71ey4y*??x9s$3?WfTRt{1SB0uAKd1N&C{g+zD>%36&JED0ewr<Onu-` zE=Tg&nJp3uYy&H1h+2WNpi{d^TOEViO_I6y@IAl}*_cvJ(YruNU}Oaz6UZn?THsg% z7TVPtbbq`QUC*K8rD#`g;3mMa58IdzKxk{FEJ#@c=dK0rFa`C8CAyxb>v?oNP5ohs zls#A%?h#7?aP2|Vqv2ZMD9E0?Myqu|tJ9#>Iv{)U+W36{fLQa@Kp1f{0j`2TS_Pgx zcMHqC#pb&wSp8xbzssNoBxqw=PnoF*tG_)@(tlb(Le(tFLL7(oj>GT2yo%}d(7I2@ zYf^ab`<a?oGy@?=jRPM)0V*7cXiz=)<QW?E9%zl$(C+((Y%B#}Z+8bb(L|zhDZxf& zj8C`U4A?MJt~W6?5OnnETUC}3ZT#hGU|A97EJ74V3&6|^V8JWte;v~^0eJA>CAPPJ z<bS9opDzF(%*wz(u3rx_Q7XxJe)JsvAEz^C3Ze~!9fgfY%`Mai;#in8UMfkf!#JI# z8HjopraYXg`50JW|4)L512oOPJ?#{Xi#|LbPEG9DA8{|RLv6j$_dm)UKk;GY1#*c- zK;IWcXiPgwjsdH{asEGf1Z+-z7f6VWOd$B)e#FuP8j~NY{{Sr(b4JDt=l%cy002ov JPDHLkV1f$ozRmyu diff --git a/lib/images/fileicons/32x32/ppt.png b/lib/images/fileicons/32x32/ppt.png index 84b523a23cb28bab1b5d31160f798dc94ffd1234..acee9457144bba235ed5f24e9d90c2623f80cba9 100644 GIT binary patch delta 838 zcmZ{jc}SCS7{_0AuA;S;sihVRXDLOlGCVrW*&8CYkd&~CR5VElZQfF>r37k+Vo+Kb zr0Z?!4v&bkP%|={QSOq~rn}$0Zti?H=av2J|2}+p4tW0i@}NWsu_=rl06`Gk+3*E| z{O)C($vOqr|G`C&uAUygQ22_+>*Diy|7L+m1huxN^!2^uayz)(P6PpG-F$wx04V4Y z2*5pGB>E;6PnJNFHzCQIei9bYU&``hOF=6I21rW@(lTJ6tc)Nl50sS?W##MSRU~;e zNnW#AQBVKHp(txZly#xX2XU(UU8;sibscHCK6H9UGt(G0qtR-bXd10f+ep?T`C6S` z*A%8}j?n21`lc{_bA;Yt)Ei6&qsd@GjV)V^prU3In}6K|K+Pz?jG0l)Y{sw`vDg~3 zvlfe`E!grb#9{@^S?A_#Hiyj)aM&F{r=yeV?4~=NE|<&gcHwR}jw9P}UO3K+z<E3H zo=6<`cm@(Y_`JvK^?H2X`FZcW&xcBV*pzQ!VF6=H7p<x#n|jHvTDHoTt@0HcP_eqY zN{#C12T5!xJ9jn{@+Xie!J!9Ig}rY^jHtz(tQdO^5-UoF8Cg|+Hy(X#2xd_33<=uX zsR@p>pPE#vhH@r^Nw_+aeX@XB08=%2Cz%EUEv}SS8z+HDD!KC-axr}H9s6Y~{k6K- z)bX?^<z9FAK{)zE^moafLD%E9AH}b-{i9fWx8quIp&KjS&uKh7otbl?q;PC87fFI{ zi39)asC0{OR1ZxxricPbX@z52HGMxre=tV9Z<}Xf>^3=4GCVa@y5W6vR8|b<Ns^VC znOL7oMk^=MD#~Jnqd_0pqGPiyl{o_FakA?72hZ!u@m>yXa@u}9LRKJ*hvSbA@Q)@k zWA}VzZK{G^e0r{uGdh!^F2#0?-`+XQwWpC+;`84!k`=4j%283iFkyYdS2%r?7*MhT zi<d5qBQ>K}h9wHdgSU*!8$J{03jfP7jJ%EauN_jxxohWq>=O?$YPpEXY$x`QOdO#o znuDqahnE+FtnpnLv_3KCPiyw>A~NOtWbkqT_ZG`}dZJ=x?LX2_orMLdId}g8Hk!$9 delta 859 zcmV-h1El=Y2ImHl8Gi-<0047(dh`GQ11?EKK~z}7wU<w56KNR6fA9NclKx5E;;JNC zw6gWqi=ZrQ)vXE&o<v0<Dqf@%#Ea;8FMIU3?7`!*R=XHN*W(_#7w>{r4<1zfQ>s)e zwkoDGpNC|o$;>2~r161a{yy_P@AJOzH{S?rNEJ(^8AOg*&ws<x2`nI}2(Ih?d-~L= zlfY_HcD7h5*=}KBVZq+Kb*ltuvq4ie$350o;(q$<IU>@2{MNE_cn5z^O>wSJ;L!N^ z@u}(Q*}|DKhZ{Ljt4@8}RTWjm7?XJOIRK){($WWVxg6vB_aB(PbLT}U*jNDpL<Chu zL=tcQ^8f<$_J8%VxcH8IKF@)%vD`n!;`2BW4Fz<%`N*WxWCyZ=6Tj};x3yR*&4)## z;st0&HQ;l0jf`;f_HCrv7oO*FzEA+z1Z07w1_Ep~hxO4c{dE-Y?Hty6t*Q_+Hp$)- zf3kPap2%&lQsn8z4%qq>c-B^W`prW|uP1Bg2UisP%YScZ4d3%Tw&rtSZPPXkV5-sk zd!IOW%|V<V?CMv*A|?ZBDvy-EFmm-iVoZc@L=(*ekz9t1!5PS6dN(q3euhkLlqbJ$ zLDT&ed&{3t;{Xz^AE8YF8qY|XRfaCiklr#{IZq3ksXCx0;5FiR?11lqGw?$&IDpYF zC<a8a4u2pPtc~!SbyPwD)!yFlW8L}os~>{n*MDpxHTV<OdJ(>gX(%AJI{axhm|m+z zpyk)Ni*u3Z-Ni?wdo(E6Fuz$!63v7@oW6cmX3yfif4tV)?;o);Tfph<YspWX0&UPX zDW?qbk<b4f0k4b<3}aVbVoU~{a!Y>a0;*B;pMQRpXi*a8+a}AKcmY~pG(FpPS7x|Y z>m&<<KVOXSJ?pNo3x+1|u^tF*wjoMaA+}us9WF^*eWnu$IC%Fi|Ig3UZH(vhTuSah z)rX0R`bcivXzP0Iy*5)2{{lNP5uC?euNBg2;KTxIqY4k2G|H|y(2li9p>Z?bcSFqk zHB|f+>_+sB?uXwWNrAxfW!KGK+Ppb-0lA*Y)pZe(<>)NAhCyH$*!Ufj@D6xZ`(Gd- lH?rY%dzbMQSg!q1{RYinJf@CC%j*CD002ovPDHLkV1md9t&so# diff --git a/lib/images/fileicons/32x32/pptx.png b/lib/images/fileicons/32x32/pptx.png index 1446cf4debc97babdf9c52605a29f2ad4934ed9e..b57b09173ef14ed6dd46872779e4c44c9f0123f2 100644 GIT binary patch delta 854 zcmZ{jYfMvj7>7@xfJmXBrM3lxpyH;D?Z61mgb2YH6!8M0BL;|L*@!d2N&|wif{0u+ zROJgu(AXYpp)FOxTeR_PqKhsj<+LTMrT42XrI*tisP)gj`{c=cN#1Y2yrT)mcrKL_ z3qepBzyA#c;d%~LRPO=n_kab0agj(oIeAYg92bj)|IZSs6dE4h{qW&k80Nt+UmyTy z6Jqg%1Sk<nB;Z~wmA-rbUfvAJ&p@*);$~UE7?g$MprD-v#-eBOXbUh-(Sld7;}q<8 z1v^36Mo^w3DBFpuKE{8Ysp?DV>Ta_7T7jl7N7J7>-%Zf=k+nL#Zh)%O8}!@_dV|q0 zkYW%t8jL0*mukG8VKkXdT&n4MhRJL(nXP7v)ois{ZmzX}YO`B8;wCG=X14+C4!g}^ zw>uoSw>eh$^vUUTj*y(U(w#2Af@@*H?e@4A0iHz<(Cgu6dnXuPug~Z6`+b<-k70s! zn2?4EGcaK$Cd$RIKwzpcfQ16VU@#C4hC;zmIBY}1j=69o5^-?QC6{K|J-@uD`Rr1B zb}7HOfvRXUn!S<t2qcl#a-^~fiop|7Nn~c}<b!F%VsrY7Rc}W@V(sN+CDm<eHkxqo zuicqFXGFan)p7Kh!_8eCi=D>0-lUM$Sfi2YG`m==X!p{7wfXeeiCO;iar(Z;AK}BB zM#ebsaej4HxhlV^k!vm0LCPy9>6U*A{-pK9l>ErVFBg;jq&4_FA(Z*xG~Kc#e^q5w zNm1&@x3#hxtL|Cvmk+74g1PpZw4sJP((37@iOcWeUN`MXEBYyWj5wEr=sQv>sUqf4 zPhp{=aC&OHOyPZ5af$tA;IaGnsa7`o1t+4~Nh_l;+Uq*C2=cYHzMF@TO$g<p!P_Sv ztd+I?A^p2e+W+*Iwulx+*8kdITKn%@9zjNIYJNp2`uQtPHaOVeIS@O_jNitaTleIc zd_QG#X7UFLW6hRuF^puPO+!h)Z8(1$)g!NylgBDFs9sJ;Tz$0Qaz4Zx_Z>`0r(Yz5 zNyM2MK_oF(-%9J<d)1Lx%X-C#9C#i*mlUc$bm!EE#*w<5m{aXN&sx0oKh)gXxi$Le Y0`5hZYM!QM5?B7Ed{1SWq_m;y8-(`F;Q#;t delta 913 zcmV;C18)4{2Al_w8Gi-<0047(dh`GQ17k@<K~z}7wU<w96jdC@KfmAG+3laLHVAbW z8?CY4dNF~RSinUSO-!0JLLgZsUd)Dsa4~rH;*lGK14ko;nl4N2(ZhQ2ZlcA52O%m= zF@+LaA#7)!hus-wXJ>Y2x8;{icIM6dzW4q8`M&*)@XRvRT7PXBk&mqBVHw0MAgBng z>wbUg<jE7jPFi%nTC3T;vi0?Kd+qx58lc@a&4liUtZn-J$DO-~NdNv@%j;9G@$JF_ zpO(wKS1QdfEH2i|r%%716p1i9^~0{Js4B*o)R&I|5LGreA5kb2C>=d|Y;kGn&xo_J z1OgKgR230PeSi7$0R$Kx8D?YS0mWjGW3#h`@2b_iaU>E640`#N%Vx=s<%3APd*sN$ zYOS^wC6S3Ipaa!_k9l)?nrk<1AT3>Zp2wMT8DKw<2R0K3*j5hPz1jTcL%e@hvDWKV zg_zm19RBzUhYua<c<nWdJewQ=+nxf?+NP%O|H{n8bboUG<qO5W^A#Gxd!EO^Vgan} zD#O4`%X|OV2d;kUAkGkW=P6(jlLIx)DUBygU-%g@rUP$8Q=J1Hxr_t`XDp8y-pAyb zWpafXe*by`&5kz1+xQPP4j`TNBlJl?;}IFN!{lenWG7~t&sjlptq7<Ia7p-qBjCrt z8GA9<9Dl&*6BGlYSO*Xb)^^~#DJms_mbPDbsqOjI3y*^Pdzbf<8Gi$7y$-yJNhA<k z9saQz9Ive+(8fL7jn$6%?#6AhLmCup6yGf+sZK)QoRLws>!08~{Oy^xAKqrWUd9<7 z>4{IB0!@%j#%X~3%i|wD0Iz|JO<}kH!k8R5jenl_!3ngy7(MlOs-`50w_Vzscmmp9 zG()ev)jZ*P^+^`S-~PM<?^$<uDwsU`6T2~?PZ^@@sfq2Ez<@1jufOS31dgw)@Z;JV zdu^p+k#lJX)aT~f*<Zcdj7g=EYTSQkE0ti5zwXk_n<<Mh1Pm_}Hy$Puejg@bD;18f ztbe47K-8<~rg7tmxet*j6^nhyFk$gDn?@Z8N1(Uh253ZkZSE7V&&|cIA0C;g-nzAZ zN%gs@;JoK?Vt)Q*;C^fh1h&q*ZvNbX1F;R{E)D|JbrF%RZV?y<rht7sKYIY&34a$z nq#*OrzI~7FDX<m(Q2ig5-eRHw#pB5U015yANkvXXu0mjfofyL; diff --git a/lib/images/fileicons/32x32/ps.png b/lib/images/fileicons/32x32/ps.png index e1a74988d873823c5729b9a4c04fecd89a1c27e2..523a0be30cd36c442c115ce8494aff2f46b09434 100644 GIT binary patch delta 985 zcmZ{jYfPJU6o=n-MP}?kVqG&w6f-m^nG$7g1cO3g!oaR!4Rg-mI)Op~$CSw3mcrOt zZrzm2E>XfL<<c9Jx=}8z2rUEJ5m1K=D9|e{^lkh0Lc0O}@w-o+b8^nNUvhFr59<8c zM`#Bi2#W7uDIf?nK};bffc5|2aJfA^9$zTz?C$R2^Sl3>1tJmoat8UEEOJI>Mpkwv zg_=pp&CJft0%Ye=a)9~SIn*3#9yRYuQE_QeNm)^8Sp~hSx`tU@!=hcg&SEl|pja$c zEsIrGTU%ELtgElDZ(!eQY-nJ!8`*%HKQ}iuH8(f4wBBvKeXsp~XFG>;pTp_kazQK( zw;QAZ;d*((UOvB902J^5d=XC|;PdxG^F<;s2?PS6P}nbdC>Dzc#9|3eBKb`sc`!Kq zP&zU=G%`3WlS-wdGTEqXOeU9)PfU(0Cnpq>%12XE)6-Masu{KV@$B5({9jL3G)v1X zODmcc&8lW~ZFOyZZC$&r)oFElt<Ip+8*~Pv9%wWf07jD$VA?PlH%y?L%p3cd%@&%) zvI*GQ+yYuRtw4Co3R|r<D-2s<I}F=k8_;gII~;bz;XoV+f;gNA;&eJ)E~m%kcDr5M zZjZ<9+1~bgcX#)8_x2&p4}S>`8B~}`I0vCI*q3pKBjSX8lHc`43lj6U@*X(&NK!m4 zmQ;+&SF5P!VsUc&UX;h6@Kq9XZGRB|yz~|;a(Q7+`opmpdRy<exN?m6#+BJ?HyB6# zDj<AX!P<2q4ktC8eoiEc7U_K_DxK;eXTVPZ-uJT(Bifmy*w56usOpq6kIMp}#8`v+ zm6L<B9|jVY7vHQtVND+{w=^Q3en%rQ<k*}i2ADU5hT5Tl=ok9G$NjV8T6n&72w$a+ z^7j=4hCW-AgrB5E2a-^WV@EU3{CHLOOY2bNP6t%;HdH$w9G~?1uXk>vOyR|Ccj1^8 z#e=>#!WuPj+S$$>Ejj6f{=oBkpLu#I^mE^nJTeQ5PNch^1-*0N3!k|wlooLivylEZ z0V8*mGR7hAsN<@VCbIM1V+5f6E`*<tz8sQvT*yp)4RfR``E2=9ONvv8GDaS&Z=OM% z6Q%ihXIhL(Uoy}!Hf|{_bZqv_Pp!A;RWBZDJ4K<a1-;r<hJx@Fr~*@EWiSC^n_i-y zu3{&Iyo>$_6NXyaew4~qC_WCOqL0(O=&<yQDqAA<&TP92&e*PwpoA0Ss=~YcFGR{) tN<@Xy^$<dGvR}b67pwXTMXWId+whK0>PkFKr*7`QY*GRtUJ!SQ@h_;2EBF8a delta 1076 zcmV-41k3y62fhf98Gi-<0047(dh`GQ1O-V%K~z}7wU^&dTV)u>KkwTg$C0|VY>swn zN_&tcG-GiBiGc#sD~TZ^EL%dh8#QUX@Xq}ci(GkOh}q=Av7u`kxl*%bYNAsU&4|Ve zU=zj?Qgx*+1=^0D*NZ|qr}RKu@SB|Uyr<`R-tY5$p7%NLD}UI6GoDC%fe-`AFi_M3 z1qh@N6bgl@b7#*E1MAgVd*X?N+Ak!NNp<b|^#mYyn$&5!e@3Zd+<(q5AcUwrex(RC z2l;ejf(s)fyw=};W@2*k&dB-muiGhMW+yjgmr^37#NlvMeQnwR2q{UY|Hbe3(;toY zPTst^SQczW1%FBqLX@19V{UGi<x~okG8^Fa`Ox*2;t)8{aDc~;Qv?D5db_**pT*+~ z=Z1%a<x1ERuuH*mD#g&yQ2G2M5($fq=61ugo{|!MJw3<biNw<I&``ik!iIpXNZ{e( zV(Iz)`FS?q&_m4#A$a)c5ih>*JTJAhaP7to#KyWX41a@*BO?Gu01uG1A)q#LSXqIq zSH~HA^9=xehYoFp54fC8#y=USy)8m#M+co99oy`UqHJ#a6ew#745j$#?hib8a381B z$;&4rXqpDV;YOdu)U9cpI(dRCS3V~H^eMWo^J;ewQV0yg;8?(Kt(%=v;Mj=DAp~=C zbG(1)5`O}Sz55=&|1m>6F;$GF*msaZ;&4dT*9(k&^dSoP;PPd9dZHVCWL15@QiNut z(@$7fSfI(@gywcvOpj8K%jdW^{Tsnx5X^-vsF8rQTDV<KbUnmjpASvbYzQcFxg5G4 zLJC>YPhAQKAd^|)=U;whdioxk=0;SIR4Id8E`QHA-?h;7$|;1&&rV%+cLG9?S;?Te zU7TodCz(uAT3=?C3Ywal(A+LED;Y~Kk-||M0ZSJYg4NYETuv8Von0&~EpgE6MHvQ4 zsp3RZ@+6%m5D1XZ=UH7{15-EMlLE>x$Y!%>nwzPqDgOHBZ%+4}rlFys^iD3H<JPU) z9DjZ82!n%zWV2b6VN~@&tE_-2$B{^cZ|~ejIvfQ2N9m1rGcYhfYB`NUArLhBym$|K zn4O*F$GhKS6beKl5sRO?2}GlPM5BGB@mF7e2|%OIYq7~@*LeG_cWkyPs@58?FPi3X zn9t+!Z8aDUhi&Z)RoGi2GNbKy8*RtiYJb|O2x=@sB>M`XY9&zTmeiI&Ez59pbd;Hy z8TK2kt*rz@p=uS_j<K;Z%QzN`RrOz8%g_$xlg47P(r>+}iGVrM%}F;&)D!)l6xdCf z`Uuo<7^x}$75qDGzk+o{zZ)v~cUn6ZnUJn~g5hw*4dfmg0a6GAWVUz7EqH-upe>RA u4=G^Yd@c}WYIw@`?fZ;8MHNaXqyGROKb897HDUJv0000<MNUMnLSTZ1Fa~M> diff --git a/lib/images/fileicons/32x32/py.png b/lib/images/fileicons/32x32/py.png index cf6e412f08cf3458bfe54c9df72510934bd5f68d..ae6e06ad5d30e2ffb2854811a77103db66bb7016 100644 GIT binary patch literal 942 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzc9aSW+o%ssa;OT<y)z{meJ#^OSzNql}eP6E1HIFgbV+cgA!alEu- z|1T?T(Hho+PC0!xO*c+nZJNi?By&%7Ugyr4@4esMh;6(3mw)%sGyVB$4LN%PR8P<O zUlH|=rQp1L;QMc<gI705#M?x^yjSr4!B_jWY8nSQLtjm}`R(8B{ZR}DSXWKx*ll(5 zX1(!su8s++4|Z*S+Z=v8is}8yply6}moBe<&z;brp8u~Q)l;K!y2QTY5?!Wz)`mKH zY5g&~Bh+^ncj@(~>|_=dIIyhUGkMehZC}r@WHfC4QXwOL+5YwMblwLIBI1j8+pD`@ zH%s#2tKs`26tU;?<L`gtjdv!UY|f5J{CIikm&(nLub*M55nf^cs<T4<+P@P!EIBWi z7OoSPKEV7+F6haX=Bo$7&6lnE{8lV#_oD3qtCpxo@Rsa;a&?`-EKjz3y&0L`t2n#Z z9OgUDe;PiOG0gq%!J~_0dBW7J^ZiboYP>LSib4wWC&z_<c<0{<km{5dbMUvjFe{T$ dAS#&k9OIgWGd`U)*H;GRI!{+Wmvv4FO#t|t>~8=7 delta 955 zcmV;s14R6;2gV1G8Gi-<0047(dh`GQ1C2>UK~z}7wU^It6Gs%sKQp`DIGcr1oJtOt zLJK|Sf;sWSrWLBx3rIypvf3+&)QEd7`3ur;X@%fi0;#YZ;Fv?{or)^QUJ7a?l!FsH zI1bM4%=F+Ntbb<LNuM;@(e9f!-}ik#W>)Y)>_V~l6d}GbT7P30MGPR2LZFm-_T9~! z-vU9@)n1`kG)E<yo15n0qen$R4%^fY&6CD7{Ql?l8-x(?{Wpd)r$6P_<z>Fl=lL?1 zyRp2o@_YW)t*-_#5k@Clv`Z<GQes(F<k4CKAf%*Ru8>Zr$z8sDW#!3}f4iLR3!p7R z2&9w<AtH~KK7W7!#@%sBr7fnWrnqwPV*0m2;Y~jf0|AUWS~BK1c*ndp6WL3bP8Ev9 zx7{G@{s81iInY{j?(A6}K7Nd7)`ixZAM$yCNx%cj0|1z248=$Qq?Ekdsd6Ec;X)?U z^IbQR+!@S(=?sB31}OyV>+8JR*+FBFhy$O;jvr@wdVjjTUTe*%sWccfv<%x~HN9^= zE9Ek|To&K=4`d;cNbustABYY+GEyJtiDjEQt*O`R%+1ZAwZ<5O*1A1*cWY=3snkjC z-TMWtb*BwMOaQVAfYAg&fYzFYg$35u*4WtCpkA+2Ds5wogX4^`w^wcG8Qo)JVBSP2 zL#<RBz<=W6BH3(~bUMw}R)zQP6|Osh>v}j&vZ1F`PmeehfIumH-$yCM?CdP7tE;?v z^%r;U{K(a-S&~VQWU>Lk_kDtH0K$qFf^NjB$v_YUEG;dONF>nO;_ls_NhUqU$3Mch z6WDfwAP7)Ob=VkI(vgx-g&2@hQm^}X-p4pj5`Wuvu<b;f>Xu&AKGL6ouCfXIhW8T_ z6I3b{Y}-M~3j6!JNNFRb00d)WR)Z-&=&^Aq0DH9>LI~#P=OeY_y;`lqh8c3b8IS`X zlBQHDVOciMo<5J<k|!r8+1@UbN~M}*tVYiP*LAsm{RT>_$N(&9;ks_<c#fHb;o@{X z7k}4tIgAJs7r=;D(u0oaNC0Mjdd{DJzvZaq{1;PPI}@=J_LG<QZ+DFF`)<8hcZfL3 znVARe(b_0He|i5lnVAQ%0N8Pq!`_8AYJrHmd29fqY!EL5BisXHmcwuW!_Mu4ypO_8 zKl>da5K#U4bLCz8?32D1$isLpg+d^zJv5&}^Ao^n;N<@pge~B8_`g7OvEg;!+mBfG dfok|i^*<q<v>}7iK!5-M002ovPDHLkV1i49*;4=j diff --git a/lib/images/fileicons/32x32/rar.png b/lib/images/fileicons/32x32/rar.png index 4af2a4d4603291b588b4b2ed05e160fa8da8326a..5b1cfcbee33ddea026821fd86cf0b6182fa3f372 100644 GIT binary patch delta 902 zcmV;119|-D2a*Sn8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l}SWFRCwBT&QB{uQ5eVZ-}Bsi4MQPPn3OCgk)5RyiM_H{%F2>? z4HHW*fPamo>?sQwO37kYvlI(|%7mCP&ArZJ%suxybByoe+|#+Ao*ozAwk{<w65`j2 zLRbw@=NjxTPAU=u793K;gvHHu|Gcc?2?ED4gnWVW)9Ug=X#ms!8lu6g8NMi~7!boq z0lmmiduQ*;oM3{EEt2Dn>yicnuDeH{L_j15tA8P6M8IL+^NW2i&plJf6??n)27RwO zXDrzY2M+_IOu0j(mP8fqQ?)nz0tRl=qd0m<E#qXre_^sv7={T5s7xH+jjV`Zo=$g$ z=JRBOpgcB?8wd#Lw3GvKV-T(S<bH*3Z%)t+*RcReJ4Itfgc<<@@Dc{_z%YRakaVdS zuz!%(01`EjlmJm~k`jS6fhnnCz{DO|JGi@5{MO>Kz2q#c!~}xBu>rPAXi~cdVHp6~ z`X?LRVF3L%o2j4S-3FP^==*;Yw6P~Jn#U1v^io;#tiNkeN+uNk#Hy@;`mCU7qBQt# c3H1ZM0TVHioiRr%_W%F@07*qoM6N<$f(-rl%>V!Z delta 989 zcmV<310wvA2j~Zo8Gi-<0047(dh`GQ1FuO$K~z}7wU^IRTU8XtKj*&uECFdOlB7U` z#kgh0W}(oExM|(UOgnal(Txkc@z;j`!C#$mYuA<*Z6;V3-6@L#cHy|f8LbXf3a@n9 zOrpdVlf3I9$s>f9@Iv6s+<BRsd+z(5@A=+y&l9%IlS-$*Lx1EAZCPmcV;T^Y2&Gc# z=35sooCk_-y+f&VS|5~cY;5SO*RG`j)$FC7n%@Df%W*HS+(SfKk6&vB<0trfdYZQ< zCmA0bo0y)N`El~%#n&4#QHxGhX;(_2l)^9!*Q4qKAWD(V=7>ZhjGaDxX6D9?)w*CE z0oW!YD5Ve)*MFnB9zcNLksyyBXNX3loEaI3e3MGua{|#2z<x*7{5~I{&XCQ-tD~c_ zR61?egYY;5Q2WwA)#rtwA+BD(j#SQtWm&v4ISFtK2m#p!0CXjX;s_wS@F`nsKiM1G zXH~H0o(znVeDgDsr%vtix5^^-HD*BXOo62}s`AV&UVo;W-*|eg8`In*8aYBV76QOr z-^6_IFVSd-Kxv6z(^G_BncDWZEMn0JXx;P}+GbRuuRe1NUl8`*r91pA0`$duFxUR( z_WT+Ei5DXzU+zU)8V#t-T{82Z6CRnW?9;du>?y*`{3rBw+^6Sw3~w-mY38}JundNW z@w3B>pMM<&!^540WlS@VHyEPlc#PhT`#ik$et91yEdo$tk0*cKCLHf$ef1HGb4z#w zen!tF8A$Y_e14SA&p@J|(Q`?>0Y8g#ORTRxA{_6dkX^C&aZ?F*sky9+62-0wj-L3L zqwzA{f41~a(NJFhO#dLm{eZS8cD)4phh4|Bb$<W=g)C41{1#CjG|i8vpwU(lfB58f zQ4^yz0M(LeM_0_@33h^bVXyk2HRu8qbLE>+srDHVE05vt05NR3n_kJ<hgf-MHeE3w zbqrW}yn!GZ<qCjcft9cH2C97k23z3o*famNIxyI>0q7>}O#=-WJJaDSVsv)lx=j+m zSAVSBk_MJ8?Oy}R*TFBdH?dmm(Ug>ZMFgQm5!RNc#Jjg>*F?7pV4p4NUe~lM0N-DJ z4fFRo4%(uLF&O;7EdynH@2j0mT)8BU|5fLkt#2^}jbD1@lGxAs`9|y80^k&>Q?z@n zKTrnTq{A%(s!pyPsyXamJM&y>c6P)2$5xkzb_xnZA9H?Uq8E7Rm;!;#!pV<9;pabe zY#`f-ydZ+WW-|u5fjAI8#3W>ZmD=wDsS{+VzHdKZ`;RgU_J`{K%>#jk&wtCL00000 LNkvXXu0mjf&qe3K diff --git a/lib/images/fileicons/32x32/rb.png b/lib/images/fileicons/32x32/rb.png index b0dfd898018b92e27d4e6e9206a81ab0afaa1ffe..398f2080277af9f712be686f4de59da159e6cb9f 100644 GIT binary patch literal 936 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzT6aSW+ooO{mxw6LSV@sIb<<Q)<=O=1$9E#Shf+jQf`3jG5bznm^D z@t=Fni}ij}f})wCzT+E}tqTMlCnWrn5H8+rT(qM+^4+?seTvaK^JhnL7d)QHv1rPf z-_B*pj8(rFj^^3fXYfUQJgIQ%{!BhM{r?_zjtQL;)mh@o+t=57GccTZBw~HxX=?tD zEOpBSHywto^}82~N1tpkG!)p9w&dT(2e}MfeT*A+x0{?l(U6$F-zxoZeq!}Gwd;%B zuLU08x8M22qdAwQ=P)o|xO%4h^RMt||0#@94qUX4*^%<~bxySoBh!Oeqy2wtckaAY za85WODIsXVyKCF$m)EcPIjM>{AhUHBzxbcyX=ks5N*bgpq+L!lI}-KR<9f`ktCGT3 zV>l%koW2Vx88(O=NRLuj|LrN;k`0R{b9~xy_ySYLcERw7g&M~ND~#P;|E^|C@nz^a zJX5^+OPvv4y6TKS=Fevw5bRPfV9PO6_<LMF{rH!QrjD9sml;z2^G#jJ!my5QQd9k* W1+#MH{<Yiy<u^}PKbLh*2~7aq&)~rT delta 942 zcmV;f15x~_2e}838Gi-<0047(dh`GQ1As|HK~z}7-IvR66IT?*fA`LKGMNmt#i?Yo zDYVdKHZ?0AHmy*lZa^w3lGSb@QX}@+<S$6WrWK;=5=e#R0Lv^&_f%9_c2iIzp)8!( z!EtbA?!8_3!T6c6lWzJ+SM$2}%y+(f&Y3fUcd!e^;$wvP%718$VH_AhAca6F_2irD z*S`kBxU2m_v1pD8o12^F{(}caKn{DU9XWT6Y54v3%U1{?M)%(sPM`XSUzV5oHlOG7 zT<+TP%F1u~8#lffq(qdRY{@RAL`sQeS+PfJ4S<l6a=Ah(l_GcX;-!^GkN)X$wl9G; zgb+w65kkZst$+Cd0+{qBDV4TJr_)?Ie?IkVq4267iGc*h9W6{a4*oH}twi?1g_DJ1 z@pU%|yFURrRt&V(oIP`f`wt%?nt7qM=DU0zU>fj&@&E#+xrbsb0#Zue>{L0I$#5={ z>3OajLGBDzz;tebHU=pK>+9>h+1Wv3kcb11$BrLoW`Aa;y<Th0$#e>g8JdP|SWWL+ z$4a?OE|(<;f&*1ZBoaJ(_B*1(j*L|YdiJs{oz~Rrb>`;g&{|`RL2KO}ySp{ChGg;t zcklj$*1FS%U_=74i-6IDVTjh6g@pyy*4EhA*q~moQz~s^jDzD$u(wxj%rm;j#=y9V zlZINUHh+P|#YM8&EU8qAt*r`g-zq$B3eWR#9Jet~sh%2fC<38U1VMmOirLv&R##Vf z@#0Tz-~OJ<m$SI8kLxxF1VKR9O+Z+qZ9z9<)l?u1Lzb47NF)+yZE@$$kGQVS<m7wU zb^_Z@5QZU2sSX>%QaV-;s)zzoO6v6h-~Rx|aeuLG2is1xrEblOTSxjU(3Lh}(C~h0 zYKlswf^9oUSz&*F7b$I|6o6o2!fGfLggrJ6MPRR1LkPkA{Cuo(yjQDr*f2xdn*lNK zE@(=n5|(B2<nhzkC3$*!n(gf}$z-yb#%lZ+@H~&JSFfS8icP?h7M|xtKF=ctVKg~C z-+#mNJq`n5MkO$2OM1{}Iu?OjKRo4+zg~0H`0Ud(S5C)Ppcl{Y-R!u|-1>Rw{kX74 znH)9#{NBy>^`QGlP9W-S_e=jL3XIVQj-)^z`}VM};IQE8=Y5=}btnM=)h|C${*{kE z?At&dq7Wd3LLjO=k0R&q1E+u!{CC&_UMEKX3q+S1es|w~#MlR_(I3@+0pSw1oVN9Z Qy8r+H07*qoM6N<$f?poee*gdg diff --git a/lib/images/fileicons/32x32/rpm.png b/lib/images/fileicons/32x32/rpm.png index 2ec5f4e1bf49ebb15f6a113c9647dc009eafb0b1..c66a907415973e264639cfc04b5781f5862e0e92 100644 GIT binary patch delta 909 zcmV;819JT72bc$t8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;n@L1LRCobx&M|9KQ53-O|2g+PQ&Yhfi=YjHIE13OISNIQx(n`t z;N+<N41YmKKY%VGLU#)t#99!<AyY=t!75l(G%+-<_moH8ftySI4-UM;kHalMPcB6x z$wYsTBhw0y(+|np+Zme!)YuY|?9P)%llP<OK#UL)VMj=RJ%0EX8vumBOtSj%hVBg` z4n#?cutI;meD^oz7aW{=Dz^Rj)35=C769KTVt<B+y?!u-ii4n&a&mC?*UvN8**#cU zez`g+4{s%pTp+N2eobX}i_Tq(gKr%czyT<H>8|l+zjKeBSLbeD8w@Uz0)g?>?XQ>a zo3SBppI_MMOAe~h<tu!~5V~C(RZ=+cX+Mf1>i83?Wr~miu|@H-W+t;hfwGl=5+wyC zh<`0baiAvU3}}J0t->qX(yFoxD(#4;qNQYSC|(@m!HGgc25ypN4*Vxi6Yy-voE9C_ zZ2~=?J)oHm>V3Vc=Ty|zfuHF4>}}Q`^DorZ0urEPHBcRd>BbNEBsdthTM_a!jv5gE jkC~gr2B6F>*5DX^@{}g(vnu%j0000<MFvhpu0mjf6si7# delta 990 zcmV<410npF2k8fp8Gi-<0047(dh`GQ1F%U%K~z}7wU^It8&wd;Kl9c<YbT_pQS3BH z9a_va67>P%mJlv27b;Ov$to8P^umu*{s(^b51?n7Hc-n@4!uDRO+pWdQ;?uSNlB9> zsI_c}X@l*39BglF$M&wBFw)aojdo_g^L_JXW`#ZRWU|?B5Px}HTNavrL<52np;D>b ze(U1JH-WNS>u@HU)rTe9+uQp3jT>1&b^EBN;W?mnHSV?b2Z%`T@oUXw`~+Xj&vQAQ zW_D)g!u-O*_vuTQUhBj}BRW;5T`7f93d1m5ueuF@C`CSBAR3J_bLPz1g<H2aT7qp0 zz!nifDTRo*UVruX0R#vh3G(=Hj#w<l+3D%%mzm6ib|5+e=y%n{@ADBJ2-{4&l1hzc zvRShggr_|K)mIMGZJs}Mit9ITBDH&ASr%`n(*VbSFp%#6K-bPt+5*Tgf6VUY54L0b zt_rs9$wZ3e8=sIoeR`k0RZVhVX9jfh5m;KIYI|YjDt|-#!qa0znC1?#=n-P0VF1jn z9n3%eAr=c0sI2mHc8<u)b9?rd#b_)FT6evMwivbO>w97OGa}ym3`L$rfU)>6=H_4A zUD^a7@j{g3OCxAYqXCt>Pj2Z`BGYp<Kb=c~V-n_;K4K*Fkm2K_c!Oa~v&g;WH84EP zo||I!+<z1p9_}r#VVXs}!7#(eM;Qq{<j*_rRsAUG5r7hVJ^B4Ek@y%}8;@97T*Vvk zlRBSdA~BBg`B6SU6NzzB=aYB?epVJ&+1hwSBtAwdzi#_+QwjHFb2Tq2lm{<x^u&)G zjaTvhy{ns(hU)vzj88H(4rq(=;ESNY+jl*C2Y&!i%JcNMuMp)y)BSo18f}&FM^5e) zH8FYvP%o)=bman`-~fmhoa%$tpi59LR6C<m2WLR6B8EQ%V%T(dZOPh)SjF~ix?(_D z7_f?X13@&(6#&5kt5};2)WHE5?1De!c>axfV6bZg&|Sux4mn^nABV4uF))bhF-ZVl zxqsFr4J=*hKL?aA#7|$}#_DlKQ&P1R5riI-u(3QP-nqj;MRczK`W#7}+O#VG-(Gzc z^VdZVTVjbBn0((Y1Mu$W%`9BIB98j{bE}_rdPe|_&RZRI(zkxB6>QG{8Xa_U+^D~H zMQjj_d*1-uFwoA%iT2L(Kp%ss6L2U0s#jANY<1!ky&HXVmu+(d0z0LXABH2(eb9D* zJU}6!B!a+ByQ*E6As`M!`2QpatT+A_NDCX`*17$V<zK2S*gvZO0YSWjq1J~#0ssI2 M07*qoM6N<$f@n0>)&Kwi diff --git a/lib/images/fileicons/32x32/rtf.png b/lib/images/fileicons/32x32/rtf.png index 82add4fd7d9520b342649f6c764bbef3f4f637d1..43182f3493fdf8142ebc8fbb85ce6a8df373cd81 100644 GIT binary patch delta 725 zcmZ{iYe-XZ6u_^~B6TRJXex#cCt4_Cp=Rb|gJ!yPT2dw`Qa&nhQZlGq4f2JrFhfPq z)Vb~M-s`l5DWR@VX*1^|`XH2>+uX}N?_P?q{`I{dzYph}59b^XN9n)s*B8n1fgp%H z*|`cqUYCjs%P1iI9~>?hMi6v*dWz47QI!8L#)Lv>Xy{D)RzSyAQ2i32VJWOd65g{N z-m??YyA#<cj_louVu*>a*GX;bIkU6l9L@xXGs)$GZc|fJEH0PJ<MH^QBM^oK02CEq zKn#KThyYAP5Dern3g)3e6l{PBg%~KKKorBUX%vx2rN8&&dvb+bv9H)y?kiPFm0GDf zP^k}82O2d{qdfp<v>Jd`r`71RTAhxi1L*YzgW(WhJTw|jCX2}ou$V1CtJP|=S#g^U z$8B~Tx7+Owhu!6HI-L%;)8%ry-0q_zkH>S7_MsEpE#wKERtkCh1_p<Qr{qn~d=#rS z20Z)c+6cJs4JtXejOjHXt1o3&1urw=woM||S4o!Sy!VR&sqjmoXm&QMbDOa6%j^l+ zrFK1KKHuuCu5EV9HqM=9rw_<d6Tge7C5>GT^6kM027Bg0=uKYSqnyXP^NQ-?R0(0i zcjofFjZR`p;#)7PDdxumGAUuS<bHepTu^t0H8~xnho$$d)ELI7&3&zS5_}xE#2Q>9 z&>I=X7Pzm8oq0E~HBZbrevj4aD?aUQj&*n|t`no{GV3<;@T7+VX#na|d2P46qTPQk zIzFgSRGDx%eC65vNJC<($(6>GGbeLTeQSuHNQ|M}Qq#O$ujCzV{^12gw21Pi|2BQK z`c85hQ^VwlNo!F-iy7H<7TQWan>R|z42JYY+M;qf$!rN|etF_qSZ?)2VpVM?l*L$g r+PkKjVHtsFP9H7T`;Ds<{p6ElpFN+?-B*v!+Wx*Pl|mz9c~$H`K%|cc delta 855 zcmV-d1E~Ds1>**g8Gi-<0047(dh`GQ11d>GK~z}7wU^IN6j>0*KlPe`=$IHI$qXKJ z6E`t?#uEcG3=AMY)XkbTnYcH@#q7VZ2mcJtiej8hlph8Z1%Leun|M*O2f{&v3K)(3 zY7a~|Gd<Ho_b^uS(w%zm)%#Y}x2j(Y`_fh{l^!B8rq-e~BYz4AMg-S&AN_gt>L0+5 zsJj!zQb}7So12?@=kDDSU>Y6TR`GsBb<gj2@7EEL`2MT%%h@yBo|)l#p+GL1y)rX9 z`@C@N+F)2DD$yA)?8X?3F*uGBd3bvO#2B`=K9Ni&$@ca2&pvqYU%=VA0DKV<j4_Bv z<l(Ic5TNsDCx0J4d?b}h(cjyfyk9J?*8>p>pxNO`M|(So;|V_!nRL3lSSoD<LA2Ee zV4C89x98V$=eTq49#XCgYb}2j3IL~o1h5qXK+8FlrT`dY`0{z13q3tt=;^7Mw|gXS z508LWr@*RWVmuYt`MS%O-JR-rYw1oULA7BS`r?$m_kW(}Z~aT6!(hbo1a`h#-v09& zZ(hFy*`t!RmUOz0*Du!S&txm?m`Ht~CYOGL=sL!+4uey+<68Lf%_1W7ru%F5XR-qU zgTw@2s(0)h?LgWMj+9BI%5Iw?MtHTh2Icxk)hAshn~lVqND)}SaXQpMUxb4i5jqlp z)s?3>j(_9lIg=Y?_1Ov{#t*Nx%0Mp1vy~N8mBFE*{pt`W9ssYUdXmcz*R076<?9+8 z%I8}jf#s#8s#dG2s4Ds4VV*26`+93F!y_X+UR>nj*jV!%FoCie9laQ8U}R*pMmIh_ z5xIFq0x&oK2oYgoe3FI5c|S#}inW%B@k!<v=6`&>r`zvu8kYmrq`7?QcmI8I;&NR> zmnN@-9%9u!90v|7LQE1izC<+vK;r^v@=Ds0Ml>)t$Lhugt(I&m#m(puD92%Hs@jw3 z>AHGvE=(W048siQ)D$v3T?Hg~z(EJb22kl$6ytH%Hx+@X>myy`0(9l4N*(*A(O2-G z{7}Ztf6#tS3Iw+QcHP9yuCBTl$isMUTo)19uI-ZhasoIDocxJN_z1kO{4bC|G!nsk hdyC~euwD71`akK!VGnYT+adq}002ovPDHLkV1jrqpF98n diff --git a/lib/images/fileicons/32x32/sh.png b/lib/images/fileicons/32x32/sh.png index 93c093ea40a5612e77fba79565fcc34c3ce47487..52e3f952cebdff10387d84a351fa846fc306eb91 100644 GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U_2V&6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8;sLtT3XszTiZA|I5;{wIy<|&fPkB;tB;$Tn+FK^dwTkNd3kw* zfUmcAun!3M`GP=*pI@*)2!#6khX(`%1qK39NMK+@P*6~Ca7<`uY-ng)XlQ&`SbR7L zB*(-g#>QsH$LA#`7AAv0acXK=T3UHp&!()btkTlbn(Er7rlz*Gw$9GJ-k#nG{S&86 zn?7sy?78#iEm*j4(bA=hmo8lb1k0BLeY9-(@)avqu3EJk=(W{r*REa%MC*V)TeEH* z(5GuRY}mPL_x}C+j~+dG^5n@=KyVra&YnGc>C&ZZ*RI{Zef!Rxd-v`?xPR~AeIR)7 z@WI1J4<9{#^zg}}$4?#u!IP(tpFDf=^x2bV&z}MTkbM5)84x^w@f-+VynONe<%<_D z!Qd4Lyng-q&6_u`-@SSB_RZV3@7{fQ_Z|p7y#D}1A3uKl^y%a0PoF-2{`BSZ=PzHr zeEs_6``2&ZzJ2}i?fds{-+%o0`Sbt(|Hq6LO8{e0uq4PYn1P9fM?gf(z-j%)tp}ez zfBo6++VMHS*lzQ5aSW+o%spqAJ=sy>z{mf#<(zAyHa2#6Yc6W$bB&3)!k-}eS0Q#+ z`MYOJn&KS`1g2l;SIC<bd7(qW!yvPF?b*AwpHBTgpgR5k>FUEDckfnjSYv;Brc&v@ zzcb&m6!^<;xO4V-dKY7$U1is$xd-3<J8gfn;WUeSLTbCu_HS|j&*?J6Fz9sdIQ{tT z-tf&mjDlW_>&)-osxO?xTj3v=_W49+)t=wmSi5u>(!OVSH8JWN*7O=~xv!CP++cqk z&&{Q$U!LpP*6o~G#=y+<;)%x78DG}t*#$Cc70i?CdsOo&`|XoGOne@Nc6<KT*3_ih z9(!_N`T=u?$7}QL-~XF&O4U~`=4;C_e(_7kd;8w6;`$+#Qh!JMqhHC_35CfrYT1us z)WZ%i-@Lp0Y%2dQ7Q5Yo5p(s;Pk8%(c`m8*l6x0Rm91D5i`QI{2WJIdm93N7z}MJ( zm^q_vHN#Ug(+oc6;yrBF{-5?vcIXn+5Mn;4w_$7Q!D$B<XV297*ev$sa`_scVs3%3 cY0@9~*UX*qr_cP_bWo=AboFyt=akR{07Uug!2kdN delta 951 zcmV;o14#U>2f_!C8Gi-<0047(dh`GQ1BppQK~z}7wU^Cr6Gs%le>1z@IGcqQoJuyA zLQ8wh1#{xVrWLBx3rIypvf67CsS)>F@)xAxLWRm10;#YZ;Fv?{9YmF5F9kIc%E5^p z90zB2W_s`k_WC1hJAKk<zh>V2-kbN{%nCk;oi7xgAjG#uYkv%*hyesr2$WJ!zrS(g zJ0OTU+RGOT=BQ+AYs)-%_^<%TL6h2T_i<zDcK`GG4MK?F?Kg%qr$6QX$_hW^a(tD| zUSC;V{Udkt=GXl^(M~6uZkJLbrNpwV$gMdBKuAfcR3@2BlD%~4^6KNq|Avh13D6QD z1X4<b5RqH6KYxG#Cf!Mj#cfil6qhetNdBJBzv%_h7hu%ZlnKYdJLa`Kk-2#BRK8Gn z8-}oZ1IUqLpgHD?vuAnm=n<lk7g}q6%;f;40S_qk0Wgg<6e9shDS5YB;e0yH`E<JL zyRHYh)87N8a|yIDNFmtR*x=pnE*gVG9C|%={5Uf+Gk>k|T5C?Fl3>ihG;E30u)cXM zmr7)_8GPSA)C;j#jOWk)M0Dtpk?KI#TDDxLHMLre`T2RY))-^ZTDRKXUKOn&kvPfS zyT78f?$jX|5<rFkj3x*IwAL&xF0#J9&gSMOwOWm0aR*}@9A|?4{Yt%`(Oo+F#!Zwo z)JnAgmVcI($Ye4klS#I>%e;TDaNQ|f*TZq*^?piq)rheG0;TYMAEgv?b91b%t?}yB zU);L&Ggq!;h{rwR@j8I-`vhSCVGXwgVPe(rKoA5hFE0~|#n9T~_U${w;~tZfA7R@u zY&%8}1Sq9CbPP)ANI|IDJRqf{R`c<^6F5#B+kbYj?O4mz&3;kqNN*2>(kAfh)=y1M zQ7)IUZ3ijK931Q+rHzyV5KK&1bx-+0myWRj_N!Hd5G*V#L@LMo)oO<hGvIjBCk8$Q zO|e+SvTU9{c^0`OPft&?vr{6GNHo$|jUEH8>vHYdb(B_-0W4|Zx^CO{JY*2IC#UPV zxPP9@I3moj03#kr58I|A0nGmLjF*4E<*4P{mnp8EiC78y$&259>S)b(;XcENJ<R0k z*?ULsnaBX?*?S$<wZjZ+^+*7{CT%{C17nB6b>I^8gBc<n1_KP*xBE>Pem@ATm;Md_ z0hMn)SKignKIwUY9HS5*g+d@IU7y<SKQIPP11I_aWE*(h{$C(M-tfZb_9K=9pwj-M Z`X6I5w7ucK4zB<J002ovPDHLkV1lLj&|Uxl diff --git a/lib/images/fileicons/32x32/sql.png b/lib/images/fileicons/32x32/sql.png index f6436e7259a028543f2e37a0b2aa58c86feebc29..bb23e56b9bc8572dd827c0591bed7fe7431ecb7f 100644 GIT binary patch literal 664 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dye*%0$T!Az$uypzIRcqF)UB7<W z%9X3uu3ZUcuiLO;=FFLkmM&eqbm@}i%YkZ^EnBvH`SKMjR;&an1EN){Rs#_btX;c$ z9T2Ts0|e{VtzEljEfB0<zjnh0AZOjWb(=PAI(7Q=z55UDKX~}y;iHF-9zS~g<nfcI zkDoky^7Pr0XV0Gk(eoG2fZ+Ly=Rok{<%{PpU%Yq;2CrVde*O9l5WIc!_U*fOAKtwO zf)DRM0MW;fA3uHi`1#YP&!0bi`TY6ImoHzxe)<0O+qZ9De|-D?{oD5+KYsrF|Np;4 zzVU9L=LJiG{DK*nSa<|P#0;F)Z`^wD>GRj0?XDf4!@$63<>}%WQo&ezo;$e7LEu2) zE|2Q;r9u~9&h6~?*|KTVr88SzOtii8{(tN(iI&oc-<EotKRiz};Bn3g@#@mjDvy=e zm?|z*mF?}8vXrGacopOC3wK2VCj?#i5@ooa^QK`;F1Juc?y2TGUl?~qEAd4=58*B{ zkaf;?cR3i@o^{yMZ2Dd1>paa$F)_h&#W_}lNQgZ6r1tZ*gCgHMiR~sYlw+Nx^ey;) zcd&hzk>Z)KX5lKi7g<|%3gs^)oTylGki+tLs-@MXsM8aZAOG`dRzDW=Ksox+>Av?K znZGOLFFxq~=+(@5Dta>W@r`RcQ*VpCdvEe1spi6i_K%*;`FxzOcF*}$!@!YlFhgMv z=RtX~xgY8q5&{<(Fo?`;{>Nm>ttD|p;aArwofA7&O;~crM`Fgy(70PBOox0v`ZW62 YGrHJM^={p!A_+=gp00i_>zopr0HIQ0y#N3J delta 815 zcmV+~1JL}K1-k~28Gi-<0047(dh`GQ0|H4zK~z}7wO8Ly(@+%t?k%F2nHU1P@**bq zAB-p1*1?4FV`B=DWYJgts6ER7!zeI_kYP6D4-w+SG7|{Oz(njlKCqUyYezfkmo)3n z?LGH9=YHq(mf;p%MOEDbW78xA2%UfcFmT48Y1;O?g@t(le}BEs4i#0Ef<nDsr{$Fu z6##FyXqV~!5z$TD-;Phf81o-L5nc|yz{f%X?{hhfDN44mwpPh4E{?lp!px5AY3H1S za}G(8JYV`80AQTs{QM`v;V_hFG`6<B{@oU=BLM@9F>ubo81sDT&jSDh(DS$lr>AF- zWf`%Nk?^Nt@qfgLge!qgFC7oNyAgU4GBOb#9UUmDYRyif%b5W0NCWzuS3^TsUR?!i z)`buPA96VW=mQV}aPC5YntRAPBEUJv#jgg2BM}ToA}!<MM&#Y@86fKx2qJJFzXag& z_Z2R#F0JE2U_cH7L~YB^fYgjWxL@w6547y1j-#WmMt_MJ=@bIdXv{LE+YYN0#Fd1} zA$$_x))}#Q+|_~8m@+ozSvQ_CP_0xTNs_(oK@cIXC^)QE!JBh*)hmgFt3Tfa5_d#o zUd*vNnB<RueZLRNWk?bSaHHt)WD;M>WiZooM1=8V5(ninhzPGICW6a=*_n={gU#(( z-x}byvVYmz`)uj;L<Azj<YWr_`+J662!T{;3cI^In3<Ukj==QPjH`pG)O3q2J)5!h zH}b0it7x{iRWQboNoP^o*)lXjL=ZwClg?thv}x%FnRM3Fg0=f;AUpTgxHmgCV=nW? z{UrsTB5Z$%@()IS33PZQz3VmYi9o4TLakOq(0`C+*-r*;v9z>g`Jd0{TkK|=et)k% zU|!tGq21oe!k!4^^LfWegT$R%5LBez2-wu>w*T!i(>7xc)nK+fD{gMqA8_uw3cO@S zmStQEf%$CqIe;II8DK!;TGK+k{r!#yNH?r+Y@oNVuU#X+wWfhF)@YZ3rvL^4^y2^F t3@E^{`MZGG^boS2+XKcQ01fkp>OWMKZaF5Gg#7>j002ovPDHLkV1jpGiqil9 diff --git a/lib/images/fileicons/32x32/swf.png b/lib/images/fileicons/32x32/swf.png index b436429058ff31a71581f5a088e22fe4aafe476e..be8f5460ee426ae9ef80726cc02c162cca91aaba 100644 GIT binary patch delta 1152 zcmV-`1b_SV36%+uB!65<L_t(|+O?O-Z(CIq#-mc8QVE38fex5-CTVEgG#!!-X$t%S zEUIq0U;#)G3syjZ1p<jB5(@-Wl~_<hlwv!kf*phwcJ-?27*Fx^CQr}y^Nj6}bFO8} ziiqP^*`M_3UEO=nIlp_}wdB{=qV@KLh2QN?Cu|M}et9h0#eb9X;JVHBE9dMpp=UU- zThcTQvvYF`ly_aH0Gs*bEdO!<%YmS2a~$j1>?~M{qTuKG`CFZKVk@_g6$pk9422O2 zM>;m|=Q!3+b92!36j-t>W8P*{7@}hUP8N<xc(~-Q+wH*vuMhX>g!gFvo}%Ke7G?98 z=fv7w+DqcrqkmW`As$aOJ8|7^ml&cW06tMflHvAv;ike%l>8AD3jFyOvhTeQjGY9= zC)qsaIa*u9{fN{AATb1YqH!nqa>f{9EdV;b3`thtrNW+Y7)yyH(jQz#ZR`Z96H}<1 zIgiTO*Xlksjp~WhsEv*z_SqL;-FCV7H86;H{#d^g41WNsGtdUW4pxMU%XH#p>V%Jq zCqMrZl_SSdo}5C7ikGNx>GU*8C(ocn^QBkEP#PISdDx17zxo=hi4VwiRtK=x0VFD} zs2T#%D5P8epfq$Ch2y7?pE!#=LFB1$p1P4cHi^p3ztK>BXcUD5hY()83BRf~^Kds= zl)p0om4AZR;fw+Oof%{gAB8~x2DMr|>C^@RG*orFQT*mx7$ZlJrEVnOo<S&+5jlhv z%^ZNHMTI50L}|-Dr0D&o#wY5g!ur7x6tDgOR{4)bB%a#>ecupL)?>VvV>p&`G;9ta z8jA^Q)f)6&yOHEmQSu}uPY#bFzTE;)fmS8<9Dk&JM|m&Da4hF&*c?DC9v6=D_(cn1 zR5V8IjnQ4uUfP4)_gBFx-1rT-@2;S5Z5GkJuON2F%6mmjyfsfEVGe);*hv7&rfpEE zy~_S!$U6oRn|d8W)heWcEs*K7%I*VD>9wc?sM0=;Nw(%mrpy5(bzL|EK)v)9q@9C^ z?0<L}d504Xsnc&jqHf3pC)3TB2|%XeJjXGamOOeYZ3=(_Qo=^H0^Q|8aO3j`(nV`X zd-DQ<TX!NnxF2C^y)fN@5ET#hZ-Rc?#j%Y%<^j^_jBuVVS`mQq?hJfS_akH-hmQ*Q zsd#{j1qeXcvKPzLA%Fi1&@O+<F&xV|8h<tiU}Unw#d29BE0eVkKZa-B26&&{3?Bjb zw_AjL+jhZA@7(j$Mra>>BK8(h<Je}NOvW$=kjoZ?E43Ob0IK8~&)>O&@Wo4b*!LtJ zJ+Xn!W1bUhwfbI;;n-##!^oNg$mfb(bvBzb2~a3@)wz7$EI^^#?i}F8xpTPE*Ll}% zb6)cRE5vh+=c?oXk!gU|gsturpeG$L1JJ6+2UuxV?>pdd@Wys0X<b`6UJGFD|Ah2i z*wbGD<!=w*a5@e8>&&Fwu5P*c!OHpD0Su6><nukWwcU5YdR}D09(rKqm(hQQ-P{MW Sg{*G?0000<MNUMnLSTZEe=>9c delta 1248 zcmV<61RwjA3G@k&B!9a}L_t(o!?l-9Y*bYg$A9;}JM(6y(^@GcZ5N734TcpYZH$3J z5lMiBd<INW5)%U<1RC8FUHE~91QJmK5>`;CQbr{%6cHAJ!H>8RT#zV)5Nso4T4vh$ zxF0Uw%ybxL#!khPyu6$D-ud7E`JZ#oyH_w}YB-Vj0wGpAYkzUf#2g@yLST&fa?{3* z8vs3B@Az;c;U1NZjEuMwCr>5-S#MHRHjX$K#Qo=un+PEqkKZ|-n)@Wj2M2k%zn|y( z`qmB(4PEHpym@&oCCb^!qU=&iq?CA`H|?wF10bX%nH;0Ny`8?^-X%k)Pv5Etwkm;= z2_cYDlAf3du7Al%QrRr`wPsuh#+70$9A+#WW?U)8g&<`N_cNKmABe`H+`W5`j*bqN zELzn5>G1H)Y9v%G0zwEpDM1LF=iwp|BG-Or_L<LV`r!%`qQzR$&ppfE>(`K;H?M@@ zhr`euFDbEf@#4<mMB>hdb?Z9H(@}$f3{+4Gr#xJ&iGPm0AJBaM0?v<Mnqp9_5o3w| z{0mQfe~G(mUxc^z@N`!fCr+J06xM~cmRI`w0cHbnAX$TeE99`CfKu34jJAV^X!`a$ zbTo?dykK%`L2JlngS&&rK0AYMX`$zh0eZT-9}3I{MINr50{37FgdZmI+f|xQ4Uund z#yJPZ1b>s~ayZY!-@gxUX)gei^A{ivf5Kl27m%O-488*?1lC$QJKDjy=@p?T1Oo6P zQDVmj$%jH{z*vjX8k5apfY^_h@Rs&suU{wo(IJc{F}_dJ;1DVno5B&bTY;=sgwhWq zzdnZ+BADD5jMnIh2|_!z1CT#|fn?7jCJ%gwQGW_8CEhpZ@O*ztNhum6AOk0*LRf3C z)?&5B=JVK01~Wd6zjX@$q2<e%l^hMeF*dkcgHoXqPCWuOmtoM51X`OQ?}hx^REqeU zdmtPpbM`Cj?c2zB93uq67QWL4PYPTCr(RdBPXNf~vWQ#`Cj>4%LFnl&V%uK>Yq_`e zRewZ0jtGSi;c#hXxLg(=utgl<HI{;6TUCHqy$UlqiAkqvJ$QiG7taAO^1@1JZiYw% z7Ybnkt2HK*L9AYdD#K~K28zXF4gSDRbaD)no*=qz4FIF-H<7)14eNOr=YrzQ=h2xA zI+?`Zy%S+g38$V_S3pRlka*e<?d~SL<$on~Cc~|TJ^azqM*7laobO|xV)8K}J9iN6 z>BiHhgd-cR0a;kLMaQ<oA0t~^8Q-@b5swF5P3s`v*5dMcTq;G&>jOOg-rHClQiu|c ztFyhSQ3D=QdMKq(fCtQZ|6MwNy@J1LCArbjscU2ef5i$qf4a<^z3<=w3V~9pgnu*R zRgjy^J@~w99&N{t(st}<Rj|xNwkl504;vs*e-qWX3D+or8E#2y5@;j^XO}JG&c%y7 zYU}9hgI&9(t3Y7eDt@0wgkYO<94SOpZM?0@FZYOOI0X-aH)@Uesd^yg(KG_uh@YBn zB#kICa|J3UtOi=HOyzhQ%b`Aj;#tAs-vG<sReo2`uN=QB0RgG}z(9P~?%h>4kpH0( zkPr5UsfS*bjaz}az%2ehy9eATKNpA!HR6@~_D5_v0u@RpqkjN^K0S|yX>|Mm0000< KMNUMnLSTYL;6^<F diff --git a/lib/images/fileicons/32x32/sxc.png b/lib/images/fileicons/32x32/sxc.png index 50676be6afcb59893271b117a9475239ce4ad52e..cc45ffa8e545ff9675ed306482a9f827b74c6dcf 100644 GIT binary patch delta 942 zcmV;f15y082*d}FB!7!ZL_t(|0kxOiYaCS=#)I_Ii(H8RhP@EI6109Gg4Ubjov0}I z0bZymNL!I&C@o%CloGuut?4%D%qCqZO=!(hE2$>5w1$Q@CT@0jK6Z9ycD`q}QFuHL zSr%E6&7Ls(!jHquocEdEoH+?QBmb*?>h$zwb!G-iv51R%LVpEEk%K8kxx~y7iF%Zc zd6i{Zm?#vcMeZYm3OvRqXZ>B-KxLyU4f|N<CMLi#O%vxQC$A5>5|4BFSR2(Es<k?5 zb!}icpM9*K3k7(d50+sVm{b(5h`tgh+Ou#Y8{9_@z@;W%!0C8ktWr^G-4d?HOZ zWMN-dfJF(eM1N;baC6#}*j1pe8PE+=8m<CsacPOKfg&7nc56>i0OCHQeFRjnG!bT) z4QVJ51`&2DJ|OS2vw*6CrHe4LVdXYbjK%zc1RA0#S4>Mzz_OYI)q1^)rfaBFYbea# zL3!~$?yXjEe{BOt#(%|A?@r>G4-~wAd=94yH?bnFRe!2g(#?_*XxcUrH|1tDM1YAK zx7Ts#>v<gbY!)vFUi^F(FMlzImjuVoEFx$%;n<d#yR{eCOFCI{0=DCT7>x$3riIg` z6?{{;i_&j@f$wyAwT^F<WxR3xCN3|m!E4zd<v&)z&FK3MT$eX)f;o=s$_cQ6Sj{ba zSA?`&5q~5`9^1A!ZaMH<E<Ax{**N;+4LmJg#gp$`z!Ptt$44iw;`GHO=7_nzoIuO- zNLR!aHwgm|N#uh>p$8swtmzis8oP$)KE8yv$9}>5(mL8{Ag=lF{jD6&599<q-zS}B z4_O*w?A$Fp|LGMRJbV?O{IG!Ui+|$m><V5N$A8=l@1493{?`jb(c5_d!W?OVAP7OC zFv4b*;KbBjymELRuO2CPm<M_7Xc-5;D&xcNei!p2L{Y@PZIKd)!WhICp(mAlI5f6^ zpRPPW(+#kuySR2+!-euXzC3dW#|q1cq8Le<Ac|x3!kjRS<OGs9136WCfVo>b;yA^> zn}2PzvkYXjo#CI&jOWD2^C{AFdzeE(DS<R;=SmzWk^)&fSCTZ970B{taDit_C5()Z z=M8iBCeT}*bG>u=%-@?pZ*VW$%CLsH0y|0!O`sRna95yM<i!5(bMJd#_uqv4E*$1x z0rUF`6lZ24{&c1(mn$!r$6V(36Brfj7bhGTBK!M&7wqFj8V-@s-Y=v70Chd0h|2!P QRsaA107*qoM6N<$f)RDRA^-pY delta 1057 zcmV++1m63^2et^1B!B%$L_t(o!?l;oZ(Bta#(!t7<5%4fN>bTHZQ>9FYARTeut?Gn z5|9w$DMBkn1c9g`p$f!bz!r%O4~dO82#KT(s%w>qMUe_Dx~SR>Y8N~bK~hwbpeE$~ zuzhD(Twlj_Y{z!PCynlFX3lrMIp@q=VF#XgB5?_k=Z)4FYJY(N1SNuP+uxoV9DEH( zS2{WrPbAEKVSawzjGjA}08}}no}7EXF^=DVPR}4B)%$M@(UxYu9vkD0p&|PF`d%3u zAOCUa^yz_8O60OruIx%Flu}rhRdI920Ekj7EiDrchv_?cvUmK#g}(}%ElMB@5kV=1 zh*aF%{s005f`0)P78Z#_BJ_55hrfx(XNr+1Nubu|!sqo8IvC0-@l;RGk$568TS&rF zoPeq+2HY_Zx3w{P{ydV&3#~Q7Lqh<KKnPeWLBM3zP--Helwx&djn0k^Iy*Xceb-Kq zdrK=|@|QpxgR0_cfc4D{RyWr3ziZ8rNEnPMn}%6f8GrBh@2V=Q1H0C8E4jTxN(rg7 z=Grfdgb(>S+~C7f!swOTT)r`jug;>q`5?!e>v`shFae)qH0TdFX;Bpcm0_+dM8IPS zzu(#5^NAT2R+A_|l;fcWUhIkT{!1;SY=f;0Y1`lyHFvI>6i}AJQo_Y+3oNdu7#=uE zXInjYSAUXxe{+fJQ)|50+eFu+_o0DXe=PCHv3d>!>##Fq3e&SH0<Hq5x(*`(+BlIM zzCXa*{Q=(TcLFb&(tL60S1w=w8(SMvX-&_GCQd{fc)h<BC02C=+>*M(2s{}z+;lPq zMBv}mBp-fti<!A~j<+^4{A>$d?Tw_;jsn_HyMF>sc?G}M;*<C!SAPD7P{6}Okpr|w zLevL6T)cXRt(2ziXagUgc^u1v&F!7-e6M;^T!Bp5C?)vn6rWB^arL)lf<ZqTn4H^U za&F66U&}*lQ-F`&YDX#1+MrbB#j7j<+ZaCkZkiiY>%7|iATK`|W@RhQ^!z4wm$$h& zvwup!XYs)cQIsW)ajU>%4W`WTrbG-lLG$Ggw|Okuz`M^y@p~0%+fX0$a_oU1qF}Jw z2}0Y}XhSwe@{6mWja^#|oEd1&zDuUujTSV3z2~NynG1v}gAm2OLQJ&;YCMwewM|z< z;OU78ewv+SztI<oaJF&<a<mv3$@eA}!+(s7AhB3pANRRf|Ekll*u<qs6dK>lU{wTM z1I4^4rbI2+Gu|Z@%eGuHxeDA1JiC&1kM%E<I#-Eegz^+Bk`116yI?7K3*Q$mO}RsB zSpouU@7Z?fY*SOw1LQpv0+ekdB5S)o<=i&_Ex;lEKP&>%x&H-Hphl?h+`i990vc<% bKdS!$1&z(zuTf$V00000NkvXXu0mjfpkVMj diff --git a/lib/images/fileicons/32x32/sxd.png b/lib/images/fileicons/32x32/sxd.png index f715a8ff0c59797d0268639304e0ea7e87ab7038..26f44c2153d6618e2789b474dacdaf30894dee98 100644 GIT binary patch delta 943 zcmV;g15o_82*n4GB!7%aL_t(|0kxOgYaCS^$BXpQhdhY?hJ6ry60}|rLF-HLO;i-T zfDbAP(pIDxN{bH`r9@v!Yr0LkyGa*H6I!#>N~#Ght)ZcfiJQI5%$}W{o%_r-3SZBc z4T}uPcFr>UgAa$f{J!TiXU@XTp8wU}!pzL2!t5;a#Ud^YMSlStWe%qE`HReyq^?KV zm{kcOFqzBE$lOQL3OvRqXZ>B-L}jz84EtDTCnv!&3<Kw;rmm%3iO0Eotj%f-)mk03 zdLuQwpM9*Kb2-?y1D3Aqn9Ao3N~9KGSiPYs!#)69dUPK=K)Y@AS7N$Q&?u2gfKSxW zbXC~b7hq9>D}S-QC%8FHN<37c-q4}xhB90Q*3$AaUjs!r;!JN(PylkCu>k@Fuo^N< zH=4>&!gGD>R(wFtv%5f{C!onNqbV{QDaK-cDuHHGWQ!rx1cYc2RO|IV4XuGnwT9f> zZIqYp;qF=m_trOYc;Z()_3jj&`5=$?kImy`?gm!nwSP*rO8Qw!0xi=da#C(aT?QDq zerp2<zh1!p&*t!g<i*eD@bVY)cu8{f^b*`o3vE+Ch~8dcFWJsg6ENFt0=?OUXbGGu zt>T;99h83ii|-UGYju2^U%?y4Zs5}5I_!=~Q2t|$n-PxFhGlW$7IV<HEHwc(5Yg({ zTQa0$$$ua@^4K)xai<NZW5JdPVdBV-*YUJ`6;Hl%9#6b^4j&!Af>RfknIrFY)C4-V zP5L61oWyf&guX-Idp3_bqNWMFHGUP(eS8sbkN<*&<qdQrS6*}AIK3R(an%HD$06Iz zHsZ*`_}QCy{?p4iaOes?`C$>?7yrbWxmCO_kAJxr-aBy(w(Y?4WG^3}2XoW~T-PJ; zJs(?fh~v|D@XDbDyn492%>uz|N6I+xRT&?C_d8tIhwuCB+X*!R-wOyF8G0gr7YD}| z@zdq|Xjv}SH49g7HE_PXfiF+r#?jmgd_O=Kh46zQ33K3izM4Q7!~`cx_c4D{Ll8vx zcYmvkZX6SAbz}Uq74w`Nc|JlE?Fe%ys3s7F-AoCBP*EW6W=a@EsseG=q!)O$RKlK# ziOgZ{Py&hSpG)4uF<C<kB!YJ&DKkhcs}<NyVzdIuz|pQivDg<F@J@%`1I!;N!0*CQ z{tB2sP@p(F>+`QOO}SiI!93<Ne~`eKWGJ6x{|MPP=(}JqFVb*?j3vK}{sXY^r|Cfh RtNH){002ovPDHLkV1lNn%4z@r delta 1058 zcmV+-1l{|^2e$~2B!B)%L_t(o!?l;sYg|<n$3N%3$^7ax#+sCwN}EiKC{59YiHjtS zF;NilC&m_n5ycXaqWBlM72Nm(+{{J<lQz=nP=kvKRTo{9b|dXVYl0?~nnaqI-#=#N z-Rt7bOeSw;GCzz5F7NT)efNIO_nvd^eZr1;;)%p1M4mTVV}Gc{3?L{GY}@|!)ZpN2 zK)TYeL-9ny?3c~Y&zsS6=MsS0Yf?|%z26we??0wz5RvNrH->0SGhdI5@y5^){e69} zjE#@~ICT2-Kq)2i=~PyBr4&jjEX%66WxoLsrC3^8CL9jack*QK_=O99x|}TvkTVfM zDTRns+_L=v1b+ww11u~o5{X3U?d}eL6OYdngD445Ys;F?>m_tBlvCoVo}MG|L}Jzr z;VBNFYKnpEHxIY9F?#+ylF19LHN!(g0F6KhSSkTvGHWO`0Vt(dU0I{Eql3<lj)M2v z336{~1<dXx(8i#uxEf%6bA#25_1*8a=13$A#_XAfIe)V<-tXU4Ra6HG)^aPky#u9$ zR9bWGmqo&d{2XrZVJTts${jA>n8jCT(cXNJ<IVLv^F)|{&zUsn4>)O26@bc+D+>|u zSi*02H~4&FhK1E63J~RZsDT%IqP+i73n|-RYeU*LWQ$sMteO;1mcmlP#cK;JuBR9t zI7(+*J%9IBl6-%2iR)8qyxH4C*Q58Lfm^>X@yM}y4g~A4GcfM-tO_8jz^Sgoh=4Xu zB!}-0@OFQIclw>cOQtkmT>6#E*Z;!ShE!V9bE1h8(FR`cZ$*h!9YD6E?ht_|qeeEJ zi~$k&XEn)(U)^G6Zk^+;jSN5ALRWhuskEbjHh<KvfKy(<@3r_OKFO7z|0Wdh@KEFc zt&tG*K@S(N-eoJLX*=4$$7deLvS4$2XFD%fPl_v$NgJgEU!CI9i7Bq$UM3jyqk+k} zEhgu-ob|Olv^E9!=&g2?0<8^7RbIUI1h9?av+t(4F}2RC-4F8elVMi2(oD~9a&LK? zn}0K_1bh}BybwiM;!JM2Jl0_LINp?q0Vim_{NWCdMH_hcxhQ_GB5fP$gI<n35JVIV zb~{06+Zt`i#mMgBDrjTZ76WGnnsd*Rsq97z8o(~Qsb<Ckp~@gcv9BhkT7Vjlq~*5h ziU6LTnBb?`S@zrdA`#A3u0Wm^BO|-LiGRf~BO^#GwyRI}xw~&oY3LrfK+-%2cb{Tl zH3PW4a!*vr1Z7WAWdkS{%e8!%QnFWTo`R$;v;J;r-Aa^Ftl0Pk0PbC|l)Uce`7q@U zt$P9pti5O3p|ed*MGuhwp%9>K8xdJ6c$IhG0JH#y`2TDXn9lz%5SJPu_qlzaEgK1} c<^QPu3%QTY+)sHQzW@LL07*qoM6N<$f--&!3;+NC diff --git a/lib/images/fileicons/32x32/sxi.png b/lib/images/fileicons/32x32/sxi.png index 3d9f31d3bc097cc3e02e84738e9dd0690129cb69..62e90bc97f9b35a92d0359c0f6fd92cc8b54d20f 100644 GIT binary patch delta 940 zcmV;d15^B~2*L-DB!7uXL_t(|0kxOiYaCS=#*6gQi(H8RhP@EI6109Gg4Ubjov0}I z0bZymNL!I&C@o%CloGuut?4%D>?U0(O=!(hE2$>5w1$Q@CT@0jK6Z9ycD`q}QFuHL zyDYM_n>p$13qKCCbKd9t=FACXcKxq*7iVTJ6lZ6llu9_aBY%n<A#yOSDCe0e$Xt)I zF|RUB6O)C)jL3Z?tH5J?a@OC~O;k5)(y)(pdU6sh!!U4WYU)bXop_wv$J(sbQL8sl zZ>X8!eD<+^E)?Lp9$31rV@gpBN@NybSVPsMVINCuJv#U9!M2_LPD~ez8YMCb@QGAS zmxX<O0Tv~=6Mwxk!NX}$Vq1ZRszcKaX}AllrR8P528wXRsqUGe0K__DLj;OosUl1_ zn$l1r@IySP_<&sJ!2-pufF{C>rkUGFF&6VP2{c7ht{A4AfN8b}YK=x8RZ~%|)lrzc ziOSL)++M5V&iW<}PW+0e-kriTA1HYL$UKf0u3=T&tAEyNq@N`v(6THd7Uf~oMSy{; zH#V^U>jmunYz{97Ui^FxFMlzQmjs7TF2QfNU|Xh`+dT{HCA};;0n4@t^kx%g%fyND zD!wV)LixA9_)f91*1)&Q3f?$!4Hp*I;kGS;${%YyjPN`gj>Cmp%z^DVasq51W~*!O zh>*4;f`7!wYs(VXZ5v+Ofh#ag3x|HZil@b^c=DaIc;d}7_~_^*oH)1495L6E6KK0G z>5DjGk-&EmhaN!~xV+|wx@O|7@ymGb<MViX{1+@NZ=jR-;+_Z3>*lzgFDKx79_cl^ zNRt5Lr?2DrPcLHMflK)0hedo}`V*(-R`I&H=6_ju@7NW%u7@BHy}bt@%#jxG{Qx8k zLTsfmj!xggD+d<v>cL8n1(4ScRj}`?3O@YqcQHRi7>4Y-A94a=5P^6i^q6uR`^OjY z)5W`JIX>1k2bXWCI9u7kmnU!HaA5^u7$Ht#gi(Y+m=gq{oIo6<AjivhF@Ie{6eaj~ ztAB$|nu2U~Qv9=(@;5Q^_XJ6DUzkHdIe{eZ<VqC9k^*TbSK=g*6-e_YyTG&MGImW& z<PCElPGF$=zYWgmk2wkq25!43Yot3cTrhuuAq(cc1EmrtW_kZRI|JMOPss1WQT`P$ zf2crdb~fa{&NStA<puMY%lu&iV}d<`y(J@L&#>=;-MmS|5i&OTW%M7=ftSX5h;elQ O0000<MNUMnLSTZ5OUAVT delta 1046 zcmV+x1nK+22dfB>B!BWrL_t(o!?l;oYg|<v$3MSwC-dqwjWsDVl{T3eQJSI)6BkJu zW1=A96Jra(h+-*7QTz+s3T}LWo7sq9(ndNRYH(4Z>Y|I%ZlqoKNYJFECXpuQ{g|11 zj*B~YGMUUwW~Sp04)@;k{Qkbb*SW&Bc;bn~B}85@T4Sh241XXf5p3K3?&RR$>p;5P z)uDJIVQM9Fb8}|o+_?mxN*(ISdG{OR=>6B!G$K;D{>Bh(Y37^JQQjOHqQ9^2)zPuB zpN3AI8Ysp@E;{AXu9QM4g=JY~H+KzyD8=I965()|z7r>U$1YsBlc#J!09g?clv0RD z+0C5~AV44(V1Isofk-4mZ+Cb2+jxAs5Qw4xs%@_Lyk0{4Ls=%C?&&!kPb6mYL3j!S zP*wSWyXKL$Hb%~$M>27twPtu|2%r%N0gFWdn2ZgjDga6;R+d-k?C7Agqhr^&cAVT> zoB^}b1lkx>1y2L4ZLG7hzP58*YYs=kU`)v{%!-xKzJGR4RaPF@Wy{Uv);1_5q|%ye zzb+6y=;u&_4@(InS8j9p#tgnXi}vRI9BZ!U*(bvUe9oakf4~WgiU6n#a%CX`9!vP+ z?mAzLPcy%gL;<244K?smPm~W{ZXsnGY;8!}1~;j>dsW4NvJ{pQE?%2wVJ*e*z!5sz z>bbX^<bQ{oi(H>v<*nW(x*j`#25$Yi$fHN=*%z$C&Vb1e&x!!J44mvbga~NkcyjoG z0Ppk%c(>niyktuA<)z=aeEn~1ZAhgxJ;$3k9&O-_{#KM&l>u;5>NX<qWY}=S$ruoU ze^-)x^z|*KXV*B^+Q{&8Ep)Xvl1e)aXhZc3IDhFC{9cPs;}cx@<sU);4-ZH7(HaR+ zAM|kX>RmQdnzkbid~*5;EDJWaw#)fm`J^xdnXpkx@YN|k8=vIr?@I)Oel##KyUE1t zrej~rLu*rjkKb-bDbU)WRQbuPBmmnOKL37-8<T6i*8LE#JQZenGtJc82KSb>xH-K- zz<+1);fqm}CC=eip2iwXiR(=fA8?%Js~>Okc(j4{o{!@9D$=&0KIrA>gF!^WV7KFh zwyn{ItdHzWu7Wmpbv|%<pgG%@Ou2;?G=RNlQO)cHLWNF<qNXCIQUFz6N%tz#WdV3* ze4L+WW~jCFMIxNNAF|DvGdr5wmp`Xae}BbcSm<zx#dcF0i)F`(&8Z0h_ki5*LLjP< zvP~edShnSY$z`A#@$3rPA|}WOlW&@`m?*Hnr(_i@KzXVDTrg!-*?a&3tMA)(=xkF{ z!3*SlBm$IeBO<H2hH~B;fEM5&|DP-XQ@Q^IlE+3U|K46>Ndl|6KdS!$-3!MuxDWJY Qm;e9(07*qoM6N<$f(9f4f&c&j diff --git a/lib/images/fileicons/32x32/sxw.png b/lib/images/fileicons/32x32/sxw.png index bd8ab14363ebf58d5248e420d51752003c467678..5196307df64c21c79ddd2dc3c126758abfbf9530 100644 GIT binary patch delta 947 zcmV;k15EtB2*?MJBYy*rNkl<ZcmcJS+iM(E9LJ0F(T6;U|Au`KeG;@@5JBrp@l8|| zynqiX3er}j7)px|7NtaAN^81Jy1PjiN)uYM)Jm!eEv=!UjftDxoy*S7%+7sg8-=gu z%Z8y0&32B={@}yOTz=p4nKLJ_v+KUvU74A=P??=Yxmv}!|9?dV97PVM%jNUT6y&Z) z*;rH=hJndaX-4Eel2_m{J~`{}#wHq@O=;N2Iz2fFmagkKGc|Q3?@Bz*<zsC&TWGf0 zXtkBx@P78OelC^ZI4)S4reUgF)+v!&fMIP#m4<zyxb*1Xy9dj%)0LR6R8&gj65tal zswNBjQUMkvxPKDcdxD$Oq{Kr7+KL8M)1~1mu$GpW`5Gv~5vK-wf&vipj13W}fTf5q zP47rU3EvB_Q}F>g&&~psfq*K)^o~*3NHG@ka|v`rQ=#aFoPc3;37YM8ilQoLG+QXm z-9&xq4sNeCaA$oJ2Pb~TQ}0gUnGec%|HwR!m#$$|Tz_jcn<UMW66l&H5tDK=Y9c_# z)f*ew|Mdd)el~{}1TTI*hnK&Y$4i34Czs&$y0A<`+&kC{qL-vuQUa!B5onzbjIMzb zwN-pmx`o<rfAO7SWvz{G%PV-}$TeJ8T!+&$3F?2WaWleoE!Z|E?lK3KZOaL;ff(I^ zy)8m|wtol`Bacl}9QQ1^JsXa|Fiaf!@hYAcuj0vf&f<wT&)}n@mvG|TGIPYeuAD&6 zaY!m+i%ERXK@_+If$#8`BU-9~x5h8yxsT7|?eSl*u)KkO?1^hGTz8P;xSpJV<GN(K z*+CNf7(aa-&wqLm`wm>fCqFFW`|6)KHMfe_#eXsP!h6TAz;RsozUbux3}BADfam!j zfgfNiiEwoK7G629fL9OJw^;yr?NA;2zN+KH?|v8e2MB_IeGfuTAn-#FSA-rb-^Tv& zMf`N}F1ogdb=Ah@8w$?WH}K`jn>burK@fz9;s`+)A`5eTKadlM!UW`a?Jnl8s|dpw z|9@`v(N7YPt$u=kwi2EbBhSZ(;|IbV3d#w@QNK{aFp?BV`h^n3v8+H+H2DRdt<|t= zVxnl6D=(0#^xXZyne#jSEiaInNMceM0f`mZL1Kgg8CauVfoe4s$W-npXJ!9R1s?XB zkl%%){4ZesP=V^~Y`~w+H05#?1@oB8{48MtV}d<`y(47Lu<wH1yhy_lGM4=^`VZFd VtAF$-fOG%=002ovPDHLkV1lwp)G`17 delta 1066 zcmV+_1l9Y<2fhf9BYy-1Nkl<ZSi`lK%Wqpn6vlru*YT^aF(nChQJXjfftm^yBrK9N zgajmncmy@HQbZ7lsuHS-_zTz~vEd~)-XJ8BHmI&!A{Ip|u;`*{H>h0{NCZhyNm4bz zc_+5-42$dQI5)OqyY45A?%cWa_|7-yoS7@wf-9a#TttXhw0}})s(}UsQV2}b{NdQ( z;87q`?&v@~k<him+}xZVIddif$Wn{C^6Fl#ExZ4onnnmwx&2xbZEoVb(NW$W8ltba zcVKjE?3bbA$NP&Zk<U)rvP&tEQeqfJ*~K0MAfzOjTqGP0(|hDd&)B(h|2T{-NFWCx z1X4<b5M>v;KYxG#e10GE^9w{G5qi41!r#Z^(}hSBB~Wd#;c>eO><#3Uc)q)Pe>{<x zaguNqCLpWw0ej37t*wllJ&VZ3g;I*)p&@{JAOIwb5YX8@6jc$BQnI|XLPvW$9qsKq zzAMYg-NhBq+qXbzjjZ6Qfz|ajme*Fde^-kAkuYdoGJgznFtXOy?kUU413UI|Bel6j zN(#~$#noF2g!g%A40$l5VC3>`E?u9&Q)kfDw3kCoL0)_|jL%~&>i7Dru&9WD%rch- zLV(K<{CQ`MFUO~uUrr$bAuS6P@LG424_|L4ZE8%V$(R~Dso8T?rGPXfh7_E?I?uvt zn&JKfbbqu4xwn+!ryEJGO|I}xPXnD#J%j>o{*~m(gF*KA>oBuqoZ(p!0b7A%os9?q zN?V>Be%Qx*eLmjrvm7s#R(yT&cP?G~7gK4{8AbQu1`bC<yw%r&6h>tP?3B922wYh; z>~PW=gn<8+Q+)jGO{Qm8In+|m@Jr2fw$+o)SbqvAP4x;`=@q<ggU{j<T>kAY0iTP< zBYS9x1PJ<FoWF91jkKcmK!{IIJcD7t`sUVgzFR&itUxwwq!f7SB%hB@a^;Uj{C+PA zn3&yQVs^vYU&BR9gO5+%Z9_^>N+V_Y$*Uv*Q)|BXaf<7ctGwCu7;iimW@#hC)Z9Av z7JoOnF};k>WAM?dQKTWP#SMqW3UrC<O%WfkoaURKZ}W6C#0M`&@wz1$Qxo*NIrxYl zAz`q~azfKoC{4~swkKDC(q?r&aH78{*Op4#2Q4T7bJs&PI~NElbV4LGh0v7}sPam> z+c8}hffvTd`E_Q7TBA1-;Z&t!>ysz96@R<U*~i<X{zuSOY~Ywo}enEcdNgpGr`a zfW1Kedm$3{i;`O)VzFFt%Ia*ZjRJYz>YUuRHsA7mCGrV5>xJgeJLhs}j9<7g_mz|n zEDBC5#nFL*M}fNq6%ep;+B5^F8X5{-Anzj)AWah?#7ZdzLO?UHj|YbZU@HH=KqEN( kA>h2X*BB{aCI3hDe-k*^8lO*7)c^nh07*qoM6N<$f&_N@!2kdN diff --git a/lib/images/fileicons/32x32/tar.png b/lib/images/fileicons/32x32/tar.png index 4a420a22acca07582b4b82a0eac030ad6aa5605c..8eb0ef489c7019f4acd8966c6211ee3749744ce5 100644 GIT binary patch delta 902 zcmV;119|-02a*Sn8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l}SWFRCobx&M|8gK@`C8|9i9R#fxBqLC_q6SR6sIvlN0Nu@~$G z!OBwe8GnM7egJJmg!Bedh%q3D#Z^~|7DmCKqIVwI&3nS$&ShBl4?7IYZyqlLJ-%R0 zl8gSF7}GM4llN)1yFKw4P-jy}@>`D{6mQ2CfjA)~!Vi(bs=fPTH2^{&4OxDFO?O8& z1EM4uEHPNk-~6`r3C4-X;#&_tjB4O$<-Qi;j(>>1yf=kP1VM|u*gyT_`>Ct!>@O`o zUoP^48_AM$1oqCZsO)UgyX`jo(qj&efWoK#3a|Ehci4V$=H`{*@H{CHm|WiaeBrJ; zYx4T(xwU~bK{>v7iH|r!zwhHxvIyeo-?BrheuZ+8EHr@lyu`8YE-3&7@=gMBloaG3 zzJFjdpe{Kn=zw&+B$johQ#K~3bd8vb=F-?9dv?H4$1-g$d7Va{0_XoU0Z&G>G#^3L zI=}|&)lpp`0oCsf;#ZvwkPe#8X$93=niEjk(+EQSIDYXKA{cc$*7DxQHL$-ET63!b cN^54oKiIjBi$H?0jsO4v07*qoM6N<$f-qGA4gdfE delta 976 zcmV;>126oN2ipgb8Gi-<0047(dh`GQ1ENVpK~z}7wU^6pTSXMce`l_rwG&d)D7KrV z4lQOIiFyHXO9-2m4V9><WWk07Y<R5lKk(`w0Bf2yP|Hvj-9Z*jLKlctkf1_INs~)Z zYdH|p2HSU7*uHV>d;Lmsq>+8cGsoZg<~wK3752=N&E>vD<bPFdS!nt(4G2nvN~Ln^ zjmwu`2g=><4rg;YeOR`&wWY6Jzn%kByFc|bd=F?{jeB+NJ|fb4{8}@SIK`K9bG(_! zFf%=UX>NZ0hs>2LuedSMh)&gMS4yFj!Z3`kM|}@~C`F;LO*9&1`rNtm^EYp<HwEhm zz%~&<DTRo1J%8%!0R#vh3-ahuo>(l#`KhVsSJ~`+ClIax`W<!i`+S54!Zs5xrPJ|j zE@w7_@HhideQBV+=h-u7xOU?PQp*d=vUn?#0XPAKfr1MFT{}Z@1W;J|nB9#ZZO3-5 z3ijON@ieK|J|T7XY|DPDDsrDY1A6}vSX!fMpWDk<8Gqteo}3uMG<S$aj}eQ90Wddr zF#r6QSS(DSvcfO9St2ja?(MfM;;|@b-8KzvGiuS-Kev}YBjUZsP~>R@7)=agZv4%i z#SH+G&qYbSFoL!;8c_Lr<QG3BGBsQC<6a6niZH+U5hI}o44;hS4TdqzB6pWo!SFD1 zVUn2(lYd}%xVyB9X%_JY!wjE{GZK2hU$@_@`ccv&044T#{Kp+4iBUG!AF{l#f;ZqN zeKEy&at!73qkMkGlVhYWrtk**EHA9Ex&DwyVw6&0&GyqxC2Uc1RTmY?gO@md>L-pT zs(Am|)%!(5b^TLg6HJZ)+M+!8Jm~LR(zAB}0Dq+dPk#RzQ64ny(^JrBtBgN#datO7 z(HnqzNwuRZZ{rCLfOw%(eb5?o3Ci2mn^CEQGayzG!yf`MY`WWC$=ZilMQ1j<VnCW0 zu!?vCK{To>0D=WpvDO=?g99+w1%IgH`8VpoVAlqq+q5?>8Zh=Bhp&t=Fi6*Jk^sJP z?SGauuymz=4JcoTpTD_<)nkvQq`Fr`5PB40V|hxxeVc=t=w1Qz*^+j;rn>_0-PM;d ze_P<NEtZ^yiTAr@pla`Y-pa%m?@G&WPIHa(J*T0Q<3?xgp4+YK89=Y>xG{4i0GcCp zo9_fdHOZADH3$F7{T6f=liPErbx!_0O-U7Wr*!(maO9Z}92>}kL|zg>V8^Ly*KG($ y0Ffg+ggmg;_+B7QY=oQp_CvP+sIp+csQwRGXLOscLcpN_0000<MNUMnLSTZ-=hBt{ diff --git a/lib/images/fileicons/32x32/tgz.png b/lib/images/fileicons/32x32/tgz.png index 8cf6af41ac83d7db8fc2c7171f6194422f5cb60f..77faacb92bd6fba45acef5faa05b31b66838bbb4 100644 GIT binary patch delta 908 zcmV;719SZ62bTws8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;nn^@KRCobx&M|9KQ53-O|2gkHQ&Yhfi=ZunIE13OISNIQx(n`t z;N+<J41YmKKY%VGLU#)t#99!<AyY=t!75l(G%@tO-lM$SmmaVALy`;U$H~b-k1hnm zWuo85fk`>Y@w=q$Y>jOS)YuSQcH_al^7SY*K#VMN!VZxBT6ps-L;!yQ_+<I*72O$z zDG<dKV2S=(@#<&r8$3AnP;B%5yI}-|*6wpDW`Bs-^E(r$G$7NmDECf&`+DLs+j~ok zPnXML|C&2;j*Q*Yt18<YtlYFP__V?t90G+8omF1!uH0hl*{SQ727|MBATYkT`SILs zGuGwh<1_1hNkKI_e}VTHLZ@S+N^%eCQ@`W~)cwe+Me-~GV)N3hH8c4aC{VN<C{R2o zK!0o@Oo5sd9?$}5TSZgemR6N)P-zF6RJ4%fhWyDshaJf^J@P6^=7I5l>cFERGn#Ke zT^FEN|McP;2kKdm`UCOdfUE20DTtfm+yNyP|GpddXalmz(0|os4H&jt0n#*#A_%|7 i%*;XrC^HKI_yg#Kj__lk@y`GN002ovP6b4+LSTZ8lnG-1 delta 988 zcmV<210(#G2j>Tn8Gi-<0047(dh`GQ1FlI#K~z}7wU^6pTSXMce`l_rwG&d)D7KrV z4lQOIiFyHXO9-2m4V9><WR(pIvf;7H|G=w%09n(tfm(*L=nk@I61qUFf&>*xN}61P zTFZu*HrT$y!uE~h=d}|)X>_lzXU_TNn=@z52>WoQGnsD?d4FA77Mgyb0YQmSE|+h= zb@}p}K*{OoU^<i0M}?i89ew@AjSQeVId#>&`?Rjidwt^pBGUW(wPqrAiZ2!xxSC2a zGd+E2VR7;M)Ril*wNs*=ovO*MltL+mVHl2EZ47`YMJ|^o91b&m?%essTemhFCfkyL z4G}>pg@`zAwSWEq0{D;ldHgs_Bog8L)KvJ(boxOn5^V|e+iLK7JOl@Vwi2%-lhJf0 zV>Xg-wI-nYih<gg=g*ws`puh2bzfMP#oMVAzzHA-<k}F>)isos1ad1Mv$yqwZP?zc zg8l8uc#^~$pO83vwrRXo335++1@yrsu(U>1pZV2m41e(pPfrYCn!7~8$B0CO0GQjm zn1B33Bof3|UgPJ?9HE!z_QzWm(MTAy?zjzY7}eR=p81u}2)XYw6nYi`Mq|U6TYqtP zc?*E}3t<v3ji4=!22}Pw+2v0OP0dy9v`+<HgD|`N5hH<z44;hR_6IS|0{2$d!EiBi zVUn2(lYd~ixVN&7X%=w%gAAXHG7@;mpLgD?*iq6W0VQ^O^7~yvu~D`+AF;Z$hTG>Q zc`?Cwd<^CBqC8&4<6|T*CUE<_tS+swz4?exY?NYd!?xoj6E;P2B`(U81}|~^)Q=pG zRrvnBrw;}VmHy9+O)xnIXp7R|i=e-2+Mc}=0Dmavc>3E{h;pInygdbtwn}(Ir}vYZ z7`+jwrBr)%r93YG0Eip9<p-@n7on7|oQz5xUIDQR7~TMgVawg|NY)<2DzsM9kpj}7 zfK|Zl^P^FY2nZHfg=%e}4o|>f54?e{>t7!S275LE-J!f`69dM<<?xg+1_p6lCJEpv zRew)O1520tj{)Tg@YC0~v3ji0lvKuw2ttoRSf8Ha@7&?A5Zx<*K1<SW$Fw5?-(Gta z^VcPg8j<)kOuX+@fePOJyjh9)S!wy-{H%2B-{TTAJF7R;_`8*}c71vx&<*u7?#DUZ zE)Cr<KPyd+dU4*YfWtzx-Fnx)wNs{*eN|WcQ?PR&IsMknzN;aF?iNpf7z{o4LCXU2 z5Q%`I2m-sUvUUwaKnw`+{~-%()ZYuFL5*Nz-G0RQmx>DZMfE>#zjm9fmP`%+0000< KMNUMnLSTXktmQKR diff --git a/lib/images/fileicons/32x32/txt.png b/lib/images/fileicons/32x32/txt.png index d9ff7d59551b769882f69027ab5604f03b00819f..5d09e3c93a9cb49d4ef196b3da6982c6d24b6914 100644 GIT binary patch delta 648 zcmX@YHkEaPWIZzj1B1(wu46#zPk>K|E0D$omM&kuYR#Ip>(?(^xpLLowJX8wbsIL! zoH=vR(xr=+E?u&GIZ(~AWy_W?U%q0+ij_cRK(uPrY9IoFwQE<e1EO_nfMDIawQJX` zUAwj(Xx!Qj8-ToZ>(*`BwCU98)A#N_xc}hcgNKhEK6?D<@sr0-o<4r^?8(z-Po6!0 z3PjIeJOhH~FP;Ozi<d8+zkKoHB^bPV_4@VeH$d?A&D*!{-hFuY9tb|X{{TcEKYsl5 z>Eq{5pFV&7^yTyCFJHcV{rctm*Kgmx)qnl*?fds{-+%o0`Sbt({}TDeyMf*pED7=p zW?*9B5fBkGa9Y1{>%phbUw^i{c6<&41Eaa8i(^Q|t*Pg;!<!rg8WL}L>|Xv<b<x#W z;VV8{7Hzt8X2T0N@#p{lPhZwjW|1dfWx>O}=Z&RA+revhW-VBCC^EHe(~ARh4xVb_ znwE8;-fq#Y4a|Q_x4OGI9Dl79$Ic~eaX&@nL)8@aqc3&8n9tzar5+;QWia<ZLib;` z<91h@4?At#z}qLu9%`|7!5{Y@ibjP2jhj#ZJlx*Jwa#>1hJnkbPL;TVH@t$pc_kSJ zPJ23~id3X~t&aaT<UJ-;Zo)C4HsJZeeN!f}Z)^R|Z&JVGx(BP`CX2e9cC+VU5nO`2 z^GxSu2rLY;ytOrVwaipqnZPej&E>t}QZ-q7E<SK>XIZ<)Ph0fBcAE#q9oJtn9L#ap zbB(R!UpD(hmM=#fR2qLDkKf@rq1YvLUO`b|LfZ7No1W<;q`93>`SFdrTV!&r<+=8| QpakaW>gTe~DS@#G0Dcu`z5oCK delta 824 zcmV-81IPT81;hrB8Gi-<0047(dh`GQ0}Dw+K~z}7wO3nD6G0d~Gh0ARO$-rjc@Y!* z2jvOcZlOZCv{Z|dH2T^f)n~aWn*|CHQcR2d5FtJ^HG!ZMjMkmchqCMLcDHm(Imu=x zbNS}XnKR$cGW>^6QPnLlHcLW)&<O|t17{4Hrft7jT+9IY+kft8zoM$tEmW&jT3%gM z0q|Cn`b_0}M2&TSJw5?r%=`L@@ND=g-mk3SZ8nPuSx&F4ua~k*OOtL&nAve%cFs9C z=a3|+?MEL20E}~-pZ`E05P%#GN7gqszS$P*NWcJN44iW?#@c@L{s6!L^xyBt>FF7Q z!5|`IV}TEfa)07P!j(X$kB+|HUicsQ4JD%E<3oz7R_r8v&IEWz9?-`;9~r^&+8WsP zxe!9&T{a5<j{x`qoVyU9>pf&05#XHT;%5z`p%6wxp{91xFnO=L0%Y9+K?LsMO#m)` zUE$*D(%LQrhJpcrsO2#<AYHG%dvD%W9%$N29Y;rBjDI6$$SDNE;fSS8uRAQ45S3%5 zfbd9wTSr8qQP%)YZSurK+rDW_fpVz?Ns{bo4}u6$S;k?x41PUEcfA~oxyJKMAa=uw z%#%5u4kmdcVBhb9ViA(W0W=&v8IR+0u?S}BM?{#6$8k_Bf{5^9YN~q*n1ktvJJh-L z_3Qy|JAXENd!H=1o`^t1n4V5xe}B)Y7eXMBn8EJu4(8_OyGLMlX3jOhOk%dFE;*mF z<u~%`0jp`YwpB33kV>Xe*x52XLPQWkAeBsGyRd1=2dQM*l!CR}c_6*;$|#!yo3W63 z>Hd*|M-#TbM0p1zuLL^0lHT;0Zi_&nP(Y<pL4UUq3<kX@&_FJiYpToV^T_3L$mjEx zetNxA|CZ{Q%8x%PO0}=2r%3_(g!W0@+UyGauGjH8lX(K*`>pNfHo50pRHp-5$=*4E zHt&Jvm3t!L5Z~efWplII!}*<^g1QjMq|+7;_-t%ybxrdR3=TS8Aa9WfP}ejt#%iq; zcrgfI7{CDT4rc(4&Hn|=mJ|H;dwZAh2SCmIqxugoRdj^5OFbU|0000<MNUMnLSTXo CK#AV~ diff --git a/lib/images/fileicons/32x32/wav.png b/lib/images/fileicons/32x32/wav.png index c39a8445fe91d2a21ec62d6a3c800647639eaca9..37b871be4423664741938f3db2ac1f127ac161e6 100644 GIT binary patch literal 888 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V4M`-6XFWw;sQ&TFJHB0&D!<r zm#tj6YVF#UVD`EV8yIFXn3<WGo10r$SXf$GT3K1ySX<lJ0FjNIot?cs5ZOBb!6pYs zM@Kg|HxGAr4-XGdPfve;|M2ke$jHc~q@?WZ>>MD-1%dp6f`*2M#>U3(?(UwRp5ETx zsZ*y;n>KCw3=o((Yu22(bLY;Rw`l3o#Y>kiS-u?Tu+?kVu3iU3>(;DW2Xx`u4I8#? z-M(YTj$OO<95}H501zBJbmZvqQ>RZ~zH;T>{Rj6SJbdu*(ZffNA3c8Z_{r19Po6z_ z`s~TG=TCv?`HN>j@chMdAb9ce`OB9tp1*wY;^m8%uU>+{tCz3dynOxo6$rg~_4@7W zH$d?A&D*!{-hFuY9tb|X{{TcEKYaM~@#CjYA3uNk1Vmpx1JUO%U%q_(^6lG~@87<D z`Tq6Ww{Ks6eEa_W+xH*efBgLM6NrBO{Q2wG@85s^{{8pw|G)nrU>laT78oUhB|(0{ z3`{IM0wQ7tPU|;rJ^1wb>(6%Aj?V!`U5lrSV@SoV+Vh;|Oo1W?KK2BbwXO+X#If*= z_i2-fb2VEwy;pJiruzEty|~Y(VwOLQKWqJc-~E}zK`TRiCZ0e2*k(__i4{+ZSWjfF zR&ZyljGHm{@YzEgE!|JcS5(drXD)hVW8t5;bc&+`&m)%t)qaJTLnjnAbZ|FtPg=eq z^w^(<RslVZ%YM^~C0NXOZ8mJtQe|_Vcy?~{U+xKyu4X=Hd)o0Oa`v28(ivL|f5jTL z9?)&(y;bSE`RcW&FU(^mCdxMF-delx{>7VVxrTR^s_}fwSRdo;{`<lMpRe9ohaOD$ zwr+X)QR_;X<N}}HTFaOJYqs$-=$LfRj!|pz#fxg^f~H5!Nfc1-HN6)7Druuub-wv` zmuK+`ev|SZ74F@8JWf^Dz+=La*)E6jSDF3{?)K(+=lMA8oK2yAdGEo+PUaFe+Fu$D zP7dObDD{#wWQcvn{pCud(t_~+OhHlq{<h^DkUrV<X2q|cl0SJq{Qan3Be_7dqP%R+ q0$=8^$?NB|Ep14=dTJxj&cAGqPA}Zdd^?YV@{gyhpUXO@geCw_ZRJt` delta 933 zcmV;W16us}2CxT^8Gi-<0047(dh`GQ19wS8K~z}7wU<q78$}eye>3}$*lQ#g(a3I* zC{j5^YDJY0f!kukjS~?Sl`OcnLRH~h!J$ndRZ*q#aqF3;Hi|KI?xZKwYtsuoQHw(r zMXdsCy^)>W;gGDoUa!siqkn0%yY_o;{_p?Z%+3lr&@0vIU4Ml5KzSaDQJ?^U6av?E zYagFE^AWHc*E?0IR@J1ixw)xs-?>u-<e*9Q!2PsRdwKu)xQ-BF`23aP^&_wG)5;2; z6pOr<&wsd5F0U8Qo_)Wc5<zy-mt9JUloCzTVh`U3KuF2<_TOYO8S<x2oi4Ag{uN3# zl0X|m2&9w<A%9{I-yT2!iDZJOPoI&^W;vb9Wqz(y>QN;65*T&(m@-XLFQwW_ynFKG zp-Q#-Buqk&CLl-Z0pI71qer=2Dk1jQh39#ES}X#*0;GWLJ_OW$4Mkr9tyZgD?@pO~ z!is<Yv6-KnV}5R~$Jg6ya<jhzs=EZ9QpnKNoHBXz$A2Sq-QeNF2S_Q|c(8xn*r3^L z@@uVz=XxDK&*M-w14<2ChHYs3*+*TcrxJYi<s}Xueih5Iuq=z2nHen0Vs>_xQmI5@ zDnX<1Jm4o|?E^ivjC3${blsp(C}7(*wr#VuwMD&N$8ns!&Nf0lBp8x_96&(RQA$xR zmpOL)IDf9|^5%&XD5Y3fSm3ks=h1{VFveI4NGWJGo7C3UqMLMg7ftI{V4$Kymq6EX zUAM1IaCNkQ6WVYD{4Ldom9#Jn13zYP+r9t$eSY}ydmP6holavI23p|%i72qX{u|%j zyos~pkWL@KG|jfn*WX-aad8pLvTz)STCIk&vwstNBa2obv}~4^mU<@fZTvT=QVP%W zXti1-rl)B&TazOYHHmL?<;qoV-1wG8qd_v6<nraEo)~Jt@up7?bT`elYs*}}-kD^1 zdAV(qdnZTkm%Cl|jpsXEF+Amt*8^|OzfEPe%BT<w*@S}+Q6msg!x9+rNcw-T=~x5` zYkvjqJ-NrEk<aG2z{U7tt8*&Wy+5M<k9v+-f*2>@a|&@w^nH#CeH>Y%vJ<yNn@k*1 zV-W}|FbecgyY^%fbsvXVWcCrOK_B!M3<d}X8}>OWeh&cw_C@!L)P;keM;;)@*a(oW zKnU#KU9y8Ta0Gan7l&uS<KTCJ2&s_@pB~#Mj3!_QKUDt%MPHEvShi5(00000NkvXX Hu0mjf!>q<- diff --git a/lib/images/fileicons/32x32/webm.png b/lib/images/fileicons/32x32/webm.png index 99b9c87b2626168ea98ce86783892ddd230c0173..9044845b9625b57481d05852a33215949ae41f36 100644 GIT binary patch literal 1210 zcmZ|Pdo+}39Ki9RI&SN%Iwi45v1cs~a_1exOfxZvF=M3?7PT_M3LB%r$b_^JHe)6y zB6l-mE7@&ba+!+hhA!*Q@Q(Y8xtVImKKB3pp3nPxp7-D1dC!|q@b}WyHq=HS5W0A8 zED@Y0+mGfBFtIfS0|<nAG{G+j2VVcL+Pb>N=H?bQ`+h@1V@pfJfA>}n$IR?o3kyq2 zODk(@8ylOWwt%gjot=X{VDISQ;N<Aw?C9w1<mBQEIJ>#H0FbLI<mQHi+#m>YhaeOZ zLL!kU6w)2#?v6rvdU&8cJTRV~7z_r7#U96Dy>K`$FE4LA-WTuV=j#`6!k^$D5Ewup z1_Y7_fuum<4@4q~L<%~2>dfiWKxpXMu(M&|VPO#wKSo7Hor{V-PmYZvlP|`R;}R2- zk}joON={8qNlm+)mX=OQqfpY*DH$15Dm9CmnU$HDm6c7)rsdGC(rLNZa<0<p*YffU zt{47VTvS|Ae5<7FxAL;vjPeR51HoW2nJgx&@=j%S^}Xua+IzLNHFb4hSM`mJU{9c? zrsk%WmZnyqwRsyG?68HyVY9hxb{m`1#%=q(&9m)M`{VY<9X);hPka0N`Um<3c>TO* zyaC>e!9hO%CI2Px>do-To8i&7Z-+<UfB5kC*hgS&e0*|ha%y^NdS+^7b{d$So0*-P zofFIn=H~<pg82o(0szkguy6qc3t^COQ3x*z!CYEe+-_-Ud3kvSw7Rmoy0W&my0*Ty zCR$quiPlAcczr`G7H^0*BpYJM2ADFbWJ4;ENF`F46p+bfQiV(|m&p}!*`{2fkSjJ7 zn@WXJxv5ls`uydKO7)Lw3v|&cfD1md-N{6M5<-3FS9*K(Z82=_!=8C~S%P}UV<8Y~ zQalzNbXhI;<}2TzKm+=e<PHVqVg4Xw(;OaXGh!|Bw6(@GTaRcL)aQ1T*R<iF#qfHZ z;E0WN>^*~^2(-XDW^e3_CzFW2bC{7!C>k9Zat(*yF$Py%W_tfRlwtGrx+`yoIaF<+ z74qzJ%EkSrc}DPbQcV3zuBV|yU2C(iw?|B#N*V7iDzyzc)~qO;7#|6?)vHonNKg1B z{-@)X!J<_50<Sf5m}{cBxWpJ__l6cdU-dyNCzjo3L?;hAdtcU3LWeZ0`6uF&<BZqS z%|gNtbdq<`O9}gf8_SYp6W!Ba25(TY<``d-*rh8P!>Xq~RT&heh*D`RHq_X2+wX80 zzs9=~iJR>uraXF=u*XE-B>Q=LCt*eD6P+hCunN}eX2JnoEZyp@k8qVFvgvM7+C!I$ zD^FZ1s9d;C%l!MIpU-!2klZegL$L=jN<G?_Q}X@=m2j#AeXi`!2e9VOM0-8;-9x%K z1nVTnUx&$!T+~F}?J(63@ya%p@|E1zLVNVE>#Y7a4=&*~;C)YS*piMJxt+mW(C&Yo zfiqAI#pF~ak2r;3psi2cxasgJ&8w*u_eIjuqpGop!UG@Zlea!rj~gfOIVH_m-*x84 zu~=d3ea4{^Roq>l9OI3oHz_eXWXr7A`UkbT)WT>TNGs?XZTk;|$N6JhF%h(X0Sz&D AbpQYW delta 1223 zcmV;&1UUP;3D60U8Gi-<0047(dh`GQ1eZxfK~z}7wU=*bQ&$+qf9KrW+PVxht+w&Y zI&`2G2aa|_tTnoC1Hsx<q1eILC@AX`$DA<AKFV;;F-1o|&29dvG)=W2v<eC`CX*yp ztFX1AvD-AVirQLDZtpq!5YyhoBsR4^aN(W<=e^JSyw7{ixqpI5nEpWEBtm?kl|nNe zXh0x^z_#sE8-2cdV0@~pUH(8o&lIB3s6KM+SOAc@K59DNi?mMUee+fXAw>T9Yt5S# zZ}98Uqik+$WUbe`{%CvqxyDVK-p{6llbuY;E~P|DiD4L1ev)edgp@pZ@R0KIa=fcn z)wXwZ45cNTk$=Dhgb+w65ke5REdIE3iH3R~U+nyn!-sz+7z{D?<Oxb^Y^8`>7Efa_ z9*>OyP-qww%`Rqm_&y$whuW1Z%TM_IkxV4aYy^@eC@d)8T7N$~KHtH{jSXDA+Rv6P zTUoepAr%!B6craySy{>AB}<rHTnvC^+Y}WRB3^e*D1WiKre=XZ5V%ucSLbn-BMSjJ zLBKFg&h+#Ud-{~?*RONo!f&)}Yr*I9abxfX+qZ4!pP|1A27?U$H_U+pKk(L~MI1SP z9Pz9#lu|S`HUg9aF5p2H0{U4ECl%0I^HpmrSFT*)a$g^J@BYh)<LzATyUf|%vwYnA z2_H5!F@G?4gKu{4X5`T*)m2qgS5-Zim`a$uFnbAfY6+CqXf(^;Sx)u4)fi^Na07q- zMK~B@<h^PFem`e=dWb}BQ&UsJ&D#;iEsI?{ck$CNhmk^{lwyIW9JFRi9x#&f3qirG zVocMVFr^TJrAsSWw(M;_G7O}EyU}}u!(j#n27mZ=&mJPTBDA!8>WCw!v=5}1Fo}KN z?W4E17sD_TswjolU>J$EOY9wjf&vrMG@p@_)YjHI0+J^IIl1EW>C*&*m+0y`#mLAb z>gwunxn9dK?q+1<Ax%x2S+QbeN{n2Px!O=9_H+PBN=rC+@JF_6-OA|WG3L#m$Du=$ z<A0J;H~aS=AQTE?SyoDn<OVe@0s^@B`$e=6tXb=2==KnM_wGeViPtffhQVs@Y6b@f zLF-fk!pN@#PR1JOzt&G@;3S2!X5lU=B^>S}6bd7yoEQg#A(YZAUA!1usgxMG&XpIM zP-{ipvMDPoo9KjW2a!^WCvgj<>?t2+nST{<w2f`sSeAv`?S5fUtu<CWj&0j1F<y#5 zEEZ$jR?L|@7haT=){NVVSS*$jL+7~OWbweHX&QV!0v#tXq|DjRNyFGm(ctr?#8BFv zz6V-czvg8j$kT*KW)wo_OJJH;(yRpXX~XU{-P}2Uhna@Q>w%UW1hm%Cj?PX1ntydO zZK5sZy;(Ouw>Z;$`nn9Q8Wj#n%zU!Q6fk{06Zs^38#YYU1DWB>HvOZS=93Dwi8j`q zTSrG{=W`@psRB+C-D|pYdq4<LrnQc;A+@&IGEJ{{E|P7cEn&h8-Qb*=@9*l07JM&X zSr=H_74_@amjU-OmO#L$was?9KR}z8@dEi08v&NE5s1-T3d{j205`7=_kml^{{oTb l2Uq&NeTESSMxB2~{{#3nIT%!!xR3w<002ovPDHLkV1lo7N!<Vd diff --git a/lib/images/fileicons/32x32/xls.png b/lib/images/fileicons/32x32/xls.png index 7447d9cdfc71f21d0c7418b1d7519c31947ebf47..1c21a6ed3b29b42c2b172bf6fbf1e0a03652ab09 100644 GIT binary patch delta 1114 zcmZ{kYfMuI7={mRfeHv+Vw{@bfW-|1<z9pVD}{nKLb(VeVpNt*!$=213qol*hXNa- zMPr7GhJkUEj!Q4=1c6PUGDM0)85K6lxb;S9IrIW8m&(~;|M%p{oA>+s<;!QrtMPY_ zf>;0msIB!c000w^o|2V>j{gT=An54o5{kub?d=^xVf%kwB#{6Q9{5)P0URKZ4Fqxk zA{!v0SqTJjfFLwMAh;6MDHue>1Vcb5gb9VPVU@Tr$QcX=ox>qi*YGM_1n3$8xkOYs zM{r$8Ts(<;Ad-uZtUeG`<r&5Gh^jsqUF8{5O^B%>#7m_G{BTAai6MyiN)TE2Q)FRh zR8jk>VoB^ZVcfND3R6sGN+~5hNhN(rrBcd`{xfAgNo51H@;+Mm;MsCnO8Ij-OGamb z!)X-*DQsCP=XqM?NG3R%1<JD_c@8w51HH<wnaHi1%xn1L>OBRc@lEmliQ*q7%3CJc zkNNx``TSOa09}b-@|#Yfuv3I8>Jo|2^#~;r@zmX(>4&`wErWmYWlF(_QaGX%jm(Kg z=ftD`h~?ws@_DIzK{~$xE-oxCEi5f9E-f!DtCm%2)v{Kl)~M84wMMJf>NKdj741HH zEm~GqbXubhWktWD)32bZU)Arks$Vs%8Vm-V*<gSTMwB(<+8PX-;B^$!x(U^6GFi+< zo7rr!Sgcmlj@7aOTCE!!uw!FmbJMc5xnbY5*=(CzHoM(s-?CeG?Dp-g?d@$V;;<nO zJF;g-kZlCnL6BVp*+Wp8>fEoO_wpVylYS1s;5-P24u>R&f9{rPbO!6E)1yrQ;50*{ zQnJdNN?zZ%FqM92)O_UgVt2pvxfeX_DHtTeLPZ>d_`Sln@VhK(htH9GH&Ts%V{don zx3=G6#Uyj{?D$jU9juE^`w-8K^2<v6`YrWnkXx6`O|1xJ5U_~_kKp4X&!Bk2nbP6J zN0$!%qF|ZqL#jzXOaYc&8;@Mi_dXFuDEz(F7kC%<CN$aMdOULJ*kTWPk?d6us-c21 z#awJjLtsVB2TYdcOAGELHP#cK&`J#3gL$(TYKz>8rY{YuI4ts?(>RJtM5=+9`)h&b zEo~-8eEzaxw>4v``7;79S-IQBnD2!xM!9^9vqmH`Wj=>*=`Xg|#`G|HpD;5z&d!wd z=MnCV@?f!hj&ZhMzkGWg9Q(rJ?Hv;0q0&4p)_DfSNI1&B&ugsOJEYr%9w}3f3^wca z!0;`vwfXX^V~sb-sa9u~`&Sy9KgrG3#0)rI?mhchF#P_w9CMTUxRvpdu!{|cwyab2 z!Tou8%F<&^^(O;pN?U-({B;&jcA8!ky7fwrb!jQ{P0twW^m9K4T!i-aa8D3u_o35J z-=fio!8W-!BtsG;J^-*|iYfV!7~kh}*;h7KcW)gyS>!($s}Cle@FLS%#e+`ITF8CQ Syy&+5pFvBaQ$-1R+<yTn)>x1L delta 1127 zcmV-t1ep8e2=NGz8Gi-<0047(dh`GQ1UN}VK~z}7wU=FJTV)u>fA4!vPR>cwRm4HF z8z;;w!6|Hd(Y4k(FVwCGt=))oDr1Gw>Dampl{p=($gWhBjTJ!|wq2z)%pwTVtzDIE z-59MC2b1CEgswtIrfHfbIp_7F`8Z9}Bu(od9+LC%KIi}ZpMQ_@9zhoRKqzz?AzoCD zgQ6TLKp=&{w(aj)TUwfdWT~tD1EG*wDNIdGsqWt15FiUZRCoP1m70tDkDIp;LM%Og zrFdlR!+hP-!}eg1hWh%Kd;0p$2Dff~ZZRd?>||PYDJ4=$G)*hn(rW;Ol!U|gsIIQ2 zzP7fmufP9xPJgg@31lFIKuU=aqGU_o4<G=`XE8l}mp~vuT}@5(Hv<E=@{w4SK)IHN z*D&x``ZG#AvuV?sflz2NmxP|5fGn#9(rX@Fw~p>prx2;Wa2$u%f<b_X06!33gn&xr zFdNMaC#unfj*}|Tq+@et_dQ~X8B9+F4acj{rIu+yTYuS1e5lyCVZ#D~DIdn-3aI%h zaFjwhaQw}0N!UqH3MnP^$EvuvFUiv%>wNKg2uC@9z@zEx{HlpNlhec!GZ=;!DFlw= zuqIFqN)>Fw4761Anh=b>9i`?|9}SN^h2tn3<?#8d-PC;I;n<E|x-WGikVq*Q`t>3| z?~O7O|9=;c?s559d=wNd!dW}Q`Hnav*DhmPK1|a`=;~*DwCx1@yWhZ9QHfPi!SHWm zobQM;YezsTq~_`(DV9h;imVAiED>SsfX&F&F$~MZ@LK$M{UisQk8*C}GQ$%W7(3t) zOGFStph*o)YV-V*t$?P<l+6{%=#@)&ye7I~F@O5!Y4$d~OVUo_(ZO%}S!GqR%BsR| zR?eFdrHtYQ?F67}9{k=)p6C>GymF8m;R%L@M`)<6Bbn5=a_21VO$XR`)IgIOj<P`r zBKPC`w10XoN}(-Hf%I6FQc`7A@?@uAcgsGmhsSXcJimD}L!;*~OfR}&@OyZiolSd? z=zkp9(M2K|=h_D<<6~JVSbs#YYug_Fj{k+%@?lse($Hz#(#V;S5e(BpdJJwyZqWKt zkoUga#rR=G%#JUZjwPo+y4pqoC;PilIX#@t?e{+n(zvAwl;9sHOl$LY)*li~98$#N z_lr)?q6B_9tmfV>1@QR$0z>m;h$#Rq>wiZT*xuwPAhSgijmC;bap9fW1?QsCSjLZ| z?DD%{B_Ik&sFz-v%OIeZN}$XwX|dOINd%r99AtQMl9fh%AVB+4#a3-?d5?3?yRW;g z6zBz|>*_+awaxo2M7GfNvIyjoDCIu)aVaQT?`{Q3A)B`HQjk-v?#OeM$c;Alfna$R z$kPpa?pv^s6E~TB(HE6F&%QvPKe33sW!wJt)vNPvAeS)+khYBwBC>EwX7K>97I={V t4|jo^?(YJTqlQ0s-@d|#0}=O!>VNy)$@T|owEO@7002ovPDHLkV1n6kFm?a{ diff --git a/lib/images/fileicons/32x32/xlsx.png b/lib/images/fileicons/32x32/xlsx.png index 920217267c3909214dbf367ed4e5fc418c284dfe..cba5937abdcb6ab8ef4e463d45c2e3291dcf7a72 100644 GIT binary patch delta 1121 zcmZ{kc}&v>6vuzuC34Nd#OW3TlQ3?iR6yhqnm|BAgc4yO8xsRVv`~)9@oNh>=EiVS zmvBi0Ygg%k&0v6HTM?M$5QY#Kg+hTIl$Ms>T)+L;|NG>VZ{B-<zP!B0)-uHX<DeM; z0MSqH4FiCwXJULZ8gBm&GKKP-Mx!&CVrbUO9Fn$gt-G&Z`I1D=(DR|Viz33yik z-f&g{K9ztEoFL#^1#999!kYRL0Dpq1Kf&xwmH8Qh1sDKY1Q1}Y0*K~F&<aVgL=r8K zB+Eb&B9LT_A|X)K)<HzOAd*c`wQVrb?p(FQxf+KE7Aub&kpC<&pMtzeK^6RtD(DQl zMLmn{3N56cFYJ!QF~f1J$l@M!aUZ&b6<OLJQ`UnndmW4Ki^a3!@Z5O(n}j>uggfBi zrSjMD72J!JZ!T30C4nQ!ATNc$!w^O>gt3&GiL|<@te?koe*KXDXcGI|1h#bo-!@gz zP9}Gd$xkU1cqNpnyPb4;Cj*v2V=&<L(7U>r)AxI3n|cLp>^U-bfiko}A6j4x@fjn0 z=Ex$GH#*8&V(|p5B>}iBSY8pVtSqkxSA?s=)wNZjXmxFUbxpLkE?N_b*I~sH(IHY1 zTu3Bh(WV$iB9(}x5;&zB(nB_+8?p_VOeR*zWD40PjC@lrS16Q<Eg0pN5>};DZmTwR zD%JM(wpy*+QEzKNwOXT5>}fPw?Y2Ry(Q9=&oz|e!>vejAUcIB&8x2OIQ4Q_spglcw zpobtM1nof3E(9GwFfDaQuEY285iTj=3Seq(<KXy--v#E2Ztl8RrVg7OX#oI}rP%1m z<T8`u_g1OXiH;nVb2j!zmqh+>y;<oZn9fh9md~YqPL1NbQ|po={U#mr5SKl$-;wR) z`(<GPW9N0M_rbyM#<%znMzANtUDBd%&qRMZQIuJI`mfIHxl{HwRAT>bZ%8kK?mF;U zn5njKEROMgqJ8M`ao1C4m%l~m*@W54udKeQ?{%(u!nO(-RzjQ(x3A3j*0oW`z=)$K z6Kxxsn<?W?Xiz+uzz)i2L15mB35d4~!jBb;w1Eswj|3yHe|d1jUU>7OgNo4ZJ}@N1 zF#A!)ou=*+_sZK)9=sx(qd!EK3qE)^&t7Z1ay6LD93a;w_{F$A$V)AmnxLQX^-XV) zC#5`sXXK<b{hzg-rMDI;azRl;yqo&5o!=x<KBHHO?Y+Z$vv>REoz%yEn*O7}2A2U{ zEzH?EaE-IunlCPq&cw2D`=>4Me*LgD43pv%`a&onR#I{}se>HgZz(R<=#_>adbP@3 ze#a8vNW|Qx;M*QgXviB)On(DMVr$vvJTSO?q@%&PBBwSY%d0aD_$T5TF%vXv(jpM% zv|lXpuVZa!eJ{DSW40J2WNE5PYN{+cAoiXL;e6Td<Nh$_i*OgGkO+5Y9wVa5#Mdxq b9lF0`g_}pmqdZzO4_`+tIw6{IA&c}cH&<Ba delta 1173 zcmV;G1Zw;12%ZU$8Gi-<0047(dh`GQ1Z7D?K~z}7wU>WvQ&kklKj*&J*S@V|#t5$b zBPRHliD&})#~9X$f2i9+G6XUaHH0Mukihsu4Wc9v!(VDJkS!(};syv?`4JNn18htK z3__R~NiakZlQEK!qTMK6-@E>?wR_##uHD8rIk~;B_niAZ=YO7a-hILt%=Sp+I3jOo z*F`fGXh2XRIF55-#q#C#K(bKnV0$E@XA1rO{krww!3d!8ZEAXc2ecmX`>&g~5Ru~j z*P5s2J;nEJZLDr+pgJ60)^_;tnTC}sU(FQ>FFTbAyHX0J6oz3GEGZoTQHp5vJ{1)e zgsZBS96oyV_J25Mvl2){L{Lg0A_YroJ%9jqiOs;kJwl-nODZcXerRvMm5oGB0#lU~ z{FX(qESQeO%ZnG!ZI49y#*;9!6Hrsift1cO^XJog=nyhm7q08_PD2C06F?A%<{+R) z&v49}*PAOa#l#&=(4^~ddi{Ok!-E8TrBv@P$5ckT1b-dv(EFKY(ZYoj2#(sYaz{XC z9)YVh+J*h^cQEWEL2Hy!g!h$mVM~&izA*Xb-3YFB0l{aOto^QzJADJhhX=7NKS~7G zb(tHg0Il<uVH(D$_l5}F9}H3XRSDJ4zKH8;T<!Ap+pSc7>0{rTgS1}Uji69UIQ9Dl ze%(C8V1MF2e5TK1CwD8DGzlL#G0rt5=(=`^fL%f$P(tMDUOr#d%+}WTC@C$&E-j_= zj~>o7C3xV(KxvfWsUjss5>PTGBE*Md^lWqJy4r(f2eAA$KVLt<_WC`X?Y%^2?|FK* zxx|NKhzN!<FqDyDXUY*U3^ghvNz#4!B0hfr(|@w*{`)wa>pmjsB=MOL3<Q~Fmov*Q zCm1Np=n;jq;tAyhU>ZJx{xY85Ei}Egog2|!PIY!sUA2T{(%|x)Gi<2a#-cqIhB9!q z10uv8CirFRz=)S(6c>S1TUAO?ZkO@GZejiMEnJUY!9{p&=~7O0pT!FJF)fQfqgPm4 zw|^0Z$*wgm3?~y@`&6fGOzQ|1>=M?k+Q{9+KltquEIWX*OloRtINjBS6|hl0i`%gq zta!75kH1~Vm7SWnlbFyQ3qAtnDH{zOINE|9SHr2Z{qd)h)YR627XEdktf*hjf*nHd z4oxEQaMJEMDS_X1>XElg9z6GnU>UwNF@FtUjM>q7t~c2UsIjCO8j4Tq#rY2(On5dl z6i?f6wKMf9m<dRp5SoRj<}?WCVhK#~N;=tVx*!6toIFWqUmr7#a45uvLV|s!wl*^s zjg1-Ogjh8;W=OWRxpZ?zKsPobEiLIW=PfwL|6bkH7!HMssDc7E_pbBKi?yNhd4HBK zbl#0p;$2^ijTGh_>FCf}YfW==T2k}z$o0&t<DG|3oX|%)Iy5jRvqyLcv>!XxzgMY8 zRt1|}m-=PPo&@e@%>jYfCdUbGm_0k|1#%jV0OdG{NNi%49K&P4Jm7I29qs`)z25~g nt|Eft@9i^;1Q7FnsQwS;!6mnFoDOR-00000NkvXXu0mjfLZmQS diff --git a/lib/images/fileicons/32x32/xml.png b/lib/images/fileicons/32x32/xml.png index 4ea3b1f6c8569e01bdd93cec6ff6ff65b9fca68f..8eee5839889f55f057ae1fd84a668034ff0f0f59 100644 GIT binary patch delta 546 zcmaFPvVmoSWIZzj1B1(wu46#zYJg9OE0D$omM&kuYR#Ip>(?(^xpLLowJX8wbsIL! zWMEjdbm`)yOP4HP4pg&x?b_ArfN0&Cb?bnN*KXLb$-&{&>C^Y_Ke+$k;e&^d9zJ^f z=<$=sPo6%0@~r;J(`QefJ%0*B&tE(Pg6A)u1Hp@zFP^`A@!};Iyn6Ne_3Jl4@b=By zx9{G4c=sL%KD_?`L?1tX{PgML=TDzLfBy94^XD&LzI^@q<@?uf-@bkQ@$LKfZ{L6X z`1$ky|Nm?gANc^iC0G*V7tFxK!XqFeX5h4b<JN=qPoKa3Y<KPW9H8t^PZ!6K3dY*= zoqo*@BCUxs?yvGf7hGO=%_;QCs?wF$YTsA>cNY?zF}dI^f8&!+Puo7)_^&-0d$_bG zHgsP0#YGn@QV%vR)%*23Mt--%+SO7&*qT*JRhe0W=j3QHot)q;a4yf_Rsi3U_Lwe# z&6>xeSFy26)|(%R6JWF6u!}`jW^U0<;jW(eCXVCjXSJQ59B92@+3c;!79Pa2u2qdk z&1pN&yB0Z#JKTl`7K=2CFHC29@3fxBuJxWo4R@`<k4Z`wZclq<=wNr?{p5Q*r!=|L zo2%HL<!a<H&NycO<mrJBg@4aQ3R!Pmb2;0SJKbUXw5L(O_%)>8p3a<F|Ce!7eEm&( Si!-gDxc7ARb6Mw<&;$Utk|~e? delta 601 zcmV-f0;c`21m^^h8Gi-<0047(dh`GQ0xn5JK~z}7-Ivc#6G0TmKksc*#jJ@T9$GG9 zg8xA|@x!7wPb3ma8ohD@{-2(uP(!m({{Z<<gm@r5K#CMh#O`=#r?$(^+Fe#jc*$gU z^LA!G^PM+u-U@%L&<cW&h`cgkh#`v^Ku{5Sz22ucYiqB8Uw@PK_FF+<^0IcjZFY8d z13;5LS{S*%Z%lvQUk{HEk@WL7hNrVnc;9I7wpQaswYu79How%?*I&An7^PDyyQ-q9 zc%C<LvwZ+Wl}_i3QmI6BX=%B+zyB>V*;s&~i3qBSh)mq<`v3w=J(%L;<dkx`%<{rQ z=|ih^6bIo1$bZ_b-76OHANoTjo-Z!Ww1VI`3Q>p$&`dF4`#hVQV`py<8SINN40%_p z0XznLpyL2AgEf>)0IJIQ_b&653iFl9HGkL-@}gS-Grk0&F=&db0WN-Aa(;O+?hiv| z$|W!+aT^ZJ8_Yhxt4@>$uB~NmCZq(=oB`l=6-XNIzkdLzc<BIaO1(1*q>cd<y;}e# zp}cX#fR`&kXnME24M`b<<QxKG(gI{GNpsnTpI25mJ~+rd+RN1{Y;I02_D1CBw9gyH zB);$RJF}$AQ5P8-v_2xE3ocWdPI6j^dSnfg;Bp19gU8L#1$Q%mh|G5IBnTI{ZLaZS zcfsf>7*Z#D(ntU1cb&3@NafVM+TQl3x3*#n$QvXAu0#;%CRJ;XfLUPrA0B?Ez~ShB nfkf2sqjh`E_LIH}!ynb(aVih78iOUg00000NkvXXu0mjfB19Rg diff --git a/lib/images/fileicons/32x32/zip.png b/lib/images/fileicons/32x32/zip.png index f07d18e2c4d733514925d102739f72e9b54e1304..0ce83b6bcc00bc5b3c2179a07f185517b59c0a22 100644 GIT binary patch delta 902 zcmV;119|-02a*Sn8Gi!+002a!ipBr{0h>@vR7C&)0000000000000000000000000 z000000Hvp=s;sQ7udk-5sj985sjRH6udlAKu$g86qNSyyrKO~&r=_Q-tF5i8uC1%C zuB@)Et*@`Gu&}a>K)ZxE!;C$|jXuSVJ<7|=%#JqAjxx=TGk?vFG|i4R&5t$Ck2cSd zInR<g(2_aOl|j;<Rn@L^)~#{Yt#sC|b=t6X-la$0rb*u4;NRfk;Hy&L;o{+|P~omr z;o{@s<K*M8RpaF4<K*V#<>ut(=jF3m<>u$*=ji6GO6KO~=I7|==jZ3>>FBag=;!I^ z=;`U{>FMd}>VNC&>+J08tUT<lLG0}9?CtICu0ZX$Snlrd?(gsK@9^*N@bB>P@U=<s zwodT3Px0~c^3IX+&XV%-^Ygq^^SxK|y;$?|^z-xd^v{v>(3AA^_4V}k_4fAm_4xMp z_xAVr_rFv3#9#NsVEDvc`1$$y#9jKvUi-^w``xAc;eWLI=EVHVX#Cla{M(xS%xL}1 zY5&r1|I~5+)pGyWcK_IP|JZi_*@*w&g#Z8lr^g?s0000HbW%=J00IOI5EK?LLa(v4 z!R6=c^FG$coB#j;l}SWFRCwBL&dn=CQ5XjB=Y8+JhM|y2VN$Y~M0S=+B=*W)DJx6v z-*98;4}V}IDSOI7K1#`AR<jffLlI)e<X-1>aqe~Im}hZ6-t#+8uM2QXhY}bO;^&&u zKQW;8W!O18tVs%3ut#+bb89Q%X;q~S0>?3ge1eJ->ikV<0K@=wp}vbrKC7q{5W`43 z&!ITs9lt8G!31sVBnPXP6%7RZ<L*Kd0g>!3{eMD60vry#@Ui>pp=%r`kGan6zR>%a zHkNFLgL3Z>)5#w4^P)<(`FMsuz`%832>a#y0uFb2X2(jU0hoY*+UUW};Gzg-=xDQl zrbsr3s>36=f`CvcNHro?gY+r)?&t69#fduMIu;;lrKDCws2(r?FJk}?3=?<&Nry@S z3x9caAQOYEL_jjlQYNw*n6fGbOze@hgS+*CzcjgQFF6G(VgkYcumLtIXpmM7lK6-d z_<{fZf{qD-*aYT>4bri1HQ49+)C8<A`qm*Qz%ecchH(;5$z~M(g;iAp^<G26h|&Pu c7^rXX1tIv1d0%P?k^lez07*qoM6N<$g2{XNZ~y=R delta 976 zcmV;>126oN2ipgb8Gi-<0047(dh`GQ1ENVpK~z}7wU^6p8&wp>f9H;$wG&d)D7KrV z4lQOIiFyHXO9-2m4V9><WR(qzvf;7H|G=w%Kv~nYfm(*L=nk@I61qUFf&>*xN}3Eo ztz|<@8*I;IVb8>I{1`joldi5co^$SZzI*PuXM|mNvbo$hh=07UEelOQ(14&ss8*}D z-@175O`zh|I-Jer^kHFZYfE3haU%z)PK$aPeh0L!#l5=r01@dueyy2EoZySOIWA{1 z%uG*Tn46#fK6B~PYweV1WT$M|l~O3BFbu=>ux$WDDGG%m(P)(EGiT1u-@3Kl6l_ZZ z4nzc{6e8k!*njT>2oO9H<niM?u~>|=Q&Z6|v)Ko&NVFx;@37(b`3Mh$9VK2#r{mdN z&TJ;(X-z=&l>@fT^QTU6{pL-iel9G_;_XZZ;201F3T+7J`W{M40)?fI+1dEPaqOH` z!Fl#%JWcA2Pe`3Uz0cmNCAqJ?0($QjSX!g%b8-19Lx23j(_=%J<~FhD5n}N$0Osa4 z<{$qMi-iePSNJ(MOXTI*U3<$S9*ct39gm>{qaM9I7neRG;=RvM<XHq5O$=jh{KehH z4FHlaL`l6gg0?goQ2G1h7e6I3HCy-7z7%v#!u;Y#jD#LCd_0af7{)Y9+*?`&!^6zE zNoLMXf`8%R-qI?jS;89(GkiSGNa!Jd-g&R)M@f$alsMzb?{|qLM%i3{#PY%l-hiL< z`4r>HF_h1b^7$E0j*&i}!W;0jys*ON`XeHVQOboi$B&yzxG$S)c~PY@c!8rQe&lGP z#`o_Xy*Fv7z5mSE1e0Tcwx|rg2>QEy$Fp|=0Dt8IPk;LgQ64m%kEfu~Rt10L<Ze+D zqc;L}Np+&D6!8QHK)lecK4=ZP43%Q-W>o6n3W!z0@P|MQNA8YSvi2cXskNG}6p$tb ztP<Wp5RGz0K(N3n)q4YVZ~_K9;16}(|HeEp*l`Hx4(&~w95D87hp&P$Fo^3mNdRA^ zet%0ESi0JO4k%xUpT540)nkvQq-HB32t6iYV|hxxbBBXMbgu;ZY)QLa)2;}7d-YY! zUl%xR#FEo6@xEIH_TtL5{fd14u5jg=cIM{)+`<)sMu+yI{k+pR0XL2tRXB77+(gyO zqU{Mt=ji&4vXg&L`&+PkboO(%WLo+6G)Yy^?efVF!;$AcXxTs>pb$_NL14R8)wVGN yB!CG2AM(Ij<9C5HsS$4O+YcH4Qd7bCQ2h_bHgB88C-0R20000<MNUMnLSTZ|-s1BB diff --git a/lib/images/fileicons/7z.png b/lib/images/fileicons/7z.png index 037cd73a04ea542fa79512e7a8808b393ee070d0..fa6abe35be445fa96cfda43cbbd5cf28d3ac7e90 100644 GIT binary patch delta 359 zcmbQw{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbxBwE{-7;w?fa}6lzxBak!|U5WA)O*4b@g+DdKz|L<pO zOMEr=iQ;p{2FB@HYDUL6o@_jHVUMa}z||F7-|c3<SFXg&kkEQe>hs?%7QNMi2coi< zJ?xyqwLw8|^Sk)Bx=c?~U)*Dvz3J!csD}M>ixXEen<$E3V}EVkIG-c6<;$^O)4dsa lJ{9+F{H4NKu`X!Re})6!M88z@#Fl`9&ePS;Wt~$(69D38y`lgB delta 400 zcmV;B0dM~I0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)os%(6!!Q(vf5%aaVCqtJVCVoB zs1R%vF4NwEJ5*|iR2+t~fdm&|V=2wjR88YpdCt#J5;ZA;!Y^6!v;98%{ZCdTp_BrE zQvhuMK7LjR;GJX+03cax^wKn4Wm)D#gx`%cO*tNqM*zA2Jb#iEz-5+YE{<bvHk)#+ zRx2)-OD+}*iU{ZPIVY1z3E6$xrHIfNLu)OKF*L?-y<RhlB8Fi|5n+-fjN_O=5R3qH zRSoduoGTadJO@dL2&}bewOSQ3eBZy?GtBe6!c=&k2j?8L)@U>uh@uF2o<l^?Znw9P zI-p1{=347YTz>$|wP1id0Ji{c@CS9y`*?Yp-TU?AK~Q!D)1lgn3w^xJ&^kfStKU2w zs>;E7ysP8p7O<y5z)Dg*u9*H?tv@9ffQLgMyIvGZEMEWLg|lnCJU`y6o!@w2t(|GD uj}9m;cg`ivX0xwq-??*$FJBS>;U~c|>rja-!mI!Q00{s|MNUMnLSTY?<gs%A diff --git a/lib/images/fileicons/asm.png b/lib/images/fileicons/asm.png index 1281e12b89ff41552e65cf4d261d262bee8d0953..c22c451a19fd374b5d23165e9fa1419089132517 100644 GIT binary patch delta 363 zcmZ3@{F`ZlWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Oconx;TbZ+=}h(<ZChzVBPMpl6?VF+zO5$ugHJ@|JRsY zkWlxvo_TkPipG>IMXnZy3GH)a4~wxnKAn4Q*UI-bw_O<pQ#8%4%{agN(Z1X6dJ);a z_w6J!#ND11UO2mXmmcGprEB9kW^eiPa8f{&--OIVGj)~koVzB@s62!J^_})Bo%c`t otFu&B(XbQU6Ck7NB%$5Uv)?{kJS8ZzTn!X_p00i_>zopr0AX0UT>t<8 delta 412 zcmV;N0b~CA0;>a%8Gi-<001BJ|6u?C0dh%1K~y-)ol~)H+b|G)B2_y;CNGAE4jIx9 zsAD8!+MjX%qW@sP9u(wb+93fF#QA}2SsZJz49lVj9rZdC6lBH;oIK#b<B{+2c;rPS z5k(OId<D=45aWHM0G>(K005GHVOW;sx~eKCBHU+XS#mm^PJaNL08k`%1kS6fa(SL} zyWKXnUaz@Yt+-q+DI#1f7M#syjYvDSa}l92hSpjdV`z-wX0u_IWlYnQBEq65nCCf@ zB$)s>i2{K;=Ufx0>l!2>BCyt?*X!*RBaY*XR|Qi_`JzH81?L>J*64IP$g&J|T|-3B z@Av<UgaV%IeSfX>&fE(&v9odV8^BKhKkxwzzYTD6H@{Y%{E&=yHasL__*m!zz~j>k zz8v?4I2$J<$$g`@_tsVWM32$0D}))n1=S|Cai~ZP;7?dUPYgvvh%FvJ{R-bt2e`eT zUq`KO99e7sYORmLKfVXGbFS!iyO&YW&VvKU%?$vg{}lk}(i#lhtYEJI0000<MNUMn GLSTZB?YOi6 diff --git a/lib/images/fileicons/bash.png b/lib/images/fileicons/bash.png index 25758464919d6025affe53bdd12edfef3b56b10e..f352cfdb16cc073c640fb47bce9a74336534a370 100644 GIT binary patch delta 362 zcmdnU{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ocoox;TbZ+=}h(=4&$GakbuNDBr>L!|ADFa?iW}|Ic62 zX{(s^O>Ma^7t<0m!KoaMPV(F-%XB4$mPxGH8vFUcZ$DLr<b(^A&+T%1A8!cP+4DW` z&3q3DG2=%zH{XTcU!)****srpw)56Uvm805+-X#La^PU-$0ywzdS-06wO(&U(zE(_ oJxLCa^QvyACaWn1e|A2tU;b45k8NOtGbr>tUHx3vIVCg!08P)lp#T5? delta 418 zcmV;T0bTz30<i;-8Gi-<001BJ|6u?C0eDG7K~y-)ol`+h>o5>~vGZF5t8S_;Sg?Qt zP%8fN!v+2^$^}>>{Uac?i&R{O1xTR6A=p&Srm337u`<s43zVn{76L{Z*)wnE&3J4F zBoPDw02~770|@cC!~ot%mH+^f6)?>6d|ecU6A}6}&vQ;DlYd(PM*tMb2Elnz6fR9u zZnxW7*XuP`s}+~aB}Igb#e&o6v?keY?Oa4?jG?ub#uyr7xY=x&Bnjg<rid`hGNx(D zD2i?Y90e_cC+A%4D9aKgAtJEWqSxy+h7pG0?+*i0N>xLJQVPyFXsyxdbdV$o%Cdxr zpx^Jmle7t{<bP_fwQkrIVeLB`M>ha20bJl4GCUdJ;pyd0&7<+Zc{FY$&!aKgcIB(q z+4W!iI_M1*0F16?jR2oLx|)6HBJA$J6I4OI4tB|Wxbg+Ht9^!tz7BlVe7M-`^~bkx zdOX16^UGbZ^BYIj+Iy|_Ui*!Eq;$?@-EQ|!(E84UFB>G+Cjb!t2d}9Djy)goa{vGU M07*qoM6N<$f=>&=6#xJL diff --git a/lib/images/fileicons/bz2.png b/lib/images/fileicons/bz2.png index a4bcc70a115f3f27b62cbce31806d41a28b43fa8..a1b048fc246d31a841a5f4c0314a274aa480489b 100644 GIT binary patch delta 362 zcmZ3?{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbtVPT^vIyZpEJM=4(<AX?WP&R1&DYboSItrAHtC-e1q0 z{N$G;^FBicwv`hU=NY&u@QMCfrpwv5hHY)>^?M(;J?3QaNH)1P<NWS}g*S@%uSFSu z<6p9*U9xaq$@iRfj2h~-zm;x?WL;Hlchc=%wDU*kR0nn`EkE}C#SIn5x7HobJ+(jn noTb4DKhw5XixoVKC52y#i+PBBjQu8{4+=d`S3j3^P6<r_;1#(_ delta 404 zcmV;F0c-yH0;2<v8Gi-<001BJ|6u?C0cuG^K~y-)ol{Fr!!Q(_#8Hc2)lI~L1q-+U zLS@J2GUXQB0jXUCaTv<3NN@pmY)Z3fqNZ`IJZD%$j?#ciVI)hQXV1LnXWJtQ&+`D_ z2tWuRz;?s{K1fyo0FrLutSE}KEK4gQ{Am<L!SQ%}58xPpPk(a5U|5!=&9aQ^^|~2p znsT{Za<N!YL^z+%IhjlvlXhuC5uw(a#u#d?skP>6wPKPajN_Oh!aUEJWf`L=x(9IV zbqr?K+9ps{6-YuvV2r_FFxY5D5Cj+B8s_`HYbt!-hqV?;DfD_hBuRp*svsf=!>~5# z8aT0=E2TELGk<Ji(Fk_{ZU9{44>&x%!s~4M7&!4Ls&C`rwywZ&7wfKnzE3eYz?t99 z+}-Flw|U!mzh4_P7)9I={l?LK2<;5Jh@HXHwv6qPyF52|`~NMRT;lcR`O$0r#&cuL yR4KLBJ=zbbthIT+-@o!Y-}!I{v4a4JzW^~^16k8eFAdB90000<MNUMnLSTYi_q>Dv diff --git a/lib/images/fileicons/c.png b/lib/images/fileicons/c.png index f0d4e9aa1184b347a93485fc8cde71f206d96201..51d9c7f154a2c72655f2de3b19e5a2b2b5d67dcf 100644 GIT binary patch delta 353 zcmbQk{E=ybWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50OdP8T^vIyZnd7h&DUhW)9|n_mq*mUK|O@e=$OX)|8>`H z3M>}?XYRdUN0(#5tpY8fCWm}u9$s!Crpcw(ZY|sOpmL>B6obKwJ;nXIj_iwG$#Adw z`u6Z8J`I9}GC9TC{ybN_Z@u!Hu%^4ePxFI~@B4CQoAdSm4xjH^uiY-fa^$zn&YI<% dDLK!!)G*~IiK?n^W&8{ZG*4GQmvv4FO#ldVwr2nU delta 397 zcmV;80doHF0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)t&_1%0znXl|JyymXhlOPEG+Z^ zM53koGWZt0g9#L8d>6IQ1OvQ)oegpgM>uY8bF=qb=n+7?X!K7e*_p|Fnf;UTNW$|x z0N4Xi2jHVzA%ItsIRJoU(P*Y=I?b}oi3m4Enx^b@I@bX90e>ixD}a+M%Um4CoX_Wr zm`<mhOeP$U#}pBcMk98+-34TMwG$DcF^1M!8e?dT;cPZz6h#cfkRrk)Nf^g5gCMvD zu<xw_dd|5;A<uJ=gowaei(0L=VutVgr(X<HN)@I;DFx>owAQFpDu|*8d7eW=P_NfN zAnSl)xOi)=SAX&XxTqbsgDU_R0M79XH4htj><w;J*>FE-qaU<40){Vd*xIc%{j%ZK z<xS}pes!m*@JIa%;C@r1b$L_j0RV_ihCYD1&-{E7<U1W5H1PC17<x<B*s|6>Xsx$@ r@U`4ImsG3OGjHvj8^7>H0EF+{GT}?;i1q6L0000<MFvhpu0mjfx~{bw diff --git a/lib/images/fileicons/cc.png b/lib/images/fileicons/cc.png index e6f4c64574b1319b4b198d6a0ce5839c16d08d7b..8aeae79eb7b98d8969e04af0b17f0ded75620a85 100644 GIT binary patch delta 353 zcmbQu{E=ybWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50OdP8T^vIyZnd60Db!@Z)9`T0wj-?O1+K0Wg1jpJe>YCC z>RZhIf2PbQS)qUhy2pGLi8SARqVly^jO|SH^O)G!7kdmiqZkx^KKT1NFzC8ouLH-y z^0QMdL?k-e?p@vfNu+W1l9lgxHeda>IGJrz|6-o)Y&ReK{B55v9Usppso_!1dbDe8 e>IKbxn}4ycnl5_Gq_$ii6lk8VelF{r5}E*m@wzMk delta 396 zcmV;70dxNG0-FPn8Gi-<001BJ|6u?C0b)r+K~y-)rBl03!$1%m-<bqKl_p9-kpez| z1VIV>O!y1_0Vyer_!mS0QV_`x(9wjriK93^pS<UxK(>f6h{s4P-Rx;cyR%x4Bs|Xp zfIR?h06xA)2;hZe4geroeDu;ZU1nM4M1*ybrYVQR;T3=`0DnbtL*O{eG8e}&*Xwl| z%jJ@b#e(zsoFc;6Y{t=OREm6T?N~%;jG?ub#uyr7xLU0kMG?a=q=+y{62@`NAPBAi zbiIne*g01w@;nDghzP8;Xti1!X868;^2sozRADNVQgF^eYmG*ufhdZQ=Q%_K?RNWJ zq$*Gp7jLcg27fOE%UpjDTmm=;aE4!?chJH8cygoail2f3o`S)b8~~=zuh`mc_58Zx zql@b=`G$$jou0x!@oxdIKL~E?#sE;ZUgZVECeuG};c&l$hsVi{_u(3kthIMq>+K(m qmOJN?X0v(fRnEEd3tt34_y#T8>P`jiVu}C&002ovP6b4+LSTYzbhkSI diff --git a/lib/images/fileicons/conf.png b/lib/images/fileicons/conf.png index 94ace02cf3c4b7e29c7947068754b0716295c1c7..c845d4962457bedfc082cde05a8e68df343fa04d 100644 GIT binary patch delta 354 zcmbQl{E2CTWIZzj1A~Sxe=v}04DbnY1=9cj{|Az2VCKx3Q>ILrI&~_LQCC+7B>VgO zfBg9I6AXU;{{83AAE4mIjT@gmd-nYK^OrAQzIyfQ_3PJf-n@DH_U-%k?>~I_@bTlv zPoF-0{`~pNmoHzxe*O0CTmAR%-yx<zi~!pGJ8Y{t&~lNIAU~k1m}C@;Ow8&gPMkP< z|Jje9zyAHZKjPL0pnQ*~i(^Q|t<<yKd`$`>4G)_eN-lf7OiG>AQBm=q{mp?DSN}Bf z?lWXyi&-`0goN^h-(1O;XSFzlHXAO>USDyugNH#RD*bKr>zfZOa$H%S&yoEt9i(-r z$HITvZu93XArto13asJ!dpVQ6^?Ovi<aGUmlYg5W`X~Ql!=8!vemLy>)9P5a#xPV~ eh4K7V^ON_5G{uE3n*Ig_AA_f>pUXO@geCyQ4!<A( delta 386 zcmV-|0e$}R0+Iue8Gi-<001BJ|6u?C0a-~zK~y-)rBgdj!$1@q?^+3MnkWSYXFv!_ z$Yu5z+#ym@ti@rVqzFeyK@-JI9L4c^<+mORv{oDt-;qZ9KHAZHv)Y6tk|Y6ua{yxi zDZWMy;FV+x03aC~mvvq5nx+XN!p~UOHRtpB48R2dMY1Pw-G4MqD9e(E!=dADx8ruZ z<z};?h;Y4LbFo--BFCd$iwK=_^xo4sN9P>(`#p=IV4mj`5mr^jvMgz>odLK=P6VDq z2wkCVTabi^z<ZC;Xw)+!P1BnXhAE|@sZdHGgaEBI27>{LqCnfW5D|>W<9Cr$fp|H_ zTI*gO1-qKH_In<{6u=#Rfyrco<#PFu0+<?O?f@XmG5~-vrWc>~B37%_B}md*+cD<f zoskNE!0{A+5{T;nfXcG$(HPU)_1J^2P*v5-zh5Ca`i)oK`zNjS*$-B0LkQJyIJ`|x gzVqZ4z6gN)4RtXf5gSbPc>n+a07*qoM6N<$g0r}<Hvj+t diff --git a/lib/images/fileicons/cpp.png b/lib/images/fileicons/cpp.png index 4027e4bebdd34aaa3a59d6560da1c46fe615257d..1a04c32914e3bc1111dbc5b5312917a5cd9d03e7 100644 GIT binary patch delta 361 zcmZ3-{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ocomx;TbZFvgzk<!e$9IPlTg;g^B-(*89*!h+|&*YEc$ z+k7oPzxlpI1H($*<wA-aU-liiu|ZAI!1ei@>{rrp=30ylNzHZ@|La0;lt+sywmkU# zt#3-Ffl^;{w%pa$#J(kK=d-My`}gG>#<$Be|2@7TlaZMDWAn5||C+}3N7iB|{>NFS mDk#`aJ292rS0Q-wlBetp;$l;+A_aGV0?*Uc&t;ucLK6V3H@iFl delta 415 zcmV;Q0bu_50<Hs)8Gi-<001BJ|6u?C0d+}4K~y-)ol{Fr<3JF7?)D@IR@p>Z%z_0R zfDkdunYm1Ii@5_*vT(#<U;$DPZ~=B~LcEEiIBvIG?Z*Pya+>fNN-C*eb-kym>aKt! zf*=5Zp8&c5LVRp7fG3hA0Dxq5(a-aIRTPC25$^Il&p95C&wl|N0#GEk1kQ@0aA}%y zv)R<XTCKQTF1c7NC?cHC=bTI?wMetHGZCRNhSpjdV`z-wdc9_nB#h&jBEl@on5HSC zC^`pl7<d9R=Ug2q%Mv6ZBCyt?)9GvtBMie|Zw986s)h=s6r6L=TBFr!AxRRHWeE{M zx7&Rc@dYY!b$`}cZ{bR?j-3vpe*pdh_=Eqj{&5f2v-=CxB;Q3t+(kq9=Uw>W@fkl3 zI(^k74@OfAM$<ZJFq&?Wd>pp-`|6`IE7A8b{Ey(9pX}pG;Idg>v&7F#Z1(W&S2#K9 z;pX=KB4}*mz*>8ywch)zH2|e^E^D{jzXNZbdtV^e9T)(JUjWr=_uSq}r>Xz|002ov JPDHLkV1grezoGyD diff --git a/lib/images/fileicons/cs.png b/lib/images/fileicons/cs.png index 31b7f76610d5c7a9daddf3b062aa3b34a24e8229..740725a30eed89d523f592a88f89f4b7e56094f0 100644 GIT binary patch delta 358 zcmZ3?{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ofl<T^vIy7-P@A<ZCkEIq<PB_Y5=tLFYihl%BwQ|NrK^ zx+L*`p~~Od7Y>cv^iqwMa=cmRk{2^cV8^EK_qLzqU9UZvF}~rjfOEzEESX<h6FUss z7VcJlDxr2H^UK@C`&1lKUd~cKm{k1dWemgn&u5%-8_VbAGkLN+(KmnbSh{}w9Ik)~ k@>)Kj)!qw=)g%8hu4)iHcK?(698k!4y85}Sb4q9e0Qu#<1poj5 delta 404 zcmV;F0c-yD0;2<v8Gi-<001BJ|6u?C0cuG^K~y-)ol`MR!$1%m-<bqKl_p9-kpdn- zh@b>M6Mn%Tkdnd?e?b%=fk-|;M-$>Ej^g-y@}7qRIf{dUz)CCK?rG+B=CmG3c%BCU z2LPG?eEb|CfH#sk0Dxq1(Mi*Eo@JR65msfIrtJ6oHvrlI6o1JQ!D*IdE{<a^m&;Yo z=X1_xGft;diU=o@2?vA0ie!DXQxTythSpjdV`z-wVzFQpMGV7`BElp|7{@V#Ah-e0 z_BIHfoO7#2p64J55rMT9jYgwnhVT1lUkp=96{bQd1?L>J)~MBLh@uF2o<l^?Y&Jhh zHVF!Fan@Rw>VJZ8)jR10*8na7T;LDUIcnkIX>_Zqz%M}$FG26y8UV(x@7URIbo?rC z_iFfUT{5x0*HOQX+PxZndA(%%HhO;|@lJZdU6qVYV3iE9$@t&DaD3Rp<MZg&TieF2 ywf0_Xy}O09+&P!j>-BSQW1U;u`T{@zgdeo*@J@-C0u3hs0000<MNUMnLSTXxk+%E* diff --git a/lib/images/fileicons/csh.png b/lib/images/fileicons/csh.png index cc21e79952e61b085e897c158f3bb33b54555714..c0131c5f46d46986bb6984e95bc4bfc59451920c 100644 GIT binary patch delta 362 zcmZ3@{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ocoox;TbZ+=@NhDb%DO!1ln^#p+Gat~EZwg4e&-@4q&8 zZq~2F#2*P_0SkJkF6j(nNefp<kC-HIW6|e(=3hniSDP?0BzG&eeW(h%QT}?0;xUO| z-`Ye@8z}WP=fAre*<j=yZO<Vl{e5yUU&%bRb(K4GEp9ET5H0xgg1hMa0o!Mqw*TrZ npDj?Zo}!`oz0D#0oABcMY^-93PqMT%f<n*J)z4*}Q$iB}ty8=P delta 412 zcmV;N0b~C90;>a%8Gi-<001BJ|6u?C0dh%1K~y-)ol`qb!$1&y-Zcq=DovDvA_W|P z5J3rCCftHMASHznhk*hl5O4uHnh-Z}6vyk8XZ<LUE!%|eNTZ$EnfGRPR^yR`=Xn6I z1E34Q$M+HfcqN$w07w>rL7JwEEX$mTaGj=U%JF!70iX{+k$<ca9A;VO;yC7NwJLS7 zSa3d{b2gh%L^z#JIhjmKl4@&*B0^&ft+h19&=|wza>*!)7=|H5gh`Sxj$;NvZ~>t2 zH3;sVbLB;z=O76YfwdN$PNy~u-}jF`4NNIj3>8W#IOm|XMyu6A6h+AM93p~lxBEfT zBq+dzt+lTC1%F|AcQ6Xh0h|Ij!5?I>*Te1o)0L`%AA=DdgHf4O^_%DO%NsVfI|IK8 z9-dv+z*T>p`0cHM`YJd)yR3CntzH}YcNLl>>pJoQTmv|%CO7S`L~Qc>?_b#8?cwg> z>B_5Y<Iq}rqqW}r>1hCR=Umcmw~xKXI`@77E?)p3d=&@UZuaYK$K?+I0000<MNUMn GLSTY#Bf0DV diff --git a/lib/images/fileicons/css.png b/lib/images/fileicons/css.png index abd16fa8edd4c81c8f022e2f8d71ca6c00c5851d..89ac36470723bf3bd66eb169e0071d22b2863c03 100644 GIT binary patch delta 358 zcmZ3@{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ofl<T^vIyZpEIx&DUhW)9|n_mq(Oe#%7_?35msf{{OzI z!)yG{bMu$oFB}@Kv;}txu>6Wh%D6Q_U`Ek~Yh`a`^P{IS#5XuTpZj}{v`qV4t_OR| zlm9!MVwoZM{AAhrXQvt@mgL8?+}!u?<s{~}r-hy~e7W{IfJaAg(Fa~TNArJmmd_Ow lbhVzWnyfZqW#r{g+)w9;r9a<teJ&{EJYD@<);T3K0RZ<`zrp|j delta 412 zcmV;N0b~C50;>a%8Gi-<001BJ|6u?C0dh%1K~y-)ol`qb!$1&y-Zcq=DovDvA_W|P z5J3rCCftHMASHzncR>^&fq)Cp(S*2(qc~o#JnKh+Y}p3FXQYw#&CYu}Gpq4P!t*=; z*a6T5;A6do0A5Mv005H3#UM@7MV4hwMEI4bY0B|<d;y>jK!1^}2^?lw=HfW!YPBkT zu~=|EpK~^wQA9YMPC1!ON|9=5hay5_46U^^#?TnU<#Nd=iWr6=MTAL`FpgseL2v<} z?==MOopWU%&vTH3h`?HlPN!2FhVT1Fp9ZFsDuxQB6r6L=TBFr!A&Mg8c@7alx7+;? zX$lnN;;gl<;eSG~j2(=Ea{#9RPVfgC?DcSa|8%9Q<i}uy$6!<@t;5eRZ`j!G4E!p2 zcy?J!UWWm|Z*L9McO?$bE^DthaXIvLef~zoI~WDm)i#=mMcGXZ0AiEpfB(Y%ZVz`4 zPgh=L8;91~8?E)`PptvSopVXM-9Gjj>)iVVx$FQy_!SPm9{=P#lbfgj0000<MNUMn GLSTa7D7pIp diff --git a/lib/images/fileicons/csv.png b/lib/images/fileicons/csv.png index af37ba577130991be50f61cff50bb49d48a301d3..837ae295fa43731ee90e4f7d392814c5789de73f 100644 GIT binary patch delta 355 zcmbQq{F!NjWIZzj1A~Sxe=v}04DbnY1=9cj{|Az2VCKx3Q>ILrI&~_LQCC+7B>VgO zfBg9I6AXU;{{83AAE4mIjT@gmd-nYK^OrAQzIyfQ_3PJf-n@DH_U-%k?>~I_@bTlv zPoF-0{`~pNmoHzxe*O0CTmAR%-yx<zi~!pGJ8Y{t&~lNIAU~k1m}C@;Ow8&gPMkP< z|Jje9zyAHZKjPL0pnR{Vi(^Q|t<<yKd`$`>4G)_eO11{=ikPXUBzNyWqxGiX?61ZN zHPQ@BOU&k+YEihbTPXPPq?Q9y_7<<p)vJhG$-}_&>%rfc&w-CGtPgDxXp-Nh9i(=! z#iDoJ-mB_tS<}|-6xP}HZS`Ze7c$ASK5t-+xK*)i>cM032@8Mp{@54(=f9GIeaMN> gYF~xo&z`5nx8D;}u={ua3n<t;UHx3vIVCg!01xTFs{jB1 delta 394 zcmV;50d@ZK0+|Dl8Gi-<001BJ|6u?C0bof)K~y-)rBgd@!ax)p?^+Pixj_^uat0KU zGUPHoM(%(Fg{>SWDN~R`qygMugz<Xix1JP{E!%;7l#!nH{buy`t=1z6&+`D_8o(HU zkMEHHcqdr_07%w_X;Bo1vMim5@SGJz!R2zf0B{39k?aV}%73zSS(fp1IyH7U9Jt@_ zx!dh1BHU~?T&-4(NPD!Ih|m~AYb}j2G{*3FJTgsFCP_jOVV>vAvW!s_EdbnjJ%Lx} zT$8A(3M3&Su+}07g3dC0-@p5^Fr`$zR4Aq3oP*XHgTVl4nxd*IhzQ2x@ux^%peEP8 z*18kdf=w=pqJKvK4*=%)116IR*6a0?YLmk-L>PumQ#<aT+wB%X5KR3xIgaBFxgDRw zXf&FtOT{>jJJVc(`mWd(sr~*`K7eNc^K;F$e+hY>zy13ayw-2Lwbs69t*?H%8i2|< omk)=-d$0GMC%+)q5CF*s26p!GDPn?s00000NkvXXt^-0~f*KCD8UO$Q diff --git a/lib/images/fileicons/deb.png b/lib/images/fileicons/deb.png index 9eb29019ba324a84366cdcf62b099bf1cb6c597f..1db6fa5b80efe3b048d98398e89fc4c70ff2aafe 100644 GIT binary patch delta 360 zcmZ3={DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fb#vGE{-7;w^Gk`3N<MRG(2>5vD)Ii{q!jl!NSV_-?NpM zWqwL;cqq;0&=6uZP0h(*MXu+<!jp#<oW3V<*-YGO{UsKLM3cz$x1R$qUs!*c;hd#) zN%*6ZhRzHr-|E%=f;+aCoSmB(_`v_T4A&RA%3m8Ev;7cYJNA|Nqgc^q>CNW<>MWlq lDBKPgSzXrUnD%S-Bz>a*akCq*xZOZu=jrO_vd$@?2>_mVx)}ff delta 406 zcmV;H0crmD0;L0x8Gi-<001BJ|6u?C0c=S`K~y-)om0C`!!Q&*iK7<5)TQdc&;fp+ zLa_1pnerF>L#1{I>c>#FBEb)^v6N<Ms-|(QT<0)Uu2NH;N3!JmILFu5z5z)DK>z^9 z0NMZ|e2)ac8_5a)K+*+zMNurvva}+?eXA%64u``5fG&WL<bRI9d0Cb=%QCLl>+M=D zms~6soX_VJ5zb~ajz*)cNWHXk5uw(a#u#d?skP>6wPKp4Op=5m!aUEJWf|i*9suYD zp1{;vyLD7m1(FaE7-P_CwRV~jMbX8lhJ|71nu;(CVXcKy3XMhsX_}&{Du@W$?e<2* z7jR^^S4!>JPJeLgi~G0(a0B2Pe?aH-3eVHYICA8Eym^iL+f4<|c0ND;{yIVH2)(d= zay`-6j<7F&*xU$wiF&fL>w@q<f)790ufPdBe04%U<_^J+=LRqTe}$7vJU=~-gW5En z8Dl0&se_-c2B5Om=FMjFD)7d+^9!<r07yOn?y>kx=np)T@&Et;07*qoM6N<$f^l8J A@c;k- diff --git a/lib/images/fileicons/diff.png b/lib/images/fileicons/diff.png index 1775da0143b83e108e69ac9fadb8f19ae1b2f292..03e9af94dec06fa21f8888b31b64a97fd077dfbd 100644 GIT binary patch delta 360 zcmZ3<{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8VT^vIsBv}s{1|2pKU^uXMvP?A-ue0K+5C8Kou1r;H zVD!A%8=)#}@GR(Lb|v%U$NB4ow*5`*E1dWJ^{@F{Uzc@kO?(zOzdp^$OZD)!{nNPw zlcv2b?h6-f@<<YSbfb*nN%-BoUDu@dUfley>h+5kF+vL#Dl%GGeY#@BQ1=)pf291# kE}K;5FNOUPOIaE$<&PB_wfWz%t_6jir>mdKI;Vst06|*4YXATM delta 410 zcmV;L0cHO90;vO#8Gi-<001BJ|6u?C0dPq~K~y-)ol`we<3JF7-n9~RU79Eb1qIaT zk_bxRm(ZDi!Cyc~NwJ9k0$1EgAi|HJiQ*=X;&{FCtRKaltt1yEfhUbLZ$|s(V>JOu z1VI1*hXC3DLTpD2;Dcld03cZ<x_O?@ilXo$!cCUvIR}HmJ%4~B0E*;_z*$igK21|D z7K_?uvl*w;DJPQ&MTFz=n8V?)7FllXOhjm{rE`wfT3Ty4pU;^j3FA1Xh%n1CrfEuJ z%sqgkU`^n~dtV32vII$p2%K|hwOT972*dFFzlABKs-;3H1@Aqy)@U>uNRk9)Swck6 zZnyu6tP50+D}P^Wy}~QOI@XKKEr2Tkm-qs@CmsBL89kyGnJ4~3FEZ>!ruLVyiJxBI zjl!yO|K<U2CPM$_VWrYG9yWh;)vi|GOth8n6xh{~0`OcZuP1jwT=xF$U-)_4!JpUB zW3Y6MedpXSt@Xhkqm|zKtl4Z{1Z(Hq*=H}+1OVbsjT0plrSuZ){Qv*}07*qoM6N<$ Eg5<)#I{*Lx diff --git a/lib/images/fileicons/doc.png b/lib/images/fileicons/doc.png index 92549457644738605381491be0804663af271e96..dcc070f493fb3306a1a7dd36315ad44854d3d40b 100644 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-|gw*7*cVo_3TZ)W(5I<i;f3gE{eU9 zx2<$#hsD4D|4UVln7nn?PgHo$=+JOQB50xjPu2X1`4O8960S)m&wAx{y|;^j;iOe| ze5q&c_E5Pw#oO}VA6eKwF+;}ZvxYw7j>ucDPHyn(?mx%5<fzHVv-xt?4~ip;|37@* qyFT8JlcS^Gvh`DQ+5|(r%%5x=+r<t?K0gx;3N=qxKbLh*2~7aOE4xPk delta 395 zcmV;60d)TK0-6Jm8Gi-<001BJ|6u?C0bxl*K~y-)rISrg!!QtqpY5te?6Rq{V8IzG zRCfGaCdc3oNbMpOcR^*xq8x%vX*NyOG>(;V9t-5qlnU`P(ny~1%xBNDtVlvB1psFN zh5&l_-ZB8MBpUz#$*?i1s%lf$wHFZ{^Qx*inN02hoCDA#JAZ(2UDv)S3hs8h);F6C z*XuP`s})6r%jJ^O>9mFHUu`TRwARu&M{6yuwcKvE%=4UCmQh4lmL-d#V49})0M69` z;MsfMCYq)JNr(uXbBLm-BSx>+yZj=U);fp^tu?&&Fvg(Y?<3E1G))5$!EiYIfE)rs zb66W=I&lEDIe(<-9e`T^H~58J$1&!M#e)vbOcF3jIz`9gkek1~0Z}y4`zNc}tSw-Y z9F5g%_DMWF9cld2{tZw_)5oAe7-N6t!?;sZmM?#Pg{wHm(_-<U_I~4qb8c>oIr+h8 pjrYDB3<lTg;5)~^&_w`b?`xa%81sBr`~Uy|07*qoL<FuvV1h@xx~%{J diff --git a/lib/images/fileicons/docx.png b/lib/images/fileicons/docx.png index 5bae13f9ef7299489a87d12b484bd9763d871502..1a98a8d4f95000f05589df87dd3bb34128a17cf0 100644 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-{<M#7*cU7wZEIM$$-bz`i6#<UBwS4 z*9nGhKmY&V94)rEXx3dl^|RBO8X^)M+?+N9{BE*&+{MeSQ?<7AcFfC7(*zk5B(u-F zj=X#!e~I|DDB}|Iqzm1h8B(Ry>(4tHoGUro?7D01K8sX?^LOq(<i5^l;S_3D-_m{b t$fMr<@qLmU9-k&LJ$2mqRrt?>N9K`_#TTsF*7p(=aGtJyF6*2Ung9-wyw3mt delta 400 zcmV;B0dM~I0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)os&&Y!!QtqpY5te?6Rq{V8IzG z1Ur5%&|~BnNE`vFU8LeLlpTw52sTx-X{x4itc>$mAXiPO5M`v1J!8-3@w2Q*LMa6R z7XXF;didQk0G}iq007CbFsiC*Q`fZ@5gzlZsyLZUo&j6}(0?Rbfa|)heNhzL?RI<L zY&Kl4*Icbu6cH|$OHQZLJ>;;pYZ0Nfmd-g^YiX_JcDrSs=ghK<BEqsPSri4+G<^ne zsXBmn@BKc}Gz~~XMBto56h$pDdcEGw55ct7K~!k1;k}132K{~?d7h(b8i)vn!{Ili z3kbzwZj5Qg0e`s9Ax$3vJOH@I33eC9m@gJDno07+Bxw~hNzjc$E{w0^F%U%~4FGC3 zYi&3dtJ&;l8|UXEjT0@v1Mp-(w?loHJa$5eySe}X%JSpiuW%d3cv~!9)WL7Oa?Z_- uF=v0cTI0Ph2ZO<#>U`(;1YHC`_64Mh{(fS2JHP+{00{s|MNUMnLSTY>bg=9I diff --git a/lib/images/fileicons/file.png b/lib/images/fileicons/file.png index 8f31d38ac6bedf006a943f8599a9eb91b6fd8024..54fe8abdad1bc26fd09c217f62fc4069f2d6608b 100644 GIT binary patch delta 221 zcmV<303!dt0{H=uB!9q3L_t(|0d3DcN&`_81>o<_1bZ9PD7Xh9xJ^L|m*h5V#56{X z`62V(br=YP;hocd+{29&+*<1W&)R!dBs?58r!wT+Lq0#b*Ch$7Q`zS4)bISt&yjrO z%R~sQhTP{d_hWx@lj{-ea+|Ls2_Z-DRzQ^oN7sPG;{u=)=vEZHD;w3|24^5Z=s`>n zGk}>)%WXhRbMv$oq1Ux8BuJq$gBI%AAfx~;K#DUlr^+r9wd_@wsb!}`3hpeM{}k&# X;LK{11)KUt00000NkvXXu0mjfjAmy@ delta 292 zcmV+<0o(rh0lxx}B!2>8OGiWi|A&vvzW@LL32;bRa{vGf6951U69E94oEQKA00(qQ zO+^RZ0uTuq1H<7EEdT%j&`Cr=R4C7Fk3mkuFc3xGI1zg`bOTcEfE01fNM+F@aSb+z zYzU%hTGiv<1x`ppY-wzHp8ub3!r+k|1<Td)t^^3+`P^MS>VI#awQr~h%0PYfqk8q~ z^{p>`D(XY84HW?lsG|m5G-%L|I<<;A>8L|PWf-E4Zw^30L@wOtLCTkMoGD;Hz$v(+ zBN2H3Ccttn^6B|juEJ&H*Lf2F%XXtRTL=`nwNg;7MjCVc|F4B~xfa*Ve-2FVi*`am q0+J7t>8$N1+#Q6$6T8hkPJ093%xaU!h+`oD0000<MNUMnLSTX~@Oe=H diff --git a/lib/images/fileicons/gif.png b/lib/images/fileicons/gif.png index bcbb8366ba25ecb1ff8704e0daa258283805588d..38bdbf2dca30fc5dfd03b1188b1a988340cabbe0 100644 GIT binary patch delta 358 zcmbQv{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2VCGDQDO09QojP^q%$ap{3_xyw zKf{k7KYoJ2@87@w{P_bE+_=$h<3{^u&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG`{_mQ0NO87666PT7?X^Gk%?K| z#EBDU??3zT^Vh$B_eb3N0F>|bba4!kkYqh*=*Mg*z;NK^R@wPXyo(G(|NM_Gxvs>@ zkuZB^N30QJaqiST)5Hz#*I(CL_;tDI^S^bw-|b%-5HGs%d%V@F$KSm?R;Fb9T^rIN zuzE|s>HJU*rOwEX#ia~S(zl(HXftHf&Q726pvAk1ky(X7{e<;%h6n0>*BAxj1%H2< jz+7-H`iPz?!<w)B<%YU}uSB;W0)?EXtDnm{r-UW|;#Rg- delta 392 zcmV;30eAlP0+$1j8Gi-<001BJ|6u?C0bWT&K~y-)rBks^!$1suxr<uVElbpafp4e~ zY!rT`pTR#=YKI^`hO#k~k6<ay(nL*jImMU9fD)x4tw30^WWTeYeZI3t5}xM)z$JhX zfRFPM1Nb0W0RTwW2a}>G(y}a_h_FwKqTph&m;<;1phzAO+<%m1>9Q>2;c#d)O;hf6 zJ8rjIiU>EG4VTMhL(*>TMnq_gp|zIA7#d@^-|v|u3FA1Xh%nD{W?9B4isk^Wybi&e zbFKlZssc%f2&}aTg5YQvzVF}u7?@J39x9YlaLz$%jlp1mBuP+J6+{GK7=Dv<3F_q9 z)><F=HDQBA5q};5JOH@IA7nh9V!d8Ht8VgaM$Bex>^4^W0Py*_LJ(l$caxu<yxxj^ z_-KTQ>I-gHI)|bA5zfh}&J=)`cF?IxeUj&R|HmubVZDBR_FCI`ZLM8ttuKCYwaPh{ m4~N64*IDQBALb$e;xD|T>ve0dr$_(*002ovPDHLkU;%=iIJVgU diff --git a/lib/images/fileicons/gz.png b/lib/images/fileicons/gz.png index 0a0a4b94f949ddb8a12426610a222ac27edeaee4..422693a3970cb4a5a82408161c48610cbdf07bf7 100644 GIT binary patch delta 358 zcmZ3;{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbzYbE{-7;w^GmE7HU!uXn5%AV0FXuZA$8_jvagc|K9q} z;OP~6p3T2w88{}~IufG9(s=Lb30`j@rpe{kZY|sQD0Qh2L%hL@J;m$OTWhz6@!YGv zzTJEY&*2UWzHK|hpL1MM$^EMkk#j0?IZp+Dqu-2Wx*y`|-g7j5mozA>&;RqM=!}Cy jm4-ps8`DOgv+BC{PfZq6ihL;%017!zS3j3^P6<r_kmtL= delta 402 zcmV;D0d4;F0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)os&UM!ax{>UpoyLU9ll9T(Hm! z5Q96>%it}%g9$8ZJdC)*1TWyu4blxIlujr8r_Y5>Qz|0*l1cvg+xKPuHyMv4JkJAw z698=h0d^|_@J6x#0FZPax>=Sj^E|gA!fh+dG7g8sI{+O3K7Yv#Krhd8n<NR>>vg%7 z%Ow|!1?TfQMTE22jHA)0gjA2#6A@~yX^f%Pnp$hFRx8GF%qWT|B23eiNs=%O!#e;S zuLhV{Ys*Ga6d(x^fiVWHR%;`SAP6qL1?Ky{3l+Za!&(ca6dH{N;y6Z86c7=#+wD(C z9pKEaR!VK`9e=Rwg#+9IxCU^AKj`?ZkLhIm5NtCK!q1zzzwyf2?Va9V$7mg)8*DRI ze{^*f<aF3X*Z=8=RYM)R5&Cbl?lL>TW3^GA+d;OCkQ%)F{}xU!F@1h|@G7tI+!!-f wN*(MmT4AkCo6Tn5t3BuAeRBDd0Ej*SQU32ps0kaR01E&B07*qoM6N<$f)p{aivR!s diff --git a/lib/images/fileicons/h.png b/lib/images/fileicons/h.png index 4afe8f84fc67cd1fa46a1c1bf8b7045c38bd99c7..d65f2f507d8b0aa6f3a118d54d471c8c81e3d93b 100644 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK1IB4Hr%ahL zb?VfaGiPdr)B(Br@%=x3{P+n5zkmP!^XCsxFr{l_YWK!x&z?Ph{`}?3m#<#Edj0zK zn>TOXzJ2@t{re9eK79Q6@zbYIpFe;8^5x6duV24?`}Y0&cZfL<Lx8q#t(d_Hv|gkn z$Pef)CK&}I6SKOB6DQ8zfA-_&uYdpUkGS;#DBtes;us<!$$HSx?}&i_!-1QnHGO<i zE`nM={%?P=&eckx;rbbuHPbj}Y|VMHb#KGZf6=R3?dD~j`@ARqdVFTi`dJaHzrFpq zTPP??@>fN+v`a_U-^I^1^EP=TnI*kvX81X?_P|4isg?{4-b{QAEO!__u`twuBtD96 l)Z?#Y$onj}F^ZcZ^uOK`&Ckl4>vw`e%+uA+Wt~$(69AQ!wq*bS delta 396 zcmV;70dxNF0-FPn8Gi-<001BJ|6u?C0b)r+K~y-)os+Rn0znXl|Jy|{TG0>+3krPz zkzlF548Dc$U;@P%-$gAfNR$__vq7%m2*>ShZuWi)a~BQ)!AT~&JG=AE%%7}B5}xM) zzzKi`fC{!-0N|5k1^^(LU$m1XnWbs!M1<=+NfP$^{d)i{0Dp>P3D8Z`)J0Lm#bQzT zY&PR`I^|?Cp@?ui9&<1l6p-cCx*|ej46U^^#?TnU`FzeW3>gFgMTBu2Gm0YmzJCv( z<*fjQ&bcCxWf@39L}0B&y<RVgQK?iee+j0P%0-1z3eGubtx>I35r!eMEQ5%k(P;cY zRsnf(zSmlp&VM<uh+XvjI{-HTuCa%;&zg80zCWr>$!~tIw65Cd;|mAJ^|so#a!JJ6 zQCn?$u&H`U^lg`&+lQS1&;K1kY&=o`p4LI~>YKVaKW!piOh?|*Z|qoWU$oYTe~ktp qbI!%JTJ6eP`OeK9l8Xrd1mEG^-m|FBH}L=f002ovP6b4+LSTXt=e4Q; diff --git a/lib/images/fileicons/hpp.png b/lib/images/fileicons/hpp.png index 3ee7583d2b5d6e967e23fe3a43d34adcbc5ff8c9..6d314f5c9566470e6dcc6a967d60e5a8f778ee8d 100644 GIT binary patch delta 360 zcmZ3;{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8VT^vIsBv}s{`Y{^{FdVq~)zXet$|X_j$N%jw?kKTx zB+Q=K5o^R)oXcLRtDms%|GHSGT>tEIzyFrqt@nOd5qjia;%ghZ{ozhts?NFjPa8Nk zdi{;~e3Q{p#gM!38e7AkGq-lFE3ZmVHA^UQdp_yKi)OnC5)u*<${8N0pS#5%5HI-q k(*#+AXSzw#g&3~=Vy`SSPz*DB#|{cRPgg&ebxsLQ0CRV@j{pDw delta 402 zcmV;D0d4;H0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)ol`qb!$1&y-Zcq=DovDvf&vae zh@b>61GnG~NJ(MDVW0pB1YCfQCd5q~#qoOOSw9N2R&2s|q|wfs(Y)Q6*$GG@2m%1u z0?-8z;(Lh!ypk*d03>~&pXd3kC<-ScT%~!Qb2uDc0N4hgNPpG{4vM01X_|7eSX4Tj z%{ZM-Ihjl-A{>v$9F0a5$@0?<M1;l|T5D;Hp)rQ@`J73TFpgu22(v6>nx>4R=mNlY z&>*;X&Q*@GEI|??0&6WgoldP8VHh5MYM4^WHx)`LIOm|XMyu6Ak|Ze05+Z_bxBEfT zB=E`J)>_xFCx5Jb`=`-4fD-`6_=EI!d$_%Sx>7#*F**eRET7(9g`Z#Eu(sLhtM6_e zoL$zEnmBB4^lNim4thK|yZjQP`4O7IpRgym#y>@D_WbWD?Ctb$_waNTEN$b!T6?3l wUT>DRLQ3ac)^4|tg2p=cevw>N03dz`8(Hz(3bL}h01E&B07*qoM6N<$f<cb8Bme*a diff --git a/lib/images/fileicons/htm.png b/lib/images/fileicons/htm.png index 02e81932b399c68e56041a42e5017c4b63e3db85..f45847f7e7d556c43cd602164e685fa5719fa178 100644 GIT binary patch delta 359 zcmZ3;{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8UT^vIsBv}s{1|2pKU^uXMvS>9Eue0K+5C8Kou1r;H zVD!A%8=)#}@NCn>>z~+;9lsx=dgX6wU*Wv(uYb+wy6r2Nop3g}`rk}W&8a-4_4?8- z9g(k|%d9u!Q0ffqSp1IR#QHVnzS+Lnvu5sezW#Ep`Sc}>4NI6CY#1BvTfE|H_|X?J keR)oU-8;e6Qy2`MGfVB%^MAo&vI`V+p00i_>zopr0Ktv9sQ>@~ delta 402 zcmV;D0d4;G0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)om0I|!!Qv3Vn;1v>r!=KV1OCX zA{c=uVGD1;E1*j45X8Fx14tmsL$FlM(o{|3SUKloK#9^&A?PQa?#I6G?6c1!3D5HY zU=KhSfREo10r(_Y002mq3;it17I~gK5#c7uvW%nAXb4~*fPW&nMsS+vxl59StJSKK z#bUwve9qZyMiJq3I^}pgu1M-fI~5TcV`#0VF^0w%E|*Kjam*-+C?ZVLlu42>48tLS zeXl|A>YS?rMNxnxL<H7abUK~2X868;_M>4+sj{h1O2Ih?tu<P$7UDQYQ4|mnbi3Ve zk|sf!T-sXeHGjV(tYU*8ya8|t-~#_Z|FDPW*U3EwLHIzDgCJyGm#F*oJ%b?R(berl zZK`~7eYd7d`#lUQ4FG<7w_m+u8T>C)v+6bkkJu7o(~qrR;rO73m$%8iSDVHYYweTP wdZ+ovH=uCNrR{e6+-r<;?+?k<4FE)6bVLrLp<W9V01E&B07*qoM6N<$f~#%0L;wH) diff --git a/lib/images/fileicons/html.png b/lib/images/fileicons/html.png index 02e81932b399c68e56041a42e5017c4b63e3db85..f45847f7e7d556c43cd602164e685fa5719fa178 100644 GIT binary patch delta 359 zcmZ3;{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8UT^vIsBv}s{1|2pKU^uXMvS>9Eue0K+5C8Kou1r;H zVD!A%8=)#}@NCn>>z~+;9lsx=dgX6wU*Wv(uYb+wy6r2Nop3g}`rk}W&8a-4_4?8- z9g(k|%d9u!Q0ffqSp1IR#QHVnzS+Lnvu5sezW#Ep`Sc}>4NI6CY#1BvTfE|H_|X?J keR)oU-8;e6Qy2`MGfVB%^MAo&vI`V+p00i_>zopr0Ktv9sQ>@~ delta 402 zcmV;D0d4;G0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)om0I|!!Qv3Vn;1v>r!=KV1OCX zA{c=uVGD1;E1*j45X8Fx14tmsL$FlM(o{|3SUKloK#9^&A?PQa?#I6G?6c1!3D5HY zU=KhSfREo10r(_Y002mq3;it17I~gK5#c7uvW%nAXb4~*fPW&nMsS+vxl59StJSKK z#bUwve9qZyMiJq3I^}pgu1M-fI~5TcV`#0VF^0w%E|*Kjam*-+C?ZVLlu42>48tLS zeXl|A>YS?rMNxnxL<H7abUK~2X868;_M>4+sj{h1O2Ih?tu<P$7UDQYQ4|mnbi3Ve zk|sf!T-sXeHGjV(tYU*8ya8|t-~#_Z|FDPW*U3EwLHIzDgCJyGm#F*oJ%b?R(berl zZK`~7eYd7d`#lUQ4FG<7w_m+u8T>C)v+6bkkJu7o(~qrR;rO73m$%8iSDVHYYweTP wdZ+ovH=uCNrR{e6+-r<;?+?k<4FE)6bVLrLp<W9V01E&B07*qoM6N<$f~#%0L;wH) diff --git a/lib/images/fileicons/ico.png b/lib/images/fileicons/ico.png index 93343717c580a26702f6c2212794e4e97dd1f105..38aa34b2c986aca593029cb6a0057124249493fa 100644 GIT binary patch delta 356 zcmbQr{Do<PWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2VCGDQDO09QojP^q%$ap{3_xyw zKf{k7KYoJ2@87@w{P_bE+_=$h<3{^u&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG`{_mQ0NO87666PT7?X^Gk%?K| z#EBDU??3zT^Vh$B_eb3N0F>|cba4!+xYc_0wosFTK*K}V18)=5w@#kg?sDYo-}~!Z z6K5^c`^8@NU^jz+g6XjkC6?xUPer7r>+sC@er(3JeV0;~3dJ%wY&v%<J^12<^`Q*U z=g97oE|f@6n&o!+-s)nObKc?h5@NGIEe>X@nP2(yZ7TOt`?G~b{~tc@T_4{k$>G7z idbDeA+62vgmp`%IEffoI6#6Ly3O7$zKbLh*2~7Y(G`rLQ delta 389 zcmV;00eb%Q0+j=h8Gi-<001BJ|6u?C0bEH$K~y-)t&>e|!Y~kppKSycyKE4PE;vI~ zwY&aYCdcR<D#0SChbi54K@ZUlkPShEI9A4aT_8sgP}Qn^(ny}M=JWi>iX@a$0B{Ll z0HA~Kl>+!ASpxt_hKsAREH_nEc@g0`E6bAO@%S0Q2!JMe1b?`xs><hi&fRX;*k-fg zdcEdqwW5e{u~=|2nKY2Y(r!eA)>=B}XsxBSmfP)?S(Y(PQ;G<SqF|oqOp@doz(}<K z@80_+P}em`LPX%4Lli|v!{~H6w<iPBT8E)RYYp!`j4|kTyU4N(bzMV5Fc=K>kTxJB zhqE!}$Pd6KmVP970`Lgn0l(02c#rvf_M#7y<G9%f;+QA?p_a=Tq6k;|+{<xHOs5Ld zsXFr8kbZv;_>=wx@Y)WBazn|%4=n{11wQ_;g*(jWZ!hZLH(opEX2zI{AGB6`?~7iq jcduICdH9RD2!QkpdROh;p-`LT00000NkvXXu0mjf1{b+B diff --git a/lib/images/fileicons/java.png b/lib/images/fileicons/java.png index cf6f5b4f5a1eade0b814d9c3f6c83c875a9e5212..0c62347f5c5cd1b3190915558b9b47e624b97a8b 100644 GIT binary patch delta 360 zcmZ3&{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8VT^vIyZpEJM=4(<AX?WP&P$H<kb@tRurAH6{-d}IL zB<=48;~!>h1`mRcx*U>dydx?hbzOyJ)r(%k+~T9B-BcJBBwnz}jz2HeUZ>4u@%+t& zyAy&K)sAGEyxnW(?!a@&l)q`}I<dJ%7pAU1G|!#Sr2ZO@UEE)GvGWecom>9ApPtOd lbIG}LW05{*#j1Ut|JdBNidSd6*}D=HcAl<&F6*2UngBHTyGH;3 delta 405 zcmV;G0c!sE0;B_w8Gi-<001BJ|6u?C0c%M_K~y-)ol`MR!$1%m-<bqKl_p9-kpdn- zh@b>M6Mn%TkdnfP$3Ov6P~Zb}G$C%{D2~r3?|CSYt=J?87-^-wo!!~nJ)K7qp63C; z0f06DA3q}m@J=!Z0FW$*UYe$hEX$mTaFeBJ%HeQ$1E32)k$<cRoMu_(;yC7NwJL3~ zSa3d{b2gh%L^z#JIU0>hk@c&ciU^G{wARuXLt_k=%O#^IVi<-L5hh8(IF1<v!3}_} zR}&aJ=gL5y=O76YfwdN`R;#iM-}leHElep@EEP&AIOm|XMx)U{6h+AM93p~tyZt3n z7buDgUu#`C7k`3f>|_vJ1Gofmfj^*k)WPHU<xUmFlVDJioBVq0_3Z;Y`>md;cb)_T z^sjC!1>1PPxz|(Ml77NEzfqunbzAX^uA6uT;J%*lTZm0w|NRQbhaEgUzub9izp-zv zeb8F(ZX0b4xpOXQHk;>O?K^jVQCv;{Ap8Wnd-ZZcQ4Vn}00000NkvXXu0mjf9fq*9 diff --git a/lib/images/fileicons/jpeg.png b/lib/images/fileicons/jpeg.png index 29dea5761c8f247eae054b4d0992134645e01af0..e446dd410b6fee41e2d7be0a81057dfdfff8b171 100644 GIT binary patch delta 360 zcmbQk{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2VCGDQDO09QojP^q%$ap{3_xyw zKf{k7KYoJ2@87@w{P_bE+_=$h<3{^u&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG`{_mQ0NO87666PT7?X^Gk%?K| z#EBDU??3zT^Vh$B_eb3N0F>|dba4!kkYqh*=*Mg*z;NK^S4%rqDVId8AOE+%xTD0% zkuZB^N30QJaV~qMu71M4|LbC%a{aT<{r+2ax8D0<Md*=xiLY(s_J=!psXFK8KW*UH z==C?^^G!xa6+`aAYitdF&fI!Y<^Db_joIz`@duL{>@G}fV4P6?i(&C&^>eov1mXpM lf0`g`@Ju&px)8&)U+nR34HUmWd^`;lcAl<&F6*2UngFdJyAA*V delta 397 zcmV;80doHM0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)rISrg!!QtqpY5te?6Rr4V8Iy> zf*n7X;TYTjsa+)EFq9pOatJnUvuUcPajcB<SRjWclmg;Omd9hg&z`ZYNJ1$E04D&3 z0D3sA6u=wF8UR2tY@C&4xvr|piwO6PvMf0sj~@V>0?;H|fPagss(ha3+-|qcSg+Sy ztyWwvmlP4s=W|XblLoSTwF?oUwU*8~T5D;o<z};CmSs%Slp?~SD46Ft<2Zf*aH=|h z7w>(OsOuUeAtG?jA&R0_GkU$=<(GzOtwU3xwTAZ|#u)VbePmgNx~?H27!HRYkS-vY zLu`y`tpl*h#eXsG0o($(!5=glU1K(zKI*Rd?vBkI;@!QFTP&uCBAn?%Cnt$&0h2@_ zNj^(FKK=lFt6=KpT1`I$=$iLQ19&=g;=Xc%iUP0yc!ev>X3vjm=Qo}^=cdM(qn}Cx rP<!u-!C-K$I^TKp3v-YFNZ$bizwq7dI@n_X0000<MFvhpu0mjfex0=6 diff --git a/lib/images/fileicons/jpg.png b/lib/images/fileicons/jpg.png index 29dea5761c8f247eae054b4d0992134645e01af0..e446dd410b6fee41e2d7be0a81057dfdfff8b171 100644 GIT binary patch delta 360 zcmbQk{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2VCGDQDO09QojP^q%$ap{3_xyw zKf{k7KYoJ2@87@w{P_bE+_=$h<3{^u&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG`{_mQ0NO87666PT7?X^Gk%?K| z#EBDU??3zT^Vh$B_eb3N0F>|dba4!kkYqh*=*Mg*z;NK^S4%rqDVId8AOE+%xTD0% zkuZB^N30QJaV~qMu71M4|LbC%a{aT<{r+2ax8D0<Md*=xiLY(s_J=!psXFK8KW*UH z==C?^^G!xa6+`aAYitdF&fI!Y<^Db_joIz`@duL{>@G}fV4P6?i(&C&^>eov1mXpM lf0`g`@Ju&px)8&)U+nR34HUmWd^`;lcAl<&F6*2UngFdJyAA*V delta 397 zcmV;80doHM0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)rISrg!!QtqpY5te?6Rr4V8Iy> zf*n7X;TYTjsa+)EFq9pOatJnUvuUcPajcB<SRjWclmg;Omd9hg&z`ZYNJ1$E04D&3 z0D3sA6u=wF8UR2tY@C&4xvr|piwO6PvMf0sj~@V>0?;H|fPagss(ha3+-|qcSg+Sy ztyWwvmlP4s=W|XblLoSTwF?oUwU*8~T5D;o<z};CmSs%Slp?~SD46Ft<2Zf*aH=|h z7w>(OsOuUeAtG?jA&R0_GkU$=<(GzOtwU3xwTAZ|#u)VbePmgNx~?H27!HRYkS-vY zLu`y`tpl*h#eXsG0o($(!5=glU1K(zKI*Rd?vBkI;@!QFTP&uCBAn?%Cnt$&0h2@_ zNj^(FKK=lFt6=KpT1`I$=$iLQ19&=g;=Xc%iUP0yc!ev>X3vjm=Qo}^=cdM(qn}Cx rP<!u-!C-K$I^TKp3v-YFNZ$bizwq7dI@n_X0000<MFvhpu0mjfex0=6 diff --git a/lib/images/fileicons/js.png b/lib/images/fileicons/js.png index 16e3f95386298373625a8b5d07d5e1556a5e24e5..bee428f200d3b1574f921898534d554b97a978e5 100644 GIT binary patch delta 358 zcmZ3&{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ofl<T^vIsBv}s{`Y{^{FdVqKRdzlT?;-=yKmVgkt}C%} zB+Q=K5o^R)oI7>TG;xFb_1E<leqC<*{BPavcl(zH#EWkH9&h#P@pmtel_?p2*M@Wm ztlrXZIzN;{sWY-;aVf)-^lg02h8s4O9k4j4%6N`ZrJ=Z?>b=DBhb{9hqSzg3T;H5_ j<~v}SFSvUO!-i}2m5201t=Jcy2ZfxctDnm{r-UW|a&Nc% delta 405 zcmV;G0c!sC0;B_w8Gi-<001BJ|6u?C0c%M_K~y-)ol{Fr0znXc(>;RG6&u3Bg$q4^ zNOY-Q25#XUOkgp_!{|a240r)|Zjjk9gkgF*Q$5dx8NvV}+DRq#NxiD~I^~gs=Xn5d z1fUMU$MzQj_#l}B07w>vW}2qcEX$mTaFeBJ%5JxN2jCchB7a!|xX7~1#c|B}e7>;h zbjrzO!tr=a5#eYwVz1X*fGn?eAtE%!&{|7l42?0I&1Q_Eh+!B~M3^KA<2Ysz1a|<A zy%m7Ib8eBy^Bg20BCyt?R;!i7@O}SsO)#ZYAu5zoaLz$%jY_40D2kBhIYb2Ydi@(@ z6`*J?e64jUE`I<Qx$|~#3*ZL8HU99Lrwu&!hY#wf=0VUd`O7f?yuE*7@37YNf15lA z+Gus|H`e^>K~w#<YO8a<HoYYJE_}Cv_y8VPX)Lc@G;X3HHhKH^FPxn;@bWr*@RqKz zWvzYETJP^bEqBf()oS(1TRG>(uDSpa0O1$$!0J^%i4I0{00000NkvXXu0mjfc+0$y diff --git a/lib/images/fileicons/json.png b/lib/images/fileicons/json.png index 96611cb539d09dcbd6d29664467f3a18306c735d..4d0a3cfb50986878adbb1912b368f4df30f455b4 100644 GIT binary patch delta 363 zcmdnY{F`ZlWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Oconx;TbZ+=@Nh$=9sF!}dT)!TL(>DZTBMb2}pL|Nnc9 z!TQntDQfbn49t3=JsuLu6Lt&L9y8@^)T&PQxgGOylOQKUipG|6x2|tKw(vd||2a$R z67wY*{KAh+W_^pBudGn@au)kRt?TucsS{pDzMg5-!;}$lQIh-6Ri+j76WX`WUz_yt pv>`Lw%Y}z#Wa)EOtlBs653gRaxY<K%AvsX+dAj<!taD0e0ssxkxmo}K delta 420 zcmV;V0bBn20<!~<8Gi-<001BJ|6u?C0eVS9K~y-)os&Io+dvS7A9oqaa4I!|iWDxK z14I^_GR|e_TjUM~q=JGD6BjXHL(&D@rIE!(6hv{k;4GgDV+o3O;-3dBz&FGBc6JsU zkVFs!0PqDsA3%uzD*^DAWCZ{q=@Y}ED7Ix;IuYSZt0)SN$A9B104D$x$pgT7S(Yx# zGVb^LdTqB`ZZ;dP*K3LhSF05#lSvI}wstNeG{(?cOJfX;G2HETOw*J}l2AmL=Q*=1 zV;sj<08WAy;MO@;2db(9Nr(unwdnPF2g3-%@cXlYDW&{Sp_GDi4q9t;Ivu2GimIw0 zBIx(~Pmngi7k~S2t@VNTz&dso#lHaj1aN_OX!v!2KevmS^2PHws+03LLff}<%lij> z`rI3;_RjM-!sv2}(dG2OHzD4K-Q%HZx7PmoHK~_^?}3B>e$V6RqS>;CG-2L1B{pAv z_!hpM4sdg~m<5g3II`AWYpsv|b+m>m=Um?Hc7Ft|=N&wFLveiq0Lddug#77x*0eVO O0000<MNUMnLSTYwYs2;c diff --git a/lib/images/fileicons/lua.png b/lib/images/fileicons/lua.png index 81fdeea403a6d7dc6b88697a759ae025aceee2c5..fcebe3d020fd1d7db2300353f9566ca6f5c7317a 100644 GIT binary patch delta 358 zcmZ3){EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ofl<T^vIsBv}s{1|2pKU^uXMvS=j}ud|}okN?|W+(}bo zWS(@RH$qj|;Mt~$*FUixd;UH~^~yJ+;}++Cm;Uu_eH$y79e=jA`rkZG&8a+FYp3uk z9ntw}c6>E&lSh(B(t2KopC@jW?D9)bGh_JsB1VWoR)~T9N$0y4>>q@ya~V3;ca&D1 j;<Gqrn>1C3;n^Q{y{Wnui`UIq3<^0<S3j3^P6<r_w{f@f delta 403 zcmV;E0c`&E0-^(u8Gi-<001BJ|6u?C0clA@K~y-)os+>%!axv)|L#^Wdg4Mjc;KK9 zAQC;QF9UDkJD9+s#D~#?CK~Vsym>)-p@h=yrnCJ$m^Ofo0VkPccXsES*?%)0NqC+I z04D&N0DSyyA%IVkIRJoUanMQAbdhD56A@N<nx-5K2KNBk0Dlz84ZvlVWiF0mu2!qk z7mEew^Eqd;8AXKC>6F9au!O9)b}1q>#?V?zV+@TkTrQW4qKIJ_Qbd>}3FA0s5Cr!C z+TIr6)j3xN@;nDghzP8;XfzrdV)(v)^-D0NR3R#qQgF^eYmHj1hA4`V=Q%_K&1Ull zvJEJbi?!BzV}D-&%h*LPxC3wt;0AkG=d6Y2*U5ugPaX%o@<Oq$iUGj;#}^Kc8y&T4 z<#EtMw?Eo|`1PZX+NbUH<Wlr~0Nwtm67X16rD(S*sW7q0`@etT{IrFax5<OIHjQ0t x?UUB}aEGVm&bg#suU~sx<J{Uq7Xc7{15Rt|r)@-tjSK()002ovPDHLkV1l6GyRZNN diff --git a/lib/images/fileicons/mp3.png b/lib/images/fileicons/mp3.png index 7c6d37184e5f3747364673ab462e4576ac04e25b..2be976f9cd9cb864bde096b1a5aba5077d375adb 100644 GIT binary patch delta 362 zcmbQw{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jU?#(qDO09SojP;oOoloJhM5cu z{R}^T{P+n5zkmP!^XCsx&~Brh{YLv|&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BGx9<Lt4zypSB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0VqGw)5S5Q;#Tb0PQGRZo`#1?O4cRqn@;EYsVhzUUcW!| z^2Aj8Os05_28NX;)76{=R@8QSKc3a%Fn#aVZMk_Bcb9N7BxjV|+xdO<v4!`SaaX** zd*SZHOWZykmosj=*CsAVdpS$};3@<Axy2ez1_x&x*vu^a$mp}ngJPCjpL-v1|2cMF pf4K}x%5kopuNH8mEKByPW3aFjH`~29_$es#JYD@<);T3K0RV&LyVU>y delta 400 zcmV;B0dM~L0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)os&Io0x=MUpKSzDIvPZgf-^)> z(gnB-$H*O!paA7CS-KSD5NQb8u!v>7){gh3AYLuxk7T5gJ^uMT^F~%Ap_BrED*zn; z4g72|fLD?w0DxrJxX$x@TNH&C5q{-)o^vvpi~;ljXp%>O+kc`ce43`*@As8&w_9#D z8?M)DiU?P$6{pi_1*xZYD<ZVk(m6+KEv>cO?RHF(gmD~GM3`k6(=_F5HX8%zsT07n z_r6*v%Mv6ZB5=;3-EJR=(P%X8J_)9^4x&P94evdSF=#fMNRk9)Swck6>2wZ|Q$V;J z=Ej(#H~_0P%zy9zU<hD<KUlxpN3@I{HGm;U9B_2#Mi|5VyEuA_fHtmmcv;OAIAS$c zDb`{&SI7I82f&XOpx?#60_ulPGYVaJI#<AYDFA>BFaPesefJ)V<>FD*e&daEE;7bk uoKafoz0X>$R$rZb=k7VWe3$@;-vR&a{IenziBkXo00{s|MNUMnLSTaS8?u1_ diff --git a/lib/images/fileicons/mp4.png b/lib/images/fileicons/mp4.png index ee5b911502836e4a6acc73cace3eaec93b433cfa..dc6fd0022d2deb6a6dc8e06972ababf3bb4f0552 100644 GIT binary patch delta 361 zcmZ3?{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U?#)NDO09QojP^q%$aozbwF-E zL;sH-KYoJ2@87@w{P_bE+-SFPqy5Hb&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG*W7w72ee<LB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0VqGg)5S4FLX!2Mp&zrM0K<WsUt{&SOgfTQ9{RuE^|_d) z1H<i^oe{di2G2H4oc@jN*zx-@x^Ir3mU&#aKla-HD>v57ib%?yxBdD2nG=FeZ;*eV z+st8j`=90U)x1p}NhXi>$TOT+e`o#D6-~2dw#V&#;acd`@M@JZqZL;r`-1Yi$3Xdx n_Z_8Gr<lGJc1NsbZLpNT_|4G5q;@|j6d62S{an^LB{Ts5G6=uN delta 404 zcmV;F0c-yG0;2<v8Gi-<001BJ|6u?C0cuG^K~y-)os&&Y!!QtqpY5te?6Rr4V8IzG z1Ur5%lVflPq;`>t!%%iC$|2aa&8DfE#<4QaV*!rRfS@qa$TMTj=kc?wNJ1$E0A~P( z0DAb@QUGrxYXAVrurV&na$8lE7ZHBvWm$4EnLGeE2cStF0Dms4s`7cBbHCp=zTIxQ z*=)F8uPGv2E|;86rwyb%+NFrlT1)2~t+lk)a<|(t%QB{EN)cgE6wLFSNs>GOI9DCO zi}$`M)O8J#5D_@%5Jk~}7`<Na>Wg4n>mVw$*6`lL7=wPlk1Wej*EK{0!{P7)(glR( z5F29-@&IgV34fA%0Cxax@dq2-jIfw59yNfwnDK4Q7yuB~5V!MoeKlVpLNwOl<e8cw zX56g7x_LW3#pzi8Hfn%&<3{w~0NsY}l{A2-V}+Zk*#WRX@%sN)xE^8gym(Zt-+1Ai yn;T<Jj<{Owy)OoX!Hw#C=g~2`e3}4A-vK#-^{AL3#tp{+0000<MNUMnLSTX?Q@vXN diff --git a/lib/images/fileicons/odc.png b/lib/images/fileicons/odc.png index 331140552aaa77de64d29b25ab264f7e08ecafcc..bf3b3a104c280727dc063a6c419fc0a7b21e7334 100644 GIT binary patch delta 353 zcmbQv{E=ybWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<vToG978H@wVu5x)TAKM_E4TNbE9wcS|4G-|L^|)`;{WG zd}VXowuhDsLMmH3SGsUC+<PMP>bXF}$>{9d*w`O?0yqVuB+KsYe7^X}y4Y0=_o}a( zhP$a9IAHT-+rFvGIWnd!+r^x=`mg)(o`U+sq}E(ti{*yj<m>MJ`1N$c#04ec1#50( eHTayJGA*C|zu4iE4aqw|f#&Jz=d#Wzp$P!;I=&VF delta 392 zcmV;30eAlK0+$1j8Gi-<001BJ|6u?C0bWT&K~y-)rBl03!$1(6yNeP;=O%JNk#C4l z=y?20K7)TiN(x8(3kn@Y_z0R1H*pll=act56v)PQ5CXE&O1HB&qun{3A_=7w09*hV z0_frAhylEjECB!{tHwCb^IcICUPSm^=6TN9Z1w<P1VEE)34ctAqVQ>&@^CoRx!diy z-EO(rY$zgJuh*Q<=e0<4w26q&T1)2~t+lk)a=+g*NfO3!Oc7z0WlYnQQ4~D@7^#lH zi}$_;%CZDWhzOi>2!fzxMz7bqIx<XaU6~54HN5vQ#-QKtBS{jJWeE|%a5(%F=?YZj z>THZ@)s<k4A%BYQ0o(z&#UJ7(46$6T9(9w<>9oGU>9kdMvE}<a5Cmi0B&)@uMQYYn zUo942is$EJjT7T!0fi`f>aNlBqdD>smSwO1eue8W#Pe$Ps2acV(mA&@#+?0PwbFZ^ m4F-c7)%nihAAAu2@ds<0^cZ!*EBgQd002ovPDHLkU;%;$&$)mA diff --git a/lib/images/fileicons/odf.png b/lib/images/fileicons/odf.png index eccae9e20de149573607af3cad49bdcd4725d09d..fcfc58f76ded0cb0aca1ffdab65dffc02a47ac3a 100644 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-{a}x7*cU7^=zk5lY&6QLsti@GhWtf zZG;53f3M$vP4-ygtLGAb+5`m@wsNj?;b7XUKSBDs3d^z=Yq#ds9>49T%8+oO^7%dA zR_FbpJol>2OZb=Y9B#4b-BufRo#Bd3>|dpbw|;@sd0zZ>o-Cegc_C4<*l@$2yB+@y rPWZp4=$wN?m5yPEoJph4*-6vl#mdBPZE9!T0SY!xS3j3^P6<r_29CH> delta 396 zcmV;70dxNK0-FPn8Gi-<001BJ|6u?C0b)r+K~y-)os&&&!Y~kppKSzHciEsUy672D zMR)zV49DmlD#0SChbi54K@ZUlkPShEI9A4aT~tYvfU44wM)Hh3pU2M{MG{IW0Js7$ z1kl6p76bSsSpon^RvV){&v!*pcoE?#&-0wq>GT=EH2_Vr1%DV9Md8yl<>7FseYe|j zyWMiL*-%8dTCF&n&1y)qwXulMT1)2~t+lk)a=+g*NfO3!Oc7z0WlYnQQ4~D`xK<s& zyZ63Mlw}E$5D_@%5ClO>j9#yIdnB0Fx)K#yYk2Qrj6uKON0KBc%Mv1j;c)m3=>n?a zYHf^Z#TBs5A%BXV06YSCz!`QQhFC0@FS=RG$)rBO$>d~Q<reET5CkLLELQV*tLRj$ z=JTI6E-y#=oVJ^=TJ&=Ot=k)b*JiuTL*4kuvh3sEzi=0Zcv~)CRAU-%oO26f%*7v` qR(kKV!C-K&I^!Ikp^E^BzW~;r^W8-`IDr5F002ovP6b4+LSTX|Wwsaq diff --git a/lib/images/fileicons/odg.png b/lib/images/fileicons/odg.png index 5224425e6f3f7f2d43358c413d931048d316bc80..0a8196cbf73055204cb5198d50d23c8aecdef891 100644 GIT binary patch delta 354 zcmbQu{E2CTWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<vTrH978H@<(_>h)TAKN_OQ8O%Z+7g!<Kb+9RIz4zn$dq z%<7wM&)Fv^tUNoTtA*i(@2Q1le2g=;Y`Zq?XzO`yQNf9c(a+~r+ZE-#TFUicZ@F)2 zY6?@ynb_>p(REUcyg{Pn2XeO7zn&rR&Q>k##<iAWDQEc$|C{HV@2j&^QPH@UYBMd@ e)Zti~*J*LFGO>@RUr$;L3N=qxKbLh*2~7aqK)U1r delta 396 zcmV;70dxNH0-FPn8Gi-<001BJ|6u?C0b)r+K~y-)ol`q*!axvxyNe)7=LWe*!5L6Q zx_mCfF>;4UP#AHTkS+x|L>ht{j4)oWJnNStvSXVl3K?mnotd4dH*YkGB$QGBa0Orp zpoiZr2JlX@1OSk%3gbM__eD{75#djs=Q(Gy*%N>f08O$5Fn=kE!l!A<<MCMge!u5# zx8ruZrHF8|*>FCe*C0)56A_`cmd-g^YiX_J;c#G*B#h&jBEl@on5HSCD0%`gQXPO- z?|q#p%Mv6ZB5=+j2!fUvy<YF;L@=#&B`UPm@ZQ51gMPn{BuP+~B}4?n;qVKj3s5yz zZ(~d=t^n&CqJQWSzypALoMCrih}C+%)Xip2r}YO;r>(e~TYY>0K`_?MX0=$fnwoJ{ zSBu3r;^pO7<4o(aIve0*YXF{`bej~Lad$ibK$gAzdkeQ=h?n(xsT$XK?VMW~V=n$M qTIs#d27|$!>YQ_UhAsji{sfVr^{8FjapnL3002ovP6b4+LSTaIs<Qk5 diff --git a/lib/images/fileicons/odi.png b/lib/images/fileicons/odi.png index b57fd974d92f2b8af4a4bed282501b06e33eed88..0fc8508adc4c3d8af3d40195640d05dfd49d59f0 100644 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-{tAz7*cVowf{C>lL3!|^^Fzcdm6(- zSR|9L{Qqx%J5|w5-X?eQH=8Y*8XmlEC5uG3H*0DboVmH-z@p99%)Yjs<DSdFFzNF- zTY1s1cZ1j;?k%saR%L6J=sb4NZ2Kz_R^?@D-|M8U{>y$`CZ(>>t8h2l%;gFHy64Nr phx1u#oG4RuJ+*e?cjGw*FQvcni%kvp-Tws?Xr8WqF6*2UngAQ<whI6N delta 382 zcmV-^0fGMW0*(Wa8Gi-<001BJ|6u?C0aZyvK~y-)ty4Qr!$1&yyBj5l&Q0WkB4>zD z==fZQV{iwgq;SMx2pvT@1Wgh*aTLevm1q4ZkfV5s5CNVv(#-76)65%<A_=7w09*j* z1L)v;qyXMY)&KyK&BL%P%S}~PUPO4z%Ch8mJbnZ)0H8^>2!BRZRrx&6x!djbw%KgB zUaz@YttcW~EEb$hCVP^@)<z;iYb~8~wARvE%k6f{EX$atDMf@uQ83SQCQ0%LV4wnm zSMU8kQP(v{LPX%4Lli|VF*=>j)fd6E){UspTElw}V+^|8F0w2`UDps1^!xo!l8~S& zZhT`*D{ct)Id>$<1AsdKw>SYeag5n~{-ncV-rwWU590>2<r0XZp$?1HblUnD#x0zm z4>kUXe<64d+f~yk!m*B`DBga(h3h!R%Y6Q%4zBUiIX5%Loc&<5+IwI0dc7MJoO67F cE&?F^08o4C-I~-(t^fc407*qoM6N<$f&kaChX4Qo diff --git a/lib/images/fileicons/odp.png b/lib/images/fileicons/odp.png index 81d1023c08c320aa93ce4cc2461d48276446df74..75b1db8e11fc8d302f952fe5c8b3edc2ae42d564 100644 GIT binary patch delta 358 zcmbQj{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<$FC{978H@#h$$_)TAKL@X+<Z+k~(zb?wV8N8bLuzkX_> z%qw=iZ@VKL8m>qLbqerQ#ZSnO*=&$-Q9Ak7Gq>x#UJMNJC#|yYub<Ucx7x<y`I`%O zJDvH3FPhBy78uV|u({;y<ixG37oC&*@aLg)+|<K1`t7Q0^Xd=gca~M0_+Mw4s-R#y jO+<@-mgBM=OP-30ycfH*J7CRwP{?_@`njxgN@xNAD#pC~ delta 388 zcmV-~0ek-T0+a)g8Gi-<001BJ|6u?C0b5B#K~y-)ol`Mx!axul-yw+T+#nYzcms+^ z7n0BLjQjx!3ZpzGq)R~_kp^&s5yt0}_dF>gTegEp$Vw~S?(NL(&1pT7@H`IyZUGDc zba2@s0G}ia007DIVw7dsA<uIsB0T3=mT^9x&j1VoD3T3=aetoYE=dxePN&KbhXeQf zJ$JhuMTDEphKt3bBB_ry77-d_Xsx9&hQ=5kk4MIF%qWT|B23eiNs=%O!x?~~*CKd# z&Q*z`C_oY-0&6XN-*1S~>2&UY2&R-OMTJrd&N*nU(d~8-$1#ecfQVo)7<`ko2}*Ez z)>=2>lCa7l41J#gJOOyb6*dV1tk&xnRR?oAtqM4uUW`}UE#UhjRR?>^Wuxe~82$c8 zT{Cvsq#^n>1Z{9h@LC_QUUaTw!_xHQ-@ot>1bADoU%c8j-dSr`TI-uXJgsofrM+Hn i;<eT}xIz~J5Pbm?p7Y(C?X^_^0000<MNUMnLSTaP`KW&Y diff --git a/lib/images/fileicons/ods.png b/lib/images/fileicons/ods.png index 77e6d5366b5175f6ba5d16041d10a9d313aa71dc..2017426bdefee34eb29e4b75a2e26e500b5df8ae 100644 GIT binary patch delta 357 zcmZ3${FP~fWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<$F9`978H@#rED5YBJz)4fa~ey{JiBt9we&qyPWsPxot2 zw79AETv5?6=%s@UC*#6C%jz~=o|bdg$v(lhKR0$OD_x4qnY;D=t|$9$ACI$mo^yYn zM25cGvqFQjyZ5j&s$C9~?>PH#(}QV3-{gg!M!U@@_R(P}Qmr{_erRsa*Qc{4EqD@B hu)so-W9AD<)&J}-#16ZkE6xT5oTsaw%Q~loCIA-rx%mJ9 delta 401 zcmV;C0dD^F0-yts8Gi-<001BJ|6u?C0cS}>K~y-)os&&Y!!QtqpY5nc-DOi{!GbeX z2zLBjrpMq8NbMpOhoS6PltZv7&8DfE#<4QaV}TNqP$7yXOP(3OPczT5A_=7w0GtCD z0|@Z@N&vi*tN;Kc>%yccid|WjUPO3o7e&F@Z1xD?0)Qsj0e@VTW$Cjl<Kb{<_HMW1 zcDv<fv!RG^y<T%ZpEr<pYgZydYb~8~wARvE%l&@OG)<W#2}Oi?o-@lb#&P@z;6n8P zuipD6QB@U4LPX%4Ll}k~GlC$v{$ZHbx;7PBYk2QrjKN?qK$@ngstO{4@p$|N=>uwU zeKy8);u_fG5P!!H0PX?Y;e>S?MOdy@Pr5DUblP0tblQpgx#h<P5QY=o7OTagBWlNW zT`d;h#L;M?|JrgN-k5&M+{YjRfM)=Ab+O%IJFbPD5%T=)->+~JMR-}Qo>c2MUOMNN v#+b7|j8=K?^WkuKt9su#I>8qKkbDBT>iQpdo{RAS015yANkvXXu0mjfJ9)j* diff --git a/lib/images/fileicons/odt.png b/lib/images/fileicons/odt.png index 8490eec74d286390c3158171be915ed16c0712d2..6f8fae4382552e0b073ab96b1867ec881b78073b 100644 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-|gw*7*cVo_3TZdCIyMMhw_Y>hT6GX zi#%Qa?Ee4zb$6oF^2u@28lN+GOt_-9Oh}QTD!L#e#))Csi?v&GYoDI>QgunWQTcqH z?@{OdVT^me=e@}5@oDI+l*+AMe@^g%`>tP%5jlLD{Ujg$JH*2s?PqbMvGd>IH@yr$ q&+8xWVOjcnQu0$j=9H{`nLpY1Si}xL`TMN^6l$KXelF{r5}E*Vkh{A8 delta 387 zcmV-}0et@S0+R!f8Gi-<001BJ|6u?C0a{5!K~y-)ty4j6!Y~jV+XyOdxu6_+=o?T) zZ>9YV&*&eJ;1JZul-_!vkLU%+g&;y4E9*=TRicDeRcSlY%HFkSv>s~}NhqZN;1a+9 zKnLF=2Jl9*1OSk%4u*N2?~9`FBEqjC&vVXZvnhZp0Geb=V1HB;g-_Fz$K$b%{eI8g zZpZC*OA+CEz2<yAuSJ@zjYNdjS~}-wt);b=hr@wMk}!^AiU_kTW16OnqG$@>N}UM2 zc<<{%S(YFP5rK0KK@hae=yW<apA6GlSEfR14evdSG3a)?NRk9)SwciG7z{o{P6aA* zwKvAJ@=CC-A$*D+0New(!x<QdA(pGvqi&Kpnba3JnS7a7wdH051i?@@$!f7^k(#+$ zELtl7px+;A{1N{m@YHO#+2U#b30d~~>tDDHLp-lmkE$_^*Uq`6G3Me2Pb<CmS+Ca{ htCMjK&+tV6#P1=x@ZA^M)_ec}002ovPDHLkV1l(_vb+EQ diff --git a/lib/images/fileicons/ogg.png b/lib/images/fileicons/ogg.png index 38f615c9903c327f536826d1d57f94ff9a855b8c..8bb50800e61384bbf4c8c88d25fc66ff2d9b8033 100644 GIT binary patch delta 357 zcmbQi{FP~fWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jU?#(qDO09SojP;oOoloJhM5cu z{R}^T{P+n5zkmP!^XCsx&~Brh{YLv|&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BGx9<Lt4zypSB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0Vv<&>Eakt!I*mXwNR6SK-)uCN2?o(Tb;v}b#}b|dp|z@ zh=uRIGkk|XH>)~syrd|}$r!M^r}nQ9(}l?Fo|UV$<HL-U;*`!_i~L<R?atQhmj^A= zcRxGkQ7ti}{oa-DpJW(nm#ma)IJ)e|%PB(lk{c!WZ&tnYufkoJW!~X8{rh!~PhnAQ jpX2;9j`5L;|H>b{JQiZN1Qwm+1_hj_tDnm{r-UW|KiRrY delta 393 zcmV;40e1fN0+<7k8Gi-<001BJ|6u?C0bfZ(K~y-)os%(c+dvRS-;#oqR*j${h0kCF zPG=>T@iB4-15&}jhY8)Ka1N115gSnu#U;U6{uBWTQZnKw0}OWm%+AN(zgQ;;=N!O$ zU;#|{dt|^*Ni6`9y2fo)Rfnc&f|=>Htg1@u_4*OG0U}8wf`7ZFX+lvHI-O2^9u5cX z_j~PjJDHib+pRX6O;0kEc4ubt-m9)_dGF=D*YS8%p6AN4OlGFCEL9YRk|cQqZrmBc z_Ygu~XxkP^m>G3lGoQ~#W=tlNj~9kTQPi1A6h(v(h~t>)bV{D*v~7!-u~;nrkem~A z!`(iP;}Px%`+ph<Ux3fRC$5Oqaz*-*K1IV}J!o`D4;s~mIQ^BvoLfhNx~BW;F4p1j z5ci(FCG|B`R}s7w5%3MTklo?l?K2EO$&dejh5O|_&o9qUZtxpF)ODT4as2KduGWSS n%GqqTa%bOpd4(?qWWNDCulev*uLa`(0000<MNUMnLIPld>j}A} diff --git a/lib/images/fileicons/ogv.png b/lib/images/fileicons/ogv.png index a937dfc4cc5cdaed5fe167b03be3b17417475282..e6b65ac60461f4b6578a8aa4db731d739f5a3eaf 100644 GIT binary patch delta 360 zcmbQk{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U?#)NDO09QojP^q%$aozbwF-E zL;sH-KYoJ2@87@w{P_bE+-SFPqy5Hb&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG*W7w72ee<LB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0Vv<^>EaktaVz!gYoR6ufwqUPj#e|K-a2{8M6hu0|KG2> zC6=!&7nt^(ebR!6mlJwg7*^z-+n316_+pRoF_W*Y=d~pTCnl!7UQ=tQ^=|jpFAwHy zuB}d8V%u}(al)+VQm%%3m#&o`ND8hi_2K-!@`(Av0}}+FotO9~xvc(x(`RYMP4oB5 n1PM)f!_6mZ&DtSsyZn(jSE$(GhOR_@P}q68`njxgN@xNA*;K!~ delta 397 zcmV;80doHM0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)ol`q*!axvxyNe)7=LS)v;0!2A zx_mCfF>;4UP}t%yAzcb`h%^K@7-76#dDbsQWXm?>JJM)pXJ?+?ywxa@P)Y&71%M%d z9=^92z#GXD06?;OnB;lBD~iI42v2#Q=bX)Ej{wF1G|3jgRew<wK21{|4u{%zyB)XN zEjODDMTG11n)CU*25C~e5)oQ!>71jrmeyMC_j@Ku!Z?m8BFwUkX__(&!$$yP)d6_% z-q(q;EI|??0_PlpAZUrv>-DaW1k+kqqC#s8?>&q$==b|bk_2U0LPRhe4nIM<09A7p z8)I7c3b4+F2!9^{+yl77A8d3x!fLr%=w|bj(^k=x(>m8Z-<R(Q5KMHlIZ{!pFj5gB z6@AI#9Oo1L6V)!OBhi05bH%R9NCS8}RnQ#gE6b3*{{I(lMp!+s7OJt0m(IDRG3M+S rqm|zKY%mzys?Iu({-BEhh(7=hQ1jjL`Mx;-0000<MFvhpu0mjfx8|}5 diff --git a/lib/images/fileicons/pas.png b/lib/images/fileicons/pas.png index 0c14372d0e89a0fa4473b030690efeb1036189ab..19f0a3c6c18e2f4fe7fed3e5a49078d35aaa3a9a 100644 GIT binary patch delta 364 zcmdnY{D*0RWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ocopx;TbZ+=@NhDb%DO(D2aJ(dvlT+f7EkE;0B1|BdRL zv26as8To7sY%3=y&NFaRC{z8l%#^cHhkb47^|+6l9&$2xq?%ltaeec_!W%{W*P@KS znJ-z=E?GFQq&)u|;|kYb-yAmtef3{16Y^GO?w=(~8E!p}h&pibi+98M-uJcvf`6iq q-q$}aBazb1<$N_xV9Cs$&M&;2bHxtl9$bA76n>trelF{r5}E)91;Hu+ delta 420 zcmV;V0bBn30<!~<8Gi-<001BJ|6u?C0eVS9K~y-)ol`Mx+dvQ;-Z7GqRB8kjDO|)4 zup-E%lg~)M$R7kq1r0yOE^NSt><^?%qlk?th~n|UJ&p^5%#l$H#S0v8v$r$5H-`&I zA_xKi_za*AAjI1d1NcR<1OSk%4u*N2Z;PUEBEmx}&vVY_^M4tDQvix&LttDKg-g?v z`~ALN+wGQ{&4%msnj*s0YQ@E3QH%JajYWjU7+Py-jG-}xyWNgSk}!^AiU_kTW16On zqG$%-G-wGtIOpm_S(YFP5rMT9y<V?jMi_<{e;KBfs!WAa3eGubt<mXpkR%DpvV@4B z-|xSQv;``1wSU)IH*h6b=e|y&9{|1s_=f+8;n@Ip4^P*sA}^x}meHh9bO=|u=byjv z;Ztv@{LZ84Rb8-*CI|6odiBS|?#H2Ockm1R34F1J=|1qu|H5sN5Wvkb23AC0RBZPA z?pHYfGQj=g({<qe#*wx5R%?CIzS@B(opV{Y+r120-yL~y1i8KefcOQ9wfi2+>Q<Nl O0000<MNUMnLSTXf*2#+i diff --git a/lib/images/fileicons/pdf.png b/lib/images/fileicons/pdf.png index 1bc154641484e1aa1a1cac0f0787034eb0ec3762..42fbfd2bba6750c04da9fa694ef30a7126694237 100644 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK18He#Q>ILr zI(6#InKMH|LV(=(`1l_`e*6T3-@kwV`SS-T*wxk5-QE4{*|X=*pTB(h^3|(XuV24@ z^XARlw{PFSfB)gbhmRjWe){z3^XJcBzI^%m_3O89-@bqU4lxH}2+;OxEZ?Jm){B$` z`2pR<B%@$tVpcbC;>6ke&wl*;_3z*P5w|`7<tKQ$IEF|_vK}<_V>T3EIB@f;r5&r3 zOQP0~|Jz^OQDWstm_4&2)`+n<m%UO~KVjehb+Jyl{@Le#|1G;)@BOeM^vJ!}HgfyJ zoxD_?bMv1zaBTGY8}a!jqoax;ci}a*hCeo0uiNro^h~`eG54Zmv-cwY1<pwfY)@og vF#qV>Y{qaT{K!6=6!xCV?i)*48n*splvX!xx)r^}2o!Xlu6{1-oD!M<d@HzF delta 410 zcmV;L0cHOA0;vO#8Gi-<001BJ|6u?C0dPq~K~y-)os+R{+b|G@KZ$}>z>^mvLx&9Z z3m8Q@HhCHAE&2`t>_I>trXB5}FW{|<VJ((n*%G0nu0ugVQW7KW4;;X|<9$aS!9Z0B zf&kz%Fa;uRD+7M3Y6F0(`oyBDs#9IpPDJ!AtEx&@tJO1b4}XNJ+5<e)b?u6x(97l0 z+Ua!C<MF76!$Czv_xruB*XtJ2J=%kaXjztOt<|zDwJb|LpU;}-xn^0WBBIypRg0p~ zG)<p@`(OarIOp0x(=@0mB7(J+$z;+SMifO~Ukxk_LqAl)FvK~BF^17-M4sm~O@oLq zolgHkh5%pe*MG*Cp6`KeY`I*12cCdO{z3EkoXuwQ68YjZO#w)f1c3K^AKUGAjK||e z*zKGo$*YY+-va^SI9~MLF-_CnhM~H!cIaK_R`GlJ5cqMc<1MJQ_Sb*E!fZBUyWPG7 zo!|JyTKm%&^J#dsH`F-iu5lcH3kKi$?gPbM0%U&xC=(d*QN(M-^8f$<07*qoM6N<$ Ef&xd#)&Kwi diff --git a/lib/images/fileicons/php.png b/lib/images/fileicons/php.png index 2deb5d3b17e096c529f247cb64eea5b20530aa44..de0d8eeb925234269a5c0ece0fc6badbaba0fadb 100644 GIT binary patch delta 360 zcmZ3%{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8VT^vIsBv}s{`Y{^{FdVq~)zXet$|X_j$N%jw?kKTx zB+Q=K5o^R)oXcLRtDms%|GHSGT>tEIzyFrqt@nOd5qjia;%ghZ{ozhts?NFjPa8Nk zdi{;~e3Q{p#gM!38e7AkGq<XizphG8HFINkdp_w!bD!M=2?>b_<qQwh&)s4Wh!_0* kX@ac5Gu@==LJZe_u{TN?D5ifs+X)IgPgg&ebxsLQ0Ae_|zW@LL delta 409 zcmV;K0cQUA0;mI!8Gi-<001BJ|6u?C0dGk}K~y-)ol{Fr!!Qtiu|tbs)lJm}i!R^* zlnR!>Wy&qM15&#P;xMoP2~@ZMJ2s`+G*#0$R>pZOP@*LKdD6(9d7fu`#`Z|U^E?39 z0ni2D<9mbvUP$Hu0FnhUNYiwgWtkHZer9Q!ay%Yi0O$iyB!6oHhgp`nIF7kquS;7l zms~6soX_VJ5zb~aP9~F5q<XYN5uq`L)>;~4XpG@%wPF-S48xEj!X!x;$1#H-xB$@i z8UpvuxiXOFIY>f8V68=`)2S81_x+;}1yf2DMTJrd&N*nU(Q362MG^8mhlrrt?Y@gN z1&ZWiuC=cDg@0ffI~WD$08Rm%;13w=^>BOtc%_QuX)wYx7?lf(d3CJvPtUK|*zOEe zb?4#PWo=OtP2O*B4QhRy1|tm5E<c>&D;~{<&?JBI3xR9=6JnF6e|KSjw}-oj$1AV$ z8;91~8?E(b^J<?Ucg`j4cKg_CeCOUTlFJ(a2;Tr+sS@$r<*|)I00000NkvXXu0mjf DF~ztj diff --git a/lib/images/fileicons/pl.png b/lib/images/fileicons/pl.png index a4fa92203380580b57b6beb0eec2797ec3e60bfd..d95513d25df87d4e12bf3560a14b6264c1f730c2 100644 GIT binary patch delta 356 zcmZ3){Do<PWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Oh+qT^vIsBv}s{1|2pKU^uXMvS=j}ud|}okN?|W+(}bo zWS(@RH$qj|;Mt~$*FUixd;UH~^~yJ+;}++Cm;Uu_eH$y79ecL6`rkZG&8a+FYp3uk z9ntw}c6>E&lSh(B(t2KopC@izu$E0rV|Hhc5qiPyz{K8Q!&vg8bFUf0k?<qCY*N`} h9?Na?;$$fP$ISXbhwD$x<gcJ`^K|udS?83{1OU)pw8{Vg delta 403 zcmV;E0c`&C0-^(u8Gi-<001BJ|6u?C0clA@K~y-)ol~(+0znXcw~Ju3q9GI(6#4-o z!BYJh{0slV1d1bkj24<`&>yg~L9XEl$L(!y_MU~gi-&;dB$MpS?0dU!cE=+L&+`D_ z2tWfs1=}qE@J=!V0FcZJ?IcO&X_`6_;W|%}g#CX17C;MtB7a#T=%#7vqA22Wxh#A> zpK~^waXOt+L^zpDI2a5HlJ8gRiU^G{wARuXLt_jViv`0lWDo=t5yo-MD2nL&{w;u( zw?gpboGTJpmVqQh1lC&A>-ADIDwWFlkA^9w@}@#51?L>J)~Hsi2*VIrmO(_&Xf(b^ zRta)&zSdfo;(wg5$es248vs`TF7XFzpEU9C^fFTGz+=CMvEM7jtM>Z#fxW|eTWvbI zb3I%OEH$xq&{ms@W50*a_3&3I8wqv+=LC1VY+NTtZ2bD~S2#Ux;_>-q<b9jQj<xn) xYrVfsTK-9$b8)R!yYN=Vxw!+lPyitK1UV?=5#a(`f(!rv002ovPDHLkV1i91yJ-Lb diff --git a/lib/images/fileicons/png.png b/lib/images/fileicons/png.png index 007270532cb95814b7bcd49de0951a4b35a63d4f..273476daf4cac66ebcc25f2d5cc5a3e093bc5ff8 100644 GIT binary patch delta 359 zcmZ3;{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2VCGDQDO09QojP^q%$ap{3_xyw zKf{k7KYoJ2@87@w{P_bE+_=$h<3{^u&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG`{_mQ0NO87666PT7?X^Gk%?K| z#EBDU??3zT^Vh$B_eb3N0F>|Zba4!+xD|T#CSS9HfWt*cmt7g+OK0b<4RewC_y50@ zfYYnF3@0lk8W_cmrlt1?b|m*Mtn_wLcpaF1x14{^`%gR!2`W<AXTD#4Wb*Da!?h@5 zUjHR24XlMTOaEu(3u@>)e^<K^@@joH=hPy<R^fHb7iJ%Oeo(b%L0EulhxN7nF<uD) kbEJDr)g2FT&lLK@E*&8DF>~hiK2Xqky85}Sb4q9e09s$S`Tzg` delta 402 zcmV;D0d4;G0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)rBgdj!$1&yyBj5l&P|kpf-@il z9f8aE7~BCVDQs~VLPrq}K@;L8j^cQ|@~j^PvawABK|E=to!NPBKC4kAp_BrEGXP@% z1N@8xz#GX506?;SxG0KZTb8945gs~4QE)b!Jpecdph<QFu7Aq1^jVg1zuz}!yWMiL z*>JsHQ$)C0tvH|08<BQtS0X}dEuC|;*3w$b-EPM;O_?MKMTB{tGs`kYQS<=dT=fKA zy!VZxsw$9#h`>3AAP73c7z_s2-v*|&u7?V(HN5vQ#$Y%cB280NRRs~jcs%|T=?m24 z`fiNr*tKBei+>{A1Gocli$7p8nPRzIJnEVphC~=PKZ3s9_r1R_5Cpi;?aXnkI;6H8 zhD01I#PL^)r>CC+oeb@OL+Dr45%`UK2pYiCF@gQ|03grt`j20@!E*Whs9M{2>6}{_ wV@~?59YE#1&qt%tRQ1+*as;`C07yOnCl2zcq0*bC01E&B07*qoM6N<$f{xs?vj6}9 diff --git a/lib/images/fileicons/ppt.png b/lib/images/fileicons/ppt.png index 3355c2712a3603000fb5590858dd9b4c69e925d0..a03d3c0a6f939558594d99dc259d38c03c43297d 100644 GIT binary patch delta 359 zcmbQk{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<@-Ec978H@#h&ftYck+zc-WVFrg<S#+zJ_^V;b-O*O_@I zU#NGVrSHwgw8U(VSBt`hcBbUZ(^?LQG#9VSephjOB@06W&#wo6cdsp!`KIN>aj^d{ zv!-yO+Z^@lwy(9Blcwye6wJxl`f5_++G$H4IfwI^d|2cw_@P_$!<mG7#s9yb&S`A; j5~36?XWHm<)?C+~?TXmcA1Cg71qGd_tDnm{r-UW|#Vfna delta 397 zcmV;80doHL0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)os&&&!Y~kpU*ZTVcG;jTy5J0` zqPx;whGX;&NU#X%VM=#h&_i?sWJ3@kj+Jp<7s!YN`p1(jd&V=L?HSo43D5HY;1)m^ zK!Bf>0Qe+X0RTw4jeb!S+p;XJi15-Vih`5LWDKAOz$aM)41db9v{{yMzuzCncDv<f zv*CKZrigI4Tyi>{9wDb!8;A(C)-=XYYfY^+ce@?aG-Z+`6cOfm&MeCq$MG0I&uakQ zt+hu-RaGDf5rHuVVHnnm5d^{gS;2hYcSVKo`>@tRDTP+6g)~i3RTV@8-EQ{)X#!lb zTPvk%wgVo0h=1c}08aoO@ed872=m3_C2+|cjSj@w?9kqCZ0DP=RzMi`{nL}Z+3YN^ z334+4pwsEs`pD6!7SOaWsRn2U|Ca0kueeru{&95|9-;_ui^Yp~@*D4rF>|HVP4j6N rR9S2DcDp_F8s9nkL$Z?qNWK7*&F+W5!1YuB0000<MFvhpu0mjf2gkN9 diff --git a/lib/images/fileicons/pptx.png b/lib/images/fileicons/pptx.png index 269cdb8fccac145a8c7fc2b9fcf1d8d511983a5d..9b5c6332ba8c52f59be09a4e0372801090dec832 100644 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-{<M#7*cU7wzr$F$$-bzdYhqq2iND; zE`{WtPyhd?U)Je<c*kziWHnaCpxGU#S`-%ciyB>?#={xRdv52t+6T4EjTj7GG=IPE z-~4z(xQ-J?-JAIy5@N=WY<9l8dS{VC%H{3(LbIFyK8`xDDdMzma}X0RpSWu5jT-{x tyCS-azCI0VX!sM8yu>b3$jF>iw?2G{cv0_hWkpcHdAj<!taD0e0szjRxUB#H delta 399 zcmV;A0dW5J0-ghq8Gi-<001BJ|6u?C0cA-<K~y-)rIXK20x=NAzqSO7H!frk9()F3 z@Fw~)Jch48OyE%B%izt!`Vd|SdtnL7cAK5<=Rp=(MB|??nM`Ne{xY3r6iFzh0N?^Z z4?qjwD*^CIvH}2*tT*~aQLM|d3?jl)Ruly%lgR^sO8}Z=1Aj0m%Q9qH#_e{yxAl6> z)oR7%a!C>4VzJ<KI^9DKOB;v?opbcw(>X`y95<T{(==t0Boq<mdCn}$Xsvw!aH);} z&mn|;qN*y8gowa<k8ZcyXhy5my8hHKt##d0Xsr=KfH4N`b{lD$qN*y02ztHVJLDKp zU#{22m_}R!_kTH9dk^3az%72EVH9B=$B*Dnu$HivU&VE<;m6}x1Av;%z|rWVtb<t1 zW)0ua`FURh07s+7f#bN*qaD27*Qe-TT|R`@6>9uPdH(X}U$}`PJjL;&I+(^Q@BQ2u tbM}MEst`in>2!wbXq=;8JWBv1Zy^008R}AWumAu600>D%PDHLkV1g6;yP*I8 diff --git a/lib/images/fileicons/ps.png b/lib/images/fileicons/ps.png index e61d1aa7e30b723c0d69c3973a5faa367e596ef0..3b7848c8e18dd0c4960556e260eb45cb5fcd1576 100644 GIT binary patch delta 361 zcmZ3%{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2AT2Fz%9JTnr%s(Yb7n|L2#^~e zAOGXWkDp-h`}glZfBpakySlo%yStw~d-nYK^OrAQzIyfQ_3PJf-n@DH_U-%k?>~I_ z@bTlvPoF-0{`~pNmoHzxey#uZ?c4Y7-ysG;OaWSdjpch3(0-AUAU~kPm}C@;Ow8&g zPMkP<|Jje9zyAHZKjPL0p!@_+7srqa#@Msm{7ni12R=GGR?V1tOIiD}%aO;w>-YB^ zKlL?zcklf?2A&|rWShhuhd16|e6xj^BKf>luG{;t^sq2P(u5Vg*WQOWKi=?EuE((I z&3g||e&a_rE8ks=Q3~+;_04m`t*hPVEO+eQni#;kBl9mO>j!D?74^n@1h=nv^nQ9U nAJ3-b){U<eI4=3r3BP3D{!8@k7ms!`P~dsG`njxgN@xNAIJ>}9 delta 409 zcmV;K0cQUB0;mI!8Gi-<001BJ|6u?C0dGk}K~y-)os%(cA~6((|FK6*Bq|z|Vhakm z0E)8ZCYQmt*gGIWVJU~nmQdsZbZHRNFo*$<HP7>Jv6>M~W>Jz~dXoL@|MT;+9Fas6 zMF8*vzz{%;+e!hvldJ#$B<qD~Q51)=EQ5%!D~h7vVzHP57=Hm!B(DIEWm$$i&v`nX znm8N|-0%0??RFFqZns-5m&*onS=ytB&^br%J)LuO&hdCWGRrciX-W~{`Fv)c=d{+& z0gR#+U=>1W5>-`!Bt!(>dkhAHt7gP;{PRP@lu~t5p_D=h0a|PHdOc)WhN`L{A{Y*b z{~&EZZLY^!>wl|x4Qz6=+3YufX8=$5f+mv*R;$&EYMZUKu-0B}?#gX88}$4Asp>k} z7}FT6wJ^rO81tcuBuS>KtGwFOhIOeE&_3-JBnI$$tAVw#>k8icw{O3~cs#~>y?%)< ze&d7p{*TuB?tfRiP!&QrCrR=vYJKPXPnc^7fb=hG>JssYmr#T>00000NkvXXu0mjf DCn~?2 diff --git a/lib/images/fileicons/py.png b/lib/images/fileicons/py.png index f0ed0258c5571d6d4672b7269f4f0d4e061dbe51..893019ee6355f147e5d5443b806099f572dd6e72 100644 GIT binary patch delta 358 zcmZ3*{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ofl<T^vIsBv}s{`W-P4U^sBIw5E?wie=Ku2mkLc^6oBi zV7P5AywOW7;Y_OX`lq5j{rh)%t$3T+S2%C`>tFM^ZqHV_7C-Cvw;#sBL0Xbo)%wyd z9g(k|%bYjkQ0ffq*lWh{B>bA&`x05>%?B?s>V0f_w?JOuAfv-Ph6DL;wlXU0Q@-|8 j(fWbJ_Kr|5h8dsv3a{zPo_4R;1PVD%S3j3^P6<r_E}*%c delta 411 zcmV;M0c8I60;&U$8Gi-<001BJ|6u?C0dYx0K~y-)ol`MR!$1%m-<bqKl_p9-kpdn- zh@b>M6Mn%TkdnfPzW@aV666DPG$C%{D2~r3?|CSYEju^}7-@C4b2qcME1gFYp63C; z0e~(5A3q}m@J=!Z0FW#W25Fiuvn+EW!lp>ml;iRE20$NxB7a#kIL)%m#c|B_dR@kH zx#VK8;Cw!(h;TNWaWa{dCe^2%iU^G{wARuXLt_kAs}-XtVi<-L5hh8(IF1<v!3}`E zw_)(?oGXbu&p{F*0&6Wgolb2SzVDxX8<<k67%G%faLz$%jaI9LD2kBhIYb2AZuiS% z)1VL+d#!aXFMkY6?qn2P1Gofmfj?ky)Wg&B>z&#ZzXT(^1S3@Q>RMp>_JN)K&OkL) z9$wvk6EwkZ?+v_@QNSu$2!~g<HLjZ1hTcSOyS&Zd0sn;9WU2t%S52C#H*v>@J!I>} z)T{i)p|$o=YrVUzwF+|QT+(j0&%KTB-1~*N>;ORc2^1KM>#jHvH=zIk002ovPDHLk FV1fanwpRcE diff --git a/lib/images/fileicons/rar.png b/lib/images/fileicons/rar.png index f15d4ce5b34de6518ac93bcdb29597ee61e62a9d..091a635b7a0055b6b584054dfd1266a48d67d212 100644 GIT binary patch delta 361 zcmZ3){F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbtVOT^vIyZl#{>=4(<AX?WP&P!g!Ub@tRurAH6{-e1q0 zyzcaQiFElK24=lbAC(@#6S18OGku*FoN~;*yES}Ijtdh*5?8P3v#&V?GTW3IwqEP` z%d07x;5JA7?%mnNET_Eh+i`?d{=KN#yr-;B?bbt`hPKqoj{<pf?N|O6|7k8_zhA~U lVS=1iPiVF0f#9twKc)4aiJNH(g&YS3o~Nsy%Q~loCIFe~w{-vj delta 403 zcmV;E0c`&H0-^(u8Gi-<001BJ|6u?C0clA@K~y-)ol{Fr!!QtiwyPGws++0{7A)Wb z6)HPEmnpa44oK}Hh{I5JAi)LLu_?`_shY;IGR|XBB}zh60Z$sq<2Uoh9(xo?D5U`4 z7{CBP2m28M_#~MF07w?ZC{5FKmStW<*k);(ayp&f12_SoNq^P^##xs6IF7m9ZcAIQ z*IcbuTrQUs5iS-B&StYxq<XZmh|pR~=NzrIwAOO7*)WPChG9q%VUi?_<CsAZ+ygjK z4S^T$eYuh6IY>f8;G9Fh->)^J)9GCNXqeWzXezYU@ZQ51gKoErD2kBhIYb15!C)uS z6eyC5wK1mV7k`4~UNFHOfExhU_ydM#S9p7wKk6cR5)hMswV<ls<i9@V=pSLEtCb&a zRT(r1So51a037yq0<|g+x2p97Z9JMEp{?RRz7TlAKan`R|Nj+EFY)&J{HQ9^c<!8= x8)FWdS8GA;y-#|*-j!;M^Y9nR1q49&4b&U>KAfCT*bD#w002ovPDHLkV1ke!wu}G( diff --git a/lib/images/fileicons/rb.png b/lib/images/fileicons/rb.png index 0e59207fc16706dbe608f4f40b365c19162a7e4b..9b58db030a433f28cb2d58968fcf4febe25ce526 100644 GIT binary patch delta 359 zcmZ3={GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2z&LH@lqplDPMtb)=1i@SIv`g+ zzW>LMA3wq1_wV0-{`>(7rgUvg?cVt8*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgutraskf%c1(1o;6S#w4R)WMWn~ zapJ_;`_F#-{PpkO{Smi50Ok8UT^vIy7*o%_6lzisIPlTc!D@^1%M+(e1Pg2bf6rFT zviip(|KltlH_wg`!-)oN3fEcN+AKL6wXBkTg6DtOA;8Iypt0rLt>0@8?ThYWIA?i# zd-{@)2EjrZpW>B#f;B3+wW>3o{#sni_RrS$y!Tp%>W<^?A50hiSO3JZ-o9?z8>55? kdEPx!r9BS>fA#ysez!v`VBPFBCqY5y>FVdQ&MBb@08ga41poj5 delta 406 zcmV;H0crmC0;L0x8Gi-<001BJ|6u?C0c=S`K~y-)om0C`!$1%m--QH0l_p9-kpez| z5J3t2O!y1_0Vyer_!uZa3QG6^I+_qSaTLerllMFn$X09;UMsD1yQi6(ozr?G;dvea z8~|tmsNwqv0KAdR001QOi*Ax6i!@E0h;UOTNy5Qka08$NK!1@e5uB!J>Y^y(YPBkI zu~=|EpK~^wQA9YMPB|P73zBtdry@dQ46U^^#?TnU<#Nd|3>gFgMTBu2Gm0YmzJCLt z<5dVo&bgwIWf@39L}0B&v)L?}QLEL?z8I#I%1wn*3eGubtx>Pn5r!eMEQ5%k)oOi` zR0(o$e%4x->VKTD=$-WaYXFx3F7Suw9<}i}n%t=>c<lEv_WRgY=kfCTj-CBxS8aN^ zcXe9=RqMjU#$H!#k~jAI=w01ztxKkFYW`M1PH_K|VcQgljbHx#3&)3TJUvhDytQrY zS!*A(*1OwATZ_y&7dIM>bFZ?_?O%Y42>=8iKy>lk^$(_c-T(jq07*qoM6N<$f_Y}S APyhe` diff --git a/lib/images/fileicons/rpm.png b/lib/images/fileicons/rpm.png index 831424ff59db13558318e8317e9c7fbb2a2601c7..75da50e0c5fa58b7c424ad06b20b850b2fe7effc 100644 GIT binary patch delta 358 zcmbQw{EcaXWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbzYbE{-7;w_?xU6l+otXn5%85Ou{Xb90fWi_HE1e`g(D zxagndnWN_749t3=9x6S8Ct^GIW%@cTICW6svT69992X{rc&@dZzumlM!597Tpk?~; ze{EAf87QBd{PNvbONK?$_f-n4DUvNcr4TQ+_VD6ZhPM?ad)5p7`04bI`{;fB<2({e k+PR#s#tD50sh#wPHGo&VI#cXUIVj{jUHx3vIVCg!0E-y9H2?qr delta 400 zcmV;B0dM~H0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)os+Rn0znXl|J@~Ew4xyv78Lpd z#9$}*GWZt0g9#L8co?z61Yf|;2DyeK9JjZ*+50WbT>ya~e=^yf*~~YanO#K^N+|%i z0?+_Z!C{2}zDVW(0FuQ)D^1fymStW<xXaQsWxwBl2G9hcNq=qt+F6$QIF7kmtx8)g z7M#!LoXutw5l*L54hDk~vVOI;h|pR~=NzrIwAOODTr!FxhG9q%VUi?_<CsAZJOgN| zEx_1&Uk36#2T6zsoO7tx>l@9eR4R9W8m6@_nhLEoy!SB1pjxdWiX!BB4iQ14(fEaI z1B&EgZ;aXS3x8l43wn40@BpBTf9Ue2gUNU_)BqlO0lU4RoCbOUvCl8o@6QqH7ij6C z^2?*zNZRMG$IolOfRg<3sIbr9Cw-{mG135DaiS83kJG1ceUHie+fc3j##`sy$QX0B u{l<4F_ueP9TCJnDzVqb~$%O<!_ybna_&$WsrL+J500{s|MNUMnLSTZIl)eH0 diff --git a/lib/images/fileicons/rtf.png b/lib/images/fileicons/rtf.png index bbc425ca36b666197cf3248ec312b759850813c7..2e5a6e53ee57fa9518860f43e7b14c7e5d3b4c08 100644 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK2Qz0*nKEVS z)TuLP&Sa>oV*rx<{Xc&E_z4ETfB*jT=MPZOZsSJ#jT@gmd-nYK^OrAQzIyfQ_3PJf z-n@DH_U-%k?>~I_@bTlvPoF-0{`~pNmoHzxe*O0C+xPF^A?82~0ov{yD_ID%UZf<* z59lr?83iK~v$}~BC(hn~_T%TTfB)`}xb*=j-|y+-7$PCbdeG31*-(Jtz|F6gcC1n^ ziCRDYZ+~$|iIpQ^_RNl0BgW!f_DWs-gnj?l#X9BsXP^81x9o1c_rr?NBllk0$n6hz z@=|rq&41d!vC->q#OIrgjw*)Sh1b{`{@7%_Zaep)XX;Ify9N@?-i!DbI46}PINW1w tm~WBI>`>$S=CpI!ff?I7V!aq5Uduby7-t){cs>J#oTsaw%Q~loCIISkwrKzW delta 403 zcmV;E0c`&G0-^(u8Gi-<001BJ|6u?C0clA@K~y-)os%(6!$1&4zjv(!(Yc9SP;iC_ zK}X;+IR<x#loUoBhR{)jL(qh{iK94PuRQBd5!SLzgn%!tyffZ;9{<q>BoPDw09*hV z0SNK4QULEHYXAUA|6*L0<*uqKCn7wx%Ch8qKA!=&1fWQE0Dsq2Rk=LRc{m)JwcG8u z-EO(rY$zgJuh(2G77e7`+O>$#7(;6<jWIOFaKGO(%QB{EN)cgE6wLFSNs`O}Tn0VB zt8=bN)O8J#5D{2w5k*nQj4%vuz8R*J@}@#51?L>J)))*1$g&J|T|-1L8jX&SKEN0I zz1F%Ddtj48l7Bn^xCd~DKWGxiSgux2p)clidL%wR9>@C?`&>U>etZB?G*;~|w-0)d zfBJnp#`*cUGe=IR-2*+fyJ$@B7}#s|o53gG3cxe|tD<=O_Y`j97%!{UQ_#ANSJv94 x*7~gfYbR7Y=ZfKQI0<^!IsQelmjFmV0pR)WhimWcNelo0002ovPDHLkV1jHiv%vrW diff --git a/lib/images/fileicons/sh.png b/lib/images/fileicons/sh.png index 2560671066688162472bd6f9fc30b0cdbdbbdc9d..bc483541451bef7c9fc03c08fdedcd0a14d89ea7 100644 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0F&G|38pK1IB4Hr%ahL zb?VfaGiPdr)B(Br@%=x3{P+n5zkmP!^XCsxFr{l_YWK!x&z?Ph{`}?3m#<#Edj0zK zn>TOXzJ2@t{re9eK79Q6@zbYIpFe;8^5x6duV24?`}Y0&cZfL<Lx8q#t(d_Hv|gkn z$Pef)CK&}I6SKOB6DQ8zfA-_&uYdpUkGS;#DBtJl;us<!$$HSxkJ(Uw;lRzUvh$gE z7a55D`5#?!U5S+=VfM_9SR=;b+^Kt}i5uLnzpl6N>vGfQf9rO?+rKm*UUcJkt5=V| zdwHx($@sfAq(fl!mVVRup&Uw`ksXUm8J?tX>oeqG*3Ld|!5AZSu8~p2f?Yk}{oIEv tKRSWZN5YTnvw6ZW=d;*GZ%&5nzsyU%>*+YL?d%2xoTsaw%Q~loCIH$xwoL#4 delta 407 zcmV;I0cigB0;U6y8Gi-<001BJ|6u?C0c}Y{K~y-)ol`MR!$1%m-<bqKl_p9-kpdn- zh@b>M6Mn%TkdnfP$3Ov65byyynh-Z}6vyY2_dFEHmg58z7-@C8dz!i3J*`I)p63C; z0f06DAHO36@If*M0FW#$dTE-@vn+EW!cCT@DTl-14S+5HMSpTd;55rJ7soM|%VlZv z`JA)ajMM3qBErdJ!qI3{id0KG6%iU^Xsx9&hQ=5!77IpE#4rpgB21EmaU3%Uf*Sx` zuO={d&XtKg&p{F*0&6W=t=7sgeBVD?8<<k67%G%faLz$%jYgw^D2kBhIYb2QcKchT zE>MsQUu(S*7k`3f?qm>L1Gofmfj^*k)WPHU^-gUfzXSuk1cTDAo(10CKe4ml>iL_< z{j1xps_>h8JylQkuWr{~tH&!t-;}J2{8o_<;J(^MLENSdvB}%Nf8qGBgQw@$JFl{h zeQWK5)_V7+)+)%Ib4jz=Jojqr+}VO$b^sv!0z&cZAP_1k^56gf002ovPDHLkV1kmy BxS0R| diff --git a/lib/images/fileicons/sql.png b/lib/images/fileicons/sql.png index 6697943e2778938f47714ecdf639f6b2a2829920..c36f3a812885de2b4f940d4ea301478790834def 100644 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}V}MVHE0F&G|38pK12bpNoHAv~ z)TvW}jJmoyAlcvF|KrDxpJ4F&_wPS{{s09xZru3n*|X=*pTB(h^3|(XuV24@^XARl zw{PFSfB)gbhmRjWe){z3^XJcBzI^%m_3O89-@bqU4lx8`0?_K;VO!0Cc8in*`2iip zB%@$tVpcbC;>6ke&wl*;_3z*P5w|`7<@-Hd978H@`JTNk)TAKL@X*!8YUR?h4Mx5$ zG57v6MwiX_(k`2}U)rG|#A=$Flfa5iPI>nx3%tlOIril)^ZRxaMuy&Nk-z_LvFJTM z<)CHy@`s&M(jo+=-~6)vn^+^4QAvJN?7f^_^Az6PyZj-Si=$e?PK5EaSVY)~%&$3r r#9r&${ZmrdeMMsR`7VdFU-Ku~ueK3W;N$+b9TaSyu6{1-oD!M<jQhT1 delta 395 zcmV;60d)TL0-6Jm8Gi-<001BJ|6u?C0bxl*K~y-)m6JhE!!Qs<f9$G7-DOjC!GbeX z2$sNQat!WJsa+)EFtB7%4#B2vHcizuj+Jpf3*;&>rGhV6@{IkTJTr1c5>XTZz%_sg zfB`Nm2k=R<1ptur2eZ1a_f69{5#hO2*EJW5#T>v507bF~xPNP!#+7Bs<MDV}`~9A~ z-HzMsmLkISdd=l>d4hDGb|)e<#?V?zV+@TkJRA-zih_BbQ$$!*70a?@nx=CAH&Fn1 zcg~#>ZQFt*L<H7a#Btnf#$YhG|Isj|ly54OQgF^eYmMP>h@vRawk<>ilgZ>85(2#0 z@3q#w*aJ_wG=EK>0XzYC#6L8hPO)08UQ}pKk_1VTpc|jtZ#EmmaXeF@Im<F+S=NiY z#;(TW@vJw;OP7C>3KRc@C;+cv{k{Yb^KsaRs;WNzG=&h-okG<4jkng?H?8&6xzYl) p&bewd8a+h8cb@*i>?Hv5FXDLj--iyY=>Px#07*qoL<FuvV1g<Ow}t=! diff --git a/lib/images/fileicons/swf.png b/lib/images/fileicons/swf.png index b45a72cc934c7aff5e71d61fae3e1813de39166d..5c8838778fa2321a05bcfb8ae44c6aee807a1270 100644 GIT binary patch delta 363 zcmZ3${F`ZlWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U?u~@lqplDPMtb)=FB<<1|YYe zf#JuGA3wq1_wV0-{`>(7ZnU%8Xm9`Q*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYguT{c`CK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbx?(T^vIyZpEIxE!3nS(D2aJ#j0cKrIV*j1Pg2bf6q>x zkojw8;{HgsgafTSOF5HS9tAAQzcWeT#3u7&Th7Yn?>1p%Na?&5`MdJE#h2e#nv2iz z-DTE%ndmgf?XunLY=*3f>na6vru=(3srl09HHQ~QGnQPeQstVanODJ)d?(=ZuVc<1 pzn`{bXS=!bP(Y~&i_K)igZqsv#pR#;4%z_<K2KLamvv4FO#n0Sy!-$F delta 401 zcmV;C0dD^L0-yts8Gi-<001BJ|6u?C0cS}>K~y-)os&Cm8!-@uzkNUo+^G><r0^LG z!|5#fGCD@C5Ezh(4SW|{?oud+NF!()t)SIDu*3aR1XNZV#ZdAC1Cqnx$H9;jNFoRV zfRDf!h<RTr@Iz7yfF!?hTUFJrX&Pr{I%ic?X+EDn0XIM>>3;-p-!zTO^IV6+;b^<v zPTTEPo6SaMruBNQ#bR-UbW^)GGnHkjx~^50rOL9@e!o|iWlGajW~QPjl;^pUBzXdE zf*#<TbMEM9+ZIWf8FgJV8jVhh5y$bTKMEFxp)V?77~-5GiXsMs0a=#Owk>AHcs%|E z=>z;>KaZm5WPj~}M_&S;fk$A<Kj?ZgVYOU7lfX*?^78Y)jor8}u!@1{OyX-0Ty%3c z?h0;0@0|Vq5AUiU7k0^)K>C@+!0Sw!b~in&JDyVk-~ay=9v)b|y*&q=ZoI4OdKpF0 vhyEWwqt-cB42Q!>&}--G3l4i3kp2X&qY?Z`Y|!ff015yANkvXXu0mjfq}aGn diff --git a/lib/images/fileicons/sxc.png b/lib/images/fileicons/sxc.png index c96cf303f14d9f5cd3348ff90a289eb6b6dd8afd..3b5c71f5972e11f18faaecda6ccdc7e4ad653913 100644 GIT binary patch delta 361 zcmZ3&{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<tKQ$IEGZ*iaq;Ms7XPj?O}7rmW=LOX-_A0RP6cx`*nBX znwL-64;Qm3I0n58kl|zu_&ulgu@uvV%KV<p*V6Ikg)S~hv(|3@b~VK2%k3M@#pn3$ z&Yk$pz|enjru<b^hF>1x_Kd67{CPP?=-lU+q@R252$uOUDLPDGomSa!CjRffkKa#g msyd$B_#mJ#fMMnfRn`07n#88wVfk_c6nLJlelF{r5}E+oC&GgO delta 405 zcmV;G0c!sF0;B_w8Gi-<001BJ|6u?C0c%M_K~y-)os%(6!!Q(vf5%aa*s@d^7<z^Z z!3O0rJqCBE)DEe77|O;_4#85IrKy_6vGSas0Xa%TLBKCrvHkpi&v~{LNhqZN;0nM1 zK!~4}0(c`?0{}?+z^E+CeN|OXM0l>1Wy#rWHU%&Q5Rg0p+<#P6<?=k|@px?7e!u5# zx8ruZrHF8|*>FCeH<0$$ZbXE}7+Py-jG-}xhr@wcmN89JiU^CMV4mkpl4J^Cs5*cb z=Ug*U*EL8&L}0B&6h$Y+2*dF9OTmI5@I^%s1aQtlYmHv7hb+rb*EK{0gTdev(gk?4 z?`y43#va(rA%9680XzU0;}5!zW31NeWzaTrG65$O_<sA_jj!I{fhZb<ZL?Y|zRh?x zet9`+&QUEEC)xb?Cn&lXp$+loHuRiA08aqMe&Kf++puO$QM~^96z<{}&+GM4wO-@3 zwRWYozUcni8P(3YqTlb|tIl(de_{3#0O<#%#ry0ae-6~{00000NkvXXu0mjf{nfw8 diff --git a/lib/images/fileicons/sxd.png b/lib/images/fileicons/sxd.png index 124b928e138dd9312edf5bde7bbf6834ed6a4f13..15390cd0ca639567471bf421f547533b60469cc1 100644 GIT binary patch delta 361 zcmZ3%{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<tKQ$IEGZ*iamQ<s7XPf;i0R8RR;Uk$x}0x9)0@v{`xsS zVPAXk1IHN@9I}LiX9}=X#VeYx_vG*~jmrN0uI+m7DTV_{3qGIQ8?Wp4ILxr({auqg z6ODMd9~s^LcQH;$VH3~Y$qAum_H(%x)N=6lJ8WXUb@|Kz?IsP*OP0<j%P&jU@1MgZ lFhM@M=PJ9eLh)zc)BJp|#BPbRn|uTXo~Nsy%Q~loCIE}<xA6b~ delta 409 zcmV;K0cQUB0;mI!8Gi-<001BJ|6u?C0dGk}K~y-)os&Io<1i3~A4$Ou(y1|2q{tbJ zMbahN%lH_3hX8gVA%|I~+rl|S8pmoZ!?GwsL%l5)G$h$EvUvcZ;m`Yq9FdA7lu`h2 z17HFm!e!+E-buCq0Fq&1TG#ciX&NsgJlE>F=6pVX25<{NlYi_1?wY3YWm)oYI2_w< zx8ruZ<z};?h;Y4LbFo+)A>FOri3qK=bk5OQOKUCn`#p=IV4mj`5mr^jvMiaV=`(;^ zH30na-X90rwgpLu2%K|><G5FhD2nb+3Z}IVMTOQH-g_8hFdB_e6b0J0g@|A>nf!wc z0l^$%V@$6ffPcp^r0FjJKLI@9KlGR+Sguwtx@+ca2F_*(@$egB09bx}0C7CkU9-wE zs4V+5tIDz-1lQM7{n=#bUjkxy5xS6I?qxiq2*7UuPhsJuj3+y)s<&_dg@+`;>uU9) zI<N7Eb8cyjxf&krj9Tw~H6D*2)!;cNUoZy=fc!77aT5FL+D06p00000NkvXXu0mjf DG`6{* diff --git a/lib/images/fileicons/sxi.png b/lib/images/fileicons/sxi.png index 8a5e23033ee209a94d0e6f00100ed26b57a8fecc..a0fb654312e597052f1fa6d6e2619ec9bbe6edaf 100644 GIT binary patch delta 361 zcmbQo{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<tKQ$IEGX(#-8ouYck+zc*rO5nSuX+a|nxM@|5rO_Pdt} zKE6NULjRJ6rU+@x&M8V4elzVX^mR(;x)*iZ%zRJYBo2lo9;^3veuqB3kT1;key{W{ z>!7wor#Wu7?Ot^=h%U*V$Fh3Qua|QiZ#>`mXyJ9)mbvo{LKr5pKH2SXPJNnmeZ6Js m0tMS?8dKSQ1(rXX-Dm&gyjc3|(!)PMf#>P!=d#Wzp$Pz}5xZCb delta 399 zcmV;A0dW5L0-ghq8Gi-<001BJ|6u?C0cA-<K~y-)os+#z!!Q(ukL{>MY+0%d3_L@H zVB_ay`WU<eQahyLVJI6zc?g!$EKSukj+N^i2IQy-6)GIb^7YU8?0YRMl2A$kzy*L2 zfC#@U1Moqz0RWH;3*)M)wsl>55#g~`RTZbx=@WoU0Geb6aDQFbwJ(Z-`~ALc+wGQ{ z&4%msnj*s0YQ@=X)<O=ib}b^b*3vmgYb~v{-0gPE^PE|hQAAjlC5xh9nx;<xE>#ck z=Dlwxnx+9shzOi>h~v0Zj3|n3eiTe=9f}IAHN5vQ#$YfQAkT9&O#>0ZXf*nU^Z~&f zVq;8a9DwZ{(tq?3zypAL{6Tj~g2i(Atovq8Cg5b!#>aX9SbTm0aXgOtW;LImevR|< zapxV?eBL=FjDLgbA4NQX1oI)ZuL!_PNF!`KIgPS>|Mx50CJA1b%V%})8?T&m3uDaL tvDA8My!YjBIJ{H6@0^@q4iW&_7nlk1?Dr1PdH?_b00>D%PDHLkV1k>LxjX;> diff --git a/lib/images/fileicons/sxw.png b/lib/images/fileicons/sxw.png index 9a903791cab3cadebb0ed88879a494dae7107656..865dc0c6e7ae134112b434898b285471262fb50b 100644 GIT binary patch delta 360 zcmZ3;{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<@-Hd978H@#h$&**Q~(P@K8y?dd2N2bMHJ$R7$G+|2^8d zW7c2aS<iNB8axO(>T*b;(PpZ|tZynTt7Li%V?Q4`?x@0$xZr|S_Ws=7#|0vcbBfE} z#Cxn{Fn(k+^IhzHWd*jEv-uC|U7wvN`Q%phUO&byU)W4uXlNfPZoKo`p-{9wex0O& lhrZ~sRhv~Ftc;rUhuwIRxY_Rog?*r~^K|udS?83{1ORWoyhi{4 delta 402 zcmV;D0d4;H0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)os&Io<1i3~A4$Ou(y1|2q{tbJ zz}w~LGCD@?5Wp^E<S=o%6wV>GajeENEQ=yE)JqXiuodsZ$pZ%Dka!;kGo&I3r4#^M z0T=;@@PFk1{*r6~03^f3xUTDM(==X0cq;0;=5#uJ0&opLlYcw{Oq!<gWm$5+-*>Uy zZn@cPxL&U*B3!LjoXut(<gm1fh|pR~=NzrIwAOOB+p#DL=6OyLVO3Qu%aU1^Jps5@ zJ;0myzB_2!79=4eaLyr)<D+IoQS|3q!?f0+snA-(dk<p_27>{LqCnfW5D|<<qc2Dw z5X@n3j5*2!uzx#4mOTP^0C0~V=q^dHST3J+Ff&cTH2oUw8SCQX1Bl~s6wGQq$B%V+ zIo1H6=JSqzn4bgHeN!m05B--S0543_`v5tm!-|e7tE%^3PvJI6@VZ<+tApQo<D6R< wV=nq{{DfNXeKi~o?^N$QCuf+01VH`?B;NhEEKMv$01E&B07*qoM6N<$g2{cf<^TWy diff --git a/lib/images/fileicons/tar.png b/lib/images/fileicons/tar.png index e57029adc8d4e99917dbca855281eae0ae89c6ac..8f9fd0f08a95ca78cb6ee9ba04730be65c2083fc 100644 GIT binary patch delta 361 zcmZ3;{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbtVOT^vIsBv}s{`W-P4U^sBIw5XF$%4K87hyVE(ce+|V zV7Pt8Wz95BiQ=0lva1;%|1Do9_U&<IU*Z1y>t5$)<*c6-k(52}_T%q99xGFC^l#th z*fJyc|BS~s*&J02r3&A%Gkh}szIc_!su?re*R78G@@P_nQ>n^=#p0j%82%jDDbLWc nzN57A1k;zo?ufOl4VM2Ix8xdFB!qZv0tKF@tDnm{r-UW|uv5Oy delta 402 zcmV;D0d4;I0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)os+*#!!QuWzt~laVCqtJU|@h3 zs8HD`yiEHRyaQ4@q~c*H8%Xd1Y%HZ&nyP6WE9ZO+m8&E``SVF9`|P`)&u2Lxi6967 z;21y$Km+>~0eB->002n(jb4^zt31!0i0~`RvW(;L_!htk0DncY0_f*??vf<oX0zGZ zYPI5Wx#VK8ponljpK~&q>>%aR`XWMO46U^^#?TnU^?J=Xju}M}MTBXZGD#AKVR#GR zB&Y!%opZZ|q9{NTA_8kI+U<6w8I4Bc;#0$vQogBBO2Ih?tu>m>CgM0oQ4|mnbUK|a zqz>@Oey+8y_<tU_TMLJ{0dNiA3V%@dY=Gy-*`4yq!;tXiRiBsr_tzQPN9ZYk@^rK< z-H*eNn2v%<Qr$mnZ2{k^99)K0n!XQE53X0>0r&W)Qj3@WzryJyo}V7>g3@n1x7N<I w)(1ab4M5?XOIxkhAgF!k?k|$P1VHow5n1y<AJeB)01E&B07*qoM6N<$f_X~4^Z)<= diff --git a/lib/images/fileicons/tgz.png b/lib/images/fileicons/tgz.png index 25ef9e15a0384cf920ae9d2c0a106792ca2711aa..8423ef08738af90d2cb4d0013cf9fdbc2f54c8a8 100644 GIT binary patch delta 361 zcmZ3;{F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbtVOT^vIy7(>r?@--{)G(23SWL?s}DLJp$N^s+z|G(F+ zJhH)liAp>NE91(Lg*t*w4szO0mg#afu3}5}xo-Di-)SL+q=1aMTkrcfKi+U&Voq_{ zoB1A^ZIXrae7<MpF$zTf`sTYqv-HZ=hM?;AroB(?7&bm%JbkCr1&%}78j_3b|80-q m5|}VQo9C*!=Y(fjzRT>nRm2YezZcsB3Or9&KbLh*2~7YojJUD@ delta 402 zcmV;D0d4;I0-*zt8Gi-<001BJ|6u?C0cc4?K~y-)ol`qb!$1&yyK5y#RB0j#3JSOY zLZRbxnQ#m4fRq$Q9EQ+=6fQtV6XGV0;&{FCtRDqh%Q4|Q(nzy!^xn=#qewz21pxa1 z`T!z)ZwY``k`(}eWJnwrMX@Z)(u)YUc~KM`jYc;B4ghG98-D_WvMha;Wn8b<wJ(=T zE*1;U=W~h(XR{f{<8dw0ENvhnwARu&M{6yuwOp-MOw*J}l2AmL=Q*=1V;sjf01i}3 z;L&?u165UlBt!(xIrMtHjbTJlboyyvTI(=WXszMBhcO17P6uh4qN*y02>Sj0he%r> zkV9;Y*?0%R8h?w2xCU?u-~xZJy`ytXA18NFAP?hu8@Rpts3KsuR|@U?+sg#KT^y@; zh&nTjxj_zb)7rTHsnq7r+eGzmd;Y2-4d8woq1|^7X=1s<^Z&PSc!ufI!<}ke<B4-_ wVvO1OMQfG!KJRwB=c;widw-aV07%{eEHw7OpZ*?b01E&B07*qoM6N<$f{XgIJpcdz diff --git a/lib/images/fileicons/txt.png b/lib/images/fileicons/txt.png index 4fd9216559e2920a3fe1ecc7821129248d879005..1619cc497bc791d57d0d7515090f952bcedcea95 100644 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}V}MVHE0F&G|38pK12bpNoHAv~ z)TvW}jJmoyAlcvF|KrDxpJ4F&_wPS{{s09xZru3n*|X=*pTB(h^3|(XuV24@^XARl zw{PFSfB)gbhmRjWe){z3^XJcBzI^%m_3O89-@bqU4lx8`0?_K;VO!0Cc8in*`2iip zB%@$tVpcbC;>6ke&wl*;_3z*P5w|`7<$FC{978H@rJm*GZ&DCwc<Ah~<&f9Q!>3FH zKmPb{zd?Fq*yq;fx02Ea8oZ|pNhY%t#V6<Jd2)o<MrHqg*EPNO1cSrE&*%2e)Af5C z=JMg*?#vyEOO<pwPUrltuJ&t?NPQv4(rRWuw`_qg$H5C-+gCPNT=*vw(qwYwSL?s_ ptiRmNe{LkKvh-k@w>p2)e#YZXVrG){ai>6m=IQF^vd$@?2>?CDzH$Hn delta 392 zcmV;30eAlM0+$1j8Gi-<001BJ|6u?C0bWT&K~y-)rBh2z!!Qtiv8xt!*G<(03(kNL zEP>197+j%3Y8Q^U3$SES4#B2sHcizuj+Jp93*;ybE#D`N?3t%|9*;c{NkmZu0H*-P z0DAZuDS$VUH2{EQAkNFO+*DQNMTCc}EKAO2vwHw%02IkRfq%=Ys(ha3-0gOaZ8jUO z*K4j;D~br0%O&UYc_Y#;?NUT&t)+90)>>L?x!rD=Wf{{nrHHU73g&rEW6V8(v#2BR z;=OMIbzOrbL<G(`j7FoqX7qZ!t4|G6N`<CEDFyF6wASeN`^d5kbzMV5FdmOTM7jbY zIqbF8dwvjXVt>Y%I{>!;Ztx3CCKD_ciw78E9*r?<Blz95%^PDlolX}joSY;H+G`hw z_~CGPu8x(MBnjd;J}THW{TLCF<2e3S;0b?3Q53KLeubztjTg?jXRY<gS62(4)O%kH m27~LUGtQGABnJq9^c~We87zIl+l>GK002ovPDHLkU;%<uysC@< diff --git a/lib/images/fileicons/wav.png b/lib/images/fileicons/wav.png index c8880c62e20a5d6501f0de200e722455d8b77b38..80eac97837e27993566d00264c7124c8aa87856d 100644 GIT binary patch delta 359 zcmbQw{GDlnWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jU?#(qDO09SojP;oOoloJhM5cu z{R}^T{P+n5zkmP!^XCsx&~Brh{YLv|&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BGx9<Lt4zypSB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0Vv<+>EaktaVz$0CttGyPs2kc1?wxhr}Va4&h3b}|Nn0o zXX5erNt5&y8JP7#Jyd!GPsDcaEA(|*aO$4KWwY=-IW9~L30!M8fBU+o@Wu8+&Bf>V z?(%9rO>~;$cKP1xVuq}V>na7-6#c!b*<5q&^bhCYhWPmx1)s@xoaZR2?+^I%x9CiR kW7P_SkhiLg{-Hjf%-v^;r&Oe=w19%n)78&qol`;+0N5zF;{X5v delta 400 zcmV;B0dM~I0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)os+$88bK6=znMi4xuZc8Df|qU z<#fh=86G3=U<nE=KTOu03+Exy5Vm0v%l>HZ>`6fuu_VS$j&wD5{=T_$M&l&moCEj_ zjDQ~Jl>k2^H2_FzC$7q}+|+d)%uIiavMe>5%^rYDz)R`?Zhz{!4q29Ix7!_Jv)O39 zUTd{l$;`A|E;XOe50K;1Zp=(YQK+ga6-A+<D74*fm8PkZB$1gZ&vRv2rp03M09?8g zz)J|>Fwis&k}xx>s$w`CcFgGYdSCu9%zNLOiuaxn0#Ovv@Apa5l%{DgGe)D)9&!q3 zH@A5dMV)>NJb#R_;45$s-0=^Zj3>me@skJcHPsz}ru!FZ+qZH}Mf@{{Ay@v~$(joH z=sJ*&F7|-4dUJDY`g;KP=sI~@)iL1P@x<wZv&#AY->+~xzUBG#`N<vq#_Ou8;wXwf uec)<M2q7N~1`~JkoyQ;X<+lt-egV=V^KlZ3U<m*K00{s|MNUMnLSTZj)xW3! diff --git a/lib/images/fileicons/webm.png b/lib/images/fileicons/webm.png index 55db6191468b1fcd487c01345e4b055362d0dfb7..cec3e6d5b541a2f1c1cb3daf099d69215d1e2e12 100644 GIT binary patch delta 362 zcmbQk{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U?#)NDO09QojP^q%$aozbwF-E zL;sH-KYoJ2@87@w{P_bE+-SFPqy5Hb&z?Ph{`}?3m#<#Edj0zKn>TOXzJ2@t{re9e zK79Q6@zbYIpFe;8^5x6duV3rGef#$P`*(;z5L1BG*W7w72ee<LB*+iwFeVuVBNMZ_ zi4!Nz-hcMv=dXYN?vJ?j0VqGw)5S5Qf-&}NCts5RPs2k#vuBKQ2K<47DLsMr{{MZG zmdsP{>|uX`jVWlU<xCF81>aPU9W&)@)T_?Uy?y7yu8Eus$r&a0c79)dY~lS=9QUft zOUjp&v~U(m<^Eow&l56XU8T?(uFuyk+izYt^UzRj&%T6=hn)xFC8yPkZ22h3Sk@iw oXUTD*PqgT&qu`R6|CV0jpTr@dxvkK73n=tFUHx3vIVCg!0O@(VMF0Q* delta 397 zcmV;80doHO0-OVo8Gi-<001BJ|6u?C0b@x-K~y-)os%(c!Y~wuf5!;AvLJ>IoS~}d zR@%#OjNSnW21gvGbn8G5(FKu(M1(k2p7VF85+wnuw!dWAzwP(=`B_#Zp_BrETL2>f zJ^ZW)z$eKP06?-@xXbfADT>022rsof&$(PK7XT&z0+KDjw0|fHpQb5Kr&HaMB;nz3 z;C{cSh;X;takX02kY;LA5uvq~&N*6ZX|3h)cw`*MjG~Al!Ys>}rYVgv3jh<<0la(f z>xr@~K@uVY=NyK^VXGLuUhm<oU_lU6MMV$<@ZLjfjeft6IF3=4B}4?H(dZk}1ysS+ zSZm$#6|kN&Fn=!qo&h}J4;s(L*lxCKkfecOv#-?j2IkC@WN?Wdst}<HTYk>@nGaQn zi-6|l$~S?nqF>9P>$}hz5UTLCd%~RaR=~9kGGrhBe}%^}wr|_DYW&7~=iEkXeRJ(< r4VB*eY%mziROdU7e-T_s07PHDjUzh$F<I{b0000<MFvhpu0mjf$x*oo diff --git a/lib/images/fileicons/xls.png b/lib/images/fileicons/xls.png index 5ac56f20dfe226d646f8320a3d79beeca09dae96..be9b42fff38f8170a67f5ec886e3e738da6354a3 100644 GIT binary patch delta 362 zcmbQw{EKOVWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<tKW&IEGZ*iap;c)TAK5_8`>J>P^t@H8w(m+rQWEuj^d6 zY`*M_zip9hT^bWlxgQB+nXr3K>@iiA1)t)w?_LYvx5mXM*`=%3^x4f2n=jc94@70R zy*t)XWMJsOIPd+{o6JVu;r0yOzCR}iyS<3ddw68qQX>YgnGY{l{=D}=C~e1~p8er{ nlK&>jaedSLCNyD*mWx{ctG!}%Z+((gL80gA>gTe~DWM4fH`l+d delta 400 zcmV;B0dM~L0-pnr8Gi-<001BJ|6u?C0cJ@=K~y-)ol`rG+b|G)Bn5lnPK}`=#h$?k zoNhmt(J}T82JAw{9wtt=g>#5Bw$)gMWl@BNdMN@4l2_T^0|q3AGjDzvMG{IW0Qd%A z3LwDSNCEsISpxt_HXpOHEKgNcc@g1|lx4}~a=8F-3qX_X5r539s`7cB^K!Ygayp%O zJRW&C94I2(?RH$PRxL?4wYiAUT1)2~t+lk)@_ars%QB{EN)cgE6wLFSNs=r8+^Q>r z7w>(msOuUeAtG?jAq>M_GlC%a@v323>!zvDTElw}V+=;45wa{pUDps1OsCU-B-aFu zb8|Pw^xh3&tA9h1JOOwF@PJR?K8mo}Zl876nQ@GvvjO9{)ou2BAPi^0M<X+iq1NlZ zax$6q=BU=|VZ+YftELY{88ZAIi3afVz0|w)_p&RB-(Q}>T@>NhcKfV4+xXo%w=u@t uT$eV0+IwG&$K!i-wa(E8oEr#$^e>*__CVN|)a?KO00{s|MNUMnLSTYX&AR#k diff --git a/lib/images/fileicons/xlsx.png b/lib/images/fileicons/xlsx.png index 89c84c52287893179a26518f2697563ca9b6fa6a..fd5d4f11729c219da6ff3efd9079eaea9a18db13 100644 GIT binary patch delta 363 zcmZ3<{F`ZlWIZzj1A~Sxe=v}03GfMV1=9cj{|A!jVCKvzQ>ILvI(6pEnGAJx3_!BK z|HqFXKf&Pl@85s^`~eEuZQN+TapSXR&z?Vj{_^F^SFc{Ze*OB*n>TOYzJ34x{f7@9 zK7Rc8>C>mrpFe;3^5yH-ul3))ef$3XJH#M}DM0I;V<iiL_KTDR`2iiqB%@$tVpcbC z;>6ke&wl*;_3z*P5w|`7<tKT%IEGZ*itX*@YgXWK?QVFpuv(*f=h>GoM}GbPzkQi< z%FTtodg{L1OiRoJr*b+vz1L1zW-2MPOlnSXZ1v&SZmA3@2^ZMk-(SymJaKhIi@={7 z_a_?Yq#da&y1RI%OXG=U`SVr6mi~Ph<FGTLYKl0Y^@hNJLWbXem--2twe4u`F8>p2 nDXO4ge@$W~|E!iXzD}q4O<#!ne$<}x1{8dru6{1-oD!M<3ZuM7 delta 410 zcmV;L0cHOC0;vO#8Gi-<001BJ|6u?C0dPq~K~y-)ol`q*<1i3?Bn5ksPK}`=Mb2OZ z*)E?8<QO_e?hwE(WaKbOx)k0+Y-3oBWmpzPXsDMWpdl;D_W=WPI5TfPBo#?0r2ya* zzyv^q&yfT8PqGC7kPL=tUDw;DX}pMVNb0)gY&N?Ga0Wn=Jbxm%Xqv{CWy$@1e~|5V z%gtuP^?FSa;cB(wd_F&rbW6Js5n5~MoTIgt)>`g%I~GO3JkKd2tg4D-Su)GAdjMyu zNATjkKOD4e3z85KIOh<@@zF4%DEj+uU|Q=iRA{Z?y@xRdqtOUOQJ`&GhzKT=$s0+Z zAOwfKG3H1Qgnx%KWZ4~n8vxh%0j`n+Ps`<l25`ePy#@fLDY|O_)AXI~@%9#o<7xC& zW~M3BVliwyIhkqzP>aQfj=|Q~gRkyp>6bo4()ZN>9zQC*+y7u2RrT-Jw{V#xcwR0a zROdIIJLjH^F@O4Rd;qQYz8a6mSE~1&lWznE2!Q+*ViUjr);%MBr~m)}07*qoM6N<$ Ef`PWV>;M1& diff --git a/lib/images/fileicons/xml.png b/lib/images/fileicons/xml.png index 4480a63854677d93de8205f305b1d96a26519e92..2a96d8b319d3d31b2092aab26fa948538470268e 100644 GIT binary patch delta 360 zcmbQh{DWzNWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U?u~@lqplDPMtb)=FB<<1|YYe zf#JuGA3wq1_wV0-{`>(7ZnU%8Xm9`Q*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYguT{c`CK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fb#vGE{-7*lB@>}{f-z2FdVp9TGPoV<+3s4!~gt?OI@uV zFx)=lvSu2mMDfiN+0~4X|CX;4`}NP{_>TMe*T0&ZZVUHalW5xi_G7i$k}F1E{;tgx zP)vI*Uu<(*p+m(@xo;n{g8k<AOG7kIow?Jv`COBC(KXJ7CFhtN?lCU-bL3(<!;$bK lyKGVz&lPq@tYvMm{LjeLr<azyy{rZlcAl<&F6*2Ung9_yxs?C_ delta 384 zcmV-`0e}AZ0+0ic8Gi-<001BJ|6u?C0ar;xK~y-)om0V1!axvxyGy`$>xFRez&8+s zH_)HqGyDe=IAHh~%guv+gcqb2N+{iKI@{+#+LWp&zGO19vpa7lGdqeTlu`h21)vL{ zh0}-typb#b03^$cL6&9PJkPy|@H@$}jMM4#0YD#sCV50K%zyLTCrQHneqYIUyX9uH z;d;HMh;X%9aW<P(B=ypUB0_5|opZF-(pt;iZpS!|8ATCAglU>GNfOTI^9KNZ)gXBG z-dB#IC_oY-0_PlpAUJA9tJS*s(lD)c*;Ht);k}132JLnmaU7#43Wx~0-R>tzlb{SP zZDY*Qxg@N7b9vw%z#V{FoPpkWjF&K6=rVY6m_}VUeRcai3=seWeJb;#QkamHZsPJl z@a6G2(Dl-O%Jdt-6V61LBn4joKZVf<FU#dZ)wc24ITspZE}DP*8x-FAwA1N~Rb!od ee+Vui0HP00X7V{@WoFa>0000<MNUMnLSTX!!Lro= diff --git a/lib/images/fileicons/zip.png b/lib/images/fileicons/zip.png index 4a36a35ff7af6167a697ada2c5a4e77cdab5da6d..4ce08bf7d1c200ef4c004e08e01d98867b1f634c 100644 GIT binary patch delta 361 zcmZ3){F7;dWIZzj1A~Sxe=v}03GfMV1=9cj{|Az2U}hS_lqplDPMtb)=FGYf1|YXT zp5e!jA3wq1_wV0-{`>(7ZtSw#*lqvp*|X=*pTB(h^3|(XuV24@^XARlw{PFSfB)gb zhmRjWe){z3^XJcBzI^%m^=tjNZ{NOu{|+$-VhYgujJp!tK>I~Xg8YCEW0FxYGBK;0 zIC0|a{bxUZ{`&Xt{)k&2fbtVOT^vIsBv}s{`W-P4U^sBIw5XF$%4K87hyVE(ce+|V zV7Pt8Wz95BiQ=0lva1;%|1Do9_U&<IU*Z1y>t5$)<*c6-k(52}_T%q99xGFC^l#th z*fJyc|BS~s*&J02r3&A%Gkh}s?i{KaI%6jL-sZR+Dk1H!CamDII$^zv;m?ts@(dm8 nJ4!20FnuZPj#$guVELbM@o@u-NLzkTC^C4u`njxgN@xNAGX1<^ delta 403 zcmV;E0c`&H0-^(u8Gi-<001BJ|6u?C0clA@K~y-)os+Rn!!Qtrf7?}yVCqtJU|@h3 zs1R%vUZ#Bu-T|o{Qt>d94J3F0HkQ&XP1Q7xm2-Xulqd};0)FWv-`V%w`7A4vP)Y&7 zF@PR`7JgO;;GJX+03cax4AL}RXIbV&giV&FDJPT39e@)6nt$XD;3CU1AICAb+ihv< z^_r{Iip%AaBErRD!Rd5bLaMD@hzPB<bk5OQOKUARn+>BVVi<-L5hh8(IF1<v!5x4T zRRcVE@5?}*=O76YfpZSsZg*!Gtyb&u+rYHe#ZaNOhW8%E7_{4ML{Wr1&mkh{^?F~B zI-p1{*2b6}zkdLhv0#K-05<@x@dx$KhIo0J-|K4fC}3%YUyWDw@is^I2m@WMJR2*_ z#;UR6Y^=UP4m)3f9gPAuLiWY=Zw?h5G)V(^s6*<l?o;CM`u|rry~4}$<Grf<#&hS~ x+!%9EzgmNG?|stgbcU+-o%_E?E+hcLPjX)KK!(ow(F_0p002ovPDHLkV1m8hx=H{5 diff --git a/lib/images/history.png b/lib/images/history.png index 82a418d44d01b72ecfb6ffbec87decf58aacf539..f6af0f6f18e0e13d38e024dea6ecb3034075cf9d 100644 GIT binary patch delta 41 vcmbQrIF)fiAX5e7#9%d<ES{F*2|P>;ANKM^PxU>d#sCDKu6{1-oD!M<37-tG delta 41 wcmbQrIF)fiAQQ*+iNR_zX*@HIC-5*aeAvqu?WS<chXDvYUHx3vIVCg!027!D=l}o! diff --git a/lib/images/icon-list.png b/lib/images/icon-list.png index ecfeed92d9c042ff0840a30084a092c0c13013c3..4ae738a07065e3bac6deb056fb2c2119097db7ea 100644 GIT binary patch delta 560 zcmV-00?+-98ps5YBYy%9Nkl<ZcmcK4J!{iZ6vy%Jx%ae5XjCW`M6igXh)bz`5G1As zrB({veE~wDQy0NqtV==g1xTULQ79cs>>h(tC%ae*E;gdk*5=_J`G*AJ9|?&jpXG3K z!u{o*ORkt1gQNhft8bnGm+7;$wZ~6ndHMB=#l_t9R7yrdFn@Y+{N+bxIH7x$v)Ugu zolbFhcyv@O9-L{lTD~$qKK8I&F4K$6%{(hBk62%Sn~B%kvp1QTxWUfO?wXpJKRK;Z zsnqDj($XE?7e0}_d#h3J%}qDgQzR0ea`_h_)RHP9_VxHX2OmH4Z+`x@UcGh^5K}V< z;gn2vj9N9&Ab+$G;za0ZXvnd@U&72#5jcNggwfF?l}ex=qJVVzl!yX&=MiyyC>DsD zn4F}gSSZkq>Dei~_e9h=!K+7AnVOlQlc?VfRfnnv1Qh}GzL6M$&=1jG>J^dJhz1bg z)wSJ$y2gk3-FL)gvRPX8@_D+EyPs>`LF@!`xf~rt{eK=t)D{peoKw87(+|#hytV~6 z?*PF$M}G+3yH<eUM2PHcZxi=mex69Y-^u*KLi5K8N>p5Yv$!t$G0q7Q6+xQE>EnoK zj>tsKLcLz|luBoq86ZgPjT4a$51k;=_PyrjB13?gZfrb%Iy@XMC6kGBp&pEg{P!PC yN~Pm(TPa&FUx}F^A}Jt2f7O7KM!+CB2JANhcdo1%7MQ#M0000<MNUMnLSTZ0zz;hB delta 3340 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 WuB^oM-H-qP002ovP6b4+LSTYpwqAMw diff --git a/lib/images/icon-sort.png b/lib/images/icon-sort.png index c6403dd3c4bce08f7ba9487ad15fcfe7a3c04ff0..190397eb6172eeb40cd6de84c1d25e2bf3bce5ab 100644 GIT binary patch delta 195 zcmdnPbeVC2L_G^L0|SE)%gM<=N+rN2#1%*z`sDygWB?SYU0lBT<ob*E&OdqcSWMPr zF;JSVB*-tAAv9~@!K-FE%l&{N5uPrNAr*|t4y=!!wsQDc3Osr+W%}d5Hfa?B#ib1@ zC#JNhEZyeg$g4N;>clB*OD<osaaa=Ne%ow<hPRf7*5b{)M+%J@vS%?q+Mv>Gnp(c) hpy~~UC`Xlv3=FF`ig8Mu(9{FD%G1@)Wt~$(69D3}K@tD} delta 301 zcmV+|0n+}{0lWf`7=H)`0002sD%79=000JJOGiWi{{a60|De66lK=n!@kvBMRCwC$ zl`+o&K@f(Y6~9FL6>@*TPtehQ`TC{5>ME7~NR(VhAvuMb3e85NP-rOqhtaspW%)R= z5(#fI$!0eD&di&cS$H8-a`39n8Zfl(>n09I&yp81=OKWJLw{xBP-T5C$ep8TJG^RB zT#;X7Zpp&i%JMdl&#pkfDl2`?OuMc?1G3&3u>xopQpkE|B#3+oB0n2I?vTqrmJU%D zXp~D{`XY#YfX?B#&$C$*o1c9fdqTTFqxIWP9h2pl-Zacx{S2r81K{VTM3d#%mgpX_ z0R3CLMJH0MwkC^bGXA^z6Xj?x^<YaXzPN@Hn6X%o*Iw&|00000NkvXXu0mjfPaKUh diff --git a/lib/images/info.png b/lib/images/info.png index 121c7336dc5d7e72080980b934618d6608ee979f..5e2336435224870a0a09c4154f703c7bdd5c5de6 100644 GIT binary patch delta 697 zcmV;q0!IDS1<?hNB!8GmL_t(|0i~1AYujZU$6rs@&XFuhYc@zyXWC}#lntg}JCO;3 z>>_kHg9@YD4jw%9s)8r~17U*Gll#FGF~+mt#6~RU;AO<F#I4(0)6Cj6O&Y(+^W*s# zdPvxE+zZ}^=kUCE!}ETWi0~u~@ff);mb1p&Gh+R@jy6dv9)H2tz+ZOOUt9R-m0R@T zkp^#GT*_%}E=<HFHIo@3wtE)<TY;rmdBBZoYYipyrB7bZ4+u_uUe4*jTsnCu9634` zWpzVS+X`@Ah=+HPj_;xJZ<E4Lw^|HwzVzv-d`~d@*^NnKZ1Lp5NcwOxN@=BzwT5Gv zQ4ryel}%JgaepMWm%lfg{P1I?iuhMcU%qoY1Yo?Kn}|vJxm1kB%0qOZF&)qBODSfj z(->>e9ZmUuo$-BfrVhr^5|}xF9f5Z4?D6pgE46KmF&OV~-tzt8J@VaXqtRBg9R%E2 zZ*by;3`*;>y;snI9vh7gQCX{Fox?bTc+cExlL)Z5RDaz$gQB+4U@H9#;)1b$gN{bL zU<I`8;GM&Jp?r6f|JoL(yD<)HELIyt0nX7AfLq;YwMj&VQ4&JD>_|ie5S+1iW4h7A zBTw<5(L^b~+81bhWubhZ%>D>?4^}w+@;J{wJ4$%ZF!QI6VT{3cGm(r_EdB+^mHraj z!PTXk&42f^sgd-|)P8>L%D(+&nXj+^i5QEBM-W~-e1JRk2Di(Vs)DPJ3~BnkZ*tOX zUwY%MqmjvdQEuK{XZ>LlZ#_?sggJB|(Y?IQ_3wUep@z?w3LoSLrab-bS2;vq$R0_h zP8`pY*t;7L{@H4?@Y^!?%9S;xLi44<hXYgYF*5V^#jJ=sgZOj!b`tR@rE0)sg}L^7 f;p4&2^d$Tbs6T>x=#mO&00000NkvXXu0mjf)k<iD delta 701 zcmV;u0z&=K1=R(RB!8SqL_t(I%cYacYt&a9#XomUtYl0kF$$T9HjmM$C}^RHQY;9? zO(9Y{R6(LHTy&Lf6<qlr2ns${zObcqny!Ufnv{mlq8pjUFxA8~kI@)2$t3;F-0!{j z>q1C;v>QFkFJC?!IOiBu<$YB1<{@)+G%dj$R~JrJt+Y4|D1V^{;ih-t&fwWk9=`f- zUUl%rm643Ka<L<!$)2`G8rH4>U?Fl06`pW^dU*z;{kij>W#0lEzMRk4NNyb3Ru|vh zTF=y+rMM8`gOaFQLn^V3!m~01KR;ZihEur<hqEhy-b?p8McmM#t?|_MmU?nyC7cuX zv^9Y$e~!&#Vt<BR$@Tm*U*@N~g=sW=n!9%NQ4BzW>+5LH)Q)5W!-ePA$RgE1@5f1c zyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@pV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#( z&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@pdrwAuoDG_M}MZ#5CB7QZjr9kX4FTms}8Cb z4T@8+u1fHp5S0AmdH$_9ymff-IB_^Dr~$lZ1pt0(Zn;8pycVM|G$_G)UM8e?aRd>9 zSQ7CMc(Pc=m@u^pu<q7iev-CLaR>pNa%6uyJ3nlqZe1<?NA@5hI1xHp5)2Lf4d|`a zCRU=`BYzLdU#F9esh+M){Fa~O`(H=-_TFEpI8+0Q^3nD!jF%R9lrKyhxcyp@x=(+X z(Q@U+=U?uQcW$ib!Q)wGpO*<Pu%WSzZCjcdFD-HJhhLU4wWo3e-(=saa`&<88Pr}( z?@A^Q>`T+Uel4IpU8pel`zRCn!i+Jo{@lQs>^6UH0ifrrD`{1K91SN4l@>H$j41*) j4RYs?fph;qrgzZ`s6T>xS+*g$00000NkvXXu0mjf{g_nJ diff --git a/lib/images/interwiki.png b/lib/images/interwiki.png index f957e71e56fd7dc70bf8ba1aa9a39b044e1095b1..10a2bbe1ecb76b5fed2d51476bb1a687d5d781eb 100644 GIT binary patch delta 50 zcmdnZyo-5*86!`=r;B4q1!J;-GxL$j&W!Pr8T%J7GF;)-TPSgO?lcA<@O1TaS?83{ F1OSnv58D6$ delta 51 zcmdnRyqkH086$6jr;B5V#N}iIXJ#Ik$xe*%k}CTZ7#Xf`>n;4xS+|}62s~Z=T-G@y GGywpLKo30t diff --git a/lib/images/interwiki/user.png b/lib/images/interwiki/user.png index 79f35ccbdad44489dbf07d1bf688c411aa3b612c..da84e3ddc17c7fda654aa9738ea8c979813a0a74 100644 GIT binary patch delta 661 zcmV;G0&4x`1*`>-BYy&ONkl<Zcmbu6Ur1A77>5fg>5r{#tq6qGQb<K_)T?UfQkhO| zppj+Sree;Rr5OG<Q_EUdQPC`Ilck-VG(#mdl`PUUQOg=eSEE`G0~aGV$JFoFX~bwC zGw|Ypmk*wY@8w+sU{x&pm>aRZqF&6IyD8ZQm6(MJ5!;p)#(%5*ufXXrPSM>YHfc=d z;2y*6WH##JS;!Y|C6Z9?#T5f;2@6_AR54PW<PU6IO5ovq6bC25Sk@H-b;2#^Q<uZk ztHM}QKJp@YD2U#LGcf{W?`J!8#fd&%1C8nY+4&!zVI5K9`@nTf(-&ZTb`=)mB&eLd z)(_3O8@vW?rGEttTgD&3JkbXGdx}Btnk|zQ?q`HdcwJ$qq;-A3fm|J>42NT)3G;@h zF6{4G(NP$V5Mj;}UQFZ0Wdpo;%7-g%QTT}mVfZ=+x-1F$vP2imjMp>2;1~M>9MOZb zTv5X&j{rB0Uh5l6%lHYym@(PWVgd>bfZ{EX`4TwQ1AkP#0^WSGgC947%|eZW6{TM1 z4g@D_q|qrVw2dvIVH!}5666dKWIZQH?<6>;CrD{tLTN8hMH7gmR}h?VP38_vmG4_L zcNgQ1rW>+eAhQRMcM+UyXXI9bWX%$i)C7m>f$AHBnC+{?Xknn!9hj~NB$obaq-JYT zJ77avJAZIoPjFPn$V~)C9s*J=P~71_e0mFh4%T42D2TWNA9c!-$&!Etx%~1%glq_M z=Ia^%ApeVhTql%SrM9WcPzU4GcwE7#SNK+z)^c}CyBqkC&EEtuk8Oh3cBde^&ABIv vvhxpW&HjhG`p@N6?f60~d_B*&3Vs7d->LPKXAatl00000NkvXXu0mjf5Y98( delta 718 zcmV;<0x|up1?2^hBYyw{XF*Lt006JZHwB960000PbVXQnQ*UN;cVTj606}DLVr3vn zZDD6+Qe|Oed2z{QJOBU!cS%G+R5;6}lWj=TQ51&_D(S`6wpIkfYAK|mU(`?4(513D zT?37*m2E2Kj9H4|>z1iyEv%?$mbQ(#wJpuiQJP8?X_`#S8h=Kgq%sJ>h2*A8y}$lS zj0BlQA09Yd&hI(*a=3l~{Qid(4|AipDQo$R=^MhWQ1fX}^5`x}B&+(b1g9byMR!DW zQlG}aU5Z;Nbkro$kk8#hgb~aOs|qwi8gx`pO@(TNi_mc~iG_2q3>=T7O|2@Z;ciBU zrX1t#Y78{wBY!W3g@U-9I33SH_CC7DP@L@VQ&6AIo}Bsq2~&L<eCxV~5$k!3J-Gts z*bvM)d#2v&bJzP6+?0g&ItL$M!rlb;J2Qo4sdf&TaW5m>?(+#dgr;@D`*RIuMHFW3 z4VZB}Uc&v>gqFf6gmZHqvEu7DtSDe5n*Eu4qdbt`4S&a%X;{ldu#_b)u~@$v{fWSY z=V0*epJDRqHZBt|1=ckI305gPsTZT;ZWzab0tX;}17yAcPCf-HUIMQ_y1^FoVG~y? zr^Ra4dIe!AT5(*e8chT9s2c$k{RBBZ1X<4r(pw3RS_o403n*=;L{<Wx_%gzhu1dXv z;qtxn6Mwd1+}7G4rJ6FSiLy3=6U|iEM3ACgfJj4duokGi-i^r)75WQ9JYK<wGK4rg zE0LD1Lv@!6l4jr-HT8&r3O5iOZUn?SptxlgiRniC=&r(GQ7G{WJ{S}wLnXm;GTEiM zXlV~*)YUWoK=zv;K`RtlrLJLB#4MGmTDFBTi$^>_Ra(v5CAQVEWAtA+@ef^`gk}#X zuF11I*6d~<&`ks#YU@0kSF!!GRUY8;H~tI107l=b^|IRBEC2ui07*qoM6N<$f~XKm AV*mgE diff --git a/lib/images/license/badge/cc-by-nc-nd.png b/lib/images/license/badge/cc-by-nc-nd.png index 94aae9e090438bbfeb3a6f6fea17d8688a9ea8a3..c84aff10492669caa65dc8adb64114c7faf80278 100644 GIT binary patch delta 940 zcmV;d15^CN3$P2Y69RvTNkl<Zc-pm=i&qjs6vnL^t;Pn0JzUYKC^9R07xvN~rfFF| zQ^d?7Q!Lvss;xG35h$s)O%Zkf+3xJaowElICpvz>nVoNEemi?-<_;BGVN+C50WcVj zL?`(fL7bJ+*=#yBCkhFEDmoG#?C*Kh(ca$H`tL$Aa!1Es$Ay1nDkm#T`TWu!IX9ma z;?v`!gxuB9-c}A7!N`4+_$=j=v$YODIcm=-KT_g*{w0$8y1VYRw>7u{<!-S0m2?ms zL9UpQLshV@swO#`{J@Woga>-NJFdC_IKQ6*a9z=RT`BD#IQlvvW|cbRF}`3d7W6TA zS@-UH^8Iu)GSq+Hb89<z3o5GMh3#6eo24BBo{WFa5H1s3Rdux>+Vw6g#;3-H2YcP% zLl1!502k@x(wxinHV0)n2<8PzMy{uzu4~nUW0q3_KOPx60p4X3ta_mVqX~PiBe!x} zV8wJu8&l}$;F+(v5OR&-TI8l5$;7L%@GhX9SO9lxs~dlIvNeYwcpmPWj;)Oj7E($T zFh9|v$qZB}^8)`O0vxIPKz~^dun%|i7|XJOm1WDp3s#fi5U{v#79gnF)B<oWC&nj6 z!B47yBBh^T(D@QTBd|<4>S0a9F~GCGYJtH(#Jn6A)Qd}an}J$+4r5Uij9Lj)vuynn z%Q0kuCB=UMJ_G_0*Qpg)_krV2>cjN2BB3D8+6{G?Mb&H^iu57?4$%Y7Ld@CX!R68E zY|&z|lot5tZhd0Nfa$5KXRE6raQEbnb?2ZaYVtC9fS9W4aW)I>4f5GfeDoA}Rr_*7 zXXQ-gw##djV_R;e!Na?(4dSP_!^L`=gEAa@C{}-eI)fMrQdprFzEjqgwkFS*HKQO; zb|?}~-tgnwZUB$Z@3B(OO;-uWSZ;N|sO!tElhX>-iOX#^@#<-Kpy$EyveKrw5W-j# z-ym-%Muz&kG1r%q=s#*(y0Fof9_%X@j7g}uSP}~5k~33dnCiRkwUq^iMoB(^WGW36 zw6uRIordy7z;Gn}n@;qrK?Y!-l4*qh1;dH#?*q1@N%?jSOzHar$WND9AwKPpmNXd2 zX}Os`Oha<U;(}^?DU4ZHi#iq<j^ObhGLQczB`48wFw-XG7$3W12c!1hPc8gX7W4T< z1^=)-+z*tjK+ukku{(A!YX61jQaY1KOV1=PSXkSL|0%|sq>3$@#Qh7wLx!{U=}(RT O0000<MNUMnLSTY7aLKU% delta 959 zcmV;w13>(+3&RVr69RvmNkl<ZNXNC7ja$-C6vnM1kwH*c=|rQV$g<XVVV_$0k(Q-q zDPm@l8I~=KYSqGqKuNilBGUb5JNFLQAbc!*JP&&|-tGQ&?|bh#cNLpqL!zPrV9@6e zJQrp}X;zLU60ztPNel~9ff3)}K;ONt&d!du{|_W1cXZ-qNQ{3(lZv{ON-h0Tl5-I; zG(9m&$vs`29c7U#0J*QiALXQas?J0QVX8Z=eve9Tg=a{<-`jJmv!l^YZ`d34c55mK z_9It{E8Z&IpsHpi5qT#}jQAe(_jX;f0dQ_N2VlFXwYs>rg5bc*u#`~ik!N=C!65H4 z<7NGuZ;`jt0snu{K;QK(;7k*Yv=g?lR;~Y_AozLcW1Mo$e1>Szf@s^DgcO<@8y@Vp zg9|kPdIM~<k&P)A8j2OIv8Etc5M>3qjx@<f#({lSqM|V2A8G>Uat=(KfF3r&t}Dph zTIpHIE9@C9m_orbpOaqXW(X-HH-C?WUyS*7fZ>g4u(yA;*<ri2c0cfEpgpe?KSRM{ zRILK@4^j{rGgPT_qVUuY9R2SCZLl0*8}86ytJUgRS=JT2u(HT16fDi30^mtev;dq= zN}<V7a1-W)=7pPLQ2FFR!Lw{o$N?5vg@R`n>cEUf1f3kmYp3&g+YEKe7xbbun2;4u zwbk12$e@4ZA_taL6CGxdtzfR3om_PAreD!_(@#oSffv88l4Uyd+SRRyEdpQ{9bicZ zEiDdQ9^IA}=EYJ>6aqW7iP1W&PgR4px*9y~$F}8_eJl)<7f%5MX-i%MWbMWgq!J&5 zz;SSr;^l_Q%E_&j7k(R+zn0q?;Ncy5g1C+8aISx$Sjjq^OAy_P%nu8XR?w4f#qiB? zQ#w0&*;&g^o*PW6jFUI~@CMc`hs*8IOHQk8O@%GDdN7mxa_i>UiCA#C&4yn*_C4sk zbEK@YDb0JC7o`&9_2kIVKyOzWn+Ss6vy@J+meN@3%LHQ)x>l+Pd6SWusWB||J-0f_ z0>gh%S=ozZLm5i5vMHZf*EWsE!Prk@q0jJG==Z4cqp)5uG$nrSE!vvYub1=BX!!x! zp()xy2ox$rR~Q(YV#+n+X6jYqIu}UxXTaqClT{TB3<q)h_vW_$W;H1reaMwf<Eu!) ziwsH;7<S)|&M&Bosnnv1A1rrk0E&BD2&Ok(B!%XXl3;+Ev*U6s9*@c6XKM=Qp;V9m h(c_KyD%`X|+&{rXhO<B2<kSEF002ovPDHLkV1m=x*bx8# diff --git a/lib/images/license/badge/cc-by-nc-sa.png b/lib/images/license/badge/cc-by-nc-sa.png index 51141f5ec4c37da45a6bc625aa4090be1098cf99..e7b57845bafbc3042c41177ebdf8e9909ca0b6eb 100644 GIT binary patch delta 1009 zcmV<N0}lMN44(|JJpzBtNkl<ZcmcJQk6T(*7{{&e95YV^tFT%_bW{}CR^-+yas6<) zR-n_ebh%PQ%|^E2W`tvlCWY%FP_pgrPT@v!{>$FWm2>ZNA9`Hu@vA=fxgYQSaCpx- z?`e4ydy<wGU@9DmUXHJ%(rZ$#P{?I(rBliHQgk*vH97Is$nbygQ1JhU%;cS4yqZX5 zvPD_hDwVeG%f<CfDzUscubIb2hKHIllbF0eC2vYa<#=Z+D6O3*l-t?#_4tou{(5}u z-0)D30~AM3P-Is^;s|-uc{$Jqk+y!hkhu|GoDE+%KR)ul9dLQQF2H_Df9urlgv8OS z$#g;K0$}s_V=;ff#|EJ5+FzOL%hAa6<iscY;Z`|Cbz^_+tuqfmNPIbQGp~7V{%x*j zkks~Tg>+(RVP@*Q10G_4_7B*D6nl;Ibz4Yfb+sZ0iQ_3rCa+WFBHK<Hvz$%E7bDZh z;4at2+>IWpCZ7F>ya)FADuU26XBlNqCpGcPZ^Zz4>%)H)=KkB6<duc+L8t~-;RpsD zc!C{%3I4Yc5=7;z?1dM7jP>b66Q{CD8*F#XUNYOzrmUypKSbc-6c6Cx6c^|n*Q>A5 z;Cz*`L3s6J_AciGtV1W7IK6Qk@N-KBffL1a;?g|4oB|4`cr^`?RUZLg*&x-&*^^Xe z#{MCqi`RedcEU!5h`C)ZzkYd-Ua+B4zD2cYEGCDqgR$;8LB4$^Rulg%#FEkq4+){g zH3}_s??LPR?2YB`8<avL)d5~+l*4s0clLMALyQ@v$ZY~NL?_zSSo@$8PIa_>uvUw$ zTq+)YTAw_?G<ih2Sw{zap*J3@lL5whd!J$-8k2vQF9Gx|cIqt39Ro^*U*pj?;pW!m zMx@evU|(O=OnMpR<*H5|Ks<BM*dSi>26?C3LjDMa$~v)@V*5_JpGu)!j8e>e*4&mB zleaT#V)DFbRV13cnQuOI08WqBX|$X(_T7lS+`3@nV!4gFY8T#4%WW-r<-72Oi7#Gn zs%?L!Hv&|P#vA14OS99H<J9Y$Y4pF;wzT?RTbg=(lVWN@ryDh)Kryqjv_P$X?A%aO zVjPv^BV;zUA+^>vrMJ+0G%;Su-7`1(ZNCk8UdbQD!-{dNaPNraXj1<C0QKnm1Nt9D z+z_`s#LZ&OoRd$R57U60H@x6GzuX}Dz2#}61Q24X1|9!_`tjed6eV*V>TT0Rc79B$ zw-bvP&wZZVxT|cIN}GyYT>tVAOtBV1Ct}0`HX1SI(8-HZE}zdy7f+hCjYllx=4Y(p fy-CX>d*uBWS!K8!(&LkS00000NkvXXu0mjfJ0t{7 delta 1029 zcmV+g1p51*46_WdJpzB>Nkl<ZNXNC7k9X5l6vwNVQf8mhqIT*e>qdoQolN6E)OCOi zhv>So>2$-PTi0z)>Vytv>?jynq{Ec9x&k3=ZLRJ5FTF|H{5thai@ejEwBO`@-h1Es z-hFjE4Ns&w8~`)XSo{jN#tR!_HlNRC?g)H}TZzv{XQrpV92<Wf9U1=b4avw|T)vj% z)0u)KZx@T(kEFugG@o2uUR1~vW1}N2ksW~CA5*u)f_${osZ7Gzc}%{S5pHllAo;7w ziSwf)JznL3x5tRvQ9*DFxk63~w;2Yt4M_R)O>TKUdhx>K*hvon6AUr{o)cQsiJcV$ z$FHS?yxfI6SAc&_B-nrpzjj^!BYk5v9-Ez>`gk|^%M@GL54+W<v;RUt@Rj7PoWgan zRjRciM0>91h2+Z8+{^_p1W*G|9)L#)@~BFGw@s<6uUB*h!5lA2$n}+}-l{$vvy|bv z<=AX5_)85i^#gj?123IM?w(ztimu>0=Loiix}t#Bel355kz1wIN*=hEPF-D!?gLYg zW$+FUd*L~<{~)mMLPS@}be+8VT8NN-O;NynMs5SweQIe{7qrQDdG7ldFv{-$sMDtm zU<~v68#uU7rDQ0y_7QoX(m~R$DGFHFJPN>4TN?s6RuGbx7a>ShCp0gD3I>(+5DKA^ zq12uwd(nSpLjF<}1-$W~6I^IS!p|_QcKZMWT+k`qK`)wvkr8Sqq<cYEzIidBg8$UP zqU=<rnNU|SGp^nO%H*AoGB;PhYi0$0sSVPSlCAv>W#QayN+X0AR%EvTaELx|mlN(G zA1;q^_mJwvc9!SjFKEfr2CS!wc9ZsY2u0p{rlEff64KZAJo(T_Uakm`P$F3kP`4Xr zP|W|r#oq=$wJ$eRDt&u)_1DZwpE7|%HDkH$0G``tY>=RNgS^*mQ+|s?O1fgPqI%!W zq7}-`uww4hR=0FLdG)O6$qRy07BP8qUw?vi%NGdxjFNNKv!kLew=Qr|eYuS@>W#W_ zxov->u6`T6IQ99PEtO4SGpu^iY=iuCd46_!a;$|z1i?S6Te|#DTN-P9i(o85XPOnE za3Q_6vV^66;`~TUU^pU52as$kLuIvWitjwuF^$*Z>_c;*ud-O^Uy*Z1;Bmpwn}2w~ zb~MSqpVHsa_6KN}rf3(XV0(#L!O)wP&X|1<)3B5~Ws0ePsEJblZRyG)Xka*u$A7qS z{13<l(d<K`Y?`~GmW~>IQECUn%b#U7AIMw9;+BkmSib16#Mq2z*g!3sZ3+%u?>K%* z%;s`g@zU`QYaW`7*zR#74^6=T_rJoYo)GtMS!K8!M|w1b00000NkvXXu0mjfuZ;oq diff --git a/lib/images/license/badge/cc-by-nc.png b/lib/images/license/badge/cc-by-nc.png index aeb8cdc8ca6b64763e938f27d1a356e867deeba0..b422cdcfd0e33af019105667c0ff3e418c44750b 100644 GIT binary patch delta 912 zcmV;B18@9|3;7DL_yK=xNkl<Zc-pm=ja$-C6vnM1O@aU`n`lIl7NuFDeORfPmT7)t zW|9@A5k|FYVI!a<ol_C<{>7ckHm+_w_DGMf@LYLeKaTIc=gf+ua44#%02mz)hTcRL z1#wAArqjv94^fCk=0cO>qeBCaA9Qtf-aELEjNGZ&`KS<2WMqG3Gn?I9moq=(LUdtv zijw;tbaj?PMlf>U#lA`zrK#2eC`)a#@+TpFjJ!hf)Be70z2pWbpqvc`1oI8xAacc& z9I!%B);2jE{}h>>93LL+*Gg`80PtQf58!BL*PDF?4$a5Jv{HvW&f^b<{T>c~t^4ph z{&67`9K$dQCEtHN2JRd|<=k+L5zIaVzlnZLQ7-4t6IC6Ec6>;S(Yfh~Q7oB)9pJ%t z0O;G`U;x!`tvC7zjtG*BTvv`1m3LvyazcpAV#!Z>F^dLpZ|Pv-hK6FkaPk&%t15ll zn$N(C-!lQ^YUMI=+n;#s?ezG_U|)A<rxSL4Zw{RL^-g~{VLx*Y{MX>V<}<L6P^`eM zkUh$CU{!t!k(WU{7?=g{)b#*(=*mO!dj7&iyWQ^F-qL*r7MGg<{KTLRfaZ)CeLaO) zP_UPpfTF9HfzkiwL)*8d`3$_YS_>Qo5q9&uUtMnChd8K}f6y$32YUAfqqcq3c6<FZ z16Wcl;6Z;NQ1Ly0qOUz*Sx<agcrh_D(6>(%)Ze*Hw(O`gd!tBh0APtOu;s$G4i_Ge z9$QBti_N4E3E_c5u(o*srp-gY-d<e|zWbMt@7=sq79dQBnzOzX{(@}!iw?%)MoJ$y z^tZ28RkrRh{~+Mq4dOL7$n|>Wmxv<2V)J7ZbTNNMap0C_o2TuXw$SglC{l6rkl+At zdAu&;5HkDhxYYqiipQ;oFD%4{$89P0_PKi8${CyDasaa^-5~E@PmT@I&MRloe=f9i zZl9Je6O2RXPN^Xj$ix@tu<_^+Dhmval6)4)D~y{fj7{kZlrIW~^U1Z{gFf%)08T5Z zM)-eUFkDKnoi*H=lwUVtuhjkk^~t1LgqXodPRe(7-%JB?%E$$xJ&4iQU1A1f8hHB; z=(qniB_o-0(8s39SAWb=s5<p9vAn8mWV0Iz{=@R9225f>nEjF!>#Av)k&>xYQkrQo mW6c%+JL5xA#gRke{sr2iI_SSoVLku=000O{MNUMnLSTY<<HQ{R delta 932 zcmV;V16%z03XKb}_yK=_Nkl<ZNXNC7i(k@E6vwF}AwhtZ4m6^OYP~Gc9%R0f9+qW_ z*@MV1jZm~z3mX9?*<6Z1_b={jW5~wfll1X^*yqA;yWgGryXT&ZVL$9iGZ+9SCPU#j zu|<Ym<<i+~I`x%h60y1P^yI|&*xlj5!GZqWHzXr>CNdvqlBs_jFKp%WTfh0-w<Hr^ zh|GxO;PBu;Q)B}m_g&%>mlG~Hjp8JX&Wpm&6uTUIjpT>-f<sEkKD&6^?$a`Kbp(fy z%Vv1LdB-4gFP}}W#3Iv^j~?7BhumiapgbN5z}8nysG}n|JfC2*LMQS}ZaNyJ-6s6n zx%4BsybumOK{J1(kZ&FUSAk$FxZpq)p`MQ5H}Ovyk!zw$L~a2@+m^CyeD3+wgcNdr zzYW}Y2SB_HwjF@1_jGA>1jiVTN3NqlDy`(enE4bFi(tt2N6`x(xV9BAaY4mT9~{1h z+}0LvQKgIE#V<KOa!Z7$$-O_5iMP)uA3q2V4Gh?!>b-vjuq)&3aLC$m9Oz4MOQnlo zCMB4`v`$p5WCFABjfuSqVPc>cK#8gwq=^#>D&wh>r>s`1x45m=MKHT|0e~i&767=I zW8<?k=!FRO5XlMI3(pQ1_0L|Ez1u2X1h4*bf(ea?x+sd4yDRvR37q^_(Thi8qm99Y z6uoU$YuA5M4VV**;sm2o22&$a=N6}J{GD1^cro>OEZE2j{Q2iP*+xIC9cnAmn*bQ1 z11yE8CE&pH7_kH-FSgQ5EQ|?<;PT?h0jm}d^)72$8+dP>J*Zy1OdcRAj-lnDWxH_( z`RqppjOj-7(+&0F`PP=6KQ-z0PvGhe;;G#rm%D$oy2^^ux`jq7#7=8PGh4d6c;!{A zES?990#{i)Bw(>|xIGSS5vrq0>DCD*Qc1TFO6rIO(`_~J_L-b+&6G`c%`bVOw?W>| zPCpr!tI+NX{Re4F7aDKrX24j4Zs-*ue=fN=hZ|2SLd}5TG{+x9a#a~BNM(~d_g}{} zUMGLj8`XurL}Q^pDr8Q>|AOI6cH@}lXcE3()jTQh50I~FUA_p>0mGRzf1~;^_464m z7fAU-YF=1Yi4GV};PLNQj{jaE$JP3vl+D@~5}ns6U^sF+wf0Nc%;z@+{KImmz1B2+ zBNQ9zMU1Vz`z4poWYXNr?smP^s2_0ykM|tnU*Wzz;{FBNqB`i0H<XG10000<MNUMn GLSTXuHOYzq diff --git a/lib/images/license/badge/cc-by-nd.png b/lib/images/license/badge/cc-by-nd.png index 6a2e59a682d54e8716bdc77da5336bdd18f1fea3..18322992c13ebdcebdfad31af9d70ead60dffc33 100644 GIT binary patch delta 837 zcmV-L1G@Z!3hfE7wgG=4Nkl<ZcmcJQjaSlO6vnBGgMf0N6ltV}CWRkKndXOxW)dlW zv{1C=LWhHL>YPfjKfe2J?mas%(mBxaImff(Gxp>1y!YO@?!%qP<pP*br8Dcojwl_< zN~NNdjwG=lY-E;F^D|TL#zsaGuUi+Ak-MDT%8SL4s_EC&>h*u6rXCl?{C0MkkdtF0 ziFU{cM()?bfvoC%K{ue>!G8U;B<%@bko;jXIck^O;|G+#hh<Qo0jH5Gm9>}$s62yO zrMNF-mr}FSlQ$&~`2hGxga_~qIRMRk1ZTDiQbq4V9v6=0a?vmc0A0Jki+kId^a6%q zmi(#%LNx<b3qgMeB{cUDyq-TO6D}968<ygT_U%@r{Km@SJSiE$J_zF-0CF3A^m)ri zu|9$YQPz+fs2NoC0M@LPL?MeMzn{P?dLZ=21{)!ud0IY-@d<e6ry4`9T`naLo)!z6 zE2+8Z<Y*${2gmo;z;8d#`cAM|(mlYPIk`yYz@s0F!smZ9HU?$^JaNNd{cs-W^TdB( ziuyKKI_U$58jRuq{i>8-TgEI1I6_Q7k!yqkO#g`~>f7MM^B`~-L@vbhQS0&oKg2;$ zJ0e-kPEGt9OvQj@-3?&`0uetBMEHLg+?S>O?N5tyQ_1$CP_6*5!~l3}Id43G?J@3+ zn^{~dqL6>VhC}epApzWWc#lmr9A3E!kR#7v4)kLFf@<Z54aT-InzWn2wp&YJ=YT|- z42Z*LqNtyFqZkFbuu-%=()93dPK_R31l+nz4-W}GfIv7BV3!c<JKL=bID@v^IB#AI zFSgrZVe_NaZtbj1=_H0(+&&=R)|M7#$mF%N=)ZrPBVB7g((QtA2@T)2gkoxOX9EY1 zETOi*&?{@*NOr8Dnz=UR=g__g7@jH@&P893asZF?axeTZ7@k!wx|vs#{_7?4Nozj9 z`lGTf^DYZUvZ4(;U#2mw%yPlPB7*g8*JuP|8nUX#?AQOGuF8!$ST(U+3)&nE58sqd z&h<U3YV}Ij)Z@3E&>&|Jtlu1r>Ks^=m2z2;R|gm@TX72+-+^5B?uh#r{c_fG2F=3C P00000NkvXXu0mjfW0#nj delta 859 zcmV-h1El=z34;o-wgG=QNkl<ZNXNC7i(e8!5XY@SAfN=4!pEhCCW()vO!E<<nM8_@ z2t~WR&_kd^Jx?XrKfc+$1CE2E#E<jgKFeqB_ItCxoteG1hj1^})&{T`3P(2LyS#8D zW^%bq`dHwT@y*C`XmM`l?ZntvVD$EeWaO?yw-bCSotNaBLg9brO3I(4_{2_hg_464 zV}X{)ZGhab$wM(O_q$AV5hmAwe3lmW<6n^cemXc_4!OrpZ`*tHjD~&$hmk8}C7-1# zkYz~9r4HiJ<<R`>v>NiT4Z!L3Ist6MT7rQe!IABxkdr%+XZCQh80RtL-_E_?sr{Wu z_ydZ;LVnc_?jnCdE4rawLoo6qcq4I`rCc*tB8vGDZQIKUiOtoeMHcets0}=L2Y}uN zTNR-Am1$Z(g5$g>A=gnP6)QO~W+~0bqZsnLDb%6|+<(eo;)aTzs$VgUpMrOP=6%R5 z5mHMYI!h(DRznN3!SO)A4x0BC!Cszk<fmXhEnC2RPHKOwWCn|T!pA>{F)>gJa8j=a zl!ZH?GN1Y%F{|-YuyEQBz!9DK0S59yVtoa*pkOayN+?=*t6=JX#;nFq!ABP^FryGL zx6{cf!wY=K3@+)IYB4`E^$&2xYQdsxq6>_%40cYk!9$mAx=J7Hd|FzV3AQFh<{AJ) zbbz%Ov-*D>m>!c>KhxqS!^b0-a0pg6NeNiLc~6<uZC<tj5TkQAWvVJSuAq?nQ3hjL z5rcFiM(OrnU~PeT4GP4oE0C%brE@EXQqVy!MJpw(Zl1bpmCf^lNfs-chXiak4v*KN zZ$busmTsM3CY5xXbh3e1G2M=mTOXBlYo%=pr#^qCMWX`ww!ZvfPU%9oZ}i_;Nf(=! zbSq$NLL-fukT0Lw-NeFUO{f(x^omj!k~M9p$l9j({7%O-Ufr2XZKE%7*yx|g*<QFS z82WOTUAm)5{`FG#q*5QCTv|W7)E1=!LtjQ3(H^EgDXZrKQGcZFg{qe{07Ew(|Gx6^ zKO|G<#d;meZL|J`qzM=vzfPZC$k&C!wTvGuZ#wElYb=D~ZvqDB7+e!G*=$B!8|-Mb l8^#eg(fB^T3Lo4P_b>f&)^i6HY{dWo002ovPDHLkV1k_7o_qiR diff --git a/lib/images/license/badge/cc-by-sa.png b/lib/images/license/badge/cc-by-sa.png index f0aa4aaf07b92e07feb1ac4e2df3731643373df3..5749f65b87fe31911a44d659727db630f735a9e4 100644 GIT binary patch delta 912 zcmV;B18@9|3;znR{sDh%Nkl<Zc-pm=k5dv+5XY&-lPfGLLzKcaGOf_cti&=cvmd79 zk4!Q}vkOJL@(Sw+DABG{kqYk*Zr_9BId@kx(zwISbH0!FVek8P_p}{^eF>WlU@$Zs zo)+dsX+=(^)5*jqNsI|I;gQhbqyBrhySjom_Z~<_?%3q3s2G1wWE6EPo88(_GGF3i zbZ&Btkb7@;1<N5L7`d-w@8yhozQzt1_L^pOEg>xmFOmGPulJUoazhnhR5ch7OgDgs zkt?N?KqWJ%vQ<gPmxRfY(BlVv#gyBe0B)bp4d85J=gm3;hhN2{v|5Wi&g+jv{9X<K zY8Sr67w5vmLuh{nP5F8Scyby>&I1*UVAdIUI{H3ExST()6`}*t&V{rTof&^Rh$$1W z6TG+sK(@ij0960Ay!=bo8CVcy1-Y)AR*Jj}b5;_fFo`MO??Epbz_YD`H4l{hr1}jW zW3;F<@cf5N0J+6<8M$>W9-AEx4Ls<*6%1CvuHVf;m41Jo=*#@cQ)hVoQbA{6F`-rh zw@!~RG6$9F7g2aIjD>+-fSagZpoVB}(9fg3bB({CX;=AU1)YJV)$;&;%@7>`%^4{= zHHKagu#bp<K~`T0fcnlM{xI6i^S`Oiz$@QtfI}l99=F?HST5pW4r-K7#EZxMJ^uu2 zPmV??_@{pXEUR|#A`nQpyXoR3k8R&bEX_TCI?&(yPb;+18y_{Tljn_ABsT#tMHe`7 z5l4p$%cI-TLA}^Yib5C*4#CCC12A76+RHaJ9pSGSFE5n^z-OU8mlpa2+4MUdjAf-+ zmmBI$JjUrAqVE~JyFq-W2Kn6Cxy^L575R0CAFY2Ni_wZbw=}!F;;j`I^80pGE?piH zoB%Gb&t)7!W}TH=EpS??+`8R#(HvNAE3w&Ug>oxrY)Y#E^uoG9-b{@QJtCb~&Y*uw zTRQjmmM#~JL#W+q2n90n`5A0HGK9(kL!+$JA$gr~b98LV=b-!`V5m?2*gfd;eh%P- znreT9{{_R@^p85jt4aNO+3?Lme~>>cH#8HNl9NjN?w4smNg27wqaQPuZJNPQkFWoL z{`zlKGqTwSeQa86&`oPF9KVxT{jP3ivzsdZ!*aJ8Ou>vWZ&_xnM|I1DoJ^&X@<a>6 mT4rq4Ey4Q~wgdab{R3!PGmN3CQ7r%f000O{MNUMnLSTZ5O0{qR delta 926 zcmV;P17ZCC3XKb}{sDh_Nkl<ZNXNC7i(e8!5XY@S<O++*PL#q_@=>9snQzlFP0hEN zWQvanMZ5G0?GPwY&r^{M_YZFN4)8p{Ph!o7`z)VX_RH*VXJ#+!GW-|I$^z&g9Cl2* z7C3%Q@CSo_-#X8ETr-Z5!Tz4Em#xjsO%3NaBqMiha?Z_peIb8QItYgk_QcSJmvhfg zj!|+)YjaaZ<San$N6(57lFIXSbQ8M#3Tey7FS$M-`E_SUOFZP_TsoawtYxJ1BX}6O zd_c74oCuUtB?i6AuE~+X-tNv=$kj#w)@o$|jMZvF8b5*^a~?h@6(CP<u{oVKiyprg zEdKN^%{zt%Pz--L<Y(Dnju5nn8M0M`bbbU+yH^5~tG7joVs(f%E(Uq`%=l2h9CAa0 z5iB?ZK&QcY0+9VjtE)#EKZ0GHAR^ZkAqk6`FlN!mxh65>SM8`pF_;hIU}A=Zp0dB5 zK^r~gr{IOJAv<!Tgq$W<ZFxPj<AZ(O9W6~wxuE*r2;_gp*Hiy0bNkLchIyp+Q!wX~ zazMXLPFYkBInoB_dOwVbfm#4dy%vxKAuJ@;v*h?G^MH^V=7!o&!Te@9fQ@LZ4xl2$ zyQjub3ktRpSqVi8>j~IOj;}CRQD%nut@2aw+D<;`Q3$7*Wo^pv5EttqUtFhJ^metM z2_|o@J7s_HFAZ3bbaaDGIfL0Yd9cuJ>-K!h^Y4cGx;oC3f{fOGBczdGv{Lx@0Wd@p z7$QzXoe9&U%}^(6ap31%4oo-%#|}>kSaWza3{zHijd`Lyyg(ShN!Qqvr7^j22jSqC zI2hB4q)9hI%4oXXJ=Uh%UxC#HVofTL?~RRz8vlPODWcm38%jY3trVG*bnNhAr<OQ8 zE9fL4ad=3;W@EBgP1+`u#xJK^0q990-P%}rAO=jgHP7r@CEYS<oBXC-)*@Abe3}{= z=ux`R`5XObxuhd!mvkmzY(llEnvgx@U6{eblbcW`U?>s9LL{r&P(*H<!u<<f)A$tm zch!H5K5D~8e@hCKz(v7O8r&_^TusuC$C_U%^#RJ0JV8={q0}$dsxMQ!7|?Qo#6Be1 zAD>JHLlIv8_W1Q*C541!9pY^>#e~vAQi9>;bKmBUv>y)dOZdX_A}?9AG(sp-X(L9< ztDF%0fq-9_sLV@s8tEdAYo8YUuipwU{U;XgA81-Lj9E<5SpWb407*qoM6N<$f^qz~ Ae*gdg diff --git a/lib/images/license/badge/cc-by.png b/lib/images/license/badge/cc-by.png index c7389b2f6938e75215375a2e80871f4922089038..700679a13ef4d50f08b752a26667244be941c9ec 100644 GIT binary patch delta 770 zcmV+d1O5E838D$GtpR`FNkl<ZcmcJQc~{y96vdgj7#3y>Xb^`{i&k0}E3MVKh-j^p zDlSb?w5cf?475g#Q7Pox_XWfQMuLUo{pZ0s;dd_gEwTNLCy~ttEJS1R4SrV;k0d#t zm$S#Bkmfhz%h83|={Mt}qa!c>Ttp`BN@6=DWU`8?-4qHpSE_$<k`Yoni4}t!86O>K zg-l@Leoh}siq_|~gJk#iYiC(;pZ`SUcT<ruv*myrBzM3X93!rnQ$r5i$uX$rGY5QP zIXX8pWwJcv0$9JF1zbZ`;P`f0%xhf$7%rGh1~~>m*WS;}{!To$NMYQw{GtQCqE0IM z&@p5I-bfwh3@(2YEa?@63GLd;i>b}kr3JEF4|aj0X8_|txGccDAgRRl6!klmJmgu; z3Vebrzn!ehA^_j7Dp>a+&=|b?T?rAF?ADV9&ob$))#&_8WULnKMva3a+>OCPR&#(k z*XvYb;LuJ4{$q>=qb>`uI*9`~qq1lW7Ek+tpngwbpkIFxQ|l{~MLpQBlRz@6-vWGe z;RQoMBz-I!tdwW;69!)O*vMjTda^aJq}jm{5Qf+Zkc{sf>{r=?oexX%(~;Jqkgox< z=z+7CbcQ`N9uv-RIg1-v;NvuK1U5AfXxhA70Z8h4CFg1>|ARvQn;A^wrklpCO|WS} z{InpCiK2gW?hH~CMlnZWvC`JfyY1R-G2GZS$=p1H>;gQT-_zs>(YSSi(eK7>f-M)_ zN#k~u-g;jdw^q)kcp9QC9$t_y>&uI?#^$wh=)aa%y4ZZBo6B^Bh95dYAtkfBNsDJ3 zp_ahtmDFw`*PNkZ`D{x6qYV)lJ@RGkp)Um);9q(z*Nb++_%DCieeczz{dkT>s_cjH zp$VACvN~M*G7YJ@##~geI&?GzqeoJ-Q1$gcs40?F4%M@XM}YCqtL*88c3mi3YpQbc zx)ZQ={Ae)HIj|<lxtuJm4H($=9Y2w5e?1ZRH=bptqF417AOHXW07*qoM6N<$f@b=5 AB>(^b delta 789 zcmV+w1M2*u3A72YtpR`XNkl<ZNXNC7k5|%A6vwHH<5xLQ7P_?1r2LhXY5qbqlSuJL z3q@NlaC1;jol^<kf8X7PI#A}+yoa5)b9nD_?)$!bzi+O`@F3xG0Zb>7sby}17Yd?W zD#_BWz~{J?)LdeEV(k6Uz(D_-+Xs@7JD*<5@_9*7wX<^h>_mT6_VRpoJw30J<3j`e zcOtt0x!-a-qM~&L-TEfn!EWt961KRnNd7n)AH14!#IH~EN9@5#<O)SK>bVri)1#L1 z+gy4sF*!bZCFNcp0L?HofUnmMoLb8XC9Ms4RG7_V*f52!ZJU4cTkEOh42sc^^6M4| zRR~5U1TDQb;N^epPEqGlY?YW1L$q(RBxF|>W~YsmtxJ3m#yJ4`MDW>wIbKwe8>o<r zs0J`+RpPlcru<=~PKyYH{+@$L2qMkF8^4q&a;t>YlY0*Gxz&Zl)OdW*3ig8~g9`YY zgLz5w0Ch;}qDp~B+vB+}Ni2*yEr8bl4}&2Hp`kfg*zbP=U`a#70J;?+yEKnl)Posf zC}C>B*nkU1L7-5GOo*mgb9jkMC<v;%x)zgTBX<Lfnp@vi#;9O=*cih4X5A;!_WI}9 zsj>Loq>xVmFvS3PD;aMrfaNjljTu^;$vl_Bf~y194$n;3_V9{jfQ&wqH5b(6#vPPP zKd*wZ+=zd(a=Rti+8~T=gIr2cJ@m3Dg+4Tw!g)*A4zG4<7l+4yTNAH2JS3wD1;R|= zCKD<gwE;yg%59i72I9qXE96!`HI|!m+Z6Vrh8EW~$oHkWnTbXha%%KHjFzrAZE5FV zG@-uhOem`4H&(Fm8cfJJ7&=6?9my6Osu;E@KEHq0HI2_R`PgdoRTho@saEWO`+}jf zbll!>HEF+JHC<!&2bhm77&>LO&w80g)naolklK&jm@%q>*MIc<`tQ*c(N2eR+XM$- zc=A@-KhjRi<x>qmSl+eTt#Kg4B^aRf#iA$|i?X=*qSgLfZk6%>|0;a+K-_<xWu~HJ TruYr300000NkvXXu0mjfHsy<X diff --git a/lib/images/license/badge/cc-zero.png b/lib/images/license/badge/cc-zero.png index fd3dff422a3fddc4b72208a29b15740ce2e16d20..e6d82bfabab892d1af27b2ad2256d8104833e331 100644 GIT binary patch delta 750 zcmV<K0ulYP37!eCy#asBNkl<ZcmcK4|8Em@9LI59uW(zI>>Q+()mw2}XB}+Vz{tQs z#DZ2)(QVSP;_S)Yy9lm7z+@;j?fd<&dwjx{YVOOT*(0CZt-n0;%B8(CXK*T#uAB<| zI~>VL?6oe<t=<nMQ#>AixL&V#EG@2mD+L}-lLXKIbfU%U9!Y<=v$Q99IzB*vtaOXR zJ5_ML)jJ$K`)&n%@4n>th(yquBzQG197|%0XT5E8O#5Z>wq%MXh`Q=UfaSu)0fPfI zGc`5S(G7TQ$?_G+eeDy8t%Ai@=^xrLRjo0QEY|?O(FI%t*vwzNMLyE8u-P9|SeFc! zfeC#|?*)LH`Qd*$mfv>&8oKTqGu1~tCmEK&3mUMg02}$?3+$QwzDU+y+v6F|G|h%! zDCw5La)&d6A%Sc8&)DN@8wIR4d1aqd8)ZCIeV-2`T?6#bv7;{m+|FIR$!XQ!=&QaQ zt+Azp12tR44N3PYKvq?s1Nb_3@fZBiw8KSH)jE6XzIT83up;T&0Qjrw1~3`sF5aeZ zx=&y2`QSR6HtMO_3U5h<S%A-m9RfAU3&%0>N=E_b)>!ZJY@^0sOv{<iSUv-o0QgP8 zFR#KUriYj4HwN09<?Ih?Lm-qa4FDwYxfHxB>a3YMrb$yxb(`lU+xiEjS8W!)=-VED zRQH-NbvJ)KAU7miB;kW7j-+U@+~njd8>92AO0oR#&hDm2mF2!2`}1Q?>_|KOr*7As zpTq9EPsueVJQ5||hDo+$$0u4NbL@!^-jQ9OX#j#nz$BcQ-j(hWS-!sAfARRvJXzWl znIrx)x-iMPZY+0?7vf4JvWirez|jTwHwEDq6DVf2MRxD5RHwYk@~w6xdke^7?zr30 zKWSW;#MC_ziQP$jU&`wqFD?oL1X0=u#fiTRz?|;M7dr$d%L|u3S*rMiQ}B%8ju~>p g4&TB5=EA4sZxjNYOf7oGH~;_u07*qoM6N<$f}T2f)c^nh delta 770 zcmV+d1O5D-39<>Wy#asVNkl<ZNXNC7|4-9U6vcN=EQExLW>e;v0>g=dE`UKqqRub# zy8=37ik-H1h_W9L1$Ab-_h0u1#ut^gMCByyYm=T&PHx}3?<EpA6eSXnLlJ%l`v<Zu zmCpB#KB$I&5bOoNn9QdgCI=@T#c^MBlLU{yK2YLGha^alLrZ^=+=>ejAk$tvcp(e+ zmuef0mB%CC(FalBvm`R5PJ&}m;6OxVjz^q%RaI5fdWxJ0=lUH)UiCD<RBYl5GwW(* zYHFsfD{#u8o_i!$wN3z-i%C32cf)q1sySvt!Q%kG>i|vzEJi1uBVXzsu-VrxOon+b z03EtaXAQtqG&p~cVKuWKO*1q5Zl?N@$HF{A;7QG}r~nJm;FGMGeI6upoA#=QJw>x7 z7&iZh!BmAkjV6Kd=o&lRv{r`sA}_A8YdVEx)f0RY;wgacF;?^wfSJg|v+P#=NLTe! zYl0<htgG25u7r550%TV81AzOHiSO`?X@!HPs(IE_%}jr9V<f~=2Eg~K(?Dl6GVwfJ z(^a}^9~zfgv{p^cMtCjE)C+K>Ss{>%Tp&R}e9=~heG|;rd8ClzThml%jpaH(k^mpZ zth_YenQok?TWDylm%Y!_nm~A0EC3*Zn-bG2^32(Gqfl$Asm}9wL>rnsMLOAHY@;tb ze6DJ0W?O%Qu9MRdHeaew{J@vE#4^RsFSbY8&+I>MO$&>&B3Y*DyWDT**s&nx>aX&= zs^?X`H&w6wR`vF3=R4o`eL(^wOS0e+rB<8!&INDCqRagR5R4Ou1ORj|iZ?{2F3;E3 zUft*?ld~dy{QJ$HL;@h$=LK?WCm}BSBBT3T%*=YQeW88-6AUD_hGbb}@zzMT%SjJk zEBmrE5SqpS+aB5v`<_?;kVMyQ5eY;B5fOQsjN<MljsXJ%k(_QXwcu_BjN%?R@pf4{ zQv(++4W-?vzqVWBEw&kAz*{A0=#D#Rh_ClmslOdtRW3;+NC07*qoM6N<$f@kV$ A=l}o! diff --git a/lib/images/license/badge/cc.png b/lib/images/license/badge/cc.png index 8ac73aa4e390ae1e35fdd8e811e447910d242468..e28f32c7936ac9d51e95769466902662f26eaa3c 100644 GIT binary patch delta 706 zcmV;z0zLhL2hIkNn17*3L_t(|0kxFx?&B&9L|qI?n?JF;o!R$))Vo-rrQ)uX{qP&9 zQnBD@bVQKf{E_??^7YBDnsq&n<95Gq+dNOx<MG({eOZ?0ndMLR{m*!s=6T!h_uK6_ z)^&}u4MfUcxVPZW!3}JeH+eqEM<oaMLl*Yjv2buJc2klR-G2fd<fz<(`^rP(wSsRI z9EGcg%2iU_oTM$4yjOCqT)`cA1doQduCP)vYF?y9=b`ei%ixY{^nwVI(B3iz7Xx@u z+)M;`CwH_Ya_=l(05``?@!2>E8%nkb$t*!>sdo{QFEwt8TjAt<LP(lWB<<96R_-K^ z;Nenqm+e&S#D9Z^Y<w*fK<^}Py^FZWW8)wnUyUCXyqw@<oRBK`?~O-ruVQSRiqPnE zXGzic`PKN!Jw67<i!ozXH<<g1OdA{b7x}v5jZ)B3gj+a{TM><KS5$=KAb+k~QYu=M z`i$$=8jtVW^)GK1dJ1fE%95Jm{sTF#f70_CoE9N9Pk*MQ?<e=_C*559|ErlySR<DD zck|j?(LbBtl_RgL`IVkMcpeo0^Ftp=0UZjDiUa&Z5i$cNPb2}{0Rk`*z)H9RlfWDX zpzb6cr~|<3y3S*g%%N>j!H%pj5C*7Lu#*fX;mCwn4jrsJE0`G$GS=26_oBtoPEsft z;sM5FHh+D<j$qQHf$Pq|Sb$@Ff(=%zfjz(!-~?wNhYEkIfSCyZFxZe#Q9?zWe5-K0 zN=zGATyhF9EG2t4HcJ7<M}>GU73|2-?L5ht5J|rp$FTsz0UuQKj?K}lh?8x?0`I`# z7)c9?!l$P<6(=~OYg~7}!9bi06#;&LF>SYkG&>WjDNR(xXl72D(8NScRn)~O7CXuK oFV%fryP3s=Zj5RD1^8$3A7wb9*-@3m_y7O^07*qoM6N<$f^A1y-v9sr delta 758 zcmV<S0tx-j27(8Wn19ttL_t(Y$F-H+nxh~PL_2_*pjeGo?fXCKUf^FQlb!6v^qm;a zS2=W}{n4+~ACuOzmStI%ah&J*cE3;4F!cT7@hGL_oa<IO=UmF;@#y<un5O&vcAMvM z9G7KTmK`M78}98sO~WuW?ghJ{8+q8s^E@~3dXlf;<=eoe<bPaiouVXJoEo~6OXLH* zd=Fk5cbw<j?S9_^mr`=AHA?1iNyxR<TuRv@Hy86)7cYs=z|$pglqHhnD#hB!Um`Cb zgD+gjJGKfYoHAZqd<XubcsG%AEmGlLK`Ix^AAonqhvF@9tq|BH^b9~?6vEZT-f$lz z-W6|wgR9ac!GB~HielIzUnKu@c;f*chQ8kvyZ8{8pf&fT{33aJa&a{BQ{r`5mSuiQ z{3tosynzGMGm!H4iI<;MJS7gD339os3-Yt!j>JFr@%-XALy1Fl5bh&WJG?K6=l6-< zJDz0S(Qch-YL2&do335)Ud6n(+jO>Dh>8a|D%P+K^?y^ljsHyi{p1yshc+HA%i%K9 zhl%;~kv=5XkWGrIN0hvT>n-%j<Soyq_jGFpm?X&%{&{b%Z~OSXHm{Lut#wT?t)X7Q z!#l<QanaXWYY4|T<R$R4;#H<!Dw7fks|-fElOhR;<S2S1dn246nMg=Z5>C<+36OM> z2yn*zL4PtiQzR&YjFA*wlIW45Gl@<(<rGt-<W!<l(zdg$+`HJdRgaWRmT2C<J<y+E zr|5)WJ2=r?ataN+?QARPu!EhFNk(qqL?())A1VmINK#HYX_Av2oaDB1`}fYZbCL(x z+)`*@gn%P45JV?<sxVKT<a8#dq-|$g5kq`R>~HO8M9@ipRdI0)=T*hFv#qFW#4~Xs zL+sc^dSCre(ZGq9#EA?Cn6yNOrb3_|l#{f*D<r@a5e19UAOJ4G1cMo3wCDyI+An30 o!2p;5a{%qFLk4Vbes4hj0%bU%*+g}O0000007*qoM6N<$f+hZX=Kufz diff --git a/lib/images/license/badge/gnufdl.png b/lib/images/license/badge/gnufdl.png index e9291012894865482b300cb7f6326896b75e2975..635de2bd3aed6f5af9fdf9e71ff2765166ba5f83 100644 GIT binary patch delta 944 zcmV;h15f;e4e<=H&;oyqNkl<Zc-pm=_fHf-6vv%xP*3cNcV|PftfE1X!`@JAk=VuF zv0(S?y*G#r6?^X@IXwurs3cfW5jjMU+mn3%6=(K#c6ZJ@evt4@Zr;3?>?bd8zdLjF z*42^ft&?le>YMmanZc=hUBzB+v1{K%0sMAY3lh;J1|TGhE$V+yTWC<F#`@iEXmtTR z%>`ZgGY#<j#+H*6zaFk-k8}(L29LQ`>GnV19%lj1rDZ9Ji7Dwh<-oaE4jxH%0=&7) zHGy%G^a=(iJ%MuE!3U6d*oVCS8n`+6q=Wl(tr1*8EJ5JdC-^>7Hfd@p@?ryELi{@T z7P%X0#ys^CDF}a@jqk~_y!HCKAAc%dXAY*7p{2+PfSZz!0MU3|`qtcWYZ06VC5=*` zN!i5Sr4Msd@CdR6`a8Qo=t8IS1z$*`f54~7SP`6$<1*E|J!wgC6S4s?@<9{^ToKtI ztJ2FG?ZB4#B%^92g^1wl$2Q9w0Xzxi4%yH~K%vuclw*G~1LMuGR#HUk?tw=Rsk6+m zNlj;XgTTbn@0D(B6}%4@WwY)BnKb0!KrO#K7t#grQsA{3p4Spwj1&Pp5co+$GCtH2 z>_vhAjs^TQB*4qS##vxl513NJ$ks(Zz-g0gP5{;G?NXCoD)=`X0(byWu7dxlV5p+u zUIbuD!FPYY+~~R3(8;a1qbYe+%roWV1#J}L1n?5TMZ+kR31Hue=+I!Gpc!m#0B#!) zRbYB~O9k*FU<VE9$mgQ~SZG%Sm{MYZ6$z3Oh=C0>yInGKcLN?an~TU4I<B-|3)iu` zz1FcEh;r-TRCwZ5|E^Ancg(v3R4=5N!-MGp7*~Iz%0hyb+|HZf>{Or>#5jTF9Um$s zr}!s*l!2k?=VF!}p=K7r7(FPoE80;WoL0%sqCdkbwVb6NLaFRqzCuqoPvPz)#+|NU zLGACnY<wFd3mRI=1}}oO4!Kp0?$-v&+uM-FJ$Y3>=u4)Vxl>9}7#9Z2t!m6W@`1Xq zf7O5Y`7#iEHTe%FacshYDiqQzG?-h}03T~x!S=lmRja9ZnVtbE&#xGs5TCsGTp5rZ zCx-)bs~Vohh>@&ZwQb1UB3?DF|EYNf;w61=;lbRhhG8n~S%LlC4(5)zChU4z{7d=z zB6BuP!h?0Invao4y6i7ft~C_EVI_h!59laX1<@;5LznSZVm-yHb@|_|j`SBqqO1|C SRUttD0000<MNUMnLSTY|Daj!K delta 962 zcmV;z13mol41*1@&;oy+Nkl<ZNXNC7hffqi6vmxwKu@rjyR)HKPQf6^oxOl!i^MJ# zYzP+YVz1Z>#D<C>_O3`y4}vW!38J8Yfar0H<oj2g**@oiiG)dR-t4=~Z{NQ8=FPO) z(n77(7F!c-<8AzBGlF9eJB!`!VrS|s4*Y&XC*s#G7$78_b@G2t?wDasvi<{a>3$tN z->JVYe~}LU7-%|I^Yig$Hl>d*FjSjs7ViE99()O?&RP=_85xt5Sp{4UQNfeQeyDRv zc2i)SBca}4$1{j$>}mocPk4|wQUP})pEdBX0ZoESiOCBb@(dM=jEgp}9C;x!n2>r6 ze23iknPcU#o(O+l;0#nm+ibgUe)#^o=55+o>KR{-Oc~sslt|O1DgB2x9dTD490xIu zQq-jrcd)heV5tO-BD<ii*;VNc9Z4C=NZY@_7sxaooR2f?`#&6tbA-*zpk78khC*2t z0j<+(-D;q{S+|@d*R5v|4&3n6VtU7cXQRq)$nSO<GtGa7y$W+A9lx8<Meyr7NS<<B z%4M=eXur_y1tz8uZ**ZZa4N2G+wCEcMolJ;Hgo4Wk;H)$fwz)**-UUTVmR<<;0HC) z_|#0W8xb5hgl3VN2)Jb(tF^$iRoAU5Uuk4s<pEMGf+dAMH*B>E?LsB+FW5QoD4<FL z|CYeY;sAdS{A3H=NFz^fP&~Hvb&0MZO5PCsLM*weq+&V;UJW>@nT$#f>^U3c8w?b5 zfW<|v%K~&OFf3jo2Yv$Vqb3RYYAWO}?pdUyLN^Ln6d;JQl?PDdmSyA~q;-zv<{A~9 zG2&Y5jm9E&^-?0X(uiFeI2P66l72VFgxi<hqxpYdNuTW1Sit8vr(2~@u$bF#CsO(r zhy}qk$7}mM7E8~oTl$pEP%C~Uu&0wu%p4d~#`so6Po{<xvtVVmKG`gEUaS?NShkn1 z)9O}Tc+kPP3q-7F{+XA7Z&UeGl$Omb@57X+y&_dD`pvR?Z+8+nMD=QgzI48kJGUH# zVU2%+6{%`j3V0-q{c}8DvQ@8sG}Rw-sMv_3btrV$8U-s-)xf8F)Uff;;|;o3J4`PE zwO7_nj0lfTxJ(y6Bh1z~SdprxX+%w8?z%nW;)_(Te*DkN(-E&%_`0y@5xe+^QDaS) z$M<`CN6gyH1J8?pieF!)E%AL5(!h#Tjb%C{fObcU#2amVf&X>IQZ%4RRZ|81Zxiii kn2Gs3uZotryR}gJ14N>%5d-=yasU7T07*qoM6N<$g0VNy761SM diff --git a/lib/images/license/badge/publicdomain.png b/lib/images/license/badge/publicdomain.png index 8148d037aa12d499ef662be48f3899361ebf4a6a..fd742cc9d4fc07cc4d2ca7ed7a7d1bc78eca924e 100644 GIT binary patch delta 857 zcmV-f1E&1J3a$#U;{ks*Nkl<Zc-pm=jaSlO6vnNqhK{dtgn|^Qg_e|GNtvIBXqiNc z9}$YSbb&*l#B@##K||kvy1U6Z3<OSie9qXt+YY~TdEWQlQF9k=MKv`5PM6!W;9q6f zFc*!-qmgZv3Hld3(=O-O@Z0|0-kw+gFC-&(#=9I~LXiY7oFspfCr5l@C&UC+yfY%% z(cjxs4H?16{Sw^d5<;6n1t^uFUD%7T>;BJ39vyP@6_;$$0ZL~n4|XG$jqx@$<fQK8 z<Dm_|ciJ^RGE`J@mll9Fn`r=TS2?g}ImpI^X5>*OtIuaOQJ6Nb{R*wGc-)g{MnTCh z8^D+%sFV>Jy2^im7Xq6xkxN-K<Vto#YuDmzU~zWJi6tw+S}>8UOrR|T_A?xhTz!h< zl+k0&e1!3PvE+Ay3NI{RJSAD38o^Q;y!s<yLoSx9BzNwGf=jcmi4jL%K3E4Sl1`sp zo~Qp_k`(AlgPDk+25O%ul%YT^>@faMZs(}d3!n*s+D3n<uWx*DL1-uqW_Q~FtfWA8 zfc69%n4du}lwdQ0Km3N;tv`?^<}%>$fdMEq!e^vu>s5G$WC{%Yw&=z9@L&<R@!rEa z1fP`!bAk#?2n12|fE4iB1gfLR#>&U3iD5^P6<dVV0X)4dYen=J087+^Cgs!E^|(C- zG<M00lPG`V_uz&@aKYkT5OSVQS6IAQ62M1@<Z~`azaSa^UJS<VMskw3+s(ns1~E$w zQrU{kzQ&4Hh@sGmDq31zyzHuFgIJA9;FOCeleGYPlUZMB2!#)tfg-u>Hb6^(XmGoQ zgG=wPwp%r0lijtU7uPq)*ZJwmF|qTi8T8+zmQH_FZ0X7>9zxyM4Ix`1w7Q6mCk~;i z!0?FUTacVLhEmel<etC{gkWfm9_A1FjFkd-AjBTQO~LRue%Mm*Y7%}v#~^i#c*vRb z!Bl<*1-FTOfnbRo<-7A=rZzr?T$!17l2hd~JmeI!d@!`)>)$57{yT*Phdz|3SUM}g zSt3!9(>yTTe;wI95RQ|{V*&rLylKjP8Om3zyqyhsU{q7b92bqnqTE~uVsl{GNBLCJ jV=+;9d`qgib4%QR6(Sx*p&f#@00000NkvXXu0mjf;1Zlt delta 876 zcmV-y1C#u&3c(7n;{kt3Nkl<ZNXNC7i(k@E6vwHfh9Zv=LP3+%LQTq7Ql|Mv%Op~K zL@3(Qg${ud(>XN+4ZZ(#XPX1YV`Ap{4DQ|QyR+YU+^O!ut(Zy$FgosX&-s=qdXou9 zqv6mNO$B`O?#c1dp@G*uU0t0ou5U<2?v!WIPX$9UmOGBej}L#@*mjWeFL|bTva_eF z^Pk8nK<?+jIuqlXOltlm)TU-`H$<=cJ|X#Szq32v<pw=}p}s*G>_RRbVeQo!fvQ{C zXmHKvnH(P;?9X$#O$T7KT8#j@HYKooF+fMTTI6XgHm}!a(crXp<!5kp$?Y0LF>+jf zUJ2#|K}(pSvQ2*hJm+7J@LY{8MMQHTTDKCV{qxfkqk_xXx9Grfc^$EUP66zr7#6vP z1W8-UfIhP!%I86s-}K3}XaMtxblr&=8j6FLzsKyzO%Wm|x9$c53)ABxgU;@3upSa5 znLNEXOa8ea3D6e@Qz5PzG<!s5DGgL}+m!F43ll@81sHz`fwC&7sHl2&PK;0-Oz$)S z*hr2!0Gea8e|8GBkb|uVe*X)~Hhx2rSQWsV`zFw!5MHy<XcLF0NY;Rf-Qu+v9_Y&h zSKWJ9j^I;8FvF?&ID3T*HuegGg^#%UFtoPxVPa&!nJ2{tA>{y1E)=B*9|53?2GAzF zT89DCqgQ|H5VSZBQ$9B)oD3`k@0^gcWb%sOMdAQn^g`4*EjPYFJo+skjOmt%gkri~ z6P#TjR>cCzNRisp+E5C9C@w|mC4CvZ%c!M;X9YFK6bK%Yu?ZP0R>M_IXmh_7G$fsF zy+&amT1>aiz{0!SbSu4W(mQrRi$VqRWp;9GD7SwLmD=dP3MHK=wWLc2V-xBq)P(G@ z;PN~cUQQD#9Sn~cwhqZzZ73nMP3G~9mTCOehYzwFeaeQ7{s9+x1UCgkWAvadXKCVo zwBsODjIc>FVUHihBam~LNIN1J8pCWy_F`&hBkceZGy6}P%Fc<KxGz0P1VcS8|8{Bl zZ{=iSjHp9FkBN9o_VYv{Nl!Cixc@S=v(FvH<3}8Ru)L~C-wY*q46<j4QmNAKU(+(f zgd>qKGt*Kd9V3^1OTH6QT;mKF<lz7PRe0x?xPJi^A|6GFVda?s0000<MNUMnLSTaJ C6Pd>V diff --git a/lib/images/license/button/cc-by-nc-nd.png b/lib/images/license/button/cc-by-nc-nd.png index ac58d8627734c450039dff71c50cc29ac939e5a5..994025f1576979c4812d928f615871fad261fcf0 100644 GIT binary patch delta 228 zcmV<A02}{|1BU~UtAEEyL_t(|+O3o64#FT1gx4NwJ?cfRqShWF^Zrk0Nfsj3KUyXv zuoL()*$q?%7L^Dp1MG}WRIw$J+8DV1BL}RL3RYqn0JxpQNzrjUFs`675?WBEAl4QL z^qV;`o{z?THvoJ9FZ4iGK+04%EoAI~yxe_T4GkZ7CZ)|(id`JNWa1^{9Q@YdeFI+; ziZa!*fsDL_eB0Lieqi`Lj4HG#m0D2##9=i|_+t;d%`EVg>&XpP`$abzXvT77-flYX er-c8@f%O6@?UVQ1j^-`^0000<MNUMnLSTaM>1Y)I delta 233 zcmV<F02cp;1B?TZtAET%L_t(I%dL~^5`rKQg*PviUF?QYRN^IK-~S1d5w>XTN68s< z^o)KSb^&-`0mq;+z}DylrL|a683W}%B4Cx2GznV<0B+~6)C!K{fpLi{1Ev{d3fbBL zJA8MO{UzxUX|~=#G92&%cgzYDBGq++A|{|6^u2rgW;oy(lwvkrDRQ%Bk$4Gh4)?Fa z`vwjsWIWZPMiKc5<@*ZJPxxU_4Wkm96nIy|{DFtnK*HZ@*luQlyIf6f1l%tI?8B}t jSIgT?$DWkXXF0H*DeaT@a)&c^00000NkvXXu0mjfge7So diff --git a/lib/images/license/button/cc-by-nc-sa.png b/lib/images/license/button/cc-by-nc-sa.png index a9d23c0b68a46c558c7c83b72fff141ac0844630..3b896bd5203138c72bf593740580ac4f661fa047 100644 GIT binary patch delta 233 zcmV<F02cp~1B?TZtAET%L_t(|0j-m5Plg~Eh3}q6D|@k*Fp`Q;BF_K+g~{wN=lGOd za}(Ivb)V@FT^Z4+N)r0Sn^>%<#-#&%{f8`cjRjG+6@-u1$OL&kE<9U=PE=IV1*m%p zf#sD}tDZ}68WY$H-{l+K0At!X%`oRI{CmJWclm&+op6*8#bN?Oj|J0g8?qQ>)C1s% zg>pls+h``3)3zadaL<MWrH1}wF}I?llKuxTcZG(9Z^%GN_;6MEFT0CRkmnnJT<Ayn jz{=C5J0z@smn-uN?BA2z2t&ht00000NkvXXu0mjffq-yb delta 240 zcmV<M01y9+1Cs-gtAEo;L_t(I%dL~!5`rKQhPTqn&IgL5Vy(^i-~S1_5O6fFiXEH* zgpZE}NGA@`NE(_nL`395)_19_5)lFa5)oKsHZG!;34ptKYhBa%f8fNTE=V~=MGdtM zKmg3(=HpmJyIL~>ec+W|C{8dYcaJB`Bm#XwobFq(qaD=&mT6QwvcPEr04D1gda(ct z_~u_D2n-u4ojdb@8Fvl2-4Qc7hTJy}IUHL&bJ9-H=8fZOz;HN+A<19B?JV&rSEG9b q9u^7ip_Fv<y#4gwmy-G|Cyo#7-;>;zj#1740000<MNUMnLSTa1=W15~ diff --git a/lib/images/license/button/cc-by-nc.png b/lib/images/license/button/cc-by-nc.png index d936464ad3c8f213642d471ec8a0c760edba7163..d5be8f80341cbb0ff1f3e30c6fc7a0533f20a7f5 100644 GIT binary patch delta 218 zcmV<0044u~1N{P!tAD*oL_t(|0j-lsPrx7$M#nB{UFsqgMWqWO@BjZoC3OzQL#yQl z2*cs!3zHFB7_k&33q$5fJS(P|@&n_4K!sD|QOsol;q5snQ67&AYftRNBqLqKT&ocH zI>x*+dW9|Fi@ehfIM=3m!PP3{d#M1e*bqKTOyXha0bHX(P*bmlMfJN98rvo}<Eozt zSA*8O5{AmNv|^Ky{)30B-wFTthvDX|aF?f(H<bH}a9Ehz^2*BH>Cs6kJ<Emp1nqH> U`+&prr2qf`07*qoM6N<$g4YLW`2YX_ delta 225 zcmV<703QGS0)zvQtAE5vL_t(I%dL~!5`rKUMNg@fUF?RDRG^-W{r_LsgNWlyGgh(( zW`KvqI$THw4oL)!Bnf6_zLIuJA}*PkVg88+ma+Dmh)n?CVbxnVbeRr}G@6uz6_hp* zyABAz7?`#jKLo~rH+mw?p;Th48Y=QY*E#^Y8AgBwHI_7xXIcQD;(?(P>tHY#FWDIi znOIdp&4-3Pp)L0dL!N8Y2}vs`d*QtOVEEe^@_rfkmdn}015fJ!?~n_+JKk|I^{0gX b%YpL-?QxR(qS8D200000NkvXXu0mjfD$ixL diff --git a/lib/images/license/button/cc-by-nd.png b/lib/images/license/button/cc-by-nd.png index 3fc490870bd03eeb5037f7a9a1d17b3aa4ff37ea..e1918b0cdd7a0ebdfbd1a65adfbd1730b39bd59c 100644 GIT binary patch delta 219 zcmV<103`o{1O5V#tAD;pL_t(|+O5-T4}u^R2H;a_Wf!|)6qTVwy#N0fCJmTdAGG8h zn;bqoJ8&lP$RUoXv7oX!Q{|3WD(wLt|0IAiwVo4K5y0I7A(~F(!K8xDi5W(@2HSWL zXg_xMsr(i|A9$rF@)AO1rfwjT0J`M?_zFGXg|x9#DGRg_X;i1f(3ry<IIKg)Gb3t< zsRz3k_Vpl8O)E4Ral@#1;kf?p@W(e)+j-<E%gH@}hou?~+Ogc6x1Y&TVElhMa^5UK VlNP}_$6){f002ovPDHLkV1m8vWP$(y delta 223 zcmV<503iSV0)hjOtAD~tL_t(I%dL}Z4}u^RhEJ)LUF?RDRG^-W_y7OGJ_I_qHZ6Gv z8?f>43^*hMha`eVk_0m|UrD<q5tq!&F#n_lma%RR5t{(O!>Y4x=rSD`X*4MbD=2Ls zb{+`87?@8teh6R)c%vuM97-j&s-dD5=$Z$>&oBTisIjDhJXiw&755CCn1_u5Izu57 zt175@->};bV=xNHbB#J7X$563oVQ;Lf4f88F9W}FIeWCg(>lOE<bv*wcU(-Zl+d*t ZIBzULlNLl|pSu76002ovPDHLkV1nwMTfhJS diff --git a/lib/images/license/button/cc-by-sa.png b/lib/images/license/button/cc-by-sa.png index 3c6270a0dbb2180403183a7f542a26d2221242db..9b9b522abeafa9c9d61323bdef521050aee87df4 100644 GIT binary patch delta 216 zcmV;}04M)~1N#DytAD#mL_t(|0j-nS4uUWcMMoAD7hEh>tCj_8@Be?HkcN3OfykUd zhRnmsrPCoT3~7kc3)`L>Sp-y4^$nE&z``oA7*JaQ;c*Sd(RIEsws09KuPAd+`#}hF z1!Z`-0gMVC^hQ>|nAFz|Ow7XYu#cN#!aF%n7ASH6FbNA03Q>QCfWX9rN~hk`FcAy+ zhZ#&t*hUsjO4=*RKe+6EB;+HUCOoW!r(7*w7&vbP?qN5UCjzJCyiJkcWnsSUXp;MD S^x&`n0000<MNUMnLSTaFAYN$z delta 223 zcmV<503iSS0)hjOtAD~tL_t(I%dL~^4#FS|h3hWryv!RDMP)aUzW);n4w*}gTU<|| zA^q`jXen@F0Y_3<U~P2*=~65zYy$It<bg#b{UvNk0Nl=7*9wl~fuTf|0MiT-g>3x> z8oUX4v)csr0xxjKBts!$T~;VU4|L1(+T?HG8I-nN$x{1f5m<E`I*-`I*9iwYWIWcQ zL=kiyb`0Slhjk#aih-LNrVl)<zBtT3YuXRo%!s>OOl}^yUl9C5)0V5_?WSWVg?g5W Z^#tu`lKU?zcPjt@002ovPDHLkV1ffWVmJT* diff --git a/lib/images/license/button/cc-by.png b/lib/images/license/button/cc-by.png index 867daaee4731a49f0190d3baae9c631f7a8076f2..53b1dea0f2b1acbf9316443ff6929670dd56a9c2 100644 GIT binary patch delta 201 zcmV;)05<>e0_*~itADIXL_t(|+O3n>4#FT1MaM2`UFtR!MWqWO_y51pl9cLe3nzq3 z=HcWfH$x&aBoGxR)Q%geVZ~YF7O3Yi3Y$#9!`leL;~FD|uHnK|!4$-nsW9NZ7Xs)% zH%t^h=#8R+l(}s?$aEAA4^tD~$ynD)RiZ~`zl7d9FCmNE%0d=0`A;}Ys1t=QCt;b& z4=%glg!-_G+;X#c!E@f|V4<t!IrvV?uuF-5%aQp4-wBc$3Ya^D00000NkvXXu0mjf DF6~`@ delta 206 zcmV;<05SjU0`UTntADXcL_t(I%dL~i62c%5M8_;@T;fK=paRK=^#6aM2P0O>i%IB$ z3x~(6nrV`eLlRLVNrIV~FQmICky&PDm@x@Jo9Xb0SVsWvmtSi~=jp&y!xbdFpu$0H zKR^J+z`XAe;FTUIDkzovriDrausaxPSd;UlfvN-mmGun&_ec9N6f*a!flB&@BY>P} zv^hyHsC?qInQX|rMdT^l**yS{s|b6@HQhSiVLr7fvAY~OFW(808mRo1VE_OC07*qo IM6N<$f}x#YG5`Po diff --git a/lib/images/license/button/cc-zero.png b/lib/images/license/button/cc-zero.png index 251efcd1cc80f3b852d8f3c79d33ce3c9c950a2b..e6a1a5bf27f1fec007506295bf1051348e8112a3 100644 GIT binary patch delta 215 zcmV;|04V>01N{P!u7A2oL_t(|0j<&L4uUWY!12nV;(>?5=~NiZIr{!DC^dz|Z@~5s z2U)@|%?2`XATekJ8tMimFNs9c0#<VxK%J1s;x+(yT;q_1t3Mc*XfqH_KxR?we_-2H z^>;<j@!$jAm=&m0>gonn%oDbB@ryr3f_JcvPNm4POC<y{#!wSZ1bIRsQ>SWF5rOpk z><LX&Vv~Y&0`d=DcK>@w;KV&NhgINH){7VRoj1lCq+@xqcUo#sFk}P<?hAA_lm(Gt R*Yp4Y002ovPDHLkV1jOFUxNSu delta 220 zcmV<203-kX0)hjOu7AHtL_t(I%dL~y62c%1MPnDWE_I`#sL(~E`TrlZ6k2C|>XJKb zlZV4i0>Fs{97$z?mDLTT53wk>0aR1e1M^7sm#{4X@VNfD)^ME<3?=FWm|>7;WcwCa zH&WeHejNyWz#Eecg@{d2q6odix*cxwhk?L5Xk)vQr8Z{~IaOfitMxVx=p8a18&RML zT*^vKc31@x%NTf5!}Nof-CqqIb4(4Z!-}}e`Qp_B&l`ew*tF&8d8g&vpF;hYiS-3^ WHk1V?K%t)i0000<MNUMnLSTZ7w`6bt diff --git a/lib/images/license/button/cc.png b/lib/images/license/button/cc.png index 9c492950ffd50953171106df54d42d6041088ce7..e04958a8bab6168c46dd19da9028b8210ccba0e2 100644 GIT binary patch delta 228 zcmV<A02}|01BU~UtAEEyL_t(|+O3m|3c@f9MWfr)`IxWHYSp=iwfFzOPy*R-(jmBB zn$q0DAtWv7z#@&HVqn8MQz4d$OE&QMM;)+?nJ2_m0N`$cPL@vNfl&dQl5&bt3$^(K zqTK)va3UcN#~1KQPoz1FNnBOKL_Q!dNhFhNNqWEwS;te!GhF~M@c^)^5K^Hy?0G9x zI&r3gnf|CySgq{=Hq!!iLfR?HUO29MK)};OIS=))+0Fw`xt!e5>aZOD4tXp$;q7PR eeoFYi99VC6dz2(}{=?D$0000<MNUMnLSTaId}|m0 delta 236 zcmV<I02BX*1CIlctAEc)L_t(I%dL~?5`r)cgd>NF2VTW$RZeU3{!b`{Hi+mrBi(@x z+aF)H2?g$0z|pBRu+lm~YPMLA>kZ8Q5drfcr6O$U0JxoZsU;l81N{_b1WYlAB(n7@ z5bc7fUo<AOre2zl9`FKpj1m+gR7Hux{{(EF)>ucStRdhTq-D}mNn(9w5qtqsLZrxT z!U51EWIR-&K;ivJXjoKd2&}vm%Mf_o!}x)RRS!sQd+Q-~2?sr_HZ#Xl&L=kl?iUXJ m!+I=N!`n^A-W1n&*|DB?dz2)XlYCbI0000<MNUMnLSTZ2*k{rJ diff --git a/lib/images/license/button/gnufdl.png b/lib/images/license/button/gnufdl.png index 0b52ea12e4427800cc5d857acccffcc51d5f16d5..b0e0793de8568c3f65d44152ec2423df57988ba9 100644 GIT binary patch delta 253 zcmV<Z00RI01Mvfp{D0s{L_t(|0j<$#PXaLzfZ@Rds(9ar>w$PIDy54Dc<cNB|C2U_ z$!3#&(Cr(TZ2IBJq?K;sq)XB~Soki)63UG82Mqp`g3efmTeIf$6|%Ji;NA)kjm67j zS^8ik=k>vsr6bSKlOAN73Ie}l;Q!%655tIoH*(L{C-5e_kaoAG;8d-ElR+H3mJ#^A zWgT*(pkmbx6^w5<egfWQAM&Px`upRCMbmO7W9Z8*9Bq{DZ~_E0MEN2k;Lb9SGYeOp zMmy0fyZJuD?KyMu0*9+bZO}i<9ifA^s|lvegNgeAL<i@M@$s;C00000NkvXXu0mjf D4RC<9 delta 266 zcmV+l0rmdz1N{S#{D168L_t(I%dOMfP69y;fZ^f+MnMJ7qN@UnvY_m2K?KkGzyCXV z!R#&pF;S+OOeVef(zH_vJ%@yNjZi{VRkba#O9duTRmJ`%GB7bQgTr-m{Q^PN19-a2 zLt*>oQY!C^rL{U(ifPIdbfpWyK?VZWVy(rxN0uZ{EP_25@_+dOyvhkgr4&rnInZ4! z2RkyJPUK5!5SbiIvBe611$#1N@(8@i8AQdI3f=i*g<6bh$OQUw2N(M@J+x^Lr|%rh z8u=r5yu)a1>$X`adzx~x*=KOHVXmIxe9yx_)Q;S{O{tex-4x%u>^Z&xL<i@M$xgd5 Q00000NkvXXt^-0~g83qQyZ`_I diff --git a/lib/images/license/button/publicdomain.png b/lib/images/license/button/publicdomain.png index 54ea38b64555e895f59570d0ba6b44ea270da7b5..b301baf975424cb3a10e1d1c9bf97366b001ae47 100644 GIT binary patch delta 201 zcmV;)05<>d0_*~itADIXL_t(|0j<%=4#FT1#__R>T9>*=MNum)BH#Nzp-zIt9!vR$ zaNzLEgdv$Yl1LhZhPzPfpG2Yg0neBMs0;SIxK04>mk3!pPY3fBwj$vKRTg6V0|EGJ zBzU72ss>7xuIr)l0P^8$EO;gBcq>hfZ>ktf$R~0_Axoz^s6y;-!Z^@mE&7tA6I8!( z+6=&$KQy~V;w|ghBY?-1nGEt;?%q4h^+Ygb3?}Xa4~mj3^HWFl00000NkvXXu0mjf DfO=fs delta 205 zcmV;;05bpV0`LNmtADUbL_t(I%dOM78p0qD1mHD?8jr+-h(RUCip={zp@oR13}K2b zD1PSSAQ?F%5jBz|n3?%X+AWE!V`fGh5)XEn_M3=p1n{u_wKjB_52hNXAYla+24epO z0k|;{ywMXy4W)A14^XKG+ZLZO5p2j<(m-7TfXc=V13=eM$VS|%9xC~37zT2pG2|qz zpz?+DZVU#TAy=!&x7;lr9z1O#yhCp2?!4o2?oWyRmm}v54~mj3M%Xdl00000NkvXX Hu0mjfT`5^u diff --git a/lib/images/magnifier.png b/lib/images/magnifier.png index 89febff1035e680c0ef2b4182f09e46e09949011..014fa921bf17e1122a1bff1953e0a61375ab0f20 100644 GIT binary patch delta 541 zcmV+&0^<F-1hoW^BYy$>Nkl<Zcmbu7KWGzC9LFU>W(5b)LFf{}Mcf1z!Ohu45ka&L zB8Xr`igeM6MG+hIur^krmDrM0#n@_c^<r(4m_Ln%CZ_4#nY(DBmxRjYa)0pn`qDrL z$#c-*19!vc^LxL?+W_FdSpSF!zZ`E@EGASi<(XW|ewl6BQ-6y;<;g^Yd9t85{u<zj zJX^H5lw?AvS&$kgq`Haa?*`bVRg7^JZX_%_r~$TUF-ggQ+^~?V=txT~BuXu0<QDiJ zCW4DKxL=73HSjvG%YtIA$w?x9_@W^uXqe}<PDs*l{aI0_2HN|U>gJjp7d1qQ{C=g0 zcf}^S<t7Om7=N6|+tffHy=sd!6EPw$kg0P-ju3ISpn}b-$bK_0FrK9ce6gCG?;L-9 zD*IVQh{)~#xS*ncELEWfymM7%I#WlXYP5In$hnUEsjR~j5;1(+qlYgabaf5fXUmSe zGbJt%uOd~_ko~ITBO%7C7=0t+mM@B>z#xK`_A65t_J6v%KBSv3c*jtnz+8EnliU0D zKg`&Dqp9+c+bbl!=TS{eBK^1zzO%cPN2hnX{s_>S9ys89esQ0Fo;iVX#DnO)UU*LK zP`U)@Oq|=}96z(mAHH!2eDE5WV_QK9(0S0?;~Y7@-S0Wo1NV{5SLp%JxpQ>O#^J-8 fwspD0e-`IA@#qS8vb_I900000NkvXXu0mjfe31`# delta 545 zcmV++0^a?#1i1u|BYy$_Nkl<ZILoDyPiWI%7{*70o)tWZ9)w*gcoA=c7r~onFNz4F z^B{r<PGra~I&moCss`ucq&le^?NqFrwwbAOYis|kTGrZiNo>;DYP&K?(=@^G_@z@X zHsbW~!1o<~zxRDUz77B#|C3*bknoLqwP?_RoGwph8s@Wf-G3aP`znvcYV^a|3iU?; zN8qWv!6hUeLe+p&(;+SESoquoJHLWquEY%nWy)5-<_$V7H6hmwWJ(&6QUkF<11Y%y z{)-O(Totb8B5f;pk=10OqPO5U0pEU95fN0(@an2aQgP*RUbYojeG6n|3yz8^!UTS^ zSjX#p9o#~lh<}^t8_k-w0$*~)6stNS1fC^RrwJS);8acln^lnh)I{${+Fsy^RORfC z^?y!fKPU(g*t$mr1wF%wlC8i!U8W~e%gB|Rt?n&2vkJd2YG48)25vA~@WMW4TfrT+ zNZpz&aK306iGqssl7@FA5njR2OA*&SVa)sb;6J~oGJk${m$U6hy7rW(`h7Y2;-idg z_3gQrGP{Qo#eSDth`Z0A92-OOK{q_7c2w@4*yj9AV3&#By^bg6c6(>&qbP<Lgl~6& zIkvU(*8(e}r*}F=PHy)GukHu$zYO~DCag(d<!)D}WAMlpFLS&Tu7evctyy5@=An)2 j1`e#>+#2=~|25wM@#qS8i-aG-00000NkvXXu0mjfW?Bfh diff --git a/lib/images/media_align_center.png b/lib/images/media_align_center.png index 807f9d9a883f52156c75d51ffc82e5d376166787..8b30a051b7df348056da5b1601e17d945aaff0e8 100644 GIT binary patch delta 114 zcmV-&0FD3p0r>%tBoV+#L_t(|0b~6C|33pIU=SIRHf~n5H2`ZE5NiMk!)!*T!5Z-y z@Sj8j7%^P%^5sjIVwgr425ExR+}zxlE(i|~2T|ETMN<eEkONdV_2b8ngCsKn04%(V U@Doy3m;e9(07*qoM6N<$f)`aQmjD0& delta 115 zcmV-(0F3|n0r~-uBoe_%L_t(I%VYfi|33pIfN}5`ku`2sG&TTR7!Yj$3?sV$M8h=W zGT=Xn1~6i{;N{DgaK$i<FbvWJqq(`cF<lTI9uA_ifr_ROFdzr0ZtBO69|uWh0st($ Vi|`9OhEV_j002ovPDHLkV1kP^EMWiu diff --git a/lib/images/media_align_left.png b/lib/images/media_align_left.png index fa6cf33ca0bf10e4ac179c6474939588bb0e02e6..d32bbc235c58fef8a5c694da85d484159a30375a 100644 GIT binary patch delta 219 zcmV<103`qW0rvrrB!9k1L_t(|0nJlO3WGolO?sdn$F9T^=w;k`f$qJ6;JQa}<x&*? zGn4WHvzjhiv|!*tBFTF(k6{s^BXJ>uJkP}#L)Kc__g#T{+cwSTdDgrr3jWUq&)fYY z)5E<uO;hRnp1Q6h=Nw_CEK3du(Ci1pZ()2*5Ji!!>q@{d3{+HA75_wV_y%ztV*_<z znkK?M>bmB0UC6RbpaA&)h4)ZIzATH@<2Y(h+qNffkR*vf#VbPvwFi`&rs3;7rZ>pK V+~JcrWvT!G002ovPDHLkV1k=rX(0dr delta 223 zcmV<503iSO0s8@vB!9w5L_t(I%gs|u3WG2Zo#}yk9J>mhKrfT67wFzA1hVcCT)7m* zU(`%_0ijS^C|WS^U?$AG_cB9RL}<_9^AKpQWu9kRmW8Hi3PA3h3vu7~A<nXl|Ks3( zxo$Gu{DYGuk-Dy_sw(o{6MFJI=Qjcrzcz2(eRc4OAc`Ux$5@eorfJ9+!#@%1o`F&- zIKURVt|QFDTFb|7Ax%?(0<gXpyN4p;VHiT*wr!{>%kp3caU2U&R%NIlUjgN!DENGz Z=?Tcf+~Hn1fhPa}002ovPDHLkV1izHXm<br diff --git a/lib/images/media_align_noalign.png b/lib/images/media_align_noalign.png index 263e090fed529615aa0606b6acb12c0fa542289a..e6ce85790da66432eb7491ed05cce7de6c7a593a 100644 GIT binary patch delta 190 zcmV;v073uU0onnOB!8hvL_t(|0nJm(3Bxc9wL4JP=_xB@pFkGqCO&rugReID|515@ zTuKjtreMQEk`eF8k}Qcx{BkBD*tU(v7^1bt=)H?tD+6&Uh5Z;K`}@AjYb$u(?q8W6 z<0VfMd?w>=eu7gySeAuy&fNVFf^g0WrPRe!Sl5*>?_(FBm^V^_g(`gB0c$N=t@R%& sz#9Rm0#JhbQ4M16J?9u><Q$*r4Nf!8;e(LR@c;k-07*qoM6N<$g1>NANB{r; delta 192 zcmV;x06+iQ0o(zQB!8nxL_t(I%gs~E3Bxc9wL4JP>B%d2pFkGqCO&ruL#{T&e_Q1V zatSFEnnDZ@Nk+UUOR^*)@yn6dA(*C##u%ct#^}9^S}Ox_DTVzQBm46_%X2Gu-tLD? zkMWXU6YP_Z?k-O7sRv3a$~klQLkPlqFN`rKPeE%<nD@2|P&rH~v4tvp?0|EQt+n<K u72u5kQ~@YKeX9oXx~`nFEQ`FxXL<upGtS|lqv6>A0000<MNUMnLSTYya8_6V diff --git a/lib/images/media_align_right.png b/lib/images/media_align_right.png index 33539dbdb1f2600d38befe6cd92a539b3c1b6409..32a5cb0a342d45c50bf8ade73a4a5a44ee89147f 100644 GIT binary patch delta 222 zcmV<403rYU0r~-uB!9t4L_t(|+Rc+q3WG2Zg=gZwqPTSB5xN#~1^2x`wz*6^fw-#2 z>47@s4Y;x`g<3H1U?zk&UuF^(5&C7F(7-t-X_`_|6qF<hA&%o1u_}rp&As=0EWtRA z!pvlhp|)+QX&RcQiErlevcmOo|Be6#dU(ILH?Y=9UDuRlnOACESAJ)3Ji#ywf_s-` ziOws*vMir^aPSnmuG9HfRi$qr&vQ_K2svU1bgB>n|L-aHeJ>yZ#U@nUNRZF-%;)$_ YPeF8N;U1;wtpET307*qoM6N<$f_>I$r2qf` delta 224 zcmV<603ZMQ0sH}wB!9z6L_t(I%gvKb3WG2Zg=gZwqPTRGBXliz1^2yxTQ8$0kgV!) zdZ12u16dSYSki)l2Qy)K`7)WXh)~Gl>lsYbBx#ybQ52LU2_cT-SYs%PBF*P{=HC*G z<0#Bb#u#ebmYSxabzS*kZigq_U(a&{F!04kdmjeFFi2h3lv!n&YTtMM${>iK?|Z?$ z%d*tYgTOf#-h<Px&~=@@e^pgF19_e+1&EOQzMuwLmWBT}%GO!|2`Ie$bb<o;wrzZk a&-4aCbZ6l=_qp=`0000<MNUMnLSTaP0BkP+ diff --git a/lib/images/media_link_direct.png b/lib/images/media_link_direct.png index 4350b803d0dc0727e7bc206471cf91464d1942e7..13d24ad7c2f41ce68bd5133f26344409e946d7fd 100644 GIT binary patch delta 690 zcmV;j0!{tU1<D1GB!7`fL_t(|0i}~oXggID#eZ)m=_KZF^H(#iNiDS&?ZzP3idIsB zRWw<NptR5yi})eBu?sg+6hyIATbJD^U5KlKb>T(?KNNJMROv=a{UA*yO&eRIO`2rp zz2`82N{HaX19x#}?m6$A$Gbvn&Hq6NU}0r@U3y~vv>_wsEq{8U=t9(j{wP}?zBRiX z2uLLsUVCQ39<Xg8L<kM&OP)Y$g6i}d>9u*{)lZgyj=<@;wCsc}p4)hz)bLd-Qz5kl zMjS)XDMMiTRrqO-*O#Bgl|o!bXteMLLfkrbGq>N9@dr(`mLNhP1cqNi82*ew*fdb8 z`wlK+T2_Qe^nVKc$HnSS$X)@r-NbEP1gC1PP+FptfdIePm_p*U8^OOG2U^2P&Efas z8m{sJ@}I2=ZFv)d4hF0<F6uSV#=i?3Rjwg?*!<^%w$VE11Dp}%@KE=@1J#+wF#Cc= zI=dv=zmOWZfuD=VG>7j;MB-QnACVtT@WIw5*K2KMvwzuGmjkUN)gM3R&KoteON-R& zb;gQCKKtftT>6-Q>|v~Mh;q41U-<jTr@!^T5(sFe5P-Ay1(T!KGCi}%3oEPqb#y=~ znIxS~`=k=@tiO%pl)3BfDIS=~QYaLjHh_Q(n)@bhBXQkT0A70e4P4h_Zf=fDCPO}- zCzs3NdVd~|KlwZW@p#+{9P~$xn(~_QTZU|Y*!>QG?RQsEQnI$TMl2Qs2qGz^d2e%r z+(QpiDwUeSHa_~|_M4s(Q?)-TcU(F9Ha30lq(}`75sQRGrBY#ke;>=T7#SI1aBz@D z)6-?A*#7Fv&wuS&=kf7zGnq`L{S$Xmsg&)LOe?^sR;y0|r9>jJ1B6?xmUJBF#CP<_ Y-xFFJ{X+ZvlK=n!07*qoM6N<$f_-05wg3PC delta 696 zcmV;p0!RJI1<(bMB!8DlL_t(I5e30bh?I340O05U&bz+5jk#7c+K$O)QeIkuG|E_6 zvZ&ot1cic15`9sZJah>uh$5}DqnE-%bP}>dmk9cVx)c^(LhOTecgEFC+j7>~oq6A1 z&yyko000000002wu>bI>W91<2yRuvkUt0kHKm`Dd6s#L@@_*C!_8iKgtkV9sUfAB; z&}^oZa)Cevk_aNGKqv>Ro_X_&gE*AKm1||uY&6qL$3NEEyk1eOlu?k4$`V;3%aU4_ z%>H)P+lOA%FH?dXmRHEK+?`u*clQI6YFSN0Ny<q{mXee*S(X{9WvU8*9H2r`3>zL< zO9TJ_00@BqIe$Qf{%TLZcb$|(RH`UdRVE=K)KY1%x-6mskOM?;d8zI1OH2CIKozBb zR~D?6w@H8v#Z}k4OGE}B2Z-R}!VQKl^neJWDWV79su3411OUjPLIhcD4HaekjK=C8 zS{rWh``jhH%@0e%ql)vNnc33t$;lILjwq(4rs_FB1b<PL7JvQRy|;!v2M_3WySC2F z`Ra%7^{uh*smB#VxlX5J&Ct)oU;ef3jU1w?B(%?dW5<>o?b?07D~FHx@8Wr_u`v@9 z6FQxF9~^sMyWMf${X0Ffd&=zW?DH8U5FXlom&Q%&!E3L-qu(FcyLYe2$w@OaGp47f z^#=n_KY#l&7#$rga#%N#Emecw=pCDyemV0KIQ8KXRarWE^r(8h4!Yg0stO;SIBxo} zN6pXA_fkZ7^3_xC4yv?s>7Rvr)?WRwzU#pqskLd7`f#2W78aa4cTQ0h#>dBP+_=$l zZxEgK-0FAVe*I^P2msr*ZL5uqjZM_+_0z3Zt1(#=MGe{F;^K3dZ!{XGF|@L>QnuUe e%iV7GiT?o;S{wZy$4Qs~0000<MNUMnLSTZe%2?0< diff --git a/lib/images/media_link_displaylnk.png b/lib/images/media_link_displaylnk.png index 53927566a1be29e67155c4ba4a7dc4878ef2d6a5..102834e7b02f0a1c26d6ff1f38c6668eb9d16e66 100644 GIT binary patch delta 136 zcmV;30C)eg0<Z#*Bo6mUL_t(|0b~5nfFICHku#5PW?%qX_4~KrewW=BtB+M(nhsQ; zrKz&cK|=N)i_lAkTMX<B@(kh(f8IT2I`HC7(6#G81?tR_y4>rfMA?}cnBJr^JQZ2b q!20v=v)5k(pI^TDcaQ`%egFW;GHn4ske8MK0000<MNUMnLSTZu+d$p` delta 138 zcmV;50CoSc0<r>-BoFyXL_t(2&tv@0fFCf@Ns%&-a0a^QE5q;Kg8N-|U#vb>b!j?K zftIGqItK~ae=I^T8E!GKGsrWDGyHk?nCZZaJ3-g30~M$<OX_m3ml9=XW?*`g%J5WV sJp=2{zt3KO4Sat2=3mCa64dwr0Le0K0Uhw^TmS$707*qoM6N<$f>8QC-~a#s diff --git a/lib/images/media_link_lnk.png b/lib/images/media_link_lnk.png index 5ff4ee182f79eb9ca9ce396a0390a16fb4e866c1..5db14ad03466af52175519bdca47e3d704a7cd2e 100644 GIT binary patch delta 553 zcmV+^0@nS+1i}Q6B!3A>L_t(|+Le;aYZFlv#^>Id=}ekRnwm*twc7f?O>B+0P-r$) z1UI_ZohubwxDgj_l|sQ?H*Smm0fLAqE^4<Dv{n;ZFk~=K#v~2N%$@u4%rK-;Q1Hwd zI5X$`_`Z8NNJ^>vPiXKyfBoshN4wec`{ehg*e^{(xt^cDb$=}v02_tMgPYm3Wg(=2 zoQx(BXhVjz<jlXf`aS|$U23JQyHD3=W+x3*aA_zwfsqm<Mk+>?;@0E)w<$-Fr2&D4 zcIw1j_QH~iRVlfGGzB4yATWfkVj=d=5V<uB(~M0hf4Kt*59BC7eUEysg21{Ek_!Qj z0GBEP{{#3rs(%0tI7!uMcBx=6y+;~8KLUV9g~8jkHfi<PpFq7auG?PpAuTDr>YhJk z_)GK2lV{Gay(zWOSOmy$2CHLOHHM~br?;3^(+3i@j>oxJIGnUhZRJG)4;4m(Fg}U< zQ!%|*>0Dm0uH@1?wN5G#E7hG)K?tzhEN>5izSM7A%6}Dh9hVW8FeU^c?#>UgeD+uX zpipD&$)lhQ<BQ#<ZjUg^C~dR{N3A$@se+_HG5|73Lon~qI127Ggyl3|eOb=Vq{>y2 z&t~GLjs?x6Cf;p)3$}Ir)#tC@e-`bI7}++b@8{3W#^c)7Zk-c)dhTGK_!%tzwcabw rHn*GI<sys6Vdm{-X>r<oc<1Ub3_uTxpO?fR00000NkvXXu0mjfE<Ou5 delta 555 zcmV+`0@VG&1jGc8B!3G@L_t(2&y|wDYg17a$IrR%rSGMwq^WsntX5lp;1XLS4hqdu zMR3twHzySwT*SduDHPngxEB2b1QAgjYF7zbs|hU_63kCxl7{5H`|gk9kVi}f1<&-o z-235t&gCEx!T*#A0MB24`tY$-@A^Hy|5E>swguNS^S7?0O@9E`$QB>mOeGu#(Ify0 zULp|?4KgX|-&=hj0F91t;?CWt>oc>HmZ23{z@iL+Auxsp!(wjh@%`IEVW8CKz?gaJ z#9ZpalEDlj1!w{yLqueZv5>*E9+_caYgx7(o`Apn0l`3a1Q5O_JQom&v?irBLjWQ& zP)WZ}r1y0of`3M*+^lzmmYUQaulec-0(e4Os#R(6Mpym`RBPj*k{2AvA@a(5{*>h} z&BsojIluNM-@vf|AOIp@#uziKp>(O)T}&8>1JO#`Q%Wx!jyblu@*>NI9Y%{wHOYEY z;ZUyFzP#XENhfwH?RYetuQp8pAgvLgUf3Q2Jqq2plz-0dHeJbGE~VC-yE{Ml^4Vi1 z03ZMWtvz`ZM1U`)mT<dV3MoXb)j#S)gew3^Bbfk@j9FTGhsF^QX&^YwR$mrUGx0*1 zXHv<C9b#G};}h>Tz9A8<zxw?3`_Ejdtw*-4+4D2!W+M@EYqzSnI6Zf;$NePJ_>c8o tdA7M-?<6c=JWfP!H}i|r_QN|@e*p|Y4~p<s^CSQO002ovPDHLkV1m(-0<{1D diff --git a/lib/images/media_link_nolnk.png b/lib/images/media_link_nolnk.png index c9378c7fd072761d8f1f724df1fc7b6403ba21fa..d277ac9554af876c4caa810d2f82c6d8ea7b14cb 100644 GIT binary patch delta 426 zcmV;b0agCc1H=Q6B!7!ZL_t(|0j1NiYZO5g$MNr*-E(fEBo=N!Q4qvVD;ov>0y`@U zQ-~mnUHVj_X+%3~5i1ewE&MA)uoMr(L`*n|m%ZJc_p?~MGhVn9_hF_PW`4W}Z%h)4 z$N|<i-abpM-QF3c{@$2b&H+V)<${;*p59u|0g~I=<NH_2)qk=yvm61MyfY+_zyT1c zt-1T?{T-kS*x5_5JXPAm=dU?)?j$jDk|Kl^g3;|@WWo6Q`6Ex(AJ8PTNeiPfgphOb z!g(%Ty-pS~qy(0O8Nm#*KnQ_e7I0@G|F_K;`}B(wATf^+pxJ<?u4t-#Fhg=&3HN{j zlE^I4)*~dJt$#p*AH#3_+#b?+i!1SKyhWYPVsuvHF8jZSpm2D=_pK#*gKB!95~<>^ zT?z&R&CY=X5`^p+A&bnD_4<gZFs)#LNt8PVY=8O05xP6Nf%`N713<jk+yIREZUXhe z3YLp7^tM_#y<}j908qF1pV788v1ghD9FO76z0D8TMk9?byK|)2gCge@z{21857Y9i UR^Fd%X8-^I07*qoM6N<$f;79%KL7v# delta 438 zcmV;n0ZIPE1JDDIB!8DlL_t(I%cYYsYZXBhg}-}u*LfQyN#O<*1wrhzvQh9C*jZVa zLIhFl(x(zlBidPuSczb7;jfT@W$-~TPfU0cU-s?p+-tEfYw{8kFo&7q4rdPM%)KM- z&Pk90EG~a|85_B`If}jQ@gXeRU*-X3bKZP>ad#;Nh$f5A9)Ddg7K%bdQXKH^p5PAd zyR{RWiU&_W-3MBM&FvV9vxPi)^^Wrw=Lv}sJ%G-kLc3K+RQUGw3(uDxQ%8|5!e|Vt zDOWCE;_8iCB%0tJK~fMwMG#R`l`K)rrruyTW(Ylc`I*-55%4bLlt5jT)a4F{;BJ^l z%oG9KokSu{HGjh04mxm$AH#Ki4u;g$U>^B3-k^#XkO^lYY_aou2(E_<eBYQM>z98I zyuiKe$Xn#}`+jf^Y{J*%6q<x1^Cwx4y%M_D!GBMpn<2npZS~j-gSA!g+g&TucGlYF zyk1%Es(<4SQ0;dxo9ob;a_-!Wv@M(nPSzBJrl|;-crPb#I_Ud{E1z$UYQJW7eD07z gp7ItzPWqky0MqiTR?D0ddjJ3c07*qoM6N<$g6quF0RR91 diff --git a/lib/images/media_size_large.png b/lib/images/media_size_large.png index 012a418c36fd5f2455c4c7f4b7b23a3284fbc8a5..c4f745e4de4a43423078b2e126af36c512026795 100644 GIT binary patch delta 69 zcmYdGnV{mJ?djqeQo)$~<Ntqq*BNGP9fm9JvOfCnaHfHk-;~*nSHhHm{oR79v_%}u Y47slaCUIwMeZ>F-p00i_>zopr0F-4I@c;k- delta 71 zcmYdEo1o&P>*?YcVsSe8$N&HK%&IdQ)z~@=SKMWN^xxr318={SLDqo_#thQ$7SyIG au`)B{z7m*JD;TQ700f?{elF{r5}E)9RvL={ diff --git a/lib/images/media_size_medium.png b/lib/images/media_size_medium.png index 1469f519fe25bb4ac261075082c072f229497d24..580c63ed57c6ef82989c3458f4ddd9c54e2d5533 100644 GIT binary patch delta 198 zcmV;%06G8X0pbCWB!8(%L_t(|+O3mO4S+BV1*ZZ5d|&_zSik}nurLc)m<24%!Ys@} z8ObAkX$B*Kj|(mBZlf7aL_YDKpmW1ikQ2nN!bm-{70guJZUp{~U@znwK`I3FEmp8x z=Bt4gYF$6ovp|ohJMAn$9uYSM8{!^$k9>VAn9PEeg@}U{BtM`7!;$d}RLh0b68MLq zrj~#&O*HS@0wO}<D}rnV_6G9s#)?3G`<Xs*04uGSE1zR;Z~y=R07*qoM6N<$f>Q=k Ab^rhX delta 203 zcmV;+05t#N0p|gbB!8|+L_t(I%dL}P4a6V}g{xu$_Tvo9!Ys@J7G?npvoH&@fCVhf zLXRe|33*`~x!aEyS|}go1w>WlAIWQgK|XVlLKaIyQ&qDtV5t_j3qb4v97X2^AQ$bZ z3k(QO_5#`*s_WSp8Q|^tNe2NePlz7@8{!f9h<xn@%(P)8phU$x12R+_<}D|f=WAwi zegecBQ*#f%A5Eh9Zh*J0=!O9&16nW8&6^qkefKl{sxK?8m@Bv>;*bCU002ovPDHLk FV1j8gQNaKJ diff --git a/lib/images/media_size_original.png b/lib/images/media_size_original.png index f58d056aa5de557f17288828baf8adcf11e0ca31..60d1925f5272d5cc0ac89f01c09fa457bc66f757 100644 GIT binary patch delta 182 zcmV;n07?JU0n!1GB!8JnL_t(|0b}_8|35{TdIpFwsKKxx5O)Ca86f@-#b=;mf>1R$ z4NwB&cTi0;fjA9{SAoQ!a>lp}5QHc|C_=+7P($v5)M7KB9HanBGvL58VQMf9K=@e@ zj{(L|HM=nlKsb*94~DCwi2-*>@WLu=26T`Rh-ugiP$D)O@h>GL7Xk_CF4Q8tNm&W1 k`7T;gF2|OX2R=6f028#PN|DbVA^-pY07*qoM6N<$g5lIevH$=8 delta 184 zcmV;p07w7Q0n`DIB!8PpL_t(I%VYTe|33pIn1N~rh%u<aupkh30Pz_h{tv}xpkjhB zb+`;r0^)a2O*4Tw4T@Jm#Xxe#xC{`4Du63O!!A%m?t;`}GoT!*pd5>47@i4JgUtY# zp9S$4U<_5W8=C<z=P?k#V0APx;4TSXScT1i4iW+}4VwW<Br!xI&V=MbAR*m_T7)+# mD?v5iMN7)%c$4yg<wgJ#w5Cdsw?2*l0000<MNUMnLSTaH@knj} diff --git a/lib/images/media_size_small.png b/lib/images/media_size_small.png index a0aafa4a7f0810b48571ecd1001244d54ee67480..8d5a6293be381ead0426decd1929611bf119ce12 100644 GIT binary patch delta 162 zcmV;T0A2sm0nP!CBrBCkL_t(|0b}_8|35{T`UZf27=xNI5U&E_yFmOOL__(4gbV;_ z4h3m~YLQVBYz_t>yl@7@CfNWGfcp0xEC8W=L1GPn86pVPcm~NuN(2o+18^5X4cSei z0SEv~6O<Tm24n~^u}}`hN>Gh1Ks*!bg>qsH=zu!+9a7+}f<`HAG807@07|V6XTeSh Q2mk;807*qoM6N<$f-J^3X#fBK delta 182 zcmV;n07?JO0n!1GB!8JnL_t(I%VYTe|33pIn1SjBfPff-nlTWs0^++s{2xk#_<{rt z04fTFY659+ff}d;#N{A^i7{X|)Bq(0EPyTsz`Sq<#3tDQsGmXpeTNi)Aif~c20#rF zglas4<RT@a4L}A^gFuGtCd&Y*A>cGYi2)!l+$AO!%Ar^ZsxQ$6h-X5*P)>{i9Z=`K kLkhfAuqdT{W+D{>07|V6XAYT4{{R3007*qoM6N<$g57{b{r~^~ diff --git a/lib/images/mediamanager.png b/lib/images/mediamanager.png index 822b8458aad4d10125fa0c5201913b59d6a6b07b..5093381b62b3262dcbf8e4b2c031d97954439c68 100644 GIT binary patch delta 430 zcmV;f0a5<@1IGi9BYy#oNkl<Zcmbu8zp5HR9EHExoxLD&gP@3@h>1cVrVL0B)5He| zDeP~R7qH0_q)VB=eG5w)OCeoSh{e5Fq!Tm{7A@RAW)HHmgb*-(aM)q_ox_=(S#vxd zxduBLjh+HMz~?do;H!<}_|<qk{!pz}yKx*5MRBT-Fw{CCNq-VfC0&fMNY>u4-EJ3m zcb`7mbl~xBx9hG}D>N*nq0+zBQg<?$JhGnWCBxy6|6w|v8k^QMN}SDRR4NrVn++mc zH=9jd*QM2Jk;fQ=yb5qsYcLq_C+qbZQ7jfUOdiK^koO#LKW!n5W8er+-aN2aEXbo) zV!z+h>-A0nVSgApO8@+&#_esw^ViP^e{D$L)9G~h8>Lc7X5_Vp!@*U97u|clf4d>{ z0)n3hUcQZ3E|>Z5k#9hH?8vJCZGm^=2lA*vyWJ+ER;y7c6v&WA-gATbd`?EWT-HT7 zKO2n(K@d={*U7Nfo*JZ=$kUPZ`+Y7!9(j%L`|n-XZ6|U$+Qtt96aXKvTt);0SO3nx Y0ir4MI?*fKwEzGB07*qoM6N<$g8m81EC2ui delta 482 zcmV<80UiFw1N#GzBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz zok>JNRCwB?Q$1_KKp1{6xd@@A2#N%hV5?AQIu=3^yVM_0I=DOa4`k^t=+?0X|Ak`~ zN1<Cg1P8^Tn~)Sr&>@$^-g{|NLrXzDc(~8!x#zw2J+fY}VSk@Sd%fN<?=22(OK!mN zOyfAdux<OUTCJLK96=Pt91Ix4aRf<{Kx$G3LZ|?x1@L{}9Sk1sDL-(yTrSP|d@c?n zxTwH?V-9mT93D_bQIc-AyHos*;}FVi5>y<GMo_6#!1Fw@`8_ra17ul-Mx&7<6GAXV zAt0fxPN(zhhJVFkA^KvmDBfeUNs@$XQYJ8U(i@0G0QjRFUCqFC-5d#BVOy<MU|Ciw zz!;NI{qaeMem{ZJ%M)N99?t@UR;%@A?4?pkI6^KB!%#*CXXX@MUkbpK0D|`r&aWew zOeVSa*mS_t4#-6T5yFi<%iV$wn$2c5*L59KRn6weL0fL-U_2gYo8@vD3nlC8^*RJW z0JU1}r-Ug@9q=MjFeUAFd#f5ij^JvVcFXf@>{3YF`5Vs}s9zt6Zpp{O2*|$Q`BQ)a Y0HP`LI>2D}HUIzs07*qoM6N<$g0_;>&;S4c diff --git a/lib/images/notify.png b/lib/images/notify.png index c18ef1001be7f5eebc88ad22a3b60938e1860018..f6c56ee5524600c84180cb4d051fdd1dc96bdd1e 100644 GIT binary patch delta 679 zcmV;Y0$Bav1>XgbBpaqlL_t(|+Le-9NRwe0$Ahkdf^G_e9lqK2S&=>@e{IgG`;bm! zHc|7qsk6DI?O^jnQycm3Gw8!Yk}iJmzVQBk@AJIxvkAa|F`^}PgDOGLTo$5U-ESPw zkUOjzGK>yxw`v6W4qYUC%}Hp<=LI(u*jvaKbkI4hCg<o|e>n9AV0yw^F%^rT$|ban zV4a{~R8KB?deX7vHDcM*e~Q_z40yE(7^nz`CXdMbeRjR@IY-Aq_=XDb-K)o3_XYUh zCc>i@!rc@Lx8WG{Qo_mz)&zIav`<-5u;8f2lIs=bEXkO8mw;*N5PXIxcy(fUji=C6 z!VfZnQ5`9ugHv>`E581_2+msY&HeyBlLQ{>2qv3jF;=$^E~N;be<r$$)|2RX7_!U= zhE)QiukSpT-EssbvJkMQVX^-#ysr~5+7N-EDj`0WlW-_Pf3-2CKY^wk!pR8ws`-=i z_Uo9pOYxyrgx-cQ4A#eBjK*V#fu)p>?x(xqs^i1gb{rGRc+}tGDj7lNvyjRWT|E4@ zTnsdxf$n}BDA`dMe+zl|q!h#78je004|X{h?v^C<JQt$&21oM8Bfcr&nR*nFbQL*J z-xed_D8kp?EEozz=q%=7rkSJ#1SVGp=nl`n_Scw2+asRMTpa=P%ZnJNG7%V;VnlZd zrK#IM-P?%;jR4NZ!%*Dh4*o4*pa-OpD%p>=qBy9tgfNvSf1>R2Ry<DLf^HcLc11L* zudyfA6ELW92#G423llwYF7s)8c`t!kz89bMd(c}hM&%WD=f4CDicGFlk--5~D1@yh z8n&t^XtP66mdcWDBw(mX=WLc=W#?9;u|2X>)^uqKt6i4DBG#Vy3F=?I9>eo28~^|S N07*qoM6N<$0fG`zNu~e* delta 680 zcmV;Z0$2Ut1>gmcBpRnlL_t(I%axK_NYh~$#)Ynef^G_e9c}wtkv}AVIp@?3=`>~& zHIJJ*n_JorHcvFQkx$<Ohf!u-Jn((+KELmM-|q<m5cEG9X`)nva<0!%8m#c&H#R7# z?ItA^N{rh~N^YK26#;j1B3km;z6}AE7V0@M+J+U>9C`J-O}!ub$Ltk-5g+m#R@1rw zV&smhsYPc`8kSsIEIV6&G24|6S5rI&%EO?{W#z8c{>gmS+HnBxp?rLEsWI1m9-cP| za4L9kG{(T8ISRFiW%><3j5~?ir;N#1u-0M8{t|P>B+R^x$F%Ms+?q(ZR06oPC(%{R z@dW^*DvC>tQ)Jc^cmEyuW{vo2xevEq2&e8aCYxh0R=XE=86VDnM$$#=33NONUJd|; z<y@`1?;MsL5_l&v;WedVvHuKQui`OUAC93)9zK*&uu4OIjxnV^j>c@3Edc1N;!Mt4 zu3_FH!uuLNdh0_mSQm{kBBv%A#u5&?pX`FYmIHU&F-*wfP<N9l3jjKw23L%z;@~mo zV4&eNRQF<`6CZ(pwt$U~G66iTVdxXHVUaN5Xh}rRGahQLGlah^@pUm<-y@A6U1URX zO8~F65MO#Tp~>f?vxtG2W{Ln<WFI6zx7nVxzZN*OJ!G2=RpBtaxPWn82E5}UjHoW6 zBxNgfcXwbx$%U=q5TrMlgMS40MFP^GE8d5;!dNIWdC-@CC7|@u7CcJYjBYUv7HJf! zuF@yg1^6Y;W(nn4Oz27C?1oeL{7wjiWDh>6ccZsVfQrlX&c6ayCCy-pr0ERk3V1MA zN5NbfiKeU&l%~)`{{-->I*qYOa)q8#o=SI$Q)tsA$+UKHGL5yi<_GFuz8;)N=XL-9 O002ovPDHK)LSTZq_&YlQ diff --git a/lib/images/ns.png b/lib/images/ns.png index c35e832da26a01c0a1a54ca6c88b8ae9423c8b00..77e03b19e838cfc68ddc8b25e8e05015313b5ccc 100644 GIT binary patch delta 776 zcmV+j1NZ!(2A>9yB!A{fL_t(|0d12_XdGo2$A7b%*_lbRWV4l|Y)KUQ(Z=|Z_Tr%y zFOq|ZO{s+lLIn{)K@Xxxsh-S1C`GUr74aw@JQYpB7DADhVA>$mh9+y8kEEOKrl#4Q zo$vR3eNMe}A9&^&W}g4=&mZ2`GRDxU?*8`12wHz-v?&^`KYtxQIW<RzdIGR8b)sKH zABpJ0-TO|KRJg@|%U6B*_MK7s!gCW>?{@?&ULLpQ{T&g0R@^(be_;4ca$4cnX0e?- z_3AW_)^D!J|MSv6j-L55d<<B)JU)gt=bXOL;{%6J;r1N>laOsMa&LN)!Do+=>wcQJ z-QYp>CauQ&jDJyT^5}arm#n)}Cw@ZfGf(ZGu-x+VM6E4$8uO^cCvDeote8DRhalP} z-!nwcEz+zlARvP6m7lvL*V_kQy=bK(^lQ`Tq=^$W2%0sTYa1M$_!isS1?^=_yNcCZ zV0YyOddqO@_odTalBaF3dJC>Yu{=cBxI=eeiBg}3M}Gj(DyV|Y4G7l=HfQjcuj4** z3NddBK!XOX0(S2KY^O+6pGEt1>^xY(zmPK|n^$NxACY+_C^(ojL$pW)jR8P`iJ@y3 zZvPRof`=PDL~s7VPTC@Kdr$(`K?0ePr~*)moIC))$kZva0Rrmk*-LTHK>`~R$0dt1 zRFt5Ch<`MQWi>_21)#N;vu((GU?R}5v`iI(TS3f(rx0f{KPL4fi8>-e5UraN%C)6y z-w<xEf>RMtH>d;&31}G_aV8T$zA!}Zq0?yPQJuYk0A}*<j}QJ5@2sqCEnXQ;!dAIB zaG0Fe54we@Xw`2^UYDN1*Rkv}>$m54aBq4gi+{GhMC(r;ALUy=ywoqmkB!nFR9+k} zRYqTfG?KF*PLiW`=N}%fUiW3^d+7_uzgXJnc$xmXcw|H%XJzTFeXqQ0h4p3b&;Lyp zuK#MZnSA+Nb*|H8dZKQe9~l$K=V)D!`Sr20i<jt7{{!5z!i}8-PUHXp002ovPDHLk GU;%>4B75Zk delta 777 zcmV+k1NQu%2A~FzB!A~gL_t(I%YBneXk2w1g}-}e?#!Ju!%U`<lqrcqpD{ktZd}yj zMzRpGDYX!xP(ehfpbJr?R99vplp@%TintUPu8O8$3!z9uFli8KLz6Mhvy;qBn`Rz& z?(6^ixhQragJ*sCHs3jxs?sTUe|cjFkuOv<t0Er{o}8HL)PJ-73s{&q(W{~#sL1=f z_npj}c8!P2*PAN(jT*W1+}QQ|9RZ71M;%ptTSY#}?j70RH~1#D7@Fl7oOFUpX_80l zvnwicQANHVKKpz731H#s=m?@0(mlh+`wpMN?KuD%5^pbZZ*rXeXOCfbJx$Q6vQ?U; zQJtSwW5$oZJAZw}x;t^=2Sm<3wSUZV3(w;>YV1_!F=3OaRVHl(>=`%&{x*s30c<x* zy}ZCyX%=sL<;SENIdkyU%U0B=(JW6QVV$&B#jBU8uWfL2>}#CNE@&;ItrAv!f!)Oy z$Q9t$uS=(sD$-J{T*^(8Eez1E-l3}}PrfHZ1`qsIFn=lVH=w<Sw>eF7`6li&r%)rU zq>6w5RthI~04JTrugoCL3Qhtn?{Bb`aPu0C`Xk~@9#UyEict}gYJ|rg3}^t!UAVnR zh*KF{{{gc38#_^h*zLxovxpZ$tVkH6#$c;4kA<oMi9kHifMoYxvU?8VIS{5@;vmNO zA;$BGyng_RBGd@BiezlZfkXz>2MIuYFl}&)#0nZ1#0!a=0a4S($qivEsEBK;ksC`l zzM{Ro3h5#wy1;~>5g=$J7(XQTLK3L~a)(YMCPQgv3Kf}7yf@naQ?RqLR$II_7`7XQ zY~Nw*OfN_SVvk1UHWIpY_rH$i6j;AK$JV{cm4Dc;eU8XSPo{k9yO(-Z<U=)buK40; zzBv3EL_YPkDKu8fcmCqR>dmH#e5)dtj(@ha(eX@wTs|_SM$W6qTl-#l$7)xWxj+9W zaeMt|6&-*1LTT=Q-}rB)E)I>T$ft;;ROHKJ=NGSZ>iq-UvcipCCjH0&0000<MNUMn HLIPldJy>}? diff --git a/lib/images/open.png b/lib/images/open.png index 5f2d408c53819c8d9519ea9230c119ae0303093f..b9e4fdf97c4cf858f46f75139335b8036c248b31 100644 GIT binary patch delta 58 zcmXTRo*===$jrdN@Ndr12@@5SG=x1}978G?lYg+cnDU76F!4ArFvtlp9X$2<!U3Q% N22WQ%mvv4FO#tRb5cvQA delta 69 zcmV-L0J{Hcc90ke2m=5B0P~Ee;gKOCGagAqK~#9!WyY}$000cau<-xWMIf;>i-X#v bxRBv@1M~nGOVFGe00000NkvXXu0mjfl5HBV diff --git a/lib/images/resizecol.png b/lib/images/resizecol.png index b5aeec0043800139c75cb212e0c31d5c14c62b3f..91ad7d15a1533bf49711a5fc0448e0f42f338db6 100644 GIT binary patch delta 80 zcmbQoIE8V71SbnK0|Uchagl(Dism-zo-U3d6^zLq#@@*u+|3E125Z@l<nbgXCWai% jNla2GcKoJL5GBRH#iU?g(iHL+sFlIf)z4*}Q$iB}WLXyH delta 90 zcmV-g0Hyzw0iFSn7zqdi00006=lM~QAvZ=bNkl<Zc-qa*(Fp(`3`4<K+qeJ71}Y-B wfCO^nFM<h}x`;e0nnZ>333847tl<S<0nCI1AC3O=-~a#s07*qoM6N<$g6E<mLI3~& diff --git a/lib/images/success.png b/lib/images/success.png index 9241adbb2f94a1f792e150f0284806149d4ae5e5..200142f94d0d5a125c449902f696e3949b675fba 100644 GIT binary patch delta 701 zcmV;u0z&=R1=R(RB!8SqL_t(|0i~1cOH*MS$NM{WwjEQDKt>cINC>r8K_anfHWc%+ zEKPU!qIAxTVKXht$axtfrL@datIavJsZ*O<Q_93;M+q_arVG`E(Z#+!oEL{8?Ts%! za5$XL=f~lBetQ7yiho`d1`a3W%^YHKe5qXKlLJx3s4S}RB!6)VcM_A~+?Vj*K)yds zsq&>nOg<HEg>C3x>E`KLYC);zIOKhFMBYm)w+)b~%B+dx*tK~x+-n1Hyt)p{d=&`% zvumv%O|#WF=#a!x91`VUfm~l|e3mzPgUI}cwV`rU21{X>Jqr_|f>0AU2j`pnxHMe} znN7SQyCIGj0)HxRGOHWU<|h-G7j^#A(99G;GhGP%bP>GkLty<{xJV?g_b3vtidi9$ zIV$72!Y#0en^74kf%d7Ihy~D25qt%hc<TWGL}Ke`f6)ZTd=ugt#GDW~=1kmtxOxY5 zAp?y5Vz}1^vGj2Py2&DpuMhL`&#fP5e|{P4WC{AiU4M|8sZAjue?V^ztn|Pf)S)hD z#OH6Hc<IB}cY<u2Yk=O91IBv>1L00cYyS-N(%j93W^^oGfoVz&YoG?P?_YR%>(>@+ z&n}|eoecvCw1(=@;kSaWrZ^#xc3aA-2h-tPy@#4fHT2$7sGq68^7}=!&o!cK=ma#b zlQ6k+;eUMHgADr-&{Y&G1XAph`2FN)tUd!Cad%NQmJj1dE_A~xXk7$e&cWm5ZkUHl zAk~XDXgwtyBTrJZSQ*zy#Vp=(xJaZeWCb%;jPoOEw2@zM5}9!qLsBM+5m~wIRo>eu zR?-$KqUe;PBWOk6OFQ}&?6CPQNN-JpR3nPeIyPS3d70=7;slzd7`m3?q()IxsuM-Y jM2^7FWz-JKv<rR%XV9$WAmsJ200000NkvXXu0mjf-#Sju delta 704 zcmV;x0zduL1=t0UB!8btL_t(I%cYa+OH*MS$Nf8Y&US1A31mbef`m|e6(kZnnhnLg zEKAefz0x*g*i4Hua$d$rDJ`?qYI9C)>eS}elrnMIQ9{hU=|Z((bg^&e?8QtHBYNNq z4-e1h^Lwsw0OI~9e+(4(4vBK759+f$DNM%W{bA{dI4pG~GJjHMqCVZeSG21j&znli zJjo%QM~0h03;LG3qUl_0Mv3bfB)wEf(nHZZ3fQW2=6F)%>YNeI)qdDsUV~|_G8(S$ zSnWgOOcf5;_>p8ApWY_O@uUbd-AU^l%uTEbl%c|30?o`B=-8CAsrH?P{q;RuoT`A> zLavLilfsxl=6_BysK&CQl{uILRo+ujOcz2iRRHx=A>3<&FnE=4u#()KBS^SH8e)Qs z5i!#lY=$-1gbH6VluzU=m=EP78&5vQ-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv< zpn=v~#I9rjiy!8pnkdBB+E5h!vH2Zs&o03*QH;J|Cw~M+Vk0Jy+^07Bm%Cx~t5ECL z;?viUQRw}bw=vi<TMxA>8+!L?^and2sQF#cLoqkzo6x>+8M;Y1%)V+wzI~3un?E;U zd3ph5&MatHK}(<x?OrpeDq?F3ska0M`9K=%D|b;nA&1(15_Qw%SbDdBw%G=h4jzZX zaRNGL4u9;gx{+=@462gYI>clvU$~FG8nZ`(hs+&Rj^;r-oCDR63`z$V4$j7-r7jqU ziXl+*)+se1-1d+Xn@BpofryygWpJ>P)_@uM(IT81mZO#3f}Mr+&LZ$jc@Y+-cYMlw z8c3Ql5g}=Z1nqt^dS6)4J8y->YeHH}Dg+8%h&fUb^sb+YI!}ry1EHsC2u7ggg#{{J mn61dL(Nm>_=&!%=U-JuR(5&Toy3}I;0000<MNUMnLSTZEqEM>< diff --git a/lib/images/toolbar/bold.png b/lib/images/toolbar/bold.png index 51ddb8880ea44c574b98c851c79d84d4de316ecb..8f425e9d0e251c46333cce02b241289717814797 100644 GIT binary patch delta 49 zcmey(_>*yh3hx0=7srqa#^fLV3_-pVjn_-2#RxPoct!oGDix}q%K!wPu6{1-oD!M< Dy#WyE delta 51 zcmey#_?vNp3jZNb7sn8d^T|KXH^>_WcuzE3FIg4yppC&R>Q9yMgs<@oK;Y@>=d#Wz Gp$PyZVH5NK diff --git a/lib/images/toolbar/chars.png b/lib/images/toolbar/chars.png index bad37e503ea9e21d5f82952bb70e811d94959898..a906bc86142d6482ca6d86e4ae0d88deefcfb5f1 100644 GIT binary patch delta 467 zcmV;^0WALT1MLHlB!9F?L_t(|+O3n@N&-<7hI<4bq5CMLx`~h`FevFjXDZ50P?VI2 zA|WwGcEq9}vjepu%BUdiKv&f~!hn?MP?OH!3^S7Z5mr0MxoEVD>f*oI%=hhC>t`1M zz@PH}f}Vg_Ja!-<UqpTLoGa|inZnLqsBgUi5w$F*ihmUJY=4PH|6K;J-ez#ehCt=c z2}pS_RZL$f*fPf(^9s7R1cRS|!TT(9tZT3q%REmJF}P1<Z1%hubb`(e!M@L6aD^1M z(7eODBD-><0_EcDI>FSD%<Mg8f&4CANKotM=*24)+E$Z{PB4KaCiswrMju~LU~+Ku zd{`xy5P^P#6n_fdzeCri5H2LJcwfW5u<|(q(g_;8JhgP40cS|YKkNWIjwL7`eWvo( z*tEc-g@^(*PHyl!TsamSbe+gxvL{g98oM@A3;~VxULK7frg4=mu2oer8Z-0-1YA8G zM`hM0W1WZ7@4yw3q1v9HtES>q`&yE1^(VDDn-_VOEKHXz9f(pT{ZZPwErL$qIFVrb zNCF#5!z9W0L0bE0WLJbC66=l#0|f5>5}3{A-#wrlO!9j;mk-eJ%kRz1ZI1u|002ov JPDHLkV1kjE-e&*+ delta 470 zcmV;{0V)3N1MmZoB!9O_L_t(I%dL}JO9DX{hW!ctgzlq|>Lw)Gz@Vf9ovA20K~Yg6 ziG;)&*%1o`%?{K+lu<!;qAP2E!a`K&Qk(ALF1wQR6TU`BgI2q!F5a7Ao@Zvhm(c-$ z?k~~(yP!KD7LD#n$bF%{IZqXK_C#Ul&eXS_fQXt`5=B1>x_|wm!E>9!Yd0y}?iHx) zIsqxyxr*sC1)Jx2Lta6bU(kC97>uN$ed7zx#=O8&L=28&8JnChdX1pND_D0K4EB)1 z7JBc{w#cqtt3cT~t41(&ATvAnX&~373khl*9KCd@LhD+b(Fn$o#02ls(BS3^3aV@z zy%1K(A$bHH-hTuNM&6;*Cxi<L%&yn4JFH}$fHZ=77f&r;rC=r`;~!>#ZHE$+jXY6# zYiwNP(c*;y)id0{cerBodBA=oLzOj#^48etOE3g9)VX*xwx7h6lhIsN<s;Af-hhCO z(@|7vc{J2IIqeMWAsLL;7+pCPrP|ixY>OwJtFvi|XHUs+*^>STs<`igwrq-^5!j9- zm_CqT5+z}RWNa^)+cdl_!XSxdON4#`_k9XXCe!afQ3n3CAPZ;m0nqTv@8ia6sQ>@~ M07*qoM6N<$f>i_J2LJ#7 diff --git a/lib/images/toolbar/h.png b/lib/images/toolbar/h.png index 6a48cbbc0159248d72c70947667fd0bc6e64bc08..7e43d64218ac93f38ec288f8b75095ef7a130d55 100644 GIT binary patch delta 191 zcmV;w06_nO0)YaMBoW9-L_t(|0b>wuz8%Iu0RS11H7b9M4b_kf#O-Ke5kUM6h*_|? zU>Ta?0wC^26AK37Ke)WG4NY++5Klo93&Ur?F*L=EKztC0TY$I=h$jN^PJ9MjL*_#@ ztw0Y0d<Hy6=0ih!6DbCKM^iix<YY9lC?Nie%Ygq#3N3;71`xjlVt1spu^Nc~193Je t9bg(jCU7HharqB6fLzUR1IW<~!vIkPf?0gbp~L_H002ovPDHLkV1i~PM+N`@ delta 192 zcmV;x06+hM0)hgNBoWC;L_t(I%VQ93z8%Iu2>=?AH7b8HAE+P~h}+S`B7pcC5VK%& z!7?<(1wh=5CKe3De{gwW8=B%uAfAFI7KYD&V`z#Sf%qU0w*YY$5Kjc+o%js6hGqar z(+VtMfYX5IXo^9hy@?b9zN0Cg2XZo+SQHTd#bv;MB!!khd;^GI0<k+%+E@+5|A9Cg uTRQkpZXzUfadG)iwgDi`WE%j}48j0W1cF)Jm<;X!0000<MNUMnLSTYjDob$y diff --git a/lib/images/toolbar/h1.png b/lib/images/toolbar/h1.png index 85bd06e6cca083f1fb4d2a05e8dccca58d2ef20a..9f1970f4eeea99b611e81d1301c871bd88e3de1e 100644 GIT binary patch delta 259 zcmV+e0sQ`=0-pkqB!A{fL_t(|+NIJz3juK)$MG8sHiN~$;sMw^2Ah<+BqbANU=m#h ze=^A=qfyDABoBebD2q+XpiIg_=RLT(zTNLv*L~|%=hLT8r_P8DE~XLW7$^iCs5;M) z`X+%KN=W^)I2xFsg0LKDxqnkAqa(6B9te58!AO)Vutb){Q+)LoW};j}Ut~GFR09i9 zZeocRx)@@Ok7{5i20ECE%+w9+MY)H$$O^iFvnY?T6j>2p)xh0VOyh_vGXE@z6>QX9 z-$B(GcpLsMh6N7JfNkjSgf`@Dy#{QB8`|mt{oP>c-@wPofgcpSgu0EHkFNj#002ov JPDHLkV1g#>c0~XH delta 262 zcmV+h0r~!)0-^$tB!B5iL_t(I%VQ93z8%Iu2>==pL8$@hFgAboCRrd30OA-R)`N=4 z0C7GL_W^Mt5Obg#P=?G0Du@T-N;I)xAbt(REZAJohNc)~OEsF99}vI8<%MZziZg(? z2~7;-tuMF?Scay!0EkxtaTyTT0&xovuLt5kxD42aW<VtnPk%uZ3&Ur?F*L=EKs*mk zECQba*U%LAfV_Yv76rtAaT)L&Nuenap8?`WK<o|`Qv%}EK>Qzwvysw4I?RCYB&IzH zAO;2eahL)B323+i#1&Y?w_r2iKMwo^iy>Qxbpc3oHL)%r1%M3z02I80y1vwc<^TWy M07*qoM6N<$f}(F^@&Et; diff --git a/lib/images/toolbar/h2.png b/lib/images/toolbar/h2.png index be2c60031b0de8e1e1a19a50a40f5a136c20ca6b..adec9ec015d7ad0dc469484f0bf2457c0f5a2db2 100644 GIT binary patch delta 292 zcmV+<0o(q_0>1)~B!31;L_t(|0j19`NX1Yb#qk>+__QckwO9q)D`GNelLx}%DT*v9 z4Ae9nL&QIr#G)7sMsXN~Ar?&rlTj=-85jhUU{U6Guy8qe$7DbFgnKv~HZ!>U(lK?8 zfo|P_Wm8<gpA4go1&kHh5Y})A4^15i>^Fragp$qT9gV-fV1HlA9wNzR@ZtJ}6DhA? zN3u3PT?6M*UPp`oo7lq@zFh-1G7#cevQF8+gOs;%CRw*^;91HCh$WlHk89w~Dz@;5 zS4<b#2riMq?`h2q5O3iW6ZycG`QNQ#5xuz22QpKBPuQ^Dqv%5ew>pqHq%ty&1d~<1 qAVp-or*MQOj2#SAx(nRlI`<1Kfru#{A0#aR0000<MNUMnLSTZ+41Ed! delta 301 zcmV+|0n+}z0>}c8B!3S{L_t(I%VQ93z8%Iu2>==pL8$@hFgAboCRrd30OA-R)`N=4 z0C7GL_W^Mt5Obg#P=?G0Du@T-N;I)xAbt(REZAJohNc)~OEsF99}vI8<%MZziZg(? z2~7;-tuMF?Scay!0EkxtaTyTT0&xovuLt5kxD42aW<VtnPk%uZ3&Ur?F*L=EKs*mk zECQba*U%LAfV_Yv76rtAaT)L&Nuenap8?`WK<o|`Qv%}EK>Qzwv)N4}1%Sf!Ks*bG zZ9oQmCo%2i0dXu4a{}=pkOBV*Xt)Bz6-az-Am##MP@>w6Zoq#W_z9XJRzSQ7h@FUW z0Z21)%5($b$tFO|0Sm<cB!<BXAl?JSTR<29EP;qAS&V9+00000NkvXXu0mjfuR(L2 diff --git a/lib/images/toolbar/h3.png b/lib/images/toolbar/h3.png index 350da88b698c9d90a288f837d977122787fefb27..a758b89145909153e993029332fda2fca2a71eb6 100644 GIT binary patch delta 293 zcmV+=0owk;0>A>0B!34<L_t(|0j1I}OT}Ou#qlR7*t{T!L5sm8HoHNv$w0hZM35zg zfm$36S@3@mlPCrSL4;ut48vDoGK$3}1A|}^EXw>2HW&w=vCDq&fqM^!!v-@0yRU82 z<QV8Q9at`Y_j~svaIlDpJR8Ouj^UzD2mJDX3QGtio5Kfs{(pOd11Y=Ml57^AwpTcn z@(Ok&bMR#wxRLTYBKQcghdcb(24Wcqa3Wc|YT!}I+qjghQ#J4+<s(FrE#TKS@LnoT z;t6k<$+J=1B8AsGHZ@3mh%=051K*~*3o(rr9<qVdRNpf;QQQz(aB!sqsYRkA*uX`d rCrD8KGFMT2(jKu4)Vg_GV;|>#1NMiY_`3|F00000NkvXXu0mjff!u&K delta 295 zcmV+?0oeY)0>T22B!3A>L_t(I%VQ93z8%Iu2>==pL8$@hFgAboCRrd30OA-R)`N=4 z0C7GL_W^Mt5Obg#P=?G0Du@T-N;I)xAbt(REZAJohNc)~OEsF99}vI8<%MZziZg(? z2~7;-tuMF?Scay!0EkxtaTyTT0&xovuLt5kxD42aW<VtnPk%uZ3&Ur?F*L=EKs*mk zECQba*U%LAfV_Yv76rtAaT)L&Nuenap8?`WK<o|`Qv%}EK>Qzwvsu*~#DK!>Ks+6Y zbwCDuCo%2S0<jAa3jpyBkOBV*Xt)Bz6-ayusOA75UWjhMe;oJ;7DGybcrGz60BJ@} tnR!4AOVZnjF(3dPgaYvrAZ`WXnE(U!hoBA<0H^=}002ovPDHLkV1j)FZVdnc diff --git a/lib/images/toolbar/h4.png b/lib/images/toolbar/h4.png index bc1b7038f8ad49c4bc29c14e7a8d11cedbd6b254..9cd606133e866043fdbbe670fbbdb46eb5fb45dd 100644 GIT binary patch delta 247 zcmV<T00{rK0=5E>DGYc4V-Rk>9mYTb02z@rB7X*BLp8($aV45qFc7~6Vis&JXhY^h zZK*~R^8?~{xV$h8O>qVgHzA8bz4Zl`0n5-77Xa}}AT9&qS|Dx#;`KoM2bTfc&<v;q z;wfliVfYL<hNid?i07e+Mc^~w8k*uBkQdOzqJa1>E(4w;DKrJ*GeG<Zh~1%LN<h3C zh+zK%aW+yq@Bv~|kOAMxNPlubd<%#JKnDCLp!f<9S0M43fp`HB7h*HuKMwo^$&e}_ xwglo7qFeygjGQv-p)NQI#QPuykO5#W003w^hv;2i$8G=s002ovPDHLkV1nl_U(^5q delta 247 zcmV<T00{rK0=5E>DGWHvV-Rk>9mYTj02+}sB7cU=2P%jM;z~5JU?6@C#4Olc(1xZM zWJ@)gm>&?o!{vo(Xo@p{xCu=R<gG8b3|NMyxB!S(0&y7-*8*`15U&T~Ke!CohGsw| z5Klo93&Ur?F*L=EKs*mkECQba*U%LAfV_Yv76rtAaT)L&Nuenap8?`WK<o|`Qv%}E zKw$hIh_jK>fe#Ryf(-ahM*5Qj;#)u*05ae|0mWB<xB`jK48#k7xDcBG|8d|aNQP7a xu_X|v5bFYvX5^Gv4|Ty&Al^re0k{Cz1psI}hv*f|bNm1R002ovPDHLkV1mbPVNL)5 diff --git a/lib/images/toolbar/h5.png b/lib/images/toolbar/h5.png index b6c263dfb347a14beef7e4c5a61acfd03a7ba135..86b725991665a71b03e6ec456f481ec7f8c50625 100644 GIT binary patch delta 291 zcmV+;0o?w@0=@!}B!2}-L_t(|0j1BsD*#~}$MGlWy3N4Ia?Cd64<K1|rOqX#TTrK% zF4tx7BL*^Iv{84bl)+yhlTj9%t_;egEOg#ik9zv%x#*sH)jgj+eR@vy?>q&n%V8kw zI<Wln-4|aE!N&qdbvB4K93g@$2NLs6VG*gwX7P&N-(IjM%6}0uk<H-E_6w(?yn=0! z`FOVtT!`{IawOQqF0Sxt8@LezDUL-Jv<=*e@)piS7PbvMit-_Hk<H`FHt=E;$8e8l zOzF%+i5hXwfHy*XsU0)}AL@T+8cT5DGy}D2KM&Y2?yD$qj!8LCTU5r#IELZk_Af7} pkQw(0IQqM=4;<Lf9185?<QsA%hyOaH!`A=+002ovPDHLkV1hE1i8TNK delta 298 zcmV+_0oDG#0>uK5B!3J^L_t(I%VQ93z8%Iu2>==pL8$@hFgAboCRrd30OA-R)`N=4 z0C7GL_W^Mt5Obg#P=?G0Du@T-N;I)xAbt(REZAJohNc)~OEsF99}vI8<%MZziZg(? z2~7;-tuMF?Scay!0EkxtaTyTT0&xovuLt5kxD42aW<VtnPk%uZ3&Ur?F*L=EKs*mk zECQba*U%LAfV_Yv76rtAaT)L&Nuenap8?`WK<o|`Qv%}EK>QzwvzbJcRDi;3ptu`k zz;_bUo+l8e0Wl~+v4ITuPe8*JAg(~-=K%3)AYKZ@uIL8*$AO<98Das%%1{>^A;twD w&B!U!1?+SPSR+M@0q7tctdW7C9f+p_0CFUU|2+W%#{d8T07*qoM6N<$g7g$~=l}o! diff --git a/lib/images/toolbar/hequal.png b/lib/images/toolbar/hequal.png index da4e921ff33cec7cc51c121ba4608110f124e1a7..869a2ddb3ec95fe06dfc57555f935dbfe7e9a528 100644 GIT binary patch delta 279 zcmV+y0qFj>0<r>-B!BryL_t(|0lm^8OT|zehVc^&YX-AHF<K4c2N2XCiZYgl2!ay? z6@vzYB4QF0)4?=Euq}xD0)7M$OoAdy#uat<2`B8n?Ci2~5B$O&{=6t$Gj{sEZu;K} zcBC!f(=<H>LP@JQLyT?g!?q1<Nm|3Mv_*XR1`Z`fIFPo4!hbh#E@=bD(w6b#8@R1~ zPT>kEW?UPGMTrD~4&0lrPX?Zhd!tD<jXfM;&b0}gz+w}D4!qRAIk-S7Eyh1an*M@U zIljb$v=G0(f8kq>uaR{bDCOAV12;8!+d$PY@GLDH>cAaxX%YSg4sbM!Hx!t6Z4!^D dkm&EA2gc5bc@Wj8y2bzi002ovPDHLkV1iiFdUOB) delta 284 zcmV+%0ptF%0=EK?B!B)%L_t(I%dOHuive*M$MHEhxH&jGtQ=h(<OL`kwv|nDl9Vz^ zp*`##_OP4ev_(#G(zfO1Al`tNAmyY;PL3`ZUo~nxW=QK_pPKpg^y~Rgqqx7Ougdv( zL0)7L%oVFcK~h9<d?SS%N@!gx$ciX|g2<v+*cH5qNJUv>F@LP=3MwK><3nW6Slbme zO|L%upo4&sd5mwcfd;26_*MRMDCnP_U0TnNBHj@)vL}3^g$yn>7@6N0sG=jX6!vgf zZ7>$YHT;PziLKogmSVV$-aQ2yF?_u13=NavwF2FuU~ta{4=-pRR~DIy-OU1qf|y{1 iu#tJug$_;r2Neg#&WL&Qi@!Yp0000<MNUMnLSTXsx`Jo` diff --git a/lib/images/toolbar/hminus.png b/lib/images/toolbar/hminus.png index c00f70223fbc8238a1e5722622bb43dcf05f348b..1a99ee4b9ff8fa620aa7d2177e12347028bd68c6 100644 GIT binary patch delta 376 zcmV-;0f+vX1Cs-gB!5~-L_t(|0j1BsOFCfy$8r7sAcs)Aqe)z}pn^6V`Ui@B1W^>? zBoPD|I1~*@#GMheIaEU((GU%_HAGHrP0dpG&=3@1OQVCOy@e-ueB`9);KkwR&Nuh? z%)FTMHDA+M*0wP`q4gq=)TSA1A&n)hz-bp))TUWvwQU^FUVni#ZAxKP+a^%<3T$iB zJaXDLg*UIjzVfph1)N||Zc#X>AcKG&IQ9MJB5>*TER?xOU<Z2`mRlS)94s^fH;o5| z?FJ3Y9WXb<A1!i>Yi&!ThJTGfNq$MxwB0izqd`jql$RY`X@Ml(zmD)C?>%@m^5QmZ zxs$<l_y2bT6>)j*Mb)%L&9H?C+ipS$JYrW-R0DN+??W9`0*4$W(*6rt12OsM1H%&W zuB`C?D8Sj{e0G8J_jlwT{L0HmC~AQeKAHoz+Znd*BcaXGU**Li+@XvSxy5jfIx?Rb W&cmv?&T-5D0000<MNUMnLSTYnVy-g) delta 382 zcmV-^0fGLL1DOMmB!6H@L_t(I%cao2OT$1M1@P1#*g;Z~;8eOa3M#nO!GAzeD~O_$ zPDKR42ptp$i%6~_xOGqmTf{*ebaN1$+?<??-r*o9QWwV#YU?|=!u5-hiU%JqdAYpY z#c=Xs-e?{(utKs4cs70-C`gfL7PcV+%diTi-wKvUGzVFdO@G2mP{BHh(y&IdBvgV5 zc1W}UIg(Aodr-lFcH0XDIDui6#neBjf(Kz*aBBQ#px`p-S;V_Yz%J~=sLEVmP=ZBS za4R3!jGMO4hn!8(MoNz1hGZG2L5D0TtDVFg#?MePZu%muEtX%pA_Xb<Y#iZL&3*7@ z=f$1n^C@$KcXzg0P*rn3d^k+hY$k-octR_9f<4W(UQk!_fV`F^C@A76(N=fRD2S_< z4{cw#Jy{X@QvuHIV%r6rf3Pd}7}6FW$t{zDG<-D|Fy3wX57Ee0xm{a00{2jXF_p#P c9O~eG0~yZ4s%L6I3;+NC07*qoM6N<$f|ppW2><{9 diff --git a/lib/images/toolbar/hplus.png b/lib/images/toolbar/hplus.png index 6124b5c33a8274de9894ec6a49c01332d8c68e72..92efcdbd1ead1812d171f3b212d9255c8c17a7c8 100644 GIT binary patch delta 364 zcmV-y0h9iW1BU~UB!5mxL_t(|+NIF3O9D|G!0{7{Y%x4(a>}-drj`iWqBR;qoEm}# zhoB)y5xF~%XlY0q%!)ulaC3;Rp)u$WNbDXBP0?S_kf(iL_(C3e2le11z8~*>d1@pb zv1tUa15~wH23;63kO>LoagQ>NQGq)g*a-;~a31u6{g6Nrmw!Qla!9~IU7Ka$tH5c% z<ptc~39FDRjVAiY$-uSopGDwCeV@v;=COx7mIt#Llu*MqVtU|Vc+Y`D)V0|bdKmk; zR}@jx@>XP^tsOo>Lz`vLRr|OlCb_(kw7o|ec+(D_pfxHG&wJwu%Ud@c(c!Ky10UMq z8eUNu;;KNx_GK1LTZp7Bdfe?B@<R{ccGL@adWygq_dfp=nBEl;(-N~psxtCh-~z5T z%feUtiNZ^S|6z`wbEN|6;1W7`$J$_)MiYJH5c{5&+R=pdocaPE@Vu~u!OX${0000< KMNUMnLSTabjI0a* delta 369 zcmV-%0gnEM1B?TZB!5#$L_t(I%cau2O9EjW!0{7{YEitS$tl|+npz@gi`HleacT$} z9D;@*MdVJ9XlY0q?2SM|aC3-kXbk!T61#_nrsywd$d|s4+!OYccTfi(x%=@vU!FTO ztb$lK{I5NfwOJDF{vCm2Kp=xV6mf_W8iRqYfIt>!eka%s2!G^o;TI?d1PZ8VvlKci zaO|^r4!3y3vNubhh91%~aAo}GB5<wlqv`rAc96lMH=9Bpr`W`}9=IQTX2Cux+H3<| zjC}3OiLhzAOES>Z79XIh&5~%V=ZGyP*t}*r?t=`xYKxCh9~OvY+|iiru9^kWVsA$V z-nGT@U0+Zd&}vYDnB&fyju4h3y6o*4{hyzKn_(y5=y3uk?ECmrU~*f8Oj}G7Da*)j zfpd9eZI(huJ&$FdLwtuBUgz>#fJF;v;SDR^EP)z&NUQ%rG~W!z?5FrAAMm`e+G@L@ P00000NkvXXu0mjf^8c)w diff --git a/lib/images/toolbar/hr.png b/lib/images/toolbar/hr.png index de3a8a55bd0bb30dd5b8fd4539eb41e1b5ddb7b0..40ae21026b052d39594547be7f318aadbcf65f1f 100644 GIT binary patch delta 156 zcmV;N0Av6D0s8@vBoM+$L_t(|0b~6C|33pIfO?TNE(O3=m^e(4XdHMUOCVz8Kf|AY z{}_G)>EFK@fb?I6pMMw_t~~y>Z&|LAGuVK|N8bMz<70tq`uFcY!(Sl&1HwSX5Ceep z-+w?h#Lzo0e=_vM$S}eUz-80#KR~g63_ydxnvns-0LsH))Bpf(+2-K`hN`Rp0000< KMNUMnLSTYz0ZA?Z delta 184 zcmV;p07w7(0saAyBoW0)L_t(I%VYfi|33pIfRSpEG%kP0R+u<c4V7IG8you{kF9@! zww?si*0hO*_KmOh$_TSMVN>w;?|+6r|Nb%j2GYNOGXUwo3_t%cFkE^3ZQrt7C1<b! zi;ukjFUH3L*Yxk-e}=#RKpKG<s2E}ZkpBA*$c7kt=jBg^o){TMxB<9q`VG|a8>s2e mABbjT05=?9a3tlSYXAUl+2-NG&|q=^0000<MNUMnLSTaFky$_h diff --git a/lib/images/toolbar/image.png b/lib/images/toolbar/image.png index 70b12fcc21831685ddd5e3e95e77844a0f55946d..5cc7afa698a014631ca2d5b60d09e74eada54a1c 100644 GIT binary patch delta 513 zcmV+c0{;D~1e*kqB!A*bL_t(|0i~0@Yg1tq#(y`6Mr_k)V{0OW3Q`bTT9<;0i{=mT z4{#C`M+d<{!J(@-=^#i4hf*9J9Ex2<CmRc*AVU2BMOv*N$;~|<$^l;zp`iG{%X^md zd!BpVb2E46U)5^0Qd71(KgV`5^EhgbsG(|cix>;f>H*n72!9UF9>G+>ok-;+Oo`gf zFfmLufEdhAm9i^~oBkW%@18#2HbGwKfV-$ieR@K&ze=Dz8E|(>tUg%{XablDpWl9< zv$>Vri*PgYo+RhtkqYCD14NpBfU8II@~Ou}fPfJ7)y74Jb~gcI;o5EXkBx=9no~*% zoY2D`w|<?Q<bT-<#EA1~V+QNAaqESvtEYJ+07k?<R((yL-DBnZc|@TQXy+{+d_2z9 zw^!k8M!3f_S`;8Xjc@K29d@d5vN6j0?j##uXIXo5gQf0SOwMtpm_Tz4_W^*3My#3I zC#Fa1G|GpWs!Xyz{1T~Oz=+quRvZ-tAOM;G9`VL^9eTpt5bvQb)XPoG6~hAX#o950 z1Q0a>piX(u5Z&wdaSa%GF2r4ETB=&LiaUJ?)ChUT$le;2%0A2pHBTG`jB;&`wYzt4 zHB5~xOS30ix-=c_{VOVc3#8`B{ZCz9T+iZn{vZ7Wc7d0#a~ei{00000NkvXXu0mjf D@}%$4 delta 529 zcmV+s0`C2r1gZp(B!BTqL_t(I%bk-yYgADX#eZ*Ebj4&7&6>C?ga{H46B3(%jg9UH z@B>&0ilv2Mp<t0#th5j$g+&OK78W6CMJp2nq98*21BxUXHM?)$%o&S)+1(TYb((t_ z=ALuz%$X!2_}8e{>zzl*;_S?xg;F2|uE1Ql3v*#6=3Z3;pnteid~Et8a)$^a0-}H% zB7%^R3ArN$2xcb=$<6uA*a3)7FJJGeAkBOiyLnsDg)vM1N`bd*7kf}(<;4o_>V83P zeE;}`#^zRsJ+n4z+OiIF|3I0M+R?U}UV!kRvAM<K`R7DH01`yNt=cvE4vYd~?)C$Y z3=iWjTtT6uAb%gs()N9pw(pT9Z!m!go^4E_#wwu}<|6VQn5heZ+Okg%z9&r{v;6xC z=8zezrgffvJ;T<oceo1)JZCH_zgWx3Of<6w`&^u>4e_}-&c@Ga);`>2p?L|}WiDo8 zc<PvGH-OAB7gLpQOb%74l}<2G9%sG(EmpmXXirDWfq$EKgcrR75V(tx{l`%VixwV6 zwKR&t5h5b^p;f}W_Ai<%A7fBD*hllu6T;hIX=?2=^Ny)1gM;+0PtkJ#B4OZAg>v~Y z%2T6fPXVG-nPKhGL&AkzBuTgT$-?zXfatZT^%%%==AB;k#*O*)B>A6p?u|coftRld TJ!{VZ015yANkvXXu0mjfRJ8n7 diff --git a/lib/images/toolbar/italic.png b/lib/images/toolbar/italic.png index d69e66070eb0fda4cd24a9e8507cc3de86f2eadf..b37dc2d5205f52a493e9c78ed0b207a48aa5418e 100644 GIT binary patch delta 52 zcmey!_?~fs3ja1w7srqa#^fLW|J%D(Oqgi8Nb13PZjnTWyEjfBeE3axGXoHKy85}S Ib4q9e0AoHDT>t<8 delta 54 zcmaFQ_>pmfir@}U7sn8b)5$;n|F>sWosn2D(Rh)Rz&Y+C2@H2{oIYrnem9o^2s~Z= KT-G@yGywpDnifz1 diff --git a/lib/images/toolbar/link.png b/lib/images/toolbar/link.png index 01105b0d37b1d5d74980509d8fec7f5ea88f11a1..3d2180a6378c5a5158a7cbd4fa18df099bd147f7 100644 GIT binary patch delta 375 zcmV--0f_#U1Cj%fB!5{+L_t(|+TD^dYr<d{gbRfZ?H}kb5IP9erJE8O9FkbkMW;>) zp(cyif)bYqE`oy!x@8VR919&XBsgaa#UU+jF4fW&Y)j$ocMhSQ-3%PO+&y=ELk@^& zC+*WfCX+d-R;zcNPG@CV7PVTfg|6!tOsDLQ;2{G8_TNA{oqs-(B&pl)_i4FYQWQnx zc^;Xj`D7S|KcCM(;mu|<0s|JEcp#NZUDfOL*DwrMl}hDa6vZD!QD`t2P_x-2-0+au zw!Hw0&fgbw+wJydI2@{lLg6@@&Az*?OF<Bj@B8F94#7hP1}r-9Kr)%UQB`$48jWsC zrP2e(ao@RIj&O>_;#RofAp-*zop|7keffO;vDfRZCzHv`bULN+cucigjT(){_J)TH z3|MsHfkYy4$ewsE2*R^0%O9GiZJ55w<?=PtCA;6?Ap-*zojv#yd7j^`4DD2gegVqo Vn>i!<c}xHR002ovPDHLkV1g{mtgQe5 delta 378 zcmV-=0fqjO1C;}iB!65<L_t(I%iWSOYr<d{gad^R?H}kb5IP9erCUTQ4r(f9Nv2MQ zP<0VoFzAwii{PMw*_?wA$3h1OL*{Hj9Ma<EQY~%4wiMoeCp5Hc-3%PO+&y=ELpUPh zb`iHn13b?kmrAAER;#rd4u{liHW!sj<(%n+-2psgV8H$vh=0f9hq+v?-R*X1xm;2Z z1T>vaN!Rs<Mx)`(=ks@XuImyQu;_#Xu~_V~R;xYxzQ2-X`7WEyekqDVy<U$rO(Wd! zkXe?s0E^D=7qkt-*!25-HJ{HPB@&6($z(#F=aJ($WZO2uLk0#cI^jSx8ogFkbv+mi zZbVVMPbQO}>2q|N3WdT}xZxoK0~Vcd;FNuWAj~?Q&U!Q&J&ng>GEI}J)hgBN_3aH0 z85pqWgaeUC<bXZ#ER)GR7K_EVa=E-=`j8~)is^#gFYu6o0gKKa{E4YlYPa&g2Y$-X YH_GRmITill@Bjb+07*qoM6N<$g5?^tdjJ3c diff --git a/lib/images/toolbar/linkextern.png b/lib/images/toolbar/linkextern.png index acc0c6fc5c9ed87c0b4966de0eb14543efd37d1b..e854572a9300f0d81fe407cb6e273c7aa6dd0ca1 100644 GIT binary patch delta 879 zcmV-#1CacP2ZjfbB!5jwL_t(|0acUBPh52vhM#j8&J4_Drd+6u1Ew^EDpDoXHeoP9 zsY0kRO{!qjm~`dF^gnRr1~(cL-58amiPgHP3&lXN7^*1-OlgE7pcKl?beO^n19RqF ze&-w~E=YZM-{N`ly^B}!Jda0n`PWOmz<a=HpdL_xJz&;zy?@U>>HX>_9?7Ag0;<3m zaPgHyzZMJBQ`BqFEf9`@Aj?!{TsXp+6vBD^i@|RW4h0q12i)kcd#dN9L?1;%!^C2( zC{g8U?C36@un3@&F=v=d&)pHWc>e3xuJ6eJz*tx9iJoLrH@l97ElUU?Qx;X|RIzJn zY#RZ#_Ixx4pMRtKXj`Xc+E)RT{JG5}@Zp;$&MSX9B{GyLyMhBFSOI+$4OmU>vsWsi z#deS)tDLQCXKLy9V^?O!7L+rWp8e?MrZXLq5+EZB@EUl`2{NBmC>t_MsRLYp9<Ajs z%<w8XH;<Zk=%`J|^Y@mIsKDt&IL>W7P0la#q|%CuV1HxV!Z6B2j(QZ2Ot9t_!1Ra; zjn$k<{}Wx<rg&NfYOB>6HY$Q`Qzuk?jDi&+pLdDW8#Kgpa?Udp%>^`XpZ$kB>=vpC z213}Dh^n6FNs<SaS;QlO>T?*sWg`WGWYz?-7pAGcOlZHCV#>x~t^%%u=OKiUR7beG zMXMOERez#{{HNGRxkww!wDOS08){j;nc)uY*s|c1yGVO;E9tDC*_pezrdL#jE&jN- zyBR-TonSIGL+Q5zx&m>Ahu@}DD$%;Ng*r1!$%c1EF5<89k;!D3pPwg^iJ400@X4LU z?e#Z?jwj_ClT*aDgPec$0`GtPIoGdVVSW7{T7R44n0q;Xo|@v?ch|`48Txw9k>4!% z<S&Q5ov=*%$BCt12<-%jgdzY$&kmv+CL<#wB$G)72L~A#7{D;gC~XD+(MVKQ0c_KL zYkKwe%{s!J<gx(hx4uX6Tt-Jnsi~;}_^*=Z!ov7{edt}PQ>m13IHrM5UkK?b<A?Cy zv1sIrJ^fNVp1>z7WV2aTR#wn7jh2=c8XFt2g<aUXzs2<Q^n?G+xvi~DY3QrF9DES| zpsAtBuT^Q1gv4EGvEV4qdWYydS-CMy(@Ce(xynZu{ssEDq^iav*QNjf002ovPDHLk FV1gcRv?%}p delta 881 zcmV-%1CIQL2Z#rdB!5pyL_t(I%T1HbPaJgshM$?)Wp-gd*z#3b7ffjiRisL&ZNg%L zQiV`snpDB4G2!IJ@E>^cf)|a6UW`i8#A?0NgJK|948;@!rZhqkPzq&tyKLEA7G`!n zelz1iZFtX5p1hYw@;r~D8=V{J0p0`70(F27*azl4*Zb^~o`0`?I?7A`3r6Qge84zx z`ISVU8VlA@(yP!d5RQQ$%XDT!IKr6{!g>9Rfo~2U2}b8e{J@Q_+NZi-O7v1PR7@;3 zN)i>G%AW4x35y^)8FQ9}^uirsi|4<7?fSm_-;?pqnp54$#xC-Xg)K`6AyXC==v0t5 zRd$UaJNtf`LVwTEb-cC1GVQAXO5wtG68P}VQx}y#9E}WR%C6wh2$47alnhu;9k8!y zsIfhy=sM?X+n8SY?ZlP&@g?Ql$g>~4+<2~CQi5b;0bV_iIUyFa3S~oPC3T1!D4;g~ zi5XcZ=N9l49NKFV^5VVKV?N+)A`<7eo+cNNc~WV?MSrlhYhf5=qQ^Z-$0pfui(q<G z3zhYpN#7Hl*rs^e2h>#hs@T%g?3y~^$`cf=Fol9kw9cSDrjv7?p=2(hdIual+#_GC zBoqu|TcX<Md7dPBV3{R668QWM6Sr)nV2I3yK=vXu)|Ck#^iWFK7%X60o8Wl}Ataw8 z+<eI@#eZv*YQljtY^7YJtyNlh$m8`jtlrFUhc;|kaK>Gxt*M1{Ho*MsU0l;E`GhTg zzn9;RpR7zUm6}ES^^neBoS~t&(KL;gogI9$^Jq4_Gklpqg`Z3&!{Xv1(M-%#I)+Z~ zE$?o=F?cd5-<X;vwj1K&tCx8H<IlN%^$MGte}B``6vy1p@$>XF*S@<(LC?_JbAiHk z(Jy~F`0b=++CNUN{6csyNHiP;p!)m(x?wUrJWMi~WME)`{{DUpvy9Se{L4hEWgmcT z+HcLQ-@aK(q=Q@*0R7hYNS@2s*ceq+RRCz3hUdc4#C?76T`E(ll<_F0{!d>B>nY=h z$ZB7)<cr;XQaql(FDqoTS=QFpP*s)Y=4Kii8nA_3+_}HQ%*@OK>1fWat*uIZZ|!L4 zLF9wR`o@4-p-K`GcctZ`qd1%GqT{rLglU>iI-SmGns(_Q`naU3#?QbC00000NkvXX Hu0mjfB;&vc diff --git a/lib/images/toolbar/mono.png b/lib/images/toolbar/mono.png index b91ad2e0dc87b276016b27523da3152706a09bf0..a6f56d6dc7efa6b333ea560b750d50f3da920b5b 100644 GIT binary patch delta 266 zcmV+l0rmc<0;K|wB!BElL_t(|0o{@zj)pK0g;$_(IAkqugGSU~;aA|mkO~r#CI~D? zK<oiH0!Qc(I0AnC+SxY^qDhk)9O5Mt$oIZs!WR)e%3BJSWifX)#LV-&Pt$ZLrT+T9 zzuLCls;V+&Ssq1E?0KGFS(bg=f)n{hq}G}MulyYFFW?`Z0e>67hG)R55Mp%;Y#YpS z97lrLz67jb7CbWyvn}AHY5MVQ0J9v1fnc@;ZWxBy1dj-_?7EI%_6iur+TjA2Wz#f- zwY>s{v39rsW?9!Y;b2|?;4?{*Z~@HweeDC^EFD-g9LKSVqDa5+SALX#x|g8ai;Xbt Q00000NkvXXt^-0~f^da-EC2ui delta 269 zcmV+o0rLK(0;mFzB!BNoL_t(I%iWS84umieMG+_*4vEEW(1;o=tO5syRFIG~L123X z#2$bnaD*O#BjDGso&7`DglrQG4l(Hj^8TAn>JX80rJS1t48vgd8u{$|e(JhzmQsG| zx?an&9J4GlX`0SSl1y<NuTc~|j{ytnff7n70<8Hv;5XnG_kVy5V8cCN9fqMk25f0C zi?(eE=Itk733JFj!!VoQ=s^%XtsTHDnx-L`_5WQNhS{7h5oS?U6~Sx;FpRO!17H?K zQ4q$q0vN{F=K(N_JkJRWvjPAwzVDw0z&!2So^fY!fEB}@=NZ>^)g7PmmHGm@m!R8l TR5_>s0000<MFvhpu0mjfqS$q| diff --git a/lib/images/toolbar/ol.png b/lib/images/toolbar/ol.png index 186f1fad4559771d75dc28f3904f126de1f59f74..c12229a972a9d7e23d6b17ff79d2b4804fb41c92 100644 GIT binary patch delta 275 zcmV+u0qp*;0<Hp(B!BfuL_t(|0b}_8|35_-Oytaetg`6vyZ>Yx0Mbl}0bq=5KzVt2 zHW2?WDJl71P*CtcJ3IS-YHI5LgoK3uk&%)AgM)+rV|BrzgQUBHI)ONM|J(nw_PqWd zG4Y-X*)9m}y{FQ<<t2Gu2<p0{(z)q5TytDpTy{i6#Q(s+z<>W<US9v5ot^*N*x39x zF){hCtE>B8O-&6o5Zl&2|KGUg>HnHlPX{Ov%a=X=U%K@1|Ki1u$#(%rvvuAj@?!y{ z8Rh~bBcp6>ZSDUmDk}fw<mCQ~i;Mpk5)%5)!^88Rot^zZGcz;XrEuFp*skbG2i*e^ Z0QY~@w2Q5yOAG)2002ovPDHLkV1fX@lKKDu delta 277 zcmV+w0qXv)0<Z#*B!BlwL_t(I%VYTe|33pI7)<2Mf2^|T@VozH8vxQwkpVD6VC?ep z@@ydfUs6)?zo4Mte|C2E|J2mf{|N~R|05$K{|5&L|HtZrMF&ZD1p`$Aaqj-N|7Y!a z{Xb&jJr%ND5ZZfBrFY9q^1Kk#bw{Oh({s4yxVX6Nh=_>)fq#L4|Gm7t{yRH6|F^NR z`EO!k@?Te1_rIE&8fqZ6t$+T%am~~JHLIQuP#~5sd;Gt2>Er*!iyxEk0+43wyi4TA z0!TB=1x7|j+1lFL|5a2}{>#b9{TCM(|1TsY^q+@^=RZ3;`+sI;X4F6gX#`=rqAMMA b4@3a>f7P^YFAf(i00000NkvXXu0mjfSWJ$S diff --git a/lib/images/toolbar/smiley.png b/lib/images/toolbar/smiley.png index 85036c1a8cbfc46db899bcc66f33bac9bf40b068..54f1e6fb49a91dd801b62a9f2720da7eac2c650b 100644 GIT binary patch delta 656 zcmV;B0&o4S1*ip(B!6#7L_t(|0i~1AYhzUu$3OQalg=bDlU56g&>=D?jtnYFGMgbH z1_uWhGYdCe)txR2-B|q#3hrGgintJ33Kl9#q%JH}q)3(8A2m%=Xr-yCHEr_Vz4shx z+CGZi>DheG=JVlR&N)U^`9GE9U**0tSye_=xF<qU6;xOdVSiSI4<C6`+gzyl1!r(s zg^$h9Si$6rXlek|qn#$cwMe)&Q4?XL|AEe361b{)p!xD-@c1yAzK%cs4GH&A*9CKx z;Ob3`4G6csB>ZFU;ow_36$@<D45(61-2Ngf!6Cj|1N%4PLezIpC8C(VArgJJ`D^~| zwg@+#7}h@n0Dl!mgB#;nO@V|pa7R?9n;;SRi0{7vv2EPp5<c7@{p@&FJfi>sfC%?Z ze+lW<P}f1l^2!_6da2%Wx7<c0L{B6KKatEojd<=~6x^aOhq!|n>ZOZNAD#8K*Gt$0 zLcFIC3smUz{^=dxPW`~<>h>w<?OBG@H}<K1z1@?cihl@+SRkGnwgaTNQ+|fEUmG+w zc2B?_uvKfZzS5#t%3*>u;*;2r^>~p)n6b^p7lQl{>C6sy?iN`3ag*hr8{jROYldR+ zI+=8WWbS!7%{n$>CLUvJ(hQ35d$#mhR_qGCy^KT$s0$HyK1N7nZent;Q~&CnwzE9- z;(NLm0Dts9)IAYKj@Lg0eUe13gh>pbq996;dW<WBuc7Hz+5cr48!>VMUs~mz&rL-< zA7yTh6;h8rM{p$oak$WPw6n_Y{6x)J-hJtPodu{=DthS}8=si0c*aDy=RHLifwL?) q%dE3Zy!?T-&tZW7a?UXf@DD8aktY$*mSF$@00{s|MNUMnLSTaI-#NMf delta 660 zcmV;F0&D%K1*`>-B!6>BL_t(I%cYaeOVnWy$3M?+ZOz?neJP;`3`2?xsVG)2Vnj<( zbkIW=Pj;)L;6>{%5W06Nis%p&L4i>ibx0^8qM{eI%@@#cO{>-2-|u;znGV_}dI_4# z48wdsd|_scs`5WkvA*G+n3O8LDx4G{qY5g#5MfA#%UjN9VSnwsS?j<(F&!#gH4S}@ zrY3{N>p(qP%;Ohc6OIn%MChsQ)TbK&ZrF5cO~;*JdpDY>#xH+F!g<t{z-%Vi+=Q_K z;pA<?Z%@1G&+6SWzz&-_RVHFBw^9=P#Fuhle<3bJeQ5<Eim7ZMR@uUjk#hwRcJ1ia z?*V`cy}_=5lz+xS!W_6IhVSJ;BJdH<9)Z{b?&n*4I8I{UKuSEl00Dpqr%i1uQp%yO zh>GRtsVY<~>MiXZ1yn-R7I2HNsHoY4cuubcG*g*I++tazVo?{NK3c6U>LVn~10mki zSO%z2R96D;czpLcUq4T;2)$j+Ars^C3_qMk#eym##DD%e@Z_*XAWmDyUPj+fF*QDm z`VbY%WNv}6PYYyP)0iNE_zG;uSox4dcwqCd4+b?2B$6|<wKwwi<yStunF4P~Rv9vx zYLbZ<73l*M^Ap&J2jw*`+%fecd`Y$5NQwP~FML3vMbw3e`?E%fC7Uqm6HMGcUvQS) zhx&Cc0Dq|M(m4@&mdCDx?j)9O#l-4RQ4l4FZ(~#aaWrv^`FHoQ5j}_cb#B8c&)hUw z@mxtZ_cg}1?kCt3fH+*}S(^FG?8sowSuPyDs6znRY*x+sZ=AYjQsU_o;iUIuTm;VY u!dZr#W$?(Qm1oLkv%0~-zs4Uiz;7(~ktba8BMm<Q0000<MNUMnLSTZG$vTYy diff --git a/lib/images/toolbar/strike.png b/lib/images/toolbar/strike.png index e532d1f07526ae3b3d81d668bec6311a8fba0f81..5adbba40247c70b86e162fca7efef2531b3f788b 100644 GIT binary patch delta 52 zcmdnTw1;Ve3O}=_i(^OyWAcyx|Lt8XCQLMaFV$?WAJD?6B)Z_@87%`51|aZs^>bP0 Hl+XkK`1=wj delta 54 zcmdnPw2x_miXf|}i(`nz>Es{(|JyUG&PXhnX#8HvSwnw96Qh#of{P5lPi$lW0#8>z Jmvv4FO#n3i6dwQp diff --git a/lib/images/toolbar/ul.png b/lib/images/toolbar/ul.png index 008820722a297bc030509fa4ce07398c21fbb48b..39e5d342e37269e514f85d8c2818f54647357934 100644 GIT binary patch delta 54 zcmZ3?w18=X3jcFY7srqa#^fLW|J%FHu$pLkQRbpmzma%A3uA)71^fAHzf~~+fv2mV J%Q~loCIC?f6x09! delta 57 zcmZ3$w3umvir_0x7sn8b)5$;n|F>sWozbW@(fFdQV2ZJ;-U1e8h6I5N_VYg8Uc>+d Mp00i_>zopr0DWy05C8xG diff --git a/lib/images/toolbar/underline.png b/lib/images/toolbar/underline.png index fa271517cd584fdbc159f7ee9af0aead35f5ae4a..57bf3e25a46db15c7678b43ab700bbbab063062e 100644 GIT binary patch delta 271 zcmV+q0r3940;vL!BYyz!Nkl<ZcmZSl|NlP&C4h;6LcoH|si>$(08;%xEb#B&zX@Gk zU4<~Yq@<+vzkdA+`1$i^;p)|^C%`oUy?}zt%ggtdl$88O7mtjL6bKFuK944j>4iUk z{xAS-!f@)cWy?N%|Ni|0rWa5FSo81Szp?rkXaEB-27oa627dqp353Zv;Kz?2BpJYj zMbQP27o41&0+7X3RaG5;hF>7YfQeted;x`cy^)cT0!U0nMFpg}ABZQStH+v@&CSgf zfZnJFVh{}q)C)j*;p^A0F<d}tUcd}Q9UYzjP+LKP2}%>Nv;j(FAk2uYe&BN>03!9r V0&DA)2mk;800>D%PDHLkV1l#Td&2+# delta 291 zcmV+;0o?wn0=)u|BYyz|Nkl<ZILob*F>ZrE5Jf*$4&WnDKu1MGYjFZgRCEzHu!IDi zdm7tENJB%BBlrm69yAn4J2Sgt(<GLIQAA8e+G1yC-~KQCb*!~mQyZ+Tm-|gwmahO# z0Jh^eo~x=le4k}m_AVlOW<E4cbG}`&*8W&UQC#ypx6^)_rhnTcNj|3i2Mfj+h{%J~ zx~_YrRR60501y#qt!MozrLYJvr(iLFnZeA@1BmEPfX&QMD<X*Fcz@sbeSb$p?GnIc z7=~UcbqvGM1pv?Uc0_a{qRVvNnTv81MJ_WRnb~D#h)B!KZ(Y~5ivUkY832MHuwSo& pnW445Wy2T)V;qe0uL@TG#!n*k#{!u9<5vIx002ovPDHLkV1h*hfhYg~ diff --git a/lib/images/unc.png b/lib/images/unc.png index a552d6e6fafea438226730804df7095021f640ac..145b728bbd1bc3e340ab509802bc475c2da7556a 100644 GIT binary patch delta 274 zcmV+t0qy>&1fl|v8Gi%-006c6H|hWY0O?6YK~#7FV;GX43`|xqlp=&mgR8DpU9Gxa zxxFk2#7|%;G(yqS@V4cD8xXeqtNUAZszj}3NAH%hhLXTM)*=P4g3f>K|2zJ5{BQlg z@L$XShA#)t&$%=C!-NAh*Xo~v6&!dv_y4T_lmEB;@A+`x_kYB{-S2noU-M+*->H9J z90V))@B44T|26kcEc#pbzw+az?{nU^9qRbA^#9W}|GAM|@?ZSnwB7$E{xA98@Ndrl zgD*bR|L1~Begs0G5}t2i*N&b4f8qVzg+J~8qx=6O)SQ3n|CRppf!LqWm3%_eKqLSF YOaFYprP*_s01E&B07*qoM6N<$g4xKLNB{r; delta 539 zcmV+$0_6Ro0;vR$8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pm1_u}w)asuP0005DNkl<ZILqx)!K)H+5dLOe7sa)0 zJs4|0Arg7FJUzrP&}-1?U4uO4t;>qHgy>?R(52h^2jX3#e}5qGB=x969#n8~58-N% zOFePj{Y@vO9`sIi>pKlI!+hU2Gr)iRd$d}uL)>n+VcYg^bpim}wol^m_%i?uKw)Ml zilW!uZub-b8jXf(n&zE;zkhz2fB>M=>3mgHHKQmB06<E~K@e~lh980;c$i2eUYe#E zE*6XTQp!(35P!T?RrO}C*K<?=NG6k}loCY50En5XP$<B4-D6GD&g=F1WHOngHBGBV zQS@=OT0M`&V%GuW6aXlf%U`nDEHar4rBW#{GnUJxU#(U{(=?OA;qaCa!nG{xI}zQp zEbFM*Y)%dqnE3%SpAeBgo6W>vFgTu0r^;@(^DC8#=6`wKh39#n6-Bw5&*x*cTJ0>C z%RM5ZA9Q&s%zR@$pFbUs$B##&5xK4lUDsI%LB(QmQ7V;Q8HVwKh%OEa0ARgd0{{%e z05j{G&E~%2I8V0QZH0)wrPJv*LWomM)7}x$pYOgOv{xggJYweC%zSO1_kI8B=eerk dSAxHSpA_AnynlX_iZcKJ002ovPDHLkV1jm!^W^{l diff --git a/lib/images/up.png b/lib/images/up.png index b1eac912d7979b3829d9df3cadd75ae5b39756b9..dbacf3f23e5651e28d977e94055c4158204b6f3c 100644 GIT binary patch delta 114 zcmV-&0FD3n0r&xsjca(?b<FDyKrjqI;U4BT_YK?oKPjPE5Wat>X)6lkfwtw*Hb%>> zo8WzDNL_F9VXM(D*YUKLoLww~S_+Ofu1}mnfV@*VTt}5cE+q2yx51>+AXA@Dcdya} UiMN~2@c;k-07*qoM6N<$g2RF~^8f$< delta 114 zcmV-&0FD3n0r&xsjcXVgb-`B-!Y~v7!Cg{Fp{C#eq*(Ej1s}{1lpl_xd~rCAK??hQ zp7&mY-S$qlPENM#^R%{-*es8*G=lYXFQ!`5>J}=M#A}euf<G+Cd<Dt81j#Ib53kY$ UiOL%O#Q*>R07*qoM6N<$f@O3z6#xJL diff --git a/lib/plugins/acl/pix/group.png b/lib/plugins/acl/pix/group.png index d80eb2606865fabcbc9ee53e2e0d1534df8c6337..348d4e55cee99dd26e62a054641735d571a5d6e4 100644 GIT binary patch delta 675 zcmV;U0$lyP1-k{1B!7ZQL_t(|+KtgoOwwTh$8qb>mL58F=<T3n9n#i|&N;S>@X%Pg z<^+bQ$l@h6hl*qv5Gj^!Df$QhXr)l1e@ihmXReDLw3!ONhP5_0#7nnk&e|gUWo(&E zW*&a0XU}KPzE2c@9jD4ZEL=3juXwwTz-@^Qnq_hAnJIDm{(qeBcv;3e%Jg)`hJ4+J zuyt+4w5DAF?Sg}ZuRjU?5i!0^Ho$MA!$%#%l8N?ZR{)uPpdm0ff|Usp!MP_`eM7=K zJB-nqvz}c6SuBpkWi4O-I^T!TazECV><EkzsLsD=iwH;<@xm72r4=HN0kVJ@EaWE6 z5S7J00ya554S(E4U{H<m)*Co2J~f=INQn6d5YUe^TZHMMCO!jO*P)le(56GZQH?tf z6c~7CMeS%c5;Z3+XXGcMHvv8O-1x)7tLWEWgR5JGE;$=S9uuw7beQK<FgYvH=qN*- zqa3~O+fiySL26+#xd|A#wBC=S)V5$$6$5(bEz~;{sDGI*#qH@LDBl)ANEX0NX8u1| zeN8ruvr05ND>tB<Xx>=GP%(1!Iq*Na@)y{9zFBEhmTU`_z^;JEnv3f_JV+@XM4cR5 z(9t~#iB{`2^Z4P*d+0r)EV*NK>@#rhxee+L3JSu4$5Y>-FnX~+wZ{^Z))pP<tD|CB zt!%bzXn$>RIRu>x5KjU5V*qCe;8FlF0r1r>#4~Hjh`@p_>E}$J0rD3C2u1*beI0yi z9c)Vo873gZ5W-XQ%W$xWfTual-&b1(o@Nq~*MRU9kZ%X_27%n)uc&iFBflRG77_T+ zDNP-&&Z<gbTkT1u(_m;8Hns?cY947-4$v+?^Bfo|MB!kOfL}p>vH%tBba?;(002ov JPDHLkV1lluH+}#B delta 676 zcmV;V0$csN1-u22B!7cRL_t(I%Z<@ZOww^225{@pmL58F=<R@H9n#i|&N;S-@X%Pg z=0Jw1$U;oXp&}UuWP+tzivGbrS}Bz1-%<?C5$mD{ZKmRTSZjkr3f-DHYs>J7*fN{U zJUpl0zMnmNeo+9Tc8Z#NSUhizTUqKn0<V>}Zjr~fr6<Sk`+xJk<FTA`l<n)F1(&-H zVQX4t^u}EQZK8w3a$h3+u6%qOtB2ptz%q3V3ugM4T>&KbKz(4wg_Thf>oZTV`i8{P zv=c+Rv%Xyc8JtY1$5yuSb+#A5#XhVpI1m^nP@Q|x9ubhT;>6A3ODjYU3uGR9y^x<U zNmR&w1ndfY>VLnBz<>rLEjMsF|CBRH86WcxAYvS6H;Yq)jY1Z-rrjWiu~m;clLmJl zDAE7UhMJ*jBxp}s&nQkrZvqDXxsiv3SJ78>4W2GFIu$$+Ic&5Pq{1?zhIy(24enCZ zy35e>z6~XgVx$x%k(+>tPw)9SL~R?4s${`1bqjTFC4Y1iCAd9N1l8Ljh{-&7$@KpZ zR;S~_G_68IsDWYXCYnMiACw`>kOlvvD}RB#=bKa}Rq?jL;(6te*s^iGTYv&e07*wC zF6bFPrL?NbYY_;;$9ovvk_?4=b@(%I@3|eCb_z<uipS&Mp)@UFe@eGChS?e&>8qn? zoE9EWK7Y72uo#5i1LThbxx+x_Ai$>pViXW+Jcwi0kP(47ed5o_ULzDQ0uZ?Xkz)fw zY6CoL5NT#0%^1W}%ggX!5dmKl)8AWD3W0VE($|3aRj7dj$Qb~#f48XhLaVqR9xNj8 zp`#$hS)Eat%(FQXOD4e5&V@1$mU<S<N;l}2pB?#(<&yAVk$_)8f3g6Ow|qeW0000< KMNUMnLSTa9o;$(- diff --git a/lib/plugins/acl/pix/ns.png b/lib/plugins/acl/pix/ns.png index c35e832da26a01c0a1a54ca6c88b8ae9423c8b00..77e03b19e838cfc68ddc8b25e8e05015313b5ccc 100644 GIT binary patch delta 776 zcmV+j1NZ!(2A>9yB!A{fL_t(|0d12_XdGo2$A7b%*_lbRWV4l|Y)KUQ(Z=|Z_Tr%y zFOq|ZO{s+lLIn{)K@Xxxsh-S1C`GUr74aw@JQYpB7DADhVA>$mh9+y8kEEOKrl#4Q zo$vR3eNMe}A9&^&W}g4=&mZ2`GRDxU?*8`12wHz-v?&^`KYtxQIW<RzdIGR8b)sKH zABpJ0-TO|KRJg@|%U6B*_MK7s!gCW>?{@?&ULLpQ{T&g0R@^(be_;4ca$4cnX0e?- z_3AW_)^D!J|MSv6j-L55d<<B)JU)gt=bXOL;{%6J;r1N>laOsMa&LN)!Do+=>wcQJ z-QYp>CauQ&jDJyT^5}arm#n)}Cw@ZfGf(ZGu-x+VM6E4$8uO^cCvDeote8DRhalP} z-!nwcEz+zlARvP6m7lvL*V_kQy=bK(^lQ`Tq=^$W2%0sTYa1M$_!isS1?^=_yNcCZ zV0YyOddqO@_odTalBaF3dJC>Yu{=cBxI=eeiBg}3M}Gj(DyV|Y4G7l=HfQjcuj4** z3NddBK!XOX0(S2KY^O+6pGEt1>^xY(zmPK|n^$NxACY+_C^(ojL$pW)jR8P`iJ@y3 zZvPRof`=PDL~s7VPTC@Kdr$(`K?0ePr~*)moIC))$kZva0Rrmk*-LTHK>`~R$0dt1 zRFt5Ch<`MQWi>_21)#N;vu((GU?R}5v`iI(TS3f(rx0f{KPL4fi8>-e5UraN%C)6y z-w<xEf>RMtH>d;&31}G_aV8T$zA!}Zq0?yPQJuYk0A}*<j}QJ5@2sqCEnXQ;!dAIB zaG0Fe54we@Xw`2^UYDN1*Rkv}>$m54aBq4gi+{GhMC(r;ALUy=ywoqmkB!nFR9+k} zRYqTfG?KF*PLiW`=N}%fUiW3^d+7_uzgXJnc$xmXcw|H%XJzTFeXqQ0h4p3b&;Lyp zuK#MZnSA+Nb*|H8dZKQe9~l$K=V)D!`Sr20i<jt7{{!5z!i}8-PUHXp002ovPDHLk GU;%>4B75Zk delta 777 zcmV+k1NQu%2A~FzB!A~gL_t(I%YBneXk2w1g}-}e?#!Ju!%U`<lqrcqpD{ktZd}yj zMzRpGDYX!xP(ehfpbJr?R99vplp@%TintUPu8O8$3!z9uFli8KLz6Mhvy;qBn`Rz& z?(6^ixhQragJ*sCHs3jxs?sTUe|cjFkuOv<t0Er{o}8HL)PJ-73s{&q(W{~#sL1=f z_npj}c8!P2*PAN(jT*W1+}QQ|9RZ71M;%ptTSY#}?j70RH~1#D7@Fl7oOFUpX_80l zvnwicQANHVKKpz731H#s=m?@0(mlh+`wpMN?KuD%5^pbZZ*rXeXOCfbJx$Q6vQ?U; zQJtSwW5$oZJAZw}x;t^=2Sm<3wSUZV3(w;>YV1_!F=3OaRVHl(>=`%&{x*s30c<x* zy}ZCyX%=sL<;SENIdkyU%U0B=(JW6QVV$&B#jBU8uWfL2>}#CNE@&;ItrAv!f!)Oy z$Q9t$uS=(sD$-J{T*^(8Eez1E-l3}}PrfHZ1`qsIFn=lVH=w<Sw>eF7`6li&r%)rU zq>6w5RthI~04JTrugoCL3Qhtn?{Bb`aPu0C`Xk~@9#UyEict}gYJ|rg3}^t!UAVnR zh*KF{{{gc38#_^h*zLxovxpZ$tVkH6#$c;4kA<oMi9kHifMoYxvU?8VIS{5@;vmNO zA;$BGyng_RBGd@BiezlZfkXz>2MIuYFl}&)#0nZ1#0!a=0a4S($qivEsEBK;ksC`l zzM{Ro3h5#wy1;~>5g=$J7(XQTLK3L~a)(YMCPQgv3Kf}7yf@naQ?RqLR$II_7`7XQ zY~Nw*OfN_SVvk1UHWIpY_rH$i6j;AK$JV{cm4Dc;eU8XSPo{k9yO(-Z<U=)buK40; zzBv3EL_YPkDKu8fcmCqR>dmH#e5)dtj(@ha(eX@wTs|_SM$W6qTl-#l$7)xWxj+9W zaeMt|6&-*1LTT=Q-}rB)E)I>T$ft;;ROHKJ=NGSZ>iq-UvcipCCjH0&0000<MNUMn HLIPldJy>}? diff --git a/lib/plugins/acl/pix/user.png b/lib/plugins/acl/pix/user.png index 7b4a507a0007c2d7237c9450d344eb51877ad155..8d5d1c2e9bd82220dd8fb533e621f1b2bc113c14 100644 GIT binary patch delta 625 zcmV-%0*?KS1&RfbB!5v!L_t(|+NF_QNK;`P#v>@Are#G$b=g9tM1<O;wlH*V?vt@I z+xOa8)QQGun$zVDtFuO3v|R{p^kE-5H5L?j(THvaeag17x((?rgxQ@giaou)7lVOl z;Kjpv-}gMvkN?Ae6MzkA)yInt^PSM?JqXL|FmOr)u6;LHvw!Zve*rkw6$xt_F?#M8 zZmD)+#C;TfauM9JgJ7MO__}~0qXZ*XF$PHJrs*&V*CWat0Vm%FL+jqkx_}EO8gND3 zjIpa4#MzUu9dE!jV<Rl>hrqP$LcH(njx_;;%Kgi8FYlrBaU4J2K1AVhKfb@Xj^fNH zc+G*|UmjiBx_>4h;b{G^I6H}jd<ILOr--KMd9g5syPlT(nibj<+%}m^mKpPRpq#&t z<!{famOiC1InV)#MDncV%=zuB0+dQ+y-KAL)M_<SsTAyXJI03@Dvd@%-*h_N$~j8B zq8b1RZVm>6x5-axN+y%ASS-k7GDxS>Fquq<#bWSyJb&ov>8W&fb`BEAmMVY*FS9I* ziHQjq3<emDM%ZjNWV2c1ayj(&_Cl-G!fLgG=Xto@?utU8=&J&X!;OCzW(E-og&+t5 zH8~s(kjd!y48y?d^}^+H!RPa#l;!chzo}dW%!QjOi?41_Ln4u&AW~_?Oe+Nf0r>rX zM59p(`)c)Cz-+L&QU!c{;u|UqiT^mAPU!Xe6(dz75~2OcRP;{zqpPb6MZTp>GD6K3 z=BK$j(osy-_=fbIC*zm9ySqU|L*!eMN~Q12W^?n8r(9jl7B-@P2Frfwl}SVk00000 LNkvXXu0mjfQlT_- delta 628 zcmV-)0*n2M1&sxeB!5&%L_t(I%cYZBXp&(Z#z#;@xz#Ens>>Fel#D^?C>IOoVIC1b zO`V7Qj4~2wTXWhJ>$6c8&5Oa54(l-80fT~FB+-q~ak$m0+Zf%&K)c(F!l(CpFNDEx zMHdh6f#>=0e|UN80Mz}D*1f#oFy9WJ+Kos@JqAt+;A`In)_<(K|5pGX>xxCR%@{j- z6gO2nFzP;nz77H0(gR?f){zYXA)^?hwk8aa&<)ce5^g}8ISgONUKm>UR5k>hKi-JT zY9Yq2XfVQ_fc;n_t{R(RZ9fR6Z6`+h&TOv<7*y_CU3`8Q#rG5V{`vvtANAwwvujwG z9Ya*J|L3QN7k{_Z1SA}-?@Du%ST1C-@^Ol2n(j;UQ@G<16>3&!ll!(xrPAzppcCc7 zJ*<9tO11JKgUNwTh{fV3qSNQLtqV{pl?^JDic_oANTpKf>FL455JRQWXy~0zr{ni= z;uWj`kl?0ZFnEhM@}^`m39HqLY&MHbCIgengyG>~cz-+|ba!`GWHQ+xfo!e<NbnNN zvPh@XFc=Il8jY~q?a1YF$mjF0SS-+LwXoT2h(@DuyWJJJT;5j&EDSaOUY;F9I2;DY zan$5+I6x+&<1-8cuh$Eg%LTvRk76#0xBV^UDqu0vQYpQ-P7R4ff`UjTYUV5T_VywW z2p}GhQ*GFfmmKDT!b%nJ`LRDVA8PvLbULBe>#31fEEc2v`KkCb>5s0iE-XYvWs>36 zyu#A7uby;lBG34W^j#w3mlX;Hc<~{!79|qN8?)Ig{5IpOulXDQMSlPW%YNzhxELV- O0000<MNUMnLSTY}uQPA} diff --git a/lib/plugins/config/images/danger.png b/lib/plugins/config/images/danger.png index 7bd84f7a36dedfa8107314e54836462ab93e5f7a..da0692429e404d4620f23a496890f09f6c8fc8ec 100644 GIT binary patch delta 612 zcmV-q0-ODa1^on&B!5InL_t(|0i{#ROH@%9|2e4>D$`X#bi_wKM9Nh}n{Z<fC?W!B zk!XUe9!P&d1W{2f+6=U+g%6Atf;&Mlii(gHN{vqWP)Z$pj82M9Gjq=Qo$k5fotb9o z4?ZsU`_Aw8J@~#Htu^+8-2WZw!OePV-J!{=B+E&H<PVblRDT?@9`-LF4H*@P`#0J( zbzmnazaqcB0l7Zku77J2u}}z}*yb9kddr@?9L^F*-n(v-*_SA*E-YwjgbIHHZ8Pvx zRKw%1!PZO&@!8KiRI0n`>Bz7vkhpuTj^x{9d9}Z=sR_yVV=ySV{R{@%cX|M7<hP#1 zW^fwYp~<i!TYnp#k1l$gzLo5ZdAupIEvlJnjgnAOBQ`z?U-J>@qEf#UqSM420V!pd zx6v+pWyv8@*#eRo0u%}=NhB5*aHzQjLWr((fyz9~f?QrQL^tCe3{i<)e|&xcc~%Le zkd-L`A)%GtBf1&IY%tY=*flBwwn-_FR)JVeL^kYc*MAtIoAK|vacqygaI;eoxmC4@ zMIt8YYI+3&e}bQIz+dY=HeX-QEfih4;t-YbDZ*P@hhI}4P1^&mfDmFZxgHKjr-LYH zJLigQ1Ri5O@W>&Wf9w1O{0>ebx;z)Q1qL$~X{PH`JC*9Qj-Dtiwx=9lT66|x;@-n` zjzw(p_gxQTJ0!c?UVRzPTIH$BC)*VnI9TGZC~Y|guT=~ajz>4}b8-UFmH9Q2y{BJ) y&01v_6Bm!ylkA`}$D}fki5xofW-j}f_Je<w(XUKBip@#@0000<MNUMnLSTaVI2d~X delta 623 zcmV-#0+9Xv1c(KYB!5pyL_t(I%cYacOO#<0#vi}b36<$nL7Wk9V~Uikh&JKIE>J`S zLyN=<xaxxR7eo*h)uPQnt6F%$XffbU5R9TCq=iF`PN}1qI(8YI6rE<~eb4i@u)Z0y zHg$II;hf)j4)1yLj4}A1$p1Ydx34tNn07;Uk*p*MlAlQSQ-3&Q-|3I$*5~CaP`57o z4NYJxuh3K2upjwu_jZ0`9mz-pR&srXl-`Q_PlCGunVXmVhU`mM)D#yrH9}$wU~B;Z zV0mg_d26vT6+vqH-4;c<s~-#p9YFfVMIXr*naUb(aZ?jAuSNj?Mb{nz05-4p05m9U zJ&E=3BsL=xF@GUj_dgn$vj9LucO)%Ww%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r z>rPi=BV=hFh6WS^qqze>C6Ek}o{M5%a|@JGow<Oj0^5dOoQKhLCOSWpAw+HGQ?pSN z*k#a4S7iZ8!-#Pje@#@=;p__PCqxJcp|wJe0=1luuYbYv)H+f{5#L{qVRQJgGo6aa zudYKf9*0(XIak5JxA0r+@zy!Tq6l}-Rg|2&04hQ>Awsz7eE1T21FiLd15ip0W>#ad z#AFynZKoW_THqd519u^^{kBh^!PjsIiN%?i)_QQqAx(82^HZeHK6s?Kw7CVT`8lL! zqcFz6RcP;ntKNrrIE0U{N4H3Jw>^Cy+;z&K^GE$c2KJVDJ>@Nj;Id0$43J8!;q$~e z5=*lyBzuoP`w;x27XV=V?BNEI?G$#AveQiD(23_We>c;=#1ECxuS{wM>;C`%002ov JPDHLkV1n}RAiV$p diff --git a/lib/plugins/config/images/security.png b/lib/plugins/config/images/security.png index 1800f8e56b81fe93899caf3e79d840e83a66c0f2..3ee8476accd6ef3ae50b5b869d24446d1a7c60c6 100644 GIT binary patch delta 658 zcmV;D0&V@m1*!#*B!6*9L_t(|0d0}bYC}aFg}-}~CQVFY)Yi}_HEpT|1rc|3AqaLM ziVJn;PC*d@UA4<D?6ObcqD5SE?E{DfsanuR6PuPaD3lbFHl|7L{2AxR1)ByB95Qof z=9_aSfpd;&9UdO$thL+5m<{izz489r`&etezqPgX4^w&sIDa@ec+DR^DwoSEg+hTa z4DoZu<1yWCmrE}X`e0{g=X4ezhjV`M=W4aO7DW-APKV)eh$KiRlaxv&MD=?8+<$v@ zcXxLL5E4r^ezCN)w5F7z*=$}627`(pr^GUDG#Y;i*r!|bRca6`39<agjchhctJT6E zdaqWiwRuo`Z+~y^?RL9euT(0?-v0wEN@stYj4zpye3Nv3kEC6E^afYoed3N=>s;Sv zWRdq@IU(T`&S;#Dt(4)b)7OzlEzS3M_qh|+Kl>?&6L`o+AHGFENRY@7@DA7jlJl|% zMq%`TFE@u^6{7R6zkjG8H-SUnd_yw5KoI1>&OxRK&VR!FE#~eIqS2pNeNSekhKnXs z0Ik8wO%eUGAAQd!D8Bp#op1MX_F0zS+@$~enFsX9SDwN-gHzEoKuHapQ54r-B1|nn zU@;TJFE<&Mi6~ZA7!T7ppTJZ91B8H|D4|MMdcU6f6hA<yv17|*Gy&(6HGZStyo&2u z0jQ}2GJg@O@i)C#A(4Fs!id$6KW9~GxVz@bYMIpCT%5qVSwJLItd=)8^ME|e=OCE^ zD}X+uUKceSkY6s~upTr6kP7MNKPB@*f*_TS|H5z%tbu4mel)<S2~OtnURqB9q6rsA s+Y(C_yybU#tic%R?`^<aK%##Ea<a0`FuBt>01E&B07*qoM6N<$f^%~<82|tP delta 682 zcmV;b0#*I01;Pc8B!7uXL_t(I%Waa+Ym`?MhM(`wWRjUCacZ?8V@W4Y+JJ>px=R;@ zLS2-WF4Ud73YNk^R%V%nS^8IWF`;zf+CM-P#A=|Ov`LM_7+R1>Gv;$LGxwfzPZyuj z&mRX4_bl#xc;ENj#LURo`uh50jPZ)9E~)BqRYg_*Q`Orda(``kdHGrXev${YTCLAw zjMr<m+WhqNG|o9<j0}fE_V)JZbUGbXJ-4#5vhfC>)oM+u>itHevEaRDcXyY5zmKX? zEEbuWnE_yPbMt|!e!9B4IskA-Bvt)sc6N3lguwRp_QNzy>mh_v2%(gwX?<&J>tF9Z zwOVaKM4CtMihoCgh%8kq6?S%Z2qApeY&N?&tKGG=wXeI~?q<DSM?{w11~}=QBTZ98 zq{C|^BApNd&N)=|<SQ9Gy7`0M-dW`F(=w{c_n+LQU;$IXB<m2ApEo`y#>mXXKHr|Y z%i`sGNv6Pz3+KNg!I2coBzyxgf#L*UpaGSXt7rQV1AhPye!2D1f~f$8Jo%O4_z99^ z65<$?t6&ihpP~nU;|Ko`<&g4x6Z4}SKm?+JdV1~OaPA$dXTD(f#x*Ry&)k=1>HXEl z5B8a=zl)h-!RG-1%rFg97eB_8PCydTk@EYKGIMyUjd_OsaZC=u;tPNSun;g)(7^s5 z8}!<Dz<&vG7#R&lV4mLApY*mLWp-o4LdYoyA)~6N`ca)i<vnno(-(i_bPzar%&|s| z(!p4!AlmBy4>1zO(`&aWRHk5J5{e~=0tY<?`+J0b%GBI6M$ByI0cOhh2bU;+SRg5l zXDf7L5EcA@sX>Z{5f(MeOC$&IBOYGAl4T)+Nh5gP^5R4_`&g>k92J270dlgk&Dl^^ QF#rGn07*qoM6N<$f{|}hlmGw# diff --git a/lib/plugins/config/images/warning.png b/lib/plugins/config/images/warning.png index c5e482f84b3a140a062da69cd86d0a98019a8fcb..c1af79f0ffa5b8ebe561b8983fb0e843d8157e4d 100644 GIT binary patch delta 581 zcmV-L0=oU>1l|OYB!4AIL_t(|0i}~oNEC4x#-I6c)ph-F%TxkGlN2PAGE&p<)`vlz z`dI2(bPDO%p-Tq|g3uy6BvB#Mp&|rJ1WO{KQ$brO8x@)Dy1Oj4iaRs^_kCObL<H_u z;17N?!^=GHJPb32h+r+)$V2kk9!p5x3Ui8CdaL)oB;>$E9)E;n&{wm+#aF$rTZm5~ zA0o2K_+)o5HqrHi+(mIyVVQrtGdcHgM=-~|xf?L??c%ynsbQM1OM>v%hk`<U@xL0x zo_4iG$2&;K5hr$4-1vyFn~*Q}wyDpfTigEGK$!0an)^*wOZYf(ACV`wz+My;t>-Kz z9{TG`jE#4O3V$j)TS_(^#>&@zh(Mc}8$fAe9|~)Fx+6E6LOB-baDbTy{S8OKDhaSo zYneT8W)|hm$H2swX0C4ztXjatBmTN0>k2Cy;3Xaa5ENDT0gb?kUPEzJ9m<-HZ&VrY zJbt0S#P4If8in~o?SUzqR^Gr{xB+IsEGWWqB8|clhJR%Vtg>EMrH2q6YIn&|E!!_7 zBD#SPj|R4!v4xjF=~sZTe(I;`87#b?2OxT;Qj;*uWmI+a`;_Bd(G9*mYVWhkTgNu^ z3__)!!;9b1)tCh$hR&Lnzz`QAl)YY$qWS^68xCP{cKV>rM8g%0Cv?aTbY<;?#xS4} zebD|M7(PDK?mmrFc<Qn(#8dGXXHN<-IP0Hh@(AR3P+3W<K(5krR@&EV{+)jUluTpU T@>SgO00000NkvXXu0mjfHAof) delta 588 zcmV-S0<-<z1my&fB!4VPL_t(I%cWCGNR$B({{DxnuIp>dR02a=Qjko_$TbabJq+s9 zW2tM=DWqeEE*&HYLW}H>M1@d?iV!RjEQyFt1z9LYMrN+NvY3kgkD0H78i8vC4$RD9 zW<I`em@!CVJ!Y>}n0~R(qVPRcQ>tt(-v3(C^_gn{P}m+QIe%CkC_d0g(KBmOAi2sD z{f*&xU&BvvXXvJeIPrA%^!Vdl;dH%e8K~&p?6O#{VVbaW!U&ef!W6yyUku{U8)_$e z>xJUbiC?Fi=%TtwetodRAM4&;`%eZ`y&tM-HPxTP=e~y+eRc=xO`@RYf~BGze_dj{ zHyX<*j8^AtIe&_UZ>=B!5?CB>LvEx6nI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K z(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb z43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D^T}Cc<|r(Suz&KJVdWmdP)D6Bj$gg=QgYN> zIvVW`Z98XE=OD9h04f0D%iu7kK2882K!u;`hhfg6sJ=DeJKi+_Fup&jYq9ccdNwt+ z!=HT#FL7^4k`kl=5HKympbJu9S{sp7-i8mIG0cn%9=27avmkP6=`lhLutU*hamI@L z<-p(jfJG5N>E5$Q4GmniDLRmNb^bI(p`!RRizg7rgYS3{$AdUN#PuPbKz)Jw^43`I aJO2WdOk>%nxl=Cy0000<MNUMnLSTY87!?@+ diff --git a/lib/plugins/extension/images/disabled.png b/lib/plugins/extension/images/disabled.png index 93a813642a955210f14433ed542f4711190ce482..9c18b0452a1c3620341532f32fabc7444070d666 100644 GIT binary patch delta 1143 zcmV--1c>|e3X2JlBYy-^Nkl<Zcma)+TZj`^9EbnsGMAa$H=BzZyYA|)S~a@0SfP|s zN|9EiU|XmUTl!*s75db^Sm;9$toTr{LcQQiv0!N_XrTx$il}ri>uy`kx;ja=n@zHr zBqo{6B{Qd!f)J{s{os53@;fKPLGTRrytN0I<B)i2Lz1U_1b<vi%c|z?-(N-;+vC@N z1urN(g?)S9fhA=I4UD{;?n?}Q<nLScIwuM#f)Oy=SlqB>dA#`d!}HVAH|}g3eT7}W z_S+MUCl((VI|zUM{u6#}@2Bte4{ZM`lo%Kagd`-37zhStS{<Zo8q?LnLOwI|`LUy) zU3_={nDgU>vwzSFfgZ*_J_M_Wc0n?=_09PDT_=<4Hm%#R)(@!|Z$|^18TN5j$j6xu zB38qZ`eKpLtHVPhGsBzH4-=6n%+5{1V=(l<i($zAaU~E+4j=AYHJDnT5?I(zEQ(Q^ zV5GUWID%X8kf<RHs^gDGhekFZzH#MJz#r-NzGHtl34f9t+95_(@9vB6Ao5@VK${S( z6NF4aU@^>CcTmvB8>O0V#$#(nw~X%GE{O7V&oC#5fDw#fUW`&=+X#4_xNE7qmJ-wk zge*79YzG)Y|DM3diP8%`N!}=kl6M#()|Gdl1Da{+7)d(D&>{pkDZv`XU^))#)GfQ= zMjct;B7Yp|BoPAM6+FX?+2Al|nSj}-HVmz)cbaScK8F%yVub1pplWn19WzUi1*$s? zI3Da40#ru-DP!oN-B6)XDcmBuI!h2U@+++ZA;<{I92F_!II!ffzy?=^g@nYDdVfF! zt5q$POXZ2GTJ;V$t1IyBsbfp^W#zbNRGI?CR)4YDUQnCnq-L?Jg!0!!Nxp?S=~l=m zbf{iW<`(A9pE!O*$>y@&-|@`!ZOG*-@biT;_co1eG83`bE>8C6d1Psn<L^lVmoxMh zaWGZ&`lFqH-kH97=Je^4d-r|NIrrUhkMQI8)NOeGz(H24RF(z?2jB38!g^&{0moEL zwSW8o<rIaFCsOTFp*T7*G4ajt$Z+Ar*GK-}Tj6wUICu6`Y3q)cW&=U)!@9a4H!F`Y zM{SD`+E~g5SIQ-QQBjmdNs{1cAn@RmL;Jz9I&Y^(cV8S@pO$2aKv#k}$YgTu$*H-q zKmcF-@{6M$ubT(W#sjcz(-gTF>+jnLjemv>m5Kq6YDJivxoOPboy|RCmv@*D1da_j z81$j^)?u)n8k9-}n7^w5r6%h}k#`p`c);`2jWJ*hpj*Hg10@tF$AKUU5~U=(ExiW3 zARhNlr>2(pSj-oWM*V5VSfX5Bq4(z%_kJI=-T!PNlPO&K;lfO<r@@{Vrmm8!FL0Z! z8?&?7iBhp0q9p!eKHr4#@u^=fU%q)lQEFuXz&)pSx_X9tR%2JBX;zCdArlNn>#Ewg zJvlk|eX&?s1OUxdcQsrs*G}(h^qes1`uIn>_8i;p+7o2Z!#~zl<BD7$YN!AJ002ov JPDHLkV1f_lGim?; delta 1378 zcmV-o1)chf3G@n(BYyw{XF*Lt006O%3;baP00001b5ch_0Itp)=>Px#AY({UO#lFT zCIA3{ga82g0001h=l}q9FaQARU;qF*m;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^ z000SaNLh0L002k;002k;M#*bF000DONkl<ZILn39U1(Eh7=H)w|NC*i@|~vnQ0r=| ztvWT@Ih-)Y7-PsLGH@Hri;mqmZ-rfLHx70&1Seh$oG?G|W;k$c40JFAiy|uPM{Kug zYBf!|rb(KlG0DlvIXUOuO*>j`^nvH%Je>E(^S<XfFTrzS-#hyt9EU}^HpOHv2LZse ztaAF{!#P5!J%4ob_qJ>KYQ+Ql-@|MwLAv{2jdw(QKJj#{c~erAE=CE2-JIF9ZEh&{ z@8gSOW4G?@7<f(Gyz$2~26?)0Xz(!p`STb0#{SPg=<MG4jX&Dm>-B5IrBW~oVOlL> z=(;dU*{Mu2@#Tr*UtE6w;GpyKrSmHsw)|o6(<4~hyMG6<uI+C}Htsnc+puNBru80l zg=IVBmCS%!vixqzbO^Jmj@A(l`d{zs?N9V=jX#bCLl~bJ`QM_;VOb4e`mbwVf2{9l z$C{q5ja`Zec$md0X)sE3MoC>_v>x%RI-w{zo=B*-f9ug(*RFUy!Or$)><Pr6x%|7- z;M%<%L4O&l3=2SmF={YEOb}Rt3ITxn+;TI&V3?8cx`Ay2yLT$8>t<V6QdCfaek!XW z&TN}NHW(!hPKnMLX@C$*2ngGOV1($561SvkFS#|>W<}N7!-NPBB4h_G=%!^*q8XH; z&KRw6Ms-SII*w>nEW64maa@WNlvpc92xRiq7=NsQg|OiWXO6+Fma9#@X0&SSJ#L3H zVp2jX0w_0ImO+K3xD;+U0+I~7PCyFeDS5@mYg9|97PEJlQ5t7NG&A${EMuhUb4gs~ zLXu#)0*dHa6Hua>%qpE;6;{2RFXRiu<x;slTr1Dx`!gqID|4xnYO`2VIJI)+##E_h zj(_NuxX!qIL)Bb&sHENTyOkC<DzWs`<i%4bkEN#5)9vRtF?JW}OcB3cI`?2p{}wYE z4)2j%o{UT^olEiqO_9<~qs|=4OGf3%?!WJiT|amB?CJdnK5AX~;beOl01~5j@!_Gv zVxd@^?e6J$%k2*s#kmw5vt*VEk4QR|l7A!7u0}qa8yFrQ{;sdTFMI0SW6%83tKJn( z%f^NCXY$*3y)y3gNgr2AQ?6R^36;2QF~+O28Q**%Z_K1psTobvRwJIhE0*H3BL`tw zt#{)CdoTBHjB759!KE=UDj}InH%3M$2EAT-`RlKauezSMgKO1Cux-;+rLgGi*nf;_ z)kd+{#FK>_CK9)sllRBd&*`f@%ou@VgZg}K65rkj+gU(9pT*>T9h{p2ARz7CmE*QN zWSPTu1cU%U2q>lCjDt%O6jjkUXMr8@b!}m`N{s;EqocEOIP4CDLY}w~B3dZS^M{iu zB$JOCsnpDHGMT;d)1}11GDExw=6?V*0PgAON^^XCdN`kJ_&JNboXONMG&K6#)vLEp zrBVxp#T_s0+F8uD@KV<l0MT`;E`*Zw`9hUasd{&0Wa7tMt~dig2Vekb0<ZwImUm5F z0JFuUi?yZq1ps?7m%tTA@gLSz<BIbAe*ORe03~!qSaf7zbY(hYa%Ew3Wm^C;FflYO zFg7hPI8-q=Ix;jmGC3<SGCD9Y1XwI10000bbVXQnWMOn=I&E)cX=Zr<GB7bTEig7M kFgR2(H##yjIx;ycFfuwYFm(l#p8x;=07*qoM6N<$g4-W|0RR91 diff --git a/lib/plugins/extension/images/donate.png b/lib/plugins/extension/images/donate.png index 9e234da1c5f7112d9d38eee45866f58ac517521e..a76dfaaec7daa63d4425a8dfd50b4ceffc505697 100644 GIT binary patch delta 654 zcmV;90&)G+1*HX$BYy&HNkl<Zcmc(e%}W$v9LK-UGqbomv%c*5qPbp*AY2LzqEw<F zvqL0B)Fn*n+@V8Am!N+kku<TOZWg@|Mi(KnLllM^QM;+z)UGb+?mD{byzDZ&GyP`u zkkHLTANVp1%=3Id{P+!X90xmrV~2<@UQWWrHDQeRH@CJ8aDOiLmTU)xX+qNsxX7{( zzA7&S0dPvz=WKT6Ap?fQa=8q~7#tuQ4u|W1f1N_~%>$%nXTSu2Gi((Awhc7x@4)Wv zOC62-dhVoGQn#4$^B3NK_~^DfCwfj{=wdAb%|UqOIxx-wFl^$$p&JTD4(sVvbPc|R zsj1+lQVB=9yMIt1U8ii}P~TMqcJ0ObqJs5goU(v5ikgUHEup|)6U4C#*U)?NI4sKo zo10%45Cq{i!1jQ<&LX@%33YX~5JkYlwolr$fLty|CL5TZo`z@^3XklvgJ69Cjg1Y6 zMq?<IZG6{sXu5`t4XrZZU?2!tk|0T5ghH(_O#@_K5PvoLz_x81>^J~-9;&LsOVj2Y z5GvvD`+aB&wV=A%PpPJNKj!A<k<aJfab2e-O@nUe_!f;C66t%YJlKRm6h+8%fFuZ3 zu}P&;NF<Vo#bP7;@x;Vs_mbu1O#b=PXZ@swriKPG;BG3)oCyFNDlxFMxP(aL3(}d) z)cDxwlz$M3%*J(1`(y((?cs1wCYx<ZCKpAI$3yKxWswXzSS%KyuBwPD3Y9I-+#I}d zW#ry?noYiXjlMIds{pi6+^2l@-1+t+ot@VuNj{9fpruPI%8%i@!$VI-$L`OAVE8u@ oB}A#gb}Y&gMa35X|8M*QS2Y?Hk1oB400000Ne4wvM6N<$g3*LKj{pDw delta 701 zcmV;u0z&<z1=IzQBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! zc1c7*RCwCNQ%h?TQ562}oe525(nr##O*e`l4GIxN+ae0qx)6&Zx{+FR?ZSl=H-dk` zP;4z#&|MWDNX1P-tP4>pjff_;jiX5$+9v6=N#~K0$9QI}P=CAa!UG>ObLX7%edlqR zWm(vXaqQ5<7ca-17h4Hqysx>nt)FwTr&O_Em?kvMaQ@4(2c9Z71c7`@#n0L7@<RrM z#d5h!fechgHW&=nFMgds^vwgLrl-KjnKNt>0F?^Rv_FL1U6(?Q`?~L>ms7Wx^79wo zfB0y#TPM0tA%A?a7QSXb+;SZlw=3MtKok~bC>S}crB~27@D`?~f|p7q9PR2vf#h1{ zA`bOlg>Tnhtj#M}OU4OvSS6^5I93x1yfuCtyKoIXCy%38EP~C<&h-m|aGRL+fZLiy zxIGf;>S`g1fQ$XxX|o9Aaye46j>*YMh-RVis8Y7zuYdQUv9STsXbh!t1>ZFtnyz7e zU2_`j_xT}95+uouK%f<-X@JxhM2#FORNKMO0oeUeRTXaPwq3s9fWzzcpe@jX>S`~c zn!df5nVCgCpMS@7otQKYx}oD+G-^mB-&N(>6wIg$5i$k***E5>Nu^RqB$9~5Vnh7# z*w|$|$$!#PCjb2Dvp&12O$`mCfIF}yb9<gN1>G>PFu#CE<O|Z7%*5!(@PrVFOviOi z`$QwIX%7awGudoQGC420TrOf4oJBGyaARWw>WYfEq7d2A)Xjk#SBCD5rrG$b*XTWS zx{4@T2=-Gxd+vPuk&ce*k|ZDAy0)}*X+`-lcs6%1{A76K{w%g^$##<n0Yc5Ta~dKR j2<qPh_TO*gZvh4XS2Y?Hf|dS&00000NkvXXu0mjf=%r6H diff --git a/lib/plugins/extension/images/down.png b/lib/plugins/extension/images/down.png index df7beda4ea08724419bc851dc2489b48dd690e03..8e399a97db4a9be31174e12c69ceabd8cb6d35b9 100644 GIT binary patch delta 43 xcmbQibd+&|%EU}RUOP`0$B+ufWC2$;l@AjynF<o8`v<1fH&bF6*2UngA_?4UPZ+ delta 124 zcmX@gID=_|iW6gTkh>GZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382FBWFymBh zK53vJdx@v7EBhTr79JfA)mxWdPgD$)W=!&ScM*Mh<L6?a0((yv#}JO0$pWryJV!oH XtTz+5UwnTjP=dkJ)z4*}Q$iB}a*ib3 diff --git a/lib/plugins/extension/images/enabled.png b/lib/plugins/extension/images/enabled.png index 92d958802c8e19e0b25a940bbfe0176d33862307..edbbb5b3cd494fc7d7b67f3fef56a03eb50559c4 100644 GIT binary patch delta 1152 zcmV-`1b_SX3X}<uBYy;2Nkl<Zcma*nOKenC9LMqBIp^NF^O!rGPCI=twuJ%(Y#XT1 zP|zsEg%TH3O~glHj4s&dg2Y635LYG!QWuEP_%P8(5Mpov8xv3xv9*tu7F+sgr?m7j z(?Z*M%zfN*|AwTCiE_bD^50A{-~7+X&0%<mx~8{aIW9l2r+=i<ulY&=z$h4Zf4x4Q z@+rc-Gj<7H6g<G51Mi}H*ktVoBh8O*6mM)!xX*-jUIU>ZXNGSdc(VHU;jz^pIyx2x zckQmH{+{#rxBqN>_|^At@uxL@{Db(5PdB+AH*a+|N8<q|0zp6savYnjWI#8^BjeY) zvL7Ble){LbFMq#47cYE+Vgf~uy!JkxZ)Ip|4m^8kw{xa#C*Pzewu9+gB-Ba^O1aI| zQY+}s*c)P#v7lb_)P}mo8+%(fP6Y$C7`oYub>Juxi%OjRO+;Gi-D5i&s79@9BGSrj zfE57BgD3~^97H0oip<@n`ib(E=Bi_7&)?9?;$iPQu79lnO2f3P;juznu)GSS1Z|Kk zfC+<vSp>2H5WqROZU&SIYfIhMmi=w@yY!H_<{1tJ1PH7l7Bgeegao7khynxh01Aw8 z8=(7rA}Zt=%uq?#s`dLL+cf_}!XyNUF_mdH2=@$-Yk-Ly0a?aao`_it(t(`Mz%96p zsig#^ntw?6TvFf}mM+01wvc!H88}mUh(s1F>VgL>;{H`e);(!X8cu#xQ+<j77E&bz zvYhABoWVOhzYHwhqppd$%AuO-wS<qZ&s%07Dil=#m?|A3Xj{2zDTP$E&<)9I<1-6- zYGHA<J6fWl7)O!CMH63t@yeb45%tvIRAW|B*nj3MKjFGYuMqB4Rn@LBQPQaeBApO* z^48qms=?vRcO54`N+y$Y-rw=SKqtnh!sz(y?~#UWo9wc(iq^`q)fq{usc5kg?kl}* zTb3`V>r2zi`}h3OV_rG^`Pnn=?JqfBec9m=UN<;!9q+t-h!#@Loz3-C2NUrXBb&); zYkxTy>2y}fu4Qz+B(XL=U*FQzGkJQ)_KkC=J~{FK-U`zqeE;p0)V|i&hbp2Qj)d7# zSW@;mmsDxF(agwf_2R-}VRmA2Y9<s^@gNKyjvj4?WxI#=weGmkwzD)4E3u*abmV0j zy81JP&hGIyBVl&_#EFw0ubYQVCJ8BRTYs`R<-`+6FFLR-8>_2x=<V$?Zw(Jkd+hb_ zFy|buODqxzvBt(7knRf7sRfLUm=MAy0ALKBI6P<?hm-^&0%Ht<b0|VUQB`P~7Elx= z+SHtY7vXX5N?+fcFCGs?%gVydL{yPZFDc_=NsNw87Lv)?p3%|yOXtoFtQ0lqQF&nn zKmb5!dV1CDADHS+EgB_?h&Rs8WO4Os|1Xy>|M_V$xsnFJi%#vXk7xKkw*CiJC^&h* zKc?%k%<^*PufD#UKc-SkGXU}c3;-qo8-P>1HG4!@tPfxRjTIeR-k+i%p~yce1p70D SNMtzx0000<MNUMnLSTZlFE4-q delta 1380 zcmV-q1)KVm3HAz*BYyw{XF*Lt006O%3;baP00001b5ch_0Itp)=>Px#AY({UO#lFT zCIA3{ga82g0001h=l}q9FaQARU;qF*m;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^ z000SaNLh0L002k;002k;M#*bF000DQNkl<ZILn39OKenC7=H)w|GDShx%0Zy=}e~& z#<ozPfNcX68VVYPxKQGPs)_hWjL`)fU67dQ4&uthK<WZ98efS<f)IlX*qDHjh^>9n zVoN)1r?j;5Xrb-A?(5vog{^6!11I?w_scoIeCNw|55pr?ZR0yIZAUt=r=-HIx=H~+ zFX;DvzY$BhWPk459lccath`=w&w=;RHDs{1gMp?eH}bbON1f;Vnp6!gBWL*U9C*6w z+R*6YPwnlAfnB@nsIU9{Lk4>=arpHQaPgNV>G(&Hm!EBPK5g1+Zw^L0jC;HQ=VaR! zTgZTJ#R9SGo!O6%A3y!;;a6Xxix<9I<M7oVN8b1lFMqZ$G&XsjKeXFE)4EgIq(!%b zX<G!83KMdfB`Kw**PXF8gvLW&t@@b_wGB7-wrrg6dTKCutLJ}9S`CMS0%!l=f#y2r z*v@*YRw^2a)G`ZT1%UD($^lXiJepT{=3ZmnSXpyZ<*~EpZ))L)zj%*p%7Icp?W%vG z(CRI#1b@k13nU6)TxVb=fh+(7ND?H?@W^B4mfEe&`&;XFX+D0vDD3la5LkUEWQ3q{ z0SF!71qS2+6d02%fCyv}Q6bM@_)7d{joTgArn(;i6Xzht6sB4r+}A;l4#sl?WEo?5 zB4#oO8)7yCr{FNAloI4BBJOfXF5U{^5FBEOynpS^z@Es1N3&o-2a?Am$-T(Pyf2J# z-Oi7wic8kPe2O4XR+92*>4EuL1JBL_bN8upY^Gwcx@sxvq8qcO;R$kCkpZR%TlZRK zu1W|l6xDZAu$stJLQ5r*(_O(5bq%~`Dw0V9-+uMl-M(Sv)WAeTR*>J4SbofL^d8Qg ztAC23UT3_dL-hnYz-z_rnZ1<*Lzy4iPks`Q$7hPqaesdYViSI}fAP<7{kBb3I9%RR z5nh}Uq!_Xq8kSt8cP!I%c{Ocra(@4wKf8@9r@uUVrmgK2`<t)Zi^Bjg(0>E(y?clf zDf{l`y2^vm$bz2DWYwh{^mIBaXO}XXR(}#*ip|zFcXp4T-m!h-%&E^#JoHPi`&Jkx z;m7Z<r1rJEIanUtaKz8%{DQJCIHU;E31)_;tCERiVR~$QV#?=L)*~K%D^}LgqirxP z=g_{E9T!@6mU==Z78I9;ya=PSFH`8~ioG51v-2lToLu+3Tnx@+;t;~J1dC9PKYxXE z(uQSPSX`VzPfw?DduVX-5p@-ZB}szg5DNr+tf65CgtLHjDuK~q1Dsm~0IayXcHCAk zRh1wFfr!8u1D7PooI_R=sH*CbWjWZ`6fFw#b#e@V+}k_jibQ<DaM<5OMCIx9oE#gC zV`OB!5RXrHkBrP-I(M#rVU<CTgMVcJ9ss_{$wi~Df1)du)JtR@X_%hM;_B7D-!5PN z>+^VgA-#O#m0LT@Q50UOS^~fd1v?M8M>Q>!nV--6-P?QX=TvHL3je)$IsgNJ1;Aci zHG2%qmqS|4t?VZNVmVg8HLds;DFpj7dQD~>0000bbVXQnWMOn=I%9HWVO?}(05UK! zG%YYTEigD#F*iCiGdeIaD=;!TFff1nv;zPD03~!qSaf7zbY(hiZ)9m^c>ppnF*GeO mHZ3qXR53R?G&4FdF)J`KIxsK}rVPIT0000<MNUMnLSTZS3V2-r diff --git a/lib/plugins/extension/images/overlay.png b/lib/plugins/extension/images/overlay.png index 8f92c2fe7707273dbd79c2ea3ab840c2d02979f6..5414206c555d670826eead514b2257192ce2f6b4 100644 GIT binary patch delta 48 zcmd0GnINgn!oa|=RfdNNNO60*IEGX(CMVqBVPM$Cuw{Z>a~)8a!PC{xWt~$(69E5& B3*i6& delta 89 zcmZ?Cogf*)#=yWJFM6aCNJ*BsMwA5Sr<If^7Ns&crsOB3DtP85rl$s_CZ<#to=mj? qD&qHaaSW-rm6VW>aDzu6fq`KM!<K6cKYj&DF?hQAxvX<aXaWGYY8>GJ diff --git a/lib/plugins/extension/images/plugin.png b/lib/plugins/extension/images/plugin.png index e4a2d3be6a70009baf5027afcbc67d3360618876..62424b2c7a15fad2e05f1674ef3c04f6c353d6eb 100644 GIT binary patch literal 4054 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 BZQ}p{ literal 6824 zcmV;Z8dv3sP)<h;3K|Lk000e1NJLTq004LZ002e^1^@s62NX~b00006VoOIv0EhsH z0Eq*aF^~WN010qNS#tmY0v-SW0v-XA<B!(>000McNliru-3ST`9TlTpY2p9?8Z}8o zK~#9!y<O{iQ%AC0wRN>6V~lNqFT{`l2}zh4ATtj%PjcRE{^y$k!r*YvKy1l2_#(-Y zb*b}1+PkZ|tG8q_=jaQOyzjfKYgN^%>TdeSKmNh^10Mom@*e@@eiHyt`VA0~I6gft z+oFyI2-CyUz20^b_m_W?u`T!m0E=y`HuLnkn4$KwIF#Lw>=;fDV7EWL2D=~G)zafH z`+eC@5%^=`brOUVu54i<(f*!b#If0~?08$?db__b6h7<Q8Um+OF6y|+?}@~-?m(>0 z0i_L3ATZeVT7Ur}cVT9pUX-W%0A>OaXWx_F#bSH<4(_<i3c2`)bXPXM6r|jj3e6LU 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 W`FcF}$?DJm0000<MNUMnLSTZj<X8^? diff --git a/lib/plugins/extension/images/tag.png b/lib/plugins/extension/images/tag.png index 155dbb3ddd292dfd6bd6f0f914caffa1101778a6..1b1dd750ca351bc0c51f7d15124a9391fcadfe9a 100644 GIT binary patch delta 325 zcmV-L0lNP21=RwO8Gi%-006c6H|hWY0USw0K~#7FUCK{O0znwZ@#jr=EqWKi((BOv zV5DV)2bV+%F_tBkJxEAIhae<^h%R2dNEboq67&K*30(q@5+gmAZ^JZ*8()TD=J%0X zZs>7Emz0D!hh&p$bk)d`&OahOlp!etM~1{SGeo*52}txY<9{2quuXl9Na{YLpU&r; zDbFY`G^nkJB&co4oEc3*o=|)0R6UW{yrV3b(jelJmLm_;C_5q-+imlPGA1M@CGn(B zm69daw1S42piDUPq{$=79cA`%f-MZ{X1pQ^=k{LG=ZKw6!Bq=R&8s6JEjoPt&0C1z zI|+`>$dQPJn?8$nUIR!aI5b1l)~Dj<3_uR@B{SgO&spHx&+nQF1wVU`t(Y%ttiOK& Xd2&r=KUtzE00000NkvXXu0mjfZA6bF delta 740 zcmV<A0vr9+0`Ucq8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-so2@^CA8u?OH0007hNkl<ZILm#|JxC)_5Ww-jo89O} z#X@3tjh%&x*aU4Pa0DSmR8k}$3JMCQ5ah%{#KywHLeK-jQhziMBNl>RC})uv6ppNg zts*310*aVLZnOK|RVUu%bYNiM&HR{oRjaG3QV4-<+Xx|eU)#3bG&eU_<g-{_UY3?+ zRpi0Jfm~Qvkh8P1UMVFXr6Pm?;PCK}rKKhI_Vxhq`~9@FwV`QRVS0Mn`_Tf5ZQB4` zU0pFVGgD<4#(&RTE{A1V1OfqCTU*gItuQ$`>HQRFX=!18e*Tx^INsXYT5`D@$z+mX zFi3lQJF2P{VzF2SqW(D{7!1<e+v|RLdHG_RChP0#l*?s=5QM{FY}@AI;-WA%HrBMZ zwpM(<!D}{~1)y9m^Yrw@%E}5JkB7#_MhwFskw_2@hkxnl=s?r7!pO*o_dO8U-Q9h? zyu75QriOezkK;Hfih`=DG&D54A<<}*&dyF$RV@q+4S4}vXJ==3M@L6LuCK2nb#--G zS63JH_4OErfu?Dws!DZrHMh676pKZo(I^iO58U71e@i41-xYwx#l@84IA4>=<ZCLG z!sqi53V(%oetyQXEC5_C7ujqU$8pd!4MkB9LU^jAly5&8i^aNy5XXIeeR@w%51CAc zot+)rZZ~eXn~8}D_V@Qmr_-3G*}S>AdGi+lFg`xsErd887#Ps~em|K^hLe*MrlzLY z-rgpiPE#tCnzy#LZU8C(fYH&>ZXv{Re}BIo2wemK*x1-0l}cfn=G*Xx0Ko9@uun>P z8VZH<$Hzy`&(AA{KLr2=2M2vZh*MqH^-`(S9FNCu{_Xh`0Ek2)J}G5B9*^Js@BKGW WWpq+@%KDQ40000<MNUMnLSTZ-m{hU= diff --git a/lib/plugins/extension/images/template.png b/lib/plugins/extension/images/template.png index ee74bc1d54eec6080fdb298da960566673eaf708..67240d1eb0c8fb91f7db528c20296a1029512497 100644 GIT binary patch literal 5206 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 Q9smFU07*qoM6N<$g2wylng9R* literal 7547 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 Cf`;$_ diff --git a/lib/plugins/extension/images/up.png b/lib/plugins/extension/images/up.png index ec9337715cdcd9f4faf722214df78e71e5f021df..531b2dd7bc710855ce1e5e47be1333fcf6927c45 100644 GIT binary patch delta 51 zcmbQqbd+&|%EU}R9y?DL$B+ufWC2&U8xt?;Nv^6r@|odm8P}BmdmgW200K`}KbLh* G2~7a$`V)Tu delta 133 zcmX@gIFo6DiW6gTkh>GZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382FBWFymBh zK53vJdx@v7EBhTr79JfA)mxWdPgD$)VodUOcM*Mh<L6?a0tZhQ#}JO_WC2$;o`{Kc gdQxV;J03DJoGs&;BE4kJbf5|bPgg&ebxsLQ0IZWH#sB~S diff --git a/lib/plugins/extension/images/warning.png b/lib/plugins/extension/images/warning.png index c5e482f84b3a140a062da69cd86d0a98019a8fcb..c1af79f0ffa5b8ebe561b8983fb0e843d8157e4d 100644 GIT binary patch delta 581 zcmV-L0=oU>1l|OYB!4AIL_t(|0i}~oNEC4x#-I6c)ph-F%TxkGlN2PAGE&p<)`vlz z`dI2(bPDO%p-Tq|g3uy6BvB#Mp&|rJ1WO{KQ$brO8x@)Dy1Oj4iaRs^_kCObL<H_u z;17N?!^=GHJPb32h+r+)$V2kk9!p5x3Ui8CdaL)oB;>$E9)E;n&{wm+#aF$rTZm5~ zA0o2K_+)o5HqrHi+(mIyVVQrtGdcHgM=-~|xf?L??c%ynsbQM1OM>v%hk`<U@xL0x zo_4iG$2&;K5hr$4-1vyFn~*Q}wyDpfTigEGK$!0an)^*wOZYf(ACV`wz+My;t>-Kz z9{TG`jE#4O3V$j)TS_(^#>&@zh(Mc}8$fAe9|~)Fx+6E6LOB-baDbTy{S8OKDhaSo zYneT8W)|hm$H2swX0C4ztXjatBmTN0>k2Cy;3Xaa5ENDT0gb?kUPEzJ9m<-HZ&VrY zJbt0S#P4If8in~o?SUzqR^Gr{xB+IsEGWWqB8|clhJR%Vtg>EMrH2q6YIn&|E!!_7 zBD#SPj|R4!v4xjF=~sZTe(I;`87#b?2OxT;Qj;*uWmI+a`;_Bd(G9*mYVWhkTgNu^ z3__)!!;9b1)tCh$hR&Lnzz`QAl)YY$qWS^68xCP{cKV>rM8g%0Cv?aTbY<;?#xS4} zebD|M7(PDK?mmrFc<Qn(#8dGXXHN<-IP0Hh@(AR3P+3W<K(5krR@&EV{+)jUluTpU T@>SgO00000NkvXXu0mjfHAof) delta 588 zcmV-S0<-<z1my&fB!4VPL_t(I%cWCGNR$B({{DxnuIp>dR02a=Qjko_$TbabJq+s9 zW2tM=DWqeEE*&HYLW}H>M1@d?iV!RjEQyFt1z9LYMrN+NvY3kgkD0H78i8vC4$RD9 zW<I`em@!CVJ!Y>}n0~R(qVPRcQ>tt(-v3(C^_gn{P}m+QIe%CkC_d0g(KBmOAi2sD z{f*&xU&BvvXXvJeIPrA%^!Vdl;dH%e8K~&p?6O#{VVbaW!U&ef!W6yyUku{U8)_$e z>xJUbiC?Fi=%TtwetodRAM4&;`%eZ`y&tM-HPxTP=e~y+eRc=xO`@RYf~BGze_dj{ zHyX<*j8^AtIe&_UZ>=B!5?CB>LvEx6nI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K z(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb z43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D^T}Cc<|r(Suz&KJVdWmdP)D6Bj$gg=QgYN> zIvVW`Z98XE=OD9h04f0D%iu7kK2882K!u;`hhfg6sJ=DeJKi+_Fup&jYq9ccdNwt+ z!=HT#FL7^4k`kl=5HKympbJu9S{sp7-i8mIG0cn%9=27avmkP6=`lhLutU*hamI@L z<-p(jfJG5N>E5$Q4GmniDLRmNb^bI(p`!RRizg7rgYS3{$AdUN#PuPbKz)Jw^43`I aJO2WdOk>%nxl=Cy0000<MNUMnLSTY87!?@+ diff --git a/lib/plugins/usermanager/images/search.png b/lib/plugins/usermanager/images/search.png index e9dabc11ec18b16b320a6a3caed01bf46539ad00..3f2a0b53b8d2948dd6666848eb6c9aa5ae4f923f 100644 GIT binary patch delta 39 tcmZ3+vXo^*DI?cxPZ!6K3dZCEY?B)prwORN>^;f=1fH&bF6*2Ung9h~4DbK| delta 40 vcmZ3=vW#UzDI@nBPZ!4!iOb0e2bd<;GfoqDwLdS00SG)@{an^LB{Ts5Aw~_+ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png index 4b8c26b723c23f7e83e5d61edaf0872d7b1bf6df..f5c2d583d93997fbd38481147839de401555b1d5 100644 GIT binary patch delta 48 zcmey(=r=({OVrcFF{FYqIf9iv#n^r3;xmEIG=v$rJZI=9ye?2+00K`}KbLh*2~7ZR Ce-7UO literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRl<n8Xlz--)7)B)s) zdAc};Se#CdU}fi7d?xUjM)4F+Jz)ke&l&nr;WHisRj8J@MwFx^mZVxG7o`Fz1|tJQ z6I}x{T_dv)LlY}QQ!8TwZ381K1A`>Hyw4~aa`RI%(<*Um5Kg}457fZm>FVdQ&MBb@ E07$1j%K!iX diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png index 718a4045414e0dabd438660f79cd4c6f228e6e19..e36540bbf980dbc5369cef72757e55fdebc9177d 100644 GIT binary patch delta 44 zcmey)=rut_P0-WDF{FYq`3FDK6;=0>fkF(YCVrCfI(^!l0SG)@{an^LB{Ts5Q&tZX literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRl<n8Xlz<9SycnOdv z<muuVqH#X?2R{?f;wKuOp+XF&CVrCHd|R&?D63lH8c~vxSdwa$T$Bo=7>o=IO>_;+ zbdAhH3{9*IO|6U#v<-}`3=ER&@;;+z$jwj5OsmALK{)xEKTrdMr>mdKI;Vst0DSH~ AuK)l5 diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png index 9e3de4335ad12bdadbe7cc0710afb7ad73e42ff1..8225e3e18446872ddaffb9f1540e88e9487407e8 100644 GIT binary patch delta 156 zcmV;N0Av650=NN?B!7QNL_t(|0qxMS3PAxB#_|98Ow`>Zlq<uPB37Fhuv)FGR#vYg zPvj-6ZaB#+n0(Xk)K~xEsJ=bc_p1QF7-P)Od6mygy;3xzh_Pr>vJo9dY(<wUc4EMk zQ^G8cV#u6x5{pQ_TasJ!nQ#z2D)ygPWUR<zDMW+TzrWlVV-?;R+7#j7-M1eA0000< KMNUMnLSTYixJrKj literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fC<Rju*&f~kYY)9^mSxl*x1kgCy^D%S4j2< z@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zq}S8MF~sBe+w+QCOpYQA59{Y83FI_)Y*@_ZC}CL5@j7gEq(SE0-xbUUn=4vH%eo&+ zAABV0a@afm$7TP0FPB+zGf1>0O5A6=I_1@@JGI~5#eHD$N<7iC)*$I!nUmua6%n1g zfipHNQi?Y*`FQyRzwMUb!ep^Gm9BfYd46CC=VG?Wc6@Q+e|P3#gC6-$Y&MB1!5wcZ z^?(jjEpd$~Nl7e8wMs5Z1yT$~28JfO24=cOW+8?qR)(fl#s=C3Mpgy}Np^XkQ8eV{ ar(~v8;?^LXe9a%Ifx*+&&t;ucLK6VW8-J(( diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png index 18fd8b166728f5ff185aa4bb3df012d08ac78854..3e56dbdca70d7f64ba34ff09e09546614800000b 100644 GIT binary patch delta 43 xcmeyy=s7_}Rlw85F{FYqIpYAU`$G+xR)(n=Cm6RM&A-F|1fH&bF6*2UngBp&4!ZyV literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI2NH8$CE1Q=ADVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&V7%KUyadP- z^mK6y(Kw%+ks#5!xIpAl1H;se6O5NlHf91PRZCnWN>UO_QmvAUQh^kMk%6I!u7R1Z zky(hLiIt(Lm9c@gfsvJgL6TkGXA}*&`6-!cmAEwsCtvdiYGCkm^>bP0l+XkKXb3%P diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png index 8f31ae15dc12a2fd2e30491065baa6735ae6fd0c..d5265f4dd28a8827ddda4727345df0d8e30577c2 100644 GIT binary patch delta 96 zcmV-m0H6P@0)CJrT181jK~#7FV|n_Yg@J*}XcUd2ueVtk3s@NcurP|VFq*J1X0tHm zurPM8FtxKV=CCkjvoHpL#ecIfu3%x1A;!#6G>QNMnh?F=W(A}G0000<MNUMnLSTaK C?kH#g literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z4^J1z5R22v6~E>uiu5Y2S{%JyBCp!;PGRy6>C*-IN{9d2^Y9x>$kirP1fBcv#qe;k zeVh1aiMY6=iqdHhOEnL_?p&N9BG}BZFMP3Tkl4l=pqZ*At`Q|Ei6yC4$wjF^iowXh z&_vh3OxMUP#L&db(A3J<K-<8`%D^DWF7GpnhTQy=%(P0}8ibRt`2#gDc)I$ztaD0e F0s#HhSh4^B diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png index a6effc68ebd9aee94648798a7a6422afebb81618..1d509f45a5f10257d185c44e5e0cf02f80810bdf 100644 GIT binary patch delta 91 zcmZ3>R5?K<)WOrmF{FYqxpMmPLkApEO}gAJ_H&83$&0mx>hx4cO6YGes7p=!bL`NG vgNIIVrZnvAZ+w)%+N#5I=*SGqE;m7j%-KRI)7Lp(VgLe9S3j3^P6<r_r?(`G literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z4^J1z5R22v71NI!bh!y$y|_7@=X|fky!(k2hLazrsvTZ!(RN*tCqGHz-ZG;--Dwr_ z2R<B}@le_L@bRrY^PfoAN%k!Ybm3uQ=ymv}!k}lG4>VJ?#5JNMC9x#cD!C{XNHG{0 z7@FuBnCTjsg&3Mx8Jb!d8)zFCSs554+2wsk(U6;;l9^VCTZ3@&HGiN622WQ%mvv4F FO#n$VSik@P diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png index c50038affa7e2dd8704b809efca7cc0edd834a69..38349845c5df7d8d112db784544837c3fa168747 100644 GIT binary patch delta 158 zcmV;P0Ac_00=fZ^B!7WPL_t(|0qxMS4M9;HM)C6{UxbHOm_uy_IwM#>&jJ>pmI#gJ zmMVpk70f^<A(~4<Y@mAo>Q|iZIFIiATh{;({GA{Og1mfg9|z0oX<+J1SersK?M#z} zPNt=#%a4-1vT5tXw~=&xqZMaUXs)AaFxAG?7&10c(y99LAQuRN7ppxYe}jdJ&Hw-a M07*qoM6N<$f&?K)KmY&$ literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fC<Rju*&f~kYY)9^mSxl*x1kgCy^D%S4j2< z@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zq|4LAF~sBe+w&WF851SiKR*92CiFZ;F-)NM8lRVP!~uqB7cO+W)Cx;9@am=gusbQ+ z`Oc1YV`IRctLrOPwQs37^G=wV;dr6U^V=7;mC7=moK-ky(xx<V?MolbcCG7`i=NvX zv-D7V)8a`Nug?x&9AZ-RcBjNlGb_p1Fe?e!XF9wZ5`T_vd2DfxzmmyaS0iQCd`=Ib zt5i!|BT7;dOH!?pi&B9UgOP!uiLQZ}u8~=Yp^25Dsg<#Twt<nAfkBd8-e(jIx%nxX YX_dG&2q$0j2WnvOboFyt=akR{02)bsrvLx| diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png index f08378e9febd56a97ba6699b43b3ec803ae973ae..a374f750106646d810861a41412ca62376cc59d7 100644 GIT binary patch delta 92 zcmV-i0HgoE0(y`nRzXQbK~#7FV|jdyg@J)C=oZU=dlm+J5cyw{<^Lxz`pokGG|Rs; yAoBkiAOdrjf~C#?Nr+0Q7KSvI|2=R6>5l*<vL`8NsL_A`0000<MNUMnLSTYVaVH4? literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&7i zC{Gv15Q)pl6*aw$ei_V%7k}sJ{~{sx%*ZAqc}M)g0{!lXc{+z>dE27nCGy^-@3?rj zz;@2VSwe@WKIWNTZWNQ1x+CITK_b)PpK5Kz?2_m1C0V>aQ1I*wgA&8WY4cu9jjUz^ z+M-(G8c~vxSdwa$T$Bo=7>o=IO>_;+bdAhH3{9*IO|6U#v<-}`3=ER&@;;+z$jwj5 YOsmALK{)xEKTrdMr>mdKI;Vst0Kqb3nE(I) diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png index 8deb23b9d3247e4c0abd245bc0f44857157650db..a13f9b4dd243bb8ef4a9475f1f293bd779a7d98a 100644 GIT binary patch literal 3778 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 literal 7006 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 N>dM+m<q8(>{sVtvH}?Pl diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png index aa2ddc3b505ab063a07c0cb81fdfaf7050a4223e..945c3d704b777a5a83f0e18109f504baf9e89994 100644 GIT binary patch delta 3393 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 SolWimzfq3ZAFj5fC;cC-{Y;nu delta 4219 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 Bz*+zR diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png index ef231bb2550f0ecdfa2470eff59573d80fbe4d74..60ec1c692f45cd72b780dd01ab7df49d61e62e2c 100644 GIT binary patch literal 3778 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 literal 7071 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 P%>a3Xigfu)<DmZojx0ms diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png index 8bfb685341064524e810de23eb8b22c45b3fb70a..48de3ed6b0801b233683d4108b0802a2eb565ddd 100644 GIT binary patch literal 3778 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 literal 7092 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 diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png index d72d6906d1068db96752c0cce7f6253b1a081336..b987966e0bb6d52c49d61159946d0466cabe1997 100644 GIT binary patch delta 3393 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 SolWimzfq3ZAFj5fC;cC-{Y;nu delta 4219 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 Bz*+zR diff --git a/lib/tpl/dokuwiki/images/apple-touch-icon.png b/lib/tpl/dokuwiki/images/apple-touch-icon.png index fb5f108c06b9822b995e9658025456ddd41625a1..87c99a9194b847a00c6cf211fbf9dea06dc22d72 100644 GIT binary patch delta 5513 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 LMNUMnLSO-c{bP?d delta 5576 zcmV;(6*ua@G5;~JY6E|ONkl<Zc-pPn30Rcn-Ujeat1a#;ARzk;$n~9bS~Sbb7R!B? zQe+815K&@1$gms(VW0rP6O)d`(xx8E#6*Wdtq?c#PzDAX^P$M+xZy|%q@FqV|9R$p z-<fy#F1@bKJ+zVf<9@dH8T3B?|7!d^9le#ligC^kfiA-5d;@=7oE5%GZy$f2{|4#l z<H#5nFQ+j>M?ayBe62Vlu2vwGfg|TU`|L{tA1YA(G1AY6*Ku+1@)|mP^sun`LDOE0 z{T;c@^6yv&OUDOik37aQ$IC|~?|syKyk&KQB3|sd+SAk1*VEV62Tv6LeXhWpevab7 zQ>#I;JnP_hPvn1iyE?B;dm-cka`foYs|Y}lHsU#m=X45uk>l<^b(~0^f#Vo?mpWdo zPS|T0wx56g`4-ECTLfM>dKIL-h>9ehOLy@1bH4xhaZb)bjvX7Ml#}D(INQ|u-~VHQ z#y~PjB$A23sM>%Kk?b)(E)PKD<Uihd=bh(hI%TA1AnJd>5d%>m!AYPbG7w=RGcDqs zqHHIK*5uoBXgY04KQCgWNEONC;ot>;i0z<4<Q)OtxszD1>J%r{AisGB`HH4fHkV#D zASby;FRPNa)5tqY^GIX_L`EjOA2smUvF9LSXlXiaNrxBgMVK}n5u0h0IwAsir&wRY z#d#m@`cQxW5}BNQ$=8;2nPx@y(~*PyiLo7Rw{tgFq=v^b@il$jDTIl;c0F0ZOin6n zmydIh43u@0ZO5y9NNz=HS-9D3-h8{ljC7C~sXs~JspA_yB=X%S3!bHo^4uJW^z-rd zb#rrlLNi|wMUx_dB!)EBQpd9JWOE2A0-8lu>c4-{68{cS8`T66=7hg<^4%x(&{&=w zcb}tD;pRGe#DIv70|yR-h4s5s=_9T-qpU2BI<7IB<4}=0t;3L}n$3NUZEMVHFpnK( zbJ?A9iGuk3-v#pBhhYljn4pXUV&-dQ9YZq8)@{zXRgrAwNsT*tbR8&=kj-mAhMU8& zZYqDw;aE9m@xSI~&u%%@0&&G>?@J_^oOHg=4U(9kBC+GT)HUJepKHn4e2W_Kgoj*> z1BGQ{HYa1|e*Ya`2guE4^Et$9u1KHV(n4aw7w=0XnSllRK_dq~<aD0`CB;N&#Ez*1 z#L+L0mYd-=#)Z_PSq1AC*M~8r&;H(qzhQrKpgOJ9<Ui|Hlh^|BZ#LwI37>q@vTAiy zpv!&AXe+WdT|DAYtQIFZb-Z<p#*z+z5EKjPq5ta3Fq<3Kn8Sach3Ug~EJI@~oIe*p zq>}UA{F@E=*(WS@PD=m#d`2+rU+i^2CmuPd5Q1fsY_7ms&4A1ffC>OTA*kL5cP@XN zS@<g#3nv%<%8nd>$h<FX$Xy$__<$1~>wcpw9*a&q<YLU`7twExITgF376Z!mV;St8 zJ`8$D1scZU)1ce1aM)Tc)~{+}B{zIwL%yHDz~lEjd$Na@t3_j~`UT;TL$M5yspfEu zD5f-(9RRsN`g#Db!`JdV)@d?&-#&lG*XnEflBOmSzxl$3v<zy?gT4TXbR$Y&HPc9> zpja75{GuRlVJO)lH;c$Vv`b~HCYP3NI7C{jT74Z8S4{W}qDX$Y;rMY9OPsvnG14~z zl#rqzh%6|!4kV@&1A8>toJ?X543HREqzro_*$kZ><jKn*A|!$oTfUh95$1mb4$`I4 zdjMJI@qw3izHs93wR!<l6$cWBD2Y9rA>oiKBeH{SNBl4n&n=5ONnq28??1C9Cwy|8 zN}jrZoS(l)`V50eD6x@Y3?!4*>IGV>wK(Ny!QjNnMcY_<ZV)*a+p&Y%LY$iok&^H| zNO54_p9c^*>4a&NNPkzR@tS}0wY(%>s~6Z>&A=>HU_dKUlL>&x4%Tq?bgZb@+;-<q ztY)?(N-e*@pi;?IPLBRIq#H1L(MNs}Z)v?&*MZz@=1Jz_?OE%}W=YTEIQ42S&ift_ z$qC>nvmHGBWn{;B9-t8#-cekuA($&{j&<hbHK`TrGGgUd$2&-^ZuNi3lT9Z@k&|!E z<JW?g2QiH@(zh5Ey<j$`i%&;dtC&Sh>D3;f{a;q^z>LsCgxRv;8;C;7&k{~CvcyRV zMn-yjoR@0q#LFtJRgmH4)E-2*tRft=y5+1AM36$u3CFp(szBjyPkKIaUW!h<$kFlB z7<Y6HhBW*tK!iNrQ4)WHAW~L*^bI1I^G+d9XKSLz*^^kZR%H4MOhovj5^EI+fhX?> z5Sgzpu@}F`pi)joX)hh}>W_32yu;_uYo-Zg94*kzJ!PA*IAiTEtDMZ!m(-D%@DWJC z{0NUrN=ZR<dwctEpMFS1BQ$y;ML__08bgj^(a1045{M*5mDGRLagn#A%xh_3=4!pR z9U1J~52?&QOdeCU^JUj#8<9m6apcrNtUH;ofk<vnSizssEwi&z7+L1r59v7A;vtb? z()Admcs+(Gy>}##9XSwDa^40axwruywXD<U)fXocxyQ@Tp7a|<98ZeYUhIE6#;GA9 zO<(;(A`_YbBCCJ&#l5{5*#O(yM?1<%#8m*N7X}ppBvKsJ{@y$CBS#P=azzs-SF0O) zdwbi`+uM!pMi1Y9NH<<`;;w*zCp9Q}*Y}P%ax7vCM1h>w(!|K7sG_O8$WmQ9Ok=J~ zKcpf9b6FU=W5<qw05u!cyS#VA+nm)UB(8uckO@s(EYW{Q_VVZ;?lBrMnRcWy`g~!) z_U#}iP1g}A4Ql^K&dq|Tl9Cb<zY<z*Si!_5Ok)J|ZuH(zAEK7VQQr2X&%-;mBLS2C zb@(ty`NENb5O3<EM3IviRG!)C9q^cWL$k<8Nm1C5k3agzwr$%23J+7#U%cD9Rfusq zJ;;Q&LGpi=33zr<>Y@^-au4E-qB0}3OmeU#A&wpU$hIAYhtHhB$C>PD(x}>RM=stB z8d*RhNQlUalU!V-Pq9=a@z=y+Bg+_18xkVOUFYF3v?z$Y|M%(0$*?I=CGWfql9}_G zPJ#rwT9;uh{+gG<$ze)c^3kzlAN7qmLm^Z<UzmSK5u7wp8r7R5-proy)GCO)WdcBI zd2+VqtOP>*)x(36`3f8Iafsu+2Y|y1i43#bj-fk33#UsWqTjT8P>IFFpt6+cwM(rk z5}A_6MAIP$8}d(M$3E`wISd$2iq>x7Ox%HlPGlrYqk7ZsH=>$IOu(s5!8AtKiy%l! zaUy>cji#YKG7>x0RV0gx`s}u2zz#}4VILQ<da_{ZSG@hz3ic#HR_ki(Z95_vMO-wE zP|C>hIPyd?Lu0>i-o-J&(c2_;<xK%eW=kCcur4aQw70k3w&M@Kc4#2dt9YC>IUaNQ zxWA%JAUo9d+p%yv3q#4&)V)FGtNN%_)DnNw7zWO^Bg7w0sHr7#+DpDkuw;wHnmQ6~ zx8uZZ+e9>U`pqu=s*+c-HX&08J-J$6TrYJbkBdM2paaOv;XbxEyhnll6{~XMVMboH zJLC$tA);DXJ9`z(O`Bdp2I}=u>c)Bt*h>{f5#%0-l)=8%B=Y#59)09T%J$Gng_?gC z`sBwdk&+rPEwDhR)2Y+b(={4RwmN+(7o~Xw3lT|AGVzo-%Sgm^Qs_3A$RmIKaohGC z0imJ0CQT~j38l{qYQXdZwQW<oy1MFx2o*&zSfyIb$n0E`X<=G0M%T+vM)D;)eNyO- zZAA7Ppu~or>uRg5t?eiUDS?P6E-inrK}v~Cj4_$w%gYxU45J<GNJZlr%B3^YAAWdO zXuyu`+xk}vQLnKUX>2^ZR4!sbA!d?TeuGGDw8^wMvpn8l@bI-GmHC$_XD(fe471GR z?W5DDA7z{LcBn-RoemKsKuX(GnDQfsbzBLr^M}qz56okEX66Y)u8SS%GXj4edqr!7 z?I=C0?l5!5M0kiGb|B45W!rHviHo_|nUV)GEi)4%i^-Icexoi~Qd}gv0Z{t3{kXmG zCKspH3Lw(fR%*K)%cYK;o%x9-lc8Lt0y)atmPA}FB`;-YB#}s-LIQcta}g#)1U;>` zV@^#?CKr*6B9k#qrOGrK3@LvKJJJmrOPiXD%!3#kugWQ(OCV4ESsU=|*|TCvh&Omi zn1n7`mZr+dQKcCSh9nm|(l-Mfi;jyhNqlDQFGy@x7f>d4wMim3ORWyMgCK*M*m-bq ze9q(?q<oJ78RID@y;DSTuGI}7cnOI)umrK5NQ8To=A~ALTn@E7xG;Y>p6!*%H8rYW z6N#<EyyYY<S)TM4rD<Hr#L8GJvEFJ>Eo5^qZ+WA1ad6I(C2MQeT2eVVZ6QDs4fzT= ziS=Vib_DN;r2Rrs&9xT0q>3Co+Y!7nExtT6XYCS%eggdyU}oCF^g|Y~we^sL9qA^J zi9tfgcqW$Lv=-~93gUk(f>b#T-yy%)X056`ZSmI5%a^kkiDc_gPdl=iy!K0%^5zpL zi6ThpihX7!8mTHF36abtYgL&wOV;Kb>_i}5E{d^$-L0)7lycHH1|GdU!mK;4z0=h- z_nBvc(+H|z%NK$y4K=8>a&alvPv?=G%F1{GiPYvZ(a>$^?k;~GCnp^}s3Q`sy(!Ei zg0=A7%kGnZks^^xDpi^Bpw6B+apKz_C{!-Eva)h9iAZFMD0c7hl9QfKkcW4KF-0V< zq+k2x$?on$3iMThRR!+Sd@X6n!P8-7a7S}<bLkP}1d#{DGpD?=vSuMXBqb7qN+M;r z-EV)pf}?@W)ewLA^blBso|-aaih9WMD_0ggRyE{hNNFpdnOnc~EJ9u>M1UlI`z?_y z->NDrbB-`FUrQ4Sk<`Jya?*`FsLg7KbF&9cp8V?W-J1rwufM{x-n}ZXgFmZEx!7zi zqGl%#n@-gUB4di!xbl=a%Spweb{-wb*a-dP=XWDj)q8)dFIvzA%d3{<FC|l6k&#<D zh*?}%0~0-eT9l350gVL@Fd3;V7Rb3EYZL$H4Tuk|-%F_mC{}Ijy|GlPh>-W~!GoyD zMVRQBgZVs^PGs6jUUamhjC34qA=4X)jL?I810|82J9qA7RWDw=NL7n_kMMOPRb&yw z%gn4<{L_DB9hEF^C^r%5;VUEkMp?-0h?_TYrP4mNd-qeXgCr9{Rge^_I!ov%iCc|Z zIY>F8!d_YVla7Wpt)Zcu$XsU`i6zUE7<97>WCm&mR#yw+#*G_M^&(f<tP*Ke(YST% zR`Oc8c`y@Zy!te#;D&~V;O_2g-Clk&(hcj?h*y8!{4OGE!=Bn*aOI-4`QCdwuLBgT zF0vI7q2*7Pf9foU`EoAELm+c#Xh(U=NJTDh=@Hh|6<3SsUM*N~<;rzY1o__A8}||j z`8unLGe81y(*egte58SFSO}^H=1SB|QOHQ|=yoF|THDpt0kJW1<dD~|Al2ODB!a4> zUcZ0Nt3qt&;#LFJ4~g_bf@{9}t`b%zNLBZ>Ye_CL(r1LxNFy6l1d^_Cwdx@_2N()b zBKPe>Rgeg;dXR~Rt(_pb$g}^%)892TWFCrdKo(xRc5RHOE$QcKWLc!a^_XRT6-WV< zNSOOj^}0o+s!1RLLTn|mTQEJI23DyeG9G{AFmFamv5-g9AbA2GyCP=qPO&BO`RDsK zR>PC3ZY8mm)~n$Cw10no-r}4F9u>%Zg^YANZQM$x4kW*;dg$C=w?a396iozGk>Bva zt8%ehFjuNnl~2dV*H}!`wQGkQWTbBfJfOO%UE=N7qsj&aDT$wc`swGWN-ADg=vaR; zfD}8H!+E(u%wp6W>S;@Q4=}Q%H`aG>5orvodTasnF4E}(6eKr+B46(XNw432V^u98 zJ`8CpYcdVw2&FCQIn2o3XctA)mkRGWaJ6dGRxP)nl)X|*%9br#KHvBoL>5-Ho5*YX zDW}uvQijm&0c4E)&-=K-!+uW8r>lP>Cs}4CRxJleD6u<%iY-C@^PgM3-pfg$>VAwX ziw@`9H7R?%WTcykwaiPYuP<eucwfyZqW!{a5(<()fkZyv3C_AIC)Imw&EY<_q@vkG z@d(59v5k?^ojhV0(2IBpC`?9j^UE*4-12p`tSX{OB2iKYD{V<-3?uWkAg6y?K$d2@ zcoe4(S$|Q=#(kWGNF?&{m$IrJ`}Y^+N+6}o*_L!1Y%+D4Off|ud(TQ0A+qGF-Ct+i zb#|_AgekQI`SHgeY<W+p`nr2T;GX@7F>s_9VghZ+@uOJFMH+~`s0mFHk08w{I`;)2 zNkxE4Eg^#Z;De9%(NbDor5}GdN0YQaFIw_)BZqs9!@$axtN}T#CbIV|DoP-kgnD3` z0_0VJ!jxJP`PN%+ZE-IcIb-I`V<XG<dw6hek;iB+XI~!}GSUrXr^%q}r7YzYDdY*4 zog<OhF}x<L`rfCuEkS1LH)UmI&7ApA@&4#MJhP%ldAayH`T?*f75smll6tCmT?NTY z3L@SL9MKXAkf-{+EwYx&X5f2@Fb8@p%3C&UjElmXas86Yd`4<I*ta>B$|?%itIp0O zY*UC<sCCOP@r`iYy0d0Z(dl$9-kvsuob(xtfi<)iMKJP4X+I)DcjQIcL)HTmo+Q;@ zqo+W=JO$sZef}?-vR;33mT~qZE|#ryqfg9d;;+3j@JL5)OmXyp$h^d&Y>h6k3aFqG zY9T*H$yckZt6#~Q;p~4G5^-f@WC|01?d`~j$&dDk)Dn@dR;xAHMTy!-kCft=+@#Z{ zVr)}z^y283M6#04gPf7|ipxEaZpKz5C6EYAL^=_99%>IV4zYinrtC2x27@UY+Y}{* zhgbDJm>(BVN#xb68TUf^<`S8dPeLoQhY8vg!nnvyBauLj*rr#wDWFde%wi?~vO8;# z_dSr_(Qu@6w=y6<Q383(JzPZg&^F~BM+>qzIb+kS4*vH*dXB*Lg<;*@m%9;GGb!Cd z3L;F1oQxUa6}W#~7+RzX-|EM}KEHbtO5T;^>xW^j{6%JN@nBsNaT17-Xe=8{r>2kR zIH&ahd4|lu?`S-aw{0kSZ)7*;C`mB`hPk@BDU^<G`L-1)x#Fpb_&7VQw~+2rX2Qf# zFj9GMq~bKJLuDx=MllOpc|4*VVGAxw88yb4PE9F}E<=A_XXIlKfka+$^1C<EcQmuC zPANZ-j>BnGxtJ9F1f81W$IE}Jw}U&O>j%x8i9>w`{@C5Uk)A%XuZ`Cn!^NchVM84h z-k#$TnDQu{+!y?|KtFTl%o&4Ry#4P^+DEGC7IV6}c*O8A<CNfd{Kos)|4^mVV^<1} zy)@Jr-xfgl10>b-)eRrxrt}dwfb`Md*XQdLSTGKY>W`6#50)lM`Pl}heLQ8LJpTbN Wm<;P`&YZ0P0000<MNUMnLSTaH!K)hp diff --git a/lib/tpl/dokuwiki/images/button-css.png b/lib/tpl/dokuwiki/images/button-css.png index 706325e1c1b6f7f666a2f655b6874be1d3ee7dd4..5c0f5a9936e2c0c52b150f138b9df462b58c5724 100644 GIT binary patch delta 153 zcmV;K0A~NI0;vL!U<b5GL_t(|0g-1se?Wvyq4cKvmRtXFG%$kP$hBY<7m&niqWI6- zyC=<`=D+|}2r-lkn?mOQ)BgrYeq~^Qnz#yrFcmWH5B(d&{)2(V0pdmm5W=dkmT710 z+-n_u2?Tu2V98J}c{`xyg#aOij6f6wvKgO3qT`zA)B^xQI3%-?ic6*d0000<2SrXq Hu0mjfkV-^3 delta 155 zcmV;M0A&BE0;>X$U<bBIL_t(2&yi<5e;|ZKq4cKvmRtXFG%$kP$hBY<*D4UgqEP(j z?cI~+Pjdi!h6`dS7dC~=|EK>Ako*eqHPFOW5QM3aaewIFAod>&EDjJiGJp{_g|$pO zYv*3;=u05rYX(b(a>?5PH7^7RDFk|#F$iQcA%(=nHL<A&075t<v+02XbpQYW2>?k& JPDHLkV1l=MLDm2O diff --git a/lib/tpl/dokuwiki/images/button-html5.png b/lib/tpl/dokuwiki/images/button-html5.png index 5885a331bb0a14ad1bfa14e5770d69eaa70e8428..f7b068811dd47da122d16ade76d538978227a71b 100644 GIT binary patch delta 220 zcmV<203-k60<i*+B#}uxf4oUVK~#7Ft<%kpfFKM6;OS2bf{gF~wtKJ#FKaf76Wc}) zUnC7!9|wz{<_*05kpfkjn4|^(&#ND~2SS(uP7#>+b*^>nfzyVEP)${IEFD)C$ot_v z>$N_-fF6-z6VXiAJL!CaRlLfr_6Dj!A_57+I37!>c^Ciuhn!|mQj<o9H9o)+9#zsi zNDphxq$Sll$>aDPWVLrtg&9zR$mqSFV{gmk1gYwfXw-Ff-v#M+Z&?T420y&ZALj=* WJw4Ir3QX_-0000<MNUMnLSTYf*kY^z delta 267 zcmV+m0rdW{0^$OYBqAAfMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&oks&{S z$Vo&&RCwB~lgSRlAPhvu8(V_;|GzCQNtGUwRwWk5g2U5{2T*S=RKK;ZfbEakfXp7S z^lkt&w3Ndf5ahw&3lW60t+nPk;37qhoQ0XVR4#2-=wtcl+i|<N0IFFaSzuAfQ|cG~ z0UX<#zky#ADhtTW5FjY|5X#oa_Ma7AcFzJ9ims4&O!=trVEI(z4pfua?Z(jO*d2S$ z=Ro%#6e_=RW&%-3DXnEL<?b2J*QkAx(YdZkXMrPE*BExgv%nkw^3C-SU;sBgJ<-5` RQeFT6002ovPDHLkV1m*9eR2Q* diff --git a/lib/tpl/dokuwiki/images/button-rss.png b/lib/tpl/dokuwiki/images/button-rss.png index b7cddadec707d93233e3f2c72db8bbdcd6c552ab..aa6b7fca86eaf238e0680a9a22f6ee947bd51381 100644 GIT binary patch delta 125 zcmV-@0D}Lt0kQ#*Ja%D8L_t(|0p*fG3V<*S1l#fdf0i<r#m0k@i?}44lfxh#{h>7r zIO}k{$ajFS+G7iJ;~3yl8_>}#4H3qg0B%KXm_5mFxi_qVdWB>fy3Y(9!nXQ{kU+>X fe|?9o8SOa%I$a3_nU#7-00000NkvXXu0mjf+Tb=M delta 127 zcmV-_0D%9p0ki>-Ja}VCL_t(|+SQW53cxT3L)+K?|K~A+giUu?@zS8Nmp+0x`bDd5 z;H<^k&^bV0YRChK+Cu_fmVi-uJ0XIxcmR`8C$tObAABdQfsqTl6RQ6uRC$Hf4!tW< h%=6Bs7uc%Nt_wO{2?WC#%`N}{002ovPDHLkV1iSvIoALH diff --git a/lib/tpl/dokuwiki/images/logo.png b/lib/tpl/dokuwiki/images/logo.png index 35640279c228d702aefbc0932f6edb0eea292caa..a1f4995691b91ac58ad41c46f1279b2194000c5c 100644 GIT binary patch delta 2898 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 delta 2975 zcmV;Q3t;r19qb*jYy*F5Nkl<Zc-oECc~Dd58U}D@Zd<QfTX)3`6p$@}|89G`+}_rG zU+S(XDx#uA6kL!+(LyT%MW9uXRggt?2^3?ZjV2++m>@|=LKXrfAt3}v0tqA}-1nSt zLZ?n=?lW;2hv)ab=li}Brv&^T@yGl5df~j6u2{Kz(Wf(U@GpN}vu3YciVJ}JJ%IP~ zgA&qOH2c$kDwZ8MbTRQneYNh8cR&DcT3%4lSL;?Fz~3*0w00w{ch#fzUL6vP&8EA! zBEWlE(ea=Q7cQ*xb^`v67A*D8We1>jqW;~x5m_%1nf*_(*@hEmEj?ZY!0MlWx$rU0 z3C!MoaiS&bmC1i(qi9CZ-|eH5b(o-j5A=(Uf3>=(=t<B_U+fW<zmttP@@@pn=tLhY zkHI61Srj*lqN9KN?q<+0MMbNFW@Et06C>}CKp!QX%iCq}vDqnQWp<i`s-t8;|Juv_ z*<arbdQ$Z4!pBo!x4k?(SIxXQ3UzF083fwZ)pk3VMzMcOk|<TuG)fYq%ARo}nse#p z{#X0=?^=Ih^#uSt-R8PiHgpmWjUs)Rp#IiKJxx+2xh1PEPaCb4GPw5qe2T3q-=?cb z3qkrXULo1PZe0)pxRv$C3;W|!cEcXrN=vJkFe<9kvZPW5Lt;;3l$A-ds_fDVn~s)G zDNJ&eM{|EJzj*Zm1zsJ`TeHt~iYK?fv$Io3IsgEdAsMa8uO6*n+#2QPGpMvI8dX}J zR>r8(>A2F`vYT>F!Q~f7fOvT+I+}BI#S{-Z0`&8jArnY%$t2QhSyC2P)+@=Xs%BKs z@~fmY22D3c&6hx*v;D=(mniV<HBK~Vns>kyTxNef0yHRK+v}xV8CP20Ta`tV$+%e+ zy=nPL<y2{flsYz6%W#!*u5W({L5S@fPITN<FSv=mE<yyLDn>>}s-+ScOaY5adV6VE zNjeFmyuwy4&8LhNCc4TCu0Q(?2?&=9IGp3leUWzoKd-YNfM&%zIJW$%-ZCi{y6|T? zgQ|ZklY)|zRc<Lv%tQOXqQJM;3OEJRmijy1##PPzo&5mR!@-v)^;S!1y<AvW%8<b2 ztANL+R?yJ?wP(LVfY^S$fD<<rUS<d2*&yui@9$KcfIFL3(M!pf!0P2`Rn#$?%|fAA z#>RAo{5*NxrDqUCxLi<BfQ*j;9+mMhf)IZJWEJIHN_jrbPO;l`NZ(=^gA|gG{x8r6 z;n}6Sg1WrrFg^z0+~Z+_c=kn`T_!0{qR^_i=xYac8`2*xOgW15Az*C3URQAACf_Y! z67XFpL;%8}F*};xUYi|hPb}ZjM>r~vyZi(K!sWQSx?<O6jf?LjfL{W8C~QnQq;r41 z^MC61^({mDKR!Wnsjg0*m!j&_(7h)CI0m7xGd5*63Sf1tZ^<Z@$Nl~zk|#f2hvjc_ zHEgc2dF3Pk#}JzxS-R^00FE}cdBejUWg*4#>%T()fbr!=6}4(Lfp2V_ho1zd?}`j7 zJ@VZ$9aeYthYJbN{~7v_OL28K@<@N`ajQCoZ`8PZIRU>JA4YEN6i^j53ko>vkiLlG zYd=H4xF(mw_-d=wswR;%8varY_-MwQ4`T&FVY9++aRkbJ!;U^>Pu!Lte)s`|>vH)~ zRW0-Z;HPMetmPOmea`d`28FPVifXLBH8R^`1*4-danEr8AaQbZe5j9)s}p|-8iQf3 z-vlsYhM#9!yinM$s2@Z70GtfncqG=^*P+f_vxc)}%NFPOPzQj@HX1aUI1HHckw;Y{ zi~s<(_mQEYp(jgYt?G<@U*vJNaO5|NGin`u_!yd027`vV0^5T*bLJ4@g#rURv2PgK zkdExID_5?ZJb9$w^~P6UtSNskE<Q>aS3}(qL#;|+F!B~*r{FVv&W8shv$yX0&SHV> zLy{d<dS&C4(9rFBj^^FG=^B#3hsTH29esm9#WET-3w<2`{PO$YNNHHuH{TpQSQ>dG z8&Z05<CT-4p&Ls{5^7UzymfMUYkGREVO+%uPcT<{V*p%cmY_fO>s^1@M<PoPhJ}S4 zg!KVC5?iZn(+<>Hk-+lE@WkAxCZmzvyn~z$x7i7JG8+X3{%&<&M~B588*AyvzH)FY zw3^zG3^eg32H@r7<}|?x5STnNQMAP033$*O1&s~t!r_jNK1f1s$JSUY257a~0Uin% z6UaF{qtU2O;ir>{W*2`iCxCM|3L3e~U;v2qUx%ZRu{*4N0~pXGKsFD6WTR0Kp72?4 zE_sKE@8JY|7d8q6&5B{PUz;0K0stg_0NO}@V2B5O!+1goIh`0)QW6}T9B$SRu5<$U zB|?FqQ(@_Yen(DBOtRIH0kl1!ZTtTF^kiaARBp`9!?{t(JNSQ@CNpFn9s}SzrBT3A zQ2HGG9JN|K4iOAMlbEwP_t@d9hf8wFImyJUWS&u@rxNtgH@SN`0nY|_23480uqiht z=1bCnWr+z1up}9pSFaw+-JFx0-o$G(7&Xbq(ltg+lgf+$4NIMXcO~qi>Q>>c;M7#t zJ)6#*54;_Gj7)zfZ_Xhmf3F=F8XRngK5U~XDmPrC;i;4W=vx*!0WUZPBOy^8vFYsI zeSxj5J>7TC-DXn_yul$fsDJ>P@DeglFH(v0X1!iN*AD~y<~BAOGx=)zx&N%a-TLOu zn^R}H@10Lo@Q1nvF`!EXfYH38BuZpf@yrP=dQ&A11N?v8SdB&!X?!4J-`=xtAb0QH zy^oGTV79jpLLYz@ky5EN>vxopTi7gd$+2)#+X@E&@oY92=_%t{iR=1%4&cG_2SC6W z8T5g!b_fa>;nBl$a}~{|sGUTU(#;<OJQ|EjKEbLTQf)ee0nZ;jdT`3I8_cejuC5jk z(9IJOcW!?+rN@+rO)kC|fUDFfnQWd`%iMFerw0RSYHFU}@9F72pBh0L5{n%G2&ON0 z64MV~O*hfKF~HZwXlPb7X|+R{o9=aYx1MrLQ1kfV!<q*@Jw5l%!WbemYy$L^X8va- za6^c2n=t@CPox}FH6eFbm3sbO_nA`@z~hH+-#&kQeyXRn`%Yj4on_J^=T8g{Cdd4H zCv4+9JPM%SDN2^A8SeeSAk#tIp8!C3{kG<QPirfTL1@;45xzN?NF<U=cED}M0M9nF zNYykr02yjWi0<w)4<-N*p1ywk0EnJDff)@-lZnMPLBx8K!~+97=o+P}j5jod2!mZr zMe2VYgs7PSUO#>M^zHLjbc_g+SfqkMP-7Ja;N10QHrFsXadX>Sn2JDzc>dS{fbhp3 zuOGo?yt%VUp=84tNS`?q1AG^n^_hGlZ*UL=KoB)#oV(N0egFAGC-BoxPaoe8T)%eT z5Zi20YAY8mTI$>b{1TDAlCKf41|5N$Cl-G<M4Y<^#3Kv<;ivU$PoLf!5>n~nwgTse zzKzaf(9=npMqWD_xOQT(Qm-W4KHm*Q&D*CC1o-dX)7wsOnEJ_lUw^bV33xJ1{1lT$ zBkF>qXp_)Mm6>dnimk|)AYT6gfdMu=KDBKF`rq1L0B^d9nZYMPOQ8x0QL!^C>5_l8 zA(qI@BBb7dyND7nz_!-bZF}bj`1}7A@NzftQb_y;rgo@{?k;YDR|g_iD)pvjcIv%W zARa$O255b-;U7Nl1Mr;!-*QOw;;x2>_AUq@V(6QB4Ixtl&j4|E=f2Z5t=m3d4E;#} zi<{Y`SF)IN_k~M7ace_gU$I%qYRG?_yK3<Qp9PD~o`GAm@AS59r_ll42UgK5UFNO& zWc~tQKmWyaF`Pm>vvT2*#S4(b@(;kzp9RG24RDB#0p0^}9ynh-dL?{(7N|sRl`c!* zuza8l!Q=e{e1HgC`}xO<ef-}8u%JH;fS=nunA;BzfAxVb-XA^=V%B09$k`W%{0~O3 VyE;m#$7lcm002ovPDHLkV1f>skhuT= diff --git a/lib/tpl/dokuwiki/images/page-gradient.png b/lib/tpl/dokuwiki/images/page-gradient.png index 8e16a28052af469ecf10b0d513f4dc814e94a61d..38c74198a9d808cca2d9437903cf7584003d3cc5 100644 GIT binary patch delta 9 QcmbQibdhm_%Eauo01?Ck$^ZZW delta 78 zcmcb}ID=_|iVI_Lkh>GZx^prw85kJYlDyqr7=APSV)(ghYFaN)gtNdSvY3H^TNs2H e8D`Cq01C2~c>21s-(i#E)7LyRPw(?Y#SH+3!4_)( diff --git a/lib/tpl/dokuwiki/images/pagetools-sprite.png b/lib/tpl/dokuwiki/images/pagetools-sprite.png index b6e80871735026603e4af1459fb35c043c501b4e..8e7f7f876b60b531bf13a32bfc800eee88d53c07 100644 GIT binary patch literal 7759 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 literal 11325 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 T?i~Q61%ni2)nHZ9reXgNAnC^O diff --git a/lib/tpl/dokuwiki/images/pagetools/00_default.png b/lib/tpl/dokuwiki/images/pagetools/00_default.png index 95d122e17369affb871bf7e533251244aa2e1290..bcb2de0f8b6c775715495a66e023b5db0d612787 100644 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGy8?VdT>t<7|L)Vb=Wjl}e*fje z=kH&?|GNM5-IG@zzyJLG_wT>EPu>EhzI^-n@8ACyZ$E$j`t!lFcaL9u`0?xa?>~Qm zvJaoX2Pyzcy?XcM<Ch<wzW(^~{pYXWe}L+NviF|8efs(%L<(p!&_K92&>Wy%pixg= zegvw48v=C3+YeuXP69dxXy9j{f!}_9`~C~)9-z5ElY#a^%sHw3-w5anwUQveU<P@8 zAg~7le;|mD?+1eUaBv?ARL*7e0Cnv3ba4!+xV86$yI7Nh2<yf4b4@cgFPKr>_xt`d zx&Mp%O?vij*81bV@bx~sJ9&(bGcN{9rY_L5uQ~PM<sDPmKO6EG#io2Qb&;C)Q1ytw z6#HOnMwMG}PZguo6FsEPh_w{|$!eN)iSM(*qXic1#rh6eE=$Uomh`XfXiSpvss4PG z!E{M(TCHx^B-b=qrR|HNL^`hRIn~H^T7bDCs9Qi&V`-%Wr~N8pUs1bfSB|%+-JGxS lSEXsw)O$Y`ho5}pf6p)5gNci`W**QZ44$rjF6*2UngE4bEwBIp delta 602 zcmV-g0;T=#1Ly>h8Gi-<0028MuA%?{02y>eSaefwW^{L9a%BKPWN%_+AW3auXJt}l zVPtu6$z?nM00Ih0L_t(|+U!?rPQpMC?n;XlABfS!N21jWzzxa`@CKF};7Q~L)EnRp z;0AgDTTFZ<2q+*3ZPytU6SX@nwo!jL$(L<*X1>|(&UU7ZbAK-VhRjI6B!4?FoJIjq z0ayV33D%pgFjZvk!!&{GdOE-Y@Q^@To#LE;iIU54y(1V(-`vTvoR~SJ415ER9k&95 z5%CyJMNSk&O8N7|)7Uv;(SxEGz}1;m<io%>9*!IxhFZ)CoL7@_oecaq99!_VTAWdV z-A<{>uJAhb2Y(~DGF<auAwo#p1ftxWsxSmT;~eFKoX9N<3`YC(6_AX1HCcq!pG|!5 z8Rt+(`69P4FzE9h#|8MpTu3F4Mcauwv=R9uxA2Vbdqb*P<kAc38FiN6pM~L6qz8ZI z8@Sya2m@yp=UA9TqBuY_;Awoh$J~ov9x0BMbgCgrE`K4KoqjebDB4gQRC3w;H4*$! z3Q@sIguhK)ry8+h<F?g15CugY+7SLV;*EJVpp=<6cijr$ecSOF=TH~mTO~i4SIq}Y ziuscXVsEZ4?UEhH%NNMQ?2HlIztVjOytTGehaD(~=^#R)jGUnxfs30?ERDeS`f_oq z4g{rf-BXU#`s{3Erf+@Tv*N0)!-kntB%IA8W@ww4dXOOt^CxkB*}{5?r7iEX2>Y#T osqSs9oP^yH_Wuj>Q}Qgp0KntXGMuTg+yDRo07*qoM6N<$g6>xtfdBvi diff --git a/lib/tpl/dokuwiki/images/pagetools/01_edit.png b/lib/tpl/dokuwiki/images/pagetools/01_edit.png index ad4a737d8038b3319dba66188a29f31d8dfc3093..99f3093ee143f5b46b98c3da9103ee05951fce41 100644 GIT binary patch delta 494 zcmV<K0TKS>1&0KXBYy$TNkl<Zc-rmO+ik)?5Czb5;1VcdOK=I4FeOj|C8PvONeNp) z0#SGbj6L{;pX<prT8NeJHBllyEX(r8k>`$Q_DMv3<$Az>8$OpcC0QxQQ!cw>vbYP} z8bf8($Q9lOiM;Q4F*<Bar+>n$Z6ssDQ=rtg#w)5u-wifhr+>=2;p|)yGWO!E)Pqu! za~RD-n;_=(K2|^#CucrzMyIs!0?u^*-g$E!qKrPnL;%aj{>1n)1ytdgSA(x~3Zsk! zL;&+Ph^K%BFfTWe!d<<s!>Mx^<)je#0cODd<`8QO%iAX8Q3eQ_h5!p-Mut8z)V9<X zj>tKT=DAEHz<(UZxsQzXAmdy2x`XW)1T26Vu#b#&pYZ@D=d-%3TPn(005f18u<kRy z!e}mXz9gE~P*t}Am;w9!U;r%Na7xa%lj$xaPyjPvAMj-qUSTvBjj|TIu44<&kg*0V zH#p8|jD4(tDuWB9W?O2x!D(Sp$1ry4!Vdf%R)Bc`TW8cUTsQ3msH8w5{IB~cRp@Gk zQZrzSjsRnqK3i0P%K8xVavP~p&s=#?dud+s5XCf_zplf{s4()ITeROeb4(-eE~iYO kFZefS7z*CwT>Wq0F9&?z)~QStL;wH)07*qoM6N<$f|(BG9smFU delta 717 zcmV;;0y6!F1mp#fBYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0006zNkl<ZNXPBgT~6CT6n_QaGbu%&(&AKA1*n3u zg3=Y>9h4n7J7|`Y9gytAJ75c_FO5p0IDbx@nR`wjfIxr-H8JIdE6sz)mOow1ojc<s z;W?s$XNniNlo%I28H@^bdb!%2!Rdd2jZ7-eHLsr~)PA(H(<g@=T>b8xq}tuNwGz#5 zq#{YNfE2*dqJNJ|gDIVRvor*vQgL&*bFTc1+nqr|sUaec-fqM`Sn7>fUwaixN}WSv ze<x~{3SV?biF0T|fS|O~%j3<B*Rc<l<`a*Do#<=n+o{vb6F4*hWDYn15CKR>`4k~A zrZHPsgv<2mY%oqpHBHJ$o|vgY>4+4J%ntY7S4(do{eMxB05_RRXu#dB;QQNYWq356 zChiJ_yF}d_irV2`wN)xSF8nN0JeVnJ4^{6<aN+GH)5}6?xLXav0kuybw_E?TW|9^T zA1o=RLF37^JIssY-f(i(?dR%bBmL?Q)$R<E$NurqSoqS&Bm`424c+l%dOXaFv;J_R zYxtr&Tz?9E6eiidg1_gJ>De$ZG=qDirBO+L-N#=fK>$dlq#}|q3Z!6CE!x^>t<v=> ze>qd@(_ra%;sGGODymuau8Ka`xqPq#O6NWhK3L|1#oJq(AeoY?zu8=Gm2sM_-OpC_ zV1y3_A1v~L>CfN&`15YHiV|ZE&L@7GWX;cDW=3Xgkjl!wsm#G<tOqjk!7?*8BsKPT zqTW+n2<PBH#%8QbXzqS^_axv-$KuO{ewp|KwxwCowko!y00000NkvXXu0mjf04qrC diff --git a/lib/tpl/dokuwiki/images/pagetools/02_create.png b/lib/tpl/dokuwiki/images/pagetools/02_create.png index e4fc5d3b1085be8d294148272a72fda422052202..57fa68d4250cc2890841ed493c1d46542b7f3136 100644 GIT binary patch delta 556 zcmV+{0@MAd2E+uABYy%5Nkl<Zc-rmO?M=fl5C&kFAR{n>N5}{r!6Pt2M_`1G!U&## z@3zo}<m!AkiF3RO30R1d7NsC0epppiIZu7>_1qI?{+0C)|7|$U3mL{aKW`F#d=6(n z0$0Y!d|Pr4FTIfO9%*)T*qB;<gm0Gt9}}Jcl~rY&Y+I@ygMUq3i@Yc)PPY;nJ37vl zRcbjpjOLLGPt$y*1yDg@N^6ScCdwR-V%2;;dULIVSU&k71LlX-hHx?gRNy_`TBjTp zMj0g#224v&PXIGux>*DQui|>{PezAPPU#~*zy#P`thMT3zFzorlmUXKk$@R6Aww4# zs;<->9LUjOG=EP!kpPpg6BijPD`TsBM}X}y2$%sAU>6yyCSwbhqtEKRsAQHG4444B zfK`)m52LwSbX2&kjNBF#117*OGFE{39gg-wDauawhE3g$Kn6^JUBK-q>|r$5PP8)Z zK1M`*@QLfXrVc*G0~BC>gLU%dNqaQHo<m>(R2VFjnt!@da}T3zgXQf}9cTN)DATMP z_zf%olLZf!*G2=KviI5xj6uUY;i9b0fVLZhFr`%x33RncUz_X8lMbQxPn+E^?$V16 zWuQD?Yr0tmVxP_(Lh+o>;Up`ZD9Oo2F^#5IbN}qn->HQTXN>%&9opPDQ%oc0ySJBh u(qS0rB_+P;IW`S|!^<x3{~!8ag<k+9j|F>(?q)&&0000<MNUMnLSTZ>hV`)k delta 786 zcmV+t1MU381gHj(BYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0007iNkl<ZNXPA#T~gFg5PyZwMUb%+2$ot%Ss*JA zS3q_kJ4kjQOPL)ovy<$AEm*!tDdS}RGLzif=lB4O2=jx?s4sR^9_~$7zI5Ny-PcLN zzpxejBl{0tiVaJj^aiC`okHiW-sxWf8=0&)*SKCwNI#$Fr+*ym;7)GuNlI_;tuB%I zfm9?Z7LWlroPXuKG%%%4-Yg4&SXptuz@2l;kNCXRODNSv#L-4A_Q5i5#N*XRv82p7 z)c1Cx=2F4m+JnS7G$24w*6I}TliFJBgJs3YV}B=lzw~lyb&3QI4FI_VjsZjfvO!TH z1jaPxGe!82UY+-b38{ujImu%))hQj4f|2>b?(^-XH-C`spiF?DkxHn;-Bj@1a#|QX z7*>h9g2G)w-7iq22fN$NrGkg0A4iIbks_U>-i5%Wx1W(-3aRdHGzbTzZ(eORf9uR7 z&3t^Yq^yF5qpIC6%A-zybk^<`YUKlcZTEHF>Lv5OAqnl?(A`|mbT%>x!BkeEJsed> z{h~bU_J2pZ27hb!r$U37$||TBRhsmECYWUV3jDDcRcHO8)EL|u%#8FJ+AGS5;AwUI zP7(xwR7NTy38O#?CZ*A{T62yVb?HxRKCQWXH4r0DgYh^7#_Nw)ui%WX!0E=*_2!gW zEHlBzKS|tNn-RM&H{C>4`(XRQnEJq|3YLBE7Jm>B>r&BEp#U%sYSi>0Vbn=5!Uuy7 z7Wu&J%SAVS`+9qB8=MC<ax%CW`7M&EAA^~ju}&(#Pia0`UmKt0MLy8&^iCa%W;_XG z<b&mAtV^oz?L?i2-M#LncPcoLu^CS!G+w{h>?|^?C#84cvH1T&{}B5D_Bq|4mL|&I Q01E&B07*qoM6N<$f*NaV<p2Nx diff --git a/lib/tpl/dokuwiki/images/pagetools/03_draft.png b/lib/tpl/dokuwiki/images/pagetools/03_draft.png index a13d8c3b4c3557aceaa4113a4cb9476e5aaf0747..ce1c6cf14d5b2f3d96be90cba8e1c461f16f878c 100644 GIT binary patch delta 568 zcmV-80>}Nl2G9hMBYy%HNkl<ZcmeI!{cW3I5XbRuzz7}TM(_xXa3gdCkH82WAtPi2 zCTLLGyeIhlVhlDW*Y876g(^rx<fy8YKR!C1JEULDQIt>a{!e@a|G&Y<=1FkgG*2FI zok8C<_)s?jtB=k6cx<B3<9b%pqp$B0TpenG?GH!&b4G8*EPope4v*!HbXOe&R_<#J zk9z1IR#pce4Caye8|b#&3#=#)`n==kN8HCeD$4zEFptA0sgJrYDuHc^Dxqdn4;9i6 z;XG${J{Vl>Yo9=un^It_ZJ9jRs{O^B=bX>Nb-=aK3v(F^W=H-?x>)bT);mK2YN@-j z-E+)2Xn!5|X@8g#E~EdQw!6K*g67LYVEL*@x~lXAac>r`m6{U%`Na<id+?XABYm)~ zz>svc-7~YeH`7k~xGbW-ez{hg(nqnsyL=-sByC-6+C4Lif6wSqBc%6>Z9jB8m|ggY z`OV{6V3>DRt=)4OhgrXeXwtWuefSV|6kXk~GHAH(`hQ_Pqc8bt7t<3MH1uHbNx=_R z_<;21-BOTs_oPVJUEK8zN>5;LObccwKEQt5E~D=^=7=~aP_6|A<t#9GXIk)WzVQ*W z?0WGvyIQ1(p)h*NOknW7Nx|&SN2G|pUFLI~<Lu%pkLd|);QndBydXa2l9vl#FzX~Q z-9IUqmodaoWm0f>flg&oFfWUr%B0|n%iK@p<L~O=Bls8l<a49{Si9T+0000<MNUMn GLSTZa3m;(s delta 806 zcmV+>1KIr01iS{2BYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0007$Nkl<ZNXPA$ZBE-j5Pyc>A$FV~AZZ0iMf}JO zXiq?HP;L+(!8a&J;0WOcy+M70x+j2ERjFDeNK;~a*PgdOVkag92p<BeVx*Pq{d)ZF z%<Qg(B%Z^T@J#jsez4`rom}}zl~g5j<x#HeUFk^j(TcJ8j<NZf&GHXfmbXa4X8EqQ z`I)hKuiE#~pnr+6JBhJpsmXe?ZK=t26Jw96byB92>b>*IPi+<f2t_1tomx~|k}tEJ zlGL){xl+D6<-<L>Qz#^8dd^|4+5+TKr;Eh2<htNe<=qPD$El4}8B*ELRrmjnQjQWE z4M*ut6{5;OmEm0Q9ewJ@NdYDMxzZ=Gzq0HJ$-XN0%YS(Xf0G``K#8CVzRyzoiOC`X zLI8adJ|IEeS&HJ+zE@=gpbG$J!?-8F0U+Jhig(HHli<3D4HxpM8T%B1J_sLzz;m4l zKqocXana_3XhRT)$lj~f=GWPY7FH~UQWQ!-_`n!SvXhihAOO(@5D29EdaXH_H{S$I zy#XxZ$A77vLNQfJq7$dKR2qQzSfo~Wy}dlRZpuXz?<Z5}0e}EN(3n8YL}_EZ<Y=!p z-`(c3Tfri7Py|e{wXt@1ayksXdhJ|^PEv(>PNZZAppDr?z7ec*+oQyo4ghR#whm9v zN1t7%7Lo`rDXqJaDoW@==2Y`|j&(>Jlk9x^d4Jw&dTt0H8YOlDZF+9RsnWY2i%QNb z?YdigtK&@}yogPB5gVv7R5I}D<K<PdT^+ZGP4f8Uba>r}2tYSZZBT3s=OXAg>Tap} ziqbdhtFkco$L~Maeky_EBBG<BYEN)^3#{7K#@gcG@4p6*cHP|GY~3ZQpZ1#j(DV4= kU>`oQVtM(K`0v60065{8l@hjKivR!s07*qoM6N<$g7(~d#{d8T diff --git a/lib/tpl/dokuwiki/images/pagetools/04_show.png b/lib/tpl/dokuwiki/images/pagetools/04_show.png index 6f64b1bd1c7b338b819835f47cd248d821007e7c..1ced340dda0ac7dfb88666781033d3a1442c53bd 100644 GIT binary patch delta 305 zcmX@be2{5^WIZzj0|U>yxCuZiKfou%_5c6>KYsrH`}g0sAHV+n|NryXpMU@U{rdeE zDE|G&?>~P)42XiKuRcC|{ptCePcPnne)aCl>-S&YeE9nI<F|L8zJ2)o{o|MKpT7S1 z{O#wL??1nN{{_?w)CDvRXcW*8p!q-mG^#%BN%Vf8-FziMe!&d#^7{Jz{{8*u&)<Ll ze%Yh`RG>_;r;B4q#jU-UcXKru2)G3DW-yuAISE|)_1|8#qa)%5=b=@x$4sMH^Q(6? z2F|>}Z_^U`?5s%HkDy1Bw+LA%XS=8^cU`tmU}lM4QSu_2d%m$fe}nxGtXX2?+#`FW xLaR|Cy5l34VV>eK=_5PZg4S)TpYlLe{O9Z(A672=jX?VuJYD@<);T3K0RW{=xo`jg delta 443 zcmV;s0Yv`60?GrB8Gi-<0028MuA%?{00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RX0}2uwCz7k>uK)l59cffpbVF}# zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0U=35L4Q<8$L*J4O2a@9h2QLM zlZr)45j=+RCcRm&VsDZgNdGC?HnojulV-<1ib1xJ+1M^h9}FZvUOwK;Fc4y9gpfiY zoxxvXk9q_!X$vOTa<R|G5hY+w0gQ=g>IJq|4pxfj)0Y8Al%km!T-R0%)>=`+muju< z#WS`nuOGgo+JD=LIB{9k;>1x;lfyTTdV1O#yes!&a2y$O_%Z-V9GO|GRx``%fN#i* z2N%P*!G8C<9~)}E7rW{XjI=e_LJrQirO0Fswffll)mHyy@b~lepie#@UTwB41~*Uj za$Rtc#G|VVuf&VDf;-K4zIx{%%XKrn^h*4i<=m;&FEq>ibcvhGbvqh(C4OFPy3P1$ lz7Dh1|L$_p`4{F?`T(Z0>bJ`o0y6*r002ovPDHLkV1iFJy)gg) diff --git a/lib/tpl/dokuwiki/images/pagetools/05_source.png b/lib/tpl/dokuwiki/images/pagetools/05_source.png index bcc4fa21fec3510550fae3c91ce92de67f4817f0..dffe1931a2839dcc9cd31f3c6655dcb0a2836384 100644 GIT binary patch delta 453 zcmV;$0XqKi1>OUYBYy#<Nkl<Zc-rmP>urND7=__(zz7+^qhth+(2+bsMqz@+y#;c` zA*2lflGF25rmEViiHT7D1nE(c@#j}Xs8a6$T*WQ?7fmB_)Lzc7={~}WVw}D#sf)v& zCim^&dm6OQ{k`_j+Dl&)J|2&X9DxkiqJIvEWDmhpox{!H5PuWMoO_7uB~aWcT-D96 zt{aeTnnQGUn0sZ0z%z7kxU3qpuNu&O=*PktP2d@$;P9@jEuq}kgV3<d$Sm35@Y}9} z2#fxn4-Oaadr;@FpAQdjwxuQH+cNl7%Z$vD3l6V~ogq;0$Hf^<pzx0?%io6tvJ{1c z{R~J4hsARJ7Jn1SoEw$B1hSp~axL6e5yU*(o{V$fXVlNA&S5cI6`CNXtHP3|uU9Yk ze$7hIbEM>1=dehZg-VwjOE|&KvLYss^J}JaxRoq6da}qzlX>n4Em@Oi{tZRb<wo8N z__N((0>a(B%+^R2IbIp%earM7ex5r0oI3pUlseOESUx-^PCq6YezHksdJT*5B-7)` v3cqEl*RXhaU1`EMCw}98;^y|B#8tx|h9dI}yZUg000000NkvXXu0mjf^0(;0 delta 730 zcmV<00ww+41MvlrBYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0006=Nkl<ZNXPA0ZEn**5PyB^6bT`UTfQ41B|SlU zgxrAKz{v^V2sr{buzLc0gxnx-fG7b)w3MWFLJYLtoyU)CA%T?GjzamtNb|=#Z{K)! z{C2EJ;wH?&4cR|U>;ZTUAOb+^k$vVBW+r)^*GP7`-ugBcdHlKsk7Ts4@e7ibh4qS! z=`SSUZA2_0HGdI_M1&&ZlXU;Efh!`ujirdx3KMH%y4o0OWBja}Xk&bf=@ufsO!f0L z)l5^}*V?$5iM4UlRQJ<V^D@<$O1{+9LNtVc5U)xlXOgu+OC@I_MB8E;Sui_G9WJaB zfKmtxd>tJtf=5~6)uLp6`IZs@?%ckmihP=R@H@+;-hWKD^WdFdN<E+u)8wL(mvow3 zR44?6ac*KEJ2LOOMu9V~3ke}R`H6+02qD6k(e$gEtIWc-#fF8ndK4$!QJioTCz%Cg z6eqsL^s{1|6^S(MV)Ij!`0ElM#fcB#3X}PW)T#;O?0n_{2r$0`2LRdt!YB9dP5|KJ z`OF2-0DsUfIjU-5F@U-e4zA*I69d5Mcvb@#0;sOpW8gR{w!#sMa1TK6^ucbc5b>3r zj6Qn=8zAZc_I@G}DyZ<_;qLL-`OGEx21->y!UzE%C_lQ_DomW!hG!F&90jo#kG0_0 zW4E={nTupoYk?Sn6%tU`e197ITYX~ycy|(e08@kCk^+M2!G3FN!~oF$5UnH!)X`yi z|LxYs+r#qyF^T4U$oS#GBI&v*b0hB!$6jwZW^XuNsetPLFU;Sv@A6cp1GtMEi2wiq M07*qoM6N<$f(`vhg#Z8m diff --git a/lib/tpl/dokuwiki/images/pagetools/06_revert.png b/lib/tpl/dokuwiki/images/pagetools/06_revert.png index 7b8457e5ee5f19d266ea875700ee1362c989d37a..18c6444744c7f03b1789b25c1be0182408caa6ed 100644 GIT binary patch delta 437 zcmV;m0ZRVx1<nJIBYy#vNkl<Zc-rmP-Hn1k7=_{OU`n6_O0Wb=umnq>1WKR;OPCTU z!7F$D9~I<Z&mIy?z7WYMy6lY?&xOu>^J*}PUjY8aC;SX=(C`&-DI^RMzFe=0d_v>z z!`0<FqB)_(YmCWxTez$)ihRO@LYll3F3O84%E}OW(4>05V}A}ic~NOX4<V_Su5p%^ zQ!)gpUgP0zR+JMy)`XVO9=6AwG%GdXroAWS3vAXTuXk8VvSOU1g&}mTPwF+nkm?<l z&OC^MuJt(0X9Qt7$ai&|<ZhJY5N3mfYo~K&2#xt*;bWX>!i_b2h*I3V66U-nH0)t> zN+68-hB+G&8h`fi{+MV&Bj^+5oI?<_HM~2Vrv$-yHq051Ao$ksmLY-=lCs3)yh~_t zI>XZ1!~sFjWQ}u=ONJnb%Vi7iW3}2xh9J!8?uU)fEAsBlnEEVhSX%8Oce#rUp=C}! zd5u}eK2x93>(^<yjohE@$q=4o>e-j>xp;{4y*X*ZgDwKjsJGo^E;h%}VtowA5L!a= f8FfB?VY>VR&%r7)yy~So00000NkvXXu0mjf)-Tsc delta 729 zcmV;~0w(>=1MmfqBYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0006<Nkl<ZNXO+@VRF(y7=L{W1cl;+iq`QL+<@Ew zJVEOTnj6>~)Em?z;0^Eu#uGHX0sL{sA|<Ji(1h&sN5Bayg@jl;jyv-vlYHOiWp}>! zy^SD=#~1}X()cHd&vP-8%mhicC3z`HW}TZv>cmJ&J(BVwl9DUrAr@(>I+E-F=mBUc zq4&$H4ZtoI#DDOQY<0MZ^l%Yfgo}tNaTzY6(_AYK7g7f}08rnfbSwZTTB+z}u4=7R zZ~+)3thg33p-aLF!bsmsPFkrrENjI#B+p1X>UNd2q5xnJG)Y=Y+#qS?mec$$Z2I%? zvp)~Hf|}#sh3}H_CC+onX$5Z{9D9B+@%(`I#7{jxV1EJ=&kuApFLURrJkdT8Xfc-8 zruat*_9ciV>Jl{7Jn<0jH1mTtV{NZSzg8)~eQ=XFsFbgiVl@7mJCU#x@=`k<O6mi5 zI{&rzdhMymV?LQ|F<E)e55JRxxV|Qz-Nb91%G`%^a_cuq7>V~-X;$1%e5rZkdd)pn zYbv_6cYn%h91{%^k8A+lhF*2kkd9rijddvjK&zowhg(<N(5pj9_GEn8fFun`_D9Z4 z-$godW^GAYiMfzuPbIy#fs7_IoxfY+0DyUPSo@;pUr(kwfU_l%a~uKDdU<%@rtVzV zH`6v_Use5h0H6=RS>77}x*PHw0d$X^*RD3be^P79{5GDp30iv`1{?v=ebv}Zy0ddF zCuThi^Z>NBk!CW9uitMwh;@CkVFzpgmJs5@>le>b9r(n5_wV!*i}F#!uVczY00000 LNkvXXu0mjfw#z|V diff --git a/lib/tpl/dokuwiki/images/pagetools/07_revisions.png b/lib/tpl/dokuwiki/images/pagetools/07_revisions.png index d918bce0505a10f4662d6ce09d77fb5f281ab3cc..e599d016c4742800404b46eb8b18f2614a9402a1 100644 GIT binary patch delta 746 zcmV<G0u}xE2!RHWBYy(ONkl<Zc-rmP*=^%65P;$BfF-B|m7o$-0!vT{DnTWv1ed@P zRKbSXtaI8iec$rz&wv7ifQg+0*q1zfpvIho;!BiYBJyAS430XTBtZcKiD*zE`If<L zds3(&J+?iaOo!M(dTJz}9(+8uIUEG`*q(~eP$BDt1186|Eq{CY4*7=%?+-@}0oszL zT=l6y0|^?q-m^X&TSb1=)k0r9c(*@hkU%pugN2~yl(HH~;LsrTb&w!GJ9x7@C^*P= zchLUC2TmSnm@W=CW4oBQO^6#fr1U5ta8U0KUT^mm1cUAVz?&bWLu^oXvCr@AS(Lrl zA@O}6sNWpC+JEd61U^y0ZYX+-uX%5udb8T>lddO{=-|bAry;0G(hyYZ%|2&!kiKwO ziSTc!SS?ce4In6@gXgR50D^q6+8IbtL0<DUevN2gyIT5b2uyVFbg{9J*>bBO=lGfn z^2}_xNqt|q=wLVBh}V0L`bu7O@MN|YulHQL`8s25Ab+p1r;zY$BKuu!zh8Xtc)Akr z<=OFk#>lNK@=%+Pi6eQIJq1C0@W?G22-2s?(n2m|koX>~B^)Fe&@Y3)Mh8DmmNf+W z;dxO*0s{wm*LYDuJx&%$s1a!Tl@JV~gGtJ}LHFZ%ayOa_Y9z3b3pnUd?^qT6ECf0_ z*dx(Gkbe!IW)<X<EDHK)2%Nu-HwWL2W*UNK_%u!aK1>@(V39*28kD`briX%spgj9$ zarihh5Y#shPW`!e26BDx3RM0%DA0sG2cPRuzv|QY_=3Sx#fcr{hLc0tyGdbhCl1n+ z!SrHFUheZ@eEmzG$7y<gaKM|U;q(HF%>RBhd}Gdk51%WT4!@Pi{XTgb76Rw{eE6G- zLUnyNF_6HbM25uY_%*~8EF>`0Ctv!!<qGu`*9f_Q_4(iWL4S4ooce3!dIvDCuiNkc c{0sA*e~e7HTqB~Mod5s;07*qoM6N<$f`UwK8~^|S delta 1124 zcmV-q1e^PT2KWe&BYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~000BeNkl<ZNXOlme{K_35P!$N&$J~<f!#C++7#8x z36dMcH(+m&?Fq;Ya8H1bU~b@^AihDC6J*m$6x62PG$c)&_vX_-{0s|TCzMvA>XSx# zzh-7<<~#Fd9iUG!I{HN8zpWV51w97sfoP$9&{I(NLlwKLVr)htX&|X+Y*%us-hP#~ zB&Ch>p`?DN<9`mXv8LSw@53YS!^Hc5_u;??dmMswfdtrYkV3Go58+AU{>1z6XqjxF zUGenN?@TW}GYU_92wgLKY-amrMx=c+n>6M-mp&xZ%kcCquiyD##TQe*eKGY!+VLT5 z`w$L%2)s+S=|k9S>`i<K`#yxti>cpf$Y{0v9dMmbeScywve{wboP;sP$S{gH7lv+h z+;f}l3qznSGi1itIh6*x1~M3)PknMFs)0U`0wXz9z%Vi^KoMX(U&s4dJgb6P0c-)O z!Pq&CfKik;Sc>Yi^JyZfmL%s~Dyei*whWXjH$Qjh7ne&@0%;5?B<2~At*(4=xL~oN z+>i_nfqy(&GXUiV_1w~?#qaM$8X=`XCXpH%MY(yatD`ajBQq6dl9_gc(KAyT*KcT+ z=dF~5KxwATOht6JfV|b!$FI*1BxTXf^>vl!&X+gcAEy`By)a{mT~H~hPHwHNEhw%} z&XJ___KKU&uNoh7FTK6u+FUK(qE*09q6d_1d4E`+{Fz8(z_{gn&buIc!Q!LiGbCv} zS#?MC*|nA+Rg!k^rmH_59iKfC8fY;KDmiV<L${u+wpv^Q`mH|QG^my!_6-3UF#2_J zx@ShYo~}ML=)ac%Wz1~>RV%6ul@az^)+iKlUSIJMJ%j4i(d(yX3=mEJk)d9cTP{nd zIe+X6pdZWM(2T;2I<A+~tVC8J(1RIIlv&Kvbm@Ei^62Cs#;F&KT+;4GHW-zp!Htfq z<NI7Yx$OS>t>e~O9b+Vefy4l#eDeqx6-M4zH>t$vH`Zh4G;GRiDqT>#are$MOk+%2 z!u1iodAtG)!YrQi*zOvX@hl54h*%gtxPPB~k7<M{!&GkEz4OESF8Qn_QF2f<Yj>QS zQy$C;p}wTFk!NM2!ljZ*oQfNr&iLn7$9qodNvh@EX`7Zed*9wmj-#b@1V-6$uFN*p z)_~k*mW}6bj8AEvZLB@)IG4t>obij^gL}#Izt!yh^s-JO5_=863}^LMRri~<!(GE) zCfx|eJkq>?jGc4EcVDN6AJt__QuSi8gVfg*Z*%jylls}l+OvPu-Zsa<i{Ceea<tIS q%1L86jUH}%_55GytN)k3Fn<A)gzBIHcVamJ0000<MNUMnLSTYuu^lr2 diff --git a/lib/tpl/dokuwiki/images/pagetools/08_backlink.png b/lib/tpl/dokuwiki/images/pagetools/08_backlink.png index 2c0823a72acf724b88a644570ba278c5361362f4..aa34e27750dd2034a32a17a86c85cecbc781c687 100644 GIT binary patch delta 502 zcmV<S0SW%h29E@gBYy$bNkl<ZcmeI!-A&^_6i4yxU`lWaQvxMy2`PaRC}B%*36zi$ zZU=;22>JH4V><~?ch9V@tSDp^$r{894?mgMgN`N8AAXqGm-r43v^`ERgW(ayr-!TN zFo9iA#7_%v>wdDUdvikUE?r?fQ^f4yjdnj_PKX45nUFripnr&2!|SS>!H^>1;-x~m z4}&6R3om!Axw~tJS5+H$CNL;smhfV`e}q90u6+Zs;Li=yEaA7!zL;+sg+VaHyW@Mn z0|MuQpRp|AWWH|V>$*`G1pne~|Na1jY_%`^S*EaiS=I4nSu5<%vKEB4KZSjF5*TDt zbp_|{vo9C1_<wt$3WFdt-6_=VQDA-@eiVEiQDoWb=Y_`Sw@P8IOflUb1m;&hA4`~< zB90Hc*}RHR^J)rnlZx1`IS34C-3rL{c^wxXJk56@G5@@4`oN+I%&+NX&hIH=_CJd( z+5JZQ!Y9-)y*;lP!Yif|WtvVFO_E`HnOB|(42qa7d~Y_dVa&Xa4yU=iIj`HxdCd@J zHX|#iFbKkb&ILbXS;EO{n%7mMFbF=xxmUuFEj-LCE2kLd^=$o0nERD8>;e5SuP9-z s%=TM-dtL_~9UmSuujQBjL;oHA3!Dw&hoh#acK`qY07*qoM6N<$g1Q^*{r~^~ delta 822 zcmV-61Ihf41k47IBYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0007`Nkl<ZNXPA0TTa_R6n{N#D-`mY34~`Kloi-Z za92=v0IZ<wpe!L>0og&bgL(<h3INek67rZyoZwP4ryrS6Hv|<WM)adsvMk$U9iMye zId|-k#8bpGJW>36z$%J&RTLkqD5i?y&nk+y(gb#<)wtWc+67RZ{1yOyskm5w6vk~m z+$C8h36dcIpMPXXQW`R7>!F)E<CYq{2T-$@q2oCIvdHST9tx5H0B_8^EOYhL7?Y@w z0ErNQzbvvE0PNW(5t5K3g3Io}O%2$PZw(1U9+YKHC!dvNP80ME85*1RMkjJpV$7PY zZRMif7n6%uOL?8FImt>|sXj2IGNfn7;Jnql1s}xMVt)`{f6QkWK*G0~@lyfbC>Ksa z_#_kwk3{h8as*C;0~#FCAXs?uT-ti4tK+Xt?ScpZNMh7zr9uWA-SYs1Kdx_f;-5D= zuU5sU)PMottf5^iAqfjE3yVm|Dg@w*d`1I+j$#*p68X&OT$cHIP1HGRBt_CAsk*&k zCDB|S$$voguY~HyM>h2*svmz*{n(wE@i<P-yDotWfN>-3$wH=<OuGZ@SmW^?YOl^i z=kf7*M*zU~=8^`0PH!lZ-~fEbaWLs{%OYE!3wSbGYVZMYY5+sq2SHip-aXV_XP(D~ zs2K9lYC1He9NQ}a-w>f8q#=Ul6nmYSaibHBUw@QqOL;x{yxEPCrBDF;wWWN0ZpI`7 zYp=n*_R9P1b!NujTm3sa-&`r`DeDAD1pu2XMQ3it8|8x4dBR?sy*tc};ds=hx7mBS zQmoric{^Cn8d@aW@5qpQcA%t_>ObvOxwesR(~gnp?AayNH|uggbzlHEy-+TG*E|{3 ztuKwz{-f=yx7KBSq-g|(fIX&yrpoyLFU;TK7d}r9ENnzvy8r+H07*qoM6N<$g2=9L AqyPW_ diff --git a/lib/tpl/dokuwiki/images/pagetools/09_subscribe.png b/lib/tpl/dokuwiki/images/pagetools/09_subscribe.png index 30e039dbc42230ab1c6628dca272a91deec470f5..36254ff5347e2821d0ed829e54fe15be68ed2489 100644 GIT binary patch delta 348 zcmV-i0i*uS1oi@uBYy!sNkl<ZcmeI!+YQ<<6o>I{&<(mlH(&!#k`36v8)O4-zy{fX z4g65GqEO5wToT~l56KTvbwa5~TL}f}r-RM0zE?g-`Y*=t7=G{YKlm8o>+L3#h|qu{ zO4#Ac<*Ll1f(B5*L$Je5dr?P#hhE?jpv(@Rn^s+?rkybhB!B1+Boz6*I_&WA)XFf2 z%TuQ3_w8_fY}6ydAwUlVI7G-`hxdoG`s@zp1jqL&WSHK6N6Kf59p2U_J>fGZNKl@W ze6QcI!)bTa0|^dOczi<0)8~7K1obh)>+L~3A{+vg1$;E_93o^f!>dg#!yJ=5Wij?$ z-@X}Mu50~b_Emjd7fAX1l>0u4`+KO%3@?7{)e+#K7kC6Hv%}w3J7pdfG=K^of*t<4 u+zKTkG@ytQcKFL;qrYwZ>obPmJNy%!UDWu_zaeV?0000<MNUMnLSTaFn5X;z delta 565 zcmV-50?PgN0?h=FBYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0004`Nkl<ZNXP9~TTa426n{PC;R6*C5@X^AJAf6i z16V;>fviAQ04pdfpeukKxB}flKTM1XNm22E%<-eQq;@(55hO9(<Ybz8+}E6Yrxr=< zLNeHq><#Y?Z%uNM@4u)kON&^MP-I_`o_uc#p6LDVLD)d%a}}=i0MrG)l^ek|0A#Zn zOEWzCoJU=90e^Vmfi<NEpaQ@SC-S+ho@$a&*ov%@Y?Jh3Ys=u1Y|D8&x|T>Tr8JKl z3_NZD=mMy&5ak_!PPjjft&3Do-)5$L9)Px_%udne3LHtXCWWKCe#bAbA4UfW_yAf~ z5Op_UONT+U0}Cjb^qd?Y=!T!B@2k{t4T0jJj6Q&-jDNSw4xbec6Y5wo4Zc!rD#eDN zrW9Qn!?~vHGwMksSIQ4T(j8Z1&WX&qLPX;oCz5MCnbN@0(7=yb9bYUL3zi<SUQQzd zBLKrR!o;LXU;v<F0SyF5e<WhPH0)f?8m~tQfWx43`KA(Fr21j}y!BpvQ9iXy<m!uu z6>LW8qAsfs;3_fV`^U-F-{Z^kqTWFE|6F^+|HkkaTU~4YJN~?200000NkvXXu0mjf DZ-wvW diff --git a/lib/tpl/dokuwiki/images/pagetools/10_top.png b/lib/tpl/dokuwiki/images/pagetools/10_top.png index e4bf1d49d01a6f66272766e7e067a1118709bf71..b930fd25f1f0a1b5741100ca881444a6a261572b 100644 GIT binary patch delta 270 zcmV+p0rCFP1E~U#B!BQpL_t(|0qxVxO#)FA#c?}$C0N2M#S$oiQYc|cumnq(3Jk`8 z3W2%v%^P6mc$UN%Zys<}l3DzgC;!#C1Mnxt@V^f~kdXhi@G!uW5GW;Q9`5_Wkq}O# z<jlf{WA7*>d?PUncl+Zb;Rngp!=XDQ1ky~e7H-3SN{BGIIDcHX-Gp!ke|ETRf+wk( zfLPoK`RH&_hkFvj1?J?U!g;lu(bFj@chFG!Wj9m8x~yoSG5PT(Z=f*=ud^B&lkjR= zL1Pkr-;~gpgqQ0A8k6v1l|y3^e*F+=Ou{d30*y&{zRaL82|q8k(A;p?z!?4n8+$YI U=NBuM00000Ne4wvM6N<$f-pRO1poj5 delta 439 zcmV;o0Z9I-0?`AIB!2;OQb$4nuFf3k00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru+ye>{8z+*h<*xt$03B&mSad^gZEa<4bN~PV002XB zWnpw>WFU8GbZ8()Nlj2>E@cM*00AgTL_t(Y$L*KlO~Wt{g@2y|Z3u-XOuz`q2-yHO zAWTp(32e}^NjIR~pc|wql;Duw;}1vy3B^tW5h73W566~2-SeI8D3a(x4mwf~Hq`}y z6hPRROwy`}Fce`bLW=M~gud+>B%y4wT7*7;6@Z}fc>y4H9F_fu)#XlnA?HE{LZZ?l zA@6LRKD3B-27e&>W;iKihvDGhy48qvQBFx-*6drNi*jNLuHEBYzfJ(ySebb4;C?Ug zHZQIK%o-F+H1dYaM&QS19RirE&lzl1qQDwJe0uCIt-zbDK7TKhV2{IT1t1!a+{_r9 zJ-yt1&0rF-0c@cZ*44g$a&*%uxjvL`^4f`KV^6hT$1pA5+cpPCH(+)aac}iMuo}J9 hfAe{(`d^se(i@|!1EZjlSmyu$002ovPDHLkV1gO#wJiVu diff --git a/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.png b/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.png index 36116802f0b8a5e60d7f95439bb2a64e807772bd..71b5a3372321c7393120c1ab41e8b674e4dfb883 100644 GIT binary patch delta 294 zcmV+>0one!1Hb~1BYy!0Nkl<Zc-rlkOA5j;5QZmBeJq5!b0r?3NAf6M#Uu0x-oPWM zpcO<~3e`UH7!^gT1Z|_S3;V-BAmRV`Cz(YEB0?Rq&eee5ig7WCj~VX61Fm<`1T>^| z$3jR<G6reJA;}pG2YvF3#10k>EDM%?=$ZyQ8RN4w=N{bDX@AkF)9ZSb;fPqaoHS?i zT@a6-_k@sc5FHnbP2iUG(}sQu*Mxo!*MOFTFa2Qj;@smnNyTh&F2J@aRMN$TC|)ul zL^;P?NCbnjsYUK<C`jJ8?G`291m;X!jVXW{j0OTLe3gj}sNmZquD{jNP^)G0xSGT@ sB}PMFEZgeUHXlR-e2rEc(Et6NPUQ#;MPRBCqyPW_07*qoM6N<$f+u^0TmS$7 delta 416 zcmV;R0bl;W0=WZ_BYyw^b5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2iyY+5*sIytL3i%0013nR9JLFZ*6U5Zgc<u0000( za%Ew3Wn>_CX>@2HM@dakWG-a~0003HNkl<ZNXPA$OA5j;5PyazX{#=Tx^pESp-1v4 zy^2Th2;RUWsGt=@S_-wc&0}2npi0nM6N_jdn<UJa|4$|lf{4&Wq0mtIE->T5PtqKB z(H>XZ*sl|V)LCO8Bpz}GS<c~5Fc|cE<P(bB@>D6Mum~d0G}z4<pJoN0TpHSrHFmq5 z$;)s=tXkcyV1Ki1n2hfGgpghsr}Ozb^s2^t8(J5x1zHEL4SEk>1mW<}xSMp6irnH{ zfNfi^Z9xP8MS@X6h%%44kVX$~+oD&nUG9))Zp*QVPGG^rDR9ZSTd<*<N)=bBSUXrg z1OJ}l=B$>6td{@H^;g`GVl)KCs#Y&Ik@4@vN37QNt{ML7FU%3;2n<Cs#U(5N0000< KMNUMnLSTYOB(F9A diff --git a/lib/tpl/dokuwiki/images/pagetools/12_back.png b/lib/tpl/dokuwiki/images/pagetools/12_back.png index d154651ec2c860794cf8862258b53b6b37dc3068..6d6093ed6bb84509e772b7b8584b33c8c2051a74 100644 GIT binary patch delta 260 zcmV+f0sH>r1E2zsB!A~gL_t(|0qxYed4oU{MPYX^rBI4Xpd^<-2`a%QPy${)8CggS zAohjpo4j;P@E9coe|)m@0^li*um?wYJ3}Y0;dNaN#RPBRd0qla=4Ao-36IkpkR^!S z!~HmgWQTDAiG9OuKZadDLc`{8(+v?p%fI1AGZ=~pnw;UX?tKl#1Z~c+t-5!@9-QI4 zYJ<FN6M{Bp7<4Zib1Rydpvf5)nXSz=uOot%O<{4lKi&u$Hit!etHLy^AcU7!pR@Ay zd@U_O>>d{1zePZnKz_pF>r$A{)W+m5EIv|elArvfA69aNkMJLH);B{z8_V$k0000< KMNUMnLSTX|7j%RG delta 457 zcmV;)0XF`i0^<XaB!2;OQb$4nuFf3k00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru+ye>{8z+*h<*xt$03B&mSad^gZEa<4bN~PV002XB zWnpw>WFU8GbZ8()Nlj2>E@cM*00BBlL_t(Y$L*F;PQpMGMSt(0MnixhK!g}f+yN}1 zOK=Be3G767Ag(~%0ZYIg_z52pL9CY2cliMWDZ!G?l%L+@{WU##GxxrEiX={<98RPR zoPqaA19(XaK0oGTk{ZAOKwBx5PRC&=EfEfdY>R>H$Lcs(hOKp{WvrQJIm>tK2TNDT z0m(8+Y$~bLp?{zJ_<^f{o(UIUU0$eINA3MCo&a=gP4WnM?kzNcM*tn0Io<)!zWu+r z*d8D|U=jAyfJR(RuuJlN+r6ghUsq3No+iy7cU9-r!5mjg`6)?9ggp_$R2`M$@nrr0 zplhPzdZnOZg8^Xl@#TWiA=0Q7mDQ2is1~0EychCQNJ4BXmG}6jR(ciE*@maK2sE$t z8;Ls+4)>YG>IQOK*HZ$HkbSGKQ?~47;3QfB0HqUXKtuwK00000NkvXXu0mjfLPNXn diff --git a/lib/tpl/dokuwiki/images/search.png b/lib/tpl/dokuwiki/images/search.png index 1ab7866fb0410158619d8a793c3a04ac186b4fdf..a07a721df97082deaa8365aeb7a346f8ac459d6c 100644 GIT binary patch delta 122 zcmV-=0EPd&0<!{;z;j+nL_t(|0WHT>4gygC#n8ds8JFJuuaY#p{xqkGH7UsnIQB|@ zd9Gh@`Ez1S(%)%hMID<N<;EGc>^Q`(++;q)24<NR+jI5<v@+RIT4d6_r^noCSvu)L cTL5XrKj#}2`Jo>GCIA2c07*qoM6N<$g0C_+CjbBd delta 131 zcmV-}0DS+m0=xo{z<g&(L_t(|+C|IR4#F@DL{US5w(MQ#5|WJn|0}UaLAfv1v1L(j z(ULO)==MKnypIELBklIJxj(Tu1t0Yix6;^PT+4=*y5qs$31mPb4>(=*5`dM|GfJ7% lZH%w9(#BHnuGDNMtAFPk75P?J)N=p;002ovPDHLkV1k5pKMw!^ diff --git a/lib/tpl/dokuwiki/images/toc-bullet.png b/lib/tpl/dokuwiki/images/toc-bullet.png index fc771b97e0dc8ecb788d5d345388a2e72e723155..a2dfa47e9d874b54a27cf5e1d7b5e0c47ab323ec 100644 GIT binary patch delta 61 zcmb;{oFKu;#LU3Ju=iws?L<XYZ81+5$B+uf<Oc}}7m^Ypt}&=I=5R1Dh$=F6?|VCo Q4XBdA)78&qol`;+06ZKLp#T5? delta 69 zcmXS{oFKu;!OXzG@V&D9&O}93V>wS3$B>F!p&c7J85nq)*Zh~4by{Yn!Qrv=s&2Fm Z6Vq7+sUK#aw*Yl8c)I$ztaD0e0ssjG7M%b9 diff --git a/lib/tpl/dokuwiki/images/usertools.png b/lib/tpl/dokuwiki/images/usertools.png index e99b6596e81bc58e314ae996826efcfb3c925a8d..68102271f2131ca21e3a4a28c52db559f7963fbe 100644 GIT binary patch delta 615 zcmV-t0+{`U43rCyBe5_U1AhWSNkl<ZcmeIyKWG$97{~G7d+;J?qi!K8Vk35fpoL8k z1Q9J16zl{Q6}7Um5Wznnb_xn90wE$POc_WNgTX2mDMK0+R7i+PNOE_2vorJT%=0*N zd&A;EAi?%N#XkFdVRyPg$&f+iJ;0vhERD&nqqb$wK9?~>*V$`rbAPL~=f?<ctlA*A z!RiM@|5>{<_ib*;+Ghw9iTCFKy!2j30ghQSqA=M3qO}$T>1}0so~0ka3*m+36$B?m zoN6j3auLxaNhmJtLX!waSsDu>GT#s$MKr#6XFEB%_GED!r5V6D6KAC;3iSMw|AVeQ z*i^{ko}scUl&ps83xCvVwK%Fjq>(~W?a2ni{wyoEEbBw5)`6alFw|y{uy11|zLghI z6>^VgZwhP~!A<vfcp#F3cmWOxGbyE-F=zqKhadsPzye&Vi=?xhH~>d}5ZY3}g?b7k zgy>@m#!>TE093&Q3Q5s{o=upgU=~QGhl*fm8i}N_ZYa9L)_<<>iHuUpIJt|GlM=fW znDyuHo~t183Sf~GNQBa}%{WK<K+YMII0U6aW|XFKB4dd1DRc}JZ3F08mm!176#{z( zZ9%D@1-|9Md=Jq>wjMtB@Rm;?5StG}=NiMg6#&Pz9qC*eBUbMOc6faZV9&rF?GFR* zG^bkxtOa<=0$gB?*J9Qlc*L?Bm?>s}`@)xjGa?fxO^6%>up~5yXpp3V;I?<9n!lTh z9QPsG_R|p=BG)*D(wi@JaZ>+!07%|mEnc5S^anSk&!V=D72p5>002ovPDHLkV1j6v B5N!Ye delta 728 zcmV;}0w?{H3xy1jBMSflb5ch_0Itp)>9HXj1AhPkVoOIv0Eh)0NB{r;32;bRa{vGf z6951U69E94oEQKA00(qQO+^RX1|AL!G!Zd1O8@`@aY;l$R7l6|mOW?{K@i8s2M<9T z^$JlD8?h4vEo?*(M6^&)uoF~N)XK_21V2FR6ckbfLV~0)Wgt-u2CG=4lr$=+kP!1i zl7IJ}zPr8M+nsTC?(;pw1Z>~GxY_yL?%wU~?A!o|ViQBDcL3;6tZ0I69nl?q_Bl<6 ze;u7tI?_rxeC)xERn3b0W%a#u*`#%2{@Z**>u25#4LNs?8!w$B69QO7h0>EPS^!c? zk$|kVvb=ya!2S!u#pM-$=OmF0+o2`8D1SYt4KcColbQBl9I3U)-a?CTT)Ipy-PvZW zx%OmfGF!|iUagJA7D|!?`uZ=`S-pN2Ssw)64=P|Mlb}`^0kvAqn{tMVDW)u^t=D_V z`e0uWq+Spl%Vw=*>TmLf6dO^QP|%660Im}yN%hRR$cf!k4AIj2rtJm~h;l%Vn|}uh z(S%{xmbAg(JOlFSzyoA(sY#SS%aWh&@DG#Ekpj5T%z>fw-iKl>*0g`IpaNo6SWO+> zYw2qPn)4AdSNgNV{u>U@7J$0U-$2p}w)B9HCg#wHE!{1)I~C?p<$pq-zdI}e(Fn&H zku3tkM?`wf_TQSlV64r<8yWbg*nd2{XCjV$J_FHA{vv~Egben#{a;C=T7X<JQh=Dv znLofs*>xNs-V^^JY9~p<X*?mDuA@;<k%G}k`v5qu^jMZO#<bc2u-&PnSyi)JxkCVN zrTmaA!X*e_pZatGYq%!4g!9oOq+MJlBwQ%mC%g=BhG;5#p(&yRY#L;S#6cf2)bjSW z<7jCAZimKV`uo`W({el*V_T=Pv9G^0$x`#{{&Kx<t|qTeOY09erO%?mdU@0U0000< KMNUMnLSTa4t4_`U -- GitLab From 208f4580295554c94e23377a4e02288bd5251908 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Thu, 15 Jan 2015 12:06:09 +0100 Subject: [PATCH 006/440] fixed wrong config check in extension manager #1006 --- lib/plugins/extension/helper/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 872cccc8c..8bcd00ec6 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -492,7 +492,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $errors .= '<p class="permerror">'.$this->getLang('git').'</p>'; } - if ($extension->isEnabled() && in_array('Auth', $extension->getTypes()) && $conf['auth'] != $extension->getID()) { + if ($extension->isEnabled() && in_array('Auth', $extension->getTypes()) && $conf['authtype'] != $extension->getID()) { $errors .= '<p class="permerror">'.$this->getLang('auth').'</p>'; } -- GitLab From 51cc540cb2e5c3cb76827d83253b5824a74e93ec Mon Sep 17 00:00:00 2001 From: Gilles-Philippe Morin <gphmorin@gmail.com> Date: Sun, 18 Jan 2015 11:56:10 -0500 Subject: [PATCH 007/440] "Login" and "Logout" become "Log In" and "Log Out" This change improves consistency with neighboring links such as "Update Profile" and "Register", which are two action verbs. "Login" and "Logout" were nouns and not verbs. Title case capitalization is applied because of "Update Profile". --- inc/lang/en/lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 92eb636ed..a5347e026 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -32,8 +32,8 @@ $lang['btn_upload'] = 'Upload'; $lang['btn_cancel'] = 'Cancel'; $lang['btn_index'] = 'Sitemap'; $lang['btn_secedit'] = 'Edit'; -$lang['btn_login'] = 'Login'; -$lang['btn_logout'] = 'Logout'; +$lang['btn_login'] = 'Log In'; +$lang['btn_logout'] = 'Log Out'; $lang['btn_admin'] = 'Admin'; $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Delete'; -- GitLab From 9b505d59adc0f5dd5a481c7a9a2e9d1f4f6780f3 Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov <alexgearbox@yandex.ru> Date: Sun, 25 Jan 2015 20:56:05 +0100 Subject: [PATCH 008/440] translation update --- inc/lang/ru/index.txt | 2 +- inc/lang/ru/lang.php | 6 ++-- lib/plugins/authad/lang/ru/settings.php | 6 ++-- lib/plugins/authldap/lang/ru/settings.php | 18 ++++++------ lib/plugins/authmysql/lang/ru/settings.php | 3 +- .../extension/lang/ru/intro_plugins.txt | 2 +- .../extension/lang/ru/intro_search.txt | 2 +- .../extension/lang/ru/intro_templates.txt | 2 +- lib/plugins/extension/lang/ru/lang.php | 28 +++++++++---------- lib/plugins/usermanager/lang/ru/import.txt | 5 ++-- lib/plugins/usermanager/lang/ru/lang.php | 4 +-- 11 files changed, 40 insertions(+), 38 deletions(-) diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt index fc42f87ff..ab669918a 100644 --- a/inc/lang/ru/index.txt +++ b/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по ([[doku>namespaces|проÑтранÑтвам имён]]). +Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index ffe513386..96278d53b 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -107,7 +107,7 @@ $lang['profchanged'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑп $lang['profnodelete'] = 'Удалённый пользователь не может работать Ñ Ñтим документом'; $lang['profdeleteuser'] = 'Удалить аккаунт'; $lang['profdeleted'] = 'Ваш аккаунт был удален из Ñтой вики'; -$lang['profconfdelete'] = 'Я хочу удалить мой аккаунт из Ñтой вики.<br />Ðто дейÑтвие необратимо.'; +$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> Ðто дейÑтвие необратимо.'; $lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; $lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; @@ -179,7 +179,7 @@ $lang['uploadexist'] = 'Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем ÑÑƒÑ‰ÐµÑ $lang['uploadbadcontent'] = 'Содержание файла не ÑоответÑтвует раÑширению %s.'; $lang['uploadspam'] = 'Загрузка заблокирована Ñпам-фильтром.'; $lang['uploadxss'] = 'Загрузка заблокирована по ÑоображениÑм безопаÑноÑти.'; -$lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (макÑ. %s)'; +$lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (МакÑ. %s)'; $lang['deletesucc'] = 'Файл «%s» был удалён.'; $lang['deletefail'] = 'Ðевозможно удалить файл «%s». Проверьте права доÑтупа к файлу.'; $lang['mediainuse'] = 'Файл «%s» не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; @@ -307,7 +307,7 @@ $lang['i_modified'] = 'Из Ñоображений безопаÑно <a href="http://www.dokuwiki.org/install">инÑтрукции по уÑтановке «Докувики»</a>'; $lang['i_funcna'] = 'Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ PHP <code>%s</code> недоÑтупна. Может быть, она по какой-то причине заблокирована вашим хоÑтером?'; $lang['i_phpver'] = 'Ваша верÑÐ¸Ñ PHP (<code>%s</code>) ниже требуемой (<code>%s</code>). Вам необходимо обновить уÑтановленную верÑию PHP.'; -$lang['i_mbfuncoverload'] = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка "Докувики" необходимо отключить параметр mbstring.func_overload в php.ini'; +$lang['i_mbfuncoverload'] = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка «Докувики» необходимо отключить параметр mbstring.func_overload в php.ini'; $lang['i_permfail'] = '<code>%s</code> недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи «Докувики». Вам необходимо иÑправить ÑиÑтемные права доÑтупа Ð´Ð»Ñ Ñтой директории!'; $lang['i_confexists'] = '<code>%s</code> уже ÑущеÑтвует'; $lang['i_writeerr'] = 'Ðе удалоÑÑŒ Ñоздать <code>%s</code>. Вам необходимо проверить ÑиÑтемные права доÑтупа к файлу и директориÑм, и Ñоздать файл вручную. '; diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index 99c916b44..c791bd791 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -19,9 +19,9 @@ $lang['admin_username'] = 'Привилегированный польз $lang['admin_password'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.'; $lang['sso'] = 'ИÑпользовать SSO (Single-Sign-On) через Kerberos или NTLM?'; $lang['sso_charset'] = 'Кодировка, в которой веб-Ñервер передаёт Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Kerberos или NTLM. Ð”Ð»Ñ UTF-8 или latin-1 оÑтаётÑÑ Ð¿ÑƒÑтым. Требует раÑширение iconv.'; -$lang['real_primarygroup'] = 'Должна ли иÑпользоватьÑÑ Ð½Ð°ÑтоÑÑ‰Ð°Ñ Ð¿ÐµÑ€Ð²Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° вмеÑто "Domain Users" (медленнее)'; +$lang['real_primarygroup'] = 'Должна ли иÑпользоватьÑÑ Ð½Ð°ÑтоÑÑ‰Ð°Ñ Ð¿ÐµÑ€Ð²Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° вмеÑто “Domain Users†(медленнее)'; $lang['use_ssl'] = 'ИÑпользовать SSL? ЕÑли да, то не включайте TLS.'; $lang['use_tls'] = 'ИÑпользовать TLS? ЕÑли да, то не включайте SSL.'; $lang['debug'] = 'Выводить дополнительную информацию при ошибках?'; -$lang['expirywarn'] = 'За Ñколько дней нужно предупреждать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾ необходимоÑти изменить пароль. 0 - отключить.'; -$lang['additional'] = 'Дополнительные AD атрибуты, разделённые запÑтой, Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ из данных пользователÑ. ИÑпользуетÑÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ плагинами.'; +$lang['expirywarn'] = 'За Ñколько дней нужно предупреждать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾ необходимоÑти изменить пароль? Ð”Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð¶Ð¸Ñ‚Ðµ 0 (ноль).'; +$lang['additional'] = 'Дополнительные AD-атрибуты, разделённые запÑтой, Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ из данных пользователÑ. ИÑпользуетÑÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ плагинами.'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 534990648..1e5391644 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -10,16 +10,16 @@ * @author Владимир <id37736@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> */ -$lang['server'] = 'Ваш LDAP Ñервер. Либо Ð¸Ð¼Ñ Ñ…Ð¾Ñта (<code>localhost</code>), либо полный URL (<code>ldap://server.tld:389</code>)'; -$lang['port'] = 'Порт LDAP Ñервера, еÑли выше не был указан полный URL'; -$lang['usertree'] = 'Где иÑкать аккаунты пользователей. Ðапример: <code>ou=People, dc=server, dc=tld</code>'; -$lang['grouptree'] = 'Где иÑкать группы пользователей. Ðапример: <code>ou=Group, dc=server, dc=tld</code>'; -$lang['userfilter'] = 'LDAP фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка аккаунтов пользователей. Ðапример: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; -$lang['groupfilter'] = 'LDAP фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка групп. Ðапример: <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; -$lang['version'] = 'ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð°. Возможно вам нужно указать <code>3</code>'; -$lang['starttls'] = 'ИÑпользовать TLS подключениÑ?'; +$lang['server'] = 'Ваш LDAP-Ñервер. Либо Ð¸Ð¼Ñ Ñ…Ð¾Ñта (<code>localhost</code>), либо полный URL (<code>ldap://server.tld:389</code>)'; +$lang['port'] = 'Порт LDAP-Ñервера, еÑли выше не был указан полный URL'; +$lang['usertree'] = 'Где иÑкать аккаунты пользователей? Ðапример: <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Где иÑкать группы пользователей? Ðапример: <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка аккаунтов пользователей. Ðапример: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка групп. Ðапример: <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð°. Возможно, вам нужно указать <code>3</code>'; +$lang['starttls'] = 'ИÑпользовать TLS-подключениÑ?'; $lang['deref'] = 'Как раÑшифровывать пÑевдонимы?'; -$lang['bindpw'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.'; +$lang['bindpw'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['userscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке пользователей'; $lang['groupscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке групп'; $lang['debug'] = 'Показывать дополнительную отладочную информацию при ошибках'; diff --git a/lib/plugins/authmysql/lang/ru/settings.php b/lib/plugins/authmysql/lang/ru/settings.php index eefec065b..d9afa14e6 100644 --- a/lib/plugins/authmysql/lang/ru/settings.php +++ b/lib/plugins/authmysql/lang/ru/settings.php @@ -6,6 +6,7 @@ * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> * @author Type-kun <workwork-1@yandex.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['server'] = 'Ваш MySQL-Ñервер'; $lang['user'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ MySQL'; @@ -14,7 +15,7 @@ $lang['database'] = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных'; $lang['charset'] = 'ИÑпользуемый набор Ñимволов в базе данных'; $lang['debug'] = 'Отображение дополнительной отладочной информации'; $lang['forwardClearPass'] = 'Передача Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ текÑтом, вмеÑто зашифрованной формы в иÑпользуемом выражении SQL'; -$lang['TablesToLock'] = 'Имена таблиц (через запÑтую), которые необходимо ограничение Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['TablesToLock'] = 'Имена таблиц (через запÑтую), которым необходимо ограничение Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['checkPass'] = 'Выражение SQL, оÑущеÑтвлÑющее проверку паролÑ'; $lang['getUserInfo'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о пользователе'; $lang['getGroups'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о членÑтве пользователе в группах'; diff --git a/lib/plugins/extension/lang/ru/intro_plugins.txt b/lib/plugins/extension/lang/ru/intro_plugins.txt index 7262516db..c5ea9e0ec 100644 --- a/lib/plugins/extension/lang/ru/intro_plugins.txt +++ b/lib/plugins/extension/lang/ru/intro_plugins.txt @@ -1 +1 @@ -Плагины, уÑтановленные в вашей DokuWiki. ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð², обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file +Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_search.txt b/lib/plugins/extension/lang/ru/intro_search.txt index a8486eab6..3c16748ba 100644 --- a/lib/plugins/extension/lang/ru/intro_search.txt +++ b/lib/plugins/extension/lang/ru/intro_search.txt @@ -1 +1 @@ -Ðта вкладка дает вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ DokuWiki. Имейте в виду, что уÑтановка Ñтороннего кода может предÑтавлÑÑ‚ÑŒ **угрозу безопаÑноÑти**, возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file +Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте ввиду, что уÑтановка Ñтороннего кода может предÑтавлÑÑ‚ÑŒ **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_templates.txt b/lib/plugins/extension/lang/ru/intro_templates.txt index 2d0b74256..787b32fa3 100644 --- a/lib/plugins/extension/lang/ru/intro_templates.txt +++ b/lib/plugins/extension/lang/ru/intro_templates.txt @@ -1 +1 @@ -Ðто шаблоны, уÑтановленные в вашей DokuWiki. Ð’Ñ‹ можете выбрать шаблон, который нужно иÑпользовать в [[?do=admin&page=config|Менеджере Конфигурации]] \ No newline at end of file +Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ Ð² [[?do=admin&page=config|наÑтройках вики]] \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 64db39b78..381d84500 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -36,18 +36,18 @@ $lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; $lang['homepage_link'] = 'ОпиÑание'; $lang['bugs_features'] = 'Баг-трекер'; $lang['tags'] = 'Метки:'; -$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; +$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°'; $lang['installed'] = 'УÑтановлено:'; -$lang['downloadurl'] = 'СÑылка Ð´Ð»Ñ ÑкачиваниÑ:'; +$lang['downloadurl'] = 'Скачать:'; $lang['repository'] = 'Репозиторий:'; $lang['unknown'] = '<em>неизвеÑтно</em>'; -$lang['installed_version'] = 'УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['install_date'] = 'ПоÑледнее обновление:'; +$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; +$lang['install_date'] = 'ПоÑл. обновление:'; $lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['compatible'] = 'СовмеÑтим Ñ:'; -$lang['depends'] = 'ЗавиÑит от:'; -$lang['similar'] = 'Похож на:'; -$lang['conflicts'] = 'Конфликтует Ñ:'; +$lang['compatible'] = 'СовмеÑтим Ñ'; +$lang['depends'] = 'ЗавиÑит от'; +$lang['similar'] = 'Похож на'; +$lang['conflicts'] = 'Конфликтует Ñ'; $lang['donate'] = 'ÐравитÑÑ?'; $lang['donate_action'] = 'Купить автору кофе!'; $lang['repo_retry'] = 'Повторить'; @@ -64,7 +64,7 @@ $lang['status_template'] = 'шаблон'; $lang['status_bundled'] = 'в комплекте'; $lang['msg_enabled'] = 'Плагин %s включён'; $lang['msg_disabled'] = 'Плагин %s отключён'; -$lang['msg_delete_success'] = 'Дополнение удалено'; +$lang['msg_delete_success'] = 'Дополнение %s удалено'; $lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить раÑширение %s'; $lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен'; $lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; @@ -75,18 +75,18 @@ $lang['missing_dependency'] = '<strong>ОтÑутÑтвует или откл $lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; $lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; $lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s.'; -$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> Переименуйте директорию "%s" в "%s".'; -$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> СÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде чем обновлÑÑ‚ÑŒ раÑширение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; +$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте папку плагина из %s в %s.'; +$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ раÑширение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; $lang['error_badurl'] = 'СÑылки должны начинатьÑÑ Ñ http или https'; $lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; $lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; -$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке - тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива - тогда загрузку и уÑтановку надо произвеÑти вручную.'; +$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную.'; $lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ñ€Ð°ÑширениÑ, загрузку и уÑтановку надо произвеÑти вручную.'; $lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; $lang['noperms'] = 'Папка Ð´Ð»Ñ Ñ€Ð°Ñширений недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['notplperms'] = 'Папка Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['nopluginperms'] = 'Папка плагинов недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['git'] = 'Ðто раÑширение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; -$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа URL:'; -$lang['install_upload'] = 'Скачать раÑширение:'; +$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа URL'; +$lang['install_upload'] = 'Скачать раÑширение'; $lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼.'; diff --git a/lib/plugins/usermanager/lang/ru/import.txt b/lib/plugins/usermanager/lang/ru/import.txt index c92e47b4c..22372c254 100644 --- a/lib/plugins/usermanager/lang/ru/import.txt +++ b/lib/plugins/usermanager/lang/ru/import.txt @@ -2,7 +2,8 @@ ПотребуетÑÑ ÑпиÑок пользователей в файле формата CSV, ÑоÑтоÑщий из 4 Ñтолбцов. Столбцы должны быть заполнены Ñледующим образом: user-id, полное имÑ, Ñл. почта, группы. -ÐŸÐ¾Ð»Ñ CSV должны быть отделены запÑтой (,), а Ñтроки должны быть заключены в кавычки (%%""%%). Обратный ÑлÑш иÑпользуетÑÑ ÐºÐ°Ðº прерывание. -Ð’ качеÑтве примера можете взÑÑ‚ÑŒ ÑпиÑок пользователей, ÑкÑпортированный через «ÐкÑпорт пользователей». ПовторÑющиеÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ñ‹ user-id будут игнорироватьÑÑ. +ÐŸÐ¾Ð»Ñ CSV должны быть отделены запÑтой (,), а Ñтроки должны быть заключены в кавычки (%%""%%). Обратный ÑлÑш (\) иÑпользуетÑÑ ÐºÐ°Ðº прерывание. +Ð’ качеÑтве примера можете взÑÑ‚ÑŒ ÑпиÑок пользователей, ÑкÑпортированный через «ÐкÑпорт пользователей». +ПовторÑющиеÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ñ‹ user-id будут игнорироватьÑÑ. Пароль доÑтупа будет Ñгенерирован и отправлен по почте удачно импортированному пользователю. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index 0914d7b49..de650d681 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -70,10 +70,10 @@ $lang['add_fail'] = 'Ðе удалоÑÑŒ добавить поль $lang['notify_ok'] = 'ПиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ отправлено'; $lang['notify_fail'] = 'Ðе удалоÑÑŒ отправить пиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼'; $lang['import_userlistcsv'] = 'Файл Ñо ÑпиÑком пользователей (CSV):'; -$lang['import_header'] = 'ПоÑледний импорт - ÑпиÑок ошибок'; +$lang['import_header'] = 'ПоÑледний импорт — ÑпиÑок ошибок'; $lang['import_success_count'] = 'Импорт пользователей: %d пользователей найдено, %d импортировано уÑпешно.'; $lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. СпиÑок ошибок прочтите ниже.'; -$lang['import_error_fields'] = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а нужно 4.'; +$lang['import_error_fields'] = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а нужно: 4.'; $lang['import_error_baduserid'] = 'ОтÑутÑтвует идентификатор пользователÑ'; $lang['import_error_badname'] = 'Ð˜Ð¼Ñ Ð½Ðµ годитÑÑ'; $lang['import_error_badmail'] = 'ÐÐ´Ñ€ÐµÑ Ñлектронной почты не годитÑÑ'; -- GitLab From c85cbe690d7a58d7835f92aa71252cf2d25d40a2 Mon Sep 17 00:00:00 2001 From: Davor Turkalj <turki.bsc@gmail.com> Date: Wed, 28 Jan 2015 09:26:11 +0100 Subject: [PATCH 009/440] translation update --- inc/lang/hr/lang.php | 2 +- lib/plugins/extension/lang/hr/lang.php | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index c3cf6d822..6e4e48e36 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -64,7 +64,7 @@ $lang['remember'] = 'Zapamti me'; $lang['fullname'] = 'Ime i prezime'; $lang['email'] = 'E-poÅ¡ta'; $lang['profile'] = 'KorisniÄki profil'; -$lang['badlogin'] = 'Ne ispravno korisniÄko ime ili lozinka.'; +$lang['badlogin'] = 'Neispravno korisniÄko ime ili lozinka.'; $lang['badpassconfirm'] = 'Nažalost, lozinka nije ispravna'; $lang['minoredit'] = 'Manje izmjene'; $lang['draftdate'] = 'Nacrt promjena automatski spremljen u'; diff --git a/lib/plugins/extension/lang/hr/lang.php b/lib/plugins/extension/lang/hr/lang.php index f43defcb1..e51d8cba3 100644 --- a/lib/plugins/extension/lang/hr/lang.php +++ b/lib/plugins/extension/lang/hr/lang.php @@ -5,20 +5,20 @@ * * @author Davor Turkalj <turki.bsc@gmail.com> */ -$lang['menu'] = 'Upravitelj dodataka'; +$lang['menu'] = 'Upravitelj proÅ¡irenja'; $lang['tab_plugins'] = 'UgraÄ‘eni dodatci'; $lang['tab_templates'] = 'UgraÄ‘eni predloÅ¡ci'; $lang['tab_search'] = 'Potraži i ugradi'; $lang['tab_install'] = 'RuÄna ugradnja'; $lang['notimplemented'] = 'Ova mogućnost joÅ¡ nije napravljena'; -$lang['notinstalled'] = 'Dodatak nije ugraÄ‘en'; -$lang['alreadyenabled'] = 'Ovaj dodatak je već omogućen'; -$lang['alreadydisabled'] = 'Ovaj dodatak je već onemogućen'; +$lang['notinstalled'] = 'ProÅ¡irenje nije ugraÄ‘eno'; +$lang['alreadyenabled'] = 'Ovo proÅ¡irenje je već omogućeno'; +$lang['alreadydisabled'] = 'Ovo proÅ¡irenje je već onemogućeno'; $lang['pluginlistsaveerror'] = 'Dogodila se greÅ¡ka pri snimanju liste dodataka'; $lang['unknownauthor'] = 'Nepoznat autor'; $lang['unknownversion'] = 'Nepoznata inaÄica'; $lang['btn_info'] = 'Prikaži viÅ¡e informacija'; -$lang['btn_update'] = 'Dogradi'; +$lang['btn_update'] = 'Ažuriraj'; $lang['btn_uninstall'] = 'Ukloni'; $lang['btn_enable'] = 'Omogući'; $lang['btn_disable'] = 'Onemogući'; @@ -33,7 +33,7 @@ $lang['popularity'] = 'Popularnost: %s%%'; $lang['homepage_link'] = 'Upute'; $lang['bugs_features'] = 'GreÅ¡ke'; $lang['tags'] = 'Oznake:'; -$lang['author_hint'] = 'Potraži dodatke od ovog autora'; +$lang['author_hint'] = 'Potraži proÅ¡irenja od ovog autora'; $lang['installed'] = 'UgraÄ‘eno:'; $lang['downloadurl'] = 'URL adresa preuzimanja:'; $lang['repository'] = 'Repozitorij:'; @@ -61,7 +61,8 @@ $lang['status_template'] = 'predložak'; $lang['status_bundled'] = 'ugraÄ‘en'; $lang['msg_enabled'] = 'Dodatak %s omogućen'; $lang['msg_disabled'] = 'Dodatak %s onemogućen'; -$lang['msg_delete_success'] = 'ProÅ¡irenje uklonjeno'; +$lang['msg_delete_success'] = 'ProÅ¡irenje %s uklonjeno'; +$lang['msg_delete_failed'] = 'Uklanjanje proÅ¡irenja %s nije uspjelo'; $lang['msg_template_install_success'] = 'Predložak %s uspjeÅ¡no ugraÄ‘en'; $lang['msg_template_update_success'] = 'Predložak %s uspjeÅ¡no nadograÄ‘en'; $lang['msg_plugin_install_success'] = 'Dodatak %s uspjeÅ¡no ugraÄ‘en'; @@ -83,6 +84,8 @@ $lang['noperms'] = 'Nije moguće pisati u mapu proÅ¡iranja'; $lang['notplperms'] = 'Nije moguće pisati u mapu predloÅ¡ka'; $lang['nopluginperms'] = 'Nije moguće pisati u mapu dodatka'; $lang['git'] = 'ProÅ¡irenje je ugraÄ‘eno preko Git-a, možda ga ne želite nadograÄ‘ivati ovdje.'; +$lang['auth'] = 'Autorizacijski dodatak nije podeÅ¡en, razmotrite njegovo onemogućavanje kao dodatka.'; $lang['install_url'] = 'Ugradi s URL-a:'; $lang['install_upload'] = 'UÄitaj proÅ¡irenje:'; $lang['repo_error'] = 'Repozitorij dodataka nije dostupan. Budite sigurni da server može pristupiti www.dokuwiki.org i provjerite proxy postavke.'; +$lang['nossl'] = 'Izgleda da koriÅ¡teni PHP ne podržava SSL. UÄitavanje neće raditi na mnogim DokuWiki dodatcima.'; -- GitLab From 090f83d33e04d9dfa5a75e6229b19bfab29b7b51 Mon Sep 17 00:00:00 2001 From: Michael Hamann <michael@content-space.de> Date: Sun, 1 Feb 2015 13:59:41 +0100 Subject: [PATCH 010/440] Fix farm config cascade for extendable user style and scripts #954 --- inc/farm.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/farm.php b/inc/farm.php index cee61816c..87fcdade8 100644 --- a/inc/farm.php +++ b/inc/farm.php @@ -135,12 +135,12 @@ $config_cascade = array( ), ), 'userstyle' => array( - 'screen' => DOKU_CONF.'userstyle.css', - 'print' => DOKU_CONF.'userprint.css', - 'feed' => DOKU_CONF.'userfeed.css', - 'all' => DOKU_CONF.'userall.css', + 'screen' => array(DOKU_CONF . 'userstyle.css', DOKU_CONF . 'userstyle.less'), + 'print' => array(DOKU_CONF . 'userprint.css', DOKU_CONF . 'userprint.less'), + 'feed' => array(DOKU_CONF . 'userfeed.css', DOKU_CONF . 'userfeed.less'), + 'all' => array(DOKU_CONF . 'userall.css', DOKU_CONF . 'userall.less') ), 'userscript' => array( - 'default' => DOKU_CONF.'userscript.js' + 'default' => array(DOKU_CONF . 'userscript.js') ), ); -- GitLab From ea0c142784dedbbc3e93b84bea865a40ccb6dc94 Mon Sep 17 00:00:00 2001 From: Christoph Dwertmann <cdwertmann@gmail.com> Date: Thu, 5 Feb 2015 15:37:31 +1100 Subject: [PATCH 011/440] Add ob_flush() to sendGIF I'm running this dokuwiki docker container: https://registry.hub.docker.com/u/mprasil/dokuwiki/ It uses lighttpd and fastcgi. For some reason, the ignore_user_abort() feature where the browser should close the connection after the GIF has been received is not working on lighty. The browser keeps loading the page until the indexer run is complete, which leads to extremely slow load times with a larger page index. Adding ob_flush() to sendGIF fixes the issue. --- lib/exe/indexer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 330b8498d..2de178caa 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -199,6 +199,7 @@ function sendGIF(){ header('Content-Length: '.strlen($img)); header('Connection: Close'); print $img; + ob_flush(); flush(); // Browser should drop connection after this // Thinks it's got the whole image -- GitLab From 4c32d8dc4120e5a2667564b4108b3708986ea47e Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 9 Feb 2015 09:17:32 +0100 Subject: [PATCH 012/440] fixed method signature #1024 --- lib/plugins/authad/action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/authad/action.php b/lib/plugins/authad/action.php index 97be9897e..bc0f90c7e 100644 --- a/lib/plugins/authad/action.php +++ b/lib/plugins/authad/action.php @@ -17,7 +17,7 @@ class action_plugin_authad extends DokuWiki_Action_Plugin { /** * Registers a callback function for a given event */ - public function register(Doku_Event_Handler &$controller) { + public function register(Doku_Event_Handler $controller) { $controller->register_hook('AUTH_LOGIN_CHECK', 'BEFORE', $this, 'handle_auth_login_check'); $controller->register_hook('HTML_LOGINFORM_OUTPUT', 'BEFORE', $this, 'handle_html_loginform_output'); -- GitLab From d75d76b237162cf89dcc8f56703ec0607ed27fdb Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 9 Feb 2015 09:40:24 +0100 Subject: [PATCH 013/440] fix referral settings in AuthLDAP. closes #1023 --- lib/plugins/authldap/auth.php | 4 ++-- lib/plugins/authldap/conf/default.php | 2 +- lib/plugins/authldap/conf/metadata.php | 2 +- lib/plugins/authldap/lang/en/settings.php | 4 ++++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index fd4729331..50735882f 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -516,13 +516,13 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { } } // needs version 3 - if($this->getConf('referrals')) { + if($this->getConf('referrals') > -1) { if(!@ldap_set_option( $this->con, LDAP_OPT_REFERRALS, $this->getConf('referrals') ) ) { - msg('Setting LDAP referrals to off failed', -1); + msg('Setting LDAP referrals failed', -1); $this->_debug('LDAP referal set: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); } } diff --git a/lib/plugins/authldap/conf/default.php b/lib/plugins/authldap/conf/default.php index 2c295eeeb..c2e462c5c 100644 --- a/lib/plugins/authldap/conf/default.php +++ b/lib/plugins/authldap/conf/default.php @@ -8,7 +8,7 @@ $conf['userfilter'] = ''; $conf['groupfilter'] = ''; $conf['version'] = 2; $conf['starttls'] = 0; -$conf['referrals'] = 0; +$conf['referrals'] = -1; $conf['deref'] = 0; $conf['binddn'] = ''; $conf['bindpw'] = ''; diff --git a/lib/plugins/authldap/conf/metadata.php b/lib/plugins/authldap/conf/metadata.php index 6aa53c40d..4649ba5bf 100644 --- a/lib/plugins/authldap/conf/metadata.php +++ b/lib/plugins/authldap/conf/metadata.php @@ -7,7 +7,7 @@ $meta['userfilter'] = array('string','_caution' => 'danger'); $meta['groupfilter'] = array('string','_caution' => 'danger'); $meta['version'] = array('numeric','_caution' => 'danger'); $meta['starttls'] = array('onoff','_caution' => 'danger'); -$meta['referrals'] = array('onoff','_caution' => 'danger'); +$meta['referrals'] = array('multichoice','_choices' => array(-1,0,1),'_caution' => 'danger'); $meta['deref'] = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'danger'); $meta['binddn'] = array('string','_caution' => 'danger'); $meta['bindpw'] = array('password','_caution' => 'danger'); diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index b73166ab2..951901ccc 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -21,3 +21,7 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; + +$lang['referrals_o_-1'] = 'use default'; +$lang['referrals_o_0'] = 'don\'t follow referrals'; +$lang['referrals_o_1'] = 'follow referrals'; \ No newline at end of file -- GitLab From bf00b3965f373b9497752ef97b25d9f29be35ca0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 9 Feb 2015 10:22:12 +0100 Subject: [PATCH 014/440] fix username handling in dwpage CLI tool. closes #1019 --- bin/dwpage.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/dwpage.php b/bin/dwpage.php index a777fd3e1..d7f6e9bb8 100755 --- a/bin/dwpage.php +++ b/bin/dwpage.php @@ -28,7 +28,8 @@ class PageCLI extends DokuCLI { $options->registerOption( 'user', 'work as this user. defaults to current CLI user', - 'u' + 'u', + 'username' ); $options->setHelp( 'Utility to help command line Dokuwiki page editing, allow '. @@ -239,6 +240,7 @@ class PageCLI extends DokuCLI { if($this->force) $this->deleteLock($wiki_id); $_SERVER['REMOTE_USER'] = $this->username; + if(checklock($wiki_id)) { $this->error("Page $wiki_id is already locked by another user"); exit(1); @@ -246,7 +248,6 @@ class PageCLI extends DokuCLI { lock($wiki_id); - $_SERVER['REMOTE_USER'] = '_'.$this->username.'_'; if(checklock($wiki_id) != $this->username) { $this->error("Unable to obtain lock for $wiki_id "); var_dump(checklock($wiki_id)); -- GitLab From eba389bb2fd1174360c5d255bbf53e1d40ab8712 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 9 Feb 2015 17:03:34 +0100 Subject: [PATCH 015/440] avoid messages pushing down page tools. fixes #1011 This moves the message area into content div. The pageid is now aligned by floating instead of absolute positioning. --- lib/tpl/dokuwiki/css/design.less | 16 +++++++++------- lib/tpl/dokuwiki/detail.php | 1 + lib/tpl/dokuwiki/main.php | 1 + lib/tpl/dokuwiki/tpl_header.php | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less index 66607b5e9..3ded73581 100644 --- a/lib/tpl/dokuwiki/css/design.less +++ b/lib/tpl/dokuwiki/css/design.less @@ -11,7 +11,7 @@ ********************************************************************/ #dokuwiki__header { - padding: 2em 0 1.5em; + padding: 2em 0 0; .headings, .tools { @@ -349,11 +349,11 @@ form.search { ********************************************************************/ .dokuwiki .pageId { - position: absolute; - top: -2.3em; - right: -1em; + float: right; + margin-right: -1em; + margin-bottom: -1px; overflow: hidden; - padding: 1em 1em 0; + padding: 0.5em 1em 0; span { font-size: 0.875em; @@ -370,6 +370,7 @@ form.search { } .dokuwiki div.page { + clear: both; background: @ini_background; color: inherit; border: 1px solid @ini_background_alt; @@ -396,8 +397,9 @@ form.search { } [dir=rtl] .dokuwiki .pageId { - right: auto; - left: -1em; + float: left; + margin-left: -1em; + margin-right: 0; } /* footer diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index d4f9c39d1..b27567987 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -36,6 +36,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <!-- ********** CONTENT ********** --> <div id="dokuwiki__content"><div class="pad group"> + <?php html_msgarea() ?> <?php if(!$ERROR): ?> <div class="pageId"><span><?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG)); ?></span></div> diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 10c0bf91e..165230e8a 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -49,6 +49,7 @@ $showSidebar = $hasSidebar && ($ACT=='show'); <!-- ********** CONTENT ********** --> <div id="dokuwiki__content"><div class="pad group"> + <?php html_msgarea() ?> <div class="pageId"><span><?php echo hsc($ID) ?></span></div> diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index 7d9c88347..ee51cbd01 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -85,7 +85,7 @@ if (!defined('DOKU_INC')) die(); </div> <?php endif ?> - <?php html_msgarea() ?> + <hr class="a11y" /> </div></div><!-- /header --> -- GitLab From 0a4266d4abdf928b71e0eb0164595ce5d3f162f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= <glen@delfi.ee> Date: Tue, 10 Feb 2015 14:48:08 +0200 Subject: [PATCH 016/440] consistency: failure exit with status code 1 --- inc/init.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/init.php b/inc/init.php index 91bc77f98..bc9ab6d70 100644 --- a/inc/init.php +++ b/inc/init.php @@ -535,7 +535,7 @@ function nice_die($msg){ </body> </html> EOT; - exit; + exit(1); } /** -- GitLab From cbb4a6817d10faf5d8376e07a26e2030a2335d78 Mon Sep 17 00:00:00 2001 From: lainme <lainme993@gmail.com> Date: Thu, 12 Feb 2015 08:51:36 +0100 Subject: [PATCH 017/440] translation update --- inc/lang/zh/lang.php | 2 ++ lib/plugins/authldap/lang/zh/settings.php | 3 +++ lib/plugins/extension/lang/zh/lang.php | 3 +++ 3 files changed, 8 insertions(+) diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index d960eb799..6f55834d0 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -360,3 +360,5 @@ $lang['currentns'] = '当å‰å‘½å空间'; $lang['searchresult'] = 'æœç´¢ç»“æžœ'; $lang['plainhtml'] = '纯HTML'; $lang['wikimarkup'] = 'Wiki Markup è¯è¨€'; +$lang['page_nonexist_rev'] = '页é¢åœ¨ %s ä¸å˜åœ¨ã€‚它曾创建于 <a href="%s">%s</a>。'; +$lang['unable_to_parse_date'] = 'æ— æ³•è§£æžå‚æ•° "%s"。'; diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index cdaf3dc64..d4ea5c615 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -26,3 +26,6 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = '默认'; +$lang['referrals_o_0'] = 'ä¸è¦è·Ÿéšå‚ç…§(referral)'; +$lang['referrals_o_1'] = 'è·Ÿéšå‚ç…§(referral)'; diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php index 0264f3e9c..5ab3d77ba 100644 --- a/lib/plugins/extension/lang/zh/lang.php +++ b/lib/plugins/extension/lang/zh/lang.php @@ -65,6 +65,7 @@ $lang['status_bundled'] = '内建'; $lang['msg_enabled'] = 'æ’件 %s å·²å¯ç”¨'; $lang['msg_disabled'] = 'æ’件 %s å·²ç¦ç”¨'; $lang['msg_delete_success'] = 'æ’件已ç»å¸è½½'; +$lang['msg_delete_failed'] = 'å¸è½½æ‰©å±• %s 失败'; $lang['msg_template_install_success'] = 'æ¨¡æ¿ %s 安装æˆåŠŸ'; $lang['msg_template_update_success'] = 'æ¨¡æ¿ %s æ›´æ–°æˆåŠŸ'; $lang['msg_plugin_install_success'] = 'æ’件 %s 安装æˆåŠŸ'; @@ -86,6 +87,8 @@ $lang['noperms'] = '扩展目录ä¸å¯å†™'; $lang['notplperms'] = '模æ¿ç›®å½•ä¸å¯å†™'; $lang['nopluginperms'] = 'æ’件目录ä¸å¯å†™'; $lang['git'] = '这个扩展是通过 git 安装的,您å¯èƒ½ä¸æƒ³åœ¨è¿™é‡Œå‡çº§å®ƒ'; +$lang['auth'] = '这个认è¯æ’件没有在é…ç½®ä¸å¯ç”¨ï¼Œè¯·è€ƒè™‘ç¦ç”¨å®ƒã€‚'; $lang['install_url'] = '从 URL 安装:'; $lang['install_upload'] = 'ä¸Šä¼ æ‰©å±•ï¼š'; $lang['repo_error'] = 'æ— æ³•è¿žæŽ¥åˆ°æ’件仓库。请确定您的æœåŠ¡å™¨å¯ä»¥è¿žæŽ¥ www.dokuwiki.org 并检查您的代ç†è®¾ç½®ã€‚'; +$lang['nossl'] = '您的 PHP 似乎没有 SSL 支æŒã€‚很多 Dokuwiki æ‰©å±•å°†æ— æ³•ä¸‹è½½ã€‚'; -- GitLab From 25839a4134376bdcf24d224bea967ee79ec85a40 Mon Sep 17 00:00:00 2001 From: chang-zhao <chang-zhao@users.noreply.github.com> Date: Thu, 12 Feb 2015 15:09:51 +0300 Subject: [PATCH 018/440] Update wordblock.conf wordblock.conf too restrictive #1021 - removed fetish, bi...sex & gay...sex --- conf/wordblock.conf | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/wordblock.conf b/conf/wordblock.conf index fc939a4d4..f877f26d7 100644 --- a/conf/wordblock.conf +++ b/conf/wordblock.conf @@ -2,14 +2,11 @@ # patches welcome # https?:\/\/(\S*?)(-side-effects|top|pharm|pill|discount|discount-|deal|price|order|now|best|cheap|cheap-|online|buy|buy-|sale|sell)(\S*?)(cialis|viagra|prazolam|xanax|zanax|soma|vicodin|zenical|xenical|meridia|paxil|prozac|claritin|allegra|lexapro|wellbutrin|zoloft|retin|valium|levitra|phentermine) -gay\s*sex -bi\s*sex incest zoosex gang\s*bang facials ladyboy -fetish \btits\b \brape\b bolea\.com -- GitLab From fb45dc56a0cf91f2a0d7126e846580666a6755b7 Mon Sep 17 00:00:00 2001 From: Tim222 <tim.weinhold@gmail.com> Date: Thu, 12 Feb 2015 13:56:22 +0100 Subject: [PATCH 019/440] Update interwiki.conf Support for the URI scheme tel: #643 --- conf/interwiki.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/interwiki.conf b/conf/interwiki.conf index d961912e5..4857e27f3 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -32,6 +32,6 @@ google.de http://www.google.de/search?q= go http://www.google.com/search?q={URL}&btnI=lucky user :user:{NAME} -# To support VoIP/SIP links +# To support VoIP/SIP/TEL links callto callto://{NAME} - +tel tel:{NAME} -- GitLab From 2a3c155cbaa1367e7dfaa067621e9535cb2ad880 Mon Sep 17 00:00:00 2001 From: Tim222 <tim.weinhold@gmail.com> Date: Thu, 12 Feb 2015 14:15:57 +0100 Subject: [PATCH 020/440] Added icon for interwiki.conf Support for the URI scheme tel: #643 --- lib/images/interwiki/tel.gif | Bin 0 -> 177 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/images/interwiki/tel.gif diff --git a/lib/images/interwiki/tel.gif b/lib/images/interwiki/tel.gif new file mode 100644 index 0000000000000000000000000000000000000000..60158c5652e9ea5ca6e47abd5e9c668e439c5ce2 GIT binary patch literal 177 zcmV;i08al$Nk%w1VGsZi0OJn;%rGlnkP8`g&l!;BDxK<Bq2ZU9nyjv`ouH%C*4gRe z-QC~e^YQNA-`~W(y#N3IA^8LW3IGoPEC2ui01yBW000DD@X0ydagOTB*xAn^S_iX; z+o5!wrF@zy%thV6R4EX3{iccmVMrMKVnJe2f!H8e&_z>&SOfx&1OOm)E)w8ym%1<* fz~(Wfnpk`r?J32;Ko}HEx?yAP`}ZJ$5)lA9I!jTV literal 0 HcmV?d00001 -- GitLab From 8b7f89f548e7fdb4a84eb98f638fe5f49529d829 Mon Sep 17 00:00:00 2001 From: chang-zhao <chang-zhao@users.noreply.github.com> Date: Thu, 12 Feb 2015 19:51:22 +0300 Subject: [PATCH 021/440] Update wordblock.conf --- conf/wordblock.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conf/wordblock.conf b/conf/wordblock.conf index f877f26d7..f2ff15942 100644 --- a/conf/wordblock.conf +++ b/conf/wordblock.conf @@ -2,13 +2,12 @@ # patches welcome # https?:\/\/(\S*?)(-side-effects|top|pharm|pill|discount|discount-|deal|price|order|now|best|cheap|cheap-|online|buy|buy-|sale|sell)(\S*?)(cialis|viagra|prazolam|xanax|zanax|soma|vicodin|zenical|xenical|meridia|paxil|prozac|claritin|allegra|lexapro|wellbutrin|zoloft|retin|valium|levitra|phentermine) -incest +https?:\/\/(\S*?)(bi\s*sex|gay\s*sex|fetish|incest|\brape\b) zoosex gang\s*bang facials ladyboy \btits\b -\brape\b bolea\.com 52crystal baida\.org -- GitLab From c9f9ddf9a8e1f6113df3844ed45bb1f6d9012f4f Mon Sep 17 00:00:00 2001 From: chang-zhao <chang-zhao@users.noreply.github.com> Date: Fri, 13 Feb 2015 12:56:51 +0300 Subject: [PATCH 022/440] Update wordblock.conf moved those keywords to http & added penis --- conf/wordblock.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/wordblock.conf b/conf/wordblock.conf index f2ff15942..3040fa08f 100644 --- a/conf/wordblock.conf +++ b/conf/wordblock.conf @@ -2,7 +2,7 @@ # patches welcome # https?:\/\/(\S*?)(-side-effects|top|pharm|pill|discount|discount-|deal|price|order|now|best|cheap|cheap-|online|buy|buy-|sale|sell)(\S*?)(cialis|viagra|prazolam|xanax|zanax|soma|vicodin|zenical|xenical|meridia|paxil|prozac|claritin|allegra|lexapro|wellbutrin|zoloft|retin|valium|levitra|phentermine) -https?:\/\/(\S*?)(bi\s*sex|gay\s*sex|fetish|incest|\brape\b) +https?:\/\/(\S*?)(bi\s*sex|gay\s*sex|fetish|incest|penis|\brape\b) zoosex gang\s*bang facials -- GitLab From c2a2396e45a7ec8a14d573c89719463e765b1074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Iradier?= <airadier@gmail.com> Date: Fri, 13 Feb 2015 16:01:39 +0100 Subject: [PATCH 023/440] translation update --- inc/lang/es/lang.php | 4 +++- lib/plugins/extension/lang/es/lang.php | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 8f4cb2977..865110ab9 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -37,6 +37,7 @@ * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> * @author pokesakura <pokesakura@gmail.com> + * @author Ãlvaro Iradier <airadier@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -98,7 +99,7 @@ $lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea'; $lang['minoredit'] = 'Cambios menores'; $lang['draftdate'] = 'Borrador guardado automáticamente:'; $lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.'; -$lang['searchcreatepage'] = "Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón ''Crea esta página''."; +$lang['searchcreatepage'] = 'Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón \'\'Crea esta página\'\'.'; $lang['regmissing'] = 'Lo siento, tienes que completar todos los campos.'; $lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.'; $lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.'; @@ -369,3 +370,4 @@ $lang['currentns'] = 'Espacio de nombres actual'; $lang['searchresult'] = 'Resultado de la búsqueda'; $lang['plainhtml'] = 'HTML sencillo'; $lang['wikimarkup'] = 'Etiquetado Wiki'; +$lang['page_nonexist_rev'] = 'La página no existÃa en %s. Por tanto fue creada en <a href="%s">%s</a>.'; diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php index 63742c3b3..a835cb630 100644 --- a/lib/plugins/extension/lang/es/lang.php +++ b/lib/plugins/extension/lang/es/lang.php @@ -6,6 +6,7 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> + * @author Ãlvaro Iradier <airadier@gmail.com> */ $lang['menu'] = 'Administrador de Extensiones '; $lang['tab_plugins'] = 'Plugins instalados'; @@ -64,6 +65,7 @@ $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Plugin %s activado'; $lang['msg_disabled'] = 'Plugin %s desactivado'; $lang['msg_delete_success'] = 'Extensión desinstalada'; +$lang['msg_delete_failed'] = 'La desinstalación de la extensión %s ha fallado'; $lang['msg_template_install_success'] = 'Plantilla %s instalada con éxito'; $lang['msg_template_update_success'] = 'Plantilla %s actualizada con éxito'; $lang['msg_plugin_install_success'] = 'Plugin %s instalado con éxito'; @@ -78,6 +80,9 @@ $lang['url_change'] = '<strong>URL actualizada:</strong> El Download $lang['error_badurl'] = 'URLs deberÃan empezar con http o https'; $lang['error_dircreate'] = 'No es posible de crear un directorio temporero para poder recibir el download'; $lang['error_download'] = 'No es posible descargar el documento: %s'; +$lang['error_decompress'] = 'No se pudo descomprimir el fichero descargado. Puede ser a causa de una descarga incorrecta, en cuyo caso puedes intentarlo de nuevo; o puede que el formato de compresión sea desconocido, en cuyo caso necesitarás descargar e instalar manualmente.'; +$lang['noperms'] = 'El directorio de extensiones no tiene permiso de escritura.'; +$lang['notplperms'] = 'El directorio de plantillas no tiene permiso de escritura.'; $lang['git'] = 'Esta extensión fue instalada a través de git, quizás usted no quiera actualizarla aquà mismo.'; $lang['install_url'] = 'Instalar desde URL:'; $lang['install_upload'] = 'Subir Extensión:'; -- GitLab From 001ea14e1ab1f02f7715f2baba75ab563da5236e Mon Sep 17 00:00:00 2001 From: Rainbow Spike <Dr-Yukon@users.noreply.github.com> Date: Mon, 16 Feb 2015 21:41:15 +1000 Subject: [PATCH 024/440] Update template.php Added placeholder in search textarea --- inc/template.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/template.php b/inc/template.php index ec8de44f3..a4ace1a63 100644 --- a/inc/template.php +++ b/inc/template.php @@ -840,6 +840,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) { print '<input type="hidden" name="do" value="search" />'; print '<input type="text" '; if($ACT == 'search') print 'value="'.htmlspecialchars($QUERY).'" '; + print 'placeholder="'.$lang['btn_search'].'" '; if(!$autocomplete) print 'autocomplete="off" '; print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />'; print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />'; -- GitLab From d6dc28be40fb3202a3df69458db164e20999ac2b Mon Sep 17 00:00:00 2001 From: ghi <dokuwiki@imz.re> Date: Tue, 17 Feb 2015 11:07:57 +0100 Subject: [PATCH 025/440] Revert "add TEMPLATE_SITETOOLS_DISPLAY and TEMPLATE_USERTOOLS_DISPLAY basing on Starter template" This reverts commit 362a4f084345b496ab6b155db3ec50cad3939d0e. --- inc/template.php | 19 ------------------- lib/tpl/dokuwiki/tpl_header.php | 19 +++++++------------ 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/inc/template.php b/inc/template.php index fb468d041..60e178d1a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1786,24 +1786,5 @@ function tpl_classes() { return join(' ', $classes); } -/** - * Create event for tools menues - * - * @author Anika Henke <anika@selfthinker.org> - */ -function tpl_toolsevent($toolsname, $items, $view='main') { - $data = array( - 'view' => $view, - 'items' => $items - ); - - $hook = 'TEMPLATE_'.strtoupper($toolsname).'_DISPLAY'; - $evt = new Doku_Event($hook, $data); - if($evt->advise_before()){ - foreach($evt->data['items'] as $k => $html) echo $html; - } - $evt->advise_after(); -} - //Setup VIM: ex: et ts=4 : diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index 547dd1401..a2bfd4346 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -46,13 +46,10 @@ if (!defined('DOKU_INC')) die(); tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } - - tpl_toolsevent('usertools', array( - 'admin' => tpl_action('admin', 1, 'li', 1), - 'profile' => tpl_action('profile', 1, 'li', 1), - 'register' => tpl_action('register', 1, 'li', 1), - 'login' => tpl_action('login', 1, 'li', 1), - )); + tpl_action('admin', 1, 'li'); + tpl_action('profile', 1, 'li'); + tpl_action('register', 1, 'li'); + tpl_action('login', 1, 'li'); ?> </ul> </div> @@ -67,11 +64,9 @@ if (!defined('DOKU_INC')) die(); </div> <ul> <?php - tpl_toolsevent('sitetools', array( - 'recent' => tpl_action('recent', 1, 'li', 1), - 'media' => tpl_action('media', 1, 'li', 1), - 'index' => tpl_action('index', 1, 'li', 1), - )); + tpl_action('recent', 1, 'li'); + tpl_action('media', 1, 'li'); + tpl_action('index', 1, 'li'); ?> </ul> </div> -- GitLab From 0747f5d729d43516c67c5240a662a68dfb446437 Mon Sep 17 00:00:00 2001 From: ghi <dokuwiki@imz.re> Date: Tue, 17 Feb 2015 11:38:10 +0100 Subject: [PATCH 026/440] event HTML_SHOWREV_OUTPUT --- inc/html.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 3a93a6604..c87d0ea87 100644 --- a/inc/html.php +++ b/inc/html.php @@ -232,6 +232,14 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false return $ret; } +/** + * show a revision warning + * + * @author Szymon Olewniczak <dokuwiki@imz.re> + */ +function html_showrev($data) { + print p_locale_xhtml($data); +} /** * Show a wiki page @@ -265,7 +273,10 @@ function html_show($txt=null){ echo '</div></div>'; }else{ - if ($REV||$DATE_AT) print p_locale_xhtml('showrev'); + if ($REV||$DATE_AT){ + $data = 'showrev'; + trigger_event('HTML_SHOWREV_OUTPUT', $data, 'html_showrev'); + } $html = p_wiki_xhtml($ID,$REV,true,$DATE_AT); $html = html_secedit($html,$secedit); if($INFO['prependTOC']) $html = tpl_toc(true).$html; -- GitLab From a500e62c4c074fa156db9a5096adee2133176543 Mon Sep 17 00:00:00 2001 From: SC Yoo <dryoo@live.com> Date: Tue, 17 Feb 2015 23:02:15 +0900 Subject: [PATCH 027/440] Normalization is required to manage multibyte characters. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The OSX uses Unicode-NFD so normalization is required to manage multibyte characters. ( http://unicode.org/reports/tr15/ ) If don't do that, DokuWiki can't find the file uploaded from OS X with multibyte filename like 'ë„ì¿ ìœ„í‚¤.jpg' --- inc/utf8.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/inc/utf8.php b/inc/utf8.php index f86217686..c6a189490 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -356,7 +356,7 @@ if(!function_exists('utf8_strtolower')){ * @return string */ function utf8_strtolower($string){ - if(UTF8_MBSTRING) return mb_strtolower($string,'utf-8'); + if(UTF8_MBSTRING) return normalizer::normalize(mb_strtolower($string,'utf-8')); global $UTF8_UPPER_TO_LOWER; return strtr($string,$UTF8_UPPER_TO_LOWER); @@ -1066,11 +1066,11 @@ if(!UTF8_MBSTRING){ "z"=>"Z","ï½™"=>"ï¼¹","x"=>"X","ï½—"=>"ï¼·","ï½–"=>"V","u"=>"ï¼µ","ï½”"=>"ï¼´","s"=>"ï¼³","ï½’"=>"ï¼²","q"=>"ï¼±", "ï½"=>"ï¼°","ï½"=>"O","n"=>"ï¼®","ï½"=>"ï¼","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"G", "f"=>"F","ï½…"=>"ï¼¥","d"=>"D","c"=>"ï¼£","b"=>"ï¼¢","ï½"=>"A","ῳ"=>"ῼ","á¿¥"=>"Ῥ","á¿¡"=>"á¿©","á¿‘"=>"á¿™", - "á¿"=>"Ῐ","ῃ"=>"á¿Œ","á¾¾"=>"Ι","á¾³"=>"á¾¼","á¾±"=>"á¾¹","á¾°"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"á¾®","á¾¥"=>"á¾","ᾤ"=>"ᾬ", + "á¿"=>"Ῐ","ῃ"=>"á¿Œ","ι"=>"Ι","á¾³"=>"á¾¼","á¾±"=>"á¾¹","á¾°"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"á¾®","á¾¥"=>"á¾","ᾤ"=>"ᾬ", "á¾£"=>"ᾫ","á¾¢"=>"ᾪ","ᾡ"=>"ᾩ","á¾—"=>"ᾟ","á¾–"=>"ᾞ","ᾕ"=>"á¾","á¾”"=>"ᾜ","ᾓ"=>"á¾›","á¾’"=>"ᾚ","ᾑ"=>"á¾™", - "á¾"=>"ᾘ","ᾇ"=>"á¾","ᾆ"=>"ᾎ","á¾…"=>"á¾","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","á¾"=>"ᾉ","á¾€"=>"ᾈ","á½½"=>"á¿»", - "á½¼"=>"Ὼ","á½»"=>"á¿«","ὺ"=>"Ὺ","á½¹"=>"Ό","ὸ"=>"Ὸ","á½·"=>"á¿›","ὶ"=>"á¿š","á½µ"=>"á¿‹","á½´"=>"á¿Š","á½³"=>"Έ", - "á½²"=>"Ὲ","á½±"=>"á¾»","á½°"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"á½®","á½¥"=>"á½","ὤ"=>"Ὤ","á½£"=>"Ὣ","á½¢"=>"Ὢ","ὡ"=>"Ὡ", + "á¾"=>"ᾘ","ᾇ"=>"á¾","ᾆ"=>"ᾎ","á¾…"=>"á¾","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","á¾"=>"ᾉ","á¾€"=>"ᾈ","ÏŽ"=>"Î", + "á½¼"=>"Ὼ","Ï"=>"ÎŽ","ὺ"=>"Ὺ","ÏŒ"=>"ÎŒ","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"á¿š","ή"=>"Ή","á½´"=>"á¿Š","Î"=>"Έ", + "á½²"=>"Ὲ","ά"=>"Ά","á½°"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"á½®","á½¥"=>"á½","ὤ"=>"Ὤ","á½£"=>"Ὣ","á½¢"=>"Ὢ","ὡ"=>"Ὡ", "á½—"=>"Ὗ","ὕ"=>"á½","ὓ"=>"á½›","ὑ"=>"á½™","á½…"=>"á½","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","á½"=>"Ὁ","á½€"=>"Ὀ", "á¼·"=>"Ἷ","ἶ"=>"á¼¾","á¼µ"=>"á¼½","á¼´"=>"á¼¼","á¼³"=>"á¼»","á¼²"=>"Ἲ","á¼±"=>"á¼¹","á¼°"=>"Ἰ","ἧ"=>"Ἧ","ἦ"=>"á¼®", "á¼¥"=>"á¼","ἤ"=>"Ἤ","á¼£"=>"Ἣ","á¼¢"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"á¼","á¼”"=>"Ἔ","ἓ"=>"á¼›","á¼’"=>"Ἒ","ἑ"=>"á¼™", @@ -1145,11 +1145,11 @@ if(!UTF8_MBSTRING){ "Z"=>"z","ï¼¹"=>"ï½™","X"=>"x","ï¼·"=>"ï½—","V"=>"ï½–","ï¼µ"=>"u","ï¼´"=>"ï½”","ï¼³"=>"s","ï¼²"=>"ï½’","ï¼±"=>"q", "ï¼°"=>"ï½","O"=>"ï½","ï¼®"=>"n","ï¼"=>"ï½","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","G"=>"g", "F"=>"f","ï¼¥"=>"ï½…","D"=>"d","ï¼£"=>"c","ï¼¢"=>"b","A"=>"ï½","ῼ"=>"ῳ","Ῥ"=>"á¿¥","á¿©"=>"á¿¡","á¿™"=>"á¿‘", - "Ῐ"=>"á¿","á¿Œ"=>"ῃ","Ι"=>"á¾¾","á¾¼"=>"á¾³","á¾¹"=>"á¾±","Ᾰ"=>"á¾°","ᾯ"=>"ᾧ","á¾®"=>"ᾦ","á¾"=>"á¾¥","ᾬ"=>"ᾤ", + "Ῐ"=>"á¿","á¿Œ"=>"ῃ","Ι"=>"ι","á¾¼"=>"á¾³","á¾¹"=>"á¾±","Ᾰ"=>"á¾°","ᾯ"=>"ᾧ","á¾®"=>"ᾦ","á¾"=>"á¾¥","ᾬ"=>"ᾤ", "ᾫ"=>"á¾£","ᾪ"=>"á¾¢","ᾩ"=>"ᾡ","ᾟ"=>"á¾—","ᾞ"=>"á¾–","á¾"=>"ᾕ","ᾜ"=>"á¾”","á¾›"=>"ᾓ","ᾚ"=>"á¾’","á¾™"=>"ᾑ", - "ᾘ"=>"á¾","á¾"=>"ᾇ","ᾎ"=>"ᾆ","á¾"=>"á¾…","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"á¾","ᾈ"=>"á¾€","á¿»"=>"á½½", - "Ὼ"=>"á½¼","á¿«"=>"á½»","Ὺ"=>"ὺ","Ό"=>"á½¹","Ὸ"=>"ὸ","á¿›"=>"á½·","á¿š"=>"ὶ","á¿‹"=>"á½µ","á¿Š"=>"á½´","Έ"=>"á½³", - "Ὲ"=>"á½²","á¾»"=>"á½±","Ὰ"=>"á½°","Ὧ"=>"ὧ","á½®"=>"ὦ","á½"=>"á½¥","Ὤ"=>"ὤ","Ὣ"=>"á½£","Ὢ"=>"á½¢","Ὡ"=>"ὡ", + "ᾘ"=>"á¾","á¾"=>"ᾇ","ᾎ"=>"ᾆ","á¾"=>"á¾…","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"á¾","ᾈ"=>"á¾€","Î"=>"ÏŽ", + "Ὼ"=>"á½¼","ÎŽ"=>"Ï","Ὺ"=>"ὺ","ÎŒ"=>"ÏŒ","Ὸ"=>"ὸ","Ί"=>"ί","á¿š"=>"ὶ","Ή"=>"ή","á¿Š"=>"á½´","Έ"=>"Î", + "Ὲ"=>"á½²","Ά"=>"ά","Ὰ"=>"á½°","Ὧ"=>"ὧ","á½®"=>"ὦ","á½"=>"á½¥","Ὤ"=>"ὤ","Ὣ"=>"á½£","Ὢ"=>"á½¢","Ὡ"=>"ὡ", "Ὗ"=>"á½—","á½"=>"ὕ","á½›"=>"ὓ","á½™"=>"ὑ","á½"=>"á½…","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"á½","Ὀ"=>"á½€", "Ἷ"=>"á¼·","á¼¾"=>"ἶ","á¼½"=>"á¼µ","á¼¼"=>"á¼´","á¼»"=>"á¼³","Ἲ"=>"á¼²","á¼¹"=>"á¼±","Ἰ"=>"á¼°","Ἧ"=>"ἧ","á¼®"=>"ἦ", "á¼"=>"á¼¥","Ἤ"=>"ἤ","Ἣ"=>"á¼£","Ἢ"=>"á¼¢","Ἡ"=>"ἡ","á¼"=>"ἕ","Ἔ"=>"á¼”","á¼›"=>"ἓ","Ἒ"=>"á¼’","á¼™"=>"ἑ", @@ -1355,11 +1355,11 @@ global $UTF8_SPECIAL_CHARS2; if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 = "\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€Â‚ƒ„…†‡ˆ‰Š‹ŒÂŽ‘’“”•�'. '�—˜™š›œÂžŸ ¡¢£¤¥¦§¨©ª«¬Â®¯°±²³´µ¶·¸¹º»¼½�'. - '�¿×÷ˇ˘˙˚˛˜ËÌ€Ị̀̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. + '�¿×÷ˇ˘˙˚˛˜Ẹ̈̀Ì̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. '�×ׂ׃׳״،؛؟ـًٌÙÙŽÙÙّْ٪฿‌â€â€Žâ€â€“—―‗‘’‚“â€ï¿½'. - '��†‡•…‰′″‹›â„₧₪₫€№℘™Ωℵâ†â†‘→↓↔↕↵'. + '��†‡•…‰′″‹›â„₧₪₫€№℘™Ωℵâ†â†‘→↓↔↕↵'. 'â‡â‡‘⇒⇓⇔∀∂∃∅∆∇∈∉∋âˆâˆ‘−∕∗∙√âˆâˆžâˆ ∧∨�'. - '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅âŒâŒ ⌡〈〉⑩─�'. + '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅âŒâŒ ⌡〈〉⑩─�'. '��┌â”└┘├┤┬┴┼â•â•‘╒╓╔╕╖╗╘╙╚╛╜â•â•žâ•Ÿâ• '. '╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌â–░▒▓■▲▼◆◊â—�'. '�★☎☛☞♠♣♥♦âœâœ‚✃✄✆✇✈✉✌âœâœŽâœâœâœ‘✒✓✔✕�'. -- GitLab From c8556525035212e8abf05907e8cfdf290bb6dcd6 Mon Sep 17 00:00:00 2001 From: ghi <dokuwiki@imz.re> Date: Wed, 18 Feb 2015 10:47:05 +0100 Subject: [PATCH 028/440] passing rev and date_at to the event --- inc/html.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/html.php b/inc/html.php index c87d0ea87..4bf784502 100644 --- a/inc/html.php +++ b/inc/html.php @@ -237,8 +237,8 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false * * @author Szymon Olewniczak <dokuwiki@imz.re> */ -function html_showrev($data) { - print p_locale_xhtml($data); +function html_showrev() { + print p_locale_xhtml('showrev'); } /** @@ -274,7 +274,7 @@ function html_show($txt=null){ }else{ if ($REV||$DATE_AT){ - $data = 'showrev'; + $data = array('rev' => &$REV, 'date_at' => &$DATE_AT); trigger_event('HTML_SHOWREV_OUTPUT', $data, 'html_showrev'); } $html = p_wiki_xhtml($ID,$REV,true,$DATE_AT); -- GitLab From 5a93f8690b91ddfa9a37a081f72d245833b4aefa Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@zopa.com> Date: Thu, 19 Feb 2015 20:10:45 +0000 Subject: [PATCH 029/440] add missing tabletbody_open|close() to renderer --- inc/parser/renderer.php | 12 ++++++++++++ inc/parser/xhtml.php | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index e1d28267a..35bdd0e3f 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -707,6 +707,18 @@ class Doku_Renderer extends DokuWiki_Plugin { function tablethead_close() { } + /** + * Open a table body + */ + function tabletbody_open() { + } + + /** + * Close a table body + */ + function tabletbody_close() { + } + /** * Open a table row */ diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index c68d206be..d1bf91a02 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1289,6 +1289,20 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $this->doc .= DOKU_TAB.'</thead>'.DOKU_LF; } + /** + * Open a table body + */ + function tabletbody_open() { + $this->doc .= DOKU_TAB.'<tbody>'.DOKU_LF; + } + + /** + * Close a table body + */ + function tabletbody_close() { + $this->doc .= DOKU_TAB.'</tbody>'.DOKU_LF; + } + /** * Open a table row */ @@ -1753,7 +1767,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $out .= '</audio>'.NL; return $out; } - + /** * _getLastMediaRevisionAt is a helperfunction to internalmedia() and _media() * which returns an existing media revision less or equal to rev or date_at -- GitLab From 8a8104b258a296c2710caf2911b87403c9ef3d97 Mon Sep 17 00:00:00 2001 From: SC Yoo <dryoo@live.com> Date: Fri, 20 Feb 2015 12:14:07 +0900 Subject: [PATCH 030/440] Added class-exitsts --- inc/utf8.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/inc/utf8.php b/inc/utf8.php index c6a189490..2b6a0c498 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -356,8 +356,12 @@ if(!function_exists('utf8_strtolower')){ * @return string */ function utf8_strtolower($string){ - if(UTF8_MBSTRING) return normalizer::normalize(mb_strtolower($string,'utf-8')); - + if(UTF8_MBSTRING) { + if (class_exists("Normalizer", $autoload = false)) + return normalizer::normalize(mb_strtolower($string,'utf-8')); + else + return (mb_strtolower($string,'utf-8')); + } global $UTF8_UPPER_TO_LOWER; return strtr($string,$UTF8_UPPER_TO_LOWER); } -- GitLab From 15a61525c6586054213c7f64cc6e686d7dc8eed0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Tue, 24 Feb 2015 09:48:55 +0100 Subject: [PATCH 031/440] add bottom margin to tables in print. fixes #1052 --- lib/tpl/dokuwiki/css/print.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/tpl/dokuwiki/css/print.css b/lib/tpl/dokuwiki/css/print.css index 86e686b69..7197ac1c1 100644 --- a/lib/tpl/dokuwiki/css/print.css +++ b/lib/tpl/dokuwiki/css/print.css @@ -111,6 +111,9 @@ blockquote { } /* tables */ +.dokuwiki div.table { + margin-bottom: 1.4em; +} table { border-collapse: collapse; empty-cells: show; -- GitLab From 30c466355a6686ac20edc1f23d87a3a8c8ec6081 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Tue, 24 Feb 2015 09:57:10 +0100 Subject: [PATCH 032/440] fixed the margin for the sidebar --- lib/tpl/dokuwiki/css/design.less | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less index 3ded73581..548ba7228 100644 --- a/lib/tpl/dokuwiki/css/design.less +++ b/lib/tpl/dokuwiki/css/design.less @@ -11,7 +11,7 @@ ********************************************************************/ #dokuwiki__header { - padding: 2em 0 0; + padding: 2em 0 1.5em; .headings, .tools { @@ -352,6 +352,7 @@ form.search { float: right; margin-right: -1em; margin-bottom: -1px; + margin-top: -1.5em; overflow: hidden; padding: 0.5em 1em 0; -- GitLab From 757f6ddab0add1026d4b4afb980fbd244df05f02 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Tue, 24 Feb 2015 11:51:36 +0100 Subject: [PATCH 033/440] simple fix for pageID clash with sidebar in mobile view Since the pageid is no longer positioned absolute it clashed with the sidebar since #1027. this introduces a very simplisitc fix. --- lib/tpl/dokuwiki/css/mobile.less | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tpl/dokuwiki/css/mobile.less b/lib/tpl/dokuwiki/css/mobile.less index c3e517795..ac7c46456 100644 --- a/lib/tpl/dokuwiki/css/mobile.less +++ b/lib/tpl/dokuwiki/css/mobile.less @@ -23,6 +23,7 @@ #dokuwiki__aside { width: 100%; float: none; + margin-bottom: 1.5em; } #dokuwiki__aside > .pad, -- GitLab From 9cbf80e627322dee19852b953ef242b4e0ad514a Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 24 Feb 2015 19:45:03 +0100 Subject: [PATCH 034/440] check permissions in ACL plugin's RPC API component. #1056 Security Fix Severity: Medium Type: Remote Priviledge Escalation Remote: yes Vulnerability Details: This fixes a security hole in the ACL plugins remote API component. The plugin failed to check for superuser permissions before executing ACL addition or deletion. This means everybody with permissions to call the XMLRPC API also had permissions to set up their own ACL rules and thus circumventing any existing rules. Risk Assessment: The XMLRPC API in DokuWiki is marked experimental and off by default. It also implements an additional safeguard by giving access to a configured circle of users and groups only. So only a minor number of DokuWiki installations will be affected at all. For affected installations the risk is high if users with access to the API are not to be trusted. Thus the overall severity of medium. Resolution: Installations applying this commit are safe. A hotfix is about to be released. Meanwhile users are advised to disable the XMLRPC API in the config manager. --- lib/plugins/acl/remote.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php index b10c544ee..42449428f 100644 --- a/lib/plugins/acl/remote.php +++ b/lib/plugins/acl/remote.php @@ -32,9 +32,14 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin { * @param string $scope * @param string $user * @param int $level see also inc/auth.php + * @throws RemoteAccessDeniedException * @return bool */ public function addAcl($scope, $user, $level){ + if(!auth_isadmin()) { + throw new RemoteAccessDeniedException('You are not allowed to access ACLs, superuser permission is required', 114); + } + /** @var admin_plugin_acl $apa */ $apa = plugin_load('admin', 'acl'); return $apa->_acl_add($scope, $user, $level); @@ -45,9 +50,14 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin { * * @param string $scope * @param string $user + * @throws RemoteAccessDeniedException * @return bool */ public function delAcl($scope, $user){ + if(!auth_isadmin()) { + throw new RemoteAccessDeniedException('You are not allowed to access ACLs, superuser permission is required', 114); + } + /** @var admin_plugin_acl $apa */ $apa = plugin_load('admin', 'acl'); return $apa->_acl_del($scope, $user); -- GitLab From 6401de3d8cba9f2c76724a2c2c68c7d3fc97d2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Schplurtz=20le=20D=C3=A9boulonn=C3=A9?= <schplurtz@laposte.net> Date: Tue, 24 Feb 2015 22:16:02 +0100 Subject: [PATCH 035/440] translation update --- inc/lang/fr/lang.php | 2 +- lib/plugins/authldap/lang/fr/settings.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 9deff1220..fb3890c9e 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -228,7 +228,7 @@ $lang['restored'] = 'ancienne révision (%s) restaurée'; $lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Résumé'; $lang['noflash'] = 'L\'<a href="http://www.adobe.com/products/flashplayer/">extension Adobe Flash</a> est nécessaire pour afficher ce contenu.'; -$lang['download'] = 'Télécharger un extrait'; +$lang['download'] = 'Télécharger cet extrait'; $lang['tools'] = 'Outils'; $lang['user_tools'] = 'Outils pour utilisateurs'; $lang['site_tools'] = 'Outils du site'; diff --git a/lib/plugins/authldap/lang/fr/settings.php b/lib/plugins/authldap/lang/fr/settings.php index dc475071e..aa75105cf 100644 --- a/lib/plugins/authldap/lang/fr/settings.php +++ b/lib/plugins/authldap/lang/fr/settings.php @@ -5,6 +5,7 @@ * * @author Bruno Veilleux <bruno.vey@gmail.com> * @author schplurtz <Schplurtz@laposte.net> + * @author Schplurtz le Déboulonné <schplurtz@laposte.net> */ $lang['server'] = 'Votre serveur LDAP. Soit le nom d\'hôte (<code>localhost</code>) ou l\'URL complète (<code>ldap://serveur.dom:389</code>)'; $lang['port'] = 'Port du serveur LDAP si l\'URL complète n\'a pas été indiquée ci-dessus'; @@ -26,3 +27,6 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'comportement par défaut'; +$lang['referrals_o_0'] = 'ne pas suivre les références'; +$lang['referrals_o_1'] = 'suivre les références'; -- GitLab From a2e737c4fece56318728021edca1cc40c1d1adb6 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Wed, 25 Feb 2015 09:41:15 +0100 Subject: [PATCH 036/440] remove additional sidebar bottom margin in phone mode --- lib/tpl/dokuwiki/css/mobile.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/tpl/dokuwiki/css/mobile.less b/lib/tpl/dokuwiki/css/mobile.less index ac7c46456..e5e13e221 100644 --- a/lib/tpl/dokuwiki/css/mobile.less +++ b/lib/tpl/dokuwiki/css/mobile.less @@ -159,6 +159,11 @@ body { padding: 0 .5em; } } + +#dokuwiki__aside { + margin-bottom: 0; +} + #dokuwiki__header { padding: .5em 0; } -- GitLab From 6619ddf4b04390e1d1273dd79bd16bfb9eb6cf89 Mon Sep 17 00:00:00 2001 From: Sascha Klopp <klopp@rrzn.uni-hannover.de> Date: Tue, 3 Mar 2015 11:09:21 +0100 Subject: [PATCH 037/440] Two new authldap config options: 'userkey' denotes the LDAP attribute holding the username, 'modPass' allows to disable password changing by the user. --- lib/plugins/authldap/auth.php | 5 +++-- lib/plugins/authldap/conf/default.php | 4 +++- lib/plugins/authldap/conf/metadata.php | 4 +++- lib/plugins/authldap/lang/de/settings.php | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index 50735882f..9d031c049 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -37,7 +37,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { } // Add the capabilities to change the password - $this->cando['modPass'] = true; + $this->cando['modPass'] = $this->getConf('modPass'); } /** @@ -360,8 +360,9 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { $sr = ldap_search($this->con, $this->getConf('usertree'), $all_filter); $entries = ldap_get_entries($this->con, $sr); $users_array = array(); + $userkey = $this->getConf('userkey'); for($i = 0; $i < $entries["count"]; $i++) { - array_push($users_array, $entries[$i]["uid"][0]); + array_push($users_array, $entries[$i][$userkey][0]); } asort($users_array); $result = $users_array; diff --git a/lib/plugins/authldap/conf/default.php b/lib/plugins/authldap/conf/default.php index c2e462c5c..116cb9d3f 100644 --- a/lib/plugins/authldap/conf/default.php +++ b/lib/plugins/authldap/conf/default.php @@ -16,5 +16,7 @@ $conf['bindpw'] = ''; //$conf['mapping']['grps'] unsupported in config manager $conf['userscope'] = 'sub'; $conf['groupscope'] = 'sub'; +$conf['userkey'] = 'uid'; $conf['groupkey'] = 'cn'; -$conf['debug'] = 0; \ No newline at end of file +$conf['debug'] = 0; +$conf['modPass'] = 1; diff --git a/lib/plugins/authldap/conf/metadata.php b/lib/plugins/authldap/conf/metadata.php index 4649ba5bf..a67b11ca6 100644 --- a/lib/plugins/authldap/conf/metadata.php +++ b/lib/plugins/authldap/conf/metadata.php @@ -15,5 +15,7 @@ $meta['bindpw'] = array('password','_caution' => 'danger'); //$meta['mapping']['grps'] unsupported in config manager $meta['userscope'] = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger'); $meta['groupscope'] = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger'); +$meta['userkey'] = array('string','_caution' => 'danger'); $meta['groupkey'] = array('string','_caution' => 'danger'); -$meta['debug'] = array('onoff','_caution' => 'security'); \ No newline at end of file +$meta['debug'] = array('onoff','_caution' => 'security'); +$meta['modPass'] = array('onoff'); diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index d788da876..ecb407820 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -20,6 +20,7 @@ $lang['binddn'] = 'DN eines optionalen Benutzers, wenn der anonym $lang['bindpw'] = 'Passwort des angegebenen Benutzers.'; $lang['userscope'] = 'Die Suchweite nach Benutzeraccounts.'; $lang['groupscope'] = 'Die Suchweite nach Benutzergruppen.'; +$lang['userkey'] = 'Attribut, das den Benutzernamen enthält; muss konsistent zum userfilter sein.'; $lang['groupkey'] = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).'; $lang['debug'] = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; -- GitLab From 138a9500555ab0f27ce3fd67d3ea3ab17f8e9e3b Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Tue, 3 Mar 2015 17:19:43 +0100 Subject: [PATCH 038/440] send JavaScript with correct mimetype While Browsers (IE of course) still fail to accept the correct application/javascript mimetype in the type attribute of the script element, we should serve the scripts with the correct Content-Type header at least. This is especially important as the default configuration of mod_deflate expects application/javascript and will not compress text/javascript. --- lib/exe/js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/exe/js.php b/lib/exe/js.php index 3f9781e34..06d0dda55 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -14,7 +14,7 @@ require_once(DOKU_INC.'inc/init.php'); // Main (don't run when UNIT test) if(!defined('SIMPLE_TEST')){ - header('Content-Type: text/javascript; charset=utf-8'); + header('Content-Type: application/javascript; charset=utf-8'); js_out(); } -- GitLab From 25f80763dd71190679289de2b8d29f28021aedb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Wed, 11 Mar 2015 19:49:14 +0100 Subject: [PATCH 039/440] Get total number of users in ad, needed for paging --- lib/plugins/authad/auth.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 88b56046c..a0a1143db 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -116,6 +116,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { // other can do's are changed in $this->_loadServerConfig() base on domain setup $this->cando['modName'] = true; $this->cando['modMail'] = true; + $this->cando['getUserCount'] = true; } /** @@ -325,6 +326,26 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { return false; } + /** + * @param array $filter + * @return int + */ + public function getUserCount($filter = array()) { + + $adldap = $this->_adldap(null); + if(!$adldap) { + dbglog("authad/auth.php: _adldap not set."); + return -1; + } + + $result = $adldap->user()->all(); + if (!$result) { + dbglog("authad/auth.php: getting all users failed."); + return -1; + } + return count($result); + } + /** * Bulk retrieval of user data * -- GitLab From 67a31a83dd6c8a3ff9e87da0c2070a2783aec44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 13:09:08 +0100 Subject: [PATCH 040/440] Create and use ad search for user, name and email --- lib/plugins/authad/auth.php | 68 ++++++++++++++++++++++++++----- lib/plugins/usermanager/admin.php | 14 +++++++ 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index a0a1143db..f1f34245e 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -326,19 +326,63 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { return false; } + protected function _constructSearchString($filter){ + if (!$filter){ + return '*'; + } + $result = '*'; + if (isset($filter['name'])) { + $result .= ')(displayname=*' . $filter['name'] . '*'; + unset($filter['name']); + } + if (isset($filter['user'])) { + $result .= ')(samAccountName=*' . $filter['user'] . '*'; + unset($filter['user']); + } + + if (isset($filter['mail'])) { + $result .= ')(mail=*' . $filter['mail'] . '*'; + unset($filter['mail']); + } + dbglog($result); + return $result; + } + /** * @param array $filter * @return int */ public function getUserCount($filter = array()) { + if ($filter == array()) { + $adldap = $this->_adldap(null); + if(!$adldap) { + dbglog("authad/auth.php getUserCount(): _adldap not set."); + return -1; + } + $result = $adldap->user()->all(); + $start = 0; + } else {/* + dbglog('_startcache: ' . $this->_startcache); + $usermanager = plugin_load("admin", "usermanager", false); + if ($this->_startcache < $usermanager->getStart()) { + $start = $usermanager->getStart(); + $this->_startcache = $start; + } else { + $start = $this->_startcache; + } + $pagesize = $usermanager->getPagesize(); + $result = $this->retrieveUsers($start, 3*$pagesize,$filter,false);*/ + $adldap = $this->_adldap(null); + if(!$adldap) { + dbglog("authad/auth.php getUserCount(): _adldap not set."); + return -1; + } + dbglog($filter); + $searchString = $this->_constructSearchString($filter); + $result = $adldap->user()->all(false, $searchString); - $adldap = $this->_adldap(null); - if(!$adldap) { - dbglog("authad/auth.php: _adldap not set."); - return -1; } - $result = $adldap->user()->all(); if (!$result) { dbglog("authad/auth.php: getting all users failed."); return -1; @@ -351,18 +395,20 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * * @author Dominik Eckelmann <dokuwiki@cosmocode.de> * - * @param int $start index of first user to be returned - * @param int $limit max number of users to be returned - * @param array $filter array of field/pattern pairs, null for no filter - * @return array userinfo (refer getUserData for internal userinfo details) + * @param int $start index of first user to be returned + * @param int $limit max number of users to be returned + * @param array $filter array of field/pattern pairs, null for no filter + * @param bool $setStart + * @return array userinfo (refer getUserData for internal userinfo details) */ - public function retrieveUsers($start = 0, $limit = 0, $filter = array()) { + public function retrieveUsers($start = 0, $limit = 0, $filter = array(), $setStart = true) { + dbglog("start: " . $start . "; limit: " . $limit); $adldap = $this->_adldap(null); if(!$adldap) return false; if(!$this->users) { //get info for given user - $result = $adldap->user()->all(); + $result = $adldap->user()->all(false, $this->_constructSearchString($filter)); if (!$result) return array(); $this->users = array_fill_keys($result, false); } diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 86562f1dd..b1f5c4023 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -81,6 +81,20 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return 2; } + /** + * @return int current start value for pageination + */ + public function getStart() { + return $this->_start; + } + + /** + * @return int number of users per page + */ + public function getPagesize() { + return $this->_pagesize; + } + /** * Handle user request * -- GitLab From c52f6cd2bf68bccfbc665f376f68c93861a99837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 14:50:23 +0100 Subject: [PATCH 041/440] When filtering for group implement prefetching --- lib/plugins/authad/auth.php | 82 +++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index f1f34245e..2710d6a17 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -67,6 +67,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { */ protected $_pattern = array(); + protected $_actualstart = 0; + + protected $_grpsusers = array(); + /** * Constructor */ @@ -380,6 +384,16 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { dbglog($filter); $searchString = $this->_constructSearchString($filter); $result = $adldap->user()->all(false, $searchString); + if (isset($filter['grps'])) { + $this->users = array_fill_keys($result, false); + $usermanager = plugin_load("admin", "usermanager", false); + if (!isset($this->_grpsusers[$this->_filterToString($filter)])){ + $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize()); + } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < getStart() + 3*$usermanager->getPagesize()) { + $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize() - count($this->_grpsusers[$this->_filterToString($filter)])); + } + $result = $this->_grpsusers[$this->_filterToString($filter)]; + } } @@ -390,6 +404,44 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { return count($result); } + protected function _filterToString ($filter) { + $result = ''; + if (isset($filter['user'])) { + $result .= 'user-' . $filter['user']; + } + if (isset($filter['name'])) { + $result .= 'name-' . $filter['name']; + } + if (isset($filter['mail'])) { + $result .= 'mail-' . $filter['mail']; + } + if (isset($filter['grps'])) { + $result .= 'grps-' . $filter['grps']; + } + return $result; + } + + protected function _fillGroupUserArray($filter, $numberOfAdds){ + $this->_grpsusers[$this->_filterToString($filter)]; + $i = 0; + $count = 0; + $this->_constructPattern($filter); + foreach ($this->users as $user => &$info) { + if($i++ < $this->_actualstart) { + continue; + } + if($info === false) { + $info = $this->getUserData($user); + } + if($this->_filter($user, $info)) { + $this->_grpsusers[$this->_filterToString($filter)][$user] = $info; + if(($numberOfAdds > 0) && (++$count >= $numberOfAdds)) break; + } + } + $this->_actualstart = $i; + return $count; + } + /** * Bulk retrieval of user data * @@ -398,10 +450,9 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param int $start index of first user to be returned * @param int $limit max number of users to be returned * @param array $filter array of field/pattern pairs, null for no filter - * @param bool $setStart * @return array userinfo (refer getUserData for internal userinfo details) */ - public function retrieveUsers($start = 0, $limit = 0, $filter = array(), $setStart = true) { + public function retrieveUsers($start = 0, $limit = 0, $filter = array()) { dbglog("start: " . $start . "; limit: " . $limit); $adldap = $this->_adldap(null); if(!$adldap) return false; @@ -418,17 +469,32 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $this->_constructPattern($filter); $result = array(); - foreach($this->users as $user => &$info) { - if($i++ < $start) { - continue; + if (!isset($filter['grps'])) { + foreach($this->users as $user => &$info) { + if($i++ < $start) { + continue; + } + if($info === false) { + $info = $this->getUserData($user); + } + if($this->_filter($user, $info)) { + $result[$user] = $info; + if(($limit > 0) && (++$count >= $limit)) break; + } } - if($info === false) { - $info = $this->getUserData($user); + } else { + if (!isset($this->_grpsusers[$this->_filterToString($filter)]) || count($this->_grpsusers[$this->_filterToString($filter)]) < ($start+$limit)) { + $this->_fillGroupUserArray($filter,$start+$limit - count($this->_grpsusers[$this->_filterToString($filter)]) +1); } - if($this->_filter($user, $info)) { + foreach($this->_grpsusers[$this->_filterToString($filter)] as $user => &$info) { + dbglog($this->_grpsusers[$this->_filterToString($filter)]); + if($i++ < $start) { + continue; + } $result[$user] = $info; if(($limit > 0) && (++$count >= $limit)) break; } + } return $result; } -- GitLab From 462e9e37f38d6de9ec19ad1476b64bac3b851fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 15:06:26 +0100 Subject: [PATCH 042/440] Disable the ``last`` button when filtering groups Since we cannot effectively filter for groups and have to work with incremental prefetching, the ``last`` button is mostly broken/buggy. Hence it is disabled in this usecase. --- lib/plugins/authad/auth.php | 8 ++++++++ lib/plugins/usermanager/admin.php | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 2710d6a17..4022cd68f 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -387,12 +387,16 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if (isset($filter['grps'])) { $this->users = array_fill_keys($result, false); $usermanager = plugin_load("admin", "usermanager", false); + $usermanager->setLastdisabled(true); if (!isset($this->_grpsusers[$this->_filterToString($filter)])){ $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize()); } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < getStart() + 3*$usermanager->getPagesize()) { $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize() - count($this->_grpsusers[$this->_filterToString($filter)])); } $result = $this->_grpsusers[$this->_filterToString($filter)]; + } else { + $usermanager = plugin_load("admin", "usermanager", false); + $usermanager->setLastdisabled(false); } } @@ -470,6 +474,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $result = array(); if (!isset($filter['grps'])) { + $usermanager = plugin_load("admin", "usermanager", false); + $usermanager->setLastdisabled(false); foreach($this->users as $user => &$info) { if($i++ < $start) { continue; @@ -483,6 +489,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } } } else { + $usermanager = plugin_load("admin", "usermanager", false); + $usermanager->setLastdisabled(true); if (!isset($this->_grpsusers[$this->_filterToString($filter)]) || count($this->_grpsusers[$this->_filterToString($filter)]) < ($start+$limit)) { $this->_fillGroupUserArray($filter,$start+$limit - count($this->_grpsusers[$this->_filterToString($filter)]) +1); } diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index b1f5c4023..cc4c4ae47 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -31,6 +31,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { protected $_edit_userdata = array(); protected $_disabled = ''; // if disabled set to explanatory string protected $_import_failures = array(); + protected $_lastdisabled = false; // set to true if last user is unknown and last button is hence buggy /** * Constructor @@ -95,6 +96,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $this->_pagesize; } + /** + * @param boolean $lastdisabled + */ + public function setLastdisabled($lastdisabled) { + $this->_lastdisabled = $lastdisabled; + } + /** * Handle user request * @@ -850,6 +858,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $buttons['last'] = $buttons['next'] = (($this->_start + $this->_pagesize) >= $this->_user_total) ? $disabled : ''; } + if ($this->_lastdisabled) { + $buttons['last'] = $disabled; + } + return $buttons; } -- GitLab From 6fcf992c3420a8904add8169cfd672407a7c38d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 16:00:26 +0100 Subject: [PATCH 043/440] Clean up code, add phpdoc comments, some refactoring, etc. --- lib/plugins/authad/auth.php | 62 +++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 4022cd68f..bcf01ff21 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -330,6 +330,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { return false; } + /** + * @param array $filter + * @return string + */ protected function _constructSearchString($filter){ if (!$filter){ return '*'; @@ -348,7 +352,6 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $result .= ')(mail=*' . $filter['mail'] . '*'; unset($filter['mail']); } - dbglog($result); return $result; } @@ -357,31 +360,14 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @return int */ public function getUserCount($filter = array()) { + $adldap = $this->_adldap(null); + if(!$adldap) { + dbglog("authad/auth.php getUserCount(): _adldap not set."); + return -1; + } if ($filter == array()) { - $adldap = $this->_adldap(null); - if(!$adldap) { - dbglog("authad/auth.php getUserCount(): _adldap not set."); - return -1; - } $result = $adldap->user()->all(); - $start = 0; - } else {/* - dbglog('_startcache: ' . $this->_startcache); - $usermanager = plugin_load("admin", "usermanager", false); - if ($this->_startcache < $usermanager->getStart()) { - $start = $usermanager->getStart(); - $this->_startcache = $start; - } else { - $start = $this->_startcache; - } - $pagesize = $usermanager->getPagesize(); - $result = $this->retrieveUsers($start, 3*$pagesize,$filter,false);*/ - $adldap = $this->_adldap(null); - if(!$adldap) { - dbglog("authad/auth.php getUserCount(): _adldap not set."); - return -1; - } - dbglog($filter); + } else { $searchString = $this->_constructSearchString($filter); $result = $adldap->user()->all(false, $searchString); if (isset($filter['grps'])) { @@ -390,7 +376,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $usermanager->setLastdisabled(true); if (!isset($this->_grpsusers[$this->_filterToString($filter)])){ $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize()); - } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < getStart() + 3*$usermanager->getPagesize()) { + } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < $usermanager->getStart() + 3*$usermanager->getPagesize()) { $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize() - count($this->_grpsusers[$this->_filterToString($filter)])); } $result = $this->_grpsusers[$this->_filterToString($filter)]; @@ -402,12 +388,18 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } if (!$result) { - dbglog("authad/auth.php: getting all users failed."); - return -1; + return 0; } return count($result); } + /** + * + * create a unique string for each filter used with a group + * + * @param array $filter + * @return string + */ protected function _filterToString ($filter) { $result = ''; if (isset($filter['user'])) { @@ -425,6 +417,11 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { return $result; } + /** + * @param array $filter + * @param int $numberOfAdds additional number of users requested + * @return int number of Users actually add to Array + */ protected function _fillGroupUserArray($filter, $numberOfAdds){ $this->_grpsusers[$this->_filterToString($filter)]; $i = 0; @@ -457,7 +454,6 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @return array userinfo (refer getUserData for internal userinfo details) */ public function retrieveUsers($start = 0, $limit = 0, $filter = array()) { - dbglog("start: " . $start . "; limit: " . $limit); $adldap = $this->_adldap(null); if(!$adldap) return false; @@ -470,12 +466,12 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $i = 0; $count = 0; - $this->_constructPattern($filter); $result = array(); if (!isset($filter['grps'])) { $usermanager = plugin_load("admin", "usermanager", false); $usermanager->setLastdisabled(false); + $this->_constructPattern($filter); foreach($this->users as $user => &$info) { if($i++ < $start) { continue; @@ -483,10 +479,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if($info === false) { $info = $this->getUserData($user); } - if($this->_filter($user, $info)) { - $result[$user] = $info; - if(($limit > 0) && (++$count >= $limit)) break; - } + $result[$user] = $info; + if(($limit > 0) && (++$count >= $limit)) break; } } else { $usermanager = plugin_load("admin", "usermanager", false); @@ -494,8 +488,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if (!isset($this->_grpsusers[$this->_filterToString($filter)]) || count($this->_grpsusers[$this->_filterToString($filter)]) < ($start+$limit)) { $this->_fillGroupUserArray($filter,$start+$limit - count($this->_grpsusers[$this->_filterToString($filter)]) +1); } + if (!$this->_grpsusers[$this->_filterToString($filter)]) return false; foreach($this->_grpsusers[$this->_filterToString($filter)] as $user => &$info) { - dbglog($this->_grpsusers[$this->_filterToString($filter)]); if($i++ < $start) { continue; } -- GitLab From 7910cbbbce7fd803f3ee4f458d5426eac51bfd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 16:34:45 +0100 Subject: [PATCH 044/440] Explain functions in docstrings --- lib/plugins/authad/auth.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index bcf01ff21..321a60f24 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -331,6 +331,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } /** + * Create a Search-String useable by adLDAPUsers::all($includeDescription = false, $search = "*", $sorted = true) + * * @param array $filter * @return string */ @@ -343,6 +345,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $result .= ')(displayname=*' . $filter['name'] . '*'; unset($filter['name']); } + if (isset($filter['user'])) { $result .= ')(samAccountName=*' . $filter['user'] . '*'; unset($filter['user']); @@ -356,8 +359,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } /** - * @param array $filter - * @return int + * Return a count of the number of user which meet $filter criteria + * + * @param array $filter $filter array of field/pattern pairs, empty array for no filter + * @return int number of users */ public function getUserCount($filter = array()) { $adldap = $this->_adldap(null); @@ -418,6 +423,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } /** + * Create an array of $numberOfAdds users passing a certain $filter, including belonging + * to a certain group and save them to a object-wide array. If the array + * already exists try to add $numberOfAdds further users to it. + * * @param array $filter * @param int $numberOfAdds additional number of users requested * @return int number of Users actually add to Array -- GitLab From 07aec0297354ce1a2bb273def8173ff0a524f852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 12 Mar 2015 16:57:13 +0100 Subject: [PATCH 045/440] Escape user strings given to adLDAP --- lib/plugins/authad/auth.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 321a60f24..400a5efee 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -3,6 +3,7 @@ if(!defined('DOKU_INC')) die(); require_once(DOKU_PLUGIN.'authad/adLDAP/adLDAP.php'); +require_once(DOKU_PLUGIN.'authad/adLDAP/classes/adLDAPUtils.php'); /** * Active Directory authentication backend for DokuWiki @@ -340,19 +341,20 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if (!$filter){ return '*'; } + $adldapUtils = new adLDAPUtils($this->_adldap(null)); $result = '*'; if (isset($filter['name'])) { - $result .= ')(displayname=*' . $filter['name'] . '*'; + $result .= ')(displayname=*' . $adldapUtils->ldapSlashes($filter['name']) . '*'; unset($filter['name']); } if (isset($filter['user'])) { - $result .= ')(samAccountName=*' . $filter['user'] . '*'; + $result .= ')(samAccountName=*' . $adldapUtils->ldapSlashes($filter['user']) . '*'; unset($filter['user']); } if (isset($filter['mail'])) { - $result .= ')(mail=*' . $filter['mail'] . '*'; + $result .= ')(mail=*' . $adldapUtils->ldapSlashes($filter['mail']) . '*'; unset($filter['mail']); } return $result; -- GitLab From 00378d4a8382cafb49f5ca4b25941289e110f14a Mon Sep 17 00:00:00 2001 From: flammy <flamabelde@yahoo.de> Date: Thu, 12 Mar 2015 18:12:26 +0100 Subject: [PATCH 046/440] Added file-in-use reference to page Added german translation for file-in-use reference --- inc/lang/de/lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 2725c247a..ff5a27713 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -360,3 +360,4 @@ $lang['plainhtml'] = 'HTML Klartext'; $lang['wikimarkup'] = 'Wiki Markup'; $lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>'; $lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; -- GitLab From 22d18504ad2eb28dbf7d12a645c6335198bac256 Mon Sep 17 00:00:00 2001 From: flammy <flamabelde@yahoo.de> Date: Thu, 12 Mar 2015 18:13:50 +0100 Subject: [PATCH 047/440] Added file-in-use reference to page Added german translation for file-in-use reference --- inc/lang/de-informal/lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 1a1491f6b..43dca61f1 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -344,3 +344,4 @@ $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnis'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; -- GitLab From e605e04172dda4a182be04c15e8f4cc9f5f17093 Mon Sep 17 00:00:00 2001 From: flammy <flamabelde@yahoo.de> Date: Thu, 12 Mar 2015 18:15:20 +0100 Subject: [PATCH 048/440] Added file-in-use reference to page Added english translation for file-in-use reference --- inc/lang/en/lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index a5347e026..8fff8037f 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -363,6 +363,7 @@ $lang['media_perm_read'] = 'Sorry, you don\'t have enough rights to read f $lang['media_perm_upload'] = 'Sorry, you don\'t have enough rights to upload files.'; $lang['media_update'] = 'Upload new version'; $lang['media_restore'] = 'Restore this version'; +$lang['media_acl_warning'] = 'This list might not be complete due to ACL restrictions and hidden pages.'; $lang['currentns'] = 'Current namespace'; $lang['searchresult'] = 'Search Result'; -- GitLab From 5f4088b86d534f85182523ee560c2104f5317266 Mon Sep 17 00:00:00 2001 From: flammy <flamabelde@yahoo.de> Date: Thu, 12 Mar 2015 18:21:29 +0100 Subject: [PATCH 049/440] Added file-in-use reference to page Added file-in-use reference to page --- lib/tpl/dokuwiki/detail.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index b27567987..ada2a6644 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -57,6 +57,20 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <div class="img_detail"> <?php tpl_img_meta(); ?> + <dl> + <?php + echo '<dt>'.$lang['reference'].':</dt>'; + $media_usage = ft_mediause($IMG,true); + if(count($media_usage) > 0){ + foreach($media_usage as $path){ + echo '<dd>'.html_wikilink($path).'</a></dd>'; + } + }else{ + echo '<dd>'.$lang['nothingfound'].'</dd>'; + } + ?> + </dl> + <p><?php echo $lang['media_acl_warning']; ?></p> </div> <?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?> <?php endif; ?> -- GitLab From 1014a348a1826737c9df8a9edaed3f756d0058f2 Mon Sep 17 00:00:00 2001 From: Sascha Klopp <klopp@rrzn.uni-hannover.de> Date: Fri, 13 Mar 2015 12:01:51 +0100 Subject: [PATCH 050/440] Add description for modPass-Option --- lib/plugins/authldap/lang/de/settings.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index ecb407820..933189c40 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -22,6 +22,7 @@ $lang['userscope'] = 'Die Suchweite nach Benutzeraccounts.'; $lang['groupscope'] = 'Die Suchweite nach Benutzergruppen.'; $lang['userkey'] = 'Attribut, das den Benutzernamen enthält; muss konsistent zum userfilter sein.'; $lang['groupkey'] = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).'; +$lang['modPass'] = 'Darf über Dokuwiki das LDAP-Passwort geändert werden?'; $lang['debug'] = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; -- GitLab From 84f66e9f97ebf4d78ffaaad7a0b44f5c0180bfc9 Mon Sep 17 00:00:00 2001 From: Sascha Klopp <klopp@rrzn.uni-hannover.de> Date: Mon, 16 Mar 2015 16:50:38 +0100 Subject: [PATCH 051/440] Add english description for new authldap options --- lib/plugins/authldap/lang/en/settings.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index 951901ccc..a4194b00a 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -13,7 +13,9 @@ $lang['binddn'] = 'DN of an optional bind user if anonymous bind is not suf $lang['bindpw'] = 'Password of above user'; $lang['userscope'] = 'Limit search scope for user search'; $lang['groupscope'] = 'Limit search scope for group search'; +$lang['userkey'] = 'Attribute denoting the username; must be consistent to userfilter.'; $lang['groupkey'] = 'Group membership from any user attribute (instead of standard AD groups) e.g. group from department or telephone number'; +$lang['modPass'] = 'Can the LDAP password be changed via dokuwiki?'; $lang['debug'] = 'Display additional debug information on errors'; -- GitLab From 2f505bf9a889ddaf530fe975967589f6c6993e39 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 16 Mar 2015 22:49:47 +0100 Subject: [PATCH 052/440] use correct host in proxy tests --- _test/tests/inc/httpclient_https_proxy.test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_test/tests/inc/httpclient_https_proxy.test.php b/_test/tests/inc/httpclient_https_proxy.test.php index 9402e91af..7a54bb92e 100644 --- a/_test/tests/inc/httpclient_https_proxy.test.php +++ b/_test/tests/inc/httpclient_https_proxy.test.php @@ -2,7 +2,7 @@ require_once dirname(__FILE__).'/httpclient_http_proxy.test.php'; class httpclient_https_proxy_test extends httpclient_http_proxy_test { - protected $url = 'https://www.dokuwiki.org/README'; + protected $url = 'https://test.dokuwiki.org/README'; public function setUp(){ // skip tests when this PHP has no SSL support @@ -27,4 +27,4 @@ class httpclient_https_proxy_test extends httpclient_http_proxy_test { $this->assertFalse($data); $this->assertEquals(-150, $http->status); } -} \ No newline at end of file +} -- GitLab From e13bd5dcd000cc82ed5f1379dac0d674789d3a0c Mon Sep 17 00:00:00 2001 From: Christoph Dwertmann <cdwertmann@gmail.com> Date: Tue, 17 Mar 2015 18:22:29 +1100 Subject: [PATCH 053/440] Speed up indexer on lighttpd by using tpl_flush() --- lib/exe/indexer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 2de178caa..d2a4d45f7 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -199,8 +199,7 @@ function sendGIF(){ header('Content-Length: '.strlen($img)); header('Connection: Close'); print $img; - ob_flush(); - flush(); + tpl_flush(); // Browser should drop connection after this // Thinks it's got the whole image } -- GitLab From abb2621b95a47515d8223fcc52b5d62ca61b3e07 Mon Sep 17 00:00:00 2001 From: Jacob Palm <mail@jacobpalm.dk> Date: Tue, 17 Mar 2015 15:01:44 +0100 Subject: [PATCH 054/440] translation update --- inc/lang/da/denied.txt | 2 +- inc/lang/da/lang.php | 101 +++++++++--------- lib/plugins/authad/lang/da/lang.php | 8 ++ lib/plugins/authldap/lang/da/settings.php | 5 + lib/plugins/authmysql/lang/da/settings.php | 4 + .../extension/lang/da/intro_install.txt | 1 + .../extension/lang/da/intro_plugins.txt | 1 + .../extension/lang/da/intro_templates.txt | 1 + lib/plugins/extension/lang/da/lang.php | 56 ++++++++++ 9 files changed, 128 insertions(+), 51 deletions(-) create mode 100644 lib/plugins/authad/lang/da/lang.php create mode 100644 lib/plugins/extension/lang/da/intro_install.txt create mode 100644 lib/plugins/extension/lang/da/intro_plugins.txt create mode 100644 lib/plugins/extension/lang/da/intro_templates.txt diff --git a/inc/lang/da/denied.txt b/inc/lang/da/denied.txt index 7bf3b8b9b..217d8937e 100644 --- a/inc/lang/da/denied.txt +++ b/inc/lang/da/denied.txt @@ -1,3 +1,3 @@ -====== Adgang nægtet! ====== +====== Adgang nægtet ====== Du har ikke rettigheder til at fortsætte. diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 3b353d50c..e7c597f2b 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -19,6 +19,7 @@ * @author soer9648 <soer9648@eucl.dk> * @author Søren Birk <sbi@eucl.dk> * @author Søren Birk <soer9648@eucl.dk> + * @author Jacob Palm <mail@jacobpalm.dk> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -58,7 +59,7 @@ $lang['btn_resendpwd'] = 'Vælg ny adgangskode'; $lang['btn_draft'] = 'Redigér kladde'; $lang['btn_recover'] = 'Gendan kladde'; $lang['btn_draftdel'] = 'Slet kladde'; -$lang['btn_revert'] = 'Reetablér'; +$lang['btn_revert'] = 'Gendan'; $lang['btn_register'] = 'Registrér'; $lang['btn_apply'] = 'Anvend'; $lang['btn_media'] = 'Media Manager'; @@ -76,7 +77,7 @@ $lang['fullname'] = 'Fulde navn'; $lang['email'] = 'E-mail'; $lang['profile'] = 'Brugerprofil'; $lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.'; -$lang['badpassconfirm'] = 'Kodeordet var desværre forkert'; +$lang['badpassconfirm'] = 'Adgangkode var desværre forkert'; $lang['minoredit'] = 'Mindre ændringer'; $lang['draftdate'] = 'Kladde automatisk gemt d.'; $lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.'; @@ -88,26 +89,26 @@ $lang['regsuccess2'] = 'Du er nu oprettet som bruger.'; $lang['regmailfail'] = 'Dit adgangskode blev ikke sendt. Kontakt venligst administratoren.'; $lang['regbadmail'] = 'E-mail-adressen er ugyldig. Kontakt venligst administratoren, hvis du mener dette er en fejl.'; $lang['regbadpass'] = 'De to adgangskoder er ikke ens, vær venlig at prøve igen.'; -$lang['regpwmail'] = 'Dit DokuWiki password'; +$lang['regpwmail'] = 'Dit adgangskode til DokuWiki'; $lang['reghere'] = 'Opret en DokuWiki-konto her'; $lang['profna'] = 'Denne wiki understøtter ikke ændring af profiler'; $lang['profnochange'] = 'Ingen ændringer, intet modificeret.'; $lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt.'; $lang['profchanged'] = 'Brugerprofil opdateret korrekt.'; -$lang['profnodelete'] = 'Denne wiki supporterer ikke sletning af brugere'; -$lang['profdeleteuser'] = 'Slet Konto'; +$lang['profnodelete'] = 'Denne wiki understøtter ikke sletning af brugere'; +$lang['profdeleteuser'] = 'Slet konto'; $lang['profdeleted'] = 'Din brugerkonto er blevet slettet fra denne wiki'; $lang['profconfdelete'] = 'Jeg ønsker at slette min konto fra denne wiki. <br/> Denne handling kan ikke fortrydes.'; -$lang['pwdforget'] = 'Har du glemt dit adgangskode? FÃ¥ et nyt'; -$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.'; -$lang['resendpwd'] = 'Vælg ny adgangskode for'; +$lang['pwdforget'] = 'Har du glemt dit adgangskode? FÃ¥ en ny'; +$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af ny adgangskode.'; +$lang['resendpwd'] = 'Vælg en ny adgangskode for'; $lang['resendpwdmissing'] = 'Du skal udfylde alle felter.'; $lang['resendpwdnouser'] = 'Vi kan ikke finde denne bruger i vores database.'; $lang['resendpwdbadauth'] = 'Beklager, denne autoriseringskode er ikke gyldig. Kontroller venligst at du benyttede det fulde link til bekræftelse.'; -$lang['resendpwdconfirm'] = 'Et henvisning med bekræftelse er blevet sendt med email.'; -$lang['resendpwdsuccess'] = 'Dit nye adgangskode er blevet sendt med e-mail.'; -$lang['license'] = 'Med mindre andet angivet, vil indhold pÃ¥ denne wiki blive frigjort under følgende licens:'; -$lang['licenseok'] = 'Note: ved at ændre denne side, acceptere du at dit indhold bliver frigivet under følgende licens:'; +$lang['resendpwdconfirm'] = 'En e-mail med et link til bekræftelse er blevet sendt.'; +$lang['resendpwdsuccess'] = 'Din nye adgangskode er blevet sendt med e-mail.'; +$lang['license'] = 'Med mindre andet angivet, vil indhold pÃ¥ denne wiki blive udgivet under følgende licens:'; +$lang['licenseok'] = 'Bemærk - ved at redigere denne side, accepterer du at dit indhold bliver frigivet under følgende licens:'; $lang['searchmedia'] = 'Søg filnavn'; $lang['searchmedia_in'] = 'Søg i %s'; $lang['txt_upload'] = 'Vælg den fil der skal overføres:'; @@ -117,76 +118,76 @@ $lang['maxuploadsize'] = 'Upload max. %s pr. fil.'; $lang['lockedby'] = 'Midlertidig lÃ¥st af:'; $lang['lockexpire'] = 'LÃ¥s udløber kl:.'; $lang['js']['willexpire'] = 'Din lÃ¥s pÃ¥ dette dokument udløber om et minut.\nTryk pÃ¥ ForhÃ¥ndsvisning-knappen for at undgÃ¥ konflikter.'; -$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet +$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet. Fortsæt alligevel?'; $lang['js']['searchmedia'] = 'Søg efter filer'; $lang['js']['keepopen'] = 'Hold vindue Ã¥bent ved valg'; $lang['js']['hidedetails'] = 'Skjul detaljer'; $lang['js']['mediatitle'] = 'Link indstillinger'; $lang['js']['mediadisplay'] = 'Link type'; -$lang['js']['mediaalign'] = 'Juster'; +$lang['js']['mediaalign'] = 'Justering'; $lang['js']['mediasize'] = 'Billede størrelse'; -$lang['js']['mediatarget'] = 'Link mÃ¥l'; +$lang['js']['mediatarget'] = 'Link destination'; $lang['js']['mediaclose'] = 'Luk'; $lang['js']['mediainsert'] = 'Indsæt'; $lang['js']['mediadisplayimg'] = 'Vis billedet'; $lang['js']['mediadisplaylnk'] = 'Vis kun linket'; $lang['js']['mediasmall'] = 'Lille version'; -$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['mediamedium'] = 'Mellem version'; $lang['js']['medialarge'] = 'Stor version'; $lang['js']['mediaoriginal'] = 'Original version'; $lang['js']['medialnk'] = 'Link til detajle side'; $lang['js']['mediadirect'] = 'Direkte link til originalen'; $lang['js']['medianolnk'] = 'Intet link'; -$lang['js']['medianolink'] = 'Link ikke billedet'; +$lang['js']['medianolink'] = 'Link ikke til billedet'; $lang['js']['medialeft'] = 'Juster billedet til venstre'; $lang['js']['mediaright'] = 'Juster billedet til højre'; $lang['js']['mediacenter'] = 'Centreret'; $lang['js']['medianoalign'] = 'Brug ingen justering'; $lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. Du kan stadig kopiere og indsætte linket.'; -$lang['js']['linkwiz'] = 'guiden til henvisninger'; -$lang['js']['linkto'] = 'Henvise til:'; +$lang['js']['linkwiz'] = 'Guiden til henvisninger'; +$lang['js']['linkto'] = 'Henvis til:'; $lang['js']['del_confirm'] = 'Slet valgte post(er)?'; -$lang['js']['restore_confirm'] = 'Vil du virkeligt genskabe denne version?'; +$lang['js']['restore_confirm'] = 'Er du sikker pÃ¥ at du vil genskabe denne version?'; $lang['js']['media_diff'] = 'Vis forskelle:'; $lang['js']['media_diff_both'] = 'Side ved Side'; -$lang['js']['media_diff_opacity'] = 'Skin-igennem'; +$lang['js']['media_diff_opacity'] = 'Skin igennem'; $lang['js']['media_diff_portions'] = 'Skub'; $lang['js']['media_select'] = 'Vælg filer...'; -$lang['js']['media_upload_btn'] = 'Upload'; +$lang['js']['media_upload_btn'] = 'Overfør'; $lang['js']['media_done_btn'] = 'Færdig'; -$lang['js']['media_drop'] = 'Drop filer her for at uploade'; +$lang['js']['media_drop'] = 'Træk filer hertil for at overføre'; $lang['js']['media_cancel'] = 'fjern'; $lang['js']['media_overwrt'] = 'Overskriv eksisterende filer'; -$lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; +$lang['rssfailed'] = 'Der opstod en fejl ved hentning af dette feed: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; -$lang['fileupload'] = 'Overføre mediefil'; -$lang['uploadsucc'] = 'Overførelse var en succes'; -$lang['uploadfail'] = 'Overførelse fejlede. Der er muligvis problemer med rettighederne.'; -$lang['uploadwrong'] = 'Overførelse afvist. Filtypen er ikke tilladt.'; +$lang['fileupload'] = 'Overfør mediefil'; +$lang['uploadsucc'] = 'Overførels blev fuldført'; +$lang['uploadfail'] = 'Overførslen fejlede. Der er muligvis problemer med rettighederne.'; +$lang['uploadwrong'] = 'Overførslen blev afvist. Filtypen er ikke tilladt.'; $lang['uploadexist'] = 'Filen eksisterer allerede.'; -$lang['uploadbadcontent'] = 'Overføret indhold tilsvaret ikke til %s fil-endelsen.'; +$lang['uploadbadcontent'] = 'Det overført indhold svarer ikke til %s fil-endelsen.'; $lang['uploadspam'] = 'Overførelsen blev blokeret af spam sortlisten.'; $lang['uploadxss'] = 'Overførelsen blev blokeret pÃ¥ grund af mulig skadeligt indhold.'; -$lang['uploadsize'] = 'Den overføret fil var for stor (max. %s)'; +$lang['uploadsize'] = 'Den overførte fil var for stor (maksimal størrelse %s)'; $lang['deletesucc'] = 'Filen "%s" er blevet slettet.'; -$lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne.'; -$lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.'; +$lang['deletefail'] = '"%s" kunne ikke slettes - kontroller rettighederne.'; +$lang['mediainuse'] = 'Filen "%s" kan ikke slettes - den er stadig i brug.'; $lang['namespaces'] = 'Navnerum'; $lang['mediafiles'] = 'Tilgængelige filer i'; -$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side'; +$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side.'; $lang['mediausage'] = 'Brug den følgende syntaks til at henvise til denne fil:'; $lang['mediaview'] = 'Vis oprindelig fil'; $lang['mediaroot'] = 'rod'; $lang['mediaupload'] = 'Overføre en fil til det nuværende navnerum her. For at oprette under-navnerum, tilføj dem til "Overføre som" filnavnet, adskilt af kolontegn.'; -$lang['mediaextchange'] = 'Filudvidelse ændret fra .%s til .%s!'; +$lang['mediaextchange'] = 'Filtype ændret fra .%s til .%s!'; $lang['reference'] = 'Henvisning til'; $lang['ref_inuse'] = 'Filen kan ikke slettes, da den stadig er i brug pÃ¥ følgende sider:'; -$lang['ref_hidden'] = 'Nogle henvisninger er i dokumenter du ikke har læserettigheder til'; +$lang['ref_hidden'] = 'Nogle henvisninger er pÃ¥ sider du ikke har læserettigheder til'; $lang['hits'] = 'Besøg'; -$lang['quickhits'] = 'Tilsvarende dokumentnavne'; +$lang['quickhits'] = 'Tilsvarende sidenavne'; $lang['toc'] = 'Indholdsfortegnelse'; $lang['current'] = 'nuværende'; $lang['yours'] = 'Din version'; @@ -195,7 +196,7 @@ $lang['diff2'] = 'Vis forskelle i forhold til de valgte revision $lang['difflink'] = 'Link til denne sammenlinings vising'; $lang['diff_type'] = 'Vis forskelle:'; $lang['diff_inline'] = 'Indeni'; -$lang['diff_side'] = 'Side ved Side'; +$lang['diff_side'] = 'Side ved side'; $lang['diffprevrev'] = 'Forrige revision'; $lang['diffnextrev'] = 'Næste revision'; $lang['difflastrev'] = 'Sidste revision'; @@ -208,26 +209,26 @@ $lang['lastmod'] = 'Sidst ændret:'; $lang['by'] = 'af'; $lang['deleted'] = 'slettet'; $lang['created'] = 'oprettet'; -$lang['restored'] = 'gammel udgave reetableret (%s)'; +$lang['restored'] = 'gammel udgave gendannet (%s)'; $lang['external_edit'] = 'ekstern redigering'; -$lang['summary'] = 'Redigerings resumé'; -$lang['noflash'] = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> er nødvendig til at vise denne indehold.'; -$lang['download'] = 'Hente kodestykke'; +$lang['summary'] = 'Resumé af ændrigner'; +$lang['noflash'] = 'Du skal installere <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a> for at kunne se dette indhold.'; +$lang['download'] = 'Hent kodestykke'; $lang['tools'] = 'Værktøjer'; $lang['user_tools'] = 'Brugerværktøjer'; $lang['site_tools'] = 'Webstedsværktøjer'; $lang['page_tools'] = 'Sideværktøjer'; $lang['skip_to_content'] = 'hop til indhold'; $lang['sidebar'] = 'Sidebjælke'; -$lang['mail_newpage'] = 'dokument tilføjet:'; -$lang['mail_changed'] = 'dokument ændret:'; -$lang['mail_subscribe_list'] = 'sider ændret i navnerum'; +$lang['mail_newpage'] = 'side tilføjet:'; +$lang['mail_changed'] = 'side ændret:'; +$lang['mail_subscribe_list'] = 'sider ændret i navnerum:'; $lang['mail_new_user'] = 'Ny bruger'; -$lang['mail_upload'] = 'fil overføret:'; +$lang['mail_upload'] = 'fil overført:'; $lang['changes_type'] = 'Vis ændringer af'; $lang['pages_changes'] = 'Sider'; -$lang['media_changes'] = 'Media filer'; -$lang['both_changes'] = 'BÃ¥de sider og media filer'; +$lang['media_changes'] = 'Mediefiler'; +$lang['both_changes'] = 'BÃ¥de sider og medie filer'; $lang['qb_bold'] = 'Fed'; $lang['qb_italic'] = 'Kursiv'; $lang['qb_underl'] = 'Understregning'; @@ -239,7 +240,7 @@ $lang['qb_h3'] = 'Niveau 3 overskrift'; $lang['qb_h4'] = 'Niveau 4 overskrift'; $lang['qb_h5'] = 'Niveau 5 overskrift'; $lang['qb_h'] = 'Overskrift'; -$lang['qb_hs'] = 'Vælg overskriften'; +$lang['qb_hs'] = 'Vælg overskrift'; $lang['qb_hplus'] = 'Højere overskriftsniveau'; $lang['qb_hminus'] = 'Lavere overskriftsniveau'; $lang['qb_hequal'] = 'Samme overskriftsniveau'; @@ -247,7 +248,7 @@ $lang['qb_link'] = 'Intern henvisning'; $lang['qb_extlink'] = 'Ekstern henvisning'; $lang['qb_hr'] = 'Vandret linje'; $lang['qb_ol'] = 'Nummereret liste'; -$lang['qb_ul'] = 'Unummereret liste'; +$lang['qb_ul'] = 'Punktopstilling'; $lang['qb_media'] = 'Tilføj billeder og andre filer'; $lang['qb_sig'] = 'Indsæt signatur'; $lang['qb_smileys'] = 'Smileys'; @@ -255,7 +256,7 @@ $lang['qb_chars'] = 'Specialtegn'; $lang['upperns'] = 'GÃ¥ til overordnet navnerum'; $lang['admin_register'] = 'Tilføj ny bruger'; $lang['metaedit'] = 'Rediger metadata'; -$lang['metasaveerr'] = 'Skrivning af metadata fejlede'; +$lang['metasaveerr'] = 'Fejl under skrivning af metadata'; $lang['metasaveok'] = 'Metadata gemt'; $lang['img_title'] = 'Titel:'; $lang['img_caption'] = 'Billedtekst:'; diff --git a/lib/plugins/authad/lang/da/lang.php b/lib/plugins/authad/lang/da/lang.php new file mode 100644 index 000000000..8fc7db775 --- /dev/null +++ b/lib/plugins/authad/lang/da/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jacob Palm <mail@jacobpalm.dk> + */ +$lang['domain'] = 'Logondomæne'; diff --git a/lib/plugins/authldap/lang/da/settings.php b/lib/plugins/authldap/lang/da/settings.php index b736504a5..a9fce3a8c 100644 --- a/lib/plugins/authldap/lang/da/settings.php +++ b/lib/plugins/authldap/lang/da/settings.php @@ -5,11 +5,16 @@ * * @author Jens Hyllegaard <jens.hyllegaard@gmail.com> * @author soer9648 <soer9648@eucl.dk> + * @author Jacob Palm <mail@jacobpalm.dk> */ $lang['server'] = 'Din LDAP server. Enten værtsnavn (<code>localhost</code>) eller fuld kvalificeret URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP server port, hvis der ikke er angivet en komplet URL ovenfor.'; $lang['usertree'] = 'Hvor findes brugerkonti. F.eks. <code>ou=Personer, dc=server, dc=tld</code>'; $lang['grouptree'] = 'Hvor findes brugergrupper. F.eks. <code>ou=Grupper, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'LDAP filter der benyttes til at søge efter brugerkonti. F.eks. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'LDAP filter tder benyttes til at søge efter grupper. F.eks. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'Protokol version der skal benyttes. Det er muligvis nødvendigt at sætte denne til <code>3</code>'; $lang['starttls'] = 'Benyt TLS forbindelser?'; $lang['bindpw'] = 'Kodeord til ovenstÃ¥ende bruger'; +$lang['modPass'] = 'Kan LDAP adgangskoden skiftes via DokuWiki?'; $lang['debug'] = 'Vis yderligere debug output ved fejl'; diff --git a/lib/plugins/authmysql/lang/da/settings.php b/lib/plugins/authmysql/lang/da/settings.php index ed21201fb..5fd66dbad 100644 --- a/lib/plugins/authmysql/lang/da/settings.php +++ b/lib/plugins/authmysql/lang/da/settings.php @@ -5,6 +5,7 @@ * * @author Jens Hyllegaard <jens.hyllegaard@gmail.com> * @author soer9648 <soer9648@eucl.dk> + * @author Jacob Palm <mail@jacobpalm.dk> */ $lang['server'] = 'Din MySQL server'; $lang['user'] = 'MySQL brugernavn'; @@ -12,8 +13,11 @@ $lang['password'] = 'Kodeord til ovenstÃ¥ende bruger'; $lang['database'] = 'Database der skal benyttes'; $lang['charset'] = 'Tegnsæt benyttet i database'; $lang['debug'] = 'Vis yderligere debug output'; +$lang['forwardClearPass'] = 'Videregiv bruger adgangskoder i klar tekst til nedenstÃ¥ende SQL statement, i stedet for at benytte passcrypt'; +$lang['TablesToLock'] = 'Kommasepareret liste over tabeller der skal lÃ¥ses under skrivning'; $lang['checkPass'] = 'SQL-sætning til at kontrollere kodeord'; $lang['getUserInfo'] = 'SQL-sætning til at hente brugerinformation'; +$lang['getGroups'] = 'SQL statement til at bestemme en brugers medlemskab af grupper'; $lang['getUsers'] = 'SQL-sætning til at liste alle brugere'; $lang['addUser'] = 'SQL-sætning til at tilføje en ny bruger'; $lang['addGroup'] = 'SQL-sætning til at tilføje en ny gruppe'; diff --git a/lib/plugins/extension/lang/da/intro_install.txt b/lib/plugins/extension/lang/da/intro_install.txt new file mode 100644 index 000000000..e5657f218 --- /dev/null +++ b/lib/plugins/extension/lang/da/intro_install.txt @@ -0,0 +1 @@ +Her kan du installerer plugins eller templates manuelt, ved enten at uploade dem eller angive en direkte URL til download. \ No newline at end of file diff --git a/lib/plugins/extension/lang/da/intro_plugins.txt b/lib/plugins/extension/lang/da/intro_plugins.txt new file mode 100644 index 000000000..5d9deaf1e --- /dev/null +++ b/lib/plugins/extension/lang/da/intro_plugins.txt @@ -0,0 +1 @@ +Dette er de plugins du aktuelt har installeret i din DokuWiki. Du kan aktivere, deaktiver eller fjerne plugins fra denne side. Opdateringer til plugins vises ogsÃ¥ her - husk at læse dokumentationen til et plugin inden du opdaterer det. \ No newline at end of file diff --git a/lib/plugins/extension/lang/da/intro_templates.txt b/lib/plugins/extension/lang/da/intro_templates.txt new file mode 100644 index 000000000..1914500b1 --- /dev/null +++ b/lib/plugins/extension/lang/da/intro_templates.txt @@ -0,0 +1 @@ +Dette er de templates du aktuelt har installeret i din DokuWiki. Du kan vælge det template du vil benytte under [[?do=admin&page=config|Opsætningsstyring]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/da/lang.php b/lib/plugins/extension/lang/da/lang.php index c341bc5f9..17cb3b57c 100644 --- a/lib/plugins/extension/lang/da/lang.php +++ b/lib/plugins/extension/lang/da/lang.php @@ -4,7 +4,62 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Søren Birk <soer9648@eucl.dk> + * @author Jacob Palm <mail@jacobpalm.dk> */ +$lang['tab_plugins'] = 'Installerede plugins'; +$lang['tab_templates'] = 'Installerede templates'; +$lang['tab_search'] = 'Søg og installer'; +$lang['tab_install'] = 'Manuel installation'; +$lang['notimplemented'] = 'Denne funktion er ikke implementeret endnu'; +$lang['unknownauthor'] = 'Ukendt udgiver'; +$lang['unknownversion'] = 'Ukendt version'; +$lang['btn_info'] = 'Vis mere information'; +$lang['btn_update'] = 'Opdater'; +$lang['btn_uninstall'] = 'Afinstaller'; +$lang['btn_enable'] = 'Aktiver'; +$lang['btn_disable'] = 'Deaktiver'; +$lang['btn_install'] = 'Installer'; +$lang['btn_reinstall'] = 'Geninstaller'; +$lang['js']['reallydel'] = 'Er du sikker pÃ¥ at du vil afinstallere denne udvidelse?'; +$lang['search_for'] = 'Søg efter udvidelse:'; +$lang['search'] = 'Søg'; +$lang['extensionby'] = '<strong>%s</strong> af %s'; +$lang['screenshot'] = 'Skærmbillede af %s'; +$lang['popularity'] = 'Popularitet: %s%%'; +$lang['homepage_link'] = 'Dokumenter'; +$lang['bugs_features'] = 'Fejl'; +$lang['tags'] = 'Tags:'; +$lang['author_hint'] = 'Søg efter udvidelse af denne udgiver'; +$lang['installed'] = 'Installeret:'; +$lang['downloadurl'] = 'Download URL:'; +$lang['unknown'] = '<em>ukendt</em>'; +$lang['installed_version'] = 'Installeret version:'; +$lang['install_date'] = 'Din sidste opdatering:'; +$lang['available_version'] = 'Tilgængelig version:'; +$lang['compatible'] = 'Kompatibel med:'; +$lang['depends'] = 'Afhængig af:'; +$lang['similar'] = 'Ligner:'; +$lang['donate'] = 'Synes du om denne?'; +$lang['donate_action'] = 'Køb en kop kaffe til udvikleren!'; +$lang['repo_retry'] = 'Førsøg igen'; +$lang['status'] = 'Status:'; +$lang['status_installed'] = 'installeret'; +$lang['status_not_installed'] = 'ikke installeret'; +$lang['status_protected'] = 'beskyttet'; +$lang['status_enabled'] = 'aktiveret'; +$lang['status_disabled'] = 'deaktiveret'; +$lang['status_unmodifiable'] = 'lÃ¥st for ændringer'; +$lang['status_plugin'] = 'plugin'; +$lang['status_template'] = 'template'; +$lang['msg_enabled'] = 'Plugin %s aktiveret'; +$lang['msg_disabled'] = 'Plugin %s deaktiveret'; +$lang['msg_delete_success'] = 'Udvidelse %s afinstalleret'; +$lang['msg_delete_failed'] = 'Kunne ikke afinstallere udvidelsen %s'; +$lang['msg_template_install_success'] = 'Template %s blev installeret'; +$lang['msg_template_update_success'] = 'Template %s blev opdateret'; +$lang['msg_plugin_install_success'] = 'Plugin %s blev installeret'; +$lang['msg_plugin_update_success'] = 'Plugin %s blev opdateret'; +$lang['msg_upload_failed'] = 'Kunne ikke uploade filen'; $lang['update_available'] = '<strong>Opdatering:</strong> Ny version %s er tilgængelig.'; $lang['wrong_folder'] = '<strong>Plugin ikke installeret korrekt:</strong> Omdøb plugin-mappe "%s" til "%s".'; $lang['url_change'] = '<strong>URL ændret:</strong> Download-URL er blevet ændret siden sidste download. Kontrollér om den nye URL er valid, inden udvidelsen opdateres.<br />Ny: %s<br />Gammel: %s'; @@ -22,3 +77,4 @@ $lang['auth'] = 'Auth-plugin er ikke aktiveret i konfiguratione $lang['install_url'] = 'Installér fra URL:'; $lang['install_upload'] = 'Upload Udvidelse:'; $lang['repo_error'] = 'Plugin-arkivet kunne ikke kontaktes. Kontrollér at din server kan kontakte www.dokuwiki.org kontrollér dine proxy-indstillinger.'; +$lang['nossl'] = 'Din PHP lader til at mangle understøttelse for SSL. Mange DokuWiki udvidelser vil ikke kunne downloades.'; -- GitLab From 09513545a4776e31b5fb113bd8741df1df878816 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Wed, 18 Mar 2015 11:19:04 +0100 Subject: [PATCH 055/440] give better error message in HTTPClient for failed crypto setup --- _test/tests/inc/httpclient_http_proxy.test.php | 2 +- inc/HTTPClient.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php index c44dc7ed7..79b8f8e5e 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -15,7 +15,7 @@ class httpclient_http_proxy_test extends DokuWikiTest { $http->proxy_port = 8080; $data = $http->get($this->url); - $this->assertFalse($data === false, 'HTTP response '.$http->error); + $this->assertFalse($data === false, 'HTTP response: '.$http->error.' ['.$this->url.']'); $this->assertTrue(strpos($data,'DokuWiki') !== false, 'response content'); } } \ No newline at end of file diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 76d973c38..24b3a8d78 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -604,6 +604,8 @@ class HTTPClient { $requesturl = $requestinfo['path']; return true; } + + throw new HTTPClientException('Failed to set up crypto for secure proxy connection', -151); } throw new HTTPClientException('Failed to establish secure proxy connection', -150); -- GitLab From 8e455cddd749f1ea627e47e5ff5b910b7443d561 Mon Sep 17 00:00:00 2001 From: itsho <itsho.itsho@gmail.com> Date: Wed, 18 Mar 2015 15:05:49 +0100 Subject: [PATCH 056/440] translation update --- inc/lang/he/lang.php | 26 ++++++++++++++++++++++++-- inc/lang/he/resetpwd.txt | 3 +++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 inc/lang/he/resetpwd.txt diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 5e2ecbdff..1b8710df9 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -13,6 +13,7 @@ * @author alex <ralexay@gmail.com> * @author matt carroll <matt.carroll@gmail.com> * @author tomer <tomercarolldergicz@gmail.com> + * @author itsho <itsho.itsho@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -57,6 +58,8 @@ $lang['btn_register'] = 'הרשמה'; $lang['btn_apply'] = 'לייש×'; $lang['btn_media'] = '×ž× ×”×œ המדיה'; $lang['btn_deleteuser'] = 'להסיר ×ת החשבון שלי'; +$lang['btn_img_backto'] = 'חזרה ×ל %s'; +$lang['btn_mediaManager'] = 'צפה ×‘×ž× ×”×œ מדיה'; $lang['loggedinas'] = '× ×›× ×¡×ª בש×:'; $lang['user'] = '×©× ×ž×©×ª×ž×©'; $lang['pass'] = 'ססמה'; @@ -188,6 +191,11 @@ $lang['difflink'] = 'קישור לתצוגה השוו××” זו'; $lang['diff_type'] = 'הצגת הבדלי×:'; $lang['diff_inline'] = 'ב×ותה השורה'; $lang['diff_side'] = '×–×” לצד ×–×”'; +$lang['diffprevrev'] = 'הגירסה הקודמת'; +$lang['diffnextrev'] = 'הגירסה הב××”'; +$lang['difflastrev'] = 'הגירסה ×”××—×¨×•× ×”'; +$lang['diffbothprevrev'] = 'גירסה קודמת ×‘×©× ×™ הצדדי×'; +$lang['diffbothnextrev'] = 'הגירסה הב××” ×‘×©× ×™ הצדדי×'; $lang['line'] = 'שורה'; $lang['breadcrumb'] = '×‘×™×§×•×¨×™× ××—×¨×•× ×™×:'; $lang['youarehere'] = 'זהו מיקומך:'; @@ -244,7 +252,6 @@ $lang['admin_register'] = 'הוספת משתמש חדש'; $lang['metaedit'] = 'עריכת × ×ª×•× ×™ העל'; $lang['metasaveerr'] = '×ירע כשל בשמירת × ×ª×•× ×™ העל'; $lang['metasaveok'] = '× ×ª×•× ×™ העל × ×©×ž×¨×•'; -$lang['btn_img_backto'] = 'חזרה ×ל %s'; $lang['img_title'] = 'ש×:'; $lang['img_caption'] = 'כותרת:'; $lang['img_date'] = 'ת×ריך:'; @@ -257,7 +264,6 @@ $lang['img_camera'] = 'מצלמה:'; $lang['img_keywords'] = 'מילות מפתח:'; $lang['img_width'] = 'רוחב:'; $lang['img_height'] = 'גובה:'; -$lang['btn_mediaManager'] = 'צפה ×‘×ž× ×”×œ מדיה'; $lang['subscr_subscribe_success'] = '%s × ×•×¡×£ לרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s'; $lang['subscr_subscribe_error'] = '×ירעה שגי××” בהוספת %s לרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s'; $lang['subscr_subscribe_noaddress'] = '×ין כתובת המשויכת ×¢× ×”×›× ×™×¡×” שלך, × × × ×™×ª×Ÿ להוסיף ×ותך לרשימת ×”×ž×™× ×•×™×™×'; @@ -287,6 +293,7 @@ $lang['i_modified'] = 'משיקולי ×בטחה סקריפט ×–×” ×™ <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; $lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; $lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> × ×ž×•×›×” מ <code>%s</code> הצורך. ×תה צריך לשדרג PHP שלך להתקין.'; +$lang['i_mbfuncoverload'] = 'יש לבטל ×ת mbstring.func_overload בphp.ini בכדי להריץ ×ת DokuWiki'; $lang['i_permfail'] = '<code>%s</code> ××™× ×” × ×™×ª× ×ª לכתיבה על ידי DokuWiki. עליך ×œ×©× ×•×ª הרש×ות תיקייה זו!'; $lang['i_confexists'] = '<code>%s</code> כבר קיי×'; $lang['i_writeerr'] = '×ין ×פשרות ליצור ×ת <code>%s</code>. × × ×œ×‘×“×•×§ ×ת הרש×ות הקובץ/תיקייה וליצור ×ת הקובץ ×™×“× ×™×ª.'; @@ -326,3 +333,18 @@ $lang['media_sort_date'] = 'ת×ריך'; $lang['media_namespaces'] = 'בחר מרחב שמות'; $lang['media_files'] = '×§×‘×¦×™× ×‘ s%'; $lang['media_upload'] = 'להעלות s%'; +$lang['media_search'] = 'חיפוש ב%s'; +$lang['media_view'] = '%s'; +$lang['media_viewold'] = '%s ב %s'; +$lang['media_edit'] = 'ערוך %s'; +$lang['media_history'] = 'היסטוריה של %s'; +$lang['media_meta_edited'] = 'metadata × ×¢×¨×š'; +$lang['media_perm_read'] = 'מצטערי×, ×ין לך הרש×ות ×œ×§×¨×•× ×§×‘×¦×™×.'; +$lang['media_perm_upload'] = 'מצטערי×, ×ין לך הרש×ות להעלות קבצי×.'; +$lang['media_update'] = 'העלה גירסה חדשה'; +$lang['media_restore'] = 'שחזר גירסה זו'; +$lang['currentns'] = '×©× ×ž×¨×—×‘ × ×•×›×—×™'; +$lang['searchresult'] = 'תוצ×ות חיפוש'; +$lang['plainhtml'] = 'HTML פשוט'; +$lang['page_nonexist_rev'] = 'העמוד ×œ× ×§×™×™× ×‘%s. העמוד × ×•×¦×¨ ×‘×ž×§×•× ×–×ת ב<a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = '×œ× × ×™×ª×Ÿ ×œ×¤×¢× ×— פרמטר "%s".'; diff --git a/inc/lang/he/resetpwd.txt b/inc/lang/he/resetpwd.txt new file mode 100644 index 000000000..bd7b5ace4 --- /dev/null +++ b/inc/lang/he/resetpwd.txt @@ -0,0 +1,3 @@ +====== קבע סיסמה חדשה ====== + +×× × ×”×›× ×¡ סיסמה חדשה לחשבון שלך בויקי ×–×”. \ No newline at end of file -- GitLab From d387bf5e958e9d25a7192d1f5e5280ac0eb82da7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 18 Mar 2015 20:27:10 +0100 Subject: [PATCH 057/440] correct error checking for bz2 file reading The code reading .bz2 compressed files did not correctly check for possible read errors. In case of a corrupted file this could have led to an infinite loop. Thanks to Filippo Cavallarin from www.segment.technology for dicovering this bug. --- _test/tests/inc/io_readfile.test.php | 53 ++++++++++++++++++++ _test/tests/inc/io_readfile/corrupt.txt.bz2 | 1 + _test/tests/inc/io_readfile/corrupt.txt.gz | Bin 0 -> 31 bytes _test/tests/inc/io_readfile/test.txt.bz2 | Bin 0 -> 49 bytes _test/tests/inc/io_readfile/test.txt.gz | Bin 0 -> 31 bytes inc/io.php | 16 ++++-- 6 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 _test/tests/inc/io_readfile.test.php create mode 100644 _test/tests/inc/io_readfile/corrupt.txt.bz2 create mode 100644 _test/tests/inc/io_readfile/corrupt.txt.gz create mode 100644 _test/tests/inc/io_readfile/test.txt.bz2 create mode 100644 _test/tests/inc/io_readfile/test.txt.gz diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php new file mode 100644 index 000000000..e3e90cd8d --- /dev/null +++ b/_test/tests/inc/io_readfile.test.php @@ -0,0 +1,53 @@ +<?php + +class io_readfile_test extends DokuWikiTest { + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!extension_loaded('zlib')) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!extension_loaded('bz2')) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function test_plain(){ + // since git converts line endings, we can't check in this test file but have to create it ourselves + $plain = TMP_DIR.'/test.txt'; + file_put_contents($plain, "The\015\012Test\015\012"); + + $this->assertEquals("The\012Test\012", io_readFile($plain)); + $this->assertEquals("The\015\012Test\015\012", io_readFile($plain, false)); + $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt')); + } + + /** + * @depends test_ext_zlib + */ + function test_gzfiles(){ + $this->assertEquals("The\012Test\012", io_readFile(__DIR__.'/io_readfile/test.txt.gz')); + $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.gz', false)); + $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.gz')); + $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.gz')); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzfiles(){ + $this->assertEquals("The\012Test\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2')); + $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2', false)); + $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.bz2')); + $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.bz2')); + } + +} \ No newline at end of file diff --git a/_test/tests/inc/io_readfile/corrupt.txt.bz2 b/_test/tests/inc/io_readfile/corrupt.txt.bz2 new file mode 100644 index 000000000..97f742919 --- /dev/null +++ b/_test/tests/inc/io_readfile/corrupt.txt.bz2 @@ -0,0 +1 @@ +BZh91AY&SYXHd¬ \ No newline at end of file diff --git a/_test/tests/inc/io_readfile/corrupt.txt.gz b/_test/tests/inc/io_readfile/corrupt.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..f7f5d3397f2e370afae7fda0d33a838b93a6b155 GIT binary patch literal 31 ncmb2|=3sbpnlqGvnY+T{=~FIGUA>1-nHWx2O#R5sz`y_is>TYc literal 0 HcmV?d00001 diff --git a/_test/tests/inc/io_readfile/test.txt.bz2 b/_test/tests/inc/io_readfile/test.txt.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3d4e1b226919d86934f6c95756e867b498ffa898 GIT binary patch literal 49 zcmZ>Y%CIzaj8qGbJn50LhJk_Ua07!73j>n_4}$`OqDCS|f=Q?l-;dpsG!M13c{!^l F002f$4a@)l literal 0 HcmV?d00001 diff --git a/_test/tests/inc/io_readfile/test.txt.gz b/_test/tests/inc/io_readfile/test.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ac8f7d402263909ed35337fa8d9d68b7f4b165d GIT binary patch literal 31 ncmb2|=3sbpnlqGvnfs*2)2CdXx_S?vGBKRCpZbxTfq?-4uZs%8 literal 0 HcmV?d00001 diff --git a/inc/io.php b/inc/io.php index 3ed227162..0636a4b62 100644 --- a/inc/io.php +++ b/inc/io.php @@ -101,7 +101,7 @@ function _io_readWikiPage_action($data) { * * @param string $file filename * @param bool $clean - * @return string + * @return string|bool the file contents or false on error */ function io_readFile($file,$clean=true){ $ret = ''; @@ -114,7 +114,7 @@ function io_readFile($file,$clean=true){ $ret = file_get_contents($file); } } - if($clean){ + if($ret !== false && $clean){ return cleanText($ret); }else{ return $ret; @@ -124,22 +124,28 @@ function io_readFile($file,$clean=true){ * Returns the content of a .bz2 compressed file as string * * @author marcel senf <marcel@rucksackreinigung.de> + * @author Andreas Gohr <andi@splitbrain.org> * * @param string $file filename - * @return string content + * @return string|bool content or false on error */ function bzfile($file){ $bz = bzopen($file,"r"); + if($bz === false) return false; + $str = ''; while (!feof($bz)){ //8192 seems to be the maximum buffersize? - $str = $str . bzread($bz,8192); + $buffer = bzread($bz,8192); + if(($buffer === false) || (bzerrno($bz) !== 0)) { + return false; + } + $str = $str . $buffer; } bzclose($bz); return $str; } - /** * Used to write out a DokuWiki page to file, and send IO_WIKIPAGE_WRITE events. * -- GitLab From 6abea1c0be56a2cb5575c8921c3e6661ed565697 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 18 Mar 2015 21:55:59 +0100 Subject: [PATCH 058/440] fixed HTTPS proxy tests, our tests now run on httpbin.org This also reverses the order of crypto protocols tried again. Using TLS first again. related to #915 --- _test/tests/inc/httpclient_http_proxy.test.php | 2 +- _test/tests/inc/httpclient_https_proxy.test.php | 2 +- inc/HTTPClient.php | 14 ++++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php index 79b8f8e5e..dae801dbd 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -3,7 +3,7 @@ require_once (__DIR__ . '/httpclient_mock.php'); class httpclient_http_proxy_test extends DokuWikiTest { - protected $url = 'http://test.dokuwiki.org/README'; + protected $url = 'http://httpbin.org/user-agent'; /** * @group internet diff --git a/_test/tests/inc/httpclient_https_proxy.test.php b/_test/tests/inc/httpclient_https_proxy.test.php index 7a54bb92e..cf5b9a8b9 100644 --- a/_test/tests/inc/httpclient_https_proxy.test.php +++ b/_test/tests/inc/httpclient_https_proxy.test.php @@ -2,7 +2,7 @@ require_once dirname(__FILE__).'/httpclient_http_proxy.test.php'; class httpclient_https_proxy_test extends httpclient_http_proxy_test { - protected $url = 'https://test.dokuwiki.org/README'; + protected $url = 'https://httpbin.org/user-agent'; public function setUp(){ // skip tests when this PHP has no SSL support diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 24b3a8d78..092216c57 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -592,20 +592,22 @@ class HTTPClient { // set correct peer name for verification (enabled since PHP 5.6) stream_context_set_option($socket, 'ssl', 'peer_name', $requestinfo['host']); - // Because of older PHP versions having trouble with TLS (enable_crypto returns true, but - // the conection still borks) we try SSLv3 first - if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) { + // because SSLv3 is mostly broken, we try TLS connections here first. + // according to https://github.com/splitbrain/dokuwiki/commit/c05ef534 we had problems with certain + // setups with this solution before, but we have no usable test for that and TLS should be the more + // common crypto by now + if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { $requesturl = $requestinfo['path']; return true; } - // If the proxy does not support SSLv3 we try TLS - if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { + // if the above failed, this will most probably not work either, but we can try + if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) { $requesturl = $requestinfo['path']; return true; } - throw new HTTPClientException('Failed to set up crypto for secure proxy connection', -151); + throw new HTTPClientException('Failed to set up crypto for secure connection to '.$requestinfo['host'], -151); } throw new HTTPClientException('Failed to establish secure proxy connection', -150); -- GitLab From f23f95941a400702f525923973f3612df6da82cb Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 18 Mar 2015 22:16:34 +0100 Subject: [PATCH 059/440] SECURITY escape user properties in user manager #1081 The user properties (login, real name, etc) where not properly escaped in the user manager's edit form. This allowed a XSS attack on the superuser by registered users. Thanks to Filippo Cavallarin from www.segment.technology for discovering this bug. --- lib/plugins/usermanager/admin.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index cc4c4ae47..9cb9b0c40 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -222,9 +222,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { */ $groups = join(', ',$grps); ptln(" <tr class=\"user_info\">"); - ptln(" <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".$user."]\" ".$delete_disable." /></td>"); + ptln(" <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".hsc($user)."]\" ".$delete_disable." /></td>"); if ($editable) { - ptln(" <td><a href=\"".wl($ID,array('fn[edit]['.hsc($user).']' => 1, + ptln(" <td><a href=\"".wl($ID,array('fn[edit]['.$user.']' => 1, 'do' => 'admin', 'page' => 'usermanager', 'sectok' => getSecurityToken())). @@ -356,7 +356,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // save current $user, we need this to access details if the name is changed if ($user) - ptln(" <input type=\"hidden\" name=\"userid_old\" value=\"".$user."\" />",$indent); + ptln(" <input type=\"hidden\" name=\"userid_old\" value=\"".hsc($user)."\" />",$indent); $this->_htmlFilterSettings($indent+10); @@ -401,6 +401,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $fieldtype = 'text'; $autocomp = ''; } + $value = hsc($value); echo "<tr $class>"; echo "<td><label for=\"$id\" >$label: </label></td>"; -- GitLab From 8599a179b08d4cdcf1c8895bacde82aad9df101f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 18 Mar 2015 22:43:45 +0100 Subject: [PATCH 060/440] corrupted the gz test file more it seems that different zlib versions behave different with corrupted files. Some return false, some return whatever they still can read from the file. the file now should no longer be readable by any version. --- _test/tests/inc/io_readfile/corrupt.txt.gz | Bin 31 -> 31 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/_test/tests/inc/io_readfile/corrupt.txt.gz b/_test/tests/inc/io_readfile/corrupt.txt.gz index f7f5d3397f2e370afae7fda0d33a838b93a6b155..9d7666f47b76cc1075cbf80bbe597751af3ccf7e 100644 GIT binary patch literal 31 ncmb2|=BRjcnlqGvnY+T{=~FIGUA>1-nHWx2O#R5sz`y_ix8@5X literal 31 ncmb2|=3sbpnlqGvnY+T{=~FIGUA>1-nHWx2O#R5sz`y_is>TYc -- GitLab From e738f3a729522b648b5148e3f3e0bbf15165b9a9 Mon Sep 17 00:00:00 2001 From: chang-zhao <chang-zhao@users.noreply.github.com> Date: Sat, 21 Mar 2015 15:57:33 +0300 Subject: [PATCH 061/440] Update toolbar.js When the picker button is near the border of the screen, then an opening panel of picker buttons can go over the screen edge. That's not convenient. So we should add a check in a `function pickerToggle()` and shift picker buttons position if needed. --- lib/scripts/toolbar.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/scripts/toolbar.js b/lib/scripts/toolbar.js index 1bb02b406..a5f831ade 100644 --- a/lib/scripts/toolbar.js +++ b/lib/scripts/toolbar.js @@ -243,7 +243,20 @@ function pickerToggle(pickerid,$btn){ } else { $picker.addClass('a11y').attr('aria-hidden', 'true'); } - $picker.offset({left: pos.left+3, top: pos.top+$btn[0].offsetHeight+3}); + var picker_left = pos.left + 3, + picker_width = $picker.width(), + window_width = jQuery(window).width(); + if (picker_width > 300) { + $picker.css("max-width", "300"); + picker_width = 300; + } + if ((picker_left + picker_width + 40) > window_width) { + picker_left = window_width - picker_width - 40; + } + if (picker_left < 0) { + picker_left = 0; + } + $picker.offset({left: picker_left, top: pos.top+$btn[0].offsetHeight+3}); } /** -- GitLab From 4d1e8edfed1d8b8025e900215ae05d0633b2a27f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=B8=E0=A4=B0=E0=A5=8B=E0=A4=9C=20=E0=A4=A2=E0=A4=95?= =?UTF-8?q?=E0=A4=BE=E0=A4=B2?= <lotusnagarkot@gmail.com> Date: Tue, 24 Mar 2015 11:15:33 +0100 Subject: [PATCH 062/440] translation update --- inc/lang/ne/adminplugins.txt | 1 + inc/lang/ne/lang.php | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 inc/lang/ne/adminplugins.txt diff --git a/inc/lang/ne/adminplugins.txt b/inc/lang/ne/adminplugins.txt new file mode 100644 index 000000000..93eff63fb --- /dev/null +++ b/inc/lang/ne/adminplugins.txt @@ -0,0 +1 @@ +===== थप पà¥à¤²à¤—िनहरू ===== \ No newline at end of file diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index d4efc89bd..88fb2a690 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -2,9 +2,10 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com> * @author Saroj Kumar Dhakal <lotusnagarkot@yahoo.com> + * @author सरोज ढकाल <lotusnagarkot@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -40,10 +41,17 @@ $lang['btn_backtomedia'] = 'मिडिया छनौटमा फर $lang['btn_subscribe'] = 'पृषà¥à¤ परिवरà¥à¤¤à¤¨ गà¥à¤°à¤¾à¤¹à¥à¤¯ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_reset'] = 'पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸'; +$lang['btn_resendpwd'] = 'नयाठपासवरà¥à¤¡ राखà¥à¤¨à¥à¤¹à¥‹à¤¸'; $lang['btn_draft'] = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_recover'] = 'पहिलेको डà¥à¤°à¤¾à¤«à¥à¤Ÿ हासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸ '; $lang['btn_draftdel'] = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ मेटाउनà¥à¤¹à¥‹à¤¸à¥ '; +$lang['btn_revert'] = 'पूरà¥à¤µà¤°à¥‚पमा फरà¥à¤•à¤¾à¤‰à¤¨à¥‡'; $lang['btn_register'] = 'दरà¥à¤¤à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; +$lang['btn_apply'] = 'लागॠगरà¥à¤¨à¥‡'; +$lang['btn_media'] = 'मेडिया वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•'; +$lang['btn_deleteuser'] = 'खाता हटाउने'; +$lang['btn_img_backto'] = 'फिरà¥à¤¤à¤¾%s'; +$lang['btn_mediaManager'] = 'मेडिया वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•à¤®à¤¾ हेरà¥à¤¨à¥‡'; $lang['loggedinas'] = 'पà¥à¤°à¤µà¥‡à¤¶ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ :'; $lang['user'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ '; $lang['pass'] = 'पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦'; @@ -55,6 +63,7 @@ $lang['fullname'] = 'पूरा नाम'; $lang['email'] = 'इमेल'; $lang['profile'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•à¥‹ पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤²'; $lang['badlogin'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¨à¤¾à¤® वा पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ गलत à¤à¤¯à¥‹ '; +$lang['badpassconfirm'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पासवरà¥à¤¡ गलत छ '; $lang['minoredit'] = 'सामानà¥à¤¯ परिवरà¥à¤¤à¤¨'; $lang['draftdate'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रà¥à¤ªà¤®à¤¾ वचत à¤à¤à¤•à¥‹'; $lang['nosecedit'] = 'यो पृषà¥à¤ यसै बखतमा परिवरà¥à¤¤à¤¨ à¤à¤¯à¥‹, खणà¥à¤¡ जानकारी अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• हà¥à¤¨ सकेन र पूरै पृषà¥à¤ लोड à¤à¤¯à¥‹ । '; @@ -72,6 +81,8 @@ $lang['profna'] = 'यो विकिले यो पà¥à¤°à¥‹ $lang['profnochange'] = 'केहि परिवरà¥à¤¤à¤¨ छैन , केहि गरà¥à¤¨à¥ छैन ।'; $lang['profnoempty'] = 'खाली नाम वा इमेल ठेगानालाई अनà¥à¤®à¤¤à¤¿ छैन ।'; $lang['profchanged'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•à¥‹ पà¥à¤°à¤«à¤¾à¤‡à¤² सफलरà¥à¤ªà¤®à¤¾ परिवरà¥à¤¤à¤¨ à¤à¤¯à¥‹ ।'; +$lang['profnodelete'] = 'यो विकिले पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¹à¤°à¥‚ हटाउन समरà¥à¤¥à¤¨ गरà¥à¤¦à¥ˆà¤¨'; +$lang['profdeleteuser'] = 'खाता मेटà¥à¤¨à¥à¤¹à¥‹à¤¸'; $lang['pwdforget'] = 'आफà¥à¤¨à¥‹ पासवरà¥à¤¡ à¤à¥à¤²à¥à¤¨à¥ à¤à¤¯à¥‹ ? नयाठहासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['resendna'] = 'यो विकिबाट पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउन समरà¥à¤¥à¤¿à¤¤ छैन ।'; $lang['resendpwd'] = 'नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउनà¥à¤¹à¥‹à¤¸à¥ '; @@ -90,6 +101,7 @@ $lang['js']['willexpire'] = 'तपाईलले यो पृषà¥à¤ $lang['js']['notsavedyet'] = 'तपाईले वचन गरà¥à¤¨à¥ नà¤à¤à¤•à¥‹ परिवरà¥à¤°à¤¨ हराउने छ। \n साचà¥à¤šà¥ˆ जारी गरà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।'; $lang['js']['keepopen'] = 'छनौटमा विनà¥à¤¡à¥‹ खà¥à¤²à¤¾ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['js']['hidedetails'] = 'जानकारी लà¥à¤•à¤¾à¤‰à¤¨à¥ होसॠ'; +$lang['js']['mediaclose'] = 'बनà¥à¤¦ गरà¥à¤¨à¥‡'; $lang['js']['nosmblinks'] = 'विनà¥à¤¡à¥‹à¤¹à¤°à¥ लिङà¥à¤• गरà¥à¤¦à¤¾ माइकà¥à¤°à¥‹ सफà¥à¤Ÿ à¤à¤•à¥à¤¸à¤ªà¥à¤²à¥‹à¤°à¤°à¤®à¤¾à¤®à¤¾à¤¤à¥à¤° काम साà¤à¤¾ हà¥à¤¨à¥à¤› । तर कपि गरà¥à¤¨ र टासà¥à¤¨ मिलà¥à¤›à¥¤ '; $lang['js']['del_confirm'] = 'साचà¥à¤šà¥ˆ छानिà¤à¤•à¤¾ वसà¥à¤¤à¥à¤¹à¤°à¥ मेटà¥à¤¨à¥‡ हो ?'; $lang['rssfailed'] = 'यो फिड लिइ आउदा गलà¥à¤¤à¤¿ à¤à¤¯à¥‹ ।'; @@ -159,7 +171,6 @@ $lang['admin_register'] = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ $lang['metaedit'] = 'मेटाडेटा समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['metasaveerr'] = 'मेटाडाटा लेखन असफल'; $lang['metasaveok'] = 'मेटाडाटा वचत à¤à¤¯à¥‹ '; -$lang['btn_img_backto'] = 'फिरà¥à¤¤à¤¾%s'; $lang['img_title'] = 'शिरà¥à¤·à¤•:'; $lang['img_caption'] = 'निमà¥à¤¨ लेख:'; $lang['img_date'] = 'मिति:'; -- GitLab From b07866dc2ca50e9cfd667c38641e1b93c0f88cd9 Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sat, 28 Mar 2015 02:16:11 +0100 Subject: [PATCH 063/440] translation update --- lib/plugins/authldap/lang/ko/settings.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/plugins/authldap/lang/ko/settings.php b/lib/plugins/authldap/lang/ko/settings.php index e663ba063..d3e93ff51 100644 --- a/lib/plugins/authldap/lang/ko/settings.php +++ b/lib/plugins/authldap/lang/ko/settings.php @@ -19,9 +19,14 @@ $lang['binddn'] = 'ìµëª… ë°”ì¸ë“œê°€ 충분하지 않으면 ì„ $lang['bindpw'] = '위 사용ìžì˜ 비밀번호'; $lang['userscope'] = 'ì‚¬ìš©ìž ê²€ìƒ‰ì— ëŒ€í•œ 검색 범위 ì œí•œ'; $lang['groupscope'] = '그룹 ê²€ìƒ‰ì— ëŒ€í•œ 검색 범위 ì œí•œ'; +$lang['userkey'] = 'ì‚¬ìš©ìž ì´ë¦„ì„ ë‚˜íƒ€ë‚´ëŠ” 특성; ì‚¬ìš©ìž í•„í„°ì— ì¼ê´€ì„±ì´ 있어야 합니다.'; $lang['groupkey'] = '(표준 AD 그룹 ëŒ€ì‹ ) ì‚¬ìš©ìž ì†ì„±ì—ì„œ 그룹 구성ì›. 예를 들어 부서나 ì „í™”ì—ì„œ 그룹'; +$lang['modPass'] = 'LDAP 비밀번호를 ë„ì¿ ìœ„í‚¤ë¥¼ 통해 바꿀 수 있습니까?'; $lang['debug'] = 'ì˜¤ë¥˜ì— ëŒ€í•œ 추가ì ì¸ ë””ë²„ê·¸ ì •ë³´ë¥¼ ë³´ì´ê¸°'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = '기본값 사용'; +$lang['referrals_o_0'] = '참조 (referral)를 따르지 ì•ŠìŒ'; +$lang['referrals_o_1'] = '참조 (referral)를 따름'; -- GitLab From 605af2f6069a04742a008b2a08a601fdd2a7505e Mon Sep 17 00:00:00 2001 From: Jaroslav Lichtblau <jlichtblau@seznam.cz> Date: Sat, 28 Mar 2015 07:36:33 +0100 Subject: [PATCH 064/440] translation update --- lib/plugins/authldap/lang/cs/settings.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php index a5aad5981..08c5c6a16 100644 --- a/lib/plugins/authldap/lang/cs/settings.php +++ b/lib/plugins/authldap/lang/cs/settings.php @@ -21,8 +21,12 @@ $lang['bindpw'] = 'Heslo uživatele výše'; $lang['userscope'] = 'Omezenà rozsahu vyhledávánà uživatele'; $lang['groupscope'] = 'Omezenà rozsahu vyhledávánà skupiny'; $lang['groupkey'] = 'Atribut Å¡lenstvà uživatele ve skupinách (namÃsto standardnÃch AD skupin), tj. skupina z oddÄ›lenà nebo telefonnà ÄÃslo'; +$lang['modPass'] = 'Může být LDAP heslo zmÄ›nÄ›no pÅ™es dokuwiki?'; $lang['debug'] = 'Zobrazit dodateÄné debugovacà informace'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'použÃt výchozÃ'; +$lang['referrals_o_0'] = 'nenásledovat odkazy'; +$lang['referrals_o_1'] = 'následovat odkazy'; -- GitLab From ecd3aee0583064e4805c3df7a94cf80495af12e9 Mon Sep 17 00:00:00 2001 From: Alejandro Nunez <nunez.alejandro@gmail.com> Date: Tue, 31 Mar 2015 03:51:09 +0200 Subject: [PATCH 065/440] translation update --- inc/lang/es/lang.php | 2 ++ lib/plugins/authldap/lang/es/settings.php | 5 +++++ lib/plugins/authmysql/lang/es/settings.php | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 865110ab9..cd81b834b 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -38,6 +38,7 @@ * @author Jonathan Hernández <me@jhalicea.com> * @author pokesakura <pokesakura@gmail.com> * @author Ãlvaro Iradier <airadier@gmail.com> + * @author Alejandro Nunez <nunez.alejandro@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -371,3 +372,4 @@ $lang['searchresult'] = 'Resultado de la búsqueda'; $lang['plainhtml'] = 'HTML sencillo'; $lang['wikimarkup'] = 'Etiquetado Wiki'; $lang['page_nonexist_rev'] = 'La página no existÃa en %s. Por tanto fue creada en <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Incapaz de evaluar el parámetro "%s".'; diff --git a/lib/plugins/authldap/lang/es/settings.php b/lib/plugins/authldap/lang/es/settings.php index 6991546d3..8e1d0b4e1 100644 --- a/lib/plugins/authldap/lang/es/settings.php +++ b/lib/plugins/authldap/lang/es/settings.php @@ -5,6 +5,7 @@ * * @author Antonio Bueno <atnbueno@gmail.com> * @author Eloy <ej.perezgomez@gmail.com> + * @author Alejandro Nunez <nunez.alejandro@gmail.com> */ $lang['server'] = 'Tu servidor LDAP. Puede ser el nombre del host (<code>localhost</code>) o una URL completa (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Servidor LDAP en caso de que no se diera la URL completa anteriormente.'; @@ -20,8 +21,12 @@ $lang['bindpw'] = 'Contraseña del usuario de arriba.'; $lang['userscope'] = 'Limitar ámbito de búsqueda para búsqueda de usuarios'; $lang['groupscope'] = 'Limitar ámbito de búsqueda para búsqueda de grupos'; $lang['groupkey'] = 'Pertenencia al grupo desde cualquier atributo de usuario (en lugar de grupos AD estándar) p.e., grupo a partir departamento o número de teléfono'; +$lang['modPass'] = 'Puede ser cambiara via dokuwiki la password LDAP?'; $lang['debug'] = 'Mostrar información adicional para depuración de errores'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'usar default'; +$lang['referrals_o_0'] = 'no seguir referencias'; +$lang['referrals_o_1'] = 'seguir referencias'; diff --git a/lib/plugins/authmysql/lang/es/settings.php b/lib/plugins/authmysql/lang/es/settings.php index b82620fc6..cda3c23f8 100644 --- a/lib/plugins/authmysql/lang/es/settings.php +++ b/lib/plugins/authmysql/lang/es/settings.php @@ -6,6 +6,7 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Eloy <ej.perezgomez@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> + * @author Alejandro Nunez <nunez.alejandro@gmail.com> */ $lang['server'] = 'Tu servidor MySQL'; $lang['user'] = 'Nombre de usuario MySQL'; @@ -32,6 +33,10 @@ $lang['getUserID'] = 'Sentencia SQL para obtener la clave primaria d $lang['delUser'] = 'Sentencia SQL para eliminar un usuario'; $lang['delUserRefs'] = 'Sentencia SQL para eliminar un usuario de todos los grupos'; $lang['updateUser'] = 'Sentencia SQL para actualizar un perfil de usuario'; +$lang['UpdateLogin'] = 'Cláusula de actualización para actualizar el login del usuario'; +$lang['UpdatePass'] = 'Cláusula de actualización para actualizar la contraseña del usuario'; +$lang['UpdateEmail'] = 'Cláusula de actualización para actualizar la dirección de correo del usuario'; +$lang['UpdateName'] = 'Cláusula de actualización para actualizar el nomblre completo del usuario'; $lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo dado'; $lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado'; $lang['debug_o_0'] = 'ninguno'; -- GitLab From fa4038c7f40f348e1335253ce6fb5600106b0233 Mon Sep 17 00:00:00 2001 From: Romulo Pereira <romuloccomp@gmail.com> Date: Tue, 31 Mar 2015 21:52:22 +0200 Subject: [PATCH 066/440] translation update --- inc/lang/pt/lang.php | 1 + lib/plugins/authldap/lang/pt/settings.php | 4 ++++ lib/plugins/extension/lang/pt/lang.php | 1 + lib/plugins/usermanager/lang/pt/lang.php | 1 + 4 files changed, 7 insertions(+) diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 5d462e198..cfb85a91c 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -12,6 +12,7 @@ * @author Murilo <muriloricci@hotmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authldap/lang/pt/settings.php b/lib/plugins/authldap/lang/pt/settings.php index b54f2a1bc..d9d1b7f11 100644 --- a/lib/plugins/authldap/lang/pt/settings.php +++ b/lib/plugins/authldap/lang/pt/settings.php @@ -5,6 +5,7 @@ * * @author André Neves <drakferion@gmail.com> * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> */ $lang['server'] = 'O seu servidor de LDAP. Ou hostname (<code>localhost</code>) ou URL qualificado completo (<code>ldap://servidor.tld:389</code>)'; $lang['port'] = 'Porta de servidor de LDAP se o URL completo não foi fornecido acima'; @@ -26,3 +27,6 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NUNCA'; $lang['deref_o_1'] = 'LDAP_DEREF_PESQUISANDO'; $lang['deref_o_2'] = 'LDAP_DEREF_BUSCANDO'; $lang['deref_o_3'] = 'LDAP_DEREF_SEMPRE'; +$lang['referrals_o_-1'] = 'usar padrão'; +$lang['referrals_o_0'] = 'não seguir as referências'; +$lang['referrals_o_1'] = 'seguir as referências'; diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php index c7b4f29c2..c9ca8d976 100644 --- a/lib/plugins/extension/lang/pt/lang.php +++ b/lib/plugins/extension/lang/pt/lang.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> */ $lang['menu'] = 'Gerenciador de Extensões'; $lang['tab_plugins'] = 'Plugins Instalados'; diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php index 43ea69e53..ee6eaf4f5 100644 --- a/lib/plugins/usermanager/lang/pt/lang.php +++ b/lib/plugins/usermanager/lang/pt/lang.php @@ -9,6 +9,7 @@ * @author André Neves <drakferion@gmail.com> * @author José Campos zecarlosdecampos@gmail.com * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> */ $lang['menu'] = 'Gestor de Perfis'; $lang['noauth'] = '(autenticação indisponÃvel)'; -- GitLab From 5b795a651d514c6889ad05abc4e58de67c7af92e Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Tue, 31 Mar 2015 21:53:01 -0400 Subject: [PATCH 067/440] Move language string to authad plugin --- lib/plugins/authad/auth.php | 2 +- lib/plugins/authad/lang/ar/lang.php | 2 ++ lib/plugins/authad/lang/bg/lang.php | 8 ++++++++ lib/plugins/authad/lang/ca/lang.php | 8 ++++++++ lib/plugins/authad/lang/cs/lang.php | 2 ++ lib/plugins/authad/lang/da/lang.php | 2 ++ lib/plugins/authad/lang/de-informal/lang.php | 8 ++++++++ lib/plugins/authad/lang/de/lang.php | 1 + lib/plugins/authad/lang/el/lang.php | 8 ++++++++ lib/plugins/authad/lang/en/lang.php | 2 ++ lib/plugins/authad/lang/eo/lang.php | 1 + lib/plugins/authad/lang/es/lang.php | 2 ++ lib/plugins/authad/lang/et/lang.php | 8 ++++++++ lib/plugins/authad/lang/eu/lang.php | 8 ++++++++ lib/plugins/authad/lang/fa/lang.php | 2 ++ lib/plugins/authad/lang/fi/lang.php | 8 ++++++++ lib/plugins/authad/lang/fr/lang.php | 2 ++ lib/plugins/authad/lang/gl/lang.php | 8 ++++++++ lib/plugins/authad/lang/he/lang.php | 8 ++++++++ lib/plugins/authad/lang/hr/lang.php | 1 + lib/plugins/authad/lang/hu/lang.php | 1 + lib/plugins/authad/lang/it/lang.php | 8 ++++++++ lib/plugins/authad/lang/ja/lang.php | 2 ++ lib/plugins/authad/lang/ka/lang.php | 8 ++++++++ lib/plugins/authad/lang/ko/lang.php | 1 + lib/plugins/authad/lang/lv/lang.php | 1 + lib/plugins/authad/lang/nl/lang.php | 2 ++ lib/plugins/authad/lang/no/lang.php | 2 ++ lib/plugins/authad/lang/pl/lang.php | 8 ++++++++ lib/plugins/authad/lang/pt-br/lang.php | 2 ++ lib/plugins/authad/lang/pt/lang.php | 2 ++ lib/plugins/authad/lang/ro/lang.php | 8 ++++++++ lib/plugins/authad/lang/ru/lang.php | 1 + lib/plugins/authad/lang/sk/lang.php | 8 ++++++++ lib/plugins/authad/lang/sl/lang.php | 8 ++++++++ lib/plugins/authad/lang/sv/lang.php | 8 ++++++++ lib/plugins/authad/lang/tr/lang.php | 8 ++++++++ lib/plugins/authad/lang/zh-tw/lang.php | 2 ++ lib/plugins/authad/lang/zh/lang.php | 1 + 39 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/authad/lang/bg/lang.php create mode 100644 lib/plugins/authad/lang/ca/lang.php create mode 100644 lib/plugins/authad/lang/de-informal/lang.php create mode 100644 lib/plugins/authad/lang/el/lang.php create mode 100644 lib/plugins/authad/lang/et/lang.php create mode 100644 lib/plugins/authad/lang/eu/lang.php create mode 100644 lib/plugins/authad/lang/fi/lang.php create mode 100644 lib/plugins/authad/lang/gl/lang.php create mode 100644 lib/plugins/authad/lang/he/lang.php create mode 100644 lib/plugins/authad/lang/it/lang.php create mode 100644 lib/plugins/authad/lang/ka/lang.php create mode 100644 lib/plugins/authad/lang/pl/lang.php create mode 100644 lib/plugins/authad/lang/ro/lang.php create mode 100644 lib/plugins/authad/lang/sk/lang.php create mode 100644 lib/plugins/authad/lang/sl/lang.php create mode 100644 lib/plugins/authad/lang/sv/lang.php create mode 100644 lib/plugins/authad/lang/tr/lang.php diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 400a5efee..40c56ef09 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -258,7 +258,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { ($info['expiresin'] <= $this->conf['expirywarn']) && !$this->msgshown ) { - $msg = sprintf($lang['authpwdexpire'], $info['expiresin']); + $msg = sprintf($this->getLang('authpwdexpire'), $info['expiresin']); if($this->canDo('modPass')) { $url = wl($ID, array('do'=> 'profile')); $msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>'; diff --git a/lib/plugins/authad/lang/ar/lang.php b/lib/plugins/authad/lang/ar/lang.php index e0ba7681a..173c80f0c 100644 --- a/lib/plugins/authad/lang/ar/lang.php +++ b/lib/plugins/authad/lang/ar/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamed Belhsine <b.mohamed897@gmail.com> + * @author Usama Akkad <uahello@gmail.com> */ $lang['domain'] = 'مجال تسجيل الدخول'; +$lang['authpwdexpire'] = 'ستنتهي صلاØية كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.'; diff --git a/lib/plugins/authad/lang/bg/lang.php b/lib/plugins/authad/lang/bg/lang.php new file mode 100644 index 000000000..3de5df65f --- /dev/null +++ b/lib/plugins/authad/lang/bg/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече Ñлед %d дни. Препоръчително е да Ñ Ñмените по-Ñкоро.'; diff --git a/lib/plugins/authad/lang/ca/lang.php b/lib/plugins/authad/lang/ca/lang.php new file mode 100644 index 000000000..abe25a5f2 --- /dev/null +++ b/lib/plugins/authad/lang/ca/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Daniel López Prat <daniel@6temes.cat> + */ +$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'haurÃeu de canviar aviat.'; diff --git a/lib/plugins/authad/lang/cs/lang.php b/lib/plugins/authad/lang/cs/lang.php index 8119d208a..ad141153f 100644 --- a/lib/plugins/authad/lang/cs/lang.php +++ b/lib/plugins/authad/lang/cs/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Miroslav Svoboda <msv@email.cz> */ $lang['domain'] = 'PÅ™ihlaÅ¡ovacà doména'; +$lang['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vyprÅ¡Ã za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; diff --git a/lib/plugins/authad/lang/da/lang.php b/lib/plugins/authad/lang/da/lang.php index 8fc7db775..3d0730216 100644 --- a/lib/plugins/authad/lang/da/lang.php +++ b/lib/plugins/authad/lang/da/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jacob Palm <mail@jacobpalm.dk> + * @author Mikael Lyngvig <mikael@lyngvig.org> */ $lang['domain'] = 'Logondomæne'; +$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.'; diff --git a/lib/plugins/authad/lang/de-informal/lang.php b/lib/plugins/authad/lang/de-informal/lang.php new file mode 100644 index 000000000..e9361d5fe --- /dev/null +++ b/lib/plugins/authad/lang/de-informal/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Andreas Gohr <gohr@cosmocode.de> + */ +$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.'; diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php index eea511d1b..11f52a414 100644 --- a/lib/plugins/authad/lang/de/lang.php +++ b/lib/plugins/authad/lang/de/lang.php @@ -6,3 +6,4 @@ * @author Andreas Gohr <gohr@cosmocode.de> */ $lang['domain'] = 'Anmelde-Domäne'; +$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; diff --git a/lib/plugins/authad/lang/el/lang.php b/lib/plugins/authad/lang/el/lang.php new file mode 100644 index 000000000..39e3283cc --- /dev/null +++ b/lib/plugins/authad/lang/el/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com + */ +$lang['authpwdexpire'] = 'Ο κωδικός Ï€Ïόσβασης θα λήξει σε %d ημÎÏες. Î Ïοτείνουμε να τον αλλάξετε σÏντομα.'; diff --git a/lib/plugins/authad/lang/en/lang.php b/lib/plugins/authad/lang/en/lang.php index e2967d662..4f96a71fd 100644 --- a/lib/plugins/authad/lang/en/lang.php +++ b/lib/plugins/authad/lang/en/lang.php @@ -1,10 +1,12 @@ <?php /** * English language file for addomain plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Andreas Gohr <gohr@cosmocode.de> */ $lang['domain'] = 'Logon Domain'; +$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; //Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authad/lang/eo/lang.php b/lib/plugins/authad/lang/eo/lang.php index be4abc123..e738323da 100644 --- a/lib/plugins/authad/lang/eo/lang.php +++ b/lib/plugins/authad/lang/eo/lang.php @@ -6,3 +6,4 @@ * @author Robert Bogenschneider <bogi@uea.org> */ $lang['domain'] = 'Ensaluta domajno'; +$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ÅanÄu Äin baldaÅ©.'; diff --git a/lib/plugins/authad/lang/es/lang.php b/lib/plugins/authad/lang/es/lang.php index c5b242cba..ffbff49a1 100644 --- a/lib/plugins/authad/lang/es/lang.php +++ b/lib/plugins/authad/lang/es/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Juan De La Cruz <juann.dlc@gmail.com> + * @author Gerardo Zamudio <gerardo@gerardozamudio.net> */ $lang['domain'] = 'Dominio de inicio'; +$lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; diff --git a/lib/plugins/authad/lang/et/lang.php b/lib/plugins/authad/lang/et/lang.php new file mode 100644 index 000000000..6dda19360 --- /dev/null +++ b/lib/plugins/authad/lang/et/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Janar Leas <janar.leas@eesti.ee> + */ +$lang['authpwdexpire'] = 'Sinu salasõna aegub %päeva pärast, võiksid seda peatselt muuta.'; diff --git a/lib/plugins/authad/lang/eu/lang.php b/lib/plugins/authad/lang/eu/lang.php new file mode 100644 index 000000000..454e3be34 --- /dev/null +++ b/lib/plugins/authad/lang/eu/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Zigor Astarbe <astarbe@gmail.com> + */ +$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.'; diff --git a/lib/plugins/authad/lang/fa/lang.php b/lib/plugins/authad/lang/fa/lang.php index 1ea73cfdb..646142331 100644 --- a/lib/plugins/authad/lang/fa/lang.php +++ b/lib/plugins/authad/lang/fa/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Hamid <zarrabi@sharif.edu> + * @author Milad DZand <M.DastanZand@gmail.com> */ $lang['domain'] = 'دامنه‌ی ورود'; +$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; diff --git a/lib/plugins/authad/lang/fi/lang.php b/lib/plugins/authad/lang/fi/lang.php new file mode 100644 index 000000000..650d44f7a --- /dev/null +++ b/lib/plugins/authad/lang/fi/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jussi Takala <jussi.takala@live.fi> + */ + +$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.'; diff --git a/lib/plugins/authad/lang/fr/lang.php b/lib/plugins/authad/lang/fr/lang.php index 2de362e41..4999967dc 100644 --- a/lib/plugins/authad/lang/fr/lang.php +++ b/lib/plugins/authad/lang/fr/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author ggallon <gwenael.gallon@mac.com> + * @author Yannick Aure <yannick.aure@gmail.com> */ $lang['domain'] = 'Domaine de connexion'; +$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; diff --git a/lib/plugins/authad/lang/gl/lang.php b/lib/plugins/authad/lang/gl/lang.php new file mode 100644 index 000000000..b10126a88 --- /dev/null +++ b/lib/plugins/authad/lang/gl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Rodrigo Rega <rodrigorega@gmail.com> + */ +$lang['authpwdexpire'] = 'A túa contrasinal expirará en %d dÃas, deberÃas cambiala pronto.'; diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php new file mode 100644 index 000000000..21fd98aef --- /dev/null +++ b/lib/plugins/authad/lang/he/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author tomer <tomercarolldergicz@gmail.com> + */ +$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; diff --git a/lib/plugins/authad/lang/hr/lang.php b/lib/plugins/authad/lang/hr/lang.php index f750c91b5..8652c69ed 100644 --- a/lib/plugins/authad/lang/hr/lang.php +++ b/lib/plugins/authad/lang/hr/lang.php @@ -6,3 +6,4 @@ * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['domain'] = 'Domena za prijavu'; +$lang['authpwdexpire'] = 'VaÅ¡a lozinka će isteći za %d dana, trebate ju promijeniti.'; diff --git a/lib/plugins/authad/lang/hu/lang.php b/lib/plugins/authad/lang/hu/lang.php index 7bb6084b0..f5692de04 100644 --- a/lib/plugins/authad/lang/hu/lang.php +++ b/lib/plugins/authad/lang/hu/lang.php @@ -6,3 +6,4 @@ * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['domain'] = 'Bejelentkezési tartomány'; +$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.'; diff --git a/lib/plugins/authad/lang/it/lang.php b/lib/plugins/authad/lang/it/lang.php new file mode 100644 index 000000000..5f1a03cd4 --- /dev/null +++ b/lib/plugins/authad/lang/it/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Matteo Pasotti <matteo@xquiet.eu> + */ +$lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; diff --git a/lib/plugins/authad/lang/ja/lang.php b/lib/plugins/authad/lang/ja/lang.php index b40aa5da3..91c4f046a 100644 --- a/lib/plugins/authad/lang/ja/lang.php +++ b/lib/plugins/authad/lang/ja/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author PzF_X <jp_minecraft@yahoo.co.jp> + * @author Osaka <mr.osaka@gmail.com> */ $lang['domain'] = 'ãƒã‚°ã‚ªãƒ³æ™‚ã®ãƒ‰ãƒ¡ã‚¤ãƒ³'; +$lang['authpwdexpire'] = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。'; diff --git a/lib/plugins/authad/lang/ka/lang.php b/lib/plugins/authad/lang/ka/lang.php new file mode 100644 index 000000000..ab0c86902 --- /dev/null +++ b/lib/plugins/authad/lang/ka/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Luka Lejava <luka.lejava@gmail.com> + */ +$lang['authpwdexpire'] = 'თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ %d დღეში, მáƒáƒšáƒ” შეცვლრმáƒáƒ’იწევთ.'; diff --git a/lib/plugins/authad/lang/ko/lang.php b/lib/plugins/authad/lang/ko/lang.php index 5a2416b2c..c119fabc5 100644 --- a/lib/plugins/authad/lang/ko/lang.php +++ b/lib/plugins/authad/lang/ko/lang.php @@ -6,3 +6,4 @@ * @author Myeongjin <aranet100@gmail.com> */ $lang['domain'] = '로그온 ë„ë©”ì¸'; +$lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 곧 바꿔야 합니다.'; diff --git a/lib/plugins/authad/lang/lv/lang.php b/lib/plugins/authad/lang/lv/lang.php index 74becf756..a208ac949 100644 --- a/lib/plugins/authad/lang/lv/lang.php +++ b/lib/plugins/authad/lang/lv/lang.php @@ -6,3 +6,4 @@ * @author Aivars MiÅ¡ka <allefm@gmail.com> */ $lang['domain'] = 'IežurnÄlÄ“Å¡anÄs domÄ“ns'; +$lang['authpwdexpire'] = 'Tavai parolei pÄ“c %d dienÄm biegsies termiņš, tÄ drÄ«zumÄ jÄnomaina.'; diff --git a/lib/plugins/authad/lang/nl/lang.php b/lib/plugins/authad/lang/nl/lang.php index ea8419069..bd241a0a9 100644 --- a/lib/plugins/authad/lang/nl/lang.php +++ b/lib/plugins/authad/lang/nl/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Rene <wllywlnt@yahoo.com> + * @author Dion Nicolaas <dion@nicolaas.net> */ $lang['domain'] = 'Inlog Domein'; +$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; diff --git a/lib/plugins/authad/lang/no/lang.php b/lib/plugins/authad/lang/no/lang.php index a1c9c7e8a..f8dbb0b08 100644 --- a/lib/plugins/authad/lang/no/lang.php +++ b/lib/plugins/authad/lang/no/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Patrick <spill.p@hotmail.com> + * @author Thomas Juberg <Thomas.Juberg@Gmail.com> */ $lang['domain'] = 'LoggpÃ¥-domene'; +$lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; diff --git a/lib/plugins/authad/lang/pl/lang.php b/lib/plugins/authad/lang/pl/lang.php new file mode 100644 index 000000000..645b46afa --- /dev/null +++ b/lib/plugins/authad/lang/pl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Aoi Karasu <aoikarasu@gmail.com> + */ +$lang['authpwdexpire'] = 'Twoje hasÅ‚o wygaÅ›nie za %d dni. Należy je zmienić w krótkim czasie.'; diff --git a/lib/plugins/authad/lang/pt-br/lang.php b/lib/plugins/authad/lang/pt-br/lang.php index 5fa963d4e..9dc731b05 100644 --- a/lib/plugins/authad/lang/pt-br/lang.php +++ b/lib/plugins/authad/lang/pt-br/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Felipe Castro <fefcas@gmail.com> + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> */ $lang['domain'] = 'DomÃnio de "Logon"'; +$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; diff --git a/lib/plugins/authad/lang/pt/lang.php b/lib/plugins/authad/lang/pt/lang.php index f307bc901..919534231 100644 --- a/lib/plugins/authad/lang/pt/lang.php +++ b/lib/plugins/authad/lang/pt/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Paulo Silva <paulotsilva@yahoo.com> + * @author André Neves <drakferion@gmail.com> */ $lang['domain'] = 'DomÃnio de InÃcio de Sessão'; +$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; diff --git a/lib/plugins/authad/lang/ro/lang.php b/lib/plugins/authad/lang/ro/lang.php new file mode 100644 index 000000000..28a0e1e64 --- /dev/null +++ b/lib/plugins/authad/lang/ro/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Razvan Deaconescu <razvan.deaconescu@cs.pub.ro> + */ +$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.'; diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php index 6f3c03e39..6a3f6e995 100644 --- a/lib/plugins/authad/lang/ru/lang.php +++ b/lib/plugins/authad/lang/ru/lang.php @@ -6,3 +6,4 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['domain'] = 'Домен'; +$lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; diff --git a/lib/plugins/authad/lang/sk/lang.php b/lib/plugins/authad/lang/sk/lang.php new file mode 100644 index 000000000..cb0698f46 --- /dev/null +++ b/lib/plugins/authad/lang/sk/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['authpwdexpire'] = 'PlatnosÅ¥ hesla vyprÅ¡Ã za %d dnÃ, mali by ste ho zmeniÅ¥ Äo najskôr.'; diff --git a/lib/plugins/authad/lang/sl/lang.php b/lib/plugins/authad/lang/sl/lang.php new file mode 100644 index 000000000..dc7b3567a --- /dev/null +++ b/lib/plugins/authad/lang/sl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author matej <mateju@svn.gnome.org> + */ +$lang['authpwdexpire'] = 'Geslo bo poteklo v %d dneh. PriporoÄljivo ga je zamenjati.'; diff --git a/lib/plugins/authad/lang/sv/lang.php b/lib/plugins/authad/lang/sv/lang.php new file mode 100644 index 000000000..f253ae7fe --- /dev/null +++ b/lib/plugins/authad/lang/sv/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Smorkster Andersson smorkster@gmail.com + */ +$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.'; diff --git a/lib/plugins/authad/lang/tr/lang.php b/lib/plugins/authad/lang/tr/lang.php new file mode 100644 index 000000000..2336e0f0c --- /dev/null +++ b/lib/plugins/authad/lang/tr/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author farukerdemoncel@gmail.com + */ +$lang['authpwdexpire'] = 'Åžifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda deÄŸiÅŸtirmelisiniz.'; diff --git a/lib/plugins/authad/lang/zh-tw/lang.php b/lib/plugins/authad/lang/zh-tw/lang.php index 6ad0947a2..b2ce48535 100644 --- a/lib/plugins/authad/lang/zh-tw/lang.php +++ b/lib/plugins/authad/lang/zh-tw/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author June-Hao Hou <junehao@gmail.com> + * @author syaoranhinata@gmail.com */ $lang['domain'] = '登入網域'; +$lang['authpwdexpire'] = '您的密碼將在 %d 天內到期,請馬上更æ›æ–°å¯†ç¢¼ã€‚'; diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php index 2a05aa168..4f3794999 100644 --- a/lib/plugins/authad/lang/zh/lang.php +++ b/lib/plugins/authad/lang/zh/lang.php @@ -6,3 +6,4 @@ * @author lainme <lainme993@gmail.com> */ $lang['domain'] = '登录域'; +$lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; -- GitLab From f8095446e4d8d2bca535087d6e9dbcd20106d21d Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Wed, 1 Apr 2015 19:48:03 +0100 Subject: [PATCH 068/440] add more plugin groups to authplain test --- lib/plugins/authplain/_test/escaping.test.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/authplain/_test/escaping.test.php b/lib/plugins/authplain/_test/escaping.test.php index e1eade8d4..7139aa99b 100644 --- a/lib/plugins/authplain/_test/escaping.test.php +++ b/lib/plugins/authplain/_test/escaping.test.php @@ -9,7 +9,9 @@ * authplain won't get unexpectedly surprised.) * * @group plugin_authplain + * @group auth_plugins * @group plugins + * @group bundled_plugins */ class helper_plugin_authplain_escaping_test extends DokuWikiTest { -- GitLab From 0bfc5a9124c0a505f64434061076c8da4d89d186 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Wed, 1 Apr 2015 19:48:26 +0100 Subject: [PATCH 069/440] add plugin groups to config plugin test --- lib/plugins/config/_test/configuration.test.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php index b808ad505..6e9eb0cc6 100644 --- a/lib/plugins/config/_test/configuration.test.php +++ b/lib/plugins/config/_test/configuration.test.php @@ -1,4 +1,10 @@ <?php +/** + * @group plugin_config + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ class plugin_config_configuration_test extends DokuWikiTest { -- GitLab From 247faa0e1e35a1aea8f23606e74a3d667333ae6b Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 3 Apr 2015 21:56:27 -0400 Subject: [PATCH 070/440] Remove unused language strings --- inc/lang/af/lang.php | 2 -- inc/lang/ar/lang.php | 3 --- inc/lang/az/lang.php | 3 --- inc/lang/bg/lang.php | 3 --- inc/lang/bn/lang.php | 2 -- inc/lang/ca-valencia/lang.php | 3 --- inc/lang/ca/lang.php | 3 --- inc/lang/cs/lang.php | 3 --- inc/lang/da/lang.php | 3 --- inc/lang/de-informal/lang.php | 3 --- inc/lang/de/lang.php | 3 --- inc/lang/el/lang.php | 3 --- inc/lang/en/lang.php | 4 ---- inc/lang/eo/lang.php | 3 --- inc/lang/es/lang.php | 3 --- inc/lang/et/lang.php | 3 --- inc/lang/eu/lang.php | 3 --- inc/lang/fa/lang.php | 3 --- inc/lang/fi/lang.php | 3 --- inc/lang/fo/lang.php | 3 --- inc/lang/fr/lang.php | 3 --- inc/lang/gl/lang.php | 3 --- inc/lang/he/lang.php | 3 --- inc/lang/hi/lang.php | 2 -- inc/lang/hr/lang.php | 3 --- inc/lang/hu/lang.php | 3 --- inc/lang/ia/lang.php | 3 --- inc/lang/id-ni/lang.php | 1 - inc/lang/id/lang.php | 3 --- inc/lang/is/lang.php | 3 --- inc/lang/it/lang.php | 3 --- inc/lang/ja/lang.php | 3 --- inc/lang/ka/lang.php | 3 --- inc/lang/kk/lang.php | 1 - inc/lang/km/lang.php | 3 --- inc/lang/ko/lang.php | 3 --- inc/lang/ku/lang.php | 4 ---- inc/lang/la/lang.php | 3 --- inc/lang/lb/lang.php | 3 --- inc/lang/lt/lang.php | 3 --- inc/lang/lv/lang.php | 3 --- inc/lang/mg/lang.php | 3 --- inc/lang/mk/lang.php | 3 --- inc/lang/mr/lang.php | 3 --- inc/lang/ms/lang.php | 2 -- inc/lang/ne/lang.php | 3 --- inc/lang/nl/lang.php | 3 --- inc/lang/no/lang.php | 3 --- inc/lang/pl/lang.php | 3 --- inc/lang/pt-br/lang.php | 3 --- inc/lang/pt/lang.php | 3 --- inc/lang/ro/lang.php | 3 --- inc/lang/ru/lang.php | 3 --- inc/lang/sk/lang.php | 3 --- inc/lang/sl/lang.php | 3 --- inc/lang/sq/lang.php | 3 --- inc/lang/sr/lang.php | 3 --- inc/lang/sv/lang.php | 3 --- inc/lang/th/lang.php | 3 --- inc/lang/tr/lang.php | 3 --- inc/lang/uk/lang.php | 3 --- inc/lang/vi/lang.php | 1 - inc/lang/zh-tw/lang.php | 3 --- inc/lang/zh/lang.php | 3 --- 64 files changed, 184 deletions(-) diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php index 70672fbdd..f71964719 100644 --- a/inc/lang/af/lang.php +++ b/inc/lang/af/lang.php @@ -44,7 +44,6 @@ $lang['profnoempty'] = 'Jy moet \'n name en a e-posadres in sit'; $lang['resendpwdmissing'] = 'Jammer, jy moet ales in fil'; $lang['resendpwdconfirm'] = '\'n Bevestigingpos is gestuur na die gekose e-posadres.'; $lang['resendpwdsuccess'] = 'Jou nuive wagwoord was deur e-pos gesteur'; -$lang['fileupload'] = 'Laai lêer'; $lang['uploadsucc'] = 'Laai suksesvol'; $lang['uploadfail'] = 'Laai fout'; $lang['js']['hidedetails'] = 'Steek weg'; @@ -62,7 +61,6 @@ $lang['qb_link'] = 'Interne skakel'; $lang['qb_extlink'] = 'Eksterne skakel'; $lang['qb_hr'] = 'Horisontale streep'; $lang['qb_sig'] = 'Handtekening met datum'; -$lang['admin_register'] = 'Skep gerus \'n rekening'; $lang['btn_img_backto'] = 'Terug na %s'; $lang['img_date'] = 'Datem:'; $lang['img_camera'] = 'Camera:'; diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 50984e630..52e9bc5cf 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Øدّث'; $lang['btn_delete'] = 'اØØ°Ù'; $lang['btn_back'] = 'ارجع'; $lang['btn_backlink'] = 'ارتباطات'; -$lang['btn_backtomedia'] = 'ارجع إلى اختيار مل٠الوسائط'; $lang['btn_subscribe'] = 'ادر الاشتراكات'; $lang['btn_profile'] = 'Øدث المل٠الشخصي'; $lang['btn_reset'] = 'صÙّر'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'أكتب Ùوق الملÙات الموجود $lang['rssfailed'] = 'خطأ ما Øدث أثناء جلب مل٠التغذية:'; $lang['nothingfound'] = 'لا يوجد شيء'; $lang['mediaselect'] = 'ملÙات الوسائط'; -$lang['fileupload'] = 'تØميل مل٠وسائط'; $lang['uploadsucc'] = 'تم الرÙع بنجاØ'; $lang['uploadfail'] = 'Ùشل الرÙع، ربما خطأ تراخيص؟'; $lang['uploadwrong'] = 'الرÙع ممنوع، نوع المل٠مرÙوض!'; @@ -245,7 +243,6 @@ $lang['qb_sig'] = 'أدرج التوقيع'; $lang['qb_smileys'] = 'الإبتسامات'; $lang['qb_chars'] = 'Ù…Øار٠خاصة'; $lang['upperns'] = 'انتقل للنطاق الأب'; -$lang['admin_register'] = 'أض٠مستخدما جديدا'; $lang['metaedit'] = 'تØرير البيانات الشمولية '; $lang['metasaveerr'] = 'Ùشلت كتابة البيانات الشمولية'; $lang['metasaveok'] = 'ØÙÙظت البيانات الشمولية'; diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php index bcec31dae..26b177ee6 100644 --- a/inc/lang/az/lang.php +++ b/inc/lang/az/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'YenilÉ™'; $lang['btn_delete'] = 'Sil'; $lang['btn_back'] = 'Geri'; $lang['btn_backlink'] = 'Bura olan link-lÉ™r'; -$lang['btn_backtomedia'] = 'media-fayl seçiminÉ™ qayıt'; $lang['btn_subscribe'] = 'AbunÉ™ ol (bütün dÉ™yiÅŸiklÉ™r)'; $lang['btn_profile'] = 'Profil'; $lang['btn_reset'] = 'BoÅŸalt'; @@ -92,7 +91,6 @@ $lang['js']['willexpire'] = 'Sizin bu sÉ™hifÉ™dÉ™ dÉ™yiÅŸik etmÉ™k ü $lang['rssfailed'] = 'AÅŸağıda göstÉ™rilmiÅŸ xÉ™bÉ™r lentini É™ldÉ™ edÉ™n zaman xÉ™ta baÅŸ verdi: '; $lang['nothingfound'] = 'HeçnÉ™ tapılmadı.'; $lang['mediaselect'] = 'Mediya-faylın seçilmÉ™si'; -$lang['fileupload'] = 'Mediya-faylın serverÉ™ yüklÉ™nmÉ™si'; $lang['uploadsucc'] = 'YüklÉ™nmÉ™ uÄŸur ilÉ™ baÅŸa çatdı'; $lang['uploadfail'] = 'YüklÉ™nmÉ™ zamanı xÉ™ta baÅŸ veri. BÉ™lkÉ™ giriÅŸ haqları ilÉ™ problem var?'; $lang['uploadwrong'] = 'YuklÉ™nmÉ™yÉ™ qadaÄŸa qoyuldu. BelÉ™ növlu faylları serverÉ™ yüklÉ™mÉ™k olmaz. '; @@ -169,7 +167,6 @@ $lang['qb_sig'] = 'Ä°mza at'; $lang['qb_smileys'] = 'Smayllar'; $lang['qb_chars'] = 'Xüsusi simvollar'; $lang['upperns'] = 'Ana namespace-É™ keç'; -$lang['admin_register'] = 'Ä°stifadəçi É™lavÉ™ et'; $lang['metaedit'] = 'Meta-mÉ™lumatlarda düzÉ™liÅŸ et'; $lang['metasaveerr'] = 'Meta-mÉ™lumatları yazan zamanı xÉ™ta'; $lang['metasaveok'] = 'Meta-mÉ™lumatlar yadda saxlandı'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index cfacd09aa..1b10f2d10 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Ðктуализиране'; $lang['btn_delete'] = 'Изтриване'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'Какво Ñочи наÑам'; -$lang['btn_backtomedia'] = 'Ðазад към избора на файл'; $lang['btn_subscribe'] = 'Ðбонаменти'; $lang['btn_profile'] = 'Профил'; $lang['btn_reset'] = 'ИзчиÑтване'; @@ -147,7 +146,6 @@ $lang['js']['media_overwrt'] = 'Презапиши ÑъщеÑтвуващит $lang['rssfailed'] = 'Възникна грешка при получаването на емиÑиÑта: '; $lang['nothingfound'] = 'Ðищо не е открито.'; $lang['mediaselect'] = 'Файлове'; -$lang['fileupload'] = 'Качване на файлове'; $lang['uploadsucc'] = 'Качването е уÑпешно'; $lang['uploadfail'] = 'Качването Ñе провали. Може би поради грешни права?'; $lang['uploadwrong'] = 'Качването е отказано. Файлово разширение е забранено!'; @@ -233,7 +231,6 @@ $lang['qb_sig'] = 'Вмъкване на подпиÑ'; $lang['qb_smileys'] = 'УÑмивчици'; $lang['qb_chars'] = 'Специални знаци'; $lang['upperns'] = 'към майчиното именно проÑтранÑтво'; -$lang['admin_register'] = 'ДобавÑне на нов потребител'; $lang['metaedit'] = 'Редактиране на метаданни'; $lang['metasaveerr'] = 'ЗапиÑването на метаданните Ñе провали'; $lang['metasaveok'] = 'Метаданните Ñа запазени уÑпешно'; diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index 0995bc478..3550a2336 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'আধà§à¦¨à¦¿à¦• করা'; $lang['btn_delete'] = 'মà§à¦›à§‡ ফেলা'; $lang['btn_back'] = 'পিছনে'; $lang['btn_backlink'] = 'বà§à¦¯à¦¾à¦•à¦²à¦¿à¦™à§à¦•à¦—à§à¦²à¦¿'; -$lang['btn_backtomedia'] = 'পিছনে Mediafile নিরà§à¦¬à¦¾à¦šà¦¨à§‡ যান'; $lang['btn_subscribe'] = 'সাবসà§à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ পরিচালনা করà§à¦¨'; $lang['btn_profile'] = 'পà§à¦°à§‹à¦«à¦¾à¦‡à¦² আপডেট করà§à¦¨'; $lang['btn_reset'] = 'রিসেট করà§à¦¨'; @@ -148,7 +147,6 @@ $lang['js']['media_overwrt'] = 'বরà§à¦¤à¦®à¦¾à¦¨ ফাইল ওà¦à¦¾ $lang['rssfailed'] = 'ফিডটি জোগাড় করতে গিয়ে à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ ঘটেছে:'; $lang['nothingfound'] = 'কিছৠপাওয়া যায়নি।'; $lang['mediaselect'] = 'মিডিয়া ফাইল'; -$lang['fileupload'] = 'মিডিয়া ফাইল আপলোড'; $lang['uploadsucc'] = 'আপলোড সফল'; $lang['uploadfail'] = 'আপলোড বà§à¦¯à¦°à§à¦¥à¥¤ অনà§à¦®à¦¤à¦¿ জনিত তà§à¦°à§à¦Ÿà¦¿ কী?'; $lang['uploadwrong'] = 'আপলোড পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤à¥¤ à¦à¦‡ ফাইল à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ অননà§à¦®à§‹à¦¦à¦¿à¦¤à¥¤'; diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index 3a4e30923..862ed2886 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -36,7 +36,6 @@ $lang['btn_update'] = 'Actualisar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Arrere'; $lang['btn_backlink'] = 'VÃnculs remitents'; -$lang['btn_backtomedia'] = 'Tornar a la selecció d\'archius de mijos'; $lang['btn_subscribe'] = 'Subscriure\'s a la pà gina'; $lang['btn_profile'] = 'Actualisar perfil'; $lang['btn_reset'] = 'Reiniciar'; @@ -94,7 +93,6 @@ $lang['js']['notsavedyet'] = 'Els canvis no guardats es perdran.\n¿Segur qu $lang['rssfailed'] = 'Ha ocorregut un erro al solicitar este canal: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Archius de mijos'; -$lang['fileupload'] = 'Enviar archius de mijos'; $lang['uploadsucc'] = 'Enviament correcte'; $lang['uploadfail'] = 'Enviament fallit. ¿Potser no tinga els permissos necessaris?'; $lang['uploadwrong'] = 'Enviament denegat. ¡Esta extensió d\'archiu està prohibida!'; @@ -171,7 +169,6 @@ $lang['qb_sig'] = 'Afegir firma'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Carà cters especials'; $lang['upperns'] = 'anar a l\'espai de noms superior'; -$lang['admin_register'] = 'Afegir nou usuari'; $lang['metaedit'] = 'Editar meta-senyes'; $lang['metasaveerr'] = 'Erro escrivint meta-senyes'; $lang['metasaveok'] = 'Meta-senyes guardades'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 31c16ee23..df5a3c92b 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'Actualitza'; $lang['btn_delete'] = 'Suprimeix'; $lang['btn_back'] = 'Enrere'; $lang['btn_backlink'] = 'Què hi enllaça'; -$lang['btn_backtomedia'] = 'Torna a la selecció de fitxers'; $lang['btn_subscribe'] = 'Subscripció a canvis d\'aquesta pà gina'; $lang['btn_profile'] = 'Actualització del perfil'; $lang['btn_reset'] = 'Reinicia'; @@ -140,7 +139,6 @@ $lang['js']['media_overwrt'] = 'Sobreescriu els arxius existents'; $lang['rssfailed'] = 'S\'ha produït un error en recollir aquesta alimentació: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Selecció de fitxers'; -$lang['fileupload'] = 'Cà rrega de fitxers'; $lang['uploadsucc'] = 'S\'ha penjat el fitxer'; $lang['uploadfail'] = 'No es pot penjar el fitxer. Potser no teniu prou permisos?'; $lang['uploadwrong'] = 'No es pot penjar el fitxer. Aquesta extensió està prohibida.'; @@ -225,7 +223,6 @@ $lang['qb_sig'] = 'Insereix signatura'; $lang['qb_smileys'] = 'Emoticones'; $lang['qb_chars'] = 'Carà cters especials'; $lang['upperns'] = 'Salta a l\'espai superior'; -$lang['admin_register'] = 'Afegeix nou usuari'; $lang['metaedit'] = 'Edita metadades'; $lang['metasaveerr'] = 'No s\'han pogut escriure les metadades'; $lang['metasaveok'] = 'S\'han desat les metadades'; diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index 1dd4def5a..ffd81eada 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -50,7 +50,6 @@ $lang['btn_update'] = 'Aktualizovat'; $lang['btn_delete'] = 'Vymazat'; $lang['btn_back'] = 'ZpÄ›t'; $lang['btn_backlink'] = 'ZpÄ›tné odkazy'; -$lang['btn_backtomedia'] = 'ZpÄ›t do VýbÄ›ru dokumentu'; $lang['btn_subscribe'] = 'OdebÃrat e-mailem zmÄ›ny stránky'; $lang['btn_profile'] = 'Upravit profil'; $lang['btn_reset'] = 'Reset'; @@ -163,7 +162,6 @@ $lang['js']['media_overwrt'] = 'PÅ™epsat existujÃcà soubory'; $lang['rssfailed'] = 'Nastala chyba pÅ™i vytvářenà tohoto RSS: '; $lang['nothingfound'] = 'Nic nenalezeno.'; $lang['mediaselect'] = 'VýbÄ›r dokumentu'; -$lang['fileupload'] = 'NaÄtenà dokumentu'; $lang['uploadsucc'] = 'PÅ™enos probÄ›hl v pořádku'; $lang['uploadfail'] = 'Chyba pÅ™i naÄÃtánÃ. Možná kvůli Å¡patnÄ› nastaveným právům?'; $lang['uploadwrong'] = 'NaÄtenà souboru s takovouto pÅ™Ãponou nenà dovoleno.'; @@ -254,7 +252,6 @@ $lang['qb_sig'] = 'Vložit podpis'; $lang['qb_smileys'] = 'Emotikony'; $lang['qb_chars'] = 'Speciálnà znaky'; $lang['upperns'] = 'skoÄit do nadÅ™azeného jmenného prostoru'; -$lang['admin_register'] = 'PÅ™idat nového uživatele'; $lang['metaedit'] = 'Upravit Metadata'; $lang['metasaveerr'] = 'Chyba pÅ™i zápisu metadat'; $lang['metasaveok'] = 'Metadata uložena'; diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index e7c597f2b..3b344ea3b 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -51,7 +51,6 @@ $lang['btn_update'] = 'Opdatér'; $lang['btn_delete'] = 'Slet'; $lang['btn_back'] = 'Tilbage'; $lang['btn_backlink'] = 'Henvisninger bagud'; -$lang['btn_backtomedia'] = 'Tilbage til valg af mediefil'; $lang['btn_subscribe'] = 'Abonnér pÃ¥ ændringer'; $lang['btn_profile'] = 'Opdatér profil'; $lang['btn_reset'] = 'Nulstil'; @@ -163,7 +162,6 @@ $lang['js']['media_overwrt'] = 'Overskriv eksisterende filer'; $lang['rssfailed'] = 'Der opstod en fejl ved hentning af dette feed: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; -$lang['fileupload'] = 'Overfør mediefil'; $lang['uploadsucc'] = 'Overførels blev fuldført'; $lang['uploadfail'] = 'Overførslen fejlede. Der er muligvis problemer med rettighederne.'; $lang['uploadwrong'] = 'Overførslen blev afvist. Filtypen er ikke tilladt.'; @@ -254,7 +252,6 @@ $lang['qb_sig'] = 'Indsæt signatur'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Specialtegn'; $lang['upperns'] = 'GÃ¥ til overordnet navnerum'; -$lang['admin_register'] = 'Tilføj ny bruger'; $lang['metaedit'] = 'Rediger metadata'; $lang['metasaveerr'] = 'Fejl under skrivning af metadata'; $lang['metasaveok'] = 'Metadata gemt'; diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 1a1491f6b..6e1f77559 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -53,7 +53,6 @@ $lang['btn_update'] = 'Updaten'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; -$lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Aboverwaltung'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; @@ -162,7 +161,6 @@ $lang['js']['media_overwrt'] = 'Existierende Dateien überschreiben'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; @@ -248,7 +246,6 @@ $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; $lang['upperns'] = 'Gehe zum übergeordneten Namensraum'; -$lang['admin_register'] = 'Neuen Benutzer anmelden'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 2725c247a..fec0647e0 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -59,7 +59,6 @@ $lang['btn_update'] = 'Updaten'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; -$lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Aboverwaltung'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; @@ -170,7 +169,6 @@ $lang['js']['media_overwrt'] = 'Existierende Dateien überschreiben'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; @@ -261,7 +259,6 @@ $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; $lang['upperns'] = 'zum übergeordneten Namensraum springen'; -$lang['admin_register'] = 'Neuen Benutzer anmelden'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index e5371c9f3..b6ccfd617 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -43,7 +43,6 @@ $lang['btn_update'] = 'ΕνημÎÏωση'; $lang['btn_delete'] = 'Σβήσιμο'; $lang['btn_back'] = 'Πίσω'; $lang['btn_backlink'] = 'ΣÏνδεσμοι Ï€Ïος αυτή τη σελίδα'; -$lang['btn_backtomedia'] = 'ΕπιστÏοφή στην επιλογή αÏχείων'; $lang['btn_subscribe'] = 'ΕγγÏαφή σε λήψη ενημεÏώσεων σελίδας'; $lang['btn_profile'] = 'ΕπεξεÏγασία Ï€Ïοφίλ'; $lang['btn_reset'] = 'ΑκÏÏωση'; @@ -152,7 +151,6 @@ $lang['js']['media_overwrt'] = 'Αντικατάσταση υπάÏχοντω $lang['rssfailed'] = 'ΠαÏουσιάστηκε κάποιο σφάλμα κατά την ανάγνωση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… feed: '; $lang['nothingfound'] = 'Δεν βÏÎθηκαν σχετικά αποτελÎσματα.'; $lang['mediaselect'] = 'Επιλογή ΑÏχείων'; -$lang['fileupload'] = 'ΦόÏτωση αÏχείου'; $lang['uploadsucc'] = 'Επιτυχής φόÏτωση'; $lang['uploadfail'] = 'Η μεταφόÏτωση απÎτυχε. Πιθανόν αυτό να οφείλεται στις Ïυθμίσεις Ï€Ïόσβασης του αÏχείου.'; $lang['uploadwrong'] = 'Η μεταφόÏτωση δεν Îγινε δεκτή. Δεν επιτÏÎπονται αÏχεία Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… Ï„Ïπου!'; @@ -237,7 +235,6 @@ $lang['qb_sig'] = 'Î Ïοσθήκη ΥπογÏαφής'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Ειδικοί ΧαÏακτήÏες'; $lang['upperns'] = 'πήγαινε στον μητÏικό φάκελο'; -$lang['admin_register'] = 'Î Ïοσθήκη νÎου χÏήστη'; $lang['metaedit'] = 'ΤÏοποποίηση metadata'; $lang['metasaveerr'] = 'Η αποθήκευση των metadata απÎτυχε'; $lang['metasaveok'] = 'Επιτυχής αποθήκευση metadata'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index a5347e026..81d8a94bf 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -39,7 +39,6 @@ $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Delete'; $lang['btn_back'] = 'Back'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Back to Mediafile Selection'; $lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'Update Profile'; $lang['btn_reset'] = 'Reset'; @@ -159,7 +158,6 @@ $lang['rssfailed'] = 'An error occurred while fetching this feed: '; $lang['nothingfound'] = 'Nothing was found.'; $lang['mediaselect'] = 'Media Files'; -$lang['fileupload'] = 'Media File Upload'; $lang['uploadsucc'] = 'Upload successful'; $lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; $lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; @@ -256,8 +254,6 @@ $lang['qb_chars'] = 'Special Chars'; $lang['upperns'] = 'jump to parent namespace'; -$lang['admin_register'] = 'Add new user'; - $lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Writing metadata failed'; $lang['metasaveok'] = 'Metadata saved'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 0cb84a2de..c7ad4b498 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Aktualigi'; $lang['btn_delete'] = 'Forigi'; $lang['btn_back'] = 'Retroiri'; $lang['btn_backlink'] = 'Retroligoj'; -$lang['btn_backtomedia'] = 'Retroiri al elekto de dosiero'; $lang['btn_subscribe'] = 'AliÄi al paÄaj modifoj'; $lang['btn_profile'] = 'Aktualigi profilon'; $lang['btn_reset'] = 'Rekomenci'; @@ -153,7 +152,6 @@ $lang['js']['media_overwrt'] = 'Anstataûi ekzistantajn dosierojn'; $lang['rssfailed'] = 'Okazis eraro dum ricevado de la novaĵ-fluo: '; $lang['nothingfound'] = 'AnkoraÅ nenio troviÄas tie ĉi.'; $lang['mediaselect'] = 'Elekto de aÅdvidaĵa dosiero'; -$lang['fileupload'] = 'AlÅuto de aÅdvidaĵa dosiero'; $lang['uploadsucc'] = 'AlÅuto sukcesis'; $lang['uploadfail'] = 'AlÅuto malsukcesis. Ĉu eble estas problemoj pro permes-atributoj?'; $lang['uploadwrong'] = 'Rifuzita alÅuto. Tiu ĉi dosiersufikso estas malpermesata!'; @@ -244,7 +242,6 @@ $lang['qb_sig'] = 'Inkluzivi subskribon'; $lang['qb_smileys'] = 'Ridetuloj'; $lang['qb_chars'] = 'Specialaj signaĵoj'; $lang['upperns'] = 'saltu al la parenca nomspaco'; -$lang['admin_register'] = 'Aldoni novan uzanton'; $lang['metaedit'] = 'Redakti metadatumaron'; $lang['metasaveerr'] = 'La konservo de metadatumaro malsukcesis'; $lang['metasaveok'] = 'La metadatumaro konserviÄis'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index cd81b834b..a27fbd1b2 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -70,7 +70,6 @@ $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; $lang['btn_backlink'] = 'Enlaces a esta página'; -$lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia'; $lang['btn_subscribe'] = 'Suscribirse a cambios de la página'; $lang['btn_profile'] = 'Actualizar perfil'; $lang['btn_reset'] = 'Restablecer'; @@ -183,7 +182,6 @@ $lang['js']['media_overwrt'] = 'Sobreescribir ficheros exitentes'; $lang['rssfailed'] = 'Se ha producido un error mientras se leÃan los datos de este feed: '; $lang['nothingfound'] = 'No se ha encontrado nada.'; $lang['mediaselect'] = 'Archivos Multimedia'; -$lang['fileupload'] = 'Subida de archivos multimedia'; $lang['uploadsucc'] = 'El archivo se ha subido satisfactoriamente'; $lang['uploadfail'] = 'La subida del fichero ha fallado. ¿Permisos equivocados?'; $lang['uploadwrong'] = 'Subida de fichero denegada. ¡Los ficheros con esta extensión están prohibidos!'; @@ -274,7 +272,6 @@ $lang['qb_sig'] = 'Insertar firma'; $lang['qb_smileys'] = 'Sonrisas'; $lang['qb_chars'] = 'Caracteres especiales'; $lang['upperns'] = 'Saltar al espacio de nombres superior'; -$lang['admin_register'] = 'Añadir nuevo usuario'; $lang['metaedit'] = 'Editar metadatos'; $lang['metasaveerr'] = 'La escritura de los metadatos ha fallado'; $lang['metasaveok'] = 'Los metadatos han sido guardados'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index d3c510c43..7b4de11e3 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Uuenda'; $lang['btn_delete'] = 'Kustuta'; $lang['btn_back'] = 'Tagasi'; $lang['btn_backlink'] = 'Tagasilingid'; -$lang['btn_backtomedia'] = 'Tagasi faili valikusse'; $lang['btn_subscribe'] = 'Jälgi seda lehte (teated meilile)'; $lang['btn_profile'] = 'Minu info'; $lang['btn_reset'] = 'Taasta'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Asenda olemasolevad failid'; $lang['rssfailed'] = 'Sinu soovitud info ammutamisel tekkis viga: '; $lang['nothingfound'] = 'Oops, aga mitte muhvigi ei leitud.'; $lang['mediaselect'] = 'Hunnik faile'; -$lang['fileupload'] = 'Faili üleslaadimine'; $lang['uploadsucc'] = 'Ãœleslaadimine läks ootuspäraselt hästi'; $lang['uploadfail'] = 'Ãœleslaadimine läks nässu. Äkki pole Sa selleks lihtsalt piisavalt võimukas tegija?'; $lang['uploadwrong'] = 'Ei saa Sa midagi üles laadida. Oops, aga seda tüüpi faili sul lihtsalt ei lubata üles laadida'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Lisa allkiri!'; $lang['qb_smileys'] = 'Emotikonid'; $lang['qb_chars'] = 'Erisümbolid'; $lang['upperns'] = 'mine ülemisse nimeruumi'; -$lang['admin_register'] = 'Lisa kasutaja'; $lang['metaedit'] = 'Muuda lisainfot'; $lang['metasaveerr'] = 'Lisainfo salvestamine läks untsu.'; $lang['metasaveok'] = 'Lisainfo salvestatud'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index fcf45b946..73af3e70a 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Eguneratu'; $lang['btn_delete'] = 'Ezabatu'; $lang['btn_back'] = 'Atzera'; $lang['btn_backlink'] = 'Itzulera estekak'; -$lang['btn_backtomedia'] = 'Atzera Multimedia Fitxategiaren Aukeraketara'; $lang['btn_subscribe'] = 'Harpidetu Orri Aldaketetara'; $lang['btn_profile'] = 'Eguneratu Profila '; $lang['btn_reset'] = 'Aldaketak Desegin'; @@ -143,7 +142,6 @@ $lang['js']['media_overwrt'] = 'Dauden fitxategiak berridatzi'; $lang['rssfailed'] = 'Errorea gertatu da feed hau irakurtzean:'; $lang['nothingfound'] = 'Ez da ezer aurkitu.'; $lang['mediaselect'] = 'Aukeratu Multimedia fitxategia'; -$lang['fileupload'] = 'Igo Multimedia Fitxategia'; $lang['uploadsucc'] = 'Igoera arrakastatsua'; $lang['uploadfail'] = 'Igoerak huts egin du. Baimen arazoengatik agian?'; $lang['uploadwrong'] = 'Fitxategi igoera ukatua. Fitxategi-luzapen hau debekatua dago!'; @@ -229,7 +227,6 @@ $lang['qb_sig'] = 'Gehitu sinadura'; $lang['qb_smileys'] = 'Irrifartxoak'; $lang['qb_chars'] = 'Karaktere Bereziak'; $lang['upperns'] = 'Jauzi izen-espazio gurasora'; -$lang['admin_register'] = 'Erabiltzaile berria gehitu'; $lang['metaedit'] = 'Metadatua Aldatu'; $lang['metasaveerr'] = 'Metadatuaren idazketak huts egin du'; $lang['metasaveok'] = 'Metadatua gordea'; diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 25de5c92e..7a3577862 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -46,7 +46,6 @@ $lang['btn_update'] = 'به‌روزرسانی'; $lang['btn_delete'] = 'ØØ°Ù'; $lang['btn_back'] = 'عقب'; $lang['btn_backlink'] = 'پیوندهای به این صÙØÙ‡'; -$lang['btn_backtomedia'] = 'بازگشت به انتخاب Ùایل'; $lang['btn_subscribe'] = 'عضویت در تغییرات صÙØÙ‡'; $lang['btn_profile'] = 'به‌روزرسانی پروÙایل'; $lang['btn_reset'] = 'بازنشاندن'; @@ -159,7 +158,6 @@ $lang['js']['media_overwrt'] = 'جاینوشت Ùایل های موجود'; $lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; $lang['nothingfound'] = 'چیزی پیدا نشد'; $lang['mediaselect'] = 'Ùایل‌ها'; -$lang['fileupload'] = 'ارسال پرونده'; $lang['uploadsucc'] = 'ارسال با موÙقیت انجام شد'; $lang['uploadfail'] = 'خطا در ارسال'; $lang['uploadwrong'] = 'ارسال متوق٠شد. این توسعه‌ی Ùایل ممنوع می‌باشد.'; @@ -250,7 +248,6 @@ $lang['qb_sig'] = 'اÙزودن امضا'; $lang['qb_smileys'] = 'Ø´Ú©Ù„Ú©'; $lang['qb_chars'] = 'Øرو٠ویژه'; $lang['upperns'] = 'پرش به Ùضای‌نام بالا'; -$lang['admin_register'] = 'یک Øساب جدید بسازید'; $lang['metaedit'] = 'ویرایش داده‌های متا'; $lang['metasaveerr'] = 'نوشتن داده‌نما با مشکل مواجه شد'; $lang['metasaveok'] = 'داده‌نما ذخیره شد'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 9bf4aad19..1ad782e53 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Päivitä'; $lang['btn_delete'] = 'Poista'; $lang['btn_back'] = 'Takaisin'; $lang['btn_backlink'] = 'Paluulinkit'; -$lang['btn_backtomedia'] = 'Takaisin mediatiedostojen valintaan'; $lang['btn_subscribe'] = 'Tilaa muutokset'; $lang['btn_profile'] = 'Päivitä profiili'; $lang['btn_reset'] = 'Tyhjennä'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Ylikirjoita olemassa olevat tiedostot'; $lang['rssfailed'] = 'Virhe tapahtui noudettaessa tätä syötettä: '; $lang['nothingfound'] = 'Mitään ei löytynyt.'; $lang['mediaselect'] = 'Mediatiedoston valinta'; -$lang['fileupload'] = 'Mediatiedoston lähetys'; $lang['uploadsucc'] = 'Tiedoston lähetys onnistui'; $lang['uploadfail'] = 'Tiedoston lähetys epäonnistui. Syynä ehkä väärät oikeudet?'; $lang['uploadwrong'] = 'Tiedoston lähetys evätty. Tämä tiedostopääte on kielletty'; @@ -243,7 +241,6 @@ $lang['qb_sig'] = 'Lisää allekirjoitus'; $lang['qb_smileys'] = 'Hymiöt'; $lang['qb_chars'] = 'Erikoismerkit'; $lang['upperns'] = 'Hyppää edelliseen nimiavaruuteen'; -$lang['admin_register'] = 'Lisää uusi käyttäjä'; $lang['metaedit'] = 'Muokkaa metadataa'; $lang['metasaveerr'] = 'Metadatan kirjoittaminen epäonnistui'; $lang['metasaveok'] = 'Metadata tallennettu'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index 0aee76e01..f3f462272 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -36,7 +36,6 @@ $lang['btn_update'] = 'Dagfør'; $lang['btn_delete'] = 'Strika'; $lang['btn_back'] = 'Aftur'; $lang['btn_backlink'] = 'ÃvÃsingar afturúr'; -$lang['btn_backtomedia'] = 'Aftur til val av miðlafÃlu'; $lang['btn_subscribe'] = 'Tilmelda broytingar'; $lang['btn_profile'] = 'Dagføra vangamynd'; $lang['btn_reset'] = 'Nullstilla'; @@ -105,7 +104,6 @@ $lang['js']['del_confirm'] = 'Strika post(ar)?'; $lang['rssfailed'] = 'Eitt brek koma fyri tá roynt var at fáa: '; $lang['nothingfound'] = 'Leiting gav onki úrslit.'; $lang['mediaselect'] = 'Vel miðlafÃlu'; -$lang['fileupload'] = 'Legg miðla fÃlu upp'; $lang['uploadsucc'] = 'Upp legg av fÃlu var væl eydna'; $lang['uploadfail'] = 'Brek við upp legg av fÃlu. Tað er møguliga trupuleikar við rættindunum'; $lang['uploadwrong'] = 'Upp legg av fÃlu vÃst burtur. FÃluslag er ikki loyvt'; @@ -154,7 +152,6 @@ $lang['qb_media'] = 'Leggja myndir og aðrar fÃlur afturat'; $lang['qb_sig'] = 'Set inn undirskrift'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sertekn'; -$lang['admin_register'] = 'Upprætta nýggjan brúkara'; $lang['metaedit'] = 'Rætta metadáta'; $lang['metasaveerr'] = 'Brek við skriving av metadáta'; $lang['metasaveok'] = 'Metadáta goymt'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index fb3890c9e..1cc5cf468 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -67,7 +67,6 @@ $lang['btn_update'] = 'Mettre à jour'; $lang['btn_delete'] = 'Effacer'; $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens de retour'; -$lang['btn_backtomedia'] = 'Retour à la sélection du fichier média'; $lang['btn_subscribe'] = 'Gérer souscriptions'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; @@ -178,7 +177,6 @@ $lang['js']['media_overwrt'] = 'Écraser les fichiers existants'; $lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; $lang['nothingfound'] = 'Pas de réponse.'; $lang['mediaselect'] = 'Sélection de fichiers'; -$lang['fileupload'] = 'Envoi de fichier'; $lang['uploadsucc'] = 'Envoi réussi'; $lang['uploadfail'] = 'L\'envoi a échoué. Les autorisations sont-elles correctes ?'; $lang['uploadwrong'] = 'Envoi refusé. Cette extension de fichier est interdite !'; @@ -269,7 +267,6 @@ $lang['qb_sig'] = 'Insérer une signature'; $lang['qb_smileys'] = 'Émoticones'; $lang['qb_chars'] = 'Caractères spéciaux'; $lang['upperns'] = 'Aller à la catégorie parente'; -$lang['admin_register'] = 'Ajouter un nouvel utilisateur'; $lang['metaedit'] = 'Modifier les métadonnées'; $lang['metasaveerr'] = 'Erreur lors de l\'enregistrement des métadonnées'; $lang['metasaveok'] = 'Métadonnées enregistrées'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 82cbbbfab..2711e76e1 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; $lang['btn_backlink'] = 'Ligazóns con isto'; -$lang['btn_backtomedia'] = 'Volver á Selección de Arquivos-Media'; $lang['btn_subscribe'] = 'AvÃsame dos trocos na páxina'; $lang['btn_profile'] = 'Actualizar Perfil'; $lang['btn_reset'] = 'Reiniciar'; @@ -141,7 +140,6 @@ $lang['js']['media_overwrt'] = 'Sobreescribir os arquivos existentes'; $lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: '; $lang['nothingfound'] = 'Non se atopou nada.'; $lang['mediaselect'] = 'Arquivos-Media'; -$lang['fileupload'] = 'Subida de Arquivos-Media'; $lang['uploadsucc'] = 'Subida correcta'; $lang['uploadfail'] = 'Erra na subida. Pode que sexa un problema de permisos?'; $lang['uploadwrong'] = 'Subida denegada. Esta extensión de arquivo non está permitida!'; @@ -227,7 +225,6 @@ $lang['qb_sig'] = 'Inserir Sinatura'; $lang['qb_smileys'] = 'Risoños'; $lang['qb_chars'] = 'Caracteres Especiais'; $lang['upperns'] = 'choutar ao nome de espazo pai'; -$lang['admin_register'] = 'Engadir novo usuario'; $lang['metaedit'] = 'Editar Metadatos'; $lang['metasaveerr'] = 'Non se puideron escribir os metadatos'; $lang['metasaveok'] = 'Metadatos gardados'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 1b8710df9..5d72130ab 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -45,7 +45,6 @@ $lang['btn_update'] = 'עדכון'; $lang['btn_delete'] = 'מחיקה'; $lang['btn_back'] = 'חזרה'; $lang['btn_backlink'] = '×§×™×©×•×¨×™× ×œ×›×ן'; -$lang['btn_backtomedia'] = 'חזרה לבחירת קובץ מדיה'; $lang['btn_subscribe'] = 'מעקב ×חרי ×©×™× ×•×™×'; $lang['btn_profile'] = 'עדכון הפרופיל'; $lang['btn_reset'] = '×יפוס'; @@ -157,7 +156,6 @@ $lang['js']['media_overwrt'] = 'שכתב ×§×‘×¦×™× ×§×™×™×ž×™×'; $lang['rssfailed'] = '×ירע כשל בעת קבלת ×”×–× ×” זו:'; $lang['nothingfound'] = '×œ× × ×ž×¦×ו תוצ×ות.'; $lang['mediaselect'] = 'קובצי מדיה'; -$lang['fileupload'] = 'העל×ת קובצי מדיה'; $lang['uploadsucc'] = 'ההעל××” הושלמה בהצלחה'; $lang['uploadfail'] = '×ירעה שגי××” בעת העל×ת הקובץ. היתכן שתקלה זו × ×•×¦×¨×” עקב הרש×ות שגיות?'; $lang['uploadwrong'] = 'ההעל××” ×œ× ×ושרה. ×§×‘×¦×™× ×‘×¡×™×•×ž×ª זו ×סורי×!'; @@ -248,7 +246,6 @@ $lang['qb_sig'] = 'הוספת חתימה'; $lang['qb_smileys'] = '×—×™×™×›× ×™×'; $lang['qb_chars'] = '×ª×•×•×™× ×ž×™×•×—×“×™×'; $lang['upperns'] = 'מעבר למרחב ×”×©× ×©×‘×¨×ž×” שמעל ×”× ×•×›×—×™×ª'; -$lang['admin_register'] = 'הוספת משתמש חדש'; $lang['metaedit'] = 'עריכת × ×ª×•× ×™ העל'; $lang['metasaveerr'] = '×ירע כשל בשמירת × ×ª×•× ×™ העל'; $lang['metasaveok'] = '× ×ª×•× ×™ העל × ×©×ž×¨×•'; diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php index 71795191c..79bc0a1ab 100644 --- a/inc/lang/hi/lang.php +++ b/inc/lang/hi/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'अदà¥à¤¯à¤¤à¤¨ करना'; $lang['btn_delete'] = 'मिटाना'; $lang['btn_back'] = 'पीछे'; $lang['btn_backlink'] = 'पिछली कड़ियाà¤'; -$lang['btn_backtomedia'] = 'मीडिया फाइल चयन पर पीछे जायें'; $lang['btn_subscribe'] = 'सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¬à¤‚धन'; $lang['btn_profile'] = 'परिचय संपादित करें'; $lang['btn_resendpwd'] = 'नया पासवरà¥à¤¡ सेट करें'; @@ -102,7 +101,6 @@ $lang['qb_link'] = 'आंतरिक कड़ी'; $lang['qb_extlink'] = 'बाहà¥à¤¯ कड़ी'; $lang['qb_hr'] = 'खड़ी रेखा'; $lang['qb_sig'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° डालें'; -$lang['admin_register'] = 'नया उपयोगकरà¥à¤¤à¤¾ जोड़ें'; $lang['btn_img_backto'] = 'वापस जाना %s'; $lang['img_title'] = 'शीरà¥à¤·à¤•:'; $lang['img_caption'] = 'सहशीरà¥à¤·à¤•:'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 6e4e48e36..0436412ed 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -39,7 +39,6 @@ $lang['btn_update'] = 'Dopuni'; $lang['btn_delete'] = 'ObriÅ¡i'; $lang['btn_back'] = 'Nazad'; $lang['btn_backlink'] = 'Povratni linkovi'; -$lang['btn_backtomedia'] = 'Natrag na odabir datoteka'; $lang['btn_subscribe'] = 'UreÄ‘ivanje pretplata'; $lang['btn_profile'] = 'Dopuni profil'; $lang['btn_reset'] = 'PoniÅ¡ti'; @@ -151,7 +150,6 @@ $lang['js']['media_overwrt'] = 'PrepiÅ¡i preko postojeće datoteke'; $lang['rssfailed'] = 'DoÅ¡lo je do greÅ¡ke prilikom preuzimanja feed-a: '; $lang['nothingfound'] = 'Traženi dokumetni nisu pronaÄ‘eni.'; $lang['mediaselect'] = 'Datoteke'; -$lang['fileupload'] = 'UÄitavanje datoteka'; $lang['uploadsucc'] = 'UÄitavanje uspjeÅ¡no'; $lang['uploadfail'] = 'NeuspjeÅ¡no uÄitavanje. Možda dozvole na poslužitelju nisu ispravne?'; $lang['uploadwrong'] = 'UÄitavanje nije dopuÅ¡teno. Nastavak datoteke je zabranjen!'; @@ -242,7 +240,6 @@ $lang['qb_sig'] = 'Ubaci potpis'; $lang['qb_smileys'] = 'SmijeÅ¡kići'; $lang['qb_chars'] = 'Posebni znakovi'; $lang['upperns'] = 'SkoÄi u nadreÄ‘eni imenski prostor'; -$lang['admin_register'] = 'Dodaj novog korisnika'; $lang['metaedit'] = 'Uredi metapodatake'; $lang['metasaveerr'] = 'NeuspjeÅ¡no zapisivanje metapodataka'; $lang['metasaveok'] = 'Spremljeni metapdaci'; diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index bdc78f68d..75c22813f 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -45,7 +45,6 @@ $lang['btn_update'] = 'FrissÃtés'; $lang['btn_delete'] = 'Törlés'; $lang['btn_back'] = 'Vissza'; $lang['btn_backlink'] = 'Hivatkozások'; -$lang['btn_backtomedia'] = 'Vissza a médiafájlok kezeléséhez'; $lang['btn_subscribe'] = 'Feliratkozás az oldalváltozásokra'; $lang['btn_profile'] = 'Személyes beállÃtások'; $lang['btn_reset'] = 'Alaphelyzet'; @@ -157,7 +156,6 @@ $lang['js']['media_overwrt'] = 'MeglévÅ‘ fájlok felülÃrása'; $lang['rssfailed'] = 'Hiba történt a hÃrfolyam betöltésekor: '; $lang['nothingfound'] = 'Ãœres mappa.'; $lang['mediaselect'] = 'Médiafájl kiválasztása'; -$lang['fileupload'] = 'Médiafájl feltöltése'; $lang['uploadsucc'] = 'Sikeres feltöltés'; $lang['uploadfail'] = 'A feltöltés nem sikerült. Talán rosszak a jogosultságok?'; $lang['uploadwrong'] = 'A feltöltés megtagadva. Ez a fájlkiterjesztés tiltott.'; @@ -248,7 +246,6 @@ $lang['qb_sig'] = 'AláÃrás beszúrása'; $lang['qb_smileys'] = 'Smiley-k'; $lang['qb_chars'] = 'Speciális karakterek'; $lang['upperns'] = 'ugrás a tartalmazó névtérhez'; -$lang['admin_register'] = 'Új felhasználó'; $lang['metaedit'] = 'Metaadatok szerkesztése'; $lang['metasaveerr'] = 'A metaadatok Ãrása nem sikerült'; $lang['metasaveok'] = 'Metaadatok elmentve'; diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index a533883b6..3585d716d 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Actualisar'; $lang['btn_delete'] = 'Deler'; $lang['btn_back'] = 'Retornar'; $lang['btn_backlink'] = 'Retroligamines'; -$lang['btn_backtomedia'] = 'Retornar al selection de files multimedia'; $lang['btn_subscribe'] = 'Gerer subscriptiones'; $lang['btn_profile'] = 'Actualisar profilo'; $lang['btn_reset'] = 'Reinitialisar'; @@ -99,7 +98,6 @@ $lang['js']['notsavedyet'] = 'Le modificationes non salveguardate essera per $lang['rssfailed'] = 'Un error occurreva durante le obtention de iste syndication:'; $lang['nothingfound'] = 'Nihil ha essite trovate.'; $lang['mediaselect'] = 'Files multimedia'; -$lang['fileupload'] = 'Incargar file multimedia'; $lang['uploadsucc'] = 'Incargamento succedite'; $lang['uploadfail'] = 'Incargamento fallite. Pote esser que le permissiones es incorrecte.'; $lang['uploadwrong'] = 'Incargamento refusate. Iste typo de file es prohibite!'; @@ -199,7 +197,6 @@ $lang['qb_sig'] = 'Inserer signatura'; $lang['qb_smileys'] = 'Emoticones '; $lang['qb_chars'] = 'Characteres special'; $lang['upperns'] = 'Saltar al spatio de nomines superior'; -$lang['admin_register'] = 'Adder nove usator'; $lang['metaedit'] = 'Modificar metadatos'; $lang['metasaveerr'] = 'Scriptura de metadatos fallite'; $lang['metasaveok'] = 'Metadatos salveguardate'; diff --git a/inc/lang/id-ni/lang.php b/inc/lang/id-ni/lang.php index 1ff714f3e..9bd495c66 100644 --- a/inc/lang/id-ni/lang.php +++ b/inc/lang/id-ni/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Bohouni'; $lang['btn_delete'] = 'Heta'; $lang['btn_back'] = 'Fulifuri'; $lang['btn_backlink'] = 'Link fangawuli'; -$lang['btn_backtomedia'] = 'Angawuli ba filianö Mediafile'; $lang['btn_profile'] = 'Famohouni pörofile'; $lang['btn_reset'] = 'Fawu\'a'; $lang['btn_draft'] = 'Fawu\'a wanura'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index dc4ca00e0..514c63871 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -40,7 +40,6 @@ $lang['btn_update'] = 'Ubah'; $lang['btn_delete'] = 'Hapus'; $lang['btn_back'] = 'Kembali'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Kembali ke Pilihan Mediafile'; $lang['btn_subscribe'] = 'Ikuti Perubahan'; $lang['btn_profile'] = 'Ubah Profil'; $lang['btn_reset'] = 'Reset'; @@ -151,7 +150,6 @@ $lang['js']['media_overwrt'] = 'Timpa berkas yang ada'; $lang['rssfailed'] = 'Error terjadi saat mengambil feed: '; $lang['nothingfound'] = 'Tidak menemukan samasekali.'; $lang['mediaselect'] = 'Pilihan Mediafile'; -$lang['fileupload'] = 'Mediafile Upload'; $lang['uploadsucc'] = 'Upload sukses'; $lang['uploadfail'] = 'Upload gagal. Apakah hak ijinnya salah?'; $lang['uploadwrong'] = 'Upload ditolak. Ekstensi file ini tidak diperbolehkan!'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Sisipkan tanda tangan'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Karakter Khusus'; $lang['upperns'] = 'lompat ke namespace induk'; -$lang['admin_register'] = 'Tambah user baru'; $lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Gagal menulis metadata'; $lang['metasaveok'] = 'Metadata tersimpan'; diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php index de1a01ed5..0af4c57a6 100644 --- a/inc/lang/is/lang.php +++ b/inc/lang/is/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'Uppfæra'; $lang['btn_delete'] = 'Eyða'; $lang['btn_back'] = 'Til baka'; $lang['btn_backlink'] = 'Hvað tengist hingað'; -$lang['btn_backtomedia'] = 'Aftur til miðlaskrá'; $lang['btn_subscribe'] = 'Vakta'; $lang['btn_profile'] = 'Uppfæra notanda'; $lang['btn_reset'] = 'Endurstilla'; @@ -96,7 +95,6 @@ $lang['lockedby'] = 'Læstur af:'; $lang['lockexpire'] = 'Læsing rennur út eftir:'; $lang['nothingfound'] = 'Ekkert fannst'; $lang['mediaselect'] = 'Miðlaskrá'; -$lang['fileupload'] = 'Hlaða inn miðlaskrá'; $lang['uploadsucc'] = 'Innhlaðning tókst'; $lang['uploadfail'] = 'Villa à innhlaðningu'; $lang['uploadwrong'] = 'Innhleðslu neitað. Skrár með þessari endingu eru ekki leyfðar.'; @@ -166,7 +164,6 @@ $lang['qb_media'] = 'Bæta inn myndum og öðrum skrám'; $lang['qb_sig'] = 'Undirskrift þÃn auk tÃmasetningu'; $lang['qb_smileys'] = 'Broskallar'; $lang['qb_chars'] = 'Sértækir stafir'; -$lang['admin_register'] = 'Setja nýjan notenda inn'; $lang['metaedit'] = 'Breyta lýsigögnum'; $lang['metasaveerr'] = 'Vistun lýsigagna mistókst'; $lang['metasaveok'] = 'Lýsigögn vistuð'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index c6b99d5b5..465822d0a 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -52,7 +52,6 @@ $lang['btn_update'] = 'Aggiorna'; $lang['btn_delete'] = 'Elimina'; $lang['btn_back'] = 'Indietro'; $lang['btn_backlink'] = 'Puntano qui'; -$lang['btn_backtomedia'] = 'Torna alla selezione file'; $lang['btn_subscribe'] = 'Sottoscrivi modifiche'; $lang['btn_profile'] = 'Aggiorna profilo'; $lang['btn_reset'] = 'Annulla'; @@ -164,7 +163,6 @@ $lang['js']['media_overwrt'] = 'Sovrascrivi i file esistenti'; $lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; $lang['nothingfound'] = 'Nessun risultato trovato.'; $lang['mediaselect'] = 'Selezione dei file'; -$lang['fileupload'] = 'File caricato'; $lang['uploadsucc'] = 'Invio riuscito'; $lang['uploadfail'] = 'Invio fallito. È possibile che si tratti di un problema di permessi.'; $lang['uploadwrong'] = 'Invio rifiutato. Questa estensione di file non è ammessa'; @@ -255,7 +253,6 @@ $lang['qb_sig'] = 'Inserisci la firma'; $lang['qb_smileys'] = 'Smiley'; $lang['qb_chars'] = 'Caratteri speciali'; $lang['upperns'] = 'vai alla categoria principale'; -$lang['admin_register'] = 'Aggiungi un nuovo utente'; $lang['metaedit'] = 'Modifica metadati'; $lang['metasaveerr'] = 'Scrittura metadati fallita'; $lang['metasaveok'] = 'Metadati salvati'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 3a5f169e7..dd076f86f 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -43,7 +43,6 @@ $lang['btn_update'] = 'æ›´æ–°'; $lang['btn_delete'] = '削除'; $lang['btn_back'] = '戻る'; $lang['btn_backlink'] = 'ãƒãƒƒã‚¯ãƒªãƒ³ã‚¯'; -$lang['btn_backtomedia'] = 'メディアファイルé¸æŠžã«æˆ»ã‚‹'; $lang['btn_subscribe'] = '変更履æ´é…ä¿¡ã®ç™»éŒ²'; $lang['btn_profile'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®æ›´æ–°'; $lang['btn_reset'] = 'リセット'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'æ—¢å˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’上書ãã™ã‚‹'; $lang['rssfailed'] = 'RSSã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸï¼š'; $lang['nothingfound'] = '該当文書ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['mediaselect'] = 'メディアファイル'; -$lang['fileupload'] = 'メディアファイルをアップãƒãƒ¼ãƒ‰'; $lang['uploadsucc'] = 'アップãƒãƒ¼ãƒ‰å®Œäº†'; $lang['uploadfail'] = 'アップãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸã€‚権é™ãŒã‚ã‚Šã¾ã›ã‚“。'; $lang['uploadwrong'] = 'アップãƒãƒ¼ãƒ‰ã¯æ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚ã“ã®æ‹¡å¼µåã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。'; @@ -245,7 +243,6 @@ $lang['qb_sig'] = 'ç½²åã®æŒ¿å…¥'; $lang['qb_smileys'] = 'スマイリー'; $lang['qb_chars'] = '特殊文å—'; $lang['upperns'] = '上ã®éšŽå±¤ã®åå‰ç©ºé–“ã¸'; -$lang['admin_register'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆ'; $lang['metaedit'] = 'メタデータ編集'; $lang['metasaveerr'] = 'メタデータã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ'; $lang['metasaveok'] = 'メタデータã¯ä¿å˜ã•ã‚Œã¾ã—ãŸ'; diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php index 28ca11e45..871f3ec44 100644 --- a/inc/lang/ka/lang.php +++ b/inc/lang/ka/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_delete'] = 'წáƒáƒ¨áƒšáƒ'; $lang['btn_back'] = 'უკáƒáƒœ'; $lang['btn_backlink'] = 'გáƒáƒ“მáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ თებული ბმულები'; -$lang['btn_backtomedia'] = 'მედიáƒáƒ¤áƒáƒ˜áƒšáƒ”ბის áƒáƒ ჩევáƒ'; $lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_reset'] = 'წáƒáƒ¨áƒšáƒ'; @@ -146,7 +145,6 @@ $lang['js']['media_overwrt'] = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ $lang['rssfailed'] = 'დáƒáƒ¤áƒ˜áƒ¥áƒ¡áƒ˜áƒ დრშეცდáƒáƒ›áƒ:'; $lang['nothingfound'] = 'ნáƒáƒžáƒáƒ•áƒœáƒ˜ áƒáƒ áƒáƒ ის'; $lang['mediaselect'] = 'მედირფáƒáƒ˜áƒšáƒ”ბი'; -$lang['fileupload'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის áƒáƒ¢áƒ•áƒ˜áƒ თვáƒ'; $lang['uploadsucc'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრდáƒáƒ¡áƒ ულებულიáƒ'; $lang['uploadfail'] = 'შეფერხებრáƒáƒ¢áƒ•áƒ˜áƒ თვისáƒáƒ¡'; $lang['uploadwrong'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრშეუძლებელიáƒ'; @@ -236,7 +234,6 @@ $lang['qb_sig'] = 'ხელმáƒáƒ¬áƒ”რáƒ'; $lang['qb_smileys'] = 'სმáƒáƒ˜áƒšáƒ”ბი'; $lang['qb_chars'] = 'Special Chars'; $lang['upperns'] = 'jump to parent namespace'; -$lang['admin_register'] = 'áƒáƒ®áƒáƒšáƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ ებლის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ'; $lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Writing metadata failed'; $lang['metasaveok'] = 'Metadata saved'; diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php index 74afa24e5..5536d48d3 100644 --- a/inc/lang/kk/lang.php +++ b/inc/lang/kk/lang.php @@ -34,7 +34,6 @@ $lang['btn_update'] = 'Жаңарту'; $lang['btn_delete'] = 'Жою'; $lang['btn_back'] = 'Ðртқа'; $lang['btn_backlink'] = 'Кері Ñілтемелері'; -$lang['btn_backtomedia'] = 'Медиафайлды таңдауға қайту'; $lang['btn_subscribe'] = 'Жазылуларды баÑқару'; $lang['btn_profile'] = 'Профильді жаңарту'; $lang['btn_reset'] = 'ТүÑіру'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index 749fa419c..87ac30936 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -34,7 +34,6 @@ $lang['btn_update'] = 'កែឡើង'; $lang['btn_delete'] = 'លុបចោល'; $lang['btn_back'] = 'ážáŸ’រឡប់'; $lang['btn_backlink'] = 'ážáŸ’សែចំណងក្រោយ'; -$lang['btn_backtomedia'] = 'ទៅប្រពáŸáž“ឯកសាវិញ'; $lang['btn_subscribe'] = 'ដាក់ដំណឹងផ្លស់ប្ážáž¼ážš'; $lang['btn_profile'] = 'កែប្រវážáŸ’ážáž·ážšáž¼áž”'; $lang['btn_reset'] = 'កមណážáŸ‹áž¡áž¾áž„រិញ'; @@ -92,7 +91,6 @@ $lang['rssfailed'] = 'មានកំហុសពáŸáž›áž‘ៅ​ប្រម $lang['nothingfound']= 'រកមិនឃើញអ្វីទáŸáŸ”'; $lang['mediaselect'] = 'ឯកសារមីឌៀ'; -$lang['fileupload'] = 'រុញឯកសារមីឌៀឡើង'; $lang['uploadsucc'] = 'រុញចូលមានជáŸáž™'; $lang['uploadfail'] = 'រុញឡើងបរាជáŸáž™áŸ” ប្រហែលážáž»ážŸážŸáž·áž‘្ឋានុញ្ញាáž?'; $lang['uploadwrong'] = 'រុញឡើងážáŸ’រូវ​បាន​បដិសáŸáž’។ ឯកសារ'; @@ -160,7 +158,6 @@ $lang['qb_smileys'] = 'សញ្ញាអារម្មណáŸ'; $lang['qb_chars'] = 'អក្ážážšáŸˆáž–ិសáŸážŸ'; $lang['js']['del_confirm']= 'លុប'; -$lang['admin_register']= 'ážáŸ‚មអ្នកប្រើ';//'Add new user'; $lang['metaedit'] = 'កែទិន្ននáŸáž™áž¢ážšáž¼áž”';//'Edit Metadata'; $lang['metasaveerr'] = 'ពំអាចកážáŸ‹ážšáž‘ិន្ននáŸáž™áž¢ážšáž¼áž”';//'Writing metadata failed'; diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 877c43de3..ca2a35cb7 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -44,7 +44,6 @@ $lang['btn_update'] = '바꾸기'; $lang['btn_delete'] = 'ì‚ì œ'; $lang['btn_back'] = '뒤로'; $lang['btn_backlink'] = 'ë°±ë§í¬'; -$lang['btn_backtomedia'] = '미디어 íŒŒì¼ ì„ íƒìœ¼ë¡œ ëŒì•„가기'; $lang['btn_subscribe'] = 'êµ¬ë… ê´€ë¦¬'; $lang['btn_profile'] = '프로필 바꾸기'; $lang['btn_reset'] = 'ìž¬ì„¤ì •'; @@ -155,7 +154,6 @@ $lang['js']['media_overwrt'] = '기존 파ì¼ì— ë®ì–´ì“°ê¸°'; $lang['rssfailed'] = 'ì´ í”¼ë“œë¥¼ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:'; $lang['nothingfound'] = '아무 ê²ƒë„ ì—†ìŠµë‹ˆë‹¤.'; $lang['mediaselect'] = '미디어 파ì¼'; -$lang['fileupload'] = '미디어 íŒŒì¼ ì˜¬ë¦¬ê¸°'; $lang['uploadsucc'] = '올리기 성공'; $lang['uploadfail'] = '올리기가 실패ë˜ì—ˆìŠµë‹ˆë‹¤. ìž˜ëª»ëœ ê¶Œí•œ 때문ì¼ì§€ë„ 모릅니다.'; $lang['uploadwrong'] = '올리기가 거부ë˜ì—ˆìŠµë‹ˆë‹¤. ê¸ˆì§€ëœ íŒŒì¼ í™•ìž¥ìžìž…니다!'; @@ -246,7 +244,6 @@ $lang['qb_sig'] = '서명 넣기'; $lang['qb_smileys'] = 'ì´ëª¨í‹°ì½˜'; $lang['qb_chars'] = '특수 문ìž'; $lang['upperns'] = 'ìƒìœ„ ì´ë¦„공간으로 ì´ë™'; -$lang['admin_register'] = '새 ì‚¬ìš©ìž ì¶”ê°€'; $lang['metaedit'] = '메타ë°ì´í„° 편집'; $lang['metasaveerr'] = '메타ë°ì´í„° 쓰기 실패'; $lang['metasaveok'] = '메타ë°ì´í„° ì €ìž¥ë¨'; diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index a3c91eee8..7e21b5ba7 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -31,7 +31,6 @@ $lang['btn_update'] = 'Rojanekirin'; $lang['btn_delete'] = 'Jê bibe'; $lang['btn_back'] = 'PaÅŸ'; $lang['btn_backlink'] = 'Girêdanên paÅŸ'; -$lang['btn_backtomedia'] = 'Back to Mediafile Selection'; $lang['btn_subscribe'] = 'Subscribe Changes'; $lang['btn_register'] = 'Register'; @@ -67,7 +66,6 @@ $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'TiÅŸtek nehat dîtin.'; $lang['mediaselect'] = 'Mediafile Selection'; -$lang['fileupload'] = 'Mediafile Upload'; $lang['uploadsucc'] = 'Upload successful'; $lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; $lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; @@ -122,8 +120,6 @@ $lang['qb_sig'] = 'Insert Signature'; $lang['js']['del_confirm']= 'Delete this entry?'; -$lang['admin_register']= 'Add new user...'; - $lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Writing metadata failed'; $lang['metasaveok'] = 'Metadata saved'; diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php index 66cd13967..35f8308d0 100644 --- a/inc/lang/la/lang.php +++ b/inc/lang/la/lang.php @@ -40,7 +40,6 @@ $lang['btn_update'] = 'Nouare'; $lang['btn_delete'] = 'Delere'; $lang['btn_back'] = 'Redire'; $lang['btn_backlink'] = 'Nexus ad paginam'; -$lang['btn_backtomedia'] = 'Ad media redire'; $lang['btn_subscribe'] = 'Custodire'; $lang['btn_profile'] = 'Tabellam nouare'; $lang['btn_reset'] = 'Abrogare'; @@ -126,7 +125,6 @@ $lang['js']['del_confirm'] = 'Delere electas res uin?'; $lang['rssfailed'] = 'Error in restituendo '; $lang['nothingfound'] = 'Nihil inuentum est.'; $lang['mediaselect'] = 'Documenta uisiua:'; -$lang['fileupload'] = 'Documentum uisiuom onerare'; $lang['uploadsucc'] = 'Oneratum perfectum'; $lang['uploadfail'] = 'Error onerandi.'; $lang['uploadwrong'] = 'Onerare non potest. Genus documenti non legitimum!'; @@ -198,7 +196,6 @@ $lang['qb_sig'] = 'Subscriptio tua cum indicatione temporis'; $lang['qb_smileys'] = 'Pupuli'; $lang['qb_chars'] = 'Signa singularia'; $lang['upperns'] = 'I ad anterius genus'; -$lang['admin_register'] = 'Nouom Sodalem creare'; $lang['metaedit'] = 'Res codicis mutare'; $lang['metasaveerr'] = 'Res codicis non scribitur.'; $lang['metasaveok'] = 'Res codicis seruatae.'; diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index 1090878e2..a48ab4e4c 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -34,7 +34,6 @@ $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Läschen'; $lang['btn_back'] = 'Zeréck'; $lang['btn_backlink'] = 'Linker zeréck'; -$lang['btn_backtomedia'] = 'Zeréck bei d\'Auswiel vun de Mediadateien'; $lang['btn_profile'] = 'Profil aktualiséieren'; $lang['btn_reset'] = 'Zerécksetzen'; $lang['btn_draft'] = 'Entworf änneren'; @@ -88,7 +87,6 @@ $lang['js']['notsavedyet'] = 'Net gespäicher Ännerunge gi verluer.\nWierkl $lang['rssfailed'] = 'Et ass e Feeler virkomm beim erofluede vun dësem Feed: '; $lang['nothingfound'] = 'Näischt fond.'; $lang['mediaselect'] = 'Mediadateien'; -$lang['fileupload'] = 'Mediadateien eroplueden'; $lang['uploadsucc'] = 'Upload erfollegräich'; $lang['uploadfail'] = 'Feeler beim Upload. Vläicht falsch Rechter?'; $lang['uploadwrong'] = 'Eroplueden net erlaabt. Dës Dateiendung ass verbueden!'; @@ -159,7 +157,6 @@ $lang['qb_sig'] = 'Ënnerschrëft afügen'; $lang['qb_smileys'] = 'Smilien'; $lang['qb_chars'] = 'Spezialzeechen'; $lang['upperns'] = 'An de Namespace uewendriwwer sprangen'; -$lang['admin_register'] = 'Neie Benotzer bäisetzen'; $lang['metaedit'] = 'Metadaten änneren'; $lang['metasaveerr'] = 'Feeler beim Schreiwe vun de Metadaten'; $lang['metasaveok'] = 'Metadate gespäichert'; diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index d53a117f4..2de85644e 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Atnaujinti'; $lang['btn_delete'] = 'IÅ¡trinti'; $lang['btn_back'] = 'Atgal'; $lang['btn_backlink'] = 'AtgalinÄ—s nuorodos'; -$lang['btn_backtomedia'] = 'Atgal į Mediabylos iÅ¡sirinkimÄ…'; $lang['btn_subscribe'] = 'Užsisakyti keitimų prenumeratÄ…'; $lang['btn_profile'] = 'Atnaujinti profilį'; $lang['btn_reset'] = 'Atstata'; @@ -93,7 +92,6 @@ $lang['js']['notsavedyet'] = 'Pakeitimai nebus iÅ¡saugoti.\nTikrai tÄ™sti?'; $lang['rssfailed'] = 'SiunÄiant šį feed\'Ä… įvyko klaida: '; $lang['nothingfound'] = 'PaieÅ¡kos rezultatų nÄ—ra.'; $lang['mediaselect'] = 'Mediabylos iÅ¡sirinkimas'; -$lang['fileupload'] = 'Mediabylos atsiuntimas'; $lang['uploadsucc'] = 'Atsiuntimas pavyko'; $lang['uploadfail'] = 'Atsiuntimas nepavyko. Blogi priÄ—jimo leidimai??'; $lang['uploadwrong'] = 'Atsiuntimas atmestas. Bylos tipas neleistinas'; @@ -160,7 +158,6 @@ $lang['qb_sig'] = 'Ä®terpti paraÅ¡Ä…'; $lang['qb_smileys'] = 'Å ypsenÄ—lÄ—s'; $lang['qb_chars'] = 'SpecialÅ«s simboliai'; $lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įraÅ¡Ä…(us)?'; -$lang['admin_register'] = 'Sukurti naujÄ… vartotojÄ…'; $lang['metaedit'] = 'Redaguoti metaduomenis'; $lang['metasaveerr'] = 'Nepavyko iÅ¡saugoti metaduomenų'; $lang['metasaveok'] = 'Metaduomenys iÅ¡saugoti'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index ddc97fa89..dff2d9b28 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Atjaunot'; $lang['btn_delete'] = 'DzÄ“st'; $lang['btn_back'] = 'Atpakaļ'; $lang['btn_backlink'] = 'NorÄdes uz lapu'; -$lang['btn_backtomedia'] = 'Atpakaļ uz mÄ“diju failu izvÄ“li'; $lang['btn_subscribe'] = 'AbonÄ“t izmaiņu paziņojumus'; $lang['btn_profile'] = 'Labot savu profilu'; $lang['btn_reset'] = 'Atsaukt izmaiņas'; @@ -148,7 +147,6 @@ $lang['js']['media_overwrt'] = 'RakstÄ«t pÄri esoÅ¡ajiem failiem'; $lang['rssfailed'] = 'Kļūda saņemot saturu no '; $lang['nothingfound'] = 'Nekas nav atrasts.'; $lang['mediaselect'] = 'MÄ“diju faila izvÄ“le'; -$lang['fileupload'] = 'MÄ“diju faila augÅ¡upielÄde'; $lang['uploadsucc'] = 'VeiksmÄ«gi ielÄdÄ“ts'; $lang['uploadfail'] = 'IelÄdes kļūme. VarbÅ«t aplamas tiesÄ«bas?'; $lang['uploadwrong'] = 'IelÄde aizliegta. Neatļauts faila paplaÅ¡inÄjums'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Ievietot parakstu'; $lang['qb_smileys'] = 'Emotikoni'; $lang['qb_chars'] = 'ĪpaÅ¡Äs zÄ«mes'; $lang['upperns'] = 'vienu nodaļu lÄ«meni augstÄk'; -$lang['admin_register'] = 'Pievienot jaunu lietotÄju'; $lang['metaedit'] = 'Labot metadatus'; $lang['metasaveerr'] = 'Metadati nav saglabÄti'; $lang['metasaveok'] = 'Metadati saglabÄti'; diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index b6e0cc6e0..5b406ed70 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -27,7 +27,6 @@ $lang['btn_admin'] = 'Admin'; $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Fafao'; $lang['btn_back'] = 'Miverina'; -$lang['btn_backtomedia'] = 'Fitsongana fichier Media'; $lang['btn_register'] = 'Hisoratra'; $lang['loggedinas'] = 'Anaranao:'; @@ -61,7 +60,6 @@ $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tsy nahitana n\'inon\'inona.'; $lang['mediaselect'] = 'Safidy rakitra Media'; -$lang['fileupload'] = 'Fandefasana rakitra Media'; $lang['uploadsucc'] = 'Voalefa soa aman-tsara'; $lang['uploadfail'] = 'Tsy lasa ilay izy. Mety tsy fananana alalana?'; $lang['uploadwrong'] = 'Nolavina ny lefa. Voarara io extension-na rakitra io!'; @@ -116,6 +114,5 @@ $lang['qb_sig'] = 'Manisy sonia'; $lang['js']['del_confirm']= 'Hofafana ilay andalana?'; -$lang['admin_register']= 'Ampio mpampiasa vaovao...'; $lang['searchcreatepage'] = "Raha tsy nahita izay notadiavinao ianao, dia afaka mamorona pejy vaovao avy amin'ny teny nanaovanao fikarohana; Ampiasao ny bokotra ''Hanova ny pejy''."; //Setup VIM: ex: et ts=2 : diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index ddfae15c4..5621fe9c0 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Ðжурирај'; $lang['btn_delete'] = 'Избриши'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'Повратни врÑки'; -$lang['btn_backtomedia'] = 'Ðазад до изборот за медиа-датотека'; $lang['btn_subscribe'] = 'Менаџирај претплати'; $lang['btn_profile'] = 'Ðжурирај профил'; $lang['btn_reset'] = 'РеÑет'; @@ -95,7 +94,6 @@ $lang['js']['notsavedyet'] = 'Ðезачуваните промени ќе $lang['rssfailed'] = 'Се појави грешка при повлекувањето на овој канал:'; $lang['nothingfound'] = 'Ðишто не е пронајдено.'; $lang['mediaselect'] = 'Медиа датотеки'; -$lang['fileupload'] = 'Качување на медиа датотеки'; $lang['uploadsucc'] = 'Качувањето е уÑпешно'; $lang['uploadfail'] = 'Качувањето не е уÑпешно. Можеби има погрешни пермиÑии?'; $lang['uploadwrong'] = 'Качувањето е одбиено. ÐаÑтавката на датотеката е забранета!'; @@ -167,7 +165,6 @@ $lang['qb_media'] = 'Додај Ñлики и други датот $lang['qb_sig'] = 'ВнеÑи потпиÑ'; $lang['qb_smileys'] = 'Смајлиња'; $lang['qb_chars'] = 'Специјални знаци'; -$lang['admin_register'] = 'Додај нов кориÑник'; $lang['metaedit'] = 'Уреди мета-податоци'; $lang['metasaveerr'] = 'Запишување на мета-податоците не уÑпеа'; $lang['metasaveok'] = 'Мета-податоците Ñе зачувани'; diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index 7ebb14b93..62274e127 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'अदà¥à¤¯à¤¯à¤¾à¤µà¤¤'; $lang['btn_delete'] = 'नषà¥à¤Ÿ'; $lang['btn_back'] = 'मागॆ'; $lang['btn_backlink'] = 'येथे काय जोडले आहे'; -$lang['btn_backtomedia'] = 'परत माधà¥à¤¯à¤® फाइल निवडीकड़े'; $lang['btn_subscribe'] = 'पृषà¥à¤ ाचà¥à¤¯à¤¾ बदलांची पà¥à¤°à¤µà¤£à¥€ (फीड) लावा '; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा'; $lang['btn_reset'] = 'रिसेट'; @@ -140,7 +139,6 @@ $lang['js']['media_cancel'] = 'काढा'; $lang['rssfailed'] = 'ही पà¥à¤°à¤µà¤£à¥€ आणणà¥à¤¯à¤¾à¤¤ काही चूक à¤à¤¾à¤²à¥€:'; $lang['nothingfound'] = 'काही सापडला नाही.'; $lang['mediaselect'] = 'दृकशà¥à¤°à¤¾à¤µà¥à¤¯ फाइल'; -$lang['fileupload'] = 'दृकशà¥à¤°à¤¾à¤µà¥à¤¯ फाइल अपलोड'; $lang['uploadsucc'] = 'अपलोड यशसà¥à¤µà¥€'; $lang['uploadfail'] = 'अपलोड अयशसà¥à¤µà¥€.कदाचित चà¥à¤•à¥€à¤šà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ असतील ?'; $lang['uploadwrong'] = 'अपलोड नाकारणà¥à¤¯à¤¾à¤¤ आला. हे फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन अवैध आहे!'; @@ -224,7 +222,6 @@ $lang['qb_sig'] = 'सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ टाका'; $lang['qb_smileys'] = 'सà¥à¤®à¤¾à¤‡à¤²à¥€'; $lang['qb_chars'] = 'ख़ास चिनà¥à¤¹'; $lang['upperns'] = 'हà¥à¤¯à¤¾à¤µà¤°à¤šà¥à¤¯à¤¾ नेमसà¥à¤ªà¥‡à¤¸à¤•à¤¡à¥‡ उडी मारा'; -$lang['admin_register'] = 'नवीन सदसà¥à¤¯'; $lang['metaedit'] = 'मेटाडेटा बदला'; $lang['metasaveerr'] = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾ नाही'; $lang['metasaveok'] = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾'; diff --git a/inc/lang/ms/lang.php b/inc/lang/ms/lang.php index 303116429..14cb94ebd 100644 --- a/inc/lang/ms/lang.php +++ b/inc/lang/ms/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Kemaskini'; $lang['btn_delete'] = 'Hapus'; $lang['btn_back'] = 'Balik'; $lang['btn_backlink'] = 'Pautan ke halaman ini'; -$lang['btn_backtomedia'] = 'Balik ke rangkaian pilihan fail media'; $lang['btn_subscribe'] = 'Pantau'; $lang['btn_profile'] = 'Kemaskinikan profil'; $lang['btn_reset'] = 'Batalkan suntingan'; @@ -87,7 +86,6 @@ $lang['txt_upload'] = 'Pilih fail untuk diunggah:'; $lang['txt_filename'] = 'Unggah fail dengan nama (tidak wajib):'; $lang['txt_overwrt'] = 'Timpa fail sekarang'; $lang['lockedby'] = 'Halaman ini telah di:'; -$lang['fileupload'] = 'Muat naik fail'; $lang['uploadsucc'] = 'Pemuatan naik berjaya'; $lang['uploadfail'] = 'Ralat muat naik'; $lang['uploadxss'] = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.'; diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index 88fb2a690..46074d020 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹ $lang['btn_delete'] = 'मेटाउनà¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_back'] = 'पछाडि'; $lang['btn_backlink'] = 'पछाडिका लिङà¥à¤•à¤¹à¤°à¥ '; -$lang['btn_backtomedia'] = 'मिडिया छनौटमा फरà¥à¤•à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['btn_subscribe'] = 'पृषà¥à¤ परिवरà¥à¤¤à¤¨ गà¥à¤°à¤¾à¤¹à¥à¤¯ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_reset'] = 'पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸'; @@ -107,7 +106,6 @@ $lang['js']['del_confirm'] = 'साचà¥à¤šà¥ˆ छानिà¤à¤•à¤¾ व $lang['rssfailed'] = 'यो फिड लिइ आउदा गलà¥à¤¤à¤¿ à¤à¤¯à¥‹ ।'; $lang['nothingfound'] = 'केहि पनि à¤à¥‡à¤Ÿà¤¿à¤à¤¨ ।'; $lang['mediaselect'] = 'मिडिया फाइलहरू '; -$lang['fileupload'] = 'मिडिया फाइल अपलोड '; $lang['uploadsucc'] = 'अपलोड सफल '; $lang['uploadfail'] = 'अपलोड असफल । सायद गलत अनà¥à¤®à¤¤à¤¿ । '; $lang['uploadwrong'] = 'अपलोड असमरà¥à¤¥à¤¿à¤¤ । फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ अमानà¥à¤¯à¥¤ '; @@ -167,7 +165,6 @@ $lang['qb_media'] = 'तसà¥à¤µà¤¿à¤° र अरॠफाइल $lang['qb_sig'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['qb_smileys'] = 'सà¥à¤®à¤¾à¤‡à¤²à¥€à¤¹à¤°à¥ '; $lang['qb_chars'] = 'विशेष वरà¥à¤£à¤¹à¤°à¥ '; -$lang['admin_register'] = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['metaedit'] = 'मेटाडेटा समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['metasaveerr'] = 'मेटाडाटा लेखन असफल'; $lang['metasaveok'] = 'मेटाडाटा वचत à¤à¤¯à¥‹ '; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 4c668557d..b94202475 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -56,7 +56,6 @@ $lang['btn_update'] = 'Bijwerken'; $lang['btn_delete'] = 'Verwijder'; $lang['btn_back'] = 'Terug'; $lang['btn_backlink'] = 'Referenties'; -$lang['btn_backtomedia'] = 'Terug naar Bestandsselectie'; $lang['btn_subscribe'] = 'Inschrijven wijzigingen'; $lang['btn_profile'] = 'Profiel aanpassen'; $lang['btn_reset'] = 'Wissen'; @@ -169,7 +168,6 @@ $lang['js']['media_overwrt'] = 'Bestaande bestanden overschrijven'; $lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: '; $lang['nothingfound'] = 'Er werd niets gevonden.'; $lang['mediaselect'] = 'Bestandsselectie'; -$lang['fileupload'] = 'Bestandsupload'; $lang['uploadsucc'] = 'Upload geslaagd'; $lang['uploadfail'] = 'Upload mislukt. Misschien verkeerde permissies?'; $lang['uploadwrong'] = 'Upload mislukt. Deze bestandsextensie is verboden!'; @@ -260,7 +258,6 @@ $lang['qb_sig'] = 'Handtekening invoegen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Speciale tekens'; $lang['upperns'] = 'Spring naar bovenliggende namespace'; -$lang['admin_register'] = 'Nieuwe gebruiker toevoegen'; $lang['metaedit'] = 'Metadata wijzigen'; $lang['metasaveerr'] = 'Schrijven van metadata mislukt'; $lang['metasaveok'] = 'Metadata bewaard'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index ecf10ff5b..5659286c3 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -53,7 +53,6 @@ $lang['btn_update'] = 'Oppdater'; $lang['btn_delete'] = 'Slett'; $lang['btn_back'] = 'Tilbake'; $lang['btn_backlink'] = 'Tilbakelenker'; -$lang['btn_backtomedia'] = 'Tilbake til valg av mediafil'; $lang['btn_subscribe'] = 'Abonnér pÃ¥ endringer'; $lang['btn_profile'] = 'Oppdater profil'; $lang['btn_reset'] = 'Tilbakestill'; @@ -166,7 +165,6 @@ $lang['js']['media_overwrt'] = 'Erstatt eksisterende filer'; $lang['rssfailed'] = 'En feil oppstod da denne kilden skulle hentes:'; $lang['nothingfound'] = 'Ingen data funnet.'; $lang['mediaselect'] = 'Valg av mediafil'; -$lang['fileupload'] = 'Mediafil Opplasting'; $lang['uploadsucc'] = 'Opplastingen var vellykket'; $lang['uploadfail'] = 'Opplastingen var mislykket. Kanskje feil rettigheter?'; $lang['uploadwrong'] = 'Opplastingen ble nektet. Denne filendelsen er ikke tillatt!'; @@ -257,7 +255,6 @@ $lang['qb_sig'] = 'Føy til signatur'; $lang['qb_smileys'] = 'Smilefjes'; $lang['qb_chars'] = 'Spesialtegn'; $lang['upperns'] = 'gÃ¥ til overordnet navnerom'; -$lang['admin_register'] = 'Legg til ny bruker'; $lang['metaedit'] = 'Rediger metadata'; $lang['metasaveerr'] = 'Skriving av metadata feilet'; $lang['metasaveok'] = 'Metadata lagret'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index fa70db06c..16375aab3 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -49,7 +49,6 @@ $lang['btn_update'] = 'Aktualizuj'; $lang['btn_delete'] = 'UsuÅ„'; $lang['btn_back'] = 'Wstecz'; $lang['btn_backlink'] = 'OdnoÅ›niki'; -$lang['btn_backtomedia'] = 'Powrót do wyboru pliku'; $lang['btn_subscribe'] = 'Subskrybuj zmiany'; $lang['btn_profile'] = 'Aktualizuj profil'; $lang['btn_reset'] = 'Resetuj'; @@ -162,7 +161,6 @@ $lang['js']['media_overwrt'] = 'Nadpisz istniejÄ…ce pliki'; $lang['rssfailed'] = 'WystÄ…piÅ‚ bÅ‚Ä…d przy pobieraniu tych danych: '; $lang['nothingfound'] = 'Nic nie znaleziono.'; $lang['mediaselect'] = 'WysyÅ‚anie pliku'; -$lang['fileupload'] = 'WysyÅ‚anie pliku'; $lang['uploadsucc'] = 'WysyÅ‚anie powiodÅ‚o siÄ™!'; $lang['uploadfail'] = 'BÅ‚Ä…d wysyÅ‚ania pliku. Czy prawa do katalogów sÄ… poprawne?'; $lang['uploadwrong'] = 'WysyÅ‚anie zabronione. Nie można wysÅ‚ać plików z takim rozszerzeniem'; @@ -251,7 +249,6 @@ $lang['qb_sig'] = 'Wstaw podpis'; $lang['qb_smileys'] = 'Emotikony'; $lang['qb_chars'] = 'Znaki specjalne'; $lang['upperns'] = 'Skok piÄ™tro wyżej'; -$lang['admin_register'] = 'Dodawanie użytkownika'; $lang['metaedit'] = 'Edytuj metadane'; $lang['metasaveerr'] = 'Zapis metadanych nie powiódÅ‚ siÄ™'; $lang['metasaveok'] = 'Metadane zapisano'; diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index be62af6fe..5d3afc4fc 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -55,7 +55,6 @@ $lang['btn_update'] = 'Atualizar'; $lang['btn_delete'] = 'Excluir'; $lang['btn_back'] = 'Voltar'; $lang['btn_backlink'] = 'Links reversos'; -$lang['btn_backtomedia'] = 'Voltar à seleção do arquivo de mÃdia'; $lang['btn_subscribe'] = 'Monitorar alterações'; $lang['btn_profile'] = 'Atualizar o perfil'; $lang['btn_reset'] = 'Limpar'; @@ -168,7 +167,6 @@ $lang['js']['media_overwrt'] = 'Sobrescrever arquivos existentes'; $lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: '; $lang['nothingfound'] = 'Não foi encontrado nada.'; $lang['mediaselect'] = 'Arquivos de mÃdia'; -$lang['fileupload'] = 'Envio de arquivo de mÃdia'; $lang['uploadsucc'] = 'O envio foi efetuado com sucesso'; $lang['uploadfail'] = 'Não foi possÃvel enviar o arquivo. Será algum problema com as permissões?'; $lang['uploadwrong'] = 'O envio foi bloqueado. Essa extensão de arquivo é proibida!'; @@ -259,7 +257,6 @@ $lang['qb_sig'] = 'Inserir assinatura'; $lang['qb_smileys'] = 'Carinhas'; $lang['qb_chars'] = 'Caracteres especiais'; $lang['upperns'] = 'Pular para espaço de nomes acima'; -$lang['admin_register'] = 'Adicionar novo usuário'; $lang['metaedit'] = 'Editar metadados'; $lang['metasaveerr'] = 'Não foi possÃvel escrever os metadados'; $lang['metasaveok'] = 'Os metadados foram salvos'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index cfb85a91c..defb21954 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -44,7 +44,6 @@ $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Apagar'; $lang['btn_back'] = 'Voltar'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Voltar à Selecção de Media'; $lang['btn_subscribe'] = 'Subscrever Alterações'; $lang['btn_profile'] = 'Actualizar Perfil'; $lang['btn_reset'] = 'Limpar'; @@ -156,7 +155,6 @@ $lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes'; $lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: '; $lang['nothingfound'] = 'Nada foi encontrado.'; $lang['mediaselect'] = 'Selecção de ficheiros'; -$lang['fileupload'] = 'Carregamento de ficheiros'; $lang['uploadsucc'] = 'Carregamento com sucesso'; $lang['uploadfail'] = 'Falhou o carregamento. Talvez por não ter permissões?'; $lang['uploadwrong'] = 'Carregamento negado. Esta extensão está proibida.'; @@ -247,7 +245,6 @@ $lang['qb_sig'] = 'Inserir Assinatura'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Caracteres Especiais'; $lang['upperns'] = 'Ir para o espaço de nomes parente'; -$lang['admin_register'] = 'Registar Novo Utilizador'; $lang['metaedit'] = 'Editar Metadata'; $lang['metasaveerr'] = 'Falhou a escrita de Metadata'; $lang['metasaveok'] = 'Metadata gravada'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 452a93ed0..7c7d55098 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Actualizează'; $lang['btn_delete'] = 'Șterge'; $lang['btn_back'] = 'ÃŽnapoi'; $lang['btn_backlink'] = 'Legătură anterioară'; -$lang['btn_backtomedia'] = 'ÃŽnapoi la selecÈ›ia mediafile'; $lang['btn_subscribe'] = 'Subscrie modificarea paginii'; $lang['btn_profile'] = 'Actualizează profil'; $lang['btn_reset'] = 'Resetează'; @@ -151,7 +150,6 @@ $lang['js']['media_overwrt'] = 'Suprascrie fiÈ™ierele deja existente'; $lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui câmp: '; $lang['nothingfound'] = 'Nu am găsit nimic.'; $lang['mediaselect'] = 'FiÈ™iere media'; -$lang['fileupload'] = 'ÃŽncarcare fiÈ™ier media'; $lang['uploadsucc'] = 'ÃŽncărcare reuÈ™ită'; $lang['uploadfail'] = 'ÃŽncărcare eÈ™uată. Poate din cauza permisiunilor?'; $lang['uploadwrong'] = 'ÃŽncărcare nepermisă. Extensia fiÈ™ierului e nepermisă'; @@ -236,7 +234,6 @@ $lang['qb_sig'] = 'Inserează semnătură'; $lang['qb_smileys'] = 'Smiley-uri'; $lang['qb_chars'] = 'Caractere speciale'; $lang['upperns'] = 'Accesează spaÈ›iul de nume părinte'; -$lang['admin_register'] = 'Adaugă utilizator nou'; $lang['metaedit'] = 'Editează metadata'; $lang['metasaveerr'] = 'Scrierea metadatelor a eÈ™uat'; $lang['metasaveok'] = 'Metadatele au fost salvate'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 96278d53b..c40e1ee20 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -60,7 +60,6 @@ $lang['btn_update'] = 'Обновить'; $lang['btn_delete'] = 'Удалить'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'СÑылки Ñюда'; -$lang['btn_backtomedia'] = 'ВернутьÑÑ Ðº выбору медиафайла'; $lang['btn_subscribe'] = 'ПодпиÑатьÑÑ (вÑе правки)'; $lang['btn_profile'] = 'Профиль'; $lang['btn_reset'] = 'СброÑ'; @@ -171,7 +170,6 @@ $lang['js']['media_overwrt'] = 'ПерезапиÑать ÑущеÑтвующ $lang['rssfailed'] = 'Произошла ошибка при получении Ñледующей новоÑтной ленты: '; $lang['nothingfound'] = 'Ðичего не найдено.'; $lang['mediaselect'] = 'Выбор медиафайла'; -$lang['fileupload'] = 'Загрузка медиафайла'; $lang['uploadsucc'] = 'Загрузка произведена уÑпешно'; $lang['uploadfail'] = 'Загрузка не удалаÑÑŒ. Возможно, проблемы Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупа?'; $lang['uploadwrong'] = 'Ð’ загрузке отказано. Файлы Ñ Ñ‚Ð°ÐºÐ¸Ð¼ раÑширением запрещены. '; @@ -262,7 +260,6 @@ $lang['qb_sig'] = 'Ð’Ñтавить подпиÑÑŒ'; $lang['qb_smileys'] = 'Смайлики'; $lang['qb_chars'] = 'Специальные Ñимволы'; $lang['upperns'] = 'Перейти в родительÑкое проÑтранÑтво имён'; -$lang['admin_register'] = 'Добавить пользователÑ'; $lang['metaedit'] = 'Править метаданные'; $lang['metasaveerr'] = 'Ошибка запиÑи метаданных'; $lang['metasaveok'] = 'Метаданные Ñохранены'; diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index afbf79503..f2d3a90bd 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'AktualizovaÅ¥'; $lang['btn_delete'] = 'ZmazaÅ¥'; $lang['btn_back'] = 'Späť'; $lang['btn_backlink'] = 'Spätné odkazy'; -$lang['btn_backtomedia'] = 'Späť na výber súboru'; $lang['btn_subscribe'] = 'SledovaÅ¥ zmeny'; $lang['btn_profile'] = 'AktualizovaÅ¥ profil'; $lang['btn_reset'] = 'ZruÅ¡iÅ¥'; @@ -149,7 +148,6 @@ $lang['js']['media_overwrt'] = 'PrepÃsaÅ¥ existujúce súbory'; $lang['rssfailed'] = 'Nastala chyba pri vytváranà tohto RSS: '; $lang['nothingfound'] = 'NiÄ nenájdené.'; $lang['mediaselect'] = 'Výber súboru'; -$lang['fileupload'] = 'Nahrávanie súboru'; $lang['uploadsucc'] = 'Prenos prebehol v poriadku'; $lang['uploadfail'] = 'Chyba pri nahrávanÃ. Možno kvôli zle nastaveným právam?'; $lang['uploadwrong'] = 'Prenos súboru s takouto prÃponou nie je dovolený.'; @@ -235,7 +233,6 @@ $lang['qb_sig'] = 'VložiÅ¥ podpis'; $lang['qb_smileys'] = 'SmajlÃky'; $lang['qb_chars'] = 'Å peciálne znaky'; $lang['upperns'] = 'návrat do nadradeného menného priestoru'; -$lang['admin_register'] = 'Pridaj nového užÃvateľa'; $lang['metaedit'] = 'UpraviÅ¥ metainformácie'; $lang['metasaveerr'] = 'Zápis metainformácià zlyhal'; $lang['metasaveok'] = 'Metainformácie uložené'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index b649d08cb..0361393c9 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'Posodobi'; $lang['btn_delete'] = 'IzbriÅ¡i'; $lang['btn_back'] = 'Nazaj'; $lang['btn_backlink'] = 'Povratne povezave'; -$lang['btn_backtomedia'] = 'Nazaj na izbiro predstavnih datotek'; $lang['btn_subscribe'] = 'Urejanje naroÄnin'; $lang['btn_profile'] = 'Posodobi profil'; $lang['btn_reset'] = 'Ponastavi'; @@ -150,7 +149,6 @@ $lang['js']['media_overwrt'] = 'PrepiÅ¡i obstojeÄe datoteke'; $lang['rssfailed'] = 'PriÅ¡lo je do napake med pridobivanjem vira: '; $lang['nothingfound'] = 'Ni najdenih predmetov.'; $lang['mediaselect'] = 'Predstavne datoteke'; -$lang['fileupload'] = 'PoÅ¡iljanje predstavnih datotek'; $lang['uploadsucc'] = 'PoÅ¡iljanje je bilo uspeÅ¡no konÄano.'; $lang['uploadfail'] = 'PoÅ¡iljanje je spodletelo. Morda so uporabljena neustrezna dovoljenja.'; $lang['uploadwrong'] = 'PoÅ¡iljanje je zavrnjeno. Uporabljena pripona datoteke je prepovedana.'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Vstavi podpis'; $lang['qb_smileys'] = 'SmeÅ¡ki'; $lang['qb_chars'] = 'Posebni znaki'; $lang['upperns'] = 'skoÄi na nadrejeni imenski prostor'; -$lang['admin_register'] = 'Dodaj novega uporabnika'; $lang['metaedit'] = 'Uredi metapodatke'; $lang['metasaveerr'] = 'Zapisovanje metapodatkov je spodletelo'; $lang['metasaveok'] = 'Metapodatki so shranjeni'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index 4c61b6a70..3d2146394 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -40,7 +40,6 @@ $lang['btn_update'] = 'Përditëso'; $lang['btn_delete'] = 'Fshi'; $lang['btn_back'] = 'Mbrapa'; $lang['btn_backlink'] = 'Lidhjet këtu'; -$lang['btn_backtomedia'] = 'Mbrapa tek Përzgjedhja e Media-ve'; $lang['btn_subscribe'] = 'Menaxho Abonimet'; $lang['btn_profile'] = 'Përditëso Profilin'; $lang['btn_reset'] = 'Rivendos'; @@ -98,7 +97,6 @@ $lang['js']['notsavedyet'] = 'Ndryshimet e paruajtura do të humbasin.\nVazh $lang['rssfailed'] = 'Ndoshi një gabim gjatë kapjes së këtij lajmi:'; $lang['nothingfound'] = 'Nuk u gjet asgjë.'; $lang['mediaselect'] = 'Skedarët e Medias'; -$lang['fileupload'] = 'Ngarkoje'; $lang['uploadsucc'] = 'Ngarkim i suksesshëm'; $lang['uploadfail'] = 'Ngarkimi dështoi. Ndoshta leje të gabuara?'; $lang['uploadwrong'] = 'Ngarkimi u refuzua! Prapashtesa e skedarit është e ndaluar!'; @@ -176,7 +174,6 @@ $lang['qb_sig'] = 'Fut Firmën'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Karaktere Speciale'; $lang['upperns'] = 'kërce tek hapësira e emrit prind'; -$lang['admin_register'] = 'Shto Përdorues të Ri'; $lang['metaedit'] = 'Redakto Metadata'; $lang['metasaveerr'] = 'Shkrimi i metadata-ve dështoi'; $lang['metasaveok'] = 'Metadata u ruajt'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 37a36c82b..46088dca8 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'Ðжурирај'; $lang['btn_delete'] = 'Избриши'; $lang['btn_back'] = 'Ðатраг'; $lang['btn_backlink'] = 'Повратне везе'; -$lang['btn_backtomedia'] = 'Врати Ñе на избор медијÑке датотеке'; $lang['btn_subscribe'] = 'Пријави Ñе на измене'; $lang['btn_profile'] = 'Ðжурирај профил'; $lang['btn_reset'] = 'Поништи'; @@ -125,7 +124,6 @@ $lang['js']['del_confirm'] = 'Обриши овај уноÑ?'; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ðишта није нађено.'; $lang['mediaselect'] = 'Избор медијÑке датотеке'; -$lang['fileupload'] = 'Слање медијÑке датотеке'; $lang['uploadsucc'] = 'УÑпешно Ñлање'; $lang['uploadfail'] = 'ÐеуÑпешно Ñлање. Можда немате дозволу?'; $lang['uploadwrong'] = 'Слање је забрањено. Овај наÑтавак датотеке је забрањен!'; @@ -198,7 +196,6 @@ $lang['qb_sig'] = 'Убаци потпиÑ'; $lang['qb_smileys'] = 'Смешко'; $lang['qb_chars'] = 'ПоÑебни карактери'; $lang['upperns'] = 'Скочи на виши именÑки проÑтор'; -$lang['admin_register'] = 'Додај новог кориÑника'; $lang['metaedit'] = 'Измени мета-податке'; $lang['metasaveerr'] = 'ЗапиÑивање мета-података није било уÑпешно'; $lang['metasaveok'] = 'Мета-подаци Ñу Ñачувани'; diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index f22491db1..d343d0339 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -52,7 +52,6 @@ $lang['btn_update'] = 'Uppdatera'; $lang['btn_delete'] = 'Radera'; $lang['btn_back'] = 'Tillbaka'; $lang['btn_backlink'] = 'Tillbakalänkar'; -$lang['btn_backtomedia'] = 'Tillbaka till val av Mediafil'; $lang['btn_subscribe'] = 'Prenumerera pÃ¥ ändringar'; $lang['btn_profile'] = 'Uppdatera profil'; $lang['btn_reset'] = 'Ã…terställ'; @@ -164,7 +163,6 @@ $lang['js']['media_overwrt'] = 'Skriv över existerande filer'; $lang['rssfailed'] = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: '; $lang['nothingfound'] = 'Inga filer hittades.'; $lang['mediaselect'] = 'Mediafiler'; -$lang['fileupload'] = 'Ladda upp mediafiler'; $lang['uploadsucc'] = 'Uppladdningen lyckades'; $lang['uploadfail'] = 'Uppladdningen misslyckades, fel filskydd?'; $lang['uploadwrong'] = 'Uppladdning nekad. Filändelsen är inte tillÃ¥ten!'; @@ -249,7 +247,6 @@ $lang['qb_sig'] = 'Infoga signatur'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Specialtecken'; $lang['upperns'] = 'hoppa till föräldernamnrymd'; -$lang['admin_register'] = 'Lägg till ny användare'; $lang['metaedit'] = 'Redigera metadata'; $lang['metasaveerr'] = 'Skrivning av metadata misslyckades'; $lang['metasaveok'] = 'Metadata sparad'; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index 113431276..e40b69454 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -39,7 +39,6 @@ $lang['btn_update'] = 'ปรับปรุง'; $lang['btn_delete'] = 'ลบ'; $lang['btn_back'] = 'ย้à¸à¸™à¸à¸¥à¸±à¸š'; $lang['btn_backlink'] = 'หน้าที่ลิงà¸à¹Œà¸¡à¸²'; -$lang['btn_backtomedia'] = 'à¸à¸¥à¸±à¸šà¹„ปยังหน้าเลืà¸à¸à¹„ฟล์สื่à¸'; $lang['btn_subscribe'] = 'เà¸à¹‰à¸²à¸”ู'; $lang['btn_profile'] = 'à¹à¸à¹‰à¸‚้à¸à¸¡à¸¹à¸¥à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; $lang['btn_reset'] = 'เริ่มใหม่'; @@ -114,7 +113,6 @@ $lang['js']['del_confirm'] = 'ต้à¸à¸‡à¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£ $lang['rssfailed'] = 'มีข้à¸à¸œà¸´à¸”พลาดขณะดูดฟีดนี้'; $lang['nothingfound'] = 'ไม่พบสิ่งใด'; $lang['mediaselect'] = 'ไฟล์สื่à¸'; -$lang['fileupload'] = 'à¸à¸±à¸›à¹‚หลด'; $lang['uploadsucc'] = 'à¸à¸±à¸›à¹‚หลดสำเร็จ'; $lang['uploadfail'] = 'เà¸à¸´à¸”ความขัดข้à¸à¸‡à¹ƒà¸™à¸à¸²à¸£à¸à¸±à¸›à¹‚หลด'; $lang['uploadwrong'] = 'à¸à¸²à¸£à¸à¸±à¸žà¹‚หลดถูà¸à¸›à¸à¸´à¹€à¸ªà¸˜ ส่วนขยายไฟล์นี้ต้à¸à¸‡à¸«à¹‰à¸²à¸¡!'; @@ -184,7 +182,6 @@ $lang['qb_sig'] = 'ลายเซ็นพร้à¸à¸¡à¸¥à¸‡à¹€ $lang['qb_smileys'] = 'ภาพà¹à¸ªà¸”งà¸à¸²à¸£à¸¡à¸“์'; $lang['qb_chars'] = 'à¸à¸±à¸à¸‚ระพิเศษ'; $lang['upperns'] = 'à¸à¸£à¸°à¹‚ดดขึ้นไปยังเนมสเปซà¹à¸¡à¹ˆ'; -$lang['admin_register'] = 'สร้างบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; $lang['metaedit'] = 'à¹à¸à¹‰à¹„ขข้à¸à¸¡à¸¹à¸¥à¹€à¸¡à¸•à¹‰à¸²'; $lang['metasaveerr'] = 'มีข้à¸à¸œà¸´à¸”พลาดในà¸à¸²à¸£à¹€à¸‚ียนข้à¸à¸¡à¸¹à¸¥à¹€à¸¡à¸•à¹‰à¸²'; $lang['metasaveok'] = 'บันทึà¸à¹€à¸¡à¸•à¹‰à¸²à¸”าต้าà¹à¸¥à¹‰à¸§'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 1676256a5..48d364320 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -44,7 +44,6 @@ $lang['btn_update'] = 'Güncelle'; $lang['btn_delete'] = 'Sil'; $lang['btn_back'] = 'Geri'; $lang['btn_backlink'] = 'Geri linkler'; -$lang['btn_backtomedia'] = 'Çokluortam dosyası seçimine dön'; $lang['btn_subscribe'] = 'Sayfa DeÄŸiÅŸikliklerini Bildir'; $lang['btn_profile'] = 'Kullanıcı Bilgilerini Güncelle'; $lang['btn_reset'] = 'Sıfırla'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Var olan dosyaların üzerine yaz'; $lang['rssfailed'] = 'Bu beslemeyi çekerken hata oluÅŸtu: '; $lang['nothingfound'] = 'Hiçbir ÅŸey yok.'; $lang['mediaselect'] = 'Çokluortam dosyası seçimi'; -$lang['fileupload'] = 'Çokluortam dosyası yükleme'; $lang['uploadsucc'] = 'Yükleme tamam'; $lang['uploadfail'] = 'Yükleme baÅŸarısız. Yetki hatası olabilir!'; $lang['uploadwrong'] = 'Yükleme engellendi. Bu dosya uzantısına izin verilmiyor!'; @@ -244,7 +242,6 @@ $lang['qb_sig'] = 'Ä°mza Ekle'; $lang['qb_smileys'] = 'Gülen Yüzler'; $lang['qb_chars'] = 'Özel Karakterler'; $lang['upperns'] = 'ebeveyn isimalanına atla'; -$lang['admin_register'] = 'Yeni kullanıcı ekle...'; $lang['metaedit'] = 'Metaverileri DeÄŸiÅŸtir'; $lang['metasaveerr'] = 'Metaveri yazma baÅŸarısız '; $lang['metasaveok'] = 'Metaveri kaydedildi'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index a6b08c905..d03750579 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Оновити'; $lang['btn_delete'] = 'Видалити'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñюди'; -$lang['btn_backtomedia'] = 'Ðазад до вибору медіа-файлу'; $lang['btn_subscribe'] = 'ПідпиÑатиÑÑ'; $lang['btn_profile'] = 'Оновити профіль'; $lang['btn_reset'] = 'ОчиÑтити'; @@ -138,7 +137,6 @@ $lang['js']['media_cancel'] = 'видалити'; $lang['rssfailed'] = 'Виникла помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ RSS-Ñтрічки: '; $lang['nothingfound'] = 'Ðічого не знайдено.'; $lang['mediaselect'] = 'Вибір медіа-файлу'; -$lang['fileupload'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-файлу'; $lang['uploadsucc'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¹ÑˆÐ»Ð¾ уÑпішно'; $lang['uploadfail'] = 'Помилка при завантаженні. Можливо неправильні права?'; $lang['uploadwrong'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾. Таке Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ не дозволÑєтьÑÑ!'; @@ -220,7 +218,6 @@ $lang['qb_sig'] = 'Додати підпиÑ'; $lang['qb_smileys'] = 'ПоÑмішки'; $lang['qb_chars'] = 'Спеціальні Ñимволи'; $lang['upperns'] = 'Перейти до батьківÑького проÑтору імен'; -$lang['admin_register'] = 'Додати нового кориÑтувача'; $lang['metaedit'] = 'Редагувати метадані'; $lang['metasaveerr'] = 'Помилка запиÑу метаданих'; $lang['metasaveok'] = 'Метадані збережено'; diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 41a7d590f..944a9e5d6 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -130,7 +130,6 @@ $lang['js']['media_overwrt'] = 'Ghi đè các file trùng'; $lang['rssfailed'] = 'Nguồn nà y gặp phải lá»—i'; $lang['nothingfound'] = 'Không tìm được gì'; $lang['mediaselect'] = 'Xem'; -$lang['fileupload'] = 'Tải lên tệp media'; $lang['uploadsucc'] = 'Tải lên thà nh công'; $lang['uploadfail'] = 'Tải lên thất bại. Có thể vì không đủ quyá»n?'; $lang['uploadwrong'] = 'Tải lên bị từ chối. Cấm tải loại tệp nà y'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index c5e7da000..bda7bb32c 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -47,7 +47,6 @@ $lang['btn_update'] = 'æ›´æ–°è¨å®š'; $lang['btn_delete'] = '刪除'; $lang['btn_back'] = '回上一æ¥'; $lang['btn_backlink'] = 'åå‘連çµ'; -$lang['btn_backtomedia'] = 'é‡æ–°é¸æ“‡åœ–檔'; $lang['btn_subscribe'] = '訂閱更動通知'; $lang['btn_profile'] = '更新個人資料'; $lang['btn_reset'] = '資料é‡è¨'; @@ -159,7 +158,6 @@ $lang['js']['media_overwrt'] = '覆蓋已å˜åœ¨çš„檔案'; $lang['rssfailed'] = 'æ“·å– RSS 饋é€æª”時發生錯誤:'; $lang['nothingfound'] = '沒找到任何çµæžœã€‚'; $lang['mediaselect'] = '媒體檔案'; -$lang['fileupload'] = '上傳媒體檔案'; $lang['uploadsucc'] = '已上傳'; $lang['uploadfail'] = '無法上傳。是å¦å› 權é™éŒ¯èª¤ï¼Ÿ'; $lang['uploadwrong'] = '拒絕上傳。這個副檔å被ç¦æ¢äº†ï¼'; @@ -250,7 +248,6 @@ $lang['qb_sig'] = 'æ’入簽å'; $lang['qb_smileys'] = '表情符號'; $lang['qb_chars'] = '特殊å—å…ƒ'; $lang['upperns'] = 'å‰å¾€çˆ¶åˆ†é¡žå稱'; -$lang['admin_register'] = '新增使用者'; $lang['metaedit'] = '編輯後è¨è³‡æ–™'; $lang['metasaveerr'] = '後è¨è³‡æ–™ç„¡æ³•å¯«å…¥'; $lang['metasaveok'] = '後è¨è³‡æ–™å·²å„²å˜'; diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index 6f55834d0..df55a99e6 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -55,7 +55,6 @@ $lang['btn_update'] = 'æ›´æ–°'; $lang['btn_delete'] = 'åˆ é™¤'; $lang['btn_back'] = '返回'; $lang['btn_backlink'] = 'åå‘链接'; -$lang['btn_backtomedia'] = '返回到媒体文件选择工具'; $lang['btn_subscribe'] = '订阅本页更改'; $lang['btn_profile'] = '更新个人信æ¯'; $lang['btn_reset'] = 'é‡è®¾'; @@ -168,7 +167,6 @@ $lang['js']['media_overwrt'] = '覆盖已å˜åœ¨çš„文件'; $lang['rssfailed'] = '获å–该 RSS ä¿¡æ¯æ—¶äº§ç”Ÿé”™è¯¯ï¼š'; $lang['nothingfound'] = '什么都没有找到。'; $lang['mediaselect'] = '媒体文件'; -$lang['fileupload'] = 'ä¸Šä¼ åª’ä½“æ–‡ä»¶'; $lang['uploadsucc'] = 'ä¸Šä¼ æˆåŠŸ'; $lang['uploadfail'] = 'ä¸Šä¼ å¤±è´¥ã€‚ä¹Ÿè®¸æ˜¯ä¸Šä¼ æƒé™é”™è¯¯ã€‚'; $lang['uploadwrong'] = 'ä¸Šä¼ å¤±è´¥ã€‚è¯¥æ‰©å±•å被ç¦æ¢ã€‚'; @@ -259,7 +257,6 @@ $lang['qb_sig'] = 'æ’å…¥ç¾å'; $lang['qb_smileys'] = '表情符å·'; $lang['qb_chars'] = '特殊å—符'; $lang['upperns'] = '跳转到父级å空间'; -$lang['admin_register'] = 'æ·»åŠ æ–°ç”¨æˆ·'; $lang['metaedit'] = '编辑元数æ®'; $lang['metasaveerr'] = '写入元数æ®å¤±è´¥'; $lang['metasaveok'] = '元数æ®å·²ä¿å˜'; -- GitLab From 45bd9f1311427a53e57b1f46d2c6fc7de1caa6e2 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 3 Apr 2015 22:24:39 -0400 Subject: [PATCH 071/440] Delete unused div (Fixes #1098) --- inc/media.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/media.php b/inc/media.php index 81081d5dc..e9fff1489 100644 --- a/inc/media.php +++ b/inc/media.php @@ -1860,7 +1860,6 @@ function media_searchform($ns,$query='',$fullscreen=false){ $form->addHidden('ns', $ns); $form->addHidden($fullscreen ? 'mediado' : 'do', 'searchlist'); - if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>'.NL); $form->addElement(form_makeOpenTag('p')); $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*')))); $form->addElement(form_makeButton('submit', '', $lang['btn_search'])); -- GitLab From d49d4260ee0fed5eabc3773440fc1073a87c56dd Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Sat, 4 Apr 2015 00:34:33 -0400 Subject: [PATCH 072/440] Remove no longer needed language string --- inc/lang/ar/lang.php | 1 - inc/lang/bg/lang.php | 1 - inc/lang/ca/lang.php | 1 - inc/lang/cs/lang.php | 1 - inc/lang/da/lang.php | 1 - inc/lang/de-informal/lang.php | 1 - inc/lang/de/lang.php | 1 - inc/lang/el/lang.php | 1 - inc/lang/en/lang.php | 1 - inc/lang/eo/lang.php | 1 - inc/lang/es/lang.php | 1 - inc/lang/et/lang.php | 1 - inc/lang/eu/lang.php | 1 - inc/lang/fa/lang.php | 1 - inc/lang/fi/lang.php | 1 - inc/lang/fr/lang.php | 1 - inc/lang/gl/lang.php | 1 - inc/lang/he/lang.php | 1 - inc/lang/hr/lang.php | 1 - inc/lang/hu/lang.php | 1 - inc/lang/it/lang.php | 1 - inc/lang/ja/lang.php | 1 - inc/lang/ka/lang.php | 1 - inc/lang/ko/lang.php | 1 - inc/lang/lv/lang.php | 1 - inc/lang/nl/lang.php | 1 - inc/lang/no/lang.php | 1 - inc/lang/pl/lang.php | 1 - inc/lang/pt-br/lang.php | 1 - inc/lang/pt/lang.php | 1 - inc/lang/ro/lang.php | 1 - inc/lang/ru/lang.php | 1 - inc/lang/sk/lang.php | 1 - inc/lang/sl/lang.php | 1 - inc/lang/sv/lang.php | 1 - inc/lang/tr/lang.php | 1 - inc/lang/zh-tw/lang.php | 1 - inc/lang/zh/lang.php | 1 - 38 files changed, 38 deletions(-) diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 52e9bc5cf..2d21fc8f0 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -275,7 +275,6 @@ $lang['subscr_style_every'] = 'بريدا على كل تغيير'; $lang['subscr_style_digest'] = 'البريد الإلكتروني, ملخص للتغييرات لكل صÙØØ© (كل يوم %.2f)'; $lang['subscr_style_list'] = 'قائمة بالصÙØات التي تم تغييرها منذ آخر بريد الإلكتروني (كل يوم %.2f)'; $lang['authtempfail'] = 'ØªØµØ±ÙŠØ Ø§Ù„Ù…Ø´ØªØ±Ùƒ غير متوÙر مؤقتاً، إن استمرت هذه الØالة يرجى مراسلة المدير'; -$lang['authpwdexpire'] = 'ستنتهي صلاØية كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.'; $lang['i_chooselang'] = 'اختر لغتك'; $lang['i_installer'] = 'برنامج تنصيب دوكو ويكي'; $lang['i_wikiname'] = 'اسم الويكي'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 1b10f2d10..9176cee56 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -265,7 +265,6 @@ $lang['subscr_style_every'] = 'на имейл при вÑÑка промÑн $lang['subscr_style_digest'] = 'на имейл Ñ Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ на промените във вÑÑка Ñтраница (вÑеки %.2f дни)'; $lang['subscr_style_list'] = 'на ÑпиÑък Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ‚Ðµ Ñтраници от поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ¹Ð» (вÑеки %.2f дни)'; $lang['authtempfail'] = 'УдоÑтоверÑването на потребители не е възможно за момента. Ðко продължи дълго, Ð¼Ð¾Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼ÐµÑ‚Ðµ админиÑтратора на Wiki Ñтраницата.'; -$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече Ñлед %d дни. Препоръчително е да Ñ Ñмените по-Ñкоро.'; $lang['i_chooselang'] = 'Изберете Ð²Ð°ÑˆÐ¸Ñ ÐµÐ·Ð¸Ðº'; $lang['i_installer'] = 'ИнÑталатор на DokuWiki'; $lang['i_wikiname'] = 'Име на Wiki-то'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index df5a3c92b..2287ca001 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -256,7 +256,6 @@ $lang['subscr_style_every'] = 'Envia\'m un correu electrònic per a cada canv $lang['subscr_style_digest'] = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pà gina (cada %.2f dies)'; $lang['subscr_style_list'] = 'llistat de pà gines canviades des de l\'últim correu electrònic (cada %.2f dies)'; $lang['authtempfail'] = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.'; -$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'haurÃeu de canviar aviat.'; $lang['i_chooselang'] = 'Trieu l\'idioma'; $lang['i_installer'] = 'Instal·lador de DokuWiki'; $lang['i_wikiname'] = 'Nom del wiki'; diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index ffd81eada..d6b50fb97 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -284,7 +284,6 @@ $lang['subscr_style_every'] = 'e-mail pro každou zmÄ›nu'; $lang['subscr_style_digest'] = 'souhrnný e-mail zmÄ›n pro každou stránku (každé %.2f dny/dnÃ)'; $lang['subscr_style_list'] = 'seznam zmÄ›nÄ›ných stránek od poslednÃho e-mailu (každé %.2f dny/dnÃ)'; $lang['authtempfail'] = 'Autentizace uživatelů je doÄasnÄ› nedostupná. Pokud tento problém pÅ™etrvává, informujte prosÃm správce této wiki.'; -$lang['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vyprÅ¡Ã za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; $lang['i_chooselang'] = 'Vyberte si jazyk'; $lang['i_installer'] = 'Instalace DokuWiki'; $lang['i_wikiname'] = 'Název wiki'; diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 3b344ea3b..ee8a92cf0 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -284,7 +284,6 @@ $lang['subscr_style_every'] = 'email pÃ¥ hver ændring'; $lang['subscr_style_digest'] = 'opsummeringsmail med ændringer for hver side (hver %.2f dage)'; $lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)'; $lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.'; -$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.'; $lang['i_chooselang'] = 'Vælg dit sprog'; $lang['i_installer'] = 'DokuWiki Installer'; $lang['i_wikiname'] = 'Wiki Navn'; diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 6e1f77559..c23614511 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -280,7 +280,6 @@ $lang['subscr_style_every'] = 'E-Mail bei jeder Änderung'; $lang['subscr_style_digest'] = 'E-Mail mit zusammengefasster Ãœbersicht der Seitenänderungen (alle %.2f Tage)'; $lang['subscr_style_list'] = 'Auflistung aller geänderten Seiten seit der letzten E-Mail (alle %.2f Tage)'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wende dich an den Admin.'; -$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.'; $lang['i_chooselang'] = 'Wähle deine Sprache'; $lang['i_installer'] = 'DokuWiki-Installation'; $lang['i_wikiname'] = 'Wiki-Name'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index fec0647e0..848c5ae7b 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -291,7 +291,6 @@ $lang['subscr_style_every'] = 'E-Mail bei jeder Bearbeitung'; $lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)'; $lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Admin.'; -$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; $lang['i_installer'] = 'DokuWiki Installation'; $lang['i_wikiname'] = 'Wiki-Name'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index b6ccfd617..21a854b30 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -269,7 +269,6 @@ $lang['subscr_style_every'] = 'email σε κάθε αλλαγή'; $lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μÎÏες)'; $lang['subscr_style_list'] = 'λίστα σελίδων με αλλαγÎÏ‚ μετά από το τελευταίο email (κάθε %.2f μÎÏες)'; $lang['authtempfail'] = 'Η συνδεση χÏηστών είναι απενεÏγοποιημÎνη αυτή την στιγμή. Αν αυτό διαÏκÎσει για πολÏ, παÏακαλοÏμε ενημεÏώστε τον διαχειÏιστή του wiki.'; -$lang['authpwdexpire'] = 'Ο κωδικός Ï€Ïόσβασης θα λήξει σε %d ημÎÏες. Î Ïοτείνουμε να τον αλλάξετε σÏντομα.'; $lang['i_chooselang'] = 'Επιλογή γλώσσας'; $lang['i_installer'] = 'Οδηγός εγκατάστασης DokuWiki'; $lang['i_wikiname'] = 'Ονομασία wiki'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 81d8a94bf..3f11a1ee4 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -290,7 +290,6 @@ $lang['subscr_style_list'] = 'list of changed pages since last email (e /* auth.class language support */ $lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.'; -$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; /* installer strings */ $lang['i_chooselang'] = 'Choose your language'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index c7ad4b498..24df39dc7 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -274,7 +274,6 @@ $lang['subscr_style_every'] = 'retpoÅtaĵo pro ĉiu ÅanÄo'; $lang['subscr_style_digest'] = 'resuma retpoÅtaĵo de ÅanÄoj por ĉiu paÄo (je %.2f tagoj)'; $lang['subscr_style_list'] = 'listo de ÅanÄitaj paÄoj ekde la lasta retpoÅtaĵo (je %.2f tagoj)'; $lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daÅros, bonvolu informi la adminstranton de la vikio.'; -$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ÅanÄu Äin baldaÅ©.'; $lang['i_chooselang'] = 'Elektu vian lingvon'; $lang['i_installer'] = 'Instalilo de DokuWiki'; $lang['i_wikiname'] = 'Nomo de la vikio'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index a27fbd1b2..e10a29a0f 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -304,7 +304,6 @@ $lang['subscr_style_every'] = 'enviar correo en cada cambio'; $lang['subscr_style_digest'] = 'Resumen de correo electrónico de cambios por cada página (cada %.2f dÃas)'; $lang['subscr_style_list'] = 'lista de páginas modificadas desde el último correo electrónico (cada %.2f dÃas)'; $lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.'; -$lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; $lang['i_chooselang'] = 'Elija su idioma'; $lang['i_installer'] = 'Instalador de DokuWiki'; $lang['i_wikiname'] = 'Nombre del wiki'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 7b4de11e3..2372482c3 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -270,7 +270,6 @@ $lang['subscr_style_every'] = 'igast toimetamisest teavitab ekiri'; $lang['subscr_style_digest'] = 'kokkuvõte ekirjaga toimetamistest igal leheküljel (iga %.2f päeva järel)'; $lang['subscr_style_list'] = 'Peale viimast ekirja (iga %.2f päeva järel) toimetaud lehekülgede loend.'; $lang['authtempfail'] = 'Kasutajate autentimine on ajutiselt rivist väljas. Kui see olukord mõne aja jooksul ei parane, siis teavita sellest serveri haldajat.'; -$lang['authpwdexpire'] = 'Sinu salasõna aegub %päeva pärast, võiksid seda peatselt muuta.'; $lang['i_chooselang'] = 'Vali keel'; $lang['i_installer'] = 'DokuWiki paigaldaja'; $lang['i_wikiname'] = 'Wiki nimi'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 73af3e70a..f66cda04c 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -259,7 +259,6 @@ $lang['subscr_style_every'] = 'e-posta aldaketa bakoitzean'; $lang['subscr_style_digest'] = 'e-posta laburbildua orri bakoitzeko aldaketentzat (%.2f egunero)'; $lang['subscr_style_list'] = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)'; $lang['authtempfail'] = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari'; -$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.'; $lang['i_chooselang'] = 'Hautatu zure hizkuntza'; $lang['i_installer'] = 'DokuWiki instalatzailea'; $lang['i_wikiname'] = 'Wiki Izena'; diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 7a3577862..7b45b3137 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -280,7 +280,6 @@ $lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی $lang['subscr_style_digest'] = 'ایمیل خلاصه‌ی تغییرات هر روز (هر %.2f روز)'; $lang['subscr_style_list'] = 'Ùهرست صÙØات تغییریاÙته از آخرین ایمیل (هر %.2f روز)'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این Øالت پایدار بود، مدیر ویکی را باخبر سازید.'; -$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; $lang['i_chooselang'] = 'انتخاب زبان'; $lang['i_installer'] = 'نصب کننده‌ی Dokuwiki'; $lang['i_wikiname'] = 'نام ویکی'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 1ad782e53..0f70efa5c 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -273,7 +273,6 @@ $lang['subscr_style_every'] = 'Sähköposti joka muutoksesta'; $lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)'; $lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)'; $lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.'; -$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.'; $lang['i_chooselang'] = 'Valitse kieli'; $lang['i_installer'] = 'DokuWikin asentaja'; $lang['i_wikiname'] = 'Wikin nimi'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 1cc5cf468..ba3158125 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -299,7 +299,6 @@ $lang['subscr_style_every'] = 'Recevoir un courriel à chaque modification'; $lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page'; $lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)'; $lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'en informer l\'administrateur du wiki.'; -$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; $lang['i_chooselang'] = 'Choisissez votre langue'; $lang['i_installer'] = 'Installateur DokuWiki'; $lang['i_wikiname'] = 'Nom du wiki'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 2711e76e1..9cc460b58 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -257,7 +257,6 @@ $lang['subscr_m_subscribe'] = 'Subscribir'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'correo-e en cada troco'; $lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; -$lang['authpwdexpire'] = 'A túa contrasinal expirará en %d dÃas, deberÃas cambiala pronto.'; $lang['i_chooselang'] = 'Escolle o teu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 5d72130ab..a75a0e9bb 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -278,7 +278,6 @@ $lang['subscr_style_every'] = 'דו×״ל ×¢× ×›×œ ×©×™× ×•×™'; $lang['subscr_style_digest'] = 'הודעת דו×״ל המציגה ×ת כל ×”×©×™× ×•×™×™× ×‘×›×œ עמוד (בכל %.2f ימי×)'; $lang['subscr_style_list'] = 'רשימת ×”×©×™× ×•×™×™× ×‘×“×¤×™× ×ž××– הודעת הדו×״ל ×”××—×¨×•× ×” (בכל %.2f ימי×)'; $lang['authtempfail'] = '×ימות ×ž×©×ª×ž×©×™× ××™× ×• זמין כרגע. ×× ×ž×¦×‘ ×–×” × ×ž×©×š × × ×œ×™×™×“×¢ ×ת ×ž× ×”×œ הוויקי.'; -$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; $lang['i_chooselang'] = '× × ×œ×‘×—×•×¨ שפה'; $lang['i_installer'] = '×ª×›× ×™×ª ×”×”×ª×§× ×” של DokuWiki'; $lang['i_wikiname'] = '×©× ×”×•×•×™×§×™'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 0436412ed..e3e35b5c4 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -272,7 +272,6 @@ $lang['subscr_style_every'] = 'e-poÅ¡ta za svaku promjenu'; $lang['subscr_style_digest'] = 'e-poÅ¡ta s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)'; $lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnje primljene e-poÅ¡te (svaka %.2f dana)'; $lang['authtempfail'] = 'Autentifikacija korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora.'; -$lang['authpwdexpire'] = 'VaÅ¡a lozinka će isteći za %d dana, trebate ju promijeniti.'; $lang['i_chooselang'] = 'Izaberite vaÅ¡ jezik'; $lang['i_installer'] = 'DokuWiki postavljanje'; $lang['i_wikiname'] = 'Naziv Wikija'; diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index 75c22813f..37c23e892 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -278,7 +278,6 @@ $lang['subscr_style_every'] = 'e-mailt minden változásról'; $lang['subscr_style_digest'] = 'összefoglaló e-mailt oldalanként (minden %.2f nap)'; $lang['subscr_style_list'] = 'egy listát a módosÃtott oldalakról a legutóbbi e-mail óta (minden %.2f nap)'; $lang['authtempfail'] = 'A felhasználó azonosÃtás átmenetileg nem működik. Ha sokáig Ãgy lenne, légy szÃves értesÃtsd az Adminisztrátorokat!'; -$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.'; $lang['i_chooselang'] = 'Válassz nyelvet'; $lang['i_installer'] = 'DokuWiki BeállÃtó Varázsló'; $lang['i_wikiname'] = 'A Wiki neve'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 465822d0a..a7da52935 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -285,7 +285,6 @@ $lang['subscr_style_every'] = 'email per ogni modifica'; $lang['subscr_style_digest'] = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)'; $lang['subscr_style_list'] = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)'; $lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.'; -$lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; $lang['i_chooselang'] = 'Scegli la lingua'; $lang['i_installer'] = 'Installazione di DokuWiki'; $lang['i_wikiname'] = 'Nome Wiki'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index dd076f86f..67a69c3de 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -275,7 +275,6 @@ $lang['subscr_style_every'] = 'å…¨ã¦ã®å¤‰æ›´ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡'; $lang['subscr_style_digest'] = 'ãã‚Œãžã‚Œã®ãƒšãƒ¼ã‚¸ã¸ã®å¤‰æ›´ã®è¦ç´„をメールã™ã‚‹ï¼ˆ%.2f 日毎)'; $lang['subscr_style_list'] = 'å‰å›žã®ãƒ¡ãƒ¼ãƒ«ã‹ã‚‰å¤‰æ›´ã•ã‚ŒãŸãƒšãƒ¼ã‚¸ã‚’リスト(%.2f 日毎)'; $lang['authtempfail'] = 'ユーザーèªè¨¼ãŒä¸€æ™‚çš„ã«ä½¿ç”¨ã§ããªããªã£ã¦ã„ã¾ã™ã€‚ã“ã®çŠ¶æ…‹ãŒç¶šã„ã¦ã„るよã†ã§ã‚ã‚Œã°ã€Wikiã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„。'; -$lang['authpwdexpire'] = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。'; $lang['i_chooselang'] = '使用言語をé¸æŠžã—ã¦ãã ã•ã„'; $lang['i_installer'] = 'DokuWiki インストーラー'; $lang['i_wikiname'] = 'Wikiå'; diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php index 871f3ec44..0b2d60e4e 100644 --- a/inc/lang/ka/lang.php +++ b/inc/lang/ka/lang.php @@ -266,7 +266,6 @@ $lang['subscr_style_every'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლ ცვლი $lang['subscr_style_digest'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლი გვერდის შეცვლáƒáƒ–ე '; $lang['subscr_style_list'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლი გვერდის შეცვლáƒáƒ–ე '; $lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.'; -$lang['authpwdexpire'] = 'თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ %d დღეში, მáƒáƒšáƒ” შეცვლრმáƒáƒ’იწევთ.'; $lang['i_chooselang'] = 'ენსი áƒáƒ ჩევáƒ'; $lang['i_installer'] = 'DokuWiki დáƒáƒ›áƒ§áƒ”ნებელი'; $lang['i_wikiname'] = 'Wiki სáƒáƒ®áƒ”ლი'; diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index ca2a35cb7..c9b72197b 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -276,7 +276,6 @@ $lang['subscr_style_every'] = 'ëª¨ë“ ë°”ë€œì„ ì´ë©”ì¼ë¡œ 받기'; $lang['subscr_style_digest'] = 'ê° ë¬¸ì„œì˜ ë°”ë€œì„ ìš”ì•½ (매 %.2fì¼ ë§ˆë‹¤)'; $lang['subscr_style_list'] = '마지막 ì´ë©”ì¼ ì´í›„ ë°”ë€ ë¬¸ì„œì˜ ëª©ë¡ (매 %.2fì¼ ë§ˆë‹¤)'; $lang['authtempfail'] = 'ì‚¬ìš©ìž ì¸ì¦ì„ ì¼ì‹œì 으로 ì‚¬ìš©í• ìˆ˜ 없습니다. 만약 계ì†í•´ì„œ ë¬¸ì œê°€ ë°œìƒí•œë‹¤ë©´ 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; -$lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 곧 바꿔야 합니다.'; $lang['i_chooselang'] = 'ì‚¬ìš©í• ì–¸ì–´ë¥¼ ì„ íƒí•˜ì„¸ìš”'; $lang['i_installer'] = 'ë„ì¿ ìœ„í‚¤ 설치 관리ìž'; $lang['i_wikiname'] = '위키 ì´ë¦„'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index dff2d9b28..cb7091e50 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -269,7 +269,6 @@ $lang['subscr_style_every'] = 'vÄ“stuli par katru izmaiņu'; $lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienÄs)'; $lang['subscr_style_list'] = 'kopÅ¡ pÄ“dÄ“jÄs vÄ“stules notikuÅ¡o labojumu sarakstu (reizi %.2f dienÄs)'; $lang['authtempfail'] = 'LietotÄju autentifikÄcija paÅ¡laik nedarbojas. Ja tas turpinÄs ilgstoÅ¡i, lÅ«duz ziņo Wiki administratoram.'; -$lang['authpwdexpire'] = 'Tavai parolei pÄ“c %d dienÄm biegsies termiņš, tÄ drÄ«zumÄ jÄnomaina.'; $lang['i_chooselang'] = 'IzvÄ“lies valodu'; $lang['i_installer'] = 'DokuWiki instalÄ“tÄjs'; $lang['i_wikiname'] = 'Wiki vÄrds'; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index b94202475..f0a235d67 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -290,7 +290,6 @@ $lang['subscr_style_every'] = 'Email bij iedere wijziging'; $lang['subscr_style_digest'] = 'Samenvattings-email met wijzigingen per pagina (elke %.2f dagen)'; $lang['subscr_style_list'] = 'Lijst van veranderde pagina\'s sinds laatste email (elke %.2f dagen)'; $lang['authtempfail'] = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.'; -$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; $lang['i_chooselang'] = 'Kies je taal'; $lang['i_installer'] = 'DokuWiki Installer'; $lang['i_wikiname'] = 'Wikinaam'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 5659286c3..2aa8cdcda 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -287,7 +287,6 @@ $lang['subscr_style_every'] = 'e-post for alle endringer'; $lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)'; $lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)'; $lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.'; -$lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; $lang['i_chooselang'] = 'Velg sprÃ¥k'; $lang['i_installer'] = 'DokuWiki-installasjon'; $lang['i_wikiname'] = 'Wikinavn'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 16375aab3..5c9acfa17 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -281,7 +281,6 @@ $lang['subscr_style_every'] = 'email przy każdej zmianie'; $lang['subscr_style_digest'] = 'e-mailowy wyciÄ…g zmian dla każdej strony (co %.2f dni)'; $lang['subscr_style_list'] = 'lista zmienionych stron od ostatniego e-maila (co %.2f dni)'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. JeÅ›li ta sytuacja siÄ™ powtórzy, powiadom administratora tego wiki.'; -$lang['authpwdexpire'] = 'Twoje hasÅ‚o wygaÅ›nie za %d dni. Należy je zmienić w krótkim czasie.'; $lang['i_chooselang'] = 'Wybierz jÄ™zyk'; $lang['i_installer'] = 'Instalator DokuWiki'; $lang['i_wikiname'] = 'Nazwa Wiki'; diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 5d3afc4fc..23df083d0 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -289,7 +289,6 @@ $lang['subscr_style_every'] = 'um e-mail a cada modificação'; $lang['subscr_style_digest'] = 'um agrupamento de e-mails com as mudanças para cada página (a cada %.2f dias)'; $lang['subscr_style_list'] = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)'; $lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.'; -$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; $lang['i_chooselang'] = 'Selecione o seu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index defb21954..7c6395b4b 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -277,7 +277,6 @@ $lang['subscr_style_every'] = 'email em qualquer alteração'; $lang['subscr_style_digest'] = '"digest email" de alterações em cada página (cada %.2f dias)'; $lang['subscr_style_list'] = 'lista de páginas alteradas desde o último email (cada %.2f dias)'; $lang['authtempfail'] = 'Autenticação temporariamente indisponÃvel. Se a situação persistir, por favor informe o Wiki Admin.'; -$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; $lang['i_chooselang'] = 'Escolha a linguagem'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome Wiki'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 7c7d55098..5953fccda 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -266,7 +266,6 @@ $lang['subscr_style_every'] = 'e-mail la ficare schimbare'; $lang['subscr_style_digest'] = 'e-mail cu sumar al modificărilor pentru fiecare pagină (la fiecare %.2f zile)'; $lang['subscr_style_list'] = 'lista paginilor modificate de la ultimul e-mail (la fiecare %.2f zile)'; $lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Contactează administratorul.'; -$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.'; $lang['i_chooselang'] = 'Alege limba'; $lang['i_installer'] = 'Installer DokuWiki'; $lang['i_wikiname'] = 'Numele acestui wiki'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index c40e1ee20..51285258c 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -292,7 +292,6 @@ $lang['subscr_style_every'] = 'уведомлÑÑ‚ÑŒ о каждом изме $lang['subscr_style_digest'] = 'информационное Ñлектронное пиÑьмо Ñо ÑпиÑком изменений Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтраницы (каждые %.2f дн.)'; $lang['subscr_style_list'] = 'ÑпиÑок изменённых Ñтраниц Ñо времени поÑледнего отправленного Ñлектронного пиÑьма (каждые %.2f дн.)'; $lang['authtempfail'] = 'ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ временно недоÑтупна. ЕÑли проблема продолжаетÑÑ ÐºÐ°ÐºÐ¾Ðµ-то времÑ, пожалуйÑта, Ñообщите об Ñтом Ñвоему админиÑтратору вики.'; -$lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; $lang['i_chooselang'] = 'Выберите Ñвой Ñзык/Choose your language'; $lang['i_installer'] = 'УÑтановка «Докувики»'; $lang['i_wikiname'] = 'Ðазвание вики'; diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index f2d3a90bd..a78989ce0 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -267,7 +267,6 @@ $lang['subscr_style_every'] = 'email pri každej zmene'; $lang['subscr_style_digest'] = 'email so zhrnutÃm zmien pre každú stránku (perióda %.2f dňa)'; $lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)'; $lang['authtempfail'] = 'UžÃvateľská autentifikácia je doÄasne nedostupná. Ak táto situácia pretrváva, prosÃm informujte správcu systému.'; -$lang['authpwdexpire'] = 'PlatnosÅ¥ hesla vyprÅ¡Ã za %d dnÃ, mali by ste ho zmeniÅ¥ Äo najskôr.'; $lang['i_chooselang'] = 'Zvoľte váš jazyk'; $lang['i_installer'] = 'DokuWiki inÅ¡talátor'; $lang['i_wikiname'] = 'Názov Wiki'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 0361393c9..6f7a081ff 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -269,7 +269,6 @@ $lang['subscr_style_every'] = 'elektronsko sporoÄilo ob vsaki spremembi'; $lang['subscr_style_digest'] = 'strnjeno elektronsko sporoÄilo sprememb za vsako stran (vsakih %.2f dni)'; $lang['subscr_style_list'] = 'seznam spremenjenih strani od zadnjega elektronskega sporoÄila (vsakih %.2f dni)'; $lang['authtempfail'] = 'Potrditev uporabnika je trenutno nedostopna. Stopite v stik s skrbnikom sistema wiki.'; -$lang['authpwdexpire'] = 'Geslo bo poteklo v %d dneh. PriporoÄljivo ga je zamenjati.'; $lang['i_chooselang'] = 'Izberite jezik'; $lang['i_installer'] = 'DokuWiki namestitev'; $lang['i_wikiname'] = 'Ime Wiki spletiÅ¡Äa'; diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index d343d0339..0d1f30a7a 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -277,7 +277,6 @@ $lang['subscr_m_receive'] = 'Ta emot'; $lang['subscr_style_every'] = 'skicka epost vid varje ändring'; $lang['subscr_style_list'] = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)'; $lang['authtempfail'] = 'Tillfälligt fel pÃ¥ användarautentisering. Om felet kvarstÃ¥r, var vänlig meddela wikiadministratören.'; -$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.'; $lang['i_chooselang'] = 'Välj sprÃ¥k'; $lang['i_installer'] = 'Installation av DokuWiki'; $lang['i_wikiname'] = 'Wikins namn'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 48d364320..ff7a73eea 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -264,7 +264,6 @@ $lang['subscr_m_subscribe'] = 'Kayıt ol'; $lang['subscr_m_receive'] = 'Al'; $lang['subscr_style_every'] = 'her deÄŸiÅŸiklikte e-posta gönder'; $lang['authtempfail'] = 'Kullanıcı doÄŸrulama geçici olarak yapılamıyor. EÄŸer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.'; -$lang['authpwdexpire'] = 'Åžifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda deÄŸiÅŸtirmelisiniz.'; $lang['i_chooselang'] = 'Dili seçiniz'; $lang['i_installer'] = 'Dokuwiki Kurulum Sihirbazı'; $lang['i_wikiname'] = 'Wiki Adı'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index bda7bb32c..bfe38b920 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -280,7 +280,6 @@ $lang['subscr_style_every'] = 'æ¯æ¬¡æ›´æ”¹éƒ½ç™¼é€ä¿¡ä»¶'; $lang['subscr_style_digest'] = 'å°æ¯å€‹é é¢ç™¼é€æ›´æ”¹çš„摘è¦ä¿¡ä»¶ (æ¯ %.2f 天)'; $lang['subscr_style_list'] = '自上次發信以來更改的é é¢çš„列表 (æ¯ %.2f 天)'; $lang['authtempfail'] = 'æš«ä¸æ供帳號èªè‰ã€‚若本狀æ³æŒçºŒï¼Œè«‹é€šçŸ¥æœ¬ wiki 管ç†å“¡ã€‚'; -$lang['authpwdexpire'] = '您的密碼將在 %d 天內到期,請馬上更æ›æ–°å¯†ç¢¼ã€‚'; $lang['i_chooselang'] = 'é¸æ“‡æ‚¨çš„語系'; $lang['i_installer'] = 'DokuWiki 安è£å·¥å…·'; $lang['i_wikiname'] = '本 wiki çš„å稱'; diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index df55a99e6..8f3a7bbf4 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -289,7 +289,6 @@ $lang['subscr_style_every'] = '对æ¯æ¬¡æ›´æ”¹å‘é€é‚®ä»¶'; $lang['subscr_style_digest'] = '对æ¯ä¸ªé¡µé¢å‘é€æ›´æ”¹çš„摘è¦é‚®ä»¶ï¼ˆæ¯ %.2f 天)'; $lang['subscr_style_list'] = '自上å°é‚®ä»¶ä»¥æ¥æ›´æ”¹çš„页é¢çš„åˆ—è¡¨ï¼ˆæ¯ %.2f 天)'; $lang['authtempfail'] = '用户认è¯æš‚æ—¶æ— æ³•ä½¿ç”¨ã€‚å¦‚æžœè¯¥çŠ¶æ€ä¸€ç›´å˜åœ¨ï¼Œè¯·é€šçŸ¥ç»´åŸºç®¡ç†å‘˜ã€‚'; -$lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; $lang['i_chooselang'] = '选择您的è¯è¨€'; $lang['i_installer'] = 'DokuWiki 安装工具'; $lang['i_wikiname'] = '维基å称'; -- GitLab From 96e99986cc6e7b7f08cacbdeede74c3154f92e1b Mon Sep 17 00:00:00 2001 From: Tim Ruffing <tim@timruffing.de> Date: Sat, 4 Apr 2015 23:44:32 +0200 Subject: [PATCH 073/440] make PHP_CodeSniffer rules compatible with v2 --- _cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php | 2 +- _cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php index c5d14377b..c15a5be02 100644 --- a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php +++ b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php @@ -39,7 +39,7 @@ class DokuWiki_Sniffs_PHP_DeprecatedFunctionsSniff extends Generic_Sniffs_PHP_Fo * * @var array(string => string|null) */ - protected $forbiddenFunctions = array( + public $forbiddenFunctions = array( 'setCorrectLocale' => null, 'html_attbuild' => 'buildAttributes', 'io_runcmd' => null, diff --git a/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php index 9cd9a7d36..bd51b1166 100644 --- a/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php +++ b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php @@ -39,7 +39,7 @@ class DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff extends Generic_Sniffs_PHP_F * * @var array(string => string|null) */ - protected $forbiddenFunctions = array( + public $forbiddenFunctions = array( 'date' => 'dformat', 'strftime' => 'dformat', ); -- GitLab From f93b5aaf5a90e6bdf153596fc4dfa77bc4cde3e8 Mon Sep 17 00:00:00 2001 From: Ninetailz <ninetailz1125@gmail.com> Date: Wed, 8 Apr 2015 02:45:25 +0200 Subject: [PATCH 074/440] translation update --- inc/lang/bn/lang.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index 0995bc478..07e888e2a 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -6,6 +6,7 @@ * @author Foysol <ragebot1125@gmail.com> * @author ninetailz <ninetailz1125@gmail.com> * @author Khan M. B. Asad <muhammad2017@gmail.com> + * @author Ninetailz <ninetailz1125@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'itr'; @@ -198,3 +199,31 @@ $lang['restored'] = 'পà§à¦°à¦¾à¦¨à§‹ সংসà§à¦•à¦°à¦£à§‡à¦° $lang['external_edit'] = 'বাহà§à¦¯à¦¿à¦• সমà§à¦ªà¦¾à¦¦à¦¨à¦¾'; $lang['summary'] = 'সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সারাংশ'; $lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </ a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$lang['download'] = 'ডাউনলোড সà§à¦¨à¦¿à¦ªà§‡à¦Ÿ '; +$lang['tools'] = 'সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['user_tools'] = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['site_tools'] = 'সাইটের সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['page_tools'] = 'পৃষà§à¦ ার সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['skip_to_content'] = 'বিষয়ে à¦à¦¡à¦¼à¦¿à¦¯à¦¼à§‡ যান'; +$lang['sidebar'] = 'সাইডবার'; +$lang['mail_newpage'] = 'পৃষà§à¦ া যোগ করা হয়েছে:'; +$lang['mail_changed'] = 'পৃষà§à¦ া পরিবরà§à¦¤à¦¨ করা হয়েছে:'; +$lang['mail_subscribe_list'] = 'পৃষà§à¦ াগà§à¦²à¦¿à¦° নামসà§à¦¥à¦¾à¦¨ পরিবরà§à¦¤à¦¨:'; +$lang['mail_new_user'] = 'নতà§à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€:'; +$lang['mail_upload'] = 'ফাইল আপলোড করেছেন:'; +$lang['changes_type'] = 'দেখà§à¦¨ পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ'; +$lang['pages_changes'] = 'পৃষà§à¦ াগà§à¦²à¦¿'; +$lang['media_changes'] = 'মিডিয়া ফাইলগà§à¦²à¦¿'; +$lang['both_changes'] = 'পেজ à¦à¦¬à¦‚ মিডিয়া ফাইল উà¦à¦¯à¦¼à§‡à¦‡'; +$lang['qb_bold'] = 'গাঢ় লেখা'; +$lang['qb_italic'] = 'বাà¦à¦•à¦¾ লেখা'; +$lang['qb_underl'] = 'আনà§à¦¡à¦¾à¦°à¦²à¦¾à¦‡à¦¨ টেকà§à¦¸à¦Ÿ'; +$lang['qb_code'] = 'মোনোসà§à¦•à§‡à¦ª লেখা'; +$lang['qb_strike'] = 'সà§à¦Ÿà§à¦°à¦¾à¦‡à¦• মাধà§à¦¯à¦®à§‡ টেকà§à¦¸à¦Ÿ'; +$lang['qb_h1'] = 'সà§à¦¤à¦° 1 শিরোনাম'; +$lang['qb_h2'] = 'সà§à¦¤à¦° 2 শিরোনাম'; +$lang['qb_h3'] = 'সà§à¦¤à¦° 3 শিরোনাম'; +$lang['qb_h4'] = 'সà§à¦¤à¦° 4 শিরোনাম'; +$lang['qb_h5'] = 'সà§à¦¤à¦° 5 শিরোনাম'; +$lang['qb_h'] = 'শিরোনাম'; +$lang['qb_hs'] = 'নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ শিরোনাম'; -- GitLab From 0a71e551221e2019670f92b416f0b42cd111618b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 9 Apr 2015 13:19:12 +0200 Subject: [PATCH 075/440] Add deprecated tag to mail_send, _mail_send_action, mail_encode_address These functions are already deprecated and replaced by the Mailer:: class. The deprecated tag was simply missing. --- inc/mail.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/inc/mail.php b/inc/mail.php index 9f1b1f3d6..e4d06fd86 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -96,15 +96,23 @@ function mail_setup(){ * * @author Andreas Gohr <andi@splitbrain.org> * @see mail() + * + * @deprecated User the Mailer:: class instead */ function mail_send($to, $subject, $body, $from='', $cc='', $bcc='', $headers=null, $params=null){ - + dbg_deprecated('class Mailer::'); $message = compact('to','subject','body','from','cc','bcc','headers','params'); return trigger_event('MAIL_MESSAGE_SEND',$message,'_mail_send_action'); } +/** + * @param $data + * @return bool + * + * @deprecated User the Mailer:: class instead + */ function _mail_send_action($data) { - + dbg_deprecated('class Mailer::'); // retrieve parameters from event data, $to, $subject, $body, $from, $cc, $bcc, $headers, $params $to = $data['to']; $subject = $data['subject']; @@ -177,8 +185,11 @@ function _mail_send_action($data) { * @param string $string Multiple adresses separated by commas * @param string $header Name of the header (To,Bcc,Cc,...) * @param boolean $names Allow named Recipients? + * + * @deprecated User the Mailer:: class instead */ function mail_encode_address($string,$header='',$names=true){ + dbg_deprecated('class Mailer::'); $headers = ''; $parts = explode(',',$string); foreach ($parts as $part){ -- GitLab From 39c0ce3e22447366ab7adc4ef053c899752aa6bc Mon Sep 17 00:00:00 2001 From: Mohammad Anini <mohd.anini@gmail.com> Date: Sun, 12 Apr 2015 15:24:32 +0300 Subject: [PATCH 076/440] Update register.txt (Arabic) - Fix spilling mistake --- inc/lang/ar/register.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/lang/ar/register.txt b/inc/lang/ar/register.txt index 57406ddd4..10a7fa202 100644 --- a/inc/lang/ar/register.txt +++ b/inc/lang/ar/register.txt @@ -1,3 +1,3 @@ ====== سجل كمستخدم جديد ====== -أملئ البيانات التالية لتسجيل Øساب جديد على الويكي. تأكد من كتابة **بريد إلكترونى صØÙŠØ** - سترسل اليك كلمة سر جديدة. أسم الدخول يجب أن يكون [[doku>pagename|أسم صÙØØ©]] صØÙŠØ. +املئ البيانات التالية لتسجيل Øساب جديد على الويكي. تأكد من كتابة **بريد إلكتروني صØÙŠØ** - سترسل إليك كلمة سر جديدة. اسم الدخول يجب أن يكون [[doku>pagename|أسم صÙØØ©]] صØÙŠØ. -- GitLab From 796c611069dba09e1c7bb8471242195c14a93412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Schplurtz=20le=20D=C3=A9boulonn=C3=A9?= <schplurtz@laposte.net> Date: Tue, 14 Apr 2015 02:36:02 +0200 Subject: [PATCH 077/440] translation update --- lib/plugins/authldap/lang/fr/settings.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/authldap/lang/fr/settings.php b/lib/plugins/authldap/lang/fr/settings.php index aa75105cf..619aee3d3 100644 --- a/lib/plugins/authldap/lang/fr/settings.php +++ b/lib/plugins/authldap/lang/fr/settings.php @@ -21,7 +21,9 @@ $lang['binddn'] = 'Nom de domaine d\'un utilisateur de connexion $lang['bindpw'] = 'Mot de passe de l\'utilisateur ci-dessus.'; $lang['userscope'] = 'Limiter la portée de recherche d\'utilisateurs'; $lang['groupscope'] = 'Limiter la portée de recherche de groupes'; +$lang['userkey'] = 'Attribut indiquant le nom d\'utilisateur. Doit être en accord avec le filtre d\'utilisateur.'; $lang['groupkey'] = 'Affiliation aux groupes à partir de n\'importe quel attribut utilisateur (au lieu des groupes AD standards), p. ex. groupes par département ou numéro de téléphone'; +$lang['modPass'] = 'Peut-on changer le mot de passe LDAP depuis DokiWiki ?'; $lang['debug'] = 'Afficher des informations de bégogage supplémentaires pour les erreurs'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; -- GitLab From a7ec353091498e86d606c27f5ca7a808c2d096c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Tue, 14 Apr 2015 10:12:02 +0200 Subject: [PATCH 078/440] Add display options to extension manger Allows tho show/hide extensions that are: enabled, disabled, updatable --- lib/plugins/extension/helper/gui.php | 9 +++++++++ lib/plugins/extension/helper/list.php | 1 + lib/plugins/extension/lang/en/lang.php | 7 ++++++- lib/plugins/extension/script.js | 8 +++++++- lib/plugins/extension/style.less | 13 +++++++++++++ 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/lib/plugins/extension/helper/gui.php b/lib/plugins/extension/helper/gui.php index 3a0f0c589..2dbb3d5e5 100644 --- a/lib/plugins/extension/helper/gui.php +++ b/lib/plugins/extension/helper/gui.php @@ -38,6 +38,15 @@ class helper_plugin_extension_gui extends DokuWiki_Plugin { echo '<div class="panelHeader">'; echo $this->locale_xhtml('intro_plugins'); + + $options = new Doku_Form( "viewoptions" ); + $options->addElement( form_makeOpenTag( "p" ) ); + $options->addElement( $this->getLang('display_viewoptions') ); + $options->addElement( form_makeCheckboxField( "enabled", 1, $this->getLang('display_enabled') ) ); + $options->addElement( form_makeCheckboxField( "disabled", 1, $this->getLang('display_disabled') ) ); + $options->addElement( form_makeCheckboxField( "updatable", 1, $this->getLang('display_updatable') ) ); + $options->addElement( form_makeCloseTag( "p" ) ); + $options->printForm(); echo '</div>'; $pluginlist = $plugin_controller->getList('', true); diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 8bcd00ec6..11aea1d0e 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -151,6 +151,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if($extension->isInstalled()) { $class.=' installed'; $class.= ($extension->isEnabled()) ? ' enabled':' disabled'; + if($extension->updateAvailable()) $class .= ' updatable'; } if(!$extension->canModify()) $class.= ' notselect'; if($extension->isProtected()) $class.= ' protected'; diff --git a/lib/plugins/extension/lang/en/lang.php b/lib/plugins/extension/lang/en/lang.php index f545b6da3..907f91c23 100644 --- a/lib/plugins/extension/lang/en/lang.php +++ b/lib/plugins/extension/lang/en/lang.php @@ -101,4 +101,9 @@ $lang['install_url'] = 'Install from URL:'; $lang['install_upload'] = 'Upload Extension:'; $lang['repo_error'] = 'The plugin repository could not be contacted. Make sure your server is allowed to contact www.dokuwiki.org and check your proxy settings.'; -$lang['nossl'] = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.'; \ No newline at end of file +$lang['nossl'] = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.'; + +$lang['display_viewoptions'] = 'View Options:'; +$lang['display_enabled'] = 'enabled'; +$lang['display_disabled'] = 'disabled'; +$lang['display_updatable'] = 'updatable'; diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index fab88162d..43af21ee1 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -110,4 +110,10 @@ jQuery(function(){ ); }); -}); \ No newline at end of file + /** + * Enable all plugin types + */ + $extmgr.find( '#viewoptions :checkbox' ).change(function(){ + jQuery('#extension__list').toggleClass( this.name ); + }).click(); +}); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index d20689099..fe15da16a 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -281,6 +281,15 @@ * Enabled/Disabled overrides */ #extension__list { + + .enabled, .disabled, .updatable { + display: none; + } + + &.enabled .enabled, &.disabled .disabled, &.updatable .updatable { + display: block; + } + .enabled div.screenshot span { background: transparent url(images/enabled.png) no-repeat 2px 2px; } @@ -361,3 +370,7 @@ display: block; width: 60%; } + +#viewoptions label { + margin-left: 1em; +} -- GitLab From d15f7f88b28a5b4daba129f4f5e2dfcfe83ac856 Mon Sep 17 00:00:00 2001 From: Tomas Darius Davainis <tomasdd@gmail.com> Date: Fri, 17 Apr 2015 03:25:59 +0200 Subject: [PATCH 079/440] translation update --- inc/lang/lt/lang.php | 19 ++++++++++--------- lib/plugins/acl/lang/lt/lang.php | 4 ++-- lib/plugins/popularity/lang/lt/lang.php | 5 +++-- lib/plugins/usermanager/lang/lt/lang.php | 5 +++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index d53a117f4..c356e3898 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -1,12 +1,13 @@ <?php + /** - * lithuanian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Linas Valiukas <shirshegsm@gmail.com> * @author Edmondas Girkantas <eg@zemaitija.net> * @author ArÅ«nas VaitekÅ«nas <aras@fan.lt> * @author audrius.klevas@gmail.com + * @author Tomas Darius Davainis <tomasdd@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -46,6 +47,7 @@ $lang['btn_draft'] = 'Redaguoti juodraÅ¡tį'; $lang['btn_recover'] = 'Atkurti juodraÅ¡tį'; $lang['btn_draftdel'] = 'Å alinti juodraÅ¡tį'; $lang['btn_register'] = 'Registruotis'; +$lang['btn_img_backto'] = 'Atgal į %s'; $lang['loggedinas'] = 'PrisijungÄ™s kaip:'; $lang['user'] = 'Vartotojo vardas'; $lang['pass'] = 'Slaptažodis'; @@ -88,8 +90,13 @@ $lang['txt_filename'] = 'Ä®veskite wikivardÄ… (nebÅ«tina):'; $lang['txt_overwrt'] = 'PerraÅ¡yti egzistuojanÄiÄ… bylÄ…'; $lang['lockedby'] = 'Užrakintas vartotojo:'; $lang['lockexpire'] = 'Užraktas bus nuimtas:'; -$lang['js']['willexpire'] = 'Å io puslapio redagavimo užrakto galiojimo laikas baigsis po minutÄ—s.\nNorÄ—dami iÅ¡vengti nesklandumų naudokite peržiÅ«ros mygtukÄ… ir užraktas atsinaujins.'; +$lang['js']['willexpire'] = 'Å io puslapio redagavimo užrakto galiojimo laikas baigsis po minutÄ—s.\nNorÄ—dami iÅ¡vengti nesklandumų naudokite peržiÅ«ros mygtukÄ… ir užraktas atsinaujins.'; $lang['js']['notsavedyet'] = 'Pakeitimai nebus iÅ¡saugoti.\nTikrai tÄ™sti?'; +$lang['js']['keepopen'] = 'PažymÄ—jus palikti langÄ… atvertÄ…'; +$lang['js']['hidedetails'] = 'PaslÄ—pti Detales'; +$lang['js']['nosmblinks'] = 'Nurodos į "Windows shares" veikia tik su Microsoft Internet Explorer narÅ¡ykle. +Vis dÄ—lto, jÅ«s galite nukopijuoti Å¡iÄ… nuorodÄ….'; +$lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įraÅ¡Ä…(us)?'; $lang['rssfailed'] = 'SiunÄiant šį feed\'Ä… įvyko klaida: '; $lang['nothingfound'] = 'PaieÅ¡kos rezultatų nÄ—ra.'; $lang['mediaselect'] = 'Mediabylos iÅ¡sirinkimas'; @@ -107,10 +114,6 @@ $lang['deletefail'] = 'Byla "%s" negali bÅ«ti iÅ¡trinta - patikrinkit $lang['mediainuse'] = 'Byla "%s" nebuvo iÅ¡trinta - ji vis dar naudojama.'; $lang['namespaces'] = 'Pavadinimai'; $lang['mediafiles'] = 'Prieinamos bylos'; -$lang['js']['keepopen'] = 'PažymÄ—jus palikti langÄ… atvertÄ…'; -$lang['js']['hidedetails'] = 'PaslÄ—pti Detales'; -$lang['js']['nosmblinks'] = 'Nurodos į "Windows shares" veikia tik su Microsoft Internet Explorer narÅ¡ykle. -Vis dÄ—lto, jÅ«s galite nukopijuoti Å¡iÄ… nuorodÄ….'; $lang['mediausage'] = 'Failo nuorodai užraÅ¡yti naudokite tokiÄ… sintaksÄ™:'; $lang['mediaview'] = 'ŽiÅ«rÄ—ti pirminį failÄ…'; $lang['mediaroot'] = 'pradžia (root)'; @@ -159,12 +162,10 @@ $lang['qb_media'] = 'PaveikslÄ—liai ir kitos bylos'; $lang['qb_sig'] = 'Ä®terpti paraÅ¡Ä…'; $lang['qb_smileys'] = 'Å ypsenÄ—lÄ—s'; $lang['qb_chars'] = 'SpecialÅ«s simboliai'; -$lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įraÅ¡Ä…(us)?'; $lang['admin_register'] = 'Sukurti naujÄ… vartotojÄ…'; $lang['metaedit'] = 'Redaguoti metaduomenis'; $lang['metasaveerr'] = 'Nepavyko iÅ¡saugoti metaduomenų'; $lang['metasaveok'] = 'Metaduomenys iÅ¡saugoti'; -$lang['btn_img_backto'] = 'Atgal į %s'; $lang['img_title'] = 'Pavadinimas:'; $lang['img_caption'] = 'AntraÅ¡tÄ—:'; $lang['img_date'] = 'Data:'; diff --git a/lib/plugins/acl/lang/lt/lang.php b/lib/plugins/acl/lang/lt/lang.php index ef339177b..2a1748abc 100644 --- a/lib/plugins/acl/lang/lt/lang.php +++ b/lib/plugins/acl/lang/lt/lang.php @@ -1,8 +1,8 @@ <?php + /** - * lithuanian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Linas Valiukas <shirshegsm@gmail.com> * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> diff --git a/lib/plugins/popularity/lang/lt/lang.php b/lib/plugins/popularity/lang/lt/lang.php index 88df29c50..dca350475 100644 --- a/lib/plugins/popularity/lang/lt/lang.php +++ b/lib/plugins/popularity/lang/lt/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Lithuanian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> */ diff --git a/lib/plugins/usermanager/lang/lt/lang.php b/lib/plugins/usermanager/lang/lt/lang.php index db3cf2d32..3c0029303 100644 --- a/lib/plugins/usermanager/lang/lt/lang.php +++ b/lib/plugins/usermanager/lang/lt/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Lithuanian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author grawity <grawity@gmail.com> * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> -- GitLab From a07baef5da34434feecc952410ab3cbc37a0f428 Mon Sep 17 00:00:00 2001 From: Mohammad Anini <mohd.anini@gmail.com> Date: Sun, 19 Apr 2015 00:44:02 +0300 Subject: [PATCH 080/440] Adding Arabic Stopwords Adding Arabic stopwords and keeping Engish stopwords as well, since most of the Arabic wikis contain a lot of English words. --- inc/lang/ar/stopwords.txt | 163 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/inc/lang/ar/stopwords.txt b/inc/lang/ar/stopwords.txt index bc6eb48ae..1a885988a 100644 --- a/inc/lang/ar/stopwords.txt +++ b/inc/lang/ar/stopwords.txt @@ -2,6 +2,169 @@ # When you edit this file be sure to use UNIX line endings (single newline) # No need to include words shorter than 3 chars - these are ignored anyway # This list is based upon the ones found at http://www.ranks.nl/stopwords/ +ب +ا +ØŒ +عشر +عدد +عدة +عشرة +عدم +عام +عاما +عن +عند +عندما +على +عليه +عليها +زيارة +سنة +سنوات +تم +ضد +بعد +بعض +اعادة +اعلنت +بسبب +Øتى +اذا +اØد +اثر +برس +باسم +غدا +شخصا +ØµØ¨Ø§Ø +اطار +اربعة +اخرى +بان +اجل +غير +بشكل +Øاليا +بن +به +ثم +ا٠+ان +او +اي +بها +صÙر +Øيث +اكد +الا +اما +امس +السابق +التى +التي +اكثر +ايار +ايضا +ثلاثة +الذاتي +الاخيرة +الثاني +الثانية +الذى +الذي +الان +امام +ايام +خلال +Øوالى +الذين +الاول +الاولى +بين +ذلك +دون +Øول +Øين +ال٠+الى +انه +اول +ضمن +انها +جميع +الماضي +الوقت +المقبل +اليوم +Ù€ +Ù +Ùˆ +Ùˆ6 +قد +لا +ما +مع +مساء +هذا +واØد +واضا٠+واضاÙت +Ùان +قبل +قال +كان +لدى +Ù†ØÙˆ +هذه +وان +واكد +كانت +ÙˆØ§ÙˆØ¶Ø +مايو +ÙÙ‰ +ÙÙŠ +كل +لم +لن +له +من +هو +هي +قوة +كما +لها +منذ +وقد +ولا +Ù†Ùسه +لقاء +مقابل +هناك +وقال +وكان +نهاية +وقالت +وكانت +للامم +Ùيه +كلم +لكن +ÙˆÙÙŠ +وق٠+ولم +ومن +وهو +وهي +يوم +Ùيها +منها +مليار +لوكالة +يكون +يمكن +مليون +ÙÙ‰ +أم about are and -- GitLab From c71cd01ad950af15dec56b96ebd5884b9b897cfd Mon Sep 17 00:00:00 2001 From: Max Lyashuk <m_lyashuk@ukr.net> Date: Sun, 19 Apr 2015 14:00:50 +0200 Subject: [PATCH 081/440] translation update --- inc/lang/uk/lang.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index a6b08c905..0b628055f 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -2,14 +2,15 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oleksiy Voronin <ovoronin@gmail.com> * @author serg_stetsuk@ukr.net * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko <uko@uar.net> - * @author Ulrikhe Lukoie <lukoie@gmail.com> + * @author Ulrikhe Lukoie <lukoie@gmail.com> * @author Kate Arzamastseva pshns@ukr.net * @author Egor Smkv <egorsmkv@gmail.com> + * @author Max Lyashuk <m_lyashuk@ukr.net> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -52,7 +53,9 @@ $lang['btn_draftdel'] = 'Знищити чернетку'; $lang['btn_revert'] = 'Відновити'; $lang['btn_register'] = 'РеєÑтраціÑ'; $lang['btn_apply'] = 'ЗаÑтоÑувати'; +$lang['btn_media'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-файлами'; $lang['btn_deleteuser'] = 'Видалити мій аккаунт'; +$lang['btn_img_backto'] = 'ПовернутиÑÑ Ð´Ð¾ %s'; $lang['loggedinas'] = 'Ви:'; $lang['user'] = 'КориÑтувач'; $lang['pass'] = 'Пароль'; @@ -98,6 +101,7 @@ $lang['searchmedia_in'] = 'Шукати у %s'; $lang['txt_upload'] = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ:'; $lang['txt_filename'] = 'Завантажити Ñк (не обов\'Ñзкове):'; $lang['txt_overwrt'] = 'ПерезапиÑати Ñ–Ñнуючий файл'; +$lang['maxuploadsize'] = 'Ð’Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимум %s на файл.'; $lang['lockedby'] = 'Заблоковано:'; $lang['lockexpire'] = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ð²:'; $lang['js']['willexpire'] = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñторінки закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· хвилину.\n Щоб уникнути конфліктів викориÑтовуйте кнопку переглÑду Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ.'; @@ -132,9 +136,14 @@ $lang['js']['nosmblinks'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° мережеві па $lang['js']['linkwiz'] = 'Чарівник поÑилань'; $lang['js']['linkto'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð°:'; $lang['js']['del_confirm'] = 'ДійÑно знищити обрані елементи?'; +$lang['js']['restore_confirm'] = 'ДійÑно відновити цю верÑÑ–ÑŽ?'; +$lang['js']['media_diff'] = 'ПереглÑнути різницю:'; +$lang['js']['media_select'] = 'Оберіть файли'; $lang['js']['media_upload_btn'] = 'Завантажити'; $lang['js']['media_done_btn'] = 'УÑпішно'; +$lang['js']['media_drop'] = 'ПеретÑгніть Ñюди файли Ð´Ð»Ñ Ð²Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ'; $lang['js']['media_cancel'] = 'видалити'; +$lang['js']['media_overwrt'] = 'ПерезапиÑати Ñ–Ñнуючі файли'; $lang['rssfailed'] = 'Виникла помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ RSS-Ñтрічки: '; $lang['nothingfound'] = 'Ðічого не знайдено.'; $lang['mediaselect'] = 'Вибір медіа-файлу'; @@ -172,6 +181,9 @@ $lang['difflink'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° цей ÑпиÑок з $lang['diff_type'] = 'ПереглÑнути відмінноÑÑ‚Ñ–:'; $lang['diff_inline'] = 'Вбудувати'; $lang['diff_side'] = 'ПорÑд'; +$lang['diffprevrev'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ'; +$lang['diffnextrev'] = 'ÐаÑтупна ревізіÑ'; +$lang['difflastrev'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ'; $lang['line'] = 'Ð Ñдок'; $lang['breadcrumb'] = 'Відвідано:'; $lang['youarehere'] = 'Ви тут:'; @@ -194,7 +206,9 @@ $lang['mail_changed'] = 'Ñторінку змінено:'; $lang['mail_subscribe_list'] = 'Ñторінки, що змінено у проÑторі імен:'; $lang['mail_new_user'] = 'новий кориÑтувач:'; $lang['mail_upload'] = 'завантажено файл:'; +$lang['changes_type'] = 'ПереглÑнути зміни '; $lang['pages_changes'] = 'Сторінок'; +$lang['media_changes'] = 'Медіа-файли'; $lang['qb_bold'] = 'Ðапівжирний текÑÑ‚'; $lang['qb_italic'] = 'КурÑив'; $lang['qb_underl'] = 'ПідкреÑлений текÑÑ‚'; @@ -224,7 +238,6 @@ $lang['admin_register'] = 'Додати нового кориÑтувач $lang['metaedit'] = 'Редагувати метадані'; $lang['metasaveerr'] = 'Помилка запиÑу метаданих'; $lang['metasaveok'] = 'Метадані збережено'; -$lang['btn_img_backto'] = 'ПовернутиÑÑ Ð´Ð¾ %s'; $lang['img_title'] = 'Ðазва:'; $lang['img_caption'] = 'ПідпиÑ:'; $lang['img_date'] = 'Дата:'; @@ -235,6 +248,8 @@ $lang['img_copyr'] = 'ÐвторÑькі права:'; $lang['img_format'] = 'Формат:'; $lang['img_camera'] = 'Камера:'; $lang['img_keywords'] = 'Ключові Ñлова:'; +$lang['img_width'] = 'Ширини:'; +$lang['img_height'] = 'ВиÑота:'; $lang['subscr_subscribe_success'] = 'Додано %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s'; $lang['subscr_subscribe_error'] = 'Помилка при додавані %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s'; $lang['subscr_subscribe_noaddress'] = 'Ðемає адреÑи, аÑоційованої з Вашим логіном, тому Ви не можете бути додані до ÑпиÑку підпиÑки.'; -- GitLab From 153dee4f7146278cd96d2240e3b1749ec3f2488a Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 19 Apr 2015 18:15:29 +0100 Subject: [PATCH 082/440] increased copyright year in wiki:dokuwiki --- data/pages/wiki/dokuwiki.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pages/wiki/dokuwiki.txt b/data/pages/wiki/dokuwiki.txt index 0e08fdcd3..29843e5c6 100644 --- a/data/pages/wiki/dokuwiki.txt +++ b/data/pages/wiki/dokuwiki.txt @@ -57,7 +57,7 @@ All documentation and additional information besides the [[syntax|syntax descrip ===== Copyright ===== -2004-2013 (c) Andreas Gohr <andi@splitbrain.org>((Please do not contact me for help and support -- use the [[doku>mailinglist]] or [[http://forum.dokuwiki.org|forum]] instead)) and the DokuWiki Community +2004-2015 (c) Andreas Gohr <andi@splitbrain.org>((Please do not contact me for help and support -- use the [[doku>mailinglist]] or [[http://forum.dokuwiki.org|forum]] instead)) and the DokuWiki Community The DokuWiki engine is licensed under [[http://www.gnu.org/licenses/gpl.html|GNU General Public License]] Version 2. If you use DokuWiki in your company, consider [[doku>donate|donating]] a few bucks ;-). -- GitLab From bf43fe7bbab79116830152b2d2326dc1e7457536 Mon Sep 17 00:00:00 2001 From: Yoven <epy@free.fr> Date: Sun, 19 Apr 2015 19:28:43 +0200 Subject: [PATCH 083/440] 2 typo fixes --- lib/plugins/extension/lang/fr/lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/extension/lang/fr/lang.php b/lib/plugins/extension/lang/fr/lang.php index 44d403847..1a5e469f8 100644 --- a/lib/plugins/extension/lang/fr/lang.php +++ b/lib/plugins/extension/lang/fr/lang.php @@ -64,7 +64,7 @@ $lang['msg_enabled'] = 'Greffon %s activé'; $lang['msg_disabled'] = 'Greffon %s désactivé'; $lang['msg_delete_success'] = 'Extension %s désinstallée.'; $lang['msg_delete_failed'] = 'Echec de la désinstallation de l\'extension %s'; -$lang['msg_template_install_success'] = 'Thème %s installée avec succès'; +$lang['msg_template_install_success'] = 'Thème %s installé avec succès'; $lang['msg_template_update_success'] = 'Thème %s mis à jour avec succès'; $lang['msg_plugin_install_success'] = 'Greffon %s installé avec succès'; $lang['msg_plugin_update_success'] = 'Greffon %s mis à jour avec succès'; @@ -79,7 +79,7 @@ $lang['error_badurl'] = 'Les URL doivent commencer par http ou https'; $lang['error_dircreate'] = 'Impossible de créer le dossier temporaire pour le téléchargement.'; $lang['error_download'] = 'Impossible de télécharger le fichier : %s'; $lang['error_decompress'] = 'Impossible de décompresser le fichier téléchargé. C\'est peut être le résultat d\'une erreur de téléchargement, auquel cas vous devriez réessayer. Le format de compression est peut-être inconnu. Dans ce cas il vous faudra procéder à une installation manuelle.'; -$lang['error_findfolder'] = 'Impossible d\'idnetifier le dossier de l\'extension. vous devez procéder à une installation manuelle.'; +$lang['error_findfolder'] = 'Impossible d\'identifier le dossier de l\'extension. vous devez procéder à une installation manuelle.'; $lang['error_copy'] = 'Une erreur de copie de fichier s\'est produite lors de l\'installation des fichiers dans le dossier <em>%s</em>. Il se peut que le disque soit plein, ou que les permissions d\'accès aux fichiers soient incorrectes. Il est possible que le greffon soit partiellement installé et que cela laisse votre installation de DoluWiki instable.'; $lang['noperms'] = 'Impossible d\'écrire dans le dossier des extensions.'; $lang['notplperms'] = 'Impossible d\'écrire dans le dossier des thèmes.'; -- GitLab From 703509f636f39a80b681e76b4998973c952803a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 23 Apr 2015 14:33:00 +0200 Subject: [PATCH 084/440] Move cursor to the end of the text in input --- lib/scripts/linkwiz.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index e8191dbcb..752e12187 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -299,6 +299,9 @@ var dw_linkwiz = { dw_linkwiz.$wiz.show(); dw_linkwiz.$entry.focus(); dw_linkwiz.autocomplete(); + var temp = dw_linkwiz.$entry.val(); + dw_linkwiz.$entry.val(''); + dw_linkwiz.$entry.val(temp); }, /** -- GitLab From fcf506ee6d1ecd6e676d7bd8daa334964ef46265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 23 Apr 2015 14:53:31 +0200 Subject: [PATCH 085/440] Add comment to explain purpose of folliwing lines --- lib/scripts/linkwiz.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index 752e12187..7c383ffe4 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -299,6 +299,8 @@ var dw_linkwiz = { dw_linkwiz.$wiz.show(); dw_linkwiz.$entry.focus(); dw_linkwiz.autocomplete(); + + // Move the cursor to the end of the input var temp = dw_linkwiz.$entry.val(); dw_linkwiz.$entry.val(''); dw_linkwiz.$entry.val(temp); -- GitLab From e40f7042b86e8670dc1dbe18d297eb5c1adb701e Mon Sep 17 00:00:00 2001 From: Alex P <alexander@lanos.co.uk> Date: Fri, 24 Apr 2015 16:41:16 +0200 Subject: [PATCH 086/440] translation update --- inc/lang/ru/lang.php | 1 + lib/plugins/authldap/lang/ru/settings.php | 9 +++++++++ lib/plugins/authpgsql/lang/ru/settings.php | 2 ++ lib/plugins/extension/lang/ru/lang.php | 3 +++ 4 files changed, 15 insertions(+) diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 96278d53b..516eb01c7 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -29,6 +29,7 @@ * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> */ $lang['encoding'] = ' utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 1e5391644..067ec9de4 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -9,6 +9,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Владимир <id37736@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> */ $lang['server'] = 'Ваш LDAP-Ñервер. Либо Ð¸Ð¼Ñ Ñ…Ð¾Ñта (<code>localhost</code>), либо полный URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Порт LDAP-Ñервера, еÑли выше не был указан полный URL'; @@ -18,12 +19,20 @@ $lang['userfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка акка $lang['groupfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка групп. Ðапример: <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð°. Возможно, вам нужно указать <code>3</code>'; $lang['starttls'] = 'ИÑпользовать TLS-подключениÑ?'; +$lang['referrals'] = 'Следовать за referrals ?'; $lang['deref'] = 'Как раÑшифровывать пÑевдонимы?'; +$lang['binddn'] = 'DN вторичного bind пользователÑ, еÑли anonymous bind недоÑтаточно. Ðапример: <code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['userscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке пользователей'; $lang['groupscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке групп'; +$lang['userkey'] = 'Ðтрибут означающий Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ; должен быть таким же как в userfilter'; +$lang['groupkey'] = 'ИÑпользовать любой атрибут Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² группу (вмеÑто Ñтандартного AD groups) Ðапример из атрибута department или telephone number'; +$lang['modPass'] = 'Может ли LDAP пароль быть поменÑн через dokuwiki?'; $lang['debug'] = 'Показывать дополнительную отладочную информацию при ошибках'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'иÑользовать по умолчанию'; +$lang['referrals_o_0'] = 'не Ñледовать за referrals'; +$lang['referrals_o_1'] = 'Следовать за referrals'; diff --git a/lib/plugins/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php index 2af299172..a74296ab8 100644 --- a/lib/plugins/authpgsql/lang/ru/settings.php +++ b/lib/plugins/authpgsql/lang/ru/settings.php @@ -8,6 +8,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> * @author Type-kun <workwork-1@yandex.ru> + * @author Alex P <alexander@lanos.co.uk> */ $lang['server'] = 'Ваш PostgreSQL-Ñервер'; $lang['port'] = 'Порт вашего PostgreSQL-Ñервера'; @@ -15,6 +16,7 @@ $lang['user'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ PostgreSQL'; $lang['password'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['database'] = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных'; $lang['debug'] = 'Отображать дополнительную отладочную информацию'; +$lang['forwardClearPass'] = 'Передать чиÑтым текÑтом ползовательÑкие пароли в SQL запроÑÑ‹ ниже, вмеÑто иÑпользование опции passcrypt'; $lang['checkPass'] = 'Выражение SQL, оÑущеÑтвлÑющее проверку паролÑ'; $lang['getUserInfo'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о пользователе'; $lang['getGroups'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о членÑтве пользователе в группах'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 381d84500..4b2542420 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -7,6 +7,7 @@ * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> */ $lang['menu'] = 'Управление дополнениÑми'; $lang['tab_plugins'] = 'УÑтановленные плагины'; @@ -87,6 +88,8 @@ $lang['noperms'] = 'Папка Ð´Ð»Ñ Ñ€Ð°Ñширений нед $lang['notplperms'] = 'Папка Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['nopluginperms'] = 'Папка плагинов недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['git'] = 'Ðто раÑширение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; +$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; $lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа URL'; $lang['install_upload'] = 'Скачать раÑширение'; $lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼.'; +$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и раÑширений.'; -- GitLab From 7d986b28c67e25c25b73625af13967137a426d0f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 25 Apr 2015 08:54:02 +0200 Subject: [PATCH 087/440] new travis config test (but allow fails) against hhvm and PHP nightly (PHP7) builds remove phpunit pinning --- .travis.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0bef94048..0f9d2331a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,13 +4,17 @@ php: - "5.5" - "5.4" - "5.3" + - "hhvm" + - "nightly" +matrix: + allow_failures: + - php: + - "hhvm" + - "nightly" notifications: irc: channels: - "chat.freenode.net#dokuwiki" on_success: change on_failure: change -install: - - wget https://phar.phpunit.de/phpunit-4.3.5.phar -O _test/phpunit - - chmod 755 _test/phpunit -script: cd _test && ./phpunit --verbose --stderr +script: cd _test && phpunit --verbose --stderr -- GitLab From bd8c2ebfb888520b80db00d3c1c6288be289862c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 25 Apr 2015 10:20:14 +0200 Subject: [PATCH 088/440] introduce new "flaky" test group this group is skipped by default --- _test/phpunit.xml | 6 ++++++ _test/tests/inc/cache_use.test.php | 19 +++++++------------ _test/tests/inc/httpclient_http.test.php | 1 + 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/_test/phpunit.xml b/_test/phpunit.xml index 25506b1ae..6e2509749 100644 --- a/_test/phpunit.xml +++ b/_test/phpunit.xml @@ -18,6 +18,12 @@ </testsuite> </testsuites> + <groups> + <exclude> + <group>flaky</group> + </exclude> + </groups> + <filter> <whitelist addUncoveredFilesFromWhitelist="false"> <directory suffix=".php">../</directory> diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index 3ea212d50..c0c12580a 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -4,6 +4,8 @@ * Class cache_use_test * * Tests if caching can actually be used + * + * @todo tests marked as flaky until Ticket #694 has been fixed */ class cache_use_test extends DokuWikiTest { /** @var cache_renderer $cache */ @@ -28,18 +30,11 @@ class cache_use_test extends DokuWikiTest { touch($this->cache->cache, $time); } - function test_use() { - $this->markTestSkipped('Disabled until Ticket #694 has been fixed'); - return; - - $this->assertTrue($this->cache->useCache()); - } - /** * In all the following tests the cache should not be usable * as such, they are meaningless if test_use didn't pass. * - * @depends test_use + * @group flaky */ function test_purge() { /* @var Input $INPUT */ @@ -51,7 +46,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_filedependency() { // give the dependent src file the same mtime as the cache @@ -60,7 +55,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_age() { // need to age both our source file & the cache @@ -74,7 +69,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_confnocaching() { global $conf; @@ -83,4 +78,4 @@ class cache_use_test extends DokuWikiTest { $this->assertFalse($this->cache->useCache()); $this->assertNotEmpty($this->cache->_nocache); } -} \ No newline at end of file +} diff --git a/_test/tests/inc/httpclient_http.test.php b/_test/tests/inc/httpclient_http.test.php index 3446e1184..94b8e1bc1 100644 --- a/_test/tests/inc/httpclient_http.test.php +++ b/_test/tests/inc/httpclient_http.test.php @@ -289,6 +289,7 @@ class httpclient_http_test extends DokuWikiTest { * This address caused trouble with stream_select() * * @group internet + * @group flaky */ function test_wikimatrix(){ $http = new HTTPMockClient(); -- GitLab From d8dd70c79c912e00e4d7e71cbb4aca3e791cab0d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 25 Apr 2015 10:38:15 +0200 Subject: [PATCH 089/440] fixed allow_failures syntax --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0f9d2331a..edca80e0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,8 @@ php: - "nightly" matrix: allow_failures: - - php: - - "hhvm" - - "nightly" + - php: "hhvm" + - php: "nightly" notifications: irc: channels: -- GitLab From 79a3bed0a23b6bef35eb12c6ccbb1f3301f6c621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Mon, 27 Apr 2015 08:00:12 +0200 Subject: [PATCH 090/440] Generate display options via JS Since it is a JS function only, the form will be generated by it too. --- lib/plugins/extension/helper/gui.php | 9 --------- lib/plugins/extension/lang/en/lang.php | 8 ++++---- lib/plugins/extension/script.js | 18 ++++++++++++++---- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/plugins/extension/helper/gui.php b/lib/plugins/extension/helper/gui.php index 2dbb3d5e5..3a0f0c589 100644 --- a/lib/plugins/extension/helper/gui.php +++ b/lib/plugins/extension/helper/gui.php @@ -38,15 +38,6 @@ class helper_plugin_extension_gui extends DokuWiki_Plugin { echo '<div class="panelHeader">'; echo $this->locale_xhtml('intro_plugins'); - - $options = new Doku_Form( "viewoptions" ); - $options->addElement( form_makeOpenTag( "p" ) ); - $options->addElement( $this->getLang('display_viewoptions') ); - $options->addElement( form_makeCheckboxField( "enabled", 1, $this->getLang('display_enabled') ) ); - $options->addElement( form_makeCheckboxField( "disabled", 1, $this->getLang('display_disabled') ) ); - $options->addElement( form_makeCheckboxField( "updatable", 1, $this->getLang('display_updatable') ) ); - $options->addElement( form_makeCloseTag( "p" ) ); - $options->printForm(); echo '</div>'; $pluginlist = $plugin_controller->getList('', true); diff --git a/lib/plugins/extension/lang/en/lang.php b/lib/plugins/extension/lang/en/lang.php index 907f91c23..79f643629 100644 --- a/lib/plugins/extension/lang/en/lang.php +++ b/lib/plugins/extension/lang/en/lang.php @@ -103,7 +103,7 @@ $lang['install_upload'] = 'Upload Extension:'; $lang['repo_error'] = 'The plugin repository could not be contacted. Make sure your server is allowed to contact www.dokuwiki.org and check your proxy settings.'; $lang['nossl'] = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.'; -$lang['display_viewoptions'] = 'View Options:'; -$lang['display_enabled'] = 'enabled'; -$lang['display_disabled'] = 'disabled'; -$lang['display_updatable'] = 'updatable'; +$lang['js']['display_viewoptions'] = 'View Options:'; +$lang['js']['display_enabled'] = 'enabled'; +$lang['js']['display_disabled'] = 'disabled'; +$lang['js']['display_updatable'] = 'updatable'; diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index 43af21ee1..825bcc928 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -111,9 +111,19 @@ jQuery(function(){ }); /** - * Enable all plugin types - */ - $extmgr.find( '#viewoptions :checkbox' ).change(function(){ + Create section for enabling/disabling viewing options + */ + var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + $displayOpts.append(LANG.plugins.extension.display_viewoptions); + + var displayOptionsHandler = function(){ jQuery('#extension__list').toggleClass( this.name ); - }).click(); + }; + + jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ + + var $label = jQuery( '<label></label>' ).appendTo($displayOpts); + jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); + jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); + }); }); -- GitLab From b857f6cb524f22ed48a5a08553b2a370969dda38 Mon Sep 17 00:00:00 2001 From: Hudson FAS <hudsonfas@gmail.com> Date: Tue, 28 Apr 2015 16:21:21 +0200 Subject: [PATCH 091/440] translation update --- inc/lang/pt-br/lang.php | 3 +++ lib/plugins/authldap/lang/pt-br/settings.php | 6 ++++++ lib/plugins/extension/lang/pt-br/lang.php | 17 +++++++++++++++++ lib/plugins/usermanager/lang/pt-br/import.txt | 9 +++++++++ 4 files changed, 35 insertions(+) create mode 100644 lib/plugins/usermanager/lang/pt-br/import.txt diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index be62af6fe..590e95480 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -24,6 +24,7 @@ * @author Dário Estevão <darioems@gmail.com> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> * @author Ednei <leuloch@gmail.com> + * @author Hudson FAS <hudsonfas@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -357,3 +358,5 @@ $lang['currentns'] = 'DomÃnio atual'; $lang['searchresult'] = 'Resultado da Busca'; $lang['plainhtml'] = 'HTML simples'; $lang['wikimarkup'] = 'Marcação wiki'; +$lang['page_nonexist_rev'] = 'Página não encontrada em %s. Foi criada posteriormente em <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'ImpossÃvel analisar em "%s".'; diff --git a/lib/plugins/authldap/lang/pt-br/settings.php b/lib/plugins/authldap/lang/pt-br/settings.php index 6ad6b4862..f35ed8eb8 100644 --- a/lib/plugins/authldap/lang/pt-br/settings.php +++ b/lib/plugins/authldap/lang/pt-br/settings.php @@ -5,6 +5,7 @@ * * @author Victor Westmann <victor.westmann@gmail.com> * @author Frederico Guimarães <frederico@teia.bio.br> + * @author Hudson FAS <hudsonfas@gmail.com> */ $lang['server'] = 'Seu servidor LDAP. Ou hostname (<code>localhost</code>) ou uma URL completa (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Porta LDAP do servidor se nenhuma URL completa tiver sido fornecida acima'; @@ -20,9 +21,14 @@ $lang['binddn'] = 'DN de um vÃnculo opcional de usuário se vÃn $lang['bindpw'] = 'Senha do usuário acima'; $lang['userscope'] = 'Limitar escopo da busca para busca de usuário'; $lang['groupscope'] = 'Limitar escopo da busca para busca de grupo'; +$lang['userkey'] = 'Atributo que indica o nome do usuário; deve ser consistente com userfilter.'; $lang['groupkey'] = 'Membro de grupo vem de qualquer atributo do usuário (ao invés de grupos padrões AD) e.g. departamento de grupo ou número de telefone'; +$lang['modPass'] = 'A senha LDAP pode ser alterada pelo dokuwiki ?'; $lang['debug'] = 'Mostrar informações adicionais de depuração em erros'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'use o padrão'; +$lang['referrals_o_0'] = 'não seguem referências'; +$lang['referrals_o_1'] = 'seguem referências'; diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php index 0d897616a..47286389f 100644 --- a/lib/plugins/extension/lang/pt-br/lang.php +++ b/lib/plugins/extension/lang/pt-br/lang.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Felipe Castro <fefcas@gmail.com> + * @author Hudson FAS <hudsonfas@gmail.com> */ $lang['menu'] = 'Gerenciador de extensões'; $lang['tab_plugins'] = 'Extensões instaladas'; @@ -62,6 +63,7 @@ $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Extensão %s habilitada'; $lang['msg_disabled'] = 'Extensão %s desabilitada'; $lang['msg_delete_success'] = 'Extensão desinstalada'; +$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão'; $lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso'; $lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso'; $lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso'; @@ -73,3 +75,18 @@ $lang['security_warning'] = '<strong>Aviso sobre segurança:</strong> %s'; $lang['update_available'] = '<strong>Atualização:</strong> Nova versão %s está disponÃvel.'; $lang['wrong_folder'] = '<strong>Extensão instalada incorretamente:</strong> Renomeie o diretório de extensões "%s" para "%s".'; $lang['url_change'] = '<strong>URL mudou:</strong> A URL para baixar mudou desde a última baixada. Verifique se a nova URL é válida antes de atualizar a extensão.<br />Novo: %s<br />Velho: %s'; +$lang['error_badurl'] = 'O URL deve começar com http ou https'; +$lang['error_dircreate'] = 'Impossível criar pasta temporária para receber o download'; +$lang['error_download'] = 'Impossável baixar o arquivo: %s'; +$lang['error_decompress'] = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.'; +$lang['error_findfolder'] = 'Impossíl identificar a extensão do diretório, você deve baixar e instalar manualmente.'; +$lang['error_copy'] = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</ em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável'; +$lang['noperms'] = 'Diretório de extensão não é gravável'; +$lang['notplperms'] = 'Diretório de modelo (Template) não é gravável'; +$lang['nopluginperms'] = 'Diretório de plugin não é gravável'; +$lang['git'] = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.'; +$lang['auth'] = 'O plugin auth não está ativado na configuração, considere desativá-lo.'; +$lang['install_url'] = 'Instale a partir do URL:'; +$lang['install_upload'] = 'Publicar Extensão:'; +$lang['repo_error'] = 'O repositório de plugin não pode ser contactado. Certifique-se de que o servidor pode acessar www.dokuwiki.org e confira suas configurações de proxy.'; +$lang['nossl'] = 'Sua instalação PHP parece que não suporta SSL. Algumas extensões DokuWiki não serão baixadas.'; diff --git a/lib/plugins/usermanager/lang/pt-br/import.txt b/lib/plugins/usermanager/lang/pt-br/import.txt new file mode 100644 index 000000000..d692bb364 --- /dev/null +++ b/lib/plugins/usermanager/lang/pt-br/import.txt @@ -0,0 +1,9 @@ +===== Importação de Usuários em Massa ===== + +Requer um arquivo CSV de usuários com pelo menos quatro colunas. +As colunas devem conter, nesta ordem: id-usuário, nome completo, endereço de e-mail e grupos. +Os campos CSV devem ser separados por vÃrgulas ( , ) e nomes delimitados por aspas (). Barra invertida (\ ) pode ser usado para escapar nomes. +Para um exemplo de um arquivo adequado , tente a função Exportar usuários acima. +Usuário ids duplicados serão ignorados. + +A senha será gerada e enviada para cada usuário importado com sucesso. \ No newline at end of file -- GitLab From 421c22ae13e8de7f63d1fe6ed683ee4b8a48a8ee Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 2 May 2015 11:01:06 +0200 Subject: [PATCH 092/440] use string for version number. closes #1100 PHP will localize floats (eg. a 45.5 becomes 45,5 in a German locale). Using a string will prevent that. A fix has been applied on the server end, but it makes sense to always send the correct message. --- doku.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doku.php b/doku.php index f5aa6cfa4..0f4557fd0 100644 --- a/doku.php +++ b/doku.php @@ -8,8 +8,8 @@ * @global Input $INPUT */ -// update message version -$updateVersion = 47; +// update message version - always use a string to avoid localized floats! +$updateVersion = "47"; // xdebug_start_profiling(); @@ -77,7 +77,7 @@ if($DATE_AT) { $DATE_AT = null; } else if ($rev_t === false) { //page did not exist $rev_n = $pagelog->getRelativeRevision($DATE_AT,+1); - msg(sprintf($lang['page_nonexist_rev'], + msg(sprintf($lang['page_nonexist_rev'], strftime($conf['dformat'],$DATE_AT), wl($ID, array('rev' => $rev_n)), strftime($conf['dformat'],$rev_n))); -- GitLab From 08d7a57554e606109805d4e663759d31ac40df96 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 2 May 2015 11:24:54 +0200 Subject: [PATCH 093/440] Revert "use nav+ul element for "you are here"" This reverts commit 3940c519db432ec22e8c587504d86191631f9bfb as discussed in #1082. --- inc/template.php | 41 ++++++++++------------------- lib/tpl/dokuwiki/css/mixins.less | 15 +---------- lib/tpl/dokuwiki/css/structure.less | 15 ----------- 3 files changed, 15 insertions(+), 56 deletions(-) diff --git a/inc/template.php b/inc/template.php index a4ace1a63..88b6b14b8 100644 --- a/inc/template.php +++ b/inc/template.php @@ -894,12 +894,12 @@ function tpl_breadcrumbs($sep = '•') { * @author Nigel McNie <oracle.shinoda@gmail.com> * @author Sean Coates <sean@caedmon.net> * @author <fredrik@averpil.com> - * @author Mark C. Prins <mprins@users.sf.net> + * @todo May behave strangely in RTL languages * * @param string $sep Separator between entries * @return bool */ -function tpl_youarehere($sep = ' → ') { +function tpl_youarehere($sep = ' » ') { global $conf; global $ID; global $lang; @@ -910,15 +910,12 @@ function tpl_youarehere($sep = ' → ') { $parts = explode(':', $ID); $count = count($parts); - echo '<nav><h2 class="bchead">'.$lang['youarehere'].': </h2>'; - echo '<ul class="navlist">'; - // always print the startpage - if ($count > 1) { - echo '<li class="home">'.html_wikilink(':'.$conf['start']).$sep.'</li>'; - } else { - echo '<li class="home">'.$conf['start'].'</li>'; - } + echo '<span class="bchead">'.$lang['youarehere'].' </span>'; + // always print the startpage + echo '<span class="home">'; + tpl_pagelink(':'.$conf['start']); + echo '</span>'; // print intermediate namespace links $part = ''; @@ -927,28 +924,18 @@ function tpl_youarehere($sep = ' → ') { $page = $part; if($page == $conf['start']) continue; // Skip startpage - echo '<li>'.html_wikilink($page); - if ($i < $count - 2) { - echo $sep.'</li>'; - } else { - echo '</li>'; - } + // output + echo $sep; + tpl_pagelink($page); } // print current page, skipping start page, skipping for namespace index resolve_pageid('', $page, $exists); - if(isset($page) && $page == $part.$parts[$i]) { - echo '</li></ul></nav>'; - return true; - } - + if(isset($page) && $page == $part.$parts[$i]) return true; $page = $part.$parts[$i]; - if($page == $conf['start']) { - echo '</li></ul></nav>'; - return true; - } - - echo $sep.'</li><li class="curid">'.noNSorNS($page).'</li></ul></nav>'; + if($page == $conf['start']) return true; + echo $sep; + tpl_pagelink($page); return true; } diff --git a/lib/tpl/dokuwiki/css/mixins.less b/lib/tpl/dokuwiki/css/mixins.less index 4b15bb600..a88767e97 100644 --- a/lib/tpl/dokuwiki/css/mixins.less +++ b/lib/tpl/dokuwiki/css/mixins.less @@ -7,17 +7,4 @@ background: -o-linear-gradient( @declaration); background: -ms-linear-gradient( @declaration); background: linear-gradient( @declaration); -} - -/** - * provides inline list styling. - */ -.inline-list(){ - list-style-type: none; - - & li { - margin: 0; - padding: 0; - display: inline; - } -} +} \ No newline at end of file diff --git a/lib/tpl/dokuwiki/css/structure.less b/lib/tpl/dokuwiki/css/structure.less index f7dea3948..3ea2f83eb 100644 --- a/lib/tpl/dokuwiki/css/structure.less +++ b/lib/tpl/dokuwiki/css/structure.less @@ -87,18 +87,3 @@ body { #dokuwiki__footer { clear: both; } - -.dokuwiki .navlist { - display: inline; - padding: 0; - .inline-list; -} - -.bchead { - display: inline; - font-size: inherit; -} - -.curid { - font-weight: bold; -} -- GitLab From dfe7cc3f3bfbfccec6a38a94ac0f2242e8bc59e7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 2 May 2015 11:45:27 +0200 Subject: [PATCH 094/440] another year --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 35de49ab1..1611a6df1 100644 --- a/README +++ b/README @@ -4,7 +4,7 @@ at http://www.dokuwiki.org/ For Installation Instructions see http://www.dokuwiki.org/install -DokuWiki - 2004-2014 (c) Andreas Gohr <andi@splitbrain.org> +DokuWiki - 2004-2015 (c) Andreas Gohr <andi@splitbrain.org> and the DokuWiki Community See COPYING and file headers for license info -- GitLab From 3a97088971109f1611a03329d12e5296a8c3c515 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 3 May 2015 11:25:06 +0100 Subject: [PATCH 095/440] make it possible to remove entries from DOKU_PREFS cookie --- inc/common.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/inc/common.php b/inc/common.php index 5a8b5c900..e14bd7af4 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1875,6 +1875,7 @@ function get_doku_pref($pref, $default) { /** * Add a preference to the DokuWiki cookie * (remembering $_COOKIE['DOKU_PREFS'] is urlencoded) + * Remove it by setting $val to false * * @param string $pref preference key * @param string $val preference value @@ -1891,12 +1892,17 @@ function set_doku_pref($pref, $val) { $enc_pref = rawurlencode($pref); for($i = 0; $i < $cnt; $i += 2) { if($parts[$i] == $enc_pref) { - $parts[$i + 1] = rawurlencode($val); + if ($val !== false) { + $parts[$i + 1] = rawurlencode($val); + } else { + unset($parts[$i]); + unset($parts[$i + 1]); + } break; } } $cookieVal = implode('#', $parts); - } else if (!$orig) { + } else if (!$orig && $val !== false) { $cookieVal = ($_COOKIE['DOKU_PREFS'] ? $_COOKIE['DOKU_PREFS'].'#' : '').rawurlencode($pref).'#'.rawurlencode($val); } -- GitLab From abf17633a7157acf33d1cf76985b9221089d3fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Mon, 4 May 2015 07:57:33 +0200 Subject: [PATCH 096/440] Add selection for the Installed Plugins tab The viewing options should only be visible on the first tab - which is the installed Plugins tab. (There seems to be no more direct way to address this tab.) --- lib/plugins/extension/script.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index 825bcc928..db6a95e51 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -113,7 +113,9 @@ jQuery(function(){ /** Create section for enabling/disabling viewing options */ + if ( $extmgr.find('.tabs li:first-child').hasClass('active') ) { var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + $displayOpts.append(LANG.plugins.extension.display_viewoptions); var displayOptionsHandler = function(){ @@ -126,4 +128,5 @@ jQuery(function(){ jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); }); + } }); -- GitLab From c85bc60fd47287238689cca5a2c32b9253cf0b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Mon, 4 May 2015 07:58:47 +0200 Subject: [PATCH 097/440] Prettify Code. --- lib/plugins/extension/script.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index db6a95e51..06ad6ff20 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -114,19 +114,19 @@ jQuery(function(){ Create section for enabling/disabling viewing options */ if ( $extmgr.find('.tabs li:first-child').hasClass('active') ) { - var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); - $displayOpts.append(LANG.plugins.extension.display_viewoptions); + $displayOpts.append(LANG.plugins.extension.display_viewoptions); - var displayOptionsHandler = function(){ - jQuery('#extension__list').toggleClass( this.name ); - }; + var displayOptionsHandler = function(){ + jQuery('#extension__list').toggleClass( this.name ); + }; - jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ + jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ - var $label = jQuery( '<label></label>' ).appendTo($displayOpts); - jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); - jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); - }); + var $label = jQuery( '<label></label>' ).appendTo($displayOpts); + jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); + jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); + }); } }); -- GitLab From 957202777a4d14ec2b5601d36010542f38b4740c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Mon, 4 May 2015 08:03:46 +0200 Subject: [PATCH 098/440] Allow Viewing Options for templates as well. --- lib/plugins/extension/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index 06ad6ff20..1a0af4e0d 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -113,7 +113,7 @@ jQuery(function(){ /** Create section for enabling/disabling viewing options */ - if ( $extmgr.find('.tabs li:first-child').hasClass('active') ) { + if ( $extmgr.find('.tabs li:first-child, .tabs li:nth-child(2)').hasClass('active') ) { var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); $displayOpts.append(LANG.plugins.extension.display_viewoptions); -- GitLab From 5fc6f52e0a12f737afab24869c01076585fdcc69 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Mon, 4 May 2015 19:30:30 +0100 Subject: [PATCH 099/440] cache JavaScript per template --- inc/template.php | 2 +- lib/exe/js.php | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/inc/template.php b/inc/template.php index 88b6b14b8..d6436e416 100644 --- a/inc/template.php +++ b/inc/template.php @@ -417,7 +417,7 @@ function tpl_metaheaders($alt = true) { // load external javascript $head['script'][] = array( 'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '', - 'src' => DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed + 'src' => DOKU_BASE.'lib/exe/js.php'.'?t='.$conf['template'].'&tseed='.$tseed ); // trigger event here diff --git a/lib/exe/js.php b/lib/exe/js.php index 06d0dda55..2df2d0ba6 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -30,9 +30,14 @@ function js_out(){ global $conf; global $lang; global $config_cascade; + global $INPUT; + + // decide from where to get the template + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); + if(!$tpl) $tpl = $conf['template']; // The generated script depends on some dynamic options - $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.js'); + $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl,'.js'); $cache->_event = 'JS_CACHE_USE'; // load minified version for some files @@ -67,7 +72,7 @@ function js_out(){ # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', - tpl_incdir().'script.js', + tpl_incdir($tpl).'script.js', ); // add possible plugin scripts and userscript @@ -92,7 +97,7 @@ function js_out(){ $json = new JSON(); // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; - print "var DOKU_TPL = '".tpl_basedir()."';"; + print "var DOKU_TPL = '".tpl_basedir($tpl)."';"; print "var DOKU_COOKIE_PARAM = " . $json->encode( array( 'path' => empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'], @@ -104,7 +109,7 @@ function js_out(){ // load JS specific translations $lang['js']['plugins'] = js_pluginstrings(); - $templatestrings = js_templatestrings(); + $templatestrings = js_templatestrings($tpl); if(!empty($templatestrings)) { $lang['js']['template'] = $templatestrings; } @@ -240,19 +245,20 @@ function js_pluginstrings() { * - $lang['js'] must be an array. * - Nothing is returned for template without an entry for $lang['js'] * + * @param string $tpl * @return array */ -function js_templatestrings() { +function js_templatestrings($tpl) { global $conf; $templatestrings = array(); - if (file_exists(tpl_incdir()."lang/en/lang.php")) { - include tpl_incdir()."lang/en/lang.php"; + if (file_exists(tpl_incdir($tpl)."lang/en/lang.php")) { + include tpl_incdir($tpl)."lang/en/lang.php"; } - if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(tpl_incdir()."lang/".$conf['lang']."/lang.php")) { - include tpl_incdir()."lang/".$conf['lang']."/lang.php"; + if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php")) { + include tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php"; } if (isset($lang['js'])) { - $templatestrings[$conf['template']] = $lang['js']; + $templatestrings[$tpl] = $lang['js']; } return $templatestrings; } -- GitLab From b43a17acf599c3be018aa413a6e44ab61baf90ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Tue, 5 May 2015 10:14:19 +0200 Subject: [PATCH 100/440] Add pipe to end of link pasted w/o title It is helpful if the pipe is still inserted by the linkwizard when there is no title. This increases usability for beginners. --- lib/scripts/linkwiz.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index 7c383ffe4..bc850226f 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -244,9 +244,10 @@ var dw_linkwiz = { so += dw_linkwiz.val.open.length; link = dw_linkwiz.val.open+link; } + link += '|'; + so += 1; if(stxt) { - link += '|'+stxt; - so += 1; + link += stxt; } if(dw_linkwiz.val.close) { link += dw_linkwiz.val.close; -- GitLab From 5d10131eb45e428874a022fd272d408bcc36e600 Mon Sep 17 00:00:00 2001 From: flammy <flamabelde@yahoo.de> Date: Tue, 5 May 2015 10:48:22 +0200 Subject: [PATCH 101/440] Update detail.php removed </a> --- lib/tpl/dokuwiki/detail.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index ada2a6644..6755bdce5 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -63,7 +63,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); $media_usage = ft_mediause($IMG,true); if(count($media_usage) > 0){ foreach($media_usage as $path){ - echo '<dd>'.html_wikilink($path).'</a></dd>'; + echo '<dd>'.html_wikilink($path).'</dd>'; } }else{ echo '<dd>'.$lang['nothingfound'].'</dd>'; -- GitLab From c93edcafa17e4189ce3be461b6374a62664d2d51 Mon Sep 17 00:00:00 2001 From: Johan Wijnker <johan@wijnker.eu> Date: Tue, 5 May 2015 16:31:25 +0200 Subject: [PATCH 102/440] translation update --- inc/lang/nl/lang.php | 3 +++ lib/plugins/authldap/lang/nl/settings.php | 6 ++++++ lib/plugins/extension/lang/nl/lang.php | 3 +++ 3 files changed, 12 insertions(+) diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index f0a235d67..e7d82af19 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -25,6 +25,7 @@ * @author Rene <wllywlnt@yahoo.com> * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> + * @author Johan Wijnker <johan@wijnker.eu> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -353,3 +354,5 @@ $lang['currentns'] = 'Huidige namespace'; $lang['searchresult'] = 'Zoekresultaat'; $lang['plainhtml'] = 'Alleen HTML'; $lang['wikimarkup'] = 'Wiki Opmaak'; +$lang['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "% s".'; diff --git a/lib/plugins/authldap/lang/nl/settings.php b/lib/plugins/authldap/lang/nl/settings.php index 193d1a386..41fcce2cd 100644 --- a/lib/plugins/authldap/lang/nl/settings.php +++ b/lib/plugins/authldap/lang/nl/settings.php @@ -5,6 +5,7 @@ * * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Remon <no@email.local> + * @author Johan Wijnker <johan@wijnker.eu> */ $lang['server'] = 'Je LDAP server. Of de servernaam (<code>localhost</code>) of de volledige URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP server poort als bij de entry hierboven geen volledige URL is opgegeven'; @@ -20,9 +21,14 @@ $lang['binddn'] = 'DN van een optionele bind gebruiker als anonie $lang['bindpw'] = 'Wachtwoord van bovenstaande gebruiker'; $lang['userscope'] = 'Beperken scope van zoekfuncties voor gebruikers'; $lang['groupscope'] = 'Beperken scope van zoekfuncties voor groepen'; +$lang['userkey'] = 'Attribuut aanduiding van de gebruikersnaam; moet consistent zijn met userfilter.'; $lang['groupkey'] = 'Groepslidmaatschap van enig gebruikersattribuut (in plaats van standaard AD groepen), bijv. groep van afdeling of telefoonnummer'; +$lang['modPass'] = 'Kan het LDAP wachtwoord worden gewijzigd met DokuWiki?'; $lang['debug'] = 'Tonen van aanvullende debuginformatie bij fouten'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'gebruik standaard'; +$lang['referrals_o_0'] = 'volg verwijzing niet'; +$lang['referrals_o_1'] = 'volg verwijzing'; diff --git a/lib/plugins/extension/lang/nl/lang.php b/lib/plugins/extension/lang/nl/lang.php index 194b4b3e1..3fed9f4a3 100644 --- a/lib/plugins/extension/lang/nl/lang.php +++ b/lib/plugins/extension/lang/nl/lang.php @@ -7,6 +7,7 @@ * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> + * @author Johan Wijnker <johan@wijnker.eu> */ $lang['menu'] = 'Uitbreidingen'; $lang['tab_plugins'] = 'Geïnstalleerde Plugins'; @@ -87,6 +88,8 @@ $lang['noperms'] = 'Uitbreidings directory is niet schrijfbaar'; $lang['notplperms'] = 'Template directory is niet schrijfbaar'; $lang['nopluginperms'] = 'Plugin directory is niet schrijfbaar'; $lang['git'] = 'De uitbreiding werd geïnstalleerd via git, u wilt deze hier wellicht niet aanpassen.'; +$lang['auth'] = 'Deze auth plugin is niet geactiveerd in de configuratie, overweeg het om uit te schakelen.'; $lang['install_url'] = 'Installeer vanaf URL:'; $lang['install_upload'] = 'Upload Uitbreiding:'; $lang['repo_error'] = 'Er kon geen verbinding worden gemaakt met de centrale plugin opslag. Controleer of de server verbinding mag maken met www.dokuwiki.org en controleer de proxy instellingen.'; +$lang['nossl'] = 'Je PHP mist SSL ondersteuning. Downloaden werkt niet met veel DokuWiki extensies.'; -- GitLab From db9faf025cf129d15a086a803e8056e977975d76 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 6 May 2015 01:30:59 -0400 Subject: [PATCH 103/440] Report more meaningful errors when an auth backend fails. closes #1093 --- inc/auth.php | 25 +++++++------- inc/lang/en/lang.php | 2 ++ lib/plugins/authplain/auth.php | 33 +++++++++++-------- lib/plugins/authplain/lang/af/lang.php | 6 ++++ lib/plugins/authplain/lang/ar/lang.php | 6 ++++ lib/plugins/authplain/lang/az/lang.php | 6 ++++ lib/plugins/authplain/lang/bg/lang.php | 6 ++++ lib/plugins/authplain/lang/bn/lang.php | 6 ++++ .../authplain/lang/ca-valencia/lang.php | 6 ++++ lib/plugins/authplain/lang/ca/lang.php | 6 ++++ lib/plugins/authplain/lang/cs/lang.php | 6 ++++ lib/plugins/authplain/lang/da/lang.php | 6 ++++ .../authplain/lang/de-informal/lang.php | 6 ++++ lib/plugins/authplain/lang/de/lang.php | 6 ++++ lib/plugins/authplain/lang/el/lang.php | 6 ++++ lib/plugins/authplain/lang/en/lang.php | 8 +++++ lib/plugins/authplain/lang/eo/lang.php | 6 ++++ lib/plugins/authplain/lang/es/lang.php | 6 ++++ lib/plugins/authplain/lang/et/lang.php | 6 ++++ lib/plugins/authplain/lang/eu/lang.php | 6 ++++ lib/plugins/authplain/lang/fa/lang.php | 6 ++++ lib/plugins/authplain/lang/fi/lang.php | 6 ++++ lib/plugins/authplain/lang/fo/lang.php | 6 ++++ lib/plugins/authplain/lang/fr/lang.php | 6 ++++ lib/plugins/authplain/lang/gl/lang.php | 6 ++++ lib/plugins/authplain/lang/he/lang.php | 6 ++++ lib/plugins/authplain/lang/hr/lang.php | 6 ++++ lib/plugins/authplain/lang/hu/lang.php | 6 ++++ lib/plugins/authplain/lang/ia/lang.php | 6 ++++ lib/plugins/authplain/lang/id-ni/lang.php | 6 ++++ lib/plugins/authplain/lang/id/lang.php | 6 ++++ lib/plugins/authplain/lang/is/lang.php | 6 ++++ lib/plugins/authplain/lang/it/lang.php | 6 ++++ lib/plugins/authplain/lang/ja/lang.php | 6 ++++ lib/plugins/authplain/lang/ka/lang.php | 6 ++++ lib/plugins/authplain/lang/kk/lang.php | 6 ++++ lib/plugins/authplain/lang/km/lang.php | 6 ++++ lib/plugins/authplain/lang/ko/lang.php | 6 ++++ lib/plugins/authplain/lang/ku/lang.php | 6 ++++ lib/plugins/authplain/lang/la/lang.php | 6 ++++ lib/plugins/authplain/lang/lb/lang.php | 6 ++++ lib/plugins/authplain/lang/lt/lang.php | 6 ++++ lib/plugins/authplain/lang/lv/lang.php | 6 ++++ lib/plugins/authplain/lang/mg/lang.php | 6 ++++ lib/plugins/authplain/lang/mk/lang.php | 6 ++++ lib/plugins/authplain/lang/mr/lang.php | 6 ++++ lib/plugins/authplain/lang/ms/lang.php | 6 ++++ lib/plugins/authplain/lang/ne/lang.php | 6 ++++ lib/plugins/authplain/lang/nl/lang.php | 6 ++++ lib/plugins/authplain/lang/no/lang.php | 6 ++++ lib/plugins/authplain/lang/pl/lang.php | 6 ++++ lib/plugins/authplain/lang/pt-br/lang.php | 6 ++++ lib/plugins/authplain/lang/pt/lang.php | 6 ++++ lib/plugins/authplain/lang/ro/lang.php | 6 ++++ lib/plugins/authplain/lang/ru/lang.php | 6 ++++ lib/plugins/authplain/lang/sk/lang.php | 6 ++++ lib/plugins/authplain/lang/sl/lang.php | 6 ++++ lib/plugins/authplain/lang/sq/lang.php | 6 ++++ lib/plugins/authplain/lang/sr/lang.php | 6 ++++ lib/plugins/authplain/lang/sv/lang.php | 6 ++++ lib/plugins/authplain/lang/th/lang.php | 6 ++++ lib/plugins/authplain/lang/tr/lang.php | 6 ++++ lib/plugins/authplain/lang/uk/lang.php | 6 ++++ lib/plugins/authplain/lang/vi/lang.php | 6 ++++ lib/plugins/authplain/lang/zh-tw/lang.php | 6 ++++ lib/plugins/authplain/lang/zh/lang.php | 6 ++++ 66 files changed, 415 insertions(+), 25 deletions(-) create mode 100644 lib/plugins/authplain/lang/af/lang.php create mode 100644 lib/plugins/authplain/lang/ar/lang.php create mode 100644 lib/plugins/authplain/lang/az/lang.php create mode 100644 lib/plugins/authplain/lang/bg/lang.php create mode 100644 lib/plugins/authplain/lang/bn/lang.php create mode 100644 lib/plugins/authplain/lang/ca-valencia/lang.php create mode 100644 lib/plugins/authplain/lang/ca/lang.php create mode 100644 lib/plugins/authplain/lang/cs/lang.php create mode 100644 lib/plugins/authplain/lang/da/lang.php create mode 100644 lib/plugins/authplain/lang/de-informal/lang.php create mode 100644 lib/plugins/authplain/lang/de/lang.php create mode 100644 lib/plugins/authplain/lang/el/lang.php create mode 100644 lib/plugins/authplain/lang/en/lang.php create mode 100644 lib/plugins/authplain/lang/eo/lang.php create mode 100644 lib/plugins/authplain/lang/es/lang.php create mode 100644 lib/plugins/authplain/lang/et/lang.php create mode 100644 lib/plugins/authplain/lang/eu/lang.php create mode 100644 lib/plugins/authplain/lang/fa/lang.php create mode 100644 lib/plugins/authplain/lang/fi/lang.php create mode 100644 lib/plugins/authplain/lang/fo/lang.php create mode 100644 lib/plugins/authplain/lang/fr/lang.php create mode 100644 lib/plugins/authplain/lang/gl/lang.php create mode 100644 lib/plugins/authplain/lang/he/lang.php create mode 100644 lib/plugins/authplain/lang/hr/lang.php create mode 100644 lib/plugins/authplain/lang/hu/lang.php create mode 100644 lib/plugins/authplain/lang/ia/lang.php create mode 100644 lib/plugins/authplain/lang/id-ni/lang.php create mode 100644 lib/plugins/authplain/lang/id/lang.php create mode 100644 lib/plugins/authplain/lang/is/lang.php create mode 100644 lib/plugins/authplain/lang/it/lang.php create mode 100644 lib/plugins/authplain/lang/ja/lang.php create mode 100644 lib/plugins/authplain/lang/ka/lang.php create mode 100644 lib/plugins/authplain/lang/kk/lang.php create mode 100644 lib/plugins/authplain/lang/km/lang.php create mode 100644 lib/plugins/authplain/lang/ko/lang.php create mode 100644 lib/plugins/authplain/lang/ku/lang.php create mode 100644 lib/plugins/authplain/lang/la/lang.php create mode 100644 lib/plugins/authplain/lang/lb/lang.php create mode 100644 lib/plugins/authplain/lang/lt/lang.php create mode 100644 lib/plugins/authplain/lang/lv/lang.php create mode 100644 lib/plugins/authplain/lang/mg/lang.php create mode 100644 lib/plugins/authplain/lang/mk/lang.php create mode 100644 lib/plugins/authplain/lang/mr/lang.php create mode 100644 lib/plugins/authplain/lang/ms/lang.php create mode 100644 lib/plugins/authplain/lang/ne/lang.php create mode 100644 lib/plugins/authplain/lang/nl/lang.php create mode 100644 lib/plugins/authplain/lang/no/lang.php create mode 100644 lib/plugins/authplain/lang/pl/lang.php create mode 100644 lib/plugins/authplain/lang/pt-br/lang.php create mode 100644 lib/plugins/authplain/lang/pt/lang.php create mode 100644 lib/plugins/authplain/lang/ro/lang.php create mode 100644 lib/plugins/authplain/lang/ru/lang.php create mode 100644 lib/plugins/authplain/lang/sk/lang.php create mode 100644 lib/plugins/authplain/lang/sl/lang.php create mode 100644 lib/plugins/authplain/lang/sq/lang.php create mode 100644 lib/plugins/authplain/lang/sr/lang.php create mode 100644 lib/plugins/authplain/lang/sv/lang.php create mode 100644 lib/plugins/authplain/lang/th/lang.php create mode 100644 lib/plugins/authplain/lang/tr/lang.php create mode 100644 lib/plugins/authplain/lang/uk/lang.php create mode 100644 lib/plugins/authplain/lang/vi/lang.php create mode 100644 lib/plugins/authplain/lang/zh-tw/lang.php create mode 100644 lib/plugins/authplain/lang/zh/lang.php diff --git a/inc/auth.php b/inc/auth.php index 17923ba2a..dd0fc35b3 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -1006,7 +1006,7 @@ function register() { //okay try to create the user if(!$auth->triggerUserMod('create', array($login, $pass, $fullname, $email))) { - msg($lang['reguexists'], -1); + msg($lang['regfail'], -1); return false; } @@ -1098,17 +1098,18 @@ function updateprofile() { } } - if($result = $auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes))) { - // update cookie and session with the changed data - if($changes['pass']) { - list( /*user*/, $sticky, /*pass*/) = auth_getCookie(); - $pass = auth_encrypt($changes['pass'], auth_cookiesalt(!$sticky, true)); - auth_setCookie($INPUT->server->str('REMOTE_USER'), $pass, (bool) $sticky); - } - return true; + if(!($result = $auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes)))) { + msg($lang['proffail'], -1); + return false; } - return false; + // update cookie and session with the changed data + if($changes['pass']) { + list( /*user*/, $sticky, /*pass*/) = auth_getCookie(); + $pass = auth_encrypt($changes['pass'], auth_cookiesalt(!$sticky, true)); + auth_setCookie($INPUT->server->str('REMOTE_USER'), $pass, (bool) $sticky); + } + return true; } /** @@ -1221,7 +1222,7 @@ function act_resendpwd() { // change it if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) { - msg('error modifying user data', -1); + msg($lang['proffail'], -1); return false; } @@ -1229,7 +1230,7 @@ function act_resendpwd() { $pass = auth_pwgen($user); if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) { - msg('error modifying user data', -1); + msg($lang['proffail'], -1); return false; } diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 3f11a1ee4..2bbf61000 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -75,6 +75,7 @@ $lang['regmissing'] = 'Sorry, you must fill in all fields.'; $lang['reguexists'] = 'Sorry, a user with this login already exists.'; $lang['regsuccess'] = 'The user has been created and the password was sent by email.'; $lang['regsuccess2'] = 'The user has been created.'; +$lang['regfail'] = 'The user could not be created.'; $lang['regmailfail'] = 'Looks like there was an error on sending the password mail. Please contact the admin!'; $lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin'; $lang['regbadpass'] = 'The two given passwords are not identical, please try again.'; @@ -90,6 +91,7 @@ $lang['profdeleteuser'] = 'Delete Account'; $lang['profdeleted'] = 'Your user account has been deleted from this wiki'; $lang['profconfdelete'] = 'I wish to remove my account from this wiki. <br/> This action can not be undone.'; $lang['profconfdeletemissing'] = 'Confirmation check box not ticked'; +$lang['proffail'] = 'User profile was not updated.'; $lang['pwdforget'] = 'Forgotten your password? Get a new one'; $lang['resendna'] = 'This wiki does not support password resending.'; diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php index b31c02fc8..bd46c61a7 100644 --- a/lib/plugins/authplain/auth.php +++ b/lib/plugins/authplain/auth.php @@ -134,7 +134,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { global $config_cascade; // user mustn't already exist - if($this->getUserData($user) !== false) return false; + if($this->getUserData($user) !== false) { + msg($this->getLang('userexists'), -1); + return false; + } $pass = auth_cryptPassword($pwd); @@ -144,16 +147,13 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { // prepare user line $userline = $this->_createUserLine($user, $pass, $name, $mail, $grps); - if(io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { - $this->users[$user] = compact('pass', 'name', 'mail', 'grps'); - return $pwd; + if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { + msg($this->getLang('writefail'), -1); + return null; } - msg( - 'The '.$config_cascade['plainauth.users']['default']. - ' file is not writable. Please inform the Wiki-Admin', -1 - ); - return null; + $this->users[$user] = compact('pass', 'name', 'mail', 'grps'); + return $pwd; } /** @@ -169,7 +169,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { global $config_cascade; // sanity checks, user must already exist and there must be something to change - if(($userinfo = $this->getUserData($user)) === false) return false; + if(($userinfo = $this->getUserData($user)) === false) { + msg($this->getLang('usernotexists'), -1); + return false; + } if(!is_array($changes) || !count($changes)) return true; // update userinfo with new data, remembering to encrypt any password @@ -186,13 +189,14 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { $userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']); if(!$this->deleteUsers(array($user))) { - msg('Unable to modify user data. Please inform the Wiki-Admin', -1); + msg($this->getLang('writefail'), -1); return false; } if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { msg('There was an error modifying your user data. You should register again.', -1); // FIXME, user has been deleted but not recreated, should force a logout and redirect to login page + // Should replace the delete/save hybrid modify with an atomic io_replaceInFile $ACT = 'register'; return false; } @@ -223,7 +227,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { if(empty($deleted)) return 0; $pattern = '/^('.join('|', $deleted).'):/'; - io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true); + if (!io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true)) { + msg($this->getLang('writefail'), -1); + return 0; + } // reload the user list and count the difference $count = count($this->users); @@ -407,4 +414,4 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters } } -} \ No newline at end of file +} diff --git a/lib/plugins/authplain/lang/af/lang.php b/lib/plugins/authplain/lang/af/lang.php new file mode 100644 index 000000000..29742cfd2 --- /dev/null +++ b/lib/plugins/authplain/lang/af/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.'; diff --git a/lib/plugins/authplain/lang/ar/lang.php b/lib/plugins/authplain/lang/ar/lang.php new file mode 100644 index 000000000..16d59f397 --- /dev/null +++ b/lib/plugins/authplain/lang/ar/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'عذرا، يوجد مشترك بنÙس الاسم.'; diff --git a/lib/plugins/authplain/lang/az/lang.php b/lib/plugins/authplain/lang/az/lang.php new file mode 100644 index 000000000..f98eccde1 --- /dev/null +++ b/lib/plugins/authplain/lang/az/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'TÉ™ssüf ki bu ad ilÉ™ istifadəçi artıq mövcuddur.'; diff --git a/lib/plugins/authplain/lang/bg/lang.php b/lib/plugins/authplain/lang/bg/lang.php new file mode 100644 index 000000000..5b8e6bc37 --- /dev/null +++ b/lib/plugins/authplain/lang/bg/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; diff --git a/lib/plugins/authplain/lang/bn/lang.php b/lib/plugins/authplain/lang/bn/lang.php new file mode 100644 index 000000000..43fe4ca6e --- /dev/null +++ b/lib/plugins/authplain/lang/bn/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'দà§à¦ƒà¦–িত, à¦à¦‡ লগইন সঙà§à¦—ে à¦à¦•à¦Ÿà¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨.'; diff --git a/lib/plugins/authplain/lang/ca-valencia/lang.php b/lib/plugins/authplain/lang/ca-valencia/lang.php new file mode 100644 index 000000000..3e973beae --- /dev/null +++ b/lib/plugins/authplain/lang/ca-valencia/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Disculpe, pero ya existix un usuari en este nom.'; diff --git a/lib/plugins/authplain/lang/ca/lang.php b/lib/plugins/authplain/lang/ca/lang.php new file mode 100644 index 000000000..5a675639d --- /dev/null +++ b/lib/plugins/authplain/lang/ca/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.'; diff --git a/lib/plugins/authplain/lang/cs/lang.php b/lib/plugins/authplain/lang/cs/lang.php new file mode 100644 index 000000000..8128d45a3 --- /dev/null +++ b/lib/plugins/authplain/lang/cs/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; diff --git a/lib/plugins/authplain/lang/da/lang.php b/lib/plugins/authplain/lang/da/lang.php new file mode 100644 index 000000000..c7dd376c1 --- /dev/null +++ b/lib/plugins/authplain/lang/da/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Dette brugernavn er allerede i brug.'; diff --git a/lib/plugins/authplain/lang/de-informal/lang.php b/lib/plugins/authplain/lang/de-informal/lang.php new file mode 100644 index 000000000..f1d484947 --- /dev/null +++ b/lib/plugins/authplain/lang/de-informal/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Der Benutzername existiert leider schon.'; diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php new file mode 100644 index 000000000..f1d484947 --- /dev/null +++ b/lib/plugins/authplain/lang/de/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Der Benutzername existiert leider schon.'; diff --git a/lib/plugins/authplain/lang/el/lang.php b/lib/plugins/authplain/lang/el/lang.php new file mode 100644 index 000000000..7f7e4e76d --- /dev/null +++ b/lib/plugins/authplain/lang/el/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Αυτός ο λογαÏιασμός υπάÏχει ήδη.'; diff --git a/lib/plugins/authplain/lang/en/lang.php b/lib/plugins/authplain/lang/en/lang.php new file mode 100644 index 000000000..6f8abfdb6 --- /dev/null +++ b/lib/plugins/authplain/lang/en/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sorry, a user with this login already exists.'; +$lang['usernotexists'] = 'Sorry, that user doesn\'t exist.'; +$lang['writefail'] = 'Unable to modify user data. Please inform the Wiki-Admin'; diff --git a/lib/plugins/authplain/lang/eo/lang.php b/lib/plugins/authplain/lang/eo/lang.php new file mode 100644 index 000000000..ab7655e81 --- /dev/null +++ b/lib/plugins/authplain/lang/eo/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.'; diff --git a/lib/plugins/authplain/lang/es/lang.php b/lib/plugins/authplain/lang/es/lang.php new file mode 100644 index 000000000..8f03e79cb --- /dev/null +++ b/lib/plugins/authplain/lang/es/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Lo siento, ya existe un usuario con este nombre.'; diff --git a/lib/plugins/authplain/lang/et/lang.php b/lib/plugins/authplain/lang/et/lang.php new file mode 100644 index 000000000..7f9f7771b --- /dev/null +++ b/lib/plugins/authplain/lang/et/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Tegelikult on sellise nimega kasutaja juba olemas.'; diff --git a/lib/plugins/authplain/lang/eu/lang.php b/lib/plugins/authplain/lang/eu/lang.php new file mode 100644 index 000000000..09ca4d3b7 --- /dev/null +++ b/lib/plugins/authplain/lang/eu/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Barkatu, izen bereko erabiltzailea existitzen da.'; diff --git a/lib/plugins/authplain/lang/fa/lang.php b/lib/plugins/authplain/lang/fa/lang.php new file mode 100644 index 000000000..49083ad60 --- /dev/null +++ b/lib/plugins/authplain/lang/fa/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; diff --git a/lib/plugins/authplain/lang/fi/lang.php b/lib/plugins/authplain/lang/fi/lang.php new file mode 100644 index 000000000..3a77f3e3a --- /dev/null +++ b/lib/plugins/authplain/lang/fi/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.'; diff --git a/lib/plugins/authplain/lang/fo/lang.php b/lib/plugins/authplain/lang/fo/lang.php new file mode 100644 index 000000000..a9654664b --- /dev/null +++ b/lib/plugins/authplain/lang/fo/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Hetta brúkaranavn er upptiki.'; diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php new file mode 100644 index 000000000..9316836e4 --- /dev/null +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; diff --git a/lib/plugins/authplain/lang/gl/lang.php b/lib/plugins/authplain/lang/gl/lang.php new file mode 100644 index 000000000..35138d378 --- /dev/null +++ b/lib/plugins/authplain/lang/gl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'SentÃmolo, mais xa existe un usuario con ese nome.'; diff --git a/lib/plugins/authplain/lang/he/lang.php b/lib/plugins/authplain/lang/he/lang.php new file mode 100644 index 000000000..01d877b62 --- /dev/null +++ b/lib/plugins/authplain/lang/he/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; diff --git a/lib/plugins/authplain/lang/hr/lang.php b/lib/plugins/authplain/lang/hr/lang.php new file mode 100644 index 000000000..ffcbf5f61 --- /dev/null +++ b/lib/plugins/authplain/lang/hr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Korisnik s tim korisniÄkim imenom već postoji.'; diff --git a/lib/plugins/authplain/lang/hu/lang.php b/lib/plugins/authplain/lang/hu/lang.php new file mode 100644 index 000000000..6de5db772 --- /dev/null +++ b/lib/plugins/authplain/lang/hu/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; diff --git a/lib/plugins/authplain/lang/ia/lang.php b/lib/plugins/authplain/lang/ia/lang.php new file mode 100644 index 000000000..7596f3f4c --- /dev/null +++ b/lib/plugins/authplain/lang/ia/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.'; diff --git a/lib/plugins/authplain/lang/id-ni/lang.php b/lib/plugins/authplain/lang/id-ni/lang.php new file mode 100644 index 000000000..729c9f9dc --- /dev/null +++ b/lib/plugins/authplain/lang/id-ni/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Bologö dödöu, no so zangoguna\'ö töi da\'a.'; diff --git a/lib/plugins/authplain/lang/id/lang.php b/lib/plugins/authplain/lang/id/lang.php new file mode 100644 index 000000000..5e6a99830 --- /dev/null +++ b/lib/plugins/authplain/lang/id/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Maaf, user dengan user login ini telah ada.'; diff --git a/lib/plugins/authplain/lang/is/lang.php b/lib/plugins/authplain/lang/is/lang.php new file mode 100644 index 000000000..21392ee5e --- /dev/null +++ b/lib/plugins/authplain/lang/is/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Afsakið, notandi með þessu nafni er þegar skráður inn.'; diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php new file mode 100644 index 000000000..716041ffb --- /dev/null +++ b/lib/plugins/authplain/lang/it/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Il nome utente inserito esiste già .'; diff --git a/lib/plugins/authplain/lang/ja/lang.php b/lib/plugins/authplain/lang/ja/lang.php new file mode 100644 index 000000000..aad08a8bd --- /dev/null +++ b/lib/plugins/authplain/lang/ja/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; diff --git a/lib/plugins/authplain/lang/ka/lang.php b/lib/plugins/authplain/lang/ka/lang.php new file mode 100644 index 000000000..8983791c9 --- /dev/null +++ b/lib/plugins/authplain/lang/ka/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'მსგáƒáƒ•áƒ¡áƒ˜ ლáƒáƒ’ინი უკვე áƒáƒ სებáƒáƒ‘ს'; diff --git a/lib/plugins/authplain/lang/kk/lang.php b/lib/plugins/authplain/lang/kk/lang.php new file mode 100644 index 000000000..95fe53204 --- /dev/null +++ b/lib/plugins/authplain/lang/kk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Кешіріңіз, бұл түпнұÑкамен де пайдаланушы бар.'; diff --git a/lib/plugins/authplain/lang/km/lang.php b/lib/plugins/authplain/lang/km/lang.php new file mode 100644 index 000000000..322e454e5 --- /dev/null +++ b/lib/plugins/authplain/lang/km/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'សុំអាទោស​ នាមប្រើនáŸáŸ‡áž˜áž¶áž“រួចហើ។'; diff --git a/lib/plugins/authplain/lang/ko/lang.php b/lib/plugins/authplain/lang/ko/lang.php new file mode 100644 index 000000000..de5a7c02f --- /dev/null +++ b/lib/plugins/authplain/lang/ko/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; diff --git a/lib/plugins/authplain/lang/ku/lang.php b/lib/plugins/authplain/lang/ku/lang.php new file mode 100644 index 000000000..64cb834f3 --- /dev/null +++ b/lib/plugins/authplain/lang/ku/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sorry, a user with this login already exists.'; diff --git a/lib/plugins/authplain/lang/la/lang.php b/lib/plugins/authplain/lang/la/lang.php new file mode 100644 index 000000000..5f2eecfd8 --- /dev/null +++ b/lib/plugins/authplain/lang/la/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Nomen Sodalis ab aliquo iam elegitur.'; diff --git a/lib/plugins/authplain/lang/lb/lang.php b/lib/plugins/authplain/lang/lb/lang.php new file mode 100644 index 000000000..4c760dfe4 --- /dev/null +++ b/lib/plugins/authplain/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Et get schonn e Benotzer mat deem Numm.'; diff --git a/lib/plugins/authplain/lang/lt/lang.php b/lib/plugins/authplain/lang/lt/lang.php new file mode 100644 index 000000000..5ad435a04 --- /dev/null +++ b/lib/plugins/authplain/lang/lt/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.'; diff --git a/lib/plugins/authplain/lang/lv/lang.php b/lib/plugins/authplain/lang/lv/lang.php new file mode 100644 index 000000000..3a9d4d3e5 --- /dev/null +++ b/lib/plugins/authplain/lang/lv/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Atvaino, tÄds lietotÄjs jau ir.'; diff --git a/lib/plugins/authplain/lang/mg/lang.php b/lib/plugins/authplain/lang/mg/lang.php new file mode 100644 index 000000000..8472161b7 --- /dev/null +++ b/lib/plugins/authplain/lang/mg/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Indrisy fa efa nisy namandrika io anarana io.'; diff --git a/lib/plugins/authplain/lang/mk/lang.php b/lib/plugins/authplain/lang/mk/lang.php new file mode 100644 index 000000000..8ebb9fab8 --- /dev/null +++ b/lib/plugins/authplain/lang/mk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Жалам, кориÑник Ñо ова кориÑничко име веќе поÑтои.'; diff --git a/lib/plugins/authplain/lang/mr/lang.php b/lib/plugins/authplain/lang/mr/lang.php new file mode 100644 index 000000000..15dcf18a0 --- /dev/null +++ b/lib/plugins/authplain/lang/mr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'या नावाने सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥‡à¤²à¥€ आहे, कृपया दà¥à¤¸à¤°à¥‡ सदसà¥à¤¯ नाव निवडा.'; diff --git a/lib/plugins/authplain/lang/ms/lang.php b/lib/plugins/authplain/lang/ms/lang.php new file mode 100644 index 000000000..14c3b11af --- /dev/null +++ b/lib/plugins/authplain/lang/ms/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.'; diff --git a/lib/plugins/authplain/lang/ne/lang.php b/lib/plugins/authplain/lang/ne/lang.php new file mode 100644 index 000000000..942757855 --- /dev/null +++ b/lib/plugins/authplain/lang/ne/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'यो नामको पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पहिले देखि रहेको छ।'; diff --git a/lib/plugins/authplain/lang/nl/lang.php b/lib/plugins/authplain/lang/nl/lang.php new file mode 100644 index 000000000..1a5397234 --- /dev/null +++ b/lib/plugins/authplain/lang/nl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; diff --git a/lib/plugins/authplain/lang/no/lang.php b/lib/plugins/authplain/lang/no/lang.php new file mode 100644 index 000000000..981881369 --- /dev/null +++ b/lib/plugins/authplain/lang/no/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; diff --git a/lib/plugins/authplain/lang/pl/lang.php b/lib/plugins/authplain/lang/pl/lang.php new file mode 100644 index 000000000..9a61b0047 --- /dev/null +++ b/lib/plugins/authplain/lang/pl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Użytkownik o tej nazwie już istnieje.'; diff --git a/lib/plugins/authplain/lang/pt-br/lang.php b/lib/plugins/authplain/lang/pt-br/lang.php new file mode 100644 index 000000000..3a9b67218 --- /dev/null +++ b/lib/plugins/authplain/lang/pt-br/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; diff --git a/lib/plugins/authplain/lang/pt/lang.php b/lib/plugins/authplain/lang/pt/lang.php new file mode 100644 index 000000000..c49649d4e --- /dev/null +++ b/lib/plugins/authplain/lang/pt/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; diff --git a/lib/plugins/authplain/lang/ro/lang.php b/lib/plugins/authplain/lang/ro/lang.php new file mode 100644 index 000000000..eb243a12f --- /dev/null +++ b/lib/plugins/authplain/lang/ro/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.'; diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php new file mode 100644 index 000000000..8a40852d6 --- /dev/null +++ b/lib/plugins/authplain/lang/ru/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; diff --git a/lib/plugins/authplain/lang/sk/lang.php b/lib/plugins/authplain/lang/sk/lang.php new file mode 100644 index 000000000..5153fc1c9 --- /dev/null +++ b/lib/plugins/authplain/lang/sk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; diff --git a/lib/plugins/authplain/lang/sl/lang.php b/lib/plugins/authplain/lang/sl/lang.php new file mode 100644 index 000000000..d4ee30fda --- /dev/null +++ b/lib/plugins/authplain/lang/sl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Uporabnik s tem imenom že obstaja.'; diff --git a/lib/plugins/authplain/lang/sq/lang.php b/lib/plugins/authplain/lang/sq/lang.php new file mode 100644 index 000000000..e3a93502f --- /dev/null +++ b/lib/plugins/authplain/lang/sq/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.'; diff --git a/lib/plugins/authplain/lang/sr/lang.php b/lib/plugins/authplain/lang/sr/lang.php new file mode 100644 index 000000000..2d85ca42a --- /dev/null +++ b/lib/plugins/authplain/lang/sr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; diff --git a/lib/plugins/authplain/lang/sv/lang.php b/lib/plugins/authplain/lang/sv/lang.php new file mode 100644 index 000000000..fb80df956 --- /dev/null +++ b/lib/plugins/authplain/lang/sv/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Det finns redan en användare med det användarnamnet.'; diff --git a/lib/plugins/authplain/lang/th/lang.php b/lib/plugins/authplain/lang/th/lang.php new file mode 100644 index 000000000..c7aaf68dd --- /dev/null +++ b/lib/plugins/authplain/lang/th/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; diff --git a/lib/plugins/authplain/lang/tr/lang.php b/lib/plugins/authplain/lang/tr/lang.php new file mode 100644 index 000000000..d7064e8bf --- /dev/null +++ b/lib/plugins/authplain/lang/tr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Ãœzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; diff --git a/lib/plugins/authplain/lang/uk/lang.php b/lib/plugins/authplain/lang/uk/lang.php new file mode 100644 index 000000000..d8f0a32b2 --- /dev/null +++ b/lib/plugins/authplain/lang/uk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; diff --git a/lib/plugins/authplain/lang/vi/lang.php b/lib/plugins/authplain/lang/vi/lang.php new file mode 100644 index 000000000..7ecb0a27c --- /dev/null +++ b/lib/plugins/authplain/lang/vi/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; diff --git a/lib/plugins/authplain/lang/zh-tw/lang.php b/lib/plugins/authplain/lang/zh-tw/lang.php new file mode 100644 index 000000000..8a5d290e5 --- /dev/null +++ b/lib/plugins/authplain/lang/zh-tw/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = '很抱æ‰ï¼Œæœ‰äººå·²ä½¿ç”¨äº†é€™å€‹å¸³è™Ÿã€‚'; diff --git a/lib/plugins/authplain/lang/zh/lang.php b/lib/plugins/authplain/lang/zh/lang.php new file mode 100644 index 000000000..03542fe72 --- /dev/null +++ b/lib/plugins/authplain/lang/zh/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; -- GitLab From 8f03c311f28eaffe92893ec1a4d0b78581926e13 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 6 May 2015 15:31:08 -0400 Subject: [PATCH 104/440] Error reporting for database auth plugins --- lib/plugins/authad/auth.php | 8 ++++++-- lib/plugins/authad/lang/en/lang.php | 6 ++++-- lib/plugins/authldap/auth.php | 8 ++++---- lib/plugins/authldap/lang/en/lang.php | 11 +++++++++++ lib/plugins/authmysql/auth.php | 19 +++++++++++++++++-- lib/plugins/authmysql/lang/en/lang.php | 13 +++++++++++++ 6 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authldap/lang/en/lang.php create mode 100644 lib/plugins/authmysql/lang/en/lang.php diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 40c56ef09..60c68efc4 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -522,7 +522,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { public function modifyUser($user, $changes) { $return = true; $adldap = $this->_adldap($this->_userDomain($user)); - if(!$adldap) return false; + if(!$adldap) { + msg($this->getLang('connectfail'), -1); + return false; + } // password changing if(isset($changes['pass'])) { @@ -532,7 +535,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } - if(!$return) msg('AD Auth: failed to change the password. Maybe the password policy was not met?', -1); + if(!$return) msg($this->getLang('passchangefail'), -1); } // changing user data @@ -554,6 +557,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } + if(!$return) msg($this->getLang('userchangefail'), -1); } return $return; diff --git a/lib/plugins/authad/lang/en/lang.php b/lib/plugins/authad/lang/en/lang.php index 4f96a71fd..751aa9f47 100644 --- a/lib/plugins/authad/lang/en/lang.php +++ b/lib/plugins/authad/lang/en/lang.php @@ -6,7 +6,9 @@ * @author Andreas Gohr <gohr@cosmocode.de> */ -$lang['domain'] = 'Logon Domain'; -$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; +$lang['domain'] = 'Logon Domain'; +$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; +$lang['passchangefail'] = 'Failed to change the password. Maybe the password policy was not met?'; +$lang['connectfail'] = 'Failed to connect to Active Directory server.'; //Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index 9d031c049..247a0fec2 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -281,14 +281,14 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // open the connection to the ldap if(!$this->_openLDAP()){ - msg('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con))); + $this->_debug('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } // find the information about the user, in particular the "dn" $info = $this->getUserData($user,true); if(empty($info['dn'])) { - msg('LDAP cannot find your user dn'); + $this->_debug('LDAP cannot find your user dn', 0, __LINE__, __FILE__); return false; } $dn = $info['dn']; @@ -301,7 +301,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // bind with the ldap if(!@ldap_bind($this->con, $dn, $pass)){ - msg('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); + $this->_debug('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } } elseif ($this->getConf('binddn') && $this->getConf('bindpw')) { @@ -322,7 +322,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // change the password if(!@ldap_mod_replace($this->con, $dn,array('userpassword' => $hash))){ - msg('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con))); + $this->_debug('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } diff --git a/lib/plugins/authldap/lang/en/lang.php b/lib/plugins/authldap/lang/en/lang.php new file mode 100644 index 000000000..db06efb4c --- /dev/null +++ b/lib/plugins/authldap/lang/en/lang.php @@ -0,0 +1,11 @@ +<?php +/** + * English language file for authldap plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'LDAP cannot connect: %s'; +$lang['domainfail' = 'LDAP cannot find your user dn'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authmysql/auth.php b/lib/plugins/authmysql/auth.php index 0d423b6c9..1b7d0bfa4 100644 --- a/lib/plugins/authmysql/auth.php +++ b/lib/plugins/authmysql/auth.php @@ -222,6 +222,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { if($this->_openDB()) { if(($info = $this->_getUserInfo($user)) !== false) { + msg($this->getLang('userexists'), -1); return false; // user already exists } @@ -235,7 +236,13 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = $this->_addUser($user, $pwd, $name, $mail, $grps); $this->_unlockTables(); $this->_closeDB(); - if($rc) return true; + if(!$rc) { + msg($this->getLang('writefail')); + return null; + } + return true; + } else { + msg($this->getLang('connectfail'), -1); } return null; // return error } @@ -279,7 +286,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = $this->_updateUserInfo($user, $changes); - if($rc && isset($changes['grps']) && $this->cando['modGroups']) { + if(!$rc) { + msg($this->getLang('usernotexists'), -1); + } elseif(isset($changes['grps']) && $this->cando['modGroups']) { $groups = $this->_getGroups($user); $grpadd = array_diff($changes['grps'], $groups); $grpdel = array_diff($groups, $changes['grps']); @@ -295,10 +304,14 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = false; } } + + if(!$rc) msg($this->getLang('writefail')); } $this->_unlockTables(); $this->_closeDB(); + } else { + msg($this->getLang('connectfail'), -1); } return $rc; } @@ -328,6 +341,8 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $this->_unlockTables(); } $this->_closeDB(); + } else { + msg($this->getLang('connectfail'), -1); } return $count; } diff --git a/lib/plugins/authmysql/lang/en/lang.php b/lib/plugins/authmysql/lang/en/lang.php new file mode 100644 index 000000000..8313616c6 --- /dev/null +++ b/lib/plugins/authmysql/lang/en/lang.php @@ -0,0 +1,13 @@ +<?php +/** + * English language file for authmysql plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'Failed to connect to database.'; +$lang['userexists'] = 'Sorry, a user with this login already exists.'; +$lang['usernotexists'] = 'Sorry, that user doesn\'t exist.'; +$lang['writefail'] = 'Unable to modify user data. Please inform the Wiki-Admin'; + +//Setup VIM: ex: et ts=4 : -- GitLab From 99a5b03f106be4dd58ea09dd0613e4a496f9c06a Mon Sep 17 00:00:00 2001 From: TLed <tled@ledderboge.de> Date: Wed, 6 May 2015 22:53:43 +0200 Subject: [PATCH 105/440] 2y is also used for bcryt --- inc/PassHash.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/PassHash.class.php b/inc/PassHash.class.php index 15f896dcf..0701c4116 100644 --- a/inc/PassHash.class.php +++ b/inc/PassHash.class.php @@ -50,7 +50,7 @@ class PassHash { } elseif(preg_match('/^md5\$(.{5})\$/', $hash, $m)) { $method = 'djangomd5'; $salt = $m[1]; - } elseif(preg_match('/^\$2a\$(.{2})\$/', $hash, $m)) { + } elseif(preg_match('/^\$2(a|y)\$(.{2})\$/', $hash, $m)) { $method = 'bcrypt'; $salt = $hash; } elseif(substr($hash, 0, 6) == '{SSHA}') { -- GitLab From 369075828e13e37a65a2f8062a74e89f98dd3fac Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 6 May 2015 18:21:17 -0400 Subject: [PATCH 106/440] Append to BZip2 files. Unit tests for writing files. --- _test/tests/inc/io_deletefromfile.test.php | 42 +++++++++++++++++++ _test/tests/inc/io_savefile.test.php | 49 ++++++++++++++++++++++ inc/io.php | 11 ++++- 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 _test/tests/inc/io_deletefromfile.test.php create mode 100644 _test/tests/inc/io_savefile.test.php diff --git a/_test/tests/inc/io_deletefromfile.test.php b/_test/tests/inc/io_deletefromfile.test.php new file mode 100644 index 000000000..361c82214 --- /dev/null +++ b/_test/tests/inc/io_deletefromfile.test.php @@ -0,0 +1,42 @@ +<?php + +class io_deletefromfile_test extends DokuWikiTest { + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!extension_loaded('zlib')) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!extension_loaded('bz2')) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function _write($file){ + $contents = "The\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; + io_saveFile($file, $contents); + $this->assertTrue(io_deleteFromFile($file, "Delete\012")); + $this->assertEquals("The\012Delete01\012Delete02\012DeleteX\012Test\012", io_readFile($file)); + $this->assertTrue(io_deleteFromFile($file, "#Delete\\d+\012#", true)); + $this->assertEquals("The\012DeleteX\012Test\012", io_readFile($file)); + } + + function test_delete(){ + $this->_write(TMP_DIR.'/test.txt'); + } + +// /** +// * @depends test_ext_zlib +// */ +// function test_gzwrite(){ +// } + +} diff --git a/_test/tests/inc/io_savefile.test.php b/_test/tests/inc/io_savefile.test.php new file mode 100644 index 000000000..4a4d4671d --- /dev/null +++ b/_test/tests/inc/io_savefile.test.php @@ -0,0 +1,49 @@ +<?php + +class io_savefile_test extends DokuWikiTest { + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!extension_loaded('zlib')) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!extension_loaded('bz2')) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function _write($file){ + $contents = "The\012Write\012Test\012"; + $this->assertTrue(io_saveFile($file, $contents)); + $this->assertEquals($contents, io_readFile($file)); + $this->assertTrue(io_saveFile($file, $contents, true)); + $this->assertEquals($contents.$contents, io_readFile($file)); + } + + function test_write(){ + $this->_write(TMP_DIR.'/test.txt'); + } + + /** + * @depends test_ext_zlib + */ + function test_gzwrite(){ + $this->_write(TMP_DIR.'/test.txt.gz'); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzwrite(){ + $this->_write(TMP_DIR.'/test.txt.bz2'); + } + +} diff --git a/inc/io.php b/inc/io.php index 0636a4b62..8846b7e56 100644 --- a/inc/io.php +++ b/inc/io.php @@ -223,7 +223,16 @@ function io_saveFile($file,$content,$append=false){ gzwrite($fh, $content); gzclose($fh); }else if(substr($file,-4) == '.bz2'){ - $fh = @bzopen($file,$mode{0}); + if($append) { + $bzcontent = bzfile($file); + if($bzcontent === false) { + msg("Writing $file failed", -1); + io_unlock($file); + return false; + } + $content = $bzcontent.$content; + } + $fh = @bzopen($file,'w'); if(!$fh){ msg("Writing $file failed", -1); io_unlock($file); -- GitLab From cfb71e37ca8859c4ad9a1db73de0a293ffc7a902 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 6 May 2015 23:31:39 -0400 Subject: [PATCH 107/440] Deleting lines works with BZ2 files. --- _test/tests/inc/io_deletefromfile.test.php | 18 ++++++++---- _test/tests/inc/io_readfile.test.php | 7 ++++- _test/tests/inc/io_readfile/large.txt.bz2 | Bin 0 -> 47 bytes _test/tests/inc/io_readfile/long.txt.bz2 | Bin 0 -> 53 bytes inc/io.php | 31 +++++++++++++++++++-- 5 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 _test/tests/inc/io_readfile/large.txt.bz2 create mode 100644 _test/tests/inc/io_readfile/long.txt.bz2 diff --git a/_test/tests/inc/io_deletefromfile.test.php b/_test/tests/inc/io_deletefromfile.test.php index 361c82214..63951f548 100644 --- a/_test/tests/inc/io_deletefromfile.test.php +++ b/_test/tests/inc/io_deletefromfile.test.php @@ -33,10 +33,18 @@ class io_deletefromfile_test extends DokuWikiTest { $this->_write(TMP_DIR.'/test.txt'); } -// /** -// * @depends test_ext_zlib -// */ -// function test_gzwrite(){ -// } + /** + * @depends test_ext_zlib + */ + function test_gzwrite(){ + $this->_write(TMP_DIR.'/test.txt.gz'); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzwrite(){ + $this->_write(TMP_DIR.'/test.txt.bz2'); + } } diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php index e3e90cd8d..700c1902b 100644 --- a/_test/tests/inc/io_readfile.test.php +++ b/_test/tests/inc/io_readfile.test.php @@ -48,6 +48,11 @@ class io_readfile_test extends DokuWikiTest { $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2', false)); $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.bz2')); $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.bz2')); + // internal bzfile function + $this->assertEquals(array("The\015\012","Test\015\012"), bzfile(__DIR__.'/io_readfile/test.txt.bz2', true)); + $this->assertEquals(array_fill(0, 120, str_repeat('a', 80)."\012"), bzfile(__DIR__.'/io_readfile/large.txt.bz2', true)); + $line = str_repeat('a', 8888)."\012"; + $this->assertEquals(array($line,"\012",$line,"!"), bzfile(__DIR__.'/io_readfile/long.txt.bz2', true)); } -} \ No newline at end of file +} diff --git a/_test/tests/inc/io_readfile/large.txt.bz2 b/_test/tests/inc/io_readfile/large.txt.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3135435f82ed3e14ecd60b87af5b9d16f247f45a GIT binary patch literal 47 zcmZ>Y%CIzaj8qGbWSZVOn}IR-C<B841B(KK0)xRBR?X#H8?+9s7cX+P2$%p;001oo B4aNWf literal 0 HcmV?d00001 diff --git a/_test/tests/inc/io_readfile/long.txt.bz2 b/_test/tests/inc/io_readfile/long.txt.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..fb40759e618fa0c589f4a787e11fc48b6d7c75e4 GIT binary patch literal 53 zcmZ>Y%CIzaj8qGbEKBiU%fO%#$kZU9z@Wgu$iTp%z+iBeA*5~2QH8gQ93Q>&Sk5KH Jcc$~}0swxR5gY&j literal 0 HcmV?d00001 diff --git a/inc/io.php b/inc/io.php index 8846b7e56..b8a77b730 100644 --- a/inc/io.php +++ b/inc/io.php @@ -127,22 +127,36 @@ function io_readFile($file,$clean=true){ * @author Andreas Gohr <andi@splitbrain.org> * * @param string $file filename - * @return string|bool content or false on error + * @param bool $array return array of lines + * @return string|array|bool content or false on error */ -function bzfile($file){ +function bzfile($file, $array=false) { $bz = bzopen($file,"r"); if($bz === false) return false; + if($array) $lines = array(); $str = ''; - while (!feof($bz)){ + while (!feof($bz)) { //8192 seems to be the maximum buffersize? $buffer = bzread($bz,8192); if(($buffer === false) || (bzerrno($bz) !== 0)) { return false; } $str = $str . $buffer; + if($array) { + $pos = strpos($str, "\n"); + while($pos !== false) { + $lines[] = substr($str, 0, $pos+1); + $str = substr($str, $pos+1); + $pos = strpos($str, "\n"); + } + } } bzclose($bz); + if($array) { + if($str !== '') $lines[] = $str; + return $lines; + } return $str; } @@ -280,6 +294,8 @@ function io_deleteFromFile($file,$badline,$regex=false){ // load into array if(substr($file,-3) == '.gz'){ $lines = gzfile($file); + }else if(substr($file,-4) == '.bz2'){ + $lines = bzfile($file, true); }else{ $lines = file($file); } @@ -306,6 +322,15 @@ function io_deleteFromFile($file,$badline,$regex=false){ } gzwrite($fh, $content); gzclose($fh); + }else if(substr($file,-4) == '.bz2'){ + $fh = @bzopen($file,'w'); + if(!$fh){ + msg("Removing content from $file failed",-1); + io_unlock($file); + return false; + } + bzwrite($fh, $content); + bzclose($fh); }else{ $fh = @fopen($file,'wb'); if(!$fh){ -- GitLab From 1bd6bbdebc26f9cd916f8f287cd2cabc07bee8d1 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 7 May 2015 01:37:11 -0400 Subject: [PATCH 108/440] Add io_replaceInFile --- inc/io.php | 158 +++++++++++++++++++++++++++++------------------------ 1 file changed, 86 insertions(+), 72 deletions(-) diff --git a/inc/io.php b/inc/io.php index b8a77b730..11a3fa77f 100644 --- a/inc/io.php +++ b/inc/io.php @@ -205,13 +205,7 @@ function _io_writeWikiPage_action($data) { } /** - * Saves $content to $file. - * - * If the third parameter is set to true the given content - * will be appended. - * - * Uses gzip if extension is .gz - * and bz2 if extension is .bz2 + * Internal function to save contents to a file. * * @author Andreas Gohr <andi@splitbrain.org> * @@ -220,73 +214,90 @@ function _io_writeWikiPage_action($data) { * @param bool $append * @return bool true on success, otherwise false */ -function io_saveFile($file,$content,$append=false){ +function _io_saveFile($file, $content, $append) { global $conf; $mode = ($append) ? 'ab' : 'wb'; - $fileexists = file_exists($file); - io_makeFileDir($file); - io_lock($file); + if(substr($file,-3) == '.gz'){ $fh = @gzopen($file,$mode.'9'); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - return false; - } + if(!$fh) return false; gzwrite($fh, $content); gzclose($fh); }else if(substr($file,-4) == '.bz2'){ if($append) { $bzcontent = bzfile($file); - if($bzcontent === false) { - msg("Writing $file failed", -1); - io_unlock($file); - return false; - } + if($bzcontent === false) return false; $content = $bzcontent.$content; } $fh = @bzopen($file,'w'); - if(!$fh){ - msg("Writing $file failed", -1); - io_unlock($file); - return false; - } + if(!$fh) return false; bzwrite($fh, $content); bzclose($fh); }else{ $fh = @fopen($file,$mode); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - return false; - } + if(!$fh) return false; fwrite($fh, $content); fclose($fh); } if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']); - io_unlock($file); return true; } /** - * Delete exact linematch for $badline from $file. + * Saves $content to $file. * - * Be sure to include the trailing newline in $badline + * If the third parameter is set to true the given content + * will be appended. * * Uses gzip if extension is .gz + * and bz2 if extension is .bz2 * - * 2005-10-14 : added regex option -- Christopher Smith <chris@jalakai.co.uk> + * @author Andreas Gohr <andi@splitbrain.org> * - * @author Steven Danz <steven-danz@kc.rr.com> + * @param string $file filename path to file + * @param string $content + * @param bool $append + * @return bool true on success, otherwise false + */ +function io_saveFile($file, $content, $append=false) { + io_makeFileDir($file); + io_lock($file); + if(!_io_saveFile($file, $content, $append)) { + msg("Writing $file failed",-1); + io_unlock($file); + return false; + } + io_unlock($file); + return true; +} + +/** + * Replace one or more occurrences of a line in a file. * - * @param string $file filename - * @param string $badline exact linematch to remove - * @param bool $regex use regexp? + * The default, when $maxlines is 0 is to delete all matches then append a single line. + * If $maxlines is -1, then every $oldline will be replaced with $newline, and $regex is true + * then preg captures are used. If $maxlines is greater than 0 then the first $maxlines + * matches are replaced with $newline. + * + * Be sure to include the trailing newline in $oldline + * + * Uses gzip if extension is .gz + * and bz2 if extension is .bz2 + * + * @author Steven Danz <steven-danz@kc.rr.com> + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Patrick Brown <ptbrown@whoopdedo.org> + * + * @param string $file filename + * @param string $oldline exact linematch to remove + * @param string $newline new line to insert + * @param bool $regex use regexp? + * @param int $maxlines number of occurrences of the line to replace * @return bool true on success */ -function io_deleteFromFile($file,$badline,$regex=false){ +function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) { if (!file_exists($file)) return true; io_lock($file); @@ -302,44 +313,31 @@ function io_deleteFromFile($file,$badline,$regex=false){ // remove all matching lines if ($regex) { - $lines = preg_grep($badline,$lines,PREG_GREP_INVERT); + if($maxlines == 0) { + $lines = preg_grep($oldline, $lines, PREG_GREP_INVERT); + } else { + $lines = preg_replace($oldline, $newline, $lines, $maxlines); + } } else { - $pos = array_search($badline,$lines); //return null or false if not found + $count = 0; + $replaceline = $maxlines == 0 ? '' : $newline; + $pos = array_search($oldline,$lines); //return null or false if not found while(is_int($pos)){ - unset($lines[$pos]); - $pos = array_search($badline,$lines); + $lines[$pos] = $replaceline; + if($maxlines > 0 && ++$count >= $maxlines) break; + $pos = array_search($oldline,$lines); } } + if($maxlines == 0 && ((string)$newline) !== '') { + $lines[] = $newline; + } + if(count($lines)){ - $content = join('',$lines); - if(substr($file,-3) == '.gz'){ - $fh = @gzopen($file,'wb9'); - if(!$fh){ - msg("Removing content from $file failed",-1); - io_unlock($file); - return false; - } - gzwrite($fh, $content); - gzclose($fh); - }else if(substr($file,-4) == '.bz2'){ - $fh = @bzopen($file,'w'); - if(!$fh){ - msg("Removing content from $file failed",-1); - io_unlock($file); - return false; - } - bzwrite($fh, $content); - bzclose($fh); - }else{ - $fh = @fopen($file,'wb'); - if(!$fh){ - msg("Removing content from $file failed",-1); - io_unlock($file); - return false; - } - fwrite($fh, $content); - fclose($fh); + if(!_io_saveFile($file, join('',$lines), false)) { + msg("Removing content from $file failed",-1); + io_unlock($file); + return false; } }else{ @unlink($file); @@ -349,6 +347,22 @@ function io_deleteFromFile($file,$badline,$regex=false){ return true; } +/** + * Delete lines that match $badline from $file. + * + * Be sure to include the trailing newline in $badline + * + * @author Patrick Brown <ptbrown@whoopdedo.org> + * + * @param string $file filename + * @param string $badline exact linematch to remove + * @param bool $regex use regexp? + * @return bool true on success + */ +function io_deleteFromFile($file,$badline,$regex=false){ + return io_replaceInFile($file,$badline,null,$regex,0); +} + /** * Tries to lock a file * -- GitLab From e6c4392f11bb5a668be8e874560af910b71d72f8 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 7 May 2015 01:43:32 -0400 Subject: [PATCH 109/440] Fix scrutinizer issues with auth --- inc/auth.php | 2 +- lib/plugins/auth.php | 2 +- lib/plugins/authldap/lang/en/lang.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/auth.php b/inc/auth.php index dd0fc35b3..60b8c7c78 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -1098,7 +1098,7 @@ function updateprofile() { } } - if(!($result = $auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes)))) { + if(!$auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes))) { msg($lang['proffail'], -1); return false; } diff --git a/lib/plugins/auth.php b/lib/plugins/auth.php index 4799b3a38..036cb0d77 100644 --- a/lib/plugins/auth.php +++ b/lib/plugins/auth.php @@ -295,7 +295,7 @@ class DokuWiki_Auth_Plugin extends DokuWiki_Plugin { */ public function deleteUsers($users) { msg("authorisation method does not allow deleting of users", -1); - return false; + return 0; } /** diff --git a/lib/plugins/authldap/lang/en/lang.php b/lib/plugins/authldap/lang/en/lang.php index db06efb4c..8185a84fa 100644 --- a/lib/plugins/authldap/lang/en/lang.php +++ b/lib/plugins/authldap/lang/en/lang.php @@ -6,6 +6,6 @@ */ $lang['connectfail'] = 'LDAP cannot connect: %s'; -$lang['domainfail' = 'LDAP cannot find your user dn'; +$lang['domainfail'] = 'LDAP cannot find your user dn'; //Setup VIM: ex: et ts=4 : -- GitLab From 95e3f389247c53b580d3dc59b26d4bf89ef6ae3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Thu, 7 May 2015 11:29:07 +0200 Subject: [PATCH 110/440] Change ID name --- lib/plugins/extension/script.js | 1 + lib/plugins/extension/style.less | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index 1a0af4e0d..ddd668a76 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -115,6 +115,7 @@ jQuery(function(){ */ if ( $extmgr.find('.tabs li:first-child, .tabs li:nth-child(2)').hasClass('active') ) { var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); $displayOpts.append(LANG.plugins.extension.display_viewoptions); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index fe15da16a..baeb40db1 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -371,6 +371,6 @@ width: 60%; } -#viewoptions label { +#extension__viewoptions label { margin-left: 1em; } -- GitLab From c594265e447bf705dae05f5e59560ea4c3afea0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Thu, 7 May 2015 11:30:00 +0200 Subject: [PATCH 111/440] Add class name using tab name --- lib/plugins/extension/helper/gui.php | 4 ++-- lib/plugins/extension/script.js | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/plugins/extension/helper/gui.php b/lib/plugins/extension/helper/gui.php index 3a0f0c589..4ec6fec85 100644 --- a/lib/plugins/extension/helper/gui.php +++ b/lib/plugins/extension/helper/gui.php @@ -144,11 +144,11 @@ class helper_plugin_extension_gui extends DokuWiki_Plugin { foreach($this->tabs as $tab) { $url = $this->tabURL($tab); if($this->currentTab() == $tab) { - $class = 'class="active"'; + $class = ' active'; } else { $class = ''; } - echo '<li '.$class.'><a href="'.$url.'">'.$this->getLang('tab_'.$tab).'</a></li>'; + echo '<li class="'.$tab.$class.'"><a href="'.$url.'">'.$this->getLang('tab_'.$tab).'</a></li>'; } echo '</ul>'; } diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index ddd668a76..bc1bf8b12 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -113,8 +113,7 @@ jQuery(function(){ /** Create section for enabling/disabling viewing options */ - if ( $extmgr.find('.tabs li:first-child, .tabs li:nth-child(2)').hasClass('active') ) { - var $displayOpts = jQuery('<p>', { id: 'viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + if ( $extmgr.find('.plugins, .templates').hasClass('active') ) { var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); $displayOpts.append(LANG.plugins.extension.display_viewoptions); -- GitLab From c9a3a44ccbcf2ff1ed427df5f6911a1028989e43 Mon Sep 17 00:00:00 2001 From: Danny Buckhof <daniel.raknes@hotmail.no> Date: Thu, 7 May 2015 14:45:55 +0200 Subject: [PATCH 112/440] translation update --- inc/lang/no/lang.php | 5 +++++ lib/plugins/authad/lang/no/lang.php | 3 +++ lib/plugins/authad/lang/no/settings.php | 3 +++ lib/plugins/revert/lang/no/lang.php | 1 + 4 files changed, 12 insertions(+) diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 2aa8cdcda..fddbf1419 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -22,6 +22,7 @@ * @author Boris <boris@newton-media.no> * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -87,6 +88,7 @@ $lang['regmissing'] = 'Vennligst fyll ut alle felt.'; $lang['reguexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; $lang['regsuccess'] = 'Brukerkonto har blitt laget og passord har blitt sendt via e-post.'; $lang['regsuccess2'] = 'Brukeren har blitt laget.'; +$lang['regfail'] = 'Brukeren kan ikke opprettes'; $lang['regmailfail'] = 'En feil oppstod da passordet ditt skulle sendes via e-post. Vennligst kontakt administratoren!'; $lang['regbadmail'] = 'Den angitte e-post adressen ser ut til Ã¥ være ugyldig. Vennligst kontakt administratoren om du anser dette som feilaktig.'; $lang['regbadpass'] = 'De to angitte passordene er ikke like, vennligst forsøk igjen.'; @@ -101,6 +103,7 @@ $lang['profdeleteuser'] = 'Slett konto'; $lang['profdeleted'] = 'Din brukerkonto har blitt slettet fra denne wikien'; $lang['profconfdelete'] = 'Jeg ønsker Ã¥ fjerne min konto fra denne wikien. <br/> Denne handlingen kan ikke omgjøres.'; $lang['profconfdeletemissing'] = 'Boks for bekreftelse ikke avkrysset'; +$lang['proffail'] = 'Brukerprofilen ble ikke oppdatert'; $lang['pwdforget'] = 'Glemt passordet ditt? FÃ¥ deg et nytt'; $lang['resendna'] = 'Denne wikien støtter ikke nyutsending av passord.'; $lang['resendpwd'] = 'Sett nytt passord for'; @@ -298,6 +301,7 @@ $lang['i_modified'] = 'For sikkerhets skyld vil dette skriptet bare v <a href="http://dokuwiki.org/install">Dokuwiki-installasjonsinstruksen</a>'; $lang['i_funcna'] = 'PHP-funksjonen <code>%s</code> er ikke tilgjengelig. Kanskje din leverandør har deaktivert den av noen grunn?'; $lang['i_phpver'] = 'Din PHP versjon <code>%s</code> er lavere enn kravet <code>%s</code>. Du mÃ¥ oppgradere PHP installasjonen. '; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload mÃ¥ deaktiveres i php.ini for Ã¥ kjøre DokuWiki.'; $lang['i_permfail'] = '<code>%s</code> er ikke skrivbar for DokuWiki. Du mÃ¥ fikse rettighetene for denne mappen!'; $lang['i_confexists'] = '<code>%s</code> eksisterer allerede'; $lang['i_writeerr'] = 'Kunne ikke opprette <code>%s</code>. Du mÃ¥ sjekke mappe-/filrettigheter og opprette filen manuelt.'; @@ -354,3 +358,4 @@ $lang['searchresult'] = 'Søk i resultat'; $lang['plainhtml'] = 'Enkel HTML'; $lang['wikimarkup'] = 'wiki-format'; $lang['page_nonexist_rev'] = 'Finnes ingen side pÃ¥ %s. Den er derfor laget pÃ¥ <a href="%s">%s</a>'; +$lang['unable_to_parse_date'] = 'Ikke mulig Ã¥ tolke "%s".'; diff --git a/lib/plugins/authad/lang/no/lang.php b/lib/plugins/authad/lang/no/lang.php index f8dbb0b08..b497c4719 100644 --- a/lib/plugins/authad/lang/no/lang.php +++ b/lib/plugins/authad/lang/no/lang.php @@ -5,6 +5,9 @@ * * @author Patrick <spill.p@hotmail.com> * @author Thomas Juberg <Thomas.Juberg@Gmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['domain'] = 'LoggpÃ¥-domene'; $lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; +$lang['passchangefail'] = 'Feil ved endring av passord. Det kan være at passordet ikke er i trÃ¥d med passordpolicyen '; +$lang['connectfail'] = 'Feil ved kontakt med Active Directory serveren.'; diff --git a/lib/plugins/authad/lang/no/settings.php b/lib/plugins/authad/lang/no/settings.php index f309ead50..727f6611d 100644 --- a/lib/plugins/authad/lang/no/settings.php +++ b/lib/plugins/authad/lang/no/settings.php @@ -5,7 +5,10 @@ * * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['account_suffix'] = 'Ditt konto-suffiks F. Eks. <code>@my.domain.org</code>'; $lang['admin_password'] = 'Passordet til brukeren over.'; +$lang['use_ssl'] = 'Bruk SSL tilknytning? Hvis denne brukes, ikke aktiver TLS nedenfor.'; +$lang['use_tls'] = 'Bruk TLS tilknytning? Hvis denne brukes, ikke aktiver SSL over.'; $lang['expirywarn'] = 'Antall dager pÃ¥ forhÃ¥nd brukeren varsles om at passordet utgÃ¥r. 0 for Ã¥ deaktivere.'; diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index 76da8ca9c..d5307c7ca 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -20,6 +20,7 @@ * @author Boris <boris@newton-media.no> * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; -- GitLab From 699e3c4900f2d6cc860a3587a05798cd23b7944d Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 7 May 2015 14:27:00 -0400 Subject: [PATCH 113/440] Use io_replaceInFile for updating auth --- lib/plugins/acl/admin.php | 11 ++--------- lib/plugins/authplain/auth.php | 11 +++-------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 814bbfe9c..2dfdbbda5 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -682,7 +682,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { */ function _acl_add($acl_scope, $acl_user, $acl_level){ global $config_cascade; - $acl_config = file_get_contents($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); // max level for pagenames is edit @@ -692,9 +691,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $new_acl = "$acl_scope\t$acl_user\t$acl_level\n"; - $new_config = $acl_config.$new_acl; - - return io_saveFile($config_cascade['acl']['default'], $new_config); + return io_saveFile($config_cascade['acl']['default'], $new_config, true); } /** @@ -704,15 +701,11 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { */ function _acl_del($acl_scope, $acl_user){ global $config_cascade; - $acl_config = file($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); $acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$'; - // save all non!-matching - $new_config = preg_grep("/$acl_pattern/", $acl_config, PREG_GREP_INVERT); - - return io_saveFile($config_cascade['acl']['default'], join('',$new_config)); + return io_deleteFromFile($config_cascade['acl']['default'], "/$acl_pattern/", true); } /** diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php index b31c02fc8..35cf7a802 100644 --- a/lib/plugins/authplain/auth.php +++ b/lib/plugins/authplain/auth.php @@ -185,14 +185,9 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { $userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']); - if(!$this->deleteUsers(array($user))) { - msg('Unable to modify user data. Please inform the Wiki-Admin', -1); - return false; - } - - if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { - msg('There was an error modifying your user data. You should register again.', -1); - // FIXME, user has been deleted but not recreated, should force a logout and redirect to login page + if(!io_replaceInFile($config_cascade['plainauth.users']['default'], '/^'.$user.':/', $userline, true)) { + msg('There was an error modifying your user data. You may need to register again.', -1); + // FIXME, io functions should be fail-safe so existing data isn't lost $ACT = 'register'; return false; } -- GitLab From e283bd6c307c6538f4d5447a938266b5e414c159 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Fri, 8 May 2015 11:32:48 +0100 Subject: [PATCH 114/440] urlencode t param value in css and js calls --- inc/template.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/template.php b/inc/template.php index d6436e416..3859065bc 100644 --- a/inc/template.php +++ b/inc/template.php @@ -402,7 +402,7 @@ function tpl_metaheaders($alt = true) { // load stylesheets $head['link'][] = array( 'rel' => 'stylesheet', 'type'=> 'text/css', - 'href'=> DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed + 'href'=> DOKU_BASE.'lib/exe/css.php?t='.rawurlencode($conf['template']).'&tseed='.$tseed ); // make $INFO and other vars available to JavaScripts @@ -417,7 +417,7 @@ function tpl_metaheaders($alt = true) { // load external javascript $head['script'][] = array( 'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '', - 'src' => DOKU_BASE.'lib/exe/js.php'.'?t='.$conf['template'].'&tseed='.$tseed + 'src' => DOKU_BASE.'lib/exe/js.php'.'?t='.rawurlencode($conf['template']).'&tseed='.$tseed ); // trigger event here -- GitLab From 526e5abda6d7ab051bb2819eaffbe81af04e6c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerry=20Wei=C3=9Fbach?= <gerry.w@gammaproduction.de> Date: Fri, 8 May 2015 13:15:31 +0200 Subject: [PATCH 115/440] Adhere to CSS style guide --- lib/plugins/extension/style.less | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index baeb40db1..38b2d65d0 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -282,11 +282,14 @@ */ #extension__list { - .enabled, .disabled, .updatable { + .enabled, .disabled, + .updatable { display: none; } - &.enabled .enabled, &.disabled .disabled, &.updatable .updatable { + &.enabled .enabled, + &.disabled .disabled, + &.updatable .updatable { display: block; } -- GitLab From 12a4e4d1ed827c59290838d5a11d75ad32aa28f1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 8 May 2015 16:15:16 +0200 Subject: [PATCH 116/440] start of rewriting the form handling This is jsut a small beginning. Not all elements are there, yet. It's also completely untested so far. --- inc/Form/CheckableElement.php | 62 +++++++++++++ inc/Form/Element.php | 142 +++++++++++++++++++++++++++++ inc/Form/Form.php | 167 ++++++++++++++++++++++++++++++++++ inc/Form/InputElement.php | 145 +++++++++++++++++++++++++++++ inc/Form/Label.php | 46 ++++++++++ inc/Form/TextareaElement.php | 50 ++++++++++ 6 files changed, 612 insertions(+) create mode 100644 inc/Form/CheckableElement.php create mode 100644 inc/Form/Element.php create mode 100644 inc/Form/Form.php create mode 100644 inc/Form/InputElement.php create mode 100644 inc/Form/Label.php create mode 100644 inc/Form/TextareaElement.php diff --git a/inc/Form/CheckableElement.php b/inc/Form/CheckableElement.php new file mode 100644 index 000000000..a57bbc1f6 --- /dev/null +++ b/inc/Form/CheckableElement.php @@ -0,0 +1,62 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class CheckableElement + * + * For Radio- and Checkboxes + * + * @package DokuForm + */ +class CheckableElement extends InputElement { + + /** + * @param string $type The type of this element + * @param string $name The name of this form element + * @param string $label The label text for this element + */ + public function __construct($type, $name, $label) { + parent::__construct($type, $name, $label); + // default value is 1 + $this->attr('value', 1); + } + + /** + * Handles the useInput flag and sets the checked attribute accordingly + */ + protected function prefillInput() { + global $INPUT; + list($name, $key) = $this->getInputName(); + $myvalue = $this->val(); + + if(!$INPUT->has($name)) return; + + if($key === null) { + // no key - single value + $value = $INPUT->str($name); + if($value == $myvalue) { + $this->attr('checked', 'checked'); + } else { + $this->rmattr('checked'); + } + } else { + // we have an array, there might be several values in it + $input = $INPUT->arr($name); + if(isset($input[$key])) { + $this->rmattr('checked'); + + // values seem to be in another sub array + if(is_array($input[$key])) { + $input = $input[$key]; + } + + foreach($input as $value) { + if($value == $myvalue) { + $this->attr('checked', 'checked'); + } + } + } + } + } + +} diff --git a/inc/Form/Element.php b/inc/Form/Element.php new file mode 100644 index 000000000..6f23e2631 --- /dev/null +++ b/inc/Form/Element.php @@ -0,0 +1,142 @@ +<?php +namespace dokuwiki\Form; + + +/** + * Class Element + * + * The basic building block of a form + * + * @package dokuwiki\Form + */ +abstract class Element { + + /** + * @var array the attributes of this element + */ + protected $attributes = array(); + + /** + * @var string The type of this element + */ + protected $type; + + /** + * @param string $type The type of this element + * @param array $attributes + */ + public function __construct($type, $attributes = array()) { + $this->type = $type; + $this->attributes = $attributes; + } + + /** + * Gets or sets an attribute + * + * When no $value is given, the current content of the attribute is returned. + * An empty string is returned for unset attributes. + * + * When a $value is given, the content is set to that value and the Element + * itself is returned for easy chaining + * + * @param string $name Name of the attribute to access + * @param null|string $value New value to set + * @return string|$this + */ + public function attr($name, $value = null) { + // set + if($value !== null) { + $this->attributes[$name] = $value; + return $this; + } + + // get + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } else { + return ''; + } + } + + /** + * Removes the given attribute if it exists + * + * @param $name + * @return $this + */ + public function rmattr($name) { + if(isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + return $this; + } + + /** + * Gets or adds a all given attributes at once + * + * @param array|null $attributes + * @return array|$this + */ + public function attrs($attributes = null) { + // set + if($attributes) { + foreach((array) $attributes as $key => $val) { + $this->attr($key, $val); + } + return $this; + } + // get + return $this->attributes; + } + + /** + * Adds a class to the class attribute + * + * This is the preferred method of setting the element's class + * + * @param string $class the new class to add + * @return $this + */ + public function addClass($class) { + $classes = explode(' ', $this->attr('class')); + $classes[] = $class; + $classes = array_unique($classes); + $this->attr('class', join(' ', $classes)); + return $this; + } + + /** + * Get or set the element's ID + * + * This is the preferred way of setting the element's ID + * + * @param null|string $id + * @return string|$this + */ + public function id($id = null) { + if(strpos($id, '__') === false) { + throw new \InvalidArgumentException('IDs in DokuWiki have to contain two subsequent underscores'); + } + + return $this->attr('id', $id); + } + + /** + * Get or set the element's value + * + * This is the preferred way of setting the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + return $this->attr('value', $value); + } + + /** + * The HTML representation of this element + * + * @return string + */ + abstract public function toHTML(); +} diff --git a/inc/Form/Form.php b/inc/Form/Form.php new file mode 100644 index 000000000..3a8b590e7 --- /dev/null +++ b/inc/Form/Form.php @@ -0,0 +1,167 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class Form + * + * Represents the whole Form. This is what you work on, and add Elements to + * + * @package dokuwiki\Form + */ +class Form extends Element { + + /** + * @var array name value pairs for hidden values + */ + protected $hidden = array(); + + /** + * @var Element[] the elements of the form + */ + protected $elements = array(); + + /** + * Creates a new, empty form with some default attributes + * + * @param array $attributes + */ + public function __construct($attributes = array()) { + global $ID; + + parent::__construct('form', $attributes); + + // use the current URL as default action + if(!$this->attr('action')) { + $get = $_GET; + if(isset($get['id'])) unset($get['id']); + $self = wl($ID, $get); + $this->attr('action', $self); + } + + // post is default + if(!$this->attr('method')) { + $this->attr('method', 'post'); + } + + // we like UTF-8 + if(!$this->attr('accept-charset')) { + $this->attr('accept-charset', 'utf-8'); + } + + // add the security token by default + $this->setHiddenField('sectok', getSecurityToken()); + + // identify this as a form2 based form in HTML + $this->addClass('doku_form2'); + } + + /** + * Sets a hidden field + * + * @param $name + * @param $value + * @return $this + */ + public function setHiddenField($name, $value) { + $this->hidden[$name] = $value; + return $this; + } + + /** + * Adds an element to the end of the form + * + * @param Element $element + * @param int $pos 0-based position in the form, -1 for at the end + * @return Element + */ + public function addElement(Element $element, $pos = -1) { + if(is_a($element, 'Doku_Form2')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + if($pos < 0) { + $this->elements[] = $element; + } else { + array_splice($this->elements, $pos, 0, array($element)); + } + return $element; + } + + /** + * Adds a text input field + * + * @param $name + * @param $label + * @param int $pos + * @return InputElement + */ + public function addTextInput($name, $label, $pos = -1) { + return $this->addElement(new InputElement('text', $name, $label), $pos); + } + + /** + * Adds a password input field + * + * @param $name + * @param $label + * @param int $pos + * @return InputElement + */ + public function addPasswordInput($name, $label, $pos = -1) { + return $this->addElement(new InputElement('password', $name, $label), $pos); + } + + /** + * Adds a radio button field + * + * @param $name + * @param $label + * @param int $pos + * @return CheckableElement + */ + public function addRadioButton($name, $label, $pos = -1) { + return $this->addElement(new CheckableElement('radio', $name, $label), $pos); + } + + /** + * Adds a checkbox field + * + * @param $name + * @param $label + * @param int $pos + * @return CheckableElement + */ + public function addCheckbox($name, $label, $pos = -1) { + return $this->addElement(new CheckableElement('checkbox', $name, $label), $pos); + } + + /** + * Adds a textarea field + * + * @param $name + * @param $label + * @param int $pos + * @return TextareaElement + */ + public function addTextarea($name, $label, $pos = -1) { + return $this->addElement(new TextareaElement($name, $label), $pos); + } + + /** + * The HTML representation of the whole form + * + * @return string + */ + public function toHTML() { + $html = '<form ' . buildAttributes($this->attrs()) . '>' . DOKU_LF; + + foreach($this->hidden as $name => $value) { + $html .= '<input type="hidden" name="' . $name . '" value="' . formText($value) . '" />' . DOKU_LF; + } + + foreach($this->elements as $element) { + $html .= $element->toHTML() . DOKU_LF; + } + + $html .= '</form>' . DOKU_LF; + + return $html; + } +} diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php new file mode 100644 index 000000000..59310174e --- /dev/null +++ b/inc/Form/InputElement.php @@ -0,0 +1,145 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class InputElement + * + * Base class for all input elements. Uses a wrapping label. + * + * @todo figure out how to make wrapping or related label configurable + * @package dokuwiki\Form + */ +class InputElement extends Element { + /** + * @var Label + */ + protected $label; + + /** + * @var bool if the element should reflect posted values + */ + protected $useInput = true; + + /** + * @param string $type The type of this element + * @param string $name The name of this form element + * @param string $label The label text for this element + */ + public function __construct($type, $name, $label) { + parent::__construct($type, array('name' => $name)); + $this->attr('name', $name); + } + + /** + * Should the user sent input be used to initialize the input field + * + * The default is true. Any set values will be overwritten by the INPUT + * provided values. + * + * @param bool $useinput + * @return $this + */ + public function useInput($useinput) { + $this->useInput = (bool) $useinput; + return $this; + } + + /** + * Get or set the element's ID + * + * @param null|string $id + * @return string|$this + */ + public function id($id = null) { + $this->label->attr('for', $id); + return parent::id($id); + } + + /** + * Adds a class to the class attribute + * + * This is the preferred method of setting the element's class + * + * @param string $class the new class to add + * @return $this + */ + public function addClass($class) { + $this->label->addClass($class); + return parent::addClass($class); + } + + /** + * Figures out how to access the value for this field from INPUT data + * + * The element's name could have been given as a simple string ('foo') + * or in array notation ('foo[bar]'). + * + * Note: this function only handles one level of arrays. If your data + * is nested deeper, you should call useInput(false) and set the + * correct value yourself + * + * @return array name and array key (null if not an array) + */ + protected function getInputName() { + $name = $this->attr('name'); + parse_str("$name=1", $parsed); + + $name = array_keys($parsed); + $name = array_shift($name); + + if(is_array($parsed[$name])) { + $key = array_keys($parsed[$name]); + $key = array_shift($key); + } else { + $key = null; + } + + return array($name, $key); + } + + /** + * Handles the useInput flag and set the value attribute accordingly + */ + protected function prefillInput() { + global $INPUT; + + list($name, $key) = $this->getInputName(); + if(!$INPUT->has($name)) return; + + if($key === null) { + $value = $INPUT->str($name); + } else { + $value = $INPUT->arr($name); + if(isset($value[$key])) { + $value = $value[$key]; + } else { + $value = ''; + } + } + if($value !== '') { + $this->val($value); + } + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return '<input ' . buildAttributes($this->attrs()) . ' />'; + } + + /** + * The HTML representation of this element wrapped in a label + * + * @return string + */ + public function toHTML() { + return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF . + '<span>' . hsc($this->label->label) . '</span>' . DOKU_LF . + $this->mainElementHTML() . DOKU_LF . + '</label>'; + } +} diff --git a/inc/Form/Label.php b/inc/Form/Label.php new file mode 100644 index 000000000..c8a862613 --- /dev/null +++ b/inc/Form/Label.php @@ -0,0 +1,46 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class Label + * @package dokuwiki\Form + */ +class Label extends Element { + /** + * @var string the actual label text + */ + public $label = ''; + + /** + * Creates a new Label + * + * @param string $label + */ + public function __construct($label) { + parent::__construct('label'); + $this->label = $label; + } + + /** + * Get or set the element's label text + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + if($value !== null) { + $this->label = $value; + return $this; + } + return $this->label; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<label ' . buildAttributes($this->attrs()) . '>' . hsc($this->label) . '</label>'; + } +} diff --git a/inc/Form/TextareaElement.php b/inc/Form/TextareaElement.php new file mode 100644 index 000000000..a8486266f --- /dev/null +++ b/inc/Form/TextareaElement.php @@ -0,0 +1,50 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TextareaElement + * @package dokuwiki\Form + */ +class TextareaElement extends InputElement { + + /** + * @var string the actual text within the area + */ + protected $text; + + /** + * @param string $name The name of this form element + * @param string $label The label text for this element + */ + public function __construct($name, $label) { + parent::__construct('textarea', $name, $label); + } + + /** + * Get or set the element's value + * + * This is the preferred way of setting the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + if($value !== null) { + $this->text = $value; + return $this; + } + return $this->text; + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return '<textarea ' . buildAttributes($this->attrs()) . '>' . + formText($this->val()) . '</textarea>'; + } + +} -- GitLab From e7a32b176701c088bab045437819448bb9adad41 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 8 May 2015 16:27:17 +0200 Subject: [PATCH 117/440] added autoloading for namespaced classes --- _test/tests/inc/form/form.test.php | 0 inc/load.php | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 _test/tests/inc/form/form.test.php diff --git a/_test/tests/inc/form/form.test.php b/_test/tests/inc/form/form.test.php new file mode 100644 index 000000000..e69de29bb diff --git a/inc/load.php b/inc/load.php index 18786dc79..19a8caa85 100644 --- a/inc/load.php +++ b/inc/load.php @@ -113,6 +113,12 @@ function load_autoload($name){ return; } + // our own namespace + $name = str_replace('\\', '/', $name); + if(substr($name, 0, 9) == 'dokuwiki/') { + require_once(substr($name, 9) . '.php'); + } + // Plugin loading if(preg_match('/^(auth|helper|syntax|action|admin|renderer|remote)_plugin_('.DOKU_PLUGIN_NAME_REGEX.')(?:_([^_]+))?$/', $name, $m)) { -- GitLab From 6d0ceaf93ca31dfb83fd4325ef2eecd9cef733c0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 8 May 2015 17:26:11 +0200 Subject: [PATCH 118/440] added a first few tests. this is far from comprehensible, but should give an idea how the new library works and how to write tests --- .../tests/inc/form/checkableelement.test.php | 49 +++++++++++++++++++ _test/tests/inc/form/form.test.php | 28 +++++++++++ _test/tests/inc/form/inputelement.test.php | 41 ++++++++++++++++ inc/Form/Element.php | 1 + inc/Form/Form.php | 6 +-- inc/Form/InputElement.php | 1 + 6 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 _test/tests/inc/form/checkableelement.test.php create mode 100644 _test/tests/inc/form/inputelement.test.php diff --git a/_test/tests/inc/form/checkableelement.test.php b/_test/tests/inc/form/checkableelement.test.php new file mode 100644 index 000000000..a0e4173e8 --- /dev/null +++ b/_test/tests/inc/form/checkableelement.test.php @@ -0,0 +1,49 @@ +<?php + +use dokuwiki\Form; + +class form_checkableelement_test extends DokuWikiTest { + + function test_defaults() { + $form = new Form\Form(); + $form->addRadioButton('foo', 'label text first')->val('first')->attr('checked', 'checked'); + $form->addRadioButton('foo', 'label text second')->val('second'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 2); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 2); + + $inputs = $pq->find('input[name=foo]'); + $this->assertEquals('first', pq($inputs->elements[0])->val()); + $this->assertEquals('second', pq($inputs->elements[1])->val()); + $this->assertEquals('checked', pq($inputs->elements[0])->attr('checked')); + $this->assertEquals('', pq($inputs->elements[1])->attr('checked')); + } + + /** + * check that posted values overwrite preset default + */ + function test_prefill() { + global $INPUT; + $INPUT->post->set('foo', 'second'); + + + $form = new Form\Form(); + $form->addRadioButton('foo', 'label text first')->val('first')->attr('checked', 'checked'); + $form->addRadioButton('foo', 'label text second')->val('second'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $inputs = $pq->find('input[name=foo]'); + $this->assertEquals('first', pq($inputs->elements[0])->val()); + $this->assertEquals('second', pq($inputs->elements[1])->val()); + $this->assertEquals('', pq($inputs->elements[0])->attr('checked')); + $this->assertEquals('checked', pq($inputs->elements[1])->attr('checked')); + } +} diff --git a/_test/tests/inc/form/form.test.php b/_test/tests/inc/form/form.test.php index e69de29bb..cdf3e5a3a 100644 --- a/_test/tests/inc/form/form.test.php +++ b/_test/tests/inc/form/form.test.php @@ -0,0 +1,28 @@ +<?php + +use dokuwiki\Form; + +class form_form_test extends DokuWikiTest { + + /** + * checks that an empty form is initialized correctly + */ + function test_defaults() { + global $INPUT; + global $ID; + $ID = 'some:test'; + $INPUT->get->set('id', $ID); + $INPUT->get->set('foo', 'bar'); + + $form = new Form\Form(); + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $this->assertTrue($pq->find('form')->hasClass('doku_form')); + $this->assertEquals(wl($ID, array('foo' => 'bar'), false, '&'), $pq->find('form')->attr('action')); + $this->assertEquals('post', $pq->find('form')->attr('method')); + + $this->assertTrue($pq->find('input[name=sectok]')->length == 1); + } + +} diff --git a/_test/tests/inc/form/inputelement.test.php b/_test/tests/inc/form/inputelement.test.php new file mode 100644 index 000000000..7a5e6d2ea --- /dev/null +++ b/_test/tests/inc/form/inputelement.test.php @@ -0,0 +1,41 @@ +<?php + +use dokuwiki\Form; + +class form_inputelement_test extends DokuWikiTest { + + function test_defaults() { + $form = new Form\Form(); + $form->addTextInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('this is text', $input->val()); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 1); + $this->assertEquals('label text', $label->find('span')->text()); + } + + /** + * check that posted values overwrite preset default + */ + function test_prefill() { + global $INPUT; + $INPUT->post->set('foo', 'a new text'); + + $form = new Form\Form(); + $form->addTextInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('a new text', $input->val()); + } + +} diff --git a/inc/Form/Element.php b/inc/Form/Element.php index 6f23e2631..3fd170a80 100644 --- a/inc/Form/Element.php +++ b/inc/Form/Element.php @@ -101,6 +101,7 @@ abstract class Element { $classes = explode(' ', $this->attr('class')); $classes[] = $class; $classes = array_unique($classes); + $classes = array_filter($classes); $this->attr('class', join(' ', $classes)); return $this; } diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 3a8b590e7..dc502e021 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -34,7 +34,7 @@ class Form extends Element { if(!$this->attr('action')) { $get = $_GET; if(isset($get['id'])) unset($get['id']); - $self = wl($ID, $get); + $self = wl($ID, $get, false, '&'); //attributes are escaped later $this->attr('action', $self); } @@ -51,8 +51,8 @@ class Form extends Element { // add the security token by default $this->setHiddenField('sectok', getSecurityToken()); - // identify this as a form2 based form in HTML - $this->addClass('doku_form2'); + // identify this as a new form based form in HTML + $this->addClass('doku_form'); } /** diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php index 59310174e..4f644c0f1 100644 --- a/inc/Form/InputElement.php +++ b/inc/Form/InputElement.php @@ -28,6 +28,7 @@ class InputElement extends Element { public function __construct($type, $name, $label) { parent::__construct($type, array('name' => $name)); $this->attr('name', $name); + $this->label = new Label($label); } /** -- GitLab From de19515f04567db78bd41d5bff68a88bfb8c2a22 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 8 May 2015 19:12:21 +0200 Subject: [PATCH 119/440] started with the compatibility layer --- inc/Form/Element.php | 10 ++- inc/Form/Form.php | 27 ++++-- inc/Form/HTMLElement.php | 48 +++++++++++ inc/Form/InputElement.php | 34 +++++--- inc/Form/LegacyForm.php | 156 +++++++++++++++++++++++++++++++++++ inc/Form/TextareaElement.php | 1 + 6 files changed, 260 insertions(+), 16 deletions(-) create mode 100644 inc/Form/HTMLElement.php create mode 100644 inc/Form/LegacyForm.php diff --git a/inc/Form/Element.php b/inc/Form/Element.php index 3fd170a80..7938ee009 100644 --- a/inc/Form/Element.php +++ b/inc/Form/Element.php @@ -1,7 +1,6 @@ <?php namespace dokuwiki\Form; - /** * Class Element * @@ -30,6 +29,15 @@ abstract class Element { $this->attributes = $attributes; } + /** + * Type of this element + * + * @return string + */ + public function getType() { + return $this->type; + } + /** * Gets or sets an attribute * diff --git a/inc/Form/Form.php b/inc/Form/Form.php index dc502e021..19cc05065 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -92,7 +92,7 @@ class Form extends Element { * @param int $pos * @return InputElement */ - public function addTextInput($name, $label, $pos = -1) { + public function addTextInput($name, $label = '', $pos = -1) { return $this->addElement(new InputElement('text', $name, $label), $pos); } @@ -104,7 +104,7 @@ class Form extends Element { * @param int $pos * @return InputElement */ - public function addPasswordInput($name, $label, $pos = -1) { + public function addPasswordInput($name, $label = '', $pos = -1) { return $this->addElement(new InputElement('password', $name, $label), $pos); } @@ -116,7 +116,7 @@ class Form extends Element { * @param int $pos * @return CheckableElement */ - public function addRadioButton($name, $label, $pos = -1) { + public function addRadioButton($name, $label = '', $pos = -1) { return $this->addElement(new CheckableElement('radio', $name, $label), $pos); } @@ -128,7 +128,7 @@ class Form extends Element { * @param int $pos * @return CheckableElement */ - public function addCheckbox($name, $label, $pos = -1) { + public function addCheckbox($name, $label = '', $pos = -1) { return $this->addElement(new CheckableElement('checkbox', $name, $label), $pos); } @@ -140,16 +140,33 @@ class Form extends Element { * @param int $pos * @return TextareaElement */ - public function addTextarea($name, $label, $pos = -1) { + public function addTextarea($name, $label = '', $pos = -1) { return $this->addElement(new TextareaElement($name, $label), $pos); } + /** + * Add fixed HTML to the form + * + * @param $html + * @param int $pos + * @return Element + */ + public function addHTML($html, $pos = -1) { + return $this->addElement(new HTMLElement($html), $pos); + } + + protected function balanceFieldsets() { + //todo implement! + } + /** * The HTML representation of the whole form * * @return string */ public function toHTML() { + $this->balanceFieldsets(); + $html = '<form ' . buildAttributes($this->attrs()) . '>' . DOKU_LF; foreach($this->hidden as $name => $value) { diff --git a/inc/Form/HTMLElement.php b/inc/Form/HTMLElement.php new file mode 100644 index 000000000..06f27d736 --- /dev/null +++ b/inc/Form/HTMLElement.php @@ -0,0 +1,48 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class HTMLElement + * + * Holds arbitrary HTML that is added as is to the Form + * + * @package dokuwiki\Form + */ +class HTMLElement extends Element { + + /** + * @var string the raw HTML held by this element + */ + protected $html = ''; + + /** + * @param string $html + */ + public function __construct($html) { + parent::__construct('html'); + $this->val($html); + } + + /** + * Get or set the element's content + * + * @param null|string $html + * @return string|$this + */ + public function val($html = null) { + if($html !== null) { + $this->html = $html; + return $this; + } + return $this->html; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return $this->val(); + } +} diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php index 4f644c0f1..939d911c1 100644 --- a/inc/Form/InputElement.php +++ b/inc/Form/InputElement.php @@ -4,7 +4,8 @@ namespace dokuwiki\Form; /** * Class InputElement * - * Base class for all input elements. Uses a wrapping label. + * Base class for all input elements. Uses a wrapping label when label + * text is given. * * @todo figure out how to make wrapping or related label configurable * @package dokuwiki\Form @@ -13,7 +14,7 @@ class InputElement extends Element { /** * @var Label */ - protected $label; + protected $label = null; /** * @var bool if the element should reflect posted values @@ -25,10 +26,19 @@ class InputElement extends Element { * @param string $name The name of this form element * @param string $label The label text for this element */ - public function __construct($type, $name, $label) { + public function __construct($type, $name, $label = '') { parent::__construct($type, array('name' => $name)); $this->attr('name', $name); - $this->label = new Label($label); + if($label) $this->label = new Label($label); + } + + /** + * Returns the label element if there's one set + * + * @return Label|null + */ + public function getLabel() { + return $this->label; } /** @@ -52,7 +62,7 @@ class InputElement extends Element { * @return string|$this */ public function id($id = null) { - $this->label->attr('for', $id); + if($this->label) $this->label->attr('for', $id); return parent::id($id); } @@ -65,7 +75,7 @@ class InputElement extends Element { * @return $this */ public function addClass($class) { - $this->label->addClass($class); + if($this->label) $this->label->addClass($class); return parent::addClass($class); } @@ -138,9 +148,13 @@ class InputElement extends Element { * @return string */ public function toHTML() { - return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF . - '<span>' . hsc($this->label->label) . '</span>' . DOKU_LF . - $this->mainElementHTML() . DOKU_LF . - '</label>'; + if($this->label) { + return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF . + '<span>' . hsc($this->label->label) . '</span>' . DOKU_LF . + $this->mainElementHTML() . DOKU_LF . + '</label>'; + } else { + return $this->mainElementHTML(); + } } } diff --git a/inc/Form/LegacyForm.php b/inc/Form/LegacyForm.php new file mode 100644 index 000000000..edd263ee7 --- /dev/null +++ b/inc/Form/LegacyForm.php @@ -0,0 +1,156 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class LegacyForm + * + * Provides a compatibility layer to the old Doku_Form API + * + * This can be used to work with the modern API on forms provided by old events for + * example. When you start new forms, just use Form\Form + * + * @package dokuwiki\Form + */ +class LegacyForm extends Form { + + /** + * Creates a new modern form from an old legacy Doku_Form + * + * @param \Doku_Form $oldform + */ + public function __construct(\Doku_Form $oldform) { + parent::__construct($oldform->params); + + $this->hidden = $oldform->_hidden; + + foreach($oldform->_content as $element) { + list($ctl, $attr) = $this->parseLegacyAttr($element); + + if(is_array($element)) { + switch($ctl['elem']) { + case 'wikitext': + $this->addTextarea('wikitext') + ->attrs($attr) + ->id('wiki__text') + ->val($ctl['text']) + ->addClass($ctl['class']); + break; + case 'textfield': + $this->addTextInput($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'passwordfield': + $this->addPasswordInput($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'checkboxfield': + $this->addCheckbox($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'radiofield': + $this->addRadioButton($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + + case 'tag': + case 'opentag': + case 'closetag': + case 'openfieldset': + case 'closefieldset': + case 'button': + case 'field': + case 'fieldright': + case 'filefield': + case 'menufield': + case 'listboxfield': + throw new \UnexpectedValueException('Unsupported legacy field ' . $ctl['elem']); + break; + default: + throw new \UnexpectedValueException('Unknown legacy field ' . $ctl['elem']); + + } + } else { + $this->addHTML($element); + } + } + + } + + /** + * Parses out what is the elements attributes and what is control info + * + * @param array $legacy + * @return array + */ + protected function parseLegacyAttr($legacy) { + $attributes = array(); + $control = array(); + + foreach($legacy as $key => $val) { + if($key{0} == '_') { + $control[substr($key, 1)] = $val; + } elseif($key == 'name') { + $control[$key] = $val; + } elseif($key == 'id') { + $control[$key] = $val; + } else { + $attributes[$key] = $val; + } + } + + return array($control, $attributes); + } + + /** + * Translates our types to the legacy types + * + * @param string $type + * @return string + */ + protected function legacyType($type) { + static $types = array( + 'text' => 'textfield', + 'password' => 'passwordfield', + 'checkbox' => 'checkboxfield', + 'radio' => 'radiofield', + ); + if(isset($types[$type])) return $types[$type]; + return $type; + } + + /** + * Creates an old legacy form from this modern form's data + * + * @return \Doku_Form + */ + public function toLegacy() { + $this->balanceFieldsets(); + + $legacy = new \Doku_Form($this->attrs()); + $legacy->_hidden = $this->hidden; + foreach($this->elements as $element) { + if(is_a($element, 'dokuwiki\Form\HTMLElement')) { + $legacy->_content[] = $element->toHTML(); + } elseif(is_a($element, 'dokuwiki\Form\InputElement')) { + /** @var InputElement $element */ + $data = $element->attrs(); + $data['_elem'] = $this->legacyType($element->getType()); + $label = $element->getLabel(); + if($label) { + $data['_class'] = $label->attr('class'); + } + $legacy->_content[] = $data; + } + } + + return $legacy; + } +} diff --git a/inc/Form/TextareaElement.php b/inc/Form/TextareaElement.php index a8486266f..9d461fdf5 100644 --- a/inc/Form/TextareaElement.php +++ b/inc/Form/TextareaElement.php @@ -18,6 +18,7 @@ class TextareaElement extends InputElement { */ public function __construct($name, $label) { parent::__construct('textarea', $name, $label); + $this->attr('dir', 'auto'); } /** -- GitLab From 64744a10c5578602141ae2977274eec3fcff1f44 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 8 May 2015 20:37:06 +0200 Subject: [PATCH 120/440] more elements and work on the legacy support --- inc/Form/FieldsetCloseElement.php | 64 ++++++++++++++++++++++++++++++ inc/Form/FieldsetOpenElement.php | 36 +++++++++++++++++ inc/Form/Form.php | 65 ++++++++++++++++++++++++++++++- inc/Form/HTMLElement.php | 23 +---------- inc/Form/Label.php | 25 ++---------- inc/Form/LegacyForm.php | 27 ++++++++++++- inc/Form/TagCloseElement.php | 30 ++++++++++++++ inc/Form/TagElement.php | 29 ++++++++++++++ inc/Form/TagOpenElement.php | 30 ++++++++++++++ inc/Form/ValueElement.php | 45 +++++++++++++++++++++ 10 files changed, 329 insertions(+), 45 deletions(-) create mode 100644 inc/Form/FieldsetCloseElement.php create mode 100644 inc/Form/FieldsetOpenElement.php create mode 100644 inc/Form/TagCloseElement.php create mode 100644 inc/Form/TagElement.php create mode 100644 inc/Form/TagOpenElement.php create mode 100644 inc/Form/ValueElement.php diff --git a/inc/Form/FieldsetCloseElement.php b/inc/Form/FieldsetCloseElement.php new file mode 100644 index 000000000..0de84e251 --- /dev/null +++ b/inc/Form/FieldsetCloseElement.php @@ -0,0 +1,64 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class FieldsetCloseElement + * + * Closes an open Fieldset + * + * @package dokuwiki\Form + */ +class FieldsetCloseElement extends TagCloseElement { + + /** + * @param array $attributes + */ + public function __construct($attributes = array()) { + parent::__construct('tagclose', $attributes); + } + + /** + * do not call this + * + * @param $class + * @return void + * @throws \BadMethodCallException + */ + public function addClass($class) { + throw new \BadMethodCallException('You can\t add classes to closing tag'); + } + + /** + * do not call this + * + * @param $id + * @return void + * @throws \BadMethodCallException + */ + public function id($id = null) { + throw new \BadMethodCallException('You can\t add ID to closing tag'); + } + + /** + * do not call this + * + * @param $name + * @param $value + * @return void + * @throws \BadMethodCallException + */ + public function attr($name, $value = null) { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } + + /** + * do not call this + * + * @param $attributes + * @return void + * @throws \BadMethodCallException + */ + public function attrs($attributes = null) { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } +} diff --git a/inc/Form/FieldsetOpenElement.php b/inc/Form/FieldsetOpenElement.php new file mode 100644 index 000000000..a7de461fa --- /dev/null +++ b/inc/Form/FieldsetOpenElement.php @@ -0,0 +1,36 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class FieldsetOpenElement + * + * Opens a Fieldset with an optional legend + * + * @package dokuwiki\Form + */ +class FieldsetOpenElement extends TagOpenElement { + + /** + * @param string $legend + * @param array $attributes + */ + public function __construct($legend='', $attributes = array()) { + // this is a bit messy and we just do it for the nicer class hierarchy + // the parent would expect the tag in $value but we're storing the + // legend there, so we have to set the type manually + parent::__construct($legend, $attributes); + $this->type = 'fieldsetopen'; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + $html = '<fieldset '.buildAttributes($this->attrs()).'>'; + $legend = $this->val(); + if($legend) $html .= DOKU_LF.'<legend>'.hsc($legend).'</legend>'; + return $html; + } +} diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 19cc05065..420399fb1 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -67,6 +67,8 @@ class Form extends Element { return $this; } + #region Element adding functions + /** * Adds an element to the end of the form * @@ -149,12 +151,73 @@ class Form extends Element { * * @param $html * @param int $pos - * @return Element + * @return HTMLElement */ public function addHTML($html, $pos = -1) { return $this->addElement(new HTMLElement($html), $pos); } + /** + * Add a closed HTML tag to the form + * + * @param $tag + * @param int $pos + * @return TagElement + */ + public function addTag($tag, $pos = -1) { + return $this->addElement(new TagElement($tag), $pos); + } + + /** + * Add an open HTML tag to the form + * + * Be sure to close it again! + * + * @param $tag + * @param int $pos + * @return TagOpenElement + */ + public function addTagOpen($tag, $pos = -1) { + return $this->addElement(new TagOpenElement($tag), $pos); + } + + /** + * Add a closing HTML tag to the form + * + * Be sure it had been opened before + * + * @param $tag + * @param int $pos + * @return TagCloseElement + */ + public function addTagClose($tag, $pos = -1) { + return $this->addElement(new TagCloseElement($tag), $pos); + } + + + /** + * Open a Fieldset + * + * @param $legend + * @param int $pos + * @return FieldsetOpenElement + */ + public function addFieldsetOpen($legend='', $pos = -1) { + return $this->addElement(new FieldsetOpenElement($legend), $pos); + } + + /** + * Close a fieldset + * + * @param int $pos + * @return TagCloseElement + */ + public function addFieldsetClose($pos = -1) { + return $this->addElement(new FieldsetCloseElement(), $pos); + } + + #endregion + protected function balanceFieldsets() { //todo implement! } diff --git a/inc/Form/HTMLElement.php b/inc/Form/HTMLElement.php index 06f27d736..591cf472f 100644 --- a/inc/Form/HTMLElement.php +++ b/inc/Form/HTMLElement.php @@ -8,33 +8,14 @@ namespace dokuwiki\Form; * * @package dokuwiki\Form */ -class HTMLElement extends Element { +class HTMLElement extends ValueElement { - /** - * @var string the raw HTML held by this element - */ - protected $html = ''; /** * @param string $html */ public function __construct($html) { - parent::__construct('html'); - $this->val($html); - } - - /** - * Get or set the element's content - * - * @param null|string $html - * @return string|$this - */ - public function val($html = null) { - if($html !== null) { - $this->html = $html; - return $this; - } - return $this->html; + parent::__construct('html', $html); } /** diff --git a/inc/Form/Label.php b/inc/Form/Label.php index c8a862613..8dcd7cd5f 100644 --- a/inc/Form/Label.php +++ b/inc/Form/Label.php @@ -5,11 +5,7 @@ namespace dokuwiki\Form; * Class Label * @package dokuwiki\Form */ -class Label extends Element { - /** - * @var string the actual label text - */ - public $label = ''; +class Label extends ValueElement { /** * Creates a new Label @@ -17,22 +13,7 @@ class Label extends Element { * @param string $label */ public function __construct($label) { - parent::__construct('label'); - $this->label = $label; - } - - /** - * Get or set the element's label text - * - * @param null|string $value - * @return string|$this - */ - public function val($value = null) { - if($value !== null) { - $this->label = $value; - return $this; - } - return $this->label; + parent::__construct('label', $label); } /** @@ -41,6 +22,6 @@ class Label extends Element { * @return string */ public function toHTML() { - return '<label ' . buildAttributes($this->attrs()) . '>' . hsc($this->label) . '</label>'; + return '<label ' . buildAttributes($this->attrs()) . '>' . hsc($this->val()) . '</label>'; } } diff --git a/inc/Form/LegacyForm.php b/inc/Form/LegacyForm.php index edd263ee7..1b47ba204 100644 --- a/inc/Form/LegacyForm.php +++ b/inc/Form/LegacyForm.php @@ -59,12 +59,33 @@ class LegacyForm extends Form { ->id($ctl['id']) ->addClass($ctl['class']); break; - case 'tag': + $this->addTag($ctl['tag']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; case 'opentag': + $this->addTagOpen($ctl['tag']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; case 'closetag': + $this->addTagClose($ctl['tag']); + break; case 'openfieldset': + $this->addFieldsetOpen($ctl['legend']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; case 'closefieldset': + $this->addFieldsetClose(); + break; case 'button': case 'field': case 'fieldright': @@ -121,6 +142,10 @@ class LegacyForm extends Form { 'password' => 'passwordfield', 'checkbox' => 'checkboxfield', 'radio' => 'radiofield', + 'tagopen' => 'opentag', + 'tagclose' => 'closetag', + 'fieldsetopen' => 'openfieldset', + 'fieldsetclose' => 'closefieldset', ); if(isset($types[$type])) return $types[$type]; return $type; diff --git a/inc/Form/TagCloseElement.php b/inc/Form/TagCloseElement.php new file mode 100644 index 000000000..896945b97 --- /dev/null +++ b/inc/Form/TagCloseElement.php @@ -0,0 +1,30 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagCloseElement + * + * Creates an HTML close tag. You have to make sure it has been opened + * before or this will produce invalid HTML + * + * @package dokuwiki\Form + */ +class TagCloseElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tagclose', $tag, $attributes); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '</'.$this->val().'>'; + } +} diff --git a/inc/Form/TagElement.php b/inc/Form/TagElement.php new file mode 100644 index 000000000..ea5144c9c --- /dev/null +++ b/inc/Form/TagElement.php @@ -0,0 +1,29 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagElement + * + * Creates a self closing HTML tag + * + * @package dokuwiki\Form + */ +class TagElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tag', $tag, $attributes); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<'.$this->val().' '.buildAttributes($this->attrs()).' />'; + } +} diff --git a/inc/Form/TagOpenElement.php b/inc/Form/TagOpenElement.php new file mode 100644 index 000000000..0afe97b45 --- /dev/null +++ b/inc/Form/TagOpenElement.php @@ -0,0 +1,30 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagOpenElement + * + * Creates an open HTML tag. You have to make sure you close it + * again or this will produce invalid HTML + * + * @package dokuwiki\Form + */ +class TagOpenElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tagopen', $tag, $attributes); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<'.$this->val().' '.buildAttributes($this->attrs()).'>'; + } +} diff --git a/inc/Form/ValueElement.php b/inc/Form/ValueElement.php new file mode 100644 index 000000000..753704c70 --- /dev/null +++ b/inc/Form/ValueElement.php @@ -0,0 +1,45 @@ +<?php + +namespace dokuwiki\Form; + +/** + * Class ValueElement + * + * Just like an Element but it's value is not part of its attributes + * + * What the value is (tag name, content, etc) is defined by the actual implementations + * + * @package dokuwiki\Form + */ +abstract class ValueElement extends Element { + + /** + * @var string holds the element's value + */ + protected $value = ''; + + /** + * @param string $type + * @param array $value + * @param array $attributes + */ + public function __construct($type, $value, $attributes = array()) { + parent::__construct($type, $attributes); + $this->val($value); + } + + /** + * Get or set the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + if($value !== null) { + $this->value = $value; + return $this; + } + return $this->value; + } + +} -- GitLab From 6c0002048504e43b399abece0668afa2b5c87a07 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 8 May 2015 17:11:44 -0400 Subject: [PATCH 121/440] Limit number of lines to replace. --- _test/tests/inc/io_replaceinfile.test.php | 58 +++++++++++++++++++++++ inc/io.php | 12 +++-- 2 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 _test/tests/inc/io_replaceinfile.test.php diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php new file mode 100644 index 000000000..98f21868f --- /dev/null +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -0,0 +1,58 @@ +<?php + +class io_replaceinfile_test extends DokuWikiTest { + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!extension_loaded('zlib')) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!extension_loaded('bz2')) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function _write($file){ + $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; + io_saveFile($file, $contents); + // Replace one, no regex + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete00\012", false, 1)); + $this->assertEquals("The\012Delete00\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file)); + // Replace all, no regex + $this->assertTrue(io_replaceInFile($file, "Delete\012", "DeleteX\012", false, -1)); + $this->assertEquals("The\012Delete00\012DeleteX\012Delete01\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file)); + // Replace two, regex and backreference + $this->assertTrue(io_replaceInFile($file, "#Delete(\\d+)\012#", "\\1\012", true, 2)); + $this->assertEquals("The\01200\012DeleteX\01201\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file)); + // Delete and insert, no regex + $this->assertTrue(io_replaceInFile($file, "DeleteX\012", "Replace\012", false, 0)); + $this->assertEquals("The\01200\01201\012Delete02\012Test\012Replace\012", io_readFile($file)); + } + + function test_replace(){ + $this->_write(TMP_DIR.'/test.txt'); + } + + /** + * @depends test_ext_zlib + */ + function test_gzwrite(){ + $this->_write(TMP_DIR.'/test.txt.gz'); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzwrite(){ + $this->_write(TMP_DIR.'/test.txt.bz2'); + } + +} diff --git a/inc/io.php b/inc/io.php index 11a3fa77f..dbb42114b 100644 --- a/inc/io.php +++ b/inc/io.php @@ -313,10 +313,16 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) // remove all matching lines if ($regex) { - if($maxlines == 0) { - $lines = preg_grep($oldline, $lines, PREG_GREP_INVERT); + if($maxlines > 0) { + $matches = preg_grep($oldline, $lines); + $count = 0; + foreach($matches as $ix=>$m) { + $lines[$ix] = preg_replace($oldline, $newline, $m); + if(++$count >= $maxlines) break; + } } else { - $lines = preg_replace($oldline, $newline, $lines, $maxlines); + $lines = ($maxlines == 0) ? preg_grep($oldline, $lines, PREG_GREP_INVERT) + : preg_replace($oldline, $newline, $lines, $maxlines); } } else { $count = 0; -- GitLab From 0c26fb18171bc6264c1b0b2dbdfddc34de5d579e Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 8 May 2015 17:13:32 -0400 Subject: [PATCH 122/440] Don't run redundant tests io_deleteFromFile is a special case of io_replaceInFile. Since the io_replace tests check compressed files, it doesn't have to be done in the io_delete test. --- _test/tests/inc/io_deletefromfile.test.php | 39 ++-------------------- 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/_test/tests/inc/io_deletefromfile.test.php b/_test/tests/inc/io_deletefromfile.test.php index 63951f548..e86150aac 100644 --- a/_test/tests/inc/io_deletefromfile.test.php +++ b/_test/tests/inc/io_deletefromfile.test.php @@ -2,25 +2,8 @@ class io_deletefromfile_test extends DokuWikiTest { - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_zlib() { - if (!extension_loaded('zlib')) { - $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); - } - } - - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_bz2() { - if (!extension_loaded('bz2')) { - $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); - } - } - - function _write($file){ + function test_delete(){ + $file = TMP_DIR.'/test.txt'; $contents = "The\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; io_saveFile($file, $contents); $this->assertTrue(io_deleteFromFile($file, "Delete\012")); @@ -29,22 +12,4 @@ class io_deletefromfile_test extends DokuWikiTest { $this->assertEquals("The\012DeleteX\012Test\012", io_readFile($file)); } - function test_delete(){ - $this->_write(TMP_DIR.'/test.txt'); - } - - /** - * @depends test_ext_zlib - */ - function test_gzwrite(){ - $this->_write(TMP_DIR.'/test.txt.gz'); - } - - /** - * @depends test_ext_bz2 - */ - function test_bzwrite(){ - $this->_write(TMP_DIR.'/test.txt.bz2'); - } - } -- GitLab From 2b71c2eece46d1e977fa596ed57b74e04a9aaf6b Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 8 May 2015 17:57:02 -0400 Subject: [PATCH 123/440] Fix variable name typo --- lib/plugins/acl/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 2dfdbbda5..cdd96be56 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -691,7 +691,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $new_acl = "$acl_scope\t$acl_user\t$acl_level\n"; - return io_saveFile($config_cascade['acl']['default'], $new_config, true); + return io_saveFile($config_cascade['acl']['default'], $new_acl, true); } /** -- GitLab From 370c645068595c6750cee2b38eb96aeaac3a9dbb Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 11 May 2015 19:52:12 +0200 Subject: [PATCH 124/440] fixed label output --- inc/Form/InputElement.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php index 939d911c1..5908f7d11 100644 --- a/inc/Form/InputElement.php +++ b/inc/Form/InputElement.php @@ -150,7 +150,7 @@ class InputElement extends Element { public function toHTML() { if($this->label) { return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF . - '<span>' . hsc($this->label->label) . '</span>' . DOKU_LF . + '<span>' . hsc($this->label->val()) . '</span>' . DOKU_LF . $this->mainElementHTML() . DOKU_LF . '</label>'; } else { -- GitLab From 1f5d8b65a983fe0914971ee0bb4e5e58cbf8c8a7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 11 May 2015 20:31:16 +0200 Subject: [PATCH 125/440] balance fieldsets --- _test/tests/inc/form/form.test.php | 87 ++++++++++++++++++++++++++++++ inc/Form/FieldsetCloseElement.php | 46 +++------------- inc/Form/Form.php | 39 ++++++++++++-- inc/Form/TagCloseElement.php | 46 ++++++++++++++++ 4 files changed, 175 insertions(+), 43 deletions(-) diff --git a/_test/tests/inc/form/form.test.php b/_test/tests/inc/form/form.test.php index cdf3e5a3a..3ae832b2c 100644 --- a/_test/tests/inc/form/form.test.php +++ b/_test/tests/inc/form/form.test.php @@ -2,6 +2,25 @@ use dokuwiki\Form; +/** + * makes form internals accessible for testing + */ +class TestForm extends Form\Form { + /** + * @return array list of element types + */ + function getElementTypeList() { + $list = array(); + foreach($this->elements as $element) $list[] = $element->getType(); + return $list; + } + + public function balanceFieldsets() { + parent::balanceFieldsets(); + } + +} + class form_form_test extends DokuWikiTest { /** @@ -25,4 +44,72 @@ class form_form_test extends DokuWikiTest { $this->assertTrue($pq->find('input[name=sectok]')->length == 1); } + + function test_fieldsetbalance() { + $form = new TestForm(); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + $form = new TestForm(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + + $form = new TestForm(); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + $form = new TestForm(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->addHTML('ignored'); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose', + 'html', + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + } + } diff --git a/inc/Form/FieldsetCloseElement.php b/inc/Form/FieldsetCloseElement.php index 0de84e251..8f26717aa 100644 --- a/inc/Form/FieldsetCloseElement.php +++ b/inc/Form/FieldsetCloseElement.php @@ -14,51 +14,17 @@ class FieldsetCloseElement extends TagCloseElement { * @param array $attributes */ public function __construct($attributes = array()) { - parent::__construct('tagclose', $attributes); + parent::__construct('', $attributes); + $this->type = 'fieldsetclose'; } - /** - * do not call this - * - * @param $class - * @return void - * @throws \BadMethodCallException - */ - public function addClass($class) { - throw new \BadMethodCallException('You can\t add classes to closing tag'); - } - - /** - * do not call this - * - * @param $id - * @return void - * @throws \BadMethodCallException - */ - public function id($id = null) { - throw new \BadMethodCallException('You can\t add ID to closing tag'); - } - - /** - * do not call this - * - * @param $name - * @param $value - * @return void - * @throws \BadMethodCallException - */ - public function attr($name, $value = null) { - throw new \BadMethodCallException('You can\t add attributes to closing tag'); - } /** - * do not call this + * The HTML representation of this element * - * @param $attributes - * @return void - * @throws \BadMethodCallException + * @return string */ - public function attrs($attributes = null) { - throw new \BadMethodCallException('You can\t add attributes to closing tag'); + public function toHTML() { + return '</fieldset>'; } } diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 420399fb1..30e16615c 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -194,7 +194,6 @@ class Form extends Element { return $this->addElement(new TagCloseElement($tag), $pos); } - /** * Open a Fieldset * @@ -202,7 +201,7 @@ class Form extends Element { * @param int $pos * @return FieldsetOpenElement */ - public function addFieldsetOpen($legend='', $pos = -1) { + public function addFieldsetOpen($legend = '', $pos = -1) { return $this->addElement(new FieldsetOpenElement($legend), $pos); } @@ -218,8 +217,42 @@ class Form extends Element { #endregion + /** + * Adjust the elements so that fieldset open and closes are matching + */ protected function balanceFieldsets() { - //todo implement! + $lastclose = 0; + $isopen = false; + $len = count($this->elements); + + for($pos = 0; $pos < $len; $pos++) { + $type = $this->elements[$pos]->getType(); + if($type == 'fieldsetopen') { + if($isopen) { + //close previous feldset + $this->addFieldsetClose($pos); + $lastclose = $pos + 1; + $pos++; + $len++; + } + $isopen = true; + } else if($type == 'fieldsetclose') { + if(!$isopen) { + // make sure there was a fieldsetopen + // either right after the last close or at the begining + $this->addFieldsetOpen('', $lastclose); + $len++; + $pos++; + } + $lastclose = $pos; + $isopen = false; + } + } + + // close open fieldset at the end + if($isopen) { + $this->addFieldsetClose(); + } } /** diff --git a/inc/Form/TagCloseElement.php b/inc/Form/TagCloseElement.php index 896945b97..dc0264c21 100644 --- a/inc/Form/TagCloseElement.php +++ b/inc/Form/TagCloseElement.php @@ -19,6 +19,51 @@ class TagCloseElement extends ValueElement { parent::__construct('tagclose', $tag, $attributes); } + /** + * do not call this + * + * @param $class + * @return void + * @throws \BadMethodCallException + */ + public function addClass($class) { + throw new \BadMethodCallException('You can\t add classes to closing tag'); + } + + /** + * do not call this + * + * @param $id + * @return void + * @throws \BadMethodCallException + */ + public function id($id = null) { + throw new \BadMethodCallException('You can\t add ID to closing tag'); + } + + /** + * do not call this + * + * @param $name + * @param $value + * @return void + * @throws \BadMethodCallException + */ + public function attr($name, $value = null) { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } + + /** + * do not call this + * + * @param $attributes + * @return void + * @throws \BadMethodCallException + */ + public function attrs($attributes = null) { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } + /** * The HTML representation of this element * @@ -27,4 +72,5 @@ class TagCloseElement extends ValueElement { public function toHTML() { return '</'.$this->val().'>'; } + } -- GitLab From ef0c211b2ac87b8e3c6e85b600021389be6209bf Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 11 May 2015 20:51:58 +0200 Subject: [PATCH 126/440] added element query functions --- inc/Form/Form.php | 93 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 3 deletions(-) diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 30e16615c..2c893fbbc 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -67,17 +67,80 @@ class Form extends Element { return $this; } - #region Element adding functions + #region element query function + + /** + * Returns the numbers of elements in the form + * + * @return int + */ + public function elementCount() { + return count($this->elements); + } + + /** + * Returns a reference to the element at a position. + * A position out-of-bounds will return either the + * first (underflow) or last (overflow) element. + * + * @param $pos + * @return Element + */ + public function getElementAt($pos) { + if($pos < 0) $pos = count($this->elements) + $pos; + if($pos < 0) $pos = 0; + if($pos >= count($this->elements)) $pos = count($this->elements) - 1; + return $this->elements[$pos]; + } /** - * Adds an element to the end of the form + * Gets the position of the first of a type of element + * + * @param string $type Element type to look for. + * @param int $offset search from this position onward + * @return false|int position of element if found, otherwise false + */ + public function findPositionByType($type, $offset = 0) { + $len = $this->elementCount(); + for($pos = $offset; $pos < $len; $pos++) { + if($this->elements[$pos]->getType() == $type) { + return $pos; + } + } + return false; + } + + /** + * Gets the position of the first element matching the attribute + * + * @param string $name Name of the attribute + * @param string $value Value the attribute should have + * @param int $offset search from this position onward + * @return false|int position of element if found, otherwise false + */ + public function findPositionByAttribute($name, $value, $offset = 0) { + $len = $this->elementCount(); + for($pos = $offset; $pos < $len; $pos++) { + if($this->elements[$pos]->attr($name) == $value) { + return $pos; + } + } + return false; + } + + #endregion + + #region Element positioning functions + + /** + * Adds or inserts an element to the form * * @param Element $element * @param int $pos 0-based position in the form, -1 for at the end * @return Element */ public function addElement(Element $element, $pos = -1) { - if(is_a($element, 'Doku_Form2')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + if(is_a($element, '\dokuwiki\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); if($pos < 0) { $this->elements[] = $element; } else { @@ -86,6 +149,30 @@ class Form extends Element { return $element; } + /** + * Replaces an existing element with a new one + * + * @param Element $element the new element + * @param $pos 0-based position of the element to replace + */ + public function replaceElement(Element $element, $pos) { + if(is_a($element, '\dokuwiki\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + array_splice($this->elements, $pos, 1, array($element)); + } + + /** + * Remove an element from the form completely + * + * @param $pos 0-based position of the element to remove + */ + public function removeElement($pos) { + array_splice($this->elements, $pos, 1); + } + + #endregion + + #region Element adding functions + /** * Adds a text input field * -- GitLab From c99a571951a32b7b0499cf969fd5e874ad354ff3 Mon Sep 17 00:00:00 2001 From: Pietroni <pietroni@informatique.univ-paris-diderot.fr> Date: Wed, 13 May 2015 17:31:08 +0200 Subject: [PATCH 127/440] translation update --- inc/lang/fr/lang.php | 4 ++++ lib/plugins/authad/lang/fr/lang.php | 3 +++ lib/plugins/authldap/lang/fr/lang.php | 9 +++++++++ lib/plugins/authmysql/lang/fr/lang.php | 11 +++++++++++ 4 files changed, 27 insertions(+) create mode 100644 lib/plugins/authldap/lang/fr/lang.php create mode 100644 lib/plugins/authmysql/lang/fr/lang.php diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index ba3158125..74b1edd19 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -36,6 +36,7 @@ * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author YoBoY <yoboy@ubuntu-fr.org> * @author james <j.mccann@celcat.com> + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -101,6 +102,7 @@ $lang['regmissing'] = 'Désolé, vous devez remplir tous les champs.' $lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; $lang['regsuccess'] = 'L\'utilisateur a été créé. Le mot de passe a été expédié par courriel.'; $lang['regsuccess2'] = 'L\'utilisateur a été créé.'; +$lang['regfail'] = 'L\'utilisateur n\'a pu être crée.'; $lang['regmailfail'] = 'On dirait qu\'il y a eu une erreur lors de l\'envoi du mot de passe de messagerie. Veuillez contacter l\'administrateur !'; $lang['regbadmail'] = 'L\'adresse de courriel semble incorrecte. Si vous pensez que c\'est une erreur, contactez l\'administrateur.'; $lang['regbadpass'] = 'Les deux mots de passe fournis sont différents, veuillez recommencez.'; @@ -115,6 +117,7 @@ $lang['profdeleteuser'] = 'Supprimer le compte'; $lang['profdeleted'] = 'Votre compte utilisateur a été supprimé de ce wiki'; $lang['profconfdelete'] = 'Je veux supprimer mon compte sur ce wiki. </br> Cette action est irréversible.'; $lang['profconfdeletemissing'] = 'La case de confirmation n\'est pas cochée'; +$lang['proffail'] = 'Le profil utilisateur n\'a pas été mis à jour.'; $lang['pwdforget'] = 'Mot de passe oublié ? Obtenez-en un nouveau'; $lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de passe.'; $lang['resendpwd'] = 'Définir un nouveau mot de passe pour'; @@ -358,6 +361,7 @@ $lang['media_perm_read'] = 'Désolé, vous n\'avez pas l\'autorisation de $lang['media_perm_upload'] = 'Désolé, vous n\'avez pas l\'autorisation d\'envoyer des fichiers.'; $lang['media_update'] = 'Envoyer une nouvelle version'; $lang['media_restore'] = 'Restaurer cette version'; +$lang['media_acl_warning'] = 'En raison des restrictions dans les ACL et de pages cachées, cette liste peut ne pas être complète.'; $lang['currentns'] = 'Catégorie courante'; $lang['searchresult'] = 'Résultat de la recherche'; $lang['plainhtml'] = 'HTML brut'; diff --git a/lib/plugins/authad/lang/fr/lang.php b/lib/plugins/authad/lang/fr/lang.php index 4999967dc..8b3b95b54 100644 --- a/lib/plugins/authad/lang/fr/lang.php +++ b/lib/plugins/authad/lang/fr/lang.php @@ -5,6 +5,9 @@ * * @author ggallon <gwenael.gallon@mac.com> * @author Yannick Aure <yannick.aure@gmail.com> + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> */ $lang['domain'] = 'Domaine de connexion'; $lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; +$lang['passchangefail'] = 'Impossible de changer le mot de passe. Il est possible que les règles de sécurité des mots de passe n\'aient pas été respectées.'; +$lang['connectfail'] = 'Impossible de se connecter au serveur Active Directory.'; diff --git a/lib/plugins/authldap/lang/fr/lang.php b/lib/plugins/authldap/lang/fr/lang.php new file mode 100644 index 000000000..5797bda42 --- /dev/null +++ b/lib/plugins/authldap/lang/fr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + */ +$lang['connectfail'] = 'LDAP ne peux se connecter : %s'; +$lang['domainfail'] = 'LDAP ne trouve pas l\'utilisateur dn'; diff --git a/lib/plugins/authmysql/lang/fr/lang.php b/lib/plugins/authmysql/lang/fr/lang.php new file mode 100644 index 000000000..d5a1e1209 --- /dev/null +++ b/lib/plugins/authmysql/lang/fr/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + */ +$lang['connectfail'] = 'Impossible de se connecter à la base de données.'; +$lang['userexists'] = 'Désolé, un utilisateur avec cet identifiant existe déjà .'; +$lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; +$lang['writefail'] = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.'; -- GitLab From dfd8384e1bf3b38ff9f6f077905b4270aef0b020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduard=20D=C3=ADaz?= <edudiaz@scopia.es> Date: Thu, 14 May 2015 14:05:56 +0200 Subject: [PATCH 128/440] translation update --- inc/lang/ca/lang.php | 9 +++++---- inc/lang/ca/subscr_form.txt | 2 +- lib/plugins/acl/lang/ca/lang.php | 4 ++-- lib/plugins/popularity/lang/ca/lang.php | 5 +++-- lib/plugins/revert/lang/ca/lang.php | 5 +++-- lib/plugins/usermanager/lang/ca/lang.php | 5 +++-- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 2287ca001..220600dec 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -1,11 +1,12 @@ <?php + /** - * catalan language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author daniel@6temes.cat + * @author Eduard DÃaz <edudiaz@scopia.es> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -47,6 +48,7 @@ $lang['btn_draftdel'] = 'Suprimeix esborrany'; $lang['btn_revert'] = 'Restaura'; $lang['btn_register'] = 'Registra\'m'; $lang['btn_apply'] = 'Aplica'; +$lang['btn_img_backto'] = 'Torna a %s'; $lang['loggedinas'] = 'Heu entrat com:'; $lang['user'] = 'Nom d\'usuari'; $lang['pass'] = 'Contrasenya'; @@ -61,7 +63,7 @@ $lang['badlogin'] = 'Nom d\'usuari o contrasenya incorrectes.'; $lang['minoredit'] = 'Canvis menors'; $lang['draftdate'] = 'L\'esborrany s\'ha desat automà ticament'; $lang['nosecedit'] = 'Mentrestant la pà gina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pà gina sencera.'; -$lang['searchcreatepage'] = "Si no trobeu allò que buscà veu, podeu crear una pà gina nova per mitjà del botó ''Edita aquesta pà gina''."; +$lang['searchcreatepage'] = 'Si no trobeu allò que buscà veu, podeu crear una pà gina nova per mitjà del botó \'\'Edita aquesta pà gina\'\'.'; $lang['regmissing'] = 'Heu d\'omplir tots els camps.'; $lang['reguexists'] = 'Ja existeix un altre usuari amb aquest nom.'; $lang['regsuccess'] = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.'; @@ -226,7 +228,6 @@ $lang['upperns'] = 'Salta a l\'espai superior'; $lang['metaedit'] = 'Edita metadades'; $lang['metasaveerr'] = 'No s\'han pogut escriure les metadades'; $lang['metasaveok'] = 'S\'han desat les metadades'; -$lang['btn_img_backto'] = 'Torna a %s'; $lang['img_title'] = 'TÃtol:'; $lang['img_caption'] = 'Peu d\'imatge:'; $lang['img_date'] = 'Data:'; diff --git a/inc/lang/ca/subscr_form.txt b/inc/lang/ca/subscr_form.txt index d3679454f..3c63ce66d 100644 --- a/inc/lang/ca/subscr_form.txt +++ b/inc/lang/ca/subscr_form.txt @@ -1,3 +1,3 @@ ===== Gestió de les Subscripcions ===== -Aquesta pà gina podeu gestiona les vostres subscripcions per a les pà gines i els espais actuals. \ No newline at end of file +Des d'aquesta pà gina, podeu gestionar les vostres subscripcions per a les pà gines i els espais que seleccioneu. \ No newline at end of file diff --git a/lib/plugins/acl/lang/ca/lang.php b/lib/plugins/acl/lang/ca/lang.php index bead981f0..18a4a3602 100644 --- a/lib/plugins/acl/lang/ca/lang.php +++ b/lib/plugins/acl/lang/ca/lang.php @@ -1,8 +1,8 @@ <?php + /** - * catalan language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com diff --git a/lib/plugins/popularity/lang/ca/lang.php b/lib/plugins/popularity/lang/ca/lang.php index b30846118..9eb1655d2 100644 --- a/lib/plugins/popularity/lang/ca/lang.php +++ b/lib/plugins/popularity/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/revert/lang/ca/lang.php b/lib/plugins/revert/lang/ca/lang.php index 4f4d518ea..e2755f8d3 100644 --- a/lib/plugins/revert/lang/ca/lang.php +++ b/lib/plugins/revert/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/usermanager/lang/ca/lang.php b/lib/plugins/usermanager/lang/ca/lang.php index 6debd73ca..4b07326ab 100644 --- a/lib/plugins/usermanager/lang/ca/lang.php +++ b/lib/plugins/usermanager/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es -- GitLab From 1e8a4c188b45c2566c27caaf30e7e952e2337bb6 Mon Sep 17 00:00:00 2001 From: Menashe Tomer <menashesite@gmail.com> Date: Thu, 14 May 2015 14:50:51 +0200 Subject: [PATCH 129/440] translation update --- inc/lang/he/lang.php | 1 + lib/plugins/authldap/lang/he/settings.php | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index a75a0e9bb..b834ad775 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -14,6 +14,7 @@ * @author matt carroll <matt.carroll@gmail.com> * @author tomer <tomercarolldergicz@gmail.com> * @author itsho <itsho.itsho@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; diff --git a/lib/plugins/authldap/lang/he/settings.php b/lib/plugins/authldap/lang/he/settings.php index 357a58c56..10af7010d 100644 --- a/lib/plugins/authldap/lang/he/settings.php +++ b/lib/plugins/authldap/lang/he/settings.php @@ -4,5 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author matt carroll <matt.carroll@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> */ $lang['starttls'] = 'השתמש בחיבורי TLS'; +$lang['modPass'] = '×”×× dokuwiki יכול ליצור סיסמ×ות LDAP?'; +$lang['debug'] = 'הצג מידע × ×•×¡×£ על שגי×ות'; +$lang['referrals_o_-1'] = 'ברירת מחדל'; -- GitLab From d596b86466164e7110a8a9a318048c8feb16ec7f Mon Sep 17 00:00:00 2001 From: Menashe Tomer <menashesite@gmail.com> Date: Thu, 14 May 2015 14:56:16 +0200 Subject: [PATCH 130/440] translation update --- inc/lang/he/lang.php | 2 ++ lib/plugins/authad/lang/he/lang.php | 2 ++ lib/plugins/authad/lang/he/settings.php | 8 ++++++++ lib/plugins/authmysql/lang/he/settings.php | 12 ++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 lib/plugins/authad/lang/he/settings.php create mode 100644 lib/plugins/authmysql/lang/he/settings.php diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index a75a0e9bb..37ea704da 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -14,6 +14,7 @@ * @author matt carroll <matt.carroll@gmail.com> * @author tomer <tomercarolldergicz@gmail.com> * @author itsho <itsho.itsho@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -79,6 +80,7 @@ $lang['regmissing'] = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך $lang['reguexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; $lang['regsuccess'] = 'ההרשמה הצליחה, המשתמש × ×¨×©× ×•×”×•×“×¢×” × ×©×œ×—×” בדו×״ל.'; $lang['regsuccess2'] = 'ההרשמה הצליחה, המשתמש × ×•×¦×¨.'; +$lang['regfail'] = '×ין ×פשרות ליצור ×ת המשתמש'; $lang['regmailfail'] = 'שליחת הודעת הדו×״ל כשלה, × × ×œ×™×¦×•×¨ קשר ×¢× ×ž× ×”×œ ×”×תר!'; $lang['regbadmail'] = 'יתכן ×›×™ כתובת הדו×״ל ××™× ×” תקפה, ×× ×œ× ×›×š הדבר ליצור קשר ×¢× ×ž× ×”×œ ×”×תר'; $lang['regbadpass'] = 'שתי הססמ×ות ××™× ×Ÿ זהות זו לזו, × × ×œ× ×¡×•×ª שוב.'; diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php index 21fd98aef..616d1ab4b 100644 --- a/lib/plugins/authad/lang/he/lang.php +++ b/lib/plugins/authad/lang/he/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author tomer <tomercarolldergicz@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> */ $lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; +$lang['passchangefail'] = 'שגי××” ×‘×©×™× ×•×™ סיסמה. ×”×× ×”×¡×™×¡×ž×” תו×מת ×œ×ž×“×™× ×™×•×ª המערכת?'; diff --git a/lib/plugins/authad/lang/he/settings.php b/lib/plugins/authad/lang/he/settings.php new file mode 100644 index 000000000..b14368130 --- /dev/null +++ b/lib/plugins/authad/lang/he/settings.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Menashe Tomer <menashesite@gmail.com> + */ +$lang['admin_password'] = 'סיסמת המשתמש המוזכן'; diff --git a/lib/plugins/authmysql/lang/he/settings.php b/lib/plugins/authmysql/lang/he/settings.php new file mode 100644 index 000000000..3671b1bb9 --- /dev/null +++ b/lib/plugins/authmysql/lang/he/settings.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Menashe Tomer <menashesite@gmail.com> + */ +$lang['getUserID'] = 'ש×ילתת SQL לקבלת מפתח ר×שי של המשתמש'; +$lang['UpdateLogin'] = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©'; +$lang['UpdatePass'] = 'ש×ילתת SQL לעדכון סיסמת המשתמש'; +$lang['UpdateEmail'] = 'ש×ילתת SQL לעדכון כתובת הדו×"ל של המשתמש'; +$lang['UpdateName'] = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©'; -- GitLab From 9c9643569e11748094bd63810a3d805df0d3e9bf Mon Sep 17 00:00:00 2001 From: Davor Turkalj <turki.bsc@gmail.com> Date: Thu, 14 May 2015 15:51:29 +0200 Subject: [PATCH 131/440] translation update --- inc/lang/hr/lang.php | 5 ++++- lib/plugins/authad/lang/hr/lang.php | 2 ++ lib/plugins/authldap/lang/hr/lang.php | 9 +++++++++ lib/plugins/authldap/lang/hr/settings.php | 5 +++++ lib/plugins/authmysql/lang/hr/lang.php | 11 +++++++++++ lib/plugins/extension/lang/hr/intro_install.txt | 2 +- lib/plugins/extension/lang/hr/intro_plugins.txt | 2 +- lib/plugins/extension/lang/hr/intro_search.txt | 2 +- lib/plugins/extension/lang/hr/intro_templates.txt | 2 +- 9 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 lib/plugins/authldap/lang/hr/lang.php create mode 100644 lib/plugins/authmysql/lang/hr/lang.php diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index e3e35b5c4..39eaa18c0 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -35,7 +35,7 @@ $lang['btn_secedit'] = 'Uredi'; $lang['btn_login'] = 'Prijavi se'; $lang['btn_logout'] = 'Odjavi se'; $lang['btn_admin'] = 'Administriranje'; -$lang['btn_update'] = 'Dopuni'; +$lang['btn_update'] = 'Nadogradi'; $lang['btn_delete'] = 'ObriÅ¡i'; $lang['btn_back'] = 'Nazad'; $lang['btn_backlink'] = 'Povratni linkovi'; @@ -73,6 +73,7 @@ $lang['regmissing'] = 'Morate popuniti sva polja.'; $lang['reguexists'] = 'Korisnik s tim korisniÄkim imenom već postoji.'; $lang['regsuccess'] = 'Korisnik je uspjeÅ¡no stvoren i poslana je lozinka emailom.'; $lang['regsuccess2'] = 'Korisnik je uspjeÅ¡no stvoren.'; +$lang['regfail'] = 'Korisnik ne može biti kreiran.'; $lang['regmailfail'] = 'Pojavila se greÅ¡ka prilikom slanja lozinke emailom. Kontaktirajte administratora!'; $lang['regbadmail'] = 'Email adresa nije ispravna, ukoliko ovo smatrate greÅ¡kom, kontaktirajte administratora.'; $lang['regbadpass'] = 'Unesene lozinke nisu jednake, pokuÅ¡ajte ponovno.'; @@ -87,6 +88,7 @@ $lang['profdeleteuser'] = 'ObriÅ¡i korisnika'; $lang['profdeleted'] = 'VaÅ¡ korisnik je obrisan s ovog wiki-a'; $lang['profconfdelete'] = 'Želim ukloniti mojeg korisnika s ovog wiki-a. <br/> Ova akcija se ne može poniÅ¡titi.'; $lang['profconfdeletemissing'] = 'KvaÄica za potvrdu nije oznaÄena'; +$lang['proffail'] = 'Profil korisnika nije izmijenjen.'; $lang['pwdforget'] = 'Izgubili ste lozinku? Zatražite novu'; $lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke e-poÅ¡tom.'; $lang['resendpwd'] = 'Postavi novu lozinku za'; @@ -332,6 +334,7 @@ $lang['media_perm_read'] = 'Nažalost, nemate prava za Äitanje datoteka.' $lang['media_perm_upload'] = 'Nažalost, nemate prava za uÄitavanje datoteka.'; $lang['media_update'] = 'UÄitaj novu verziju'; $lang['media_restore'] = 'Vrati ovu verziju'; +$lang['media_acl_warning'] = 'Ova lista moguće da nije kompletna zbog ACL ograniÄenja i skrivenih stranica.'; $lang['currentns'] = 'Tekući imeniÄki prostor'; $lang['searchresult'] = 'Rezultati pretraživanja'; $lang['plainhtml'] = 'ÄŒisti HTML'; diff --git a/lib/plugins/authad/lang/hr/lang.php b/lib/plugins/authad/lang/hr/lang.php index 8652c69ed..99c5c1623 100644 --- a/lib/plugins/authad/lang/hr/lang.php +++ b/lib/plugins/authad/lang/hr/lang.php @@ -7,3 +7,5 @@ */ $lang['domain'] = 'Domena za prijavu'; $lang['authpwdexpire'] = 'VaÅ¡a lozinka će isteći za %d dana, trebate ju promijeniti.'; +$lang['passchangefail'] = 'Ne mogu izmijeniti lozinku. Možda nije zadovoljen set pravila za lozinke?'; +$lang['connectfail'] = 'Ne mogu se povezati s Active Directory poslužiteljem.'; diff --git a/lib/plugins/authldap/lang/hr/lang.php b/lib/plugins/authldap/lang/hr/lang.php new file mode 100644 index 000000000..5e13d1b05 --- /dev/null +++ b/lib/plugins/authldap/lang/hr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Davor Turkalj <turki.bsc@gmail.com> + */ +$lang['connectfail'] = 'LDAP se ne može spojiti: %s'; +$lang['domainfail'] = 'LDAP ne može pronaći VaÅ¡ korisniÄki dn'; diff --git a/lib/plugins/authldap/lang/hr/settings.php b/lib/plugins/authldap/lang/hr/settings.php index cb8df7218..5c306d84b 100644 --- a/lib/plugins/authldap/lang/hr/settings.php +++ b/lib/plugins/authldap/lang/hr/settings.php @@ -19,9 +19,14 @@ $lang['binddn'] = 'DN opcionalnog korisnika ako anonimni korisnik $lang['bindpw'] = 'Lozinka gore navedenog korisnika'; $lang['userscope'] = 'OgraniÄi podruÄje za pretragu korisnika'; $lang['groupscope'] = 'OgraniÄi podruÄje za pretragu grupa'; +$lang['userkey'] = 'Atribut oznaÄava ime; mora biti u skladu s korisniÄkim filterom.'; $lang['groupkey'] = 'ÄŒlanstvo grupa iz svih atributa korisnika (umjesto standardnih AD grupa) npr. grupa iz odjela ili telefonskog broja'; +$lang['modPass'] = 'Da li LDAP lozinka može biti izmijenjena kroz dokuwiki?'; $lang['debug'] = 'Prikaži dodatne informacije u sluÄaju greÅ¡ke'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'koristi podrazumijevano'; +$lang['referrals_o_0'] = 'ne slijedi preporuke'; +$lang['referrals_o_1'] = 'slijedi preporuke'; diff --git a/lib/plugins/authmysql/lang/hr/lang.php b/lib/plugins/authmysql/lang/hr/lang.php new file mode 100644 index 000000000..3f5dc5d60 --- /dev/null +++ b/lib/plugins/authmysql/lang/hr/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Davor Turkalj <turki.bsc@gmail.com> + */ +$lang['connectfail'] = 'Ne mogu se spojiti na bazu.'; +$lang['userexists'] = 'Oprostite ali korisnik s ovom prijavom već postoji.'; +$lang['usernotexists'] = 'Oprostite ali ovaj korisnik ne postoji.'; +$lang['writefail'] = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora'; diff --git a/lib/plugins/extension/lang/hr/intro_install.txt b/lib/plugins/extension/lang/hr/intro_install.txt index fc2d22f52..f3274b0f7 100644 --- a/lib/plugins/extension/lang/hr/intro_install.txt +++ b/lib/plugins/extension/lang/hr/intro_install.txt @@ -1 +1 @@ -Ovdje možete ruÄno instalirati dodatak (plugin) i predložak (template) bilo uÄitavanjem ili specificiranjem URL-a za direktno uÄitavanje. \ No newline at end of file +Ovdje možete ruÄno postaviti dodatak (plugin) i predložak (template) bilo uÄitavanjem ili navoÄ‘enjem URL adrese za direktno uÄitavanje. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_plugins.txt b/lib/plugins/extension/lang/hr/intro_plugins.txt index fdc629d62..0c458ee43 100644 --- a/lib/plugins/extension/lang/hr/intro_plugins.txt +++ b/lib/plugins/extension/lang/hr/intro_plugins.txt @@ -1 +1 @@ -Ovo su dodaci (plugin) trenutno instalirani na VaÅ¡em DokuWiku-u. Možete ih omogućiti, onemogućiti ili u potpunosti deinstalirati. Nadogradnje dodataka su takoÄ‘er prikazane, obavezno proÄitajte dokumentaciju dodatka prije nadogradnje. \ No newline at end of file +Ovo su dodaci (plugin) trenutno postavljeni na VaÅ¡em DokuWiku-u. Možete ih omogućiti, onemogućiti ili u potpunosti ukloniti. Nadogradnje dodataka su takoÄ‘er prikazane, obavezno proÄitajte dokumentaciju dodatka prije nadogradnje. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_search.txt b/lib/plugins/extension/lang/hr/intro_search.txt index 93bf4b000..405690581 100644 --- a/lib/plugins/extension/lang/hr/intro_search.txt +++ b/lib/plugins/extension/lang/hr/intro_search.txt @@ -1 +1 @@ -Ovaj tab vam pruža pristup dostupnim dodatcima i predloÅ¡cima za DokuWiki od treće strane. Molimo budite svjesni da instaliranje koda od treće strane može biti **sigurnosni rizik**, možda želite prvo proÄitati o [[doku>security#plugin_security|sigurnosti dodataka]]. \ No newline at end of file +Ovdje možete potražiti i druge dostupne dodatke i predloÅ¡ke za DokuWiki. Molimo budite svjesni da postavljanje koda razvijenog od treće strane može biti **sigurnosni rizik**, možda želite prvo proÄitati o [[doku>security#plugin_security|sigurnosti dodataka]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_templates.txt b/lib/plugins/extension/lang/hr/intro_templates.txt index 968906cf9..76dafe6b7 100644 --- a/lib/plugins/extension/lang/hr/intro_templates.txt +++ b/lib/plugins/extension/lang/hr/intro_templates.txt @@ -1 +1 @@ -Ovo su predloÅ¡ci trenutno instalirani na VaÅ¡em DokuWiki-u. Možete odabrati koji se predložak koristi na [[?do=admin&page=config|Upravitelju postavki]]. \ No newline at end of file +Ovo su predloÅ¡ci trenutno postavljeni na VaÅ¡em DokuWiki-u. Koji se predložak koristi možete odabrati na [[?do=admin&page=config|Upravitelju postavki]]. \ No newline at end of file -- GitLab From 605f8e8d0e501057749c50581087ce05089c1af3 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 15 May 2015 15:17:39 +0200 Subject: [PATCH 132/440] added composer setup and the first composer package php-archive --- .gitignore | 7 + composer.json | 5 + composer.lock | 65 ++ inc/init.php | 1 + lib/plugins/extension/helper/extension.php | 27 +- vendor/autoload.php | 7 + vendor/composer/ClassLoader.php | 413 +++++++++++ vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 10 + vendor/composer/autoload_real.php | 50 ++ vendor/composer/installed.json | 51 ++ vendor/splitbrain/php-archive/.gitignore | 7 + vendor/splitbrain/php-archive/.travis.yml | 13 + vendor/splitbrain/php-archive/LICENSE | 19 + vendor/splitbrain/php-archive/README.md | 61 ++ vendor/splitbrain/php-archive/composer.json | 26 + vendor/splitbrain/php-archive/phpunit.xml | 17 + vendor/splitbrain/php-archive/src/Archive.php | 128 ++++ .../splitbrain/php-archive/src/FileInfo.php | 342 +++++++++ vendor/splitbrain/php-archive/src/Tar.php | 635 +++++++++++++++++ vendor/splitbrain/php-archive/src/Zip.php | 654 ++++++++++++++++++ 22 files changed, 2538 insertions(+), 18 deletions(-) create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 vendor/autoload.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/splitbrain/php-archive/.gitignore create mode 100644 vendor/splitbrain/php-archive/.travis.yml create mode 100644 vendor/splitbrain/php-archive/LICENSE create mode 100644 vendor/splitbrain/php-archive/README.md create mode 100644 vendor/splitbrain/php-archive/composer.json create mode 100644 vendor/splitbrain/php-archive/phpunit.xml create mode 100644 vendor/splitbrain/php-archive/src/Archive.php create mode 100644 vendor/splitbrain/php-archive/src/FileInfo.php create mode 100644 vendor/splitbrain/php-archive/src/Tar.php create mode 100644 vendor/splitbrain/php-archive/src/Zip.php diff --git a/.gitignore b/.gitignore index bb39ba7cf..5698e9d1f 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,10 @@ !/lib/plugins/remote.php !/lib/plugins/syntax.php lib/images/*/local/* + +# composer default ignores +vendor/*/*/tests/* +vendor/*/*/test/* +vendor/*/*/doc/* +vendor/*/*/docs/* + diff --git a/composer.json b/composer.json new file mode 100644 index 000000000..14ae94ad7 --- /dev/null +++ b/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "splitbrain/php-archive": "~1.0" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 000000000..753d5c9c0 --- /dev/null +++ b/composer.lock @@ -0,0 +1,65 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "de1f49aad78674b8d56a7f93fb633f65", + "packages": [ + { + "name": "splitbrain/php-archive", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/splitbrain/php-archive.git", + "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", + "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": [ + "archive", + "extract", + "tar", + "unpack", + "unzip", + "zip" + ], + "time": "2015-02-25 20:15:02" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/inc/init.php b/inc/init.php index bc9ab6d70..6d271dfb0 100644 --- a/inc/init.php +++ b/inc/init.php @@ -191,6 +191,7 @@ global $plugin_controller_class, $plugin_controller; if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; // load libraries +require_once(DOKU_INC.'vendor/autoload.php'); require_once(DOKU_INC.'inc/load.php'); // disable gzip if not available diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php index 6c0946b09..d089245b5 100644 --- a/lib/plugins/extension/helper/extension.php +++ b/lib/plugins/extension/helper/extension.php @@ -1035,33 +1035,24 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { $ext = $this->guess_archive($file); if(in_array($ext, array('tar', 'bz', 'gz'))) { - switch($ext) { - case 'bz': - $compress_type = Tar::COMPRESS_BZIP; - break; - case 'gz': - $compress_type = Tar::COMPRESS_GZIP; - break; - default: - $compress_type = Tar::COMPRESS_NONE; - } - $tar = new Tar(); try { - $tar->open($file, $compress_type); + $tar = new \splitbrain\PHPArchive\Tar(); + $tar->open($file); $tar->extract($target); - } catch (Exception $e) { + } catch (\splitbrain\PHPArchive\ArchiveIOException $e) { throw new Exception($this->getLang('error_decompress').' '.$e->getMessage()); } return true; } elseif($ext == 'zip') { - $zip = new ZipLib(); - $ok = $zip->Extract($file, $target); - - if($ok == -1){ - throw new Exception($this->getLang('error_decompress').' Error extracting the zip archive'); + try { + $zip = new \splitbrain\PHPArchive\Zip(); + $zip->open($file); + $zip->extract($target); + } catch (\splitbrain\PHPArchive\ArchiveIOException $e) { + throw new Exception($this->getLang('error_decompress').' '.$e->getMessage()); } return true; diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 000000000..88c7fd93b --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer' . '/autoload_real.php'; + +return ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php new file mode 100644 index 000000000..5e1469e83 --- /dev/null +++ b/vendor/composer/ClassLoader.php @@ -0,0 +1,413 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0 class loader + * + * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + + private $classMapAuthoritative = false; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-0 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 + if ('\\' == $class[0]) { + $class = substr($class, 1); + } + + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative) { + return false; + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if ($file === null && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if ($file === null) { + // Remember that this class does not exist. + return $this->classMap[$class] = false; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { + if (0 === strpos($class, $prefix)) { + foreach ($this->prefixDirsPsr4[$prefix] as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 000000000..7a91153b0 --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,9 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 000000000..b7fc0125d --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( +); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php new file mode 100644 index 000000000..e4d713270 --- /dev/null +++ b/vendor/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( + 'splitbrain\\PHPArchive\\' => array($vendorDir . '/splitbrain/php-archive/src'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 000000000..fee79daed --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,50 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader')); + + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + + $loader->register(true); + + return $loader; + } +} + +function composerRequirea19a915ee98347a0c787119619d2ff9b($file) +{ + require $file; +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 000000000..769865f79 --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,51 @@ +[ + { + "name": "splitbrain/php-archive", + "version": "1.0.0", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/splitbrain/php-archive.git", + "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", + "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "time": "2015-02-25 20:15:02", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": [ + "archive", + "extract", + "tar", + "unpack", + "unzip", + "zip" + ] + } +] diff --git a/vendor/splitbrain/php-archive/.gitignore b/vendor/splitbrain/php-archive/.gitignore new file mode 100644 index 000000000..39b851b56 --- /dev/null +++ b/vendor/splitbrain/php-archive/.gitignore @@ -0,0 +1,7 @@ +*.iml +.idea/ +composer.phar +vendor/ +composer.lock + + diff --git a/vendor/splitbrain/php-archive/.travis.yml b/vendor/splitbrain/php-archive/.travis.yml new file mode 100644 index 000000000..21124ce5d --- /dev/null +++ b/vendor/splitbrain/php-archive/.travis.yml @@ -0,0 +1,13 @@ +language: php + +php: + - 5.4 + - 5.5 + - 5.6 + - hhvm + +before_script: + - composer self-update + - composer install --prefer-source --no-interaction --dev + +script: phpunit \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/LICENSE b/vendor/splitbrain/php-archive/LICENSE new file mode 100644 index 000000000..66d08e433 --- /dev/null +++ b/vendor/splitbrain/php-archive/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 Andreas Gohr <gohr@cosmocode.de> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/README.md b/vendor/splitbrain/php-archive/README.md new file mode 100644 index 000000000..4fb673259 --- /dev/null +++ b/vendor/splitbrain/php-archive/README.md @@ -0,0 +1,61 @@ +PHPArchive - Pure PHP ZIP and TAR handling +========================================== + +This library allows to handle new ZIP and TAR archives without the need for any special PHP extensions (gz and bzip are +needed for compression). It can create new files or extract existing ones. + +To keep things simple, the modification (adding or removing files) of existing archives is not supported. + +[](https://travis-ci.org/splitbrain/php-archive) + +Install +------- + +Use composer: + +```php composer.phar require splitbrain/php-archive``` + +Usage +----- + +The usage for the Zip and Tar classes are basically the same. Here are some examples for working with TARs to get +you started. Check the source code comments for more info + +```php +use splitbrain\PHPArchive\Tar; + +// To list the contents of an existing TAR archive, open() it and use contents() on it: +$tar = new Tar(); +$tar->open('myfile.tgz'); +$toc = $tar->contents(); +print_r($toc); // array of FileInfo objects + +// To extract the contents of an existing TAR archive, open() it and use extract() on it: +$tar = new Tar(); +$tar->open('myfile.tgz'); +$tar->extract('/tmp'); + +// To create a new TAR archive directly on the filesystem (low memory requirements), create() it, +$tar = new Tar(); +$tar->create('myfile.tgz'); +$tar->addFile(...); +$tar->addData(...); +... +$tar->close(); + +// To create a TAR archive directly in memory, create() it, add*() files and then either save() +// or getData() it: +$tar = new Tar(); +$tar->create(); +$tar->addFile(...); +$tar->addData(...); +... +$tar->save('myfile.tgz'); // compresses and saves it +echo $tar->getArchive(Archive::COMPRESS_GZIP); // compresses and returns it +``` + +Differences between Tar and Zip: Tars are compressed as a whole while Zips compress each file individually. Therefore +you can call ```setCompression``` before each ```addFile()``` and ```addData()``` functions. + +The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to +an archive. \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/composer.json b/vendor/splitbrain/php-archive/composer.json new file mode 100644 index 000000000..5ad41a8c4 --- /dev/null +++ b/vendor/splitbrain/php-archive/composer.json @@ -0,0 +1,26 @@ +{ + "name": "splitbrain/php-archive", + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": ["zip", "tar", "archive", "unpack", "extract", "unzip"], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "license": "MIT", + + "require": { + "php": ">=5.3.0" + }, + + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + } +} diff --git a/vendor/splitbrain/php-archive/phpunit.xml b/vendor/splitbrain/php-archive/phpunit.xml new file mode 100644 index 000000000..d7e1f2428 --- /dev/null +++ b/vendor/splitbrain/php-archive/phpunit.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit backupGlobals="false" + backupStaticAttributes="false" + bootstrap="vendor/autoload.php" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + syntaxCheck="false"> + <testsuites> + <testsuite name="Test Suite"> + <directory suffix=".php">./tests/</directory> + </testsuite> + </testsuites> +</phpunit> \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/src/Archive.php b/vendor/splitbrain/php-archive/src/Archive.php new file mode 100644 index 000000000..c60fea777 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Archive.php @@ -0,0 +1,128 @@ +<?php + +namespace splitbrain\PHPArchive; + +abstract class Archive +{ + + const COMPRESS_AUTO = -1; + const COMPRESS_NONE = 0; + const COMPRESS_GZIP = 1; + const COMPRESS_BZIP = 2; + + /** + * Set the compression level and type + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use (use COMPRESS_* constants) + * @return mixed + */ + abstract public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO); + + /** + * Open an existing archive file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + abstract public function open($file); + + /** + * Read the contents of an archive + * + * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @return FileInfo[] + */ + abstract public function contents(); + + /** + * Extract an existing archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the archive file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set, only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * The archive is closed afterwards. Reopen the file with open() again if you want to do additional operations + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return array + */ + abstract public function extract($outdir, $strip = '', $exclude = '', $include = ''); + + /** + * Create a new archive file + * + * If $file is empty, the archive file will be created in memory + * + * @param string $file + */ + abstract public function create($file = ''); + + /** + * Add a file to the current archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + abstract public function addFile($file, $fileinfo = ''); + + /** + * Add a file to the current archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + abstract public function addData($fileinfo, $data); + + /** + * Close the archive, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + */ + abstract public function close(); + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + abstract public function getArchive(); + + /** + * Save the created in-memory archive data + * + * Note: It is more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param string $file + */ + abstract public function save($file); + +} + +class ArchiveIOException extends \Exception +{ +} + +class ArchiveIllegalCompressionException extends \Exception +{ +} diff --git a/vendor/splitbrain/php-archive/src/FileInfo.php b/vendor/splitbrain/php-archive/src/FileInfo.php new file mode 100644 index 000000000..c443aa977 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/FileInfo.php @@ -0,0 +1,342 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class FileInfo + * + * stores meta data about a file in an Archive + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class FileInfo +{ + + protected $isdir = false; + protected $path = ''; + protected $size = 0; + protected $csize = 0; + protected $mtime = 0; + protected $mode = 0664; + protected $owner = ''; + protected $group = ''; + protected $uid = 0; + protected $gid = 0; + protected $comment = ''; + + /** + * initialize dynamic defaults + * + * @param string $path The path of the file, can also be set later through setPath() + */ + public function __construct($path = '') + { + $this->mtime = time(); + $this->setPath($path); + } + + /** + * Factory to build FileInfo from existing file or directory + * + * @param string $path path to a file on the local file system + * @param string $as optional path to use inside the archive + * @throws FileInfoException + * @return FileInfo + */ + public static function fromPath($path, $as = '') + { + clearstatcache(false, $path); + + if (!file_exists($path)) { + throw new FileInfoException("$path does not exist"); + } + + $stat = stat($path); + $file = new FileInfo(); + + $file->setPath($path); + $file->setIsdir(is_dir($path)); + $file->setMode(fileperms($path)); + $file->setOwner(fileowner($path)); + $file->setGroup(filegroup($path)); + $file->setUid($stat['uid']); + $file->setGid($stat['gid']); + $file->setMtime($stat['mtime']); + + if ($as) { + $file->setPath($as); + } + + return $file; + } + + /** + * @return int + */ + public function getSize() + { + return $this->size; + } + + /** + * @param int $size + */ + public function setSize($size) + { + $this->size = $size; + } + + /** + * @return int + */ + public function getCompressedSize() + { + return $this->csize; + } + + /** + * @param int $csize + */ + public function setCompressedSize($csize) + { + $this->csize = $csize; + } + + /** + * @return int + */ + public function getMtime() + { + return $this->mtime; + } + + /** + * @param int $mtime + */ + public function setMtime($mtime) + { + $this->mtime = $mtime; + } + + /** + * @return int + */ + public function getGid() + { + return $this->gid; + } + + /** + * @param int $gid + */ + public function setGid($gid) + { + $this->gid = $gid; + } + + /** + * @return int + */ + public function getUid() + { + return $this->uid; + } + + /** + * @param int $uid + */ + public function setUid($uid) + { + $this->uid = $uid; + } + + /** + * @return string + */ + public function getComment() + { + return $this->comment; + } + + /** + * @param string $comment + */ + public function setComment($comment) + { + $this->comment = $comment; + } + + /** + * @return string + */ + public function getGroup() + { + return $this->group; + } + + /** + * @param string $group + */ + public function setGroup($group) + { + $this->group = $group; + } + + /** + * @return boolean + */ + public function getIsdir() + { + return $this->isdir; + } + + /** + * @param boolean $isdir + */ + public function setIsdir($isdir) + { + // default mode for directories + if ($isdir && $this->mode === 0664) { + $this->mode = 0775; + } + $this->isdir = $isdir; + } + + /** + * @return int + */ + public function getMode() + { + return $this->mode; + } + + /** + * @param int $mode + */ + public function setMode($mode) + { + $this->mode = $mode; + } + + /** + * @return string + */ + public function getOwner() + { + return $this->owner; + } + + /** + * @param string $owner + */ + public function setOwner($owner) + { + $this->owner = $owner; + } + + /** + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * @param string $path + */ + public function setPath($path) + { + $this->path = $this->cleanPath($path); + } + + /** + * Cleans up a path and removes relative parts, also strips leading slashes + * + * @param string $path + * @return string + */ + protected function cleanPath($path) + { + $path = str_replace('\\', '/', $path); + $path = explode('/', $path); + $newpath = array(); + foreach ($path as $p) { + if ($p === '' || $p === '.') { + continue; + } + if ($p === '..') { + array_pop($newpath); + continue; + } + array_push($newpath, $p); + } + return trim(implode('/', $newpath), '/'); + } + + /** + * Strip given prefix or number of path segments from the filename + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * @param int|string $strip + * @return FileInfo + */ + public function strip($strip) + { + $filename = $this->getPath(); + $striplen = strlen($strip); + if (is_int($strip)) { + // if $strip is an integer we strip this many path components + $parts = explode('/', $filename); + if (!$this->getIsdir()) { + $base = array_pop($parts); // keep filename itself + } else { + $base = ''; + } + $filename = join('/', array_slice($parts, $strip)); + if ($base) { + $filename .= "/$base"; + } + } else { + // if strip is a string, we strip a prefix here + if (substr($filename, 0, $striplen) == $strip) { + $filename = substr($filename, $striplen); + } + } + + $this->setPath($filename); + } + + /** + * Does the file match the given include and exclude expressions? + * + * Exclude rules take precedence over include rules + * + * @param string $include Regular expression of files to include + * @param string $exclude Regular expression of files to exclude + * @return bool + */ + public function match($include = '', $exclude = '') + { + $extract = true; + if ($include && !preg_match($include, $this->getPath())) { + $extract = false; + } + if ($exclude && preg_match($exclude, $this->getPath())) { + $extract = false; + } + + return $extract; + } +} + +class FileInfoException extends \Exception +{ +} \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/src/Tar.php b/vendor/splitbrain/php-archive/src/Tar.php new file mode 100644 index 000000000..bd78136da --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Tar.php @@ -0,0 +1,635 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class Tar + * + * Creates or extracts Tar archives. Supports gz and bzip compression + * + * Long pathnames (>100 chars) are supported in POSIX ustar and GNU longlink formats. + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class Tar extends Archive +{ + + protected $file = ''; + protected $comptype = Archive::COMPRESS_AUTO; + protected $complevel = 9; + protected $fh; + protected $memory = ''; + protected $closed = true; + protected $writeaccess = false; + + /** + * Sets the compression to use + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use (use COMPRESS_* constants) + * @return mixed + */ + public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO) + { + $this->compressioncheck($type); + $this->comptype = $type; + $this->complevel = $level; + } + + /** + * Open an existing TAR file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + public function open($file) + { + $this->file = $file; + + // update compression to mach file + if ($this->comptype == Tar::COMPRESS_AUTO) { + $this->setCompression($this->complevel, $this->filetype($file)); + } + + // open file handles + if ($this->comptype === Archive::COMPRESS_GZIP) { + $this->fh = @gzopen($this->file, 'rb'); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $this->fh = @bzopen($this->file, 'r'); + } else { + $this->fh = @fopen($this->file, 'rb'); + } + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for reading: '.$this->file); + } + $this->closed = false; + } + + /** + * Read the contents of a TAR archive + * + * This function lists the files stored in the archive + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @throws ArchiveIOException + * @returns FileInfo[] + */ + public function contents() + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $result = array(); + while ($read = $this->readbytes(512)) { + $header = $this->parseHeader($read); + if (!is_array($header)) { + continue; + } + + $this->skipbytes(ceil($header['size'] / 512) * 512); + $result[] = $this->header2fileinfo($header); + } + + $this->close(); + return $result; + } + + /** + * Extract an existing TAR archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return FileInfo[] + */ + public function extract($outdir, $strip = '', $exclude = '', $include = '') + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $outdir = rtrim($outdir, '/'); + @mkdir($outdir, 0777, true); + if (!is_dir($outdir)) { + throw new ArchiveIOException("Could not create directory '$outdir'"); + } + + $extracted = array(); + while ($dat = $this->readbytes(512)) { + // read the file header + $header = $this->parseHeader($dat); + if (!is_array($header)) { + continue; + } + $fileinfo = $this->header2fileinfo($header); + + // apply strip rules + $fileinfo->strip($strip); + + // skip unwanted files + if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) { + $this->skipbytes(ceil($header['size'] / 512) * 512); + continue; + } + + // create output directory + $output = $outdir.'/'.$fileinfo->getPath(); + $directory = ($fileinfo->getIsdir()) ? $output : dirname($output); + @mkdir($directory, 0777, true); + + // extract data + if (!$fileinfo->getIsdir()) { + $fp = fopen($output, "wb"); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$output); + } + + $size = floor($header['size'] / 512); + for ($i = 0; $i < $size; $i++) { + fwrite($fp, $this->readbytes(512), 512); + } + if (($header['size'] % 512) != 0) { + fwrite($fp, $this->readbytes(512), $header['size'] % 512); + } + + fclose($fp); + touch($output, $fileinfo->getMtime()); + chmod($output, $fileinfo->getMode()); + } else { + $this->skipbytes(ceil($header['size'] / 512) * 512); // the size is usually 0 for directories + } + + $extracted[] = $fileinfo; + } + + $this->close(); + return $extracted; + } + + /** + * Create a new TAR file + * + * If $file is empty, the tar file will be created in memory + * + * @param string $file + * @throws ArchiveIOException + */ + public function create($file = '') + { + $this->file = $file; + $this->memory = ''; + $this->fh = 0; + + if ($this->file) { + // determine compression + if ($this->comptype == Archive::COMPRESS_AUTO) { + $this->setCompression($this->complevel, $this->filetype($file)); + } + + if ($this->comptype === Archive::COMPRESS_GZIP) { + $this->fh = @gzopen($this->file, 'wb'.$this->complevel); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $this->fh = @bzopen($this->file, 'w'); + } else { + $this->fh = @fopen($this->file, 'wb'); + } + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for writing: '.$this->file); + } + } + $this->writeaccess = true; + $this->closed = false; + } + + /** + * Add a file to the current TAR archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + public function addFile($file, $fileinfo = '') + { + if (is_string($fileinfo)) { + $fileinfo = FileInfo::fromPath($file, $fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $fp = fopen($file, 'rb'); + if (!$fp) { + throw new ArchiveIOException('Could not open file for reading: '.$file); + } + + // create file header + $this->writeFileHeader($fileinfo); + + // write data + while (!feof($fp)) { + $data = fread($fp, 512); + if ($data === false) { + break; + } + if ($data === '') { + break; + } + $packed = pack("a512", $data); + $this->writebytes($packed); + } + fclose($fp); + } + + /** + * Add a file to the current TAR archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + public function addData($fileinfo, $data) + { + if (is_string($fileinfo)) { + $fileinfo = new FileInfo($fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $len = strlen($data); + $fileinfo->setSize($len); + $this->writeFileHeader($fileinfo); + + for ($s = 0; $s < $len; $s += 512) { + $this->writebytes(pack("a512", substr($data, $s, 512))); + } + } + + /** + * Add the closing footer to the archive if in write mode, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + * + * "Physically, an archive consists of a series of file entries terminated by an end-of-archive entry, which + * consists of two 512 blocks of zero bytes" + * + * @link http://www.gnu.org/software/tar/manual/html_chapter/tar_8.html#SEC134 + */ + public function close() + { + if ($this->closed) { + return; + } // we did this already + + // write footer + if ($this->writeaccess) { + $this->writebytes(pack("a512", "")); + $this->writebytes(pack("a512", "")); + } + + // close file handles + if ($this->file) { + if ($this->comptype === Archive::COMPRESS_GZIP) { + gzclose($this->fh); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + bzclose($this->fh); + } else { + fclose($this->fh); + } + + $this->file = ''; + $this->fh = 0; + } + + $this->writeaccess = false; + $this->closed = true; + } + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + public function getArchive() + { + $this->close(); + + if ($this->comptype === Archive::COMPRESS_AUTO) { + $this->comptype = Archive::COMPRESS_NONE; + } + + if ($this->comptype === Archive::COMPRESS_GZIP) { + return gzcompress($this->memory, $this->complevel); + } + if ($this->comptype === Archive::COMPRESS_BZIP) { + return bzcompress($this->memory); + } + return $this->memory; + } + + /** + * Save the created in-memory archive data + * + * Note: It more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param string $file + * @throws ArchiveIOException + */ + public function save($file) + { + if ($this->comptype === Archive::COMPRESS_AUTO) { + $this->setCompression($this->filetype($this->complevel, $file)); + } + + if (!file_put_contents($file, $this->getArchive())) { + throw new ArchiveIOException('Could not write to file: '.$file); + } + } + + /** + * Read from the open file pointer + * + * @param int $length bytes to read + * @return string + */ + protected function readbytes($length) + { + if ($this->comptype === Archive::COMPRESS_GZIP) { + return @gzread($this->fh, $length); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + return @bzread($this->fh, $length); + } else { + return @fread($this->fh, $length); + } + } + + /** + * Write to the open filepointer or memory + * + * @param string $data + * @throws ArchiveIOException + * @return int number of bytes written + */ + protected function writebytes($data) + { + if (!$this->file) { + $this->memory .= $data; + $written = strlen($data); + } elseif ($this->comptype === Archive::COMPRESS_GZIP) { + $written = @gzwrite($this->fh, $data); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $written = @bzwrite($this->fh, $data); + } else { + $written = @fwrite($this->fh, $data); + } + if ($written === false) { + throw new ArchiveIOException('Failed to write to archive stream'); + } + return $written; + } + + /** + * Skip forward in the open file pointer + * + * This is basically a wrapper around seek() (and a workaround for bzip2) + * + * @param int $bytes seek to this position + */ + function skipbytes($bytes) + { + if ($this->comptype === Archive::COMPRESS_GZIP) { + @gzseek($this->fh, $bytes, SEEK_CUR); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + // there is no seek in bzip2, we simply read on + @bzread($this->fh, $bytes); + } else { + @fseek($this->fh, $bytes, SEEK_CUR); + } + } + + /** + * Write the given file metat data as header + * + * @param FileInfo $fileinfo + */ + protected function writeFileHeader(FileInfo $fileinfo) + { + $this->writeRawFileHeader( + $fileinfo->getPath(), + $fileinfo->getUid(), + $fileinfo->getGid(), + $fileinfo->getMode(), + $fileinfo->getSize(), + $fileinfo->getMtime(), + $fileinfo->getIsdir() ? '5' : '0' + ); + } + + /** + * Write a file header to the stream + * + * @param string $name + * @param int $uid + * @param int $gid + * @param int $perm + * @param int $size + * @param int $mtime + * @param string $typeflag Set to '5' for directories + */ + protected function writeRawFileHeader($name, $uid, $gid, $perm, $size, $mtime, $typeflag = '') + { + // handle filename length restrictions + $prefix = ''; + $namelen = strlen($name); + if ($namelen > 100) { + $file = basename($name); + $dir = dirname($name); + if (strlen($file) > 100 || strlen($dir) > 155) { + // we're still too large, let's use GNU longlink + $this->writeRawFileHeader('././@LongLink', 0, 0, 0, $namelen, 0, 'L'); + for ($s = 0; $s < $namelen; $s += 512) { + $this->writebytes(pack("a512", substr($name, $s, 512))); + } + $name = substr($name, 0, 100); // cut off name + } else { + // we're fine when splitting, use POSIX ustar + $prefix = $dir; + $name = $file; + } + } + + // values are needed in octal + $uid = sprintf("%6s ", decoct($uid)); + $gid = sprintf("%6s ", decoct($gid)); + $perm = sprintf("%6s ", decoct($perm)); + $size = sprintf("%11s ", decoct($size)); + $mtime = sprintf("%11s", decoct($mtime)); + + $data_first = pack("a100a8a8a8a12A12", $name, $perm, $uid, $gid, $size, $mtime); + $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $typeflag, '', 'ustar', '', '', '', '', '', $prefix, ""); + + for ($i = 0, $chks = 0; $i < 148; $i++) { + $chks += ord($data_first[$i]); + } + + for ($i = 156, $chks += 256, $j = 0; $i < 512; $i++, $j++) { + $chks += ord($data_last[$j]); + } + + $this->writebytes($data_first); + + $chks = pack("a8", sprintf("%6s ", decoct($chks))); + $this->writebytes($chks.$data_last); + } + + /** + * Decode the given tar file header + * + * @param string $block a 512 byte block containign the header data + * @return array|bool + */ + protected function parseHeader($block) + { + if (!$block || strlen($block) != 512) { + return false; + } + + for ($i = 0, $chks = 0; $i < 148; $i++) { + $chks += ord($block[$i]); + } + + for ($i = 156, $chks += 256; $i < 512; $i++) { + $chks += ord($block[$i]); + } + + $header = @unpack( + "a100filename/a8perm/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix", + $block + ); + if (!$header) { + return false; + } + + $return['checksum'] = OctDec(trim($header['checksum'])); + if ($return['checksum'] != $chks) { + return false; + } + + $return['filename'] = trim($header['filename']); + $return['perm'] = OctDec(trim($header['perm'])); + $return['uid'] = OctDec(trim($header['uid'])); + $return['gid'] = OctDec(trim($header['gid'])); + $return['size'] = OctDec(trim($header['size'])); + $return['mtime'] = OctDec(trim($header['mtime'])); + $return['typeflag'] = $header['typeflag']; + $return['link'] = trim($header['link']); + $return['uname'] = trim($header['uname']); + $return['gname'] = trim($header['gname']); + + // Handle ustar Posix compliant path prefixes + if (trim($header['prefix'])) { + $return['filename'] = trim($header['prefix']).'/'.$return['filename']; + } + + // Handle Long-Link entries from GNU Tar + if ($return['typeflag'] == 'L') { + // following data block(s) is the filename + $filename = trim($this->readbytes(ceil($header['size'] / 512) * 512)); + // next block is the real header + $block = $this->readbytes(512); + $return = $this->parseHeader($block); + // overwrite the filename + $return['filename'] = $filename; + } + + return $return; + } + + /** + * Creates a FileInfo object from the given parsed header + * + * @param $header + * @return FileInfo + */ + protected function header2fileinfo($header) + { + $fileinfo = new FileInfo(); + $fileinfo->setPath($header['filename']); + $fileinfo->setMode($header['perm']); + $fileinfo->setUid($header['uid']); + $fileinfo->setGid($header['gid']); + $fileinfo->setSize($header['size']); + $fileinfo->setMtime($header['mtime']); + $fileinfo->setOwner($header['uname']); + $fileinfo->setGroup($header['gname']); + $fileinfo->setIsdir((bool) $header['typeflag']); + + return $fileinfo; + } + + /** + * Checks if the given compression type is available and throws an exception if not + * + * @param $comptype + * @throws ArchiveIllegalCompressionException + */ + protected function compressioncheck($comptype) + { + if ($comptype === Archive::COMPRESS_GZIP && !function_exists('gzopen')) { + throw new ArchiveIllegalCompressionException('No gzip support available'); + } + + if ($comptype === Archive::COMPRESS_BZIP && !function_exists('bzopen')) { + throw new ArchiveIllegalCompressionException('No bzip2 support available'); + } + } + + /** + * Guesses the wanted compression from the given filename extension + * + * You don't need to call this yourself. It's used when you pass Archive::COMPRESS_AUTO somewhere + * + * @param string $file + * @return int + */ + public function filetype($file) + { + $file = strtolower($file); + if (substr($file, -3) == '.gz' || substr($file, -4) == '.tgz') { + $comptype = Archive::COMPRESS_GZIP; + } elseif (substr($file, -4) == '.bz2' || substr($file, -4) == '.tbz') { + $comptype = Archive::COMPRESS_BZIP; + } else { + $comptype = Archive::COMPRESS_NONE; + } + return $comptype; + } +} diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php new file mode 100644 index 000000000..c2ff36575 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Zip.php @@ -0,0 +1,654 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class Zip + * + * Creates or extracts Zip archives + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class Zip extends Archive +{ + + protected $file = ''; + protected $fh; + protected $memory = ''; + protected $closed = true; + protected $writeaccess = false; + protected $ctrl_dir; + protected $complevel = 9; + + /** + * Set the compression level. + * + * Compression Type is ignored for ZIP + * + * You can call this function before adding each file to set differen compression levels + * for each file. + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use ignored for ZIP + * @return mixed + */ + public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO) + { + $this->complevel = $level; + } + + /** + * Open an existing ZIP file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + public function open($file) + { + $this->file = $file; + $this->fh = @fopen($this->file, 'rb'); + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for reading: '.$this->file); + } + $this->closed = false; + } + + /** + * Read the contents of a ZIP archive + * + * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects + * + * The archive is closed afer reading the contents, for API compatibility with TAR files + * Reopen the file with open() again if you want to do additional operations + * + * @throws ArchiveIOException + * @return FileInfo[] + */ + public function contents() + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $result = array(); + + $centd = $this->readCentralDir(); + + @rewind($this->fh); + @fseek($this->fh, $centd['offset']); + + for ($i = 0; $i < $centd['entries']; $i++) { + $result[] = $this->header2fileinfo($this->readCentralFileHeader()); + } + + $this->close(); + return $result; + } + + /** + * Extract an existing ZIP archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return FileInfo[] + */ + function extract($outdir, $strip = '', $exclude = '', $include = '') + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $outdir = rtrim($outdir, '/'); + @mkdir($outdir, 0777, true); + + $extracted = array(); + + $cdir = $this->readCentralDir(); + $pos_entry = $cdir['offset']; // begin of the central file directory + + for ($i = 0; $i < $cdir['entries']; $i++) { + // read file header + @fseek($this->fh, $pos_entry); + $header = $this->readCentralFileHeader(); + $header['index'] = $i; + $pos_entry = ftell($this->fh); // position of the next file in central file directory + fseek($this->fh, $header['offset']); // seek to beginning of file header + $header = $this->readFileHeader($header); + $fileinfo = $this->header2fileinfo($header); + + // apply strip rules + $fileinfo->strip($strip); + + // skip unwanted files + if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) { + continue; + } + + $extracted[] = $fileinfo; + + // create output directory + $output = $outdir.'/'.$fileinfo->getPath(); + $directory = ($header['folder']) ? $output : dirname($output); + @mkdir($directory, 0777, true); + + // nothing more to do for directories + if ($fileinfo->getIsdir()) { + continue; + } + + // compressed files are written to temporary .gz file first + if ($header['compression'] == 0) { + $extractto = $output; + } else { + $extractto = $output.'.gz'; + } + + // open file for writing + $fp = fopen($extractto, "wb"); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$extractto); + } + + // prepend compression header + if ($header['compression'] != 0) { + $binary_data = pack( + 'va1a1Va1a1', + 0x8b1f, + chr($header['compression']), + chr(0x00), + time(), + chr(0x00), + chr(3) + ); + fwrite($fp, $binary_data, 10); + } + + // read the file and store it on disk + $size = $header['compressed_size']; + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($this->fh, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + + // finalize compressed file + if ($header['compression'] != 0) { + $binary_data = pack('VV', $header['crc'], $header['size']); + fwrite($fp, $binary_data, 8); + } + + // close file + fclose($fp); + + // unpack compressed file + if ($header['compression'] != 0) { + $gzp = @gzopen($extractto, 'rb'); + if (!$gzp) { + @unlink($extractto); + throw new ArchiveIOException('Failed file extracting. gzip support missing?'); + } + $fp = @fopen($output, 'wb'); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$extractto); + } + + $size = $header['size']; + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = gzread($gzp, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + fclose($fp); + gzclose($gzp); + } + + touch($output, $fileinfo->getMtime()); + //FIXME what about permissions? + } + + $this->close(); + return $extracted; + } + + /** + * Create a new ZIP file + * + * If $file is empty, the zip file will be created in memory + * + * @param string $file + * @throws ArchiveIOException + */ + public function create($file = '') + { + $this->file = $file; + $this->memory = ''; + $this->fh = 0; + + if ($this->file) { + $this->fh = @fopen($this->file, 'wb'); + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for writing: '.$this->file); + } + } + $this->writeaccess = true; + $this->closed = false; + $this->ctrl_dir = array(); + } + + /** + * Add a file to the current ZIP archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + + /** + * Add a file to the current archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + public function addFile($file, $fileinfo = '') + { + if (is_string($fileinfo)) { + $fileinfo = FileInfo::fromPath($file, $fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $data = @file_get_contents($file); + if ($data === false) { + throw new ArchiveIOException('Could not open file for reading: '.$file); + } + + // FIXME could we stream writing compressed data? gzwrite on a fopen handle? + $this->addData($fileinfo, $data); + } + + /** + * Add a file to the current TAR archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + public function addData($fileinfo, $data) + { + if (is_string($fileinfo)) { + $fileinfo = new FileInfo($fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + // prepare the various header infos + $dtime = dechex($this->makeDosTime($fileinfo->getMtime())); + $hexdtime = pack( + 'H*', + $dtime[6].$dtime[7]. + $dtime[4].$dtime[5]. + $dtime[2].$dtime[3]. + $dtime[0].$dtime[1] + ); + $size = strlen($data); + $crc = crc32($data); + if ($this->complevel) { + $fmagic = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00"; + $cmagic = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; + $data = gzcompress($data, $this->complevel); + $data = substr($data, 2, -4); // strip compression headers + } else { + $fmagic = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00"; + $cmagic = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; + } + $csize = strlen($data); + $offset = $this->dataOffset(); + $name = $fileinfo->getPath(); + + // write data + $this->writebytes($fmagic); + $this->writebytes($hexdtime); + $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //pre header + $this->writebytes(pack('v', strlen($name)).pack('v', 0).$name.$data); //file data + $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //post header + + // add info to central file directory + $cdrec = $cmagic; + $cdrec .= $hexdtime.pack('V', $crc).pack('V', $csize).pack('V', $size); + $cdrec .= pack('v', strlen($name)).pack('v', 0).pack('v', 0); + $cdrec .= pack('v', 0).pack('v', 0).pack('V', 32); + $cdrec .= pack('V', $offset); + $cdrec .= $name; + $this->ctrl_dir[] = $cdrec; + } + + /** + * Add the closing footer to the archive if in write mode, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + */ + public function close() + { + if ($this->closed) { + return; + } // we did this already + + // write footer + if ($this->writeaccess) { + $offset = $this->dataOffset(); + $ctrldir = join('', $this->ctrl_dir); + $this->writebytes($ctrldir); + $this->writebytes("\x50\x4b\x05\x06\x00\x00\x00\x00"); // EOF CTRL DIR + $this->writebytes(pack('v', count($this->ctrl_dir)).pack('v', count($this->ctrl_dir))); + $this->writebytes(pack('V', strlen($ctrldir)).pack('V', strlen($offset))."\x00\x00"); + $this->ctrl_dir = array(); + } + + // close file handles + if ($this->file) { + fclose($this->fh); + $this->file = ''; + $this->fh = 0; + } + + $this->writeaccess = false; + $this->closed = true; + } + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + public function getArchive() + { + $this->close(); + + return $this->memory; + } + + /** + * Save the created in-memory archive data + * + * Note: It's more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param $file + * @throws ArchiveIOException + */ + public function save($file) + { + if (!file_put_contents($file, $this->getArchive())) { + throw new ArchiveIOException('Could not write to file: '.$file); + } + } + + /** + * Read the central directory + * + * This key-value list contains general information about the ZIP file + * + * @return array + */ + protected function readCentralDir() + { + $size = filesize($this->file); + if ($size < 277) { + $maximum_size = $size; + } else { + $maximum_size = 277; + } + + @fseek($this->fh, $size - $maximum_size); + $pos = ftell($this->fh); + $bytes = 0x00000000; + + while ($pos < $size) { + $byte = @fread($this->fh, 1); + $bytes = (($bytes << 8) & 0xFFFFFFFF) | ord($byte); + if ($bytes == 0x504b0506) { + break; + } + $pos++; + } + + $data = unpack( + 'vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', + fread($this->fh, 18) + ); + + if ($data['comment_size'] != 0) { + $centd['comment'] = fread($this->fh, $data['comment_size']); + } else { + $centd['comment'] = ''; + } + $centd['entries'] = $data['entries']; + $centd['disk_entries'] = $data['disk_entries']; + $centd['offset'] = $data['offset']; + $centd['disk_start'] = $data['disk_start']; + $centd['size'] = $data['size']; + $centd['disk'] = $data['disk']; + return $centd; + } + + /** + * Read the next central file header + * + * Assumes the current file pointer is pointing at the right position + * + * @return array + */ + protected function readCentralFileHeader() + { + $binary_data = fread($this->fh, 46); + $header = unpack( + 'vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', + $binary_data + ); + + if ($header['filename_len'] != 0) { + $header['filename'] = fread($this->fh, $header['filename_len']); + } else { + $header['filename'] = ''; + } + + if ($header['extra_len'] != 0) { + $header['extra'] = fread($this->fh, $header['extra_len']); + } else { + $header['extra'] = ''; + } + + if ($header['comment_len'] != 0) { + $header['comment'] = fread($this->fh, $header['comment_len']); + } else { + $header['comment'] = ''; + } + + if ($header['mdate'] && $header['mtime']) { + $hour = ($header['mtime'] & 0xF800) >> 11; + $minute = ($header['mtime'] & 0x07E0) >> 5; + $seconde = ($header['mtime'] & 0x001F) * 2; + $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; + $month = ($header['mdate'] & 0x01E0) >> 5; + $day = $header['mdate'] & 0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = 'ok'; + if (substr($header['filename'], -1) == '/') { + $header['external'] = 0x41FF0010; + } + $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0; + + return $header; + } + + /** + * Reads the local file header + * + * This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at + * the right position already. Enhances this given central header with the data found at the local header. + * + * @param array $header the central file header read previously (see above) + * @return array + */ + function readFileHeader($header) + { + $binary_data = fread($this->fh, 30); + $data = unpack( + 'vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', + $binary_data + ); + + $header['filename'] = fread($this->fh, $data['filename_len']); + if ($data['extra_len'] != 0) { + $header['extra'] = fread($this->fh, $data['extra_len']); + } else { + $header['extra'] = ''; + } + + $header['compression'] = $data['compression']; + foreach (array( + 'size', + 'compressed_size', + 'crc' + ) as $hd) { // On ODT files, these headers are 0. Keep the previous value. + if ($data[$hd] != 0) { + $header[$hd] = $data[$hd]; + } + } + $header['flag'] = $data['flag']; + $header['mdate'] = $data['mdate']; + $header['mtime'] = $data['mtime']; + + if ($header['mdate'] && $header['mtime']) { + $hour = ($header['mtime'] & 0xF800) >> 11; + $minute = ($header['mtime'] & 0x07E0) >> 5; + $seconde = ($header['mtime'] & 0x001F) * 2; + $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; + $month = ($header['mdate'] & 0x01E0) >> 5; + $day = $header['mdate'] & 0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = "ok"; + $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0; + return $header; + } + + /** + * Create fileinfo object from header data + * + * @param $header + * @return FileInfo + */ + protected function header2fileinfo($header) + { + $fileinfo = new FileInfo(); + $fileinfo->setPath($header['filename']); + $fileinfo->setSize($header['size']); + $fileinfo->setCompressedSize($header['compressed_size']); + $fileinfo->setMtime($header['mtime']); + $fileinfo->setComment($header['comment']); + $fileinfo->setIsdir($header['external'] == 0x41FF0010 || $header['external'] == 16); + return $fileinfo; + } + + /** + * Write to the open filepointer or memory + * + * @param string $data + * @throws ArchiveIOException + * @return int number of bytes written + */ + protected function writebytes($data) + { + if (!$this->file) { + $this->memory .= $data; + $written = strlen($data); + } else { + $written = @fwrite($this->fh, $data); + } + if ($written === false) { + throw new ArchiveIOException('Failed to write to archive stream'); + } + return $written; + } + + /** + * Current data pointer position + * + * @fixme might need a -1 + * @return int + */ + protected function dataOffset() + { + if ($this->file) { + return ftell($this->fh); + } else { + return strlen($this->memory); + } + } + + /** + * Create a DOS timestamp from a UNIX timestamp + * + * DOS timestamps start at 1980-01-01, earlier UNIX stamps will be set to this date + * + * @param $time + * @return int + */ + protected function makeDosTime($time) + { + $timearray = getdate($time); + if ($timearray['year'] < 1980) { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } + return (($timearray['year'] - 1980) << 25) | + ($timearray['mon'] << 21) | + ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | + ($timearray['minutes'] << 5) | + ($timearray['seconds'] >> 1); + } + +} -- GitLab From 1bf2f04f1149da9ed13450ac33cbc6289d3d4f54 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 15 May 2015 15:45:32 +0200 Subject: [PATCH 133/440] remove tests that are now in upstream --- _test/tests/inc/tar.test.php | 454 ----------------------- _test/tests/inc/tar/block.txt | 1 - _test/tests/inc/tar/foobar/testdata2.txt | 1 - _test/tests/inc/tar/longpath-gnu.tgz | Bin 413 -> 0 bytes _test/tests/inc/tar/longpath-ustar.tgz | Bin 311 -> 0 bytes _test/tests/inc/tar/tarbomb.tgz | Bin 183 -> 0 bytes _test/tests/inc/tar/test.tar | Bin 10240 -> 0 bytes _test/tests/inc/tar/test.tbz | Bin 217 -> 0 bytes _test/tests/inc/tar/test.tgz | Bin 220 -> 0 bytes _test/tests/inc/tar/testdata1.txt | 1 - _test/tests/inc/tar/zero.txt | 0 11 files changed, 457 deletions(-) delete mode 100644 _test/tests/inc/tar.test.php delete mode 100644 _test/tests/inc/tar/block.txt delete mode 100644 _test/tests/inc/tar/foobar/testdata2.txt delete mode 100644 _test/tests/inc/tar/longpath-gnu.tgz delete mode 100644 _test/tests/inc/tar/longpath-ustar.tgz delete mode 100644 _test/tests/inc/tar/tarbomb.tgz delete mode 100644 _test/tests/inc/tar/test.tar delete mode 100644 _test/tests/inc/tar/test.tbz delete mode 100644 _test/tests/inc/tar/test.tgz delete mode 100644 _test/tests/inc/tar/testdata1.txt delete mode 100644 _test/tests/inc/tar/zero.txt diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php deleted file mode 100644 index 15453b16d..000000000 --- a/_test/tests/inc/tar.test.php +++ /dev/null @@ -1,454 +0,0 @@ -<?php - -class Tar_TestCase extends DokuWikiTest { - /** - * file extensions that several tests use - */ - protected $extensions = array('tar'); - - public function setUp() { - parent::setUp(); - if (extension_loaded('zlib')) { - $this->extensions[] = 'tgz'; - } - if (extension_loaded('bz2')) { - $this->extensions[] = 'tbz'; - } - } - - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_zlib() { - if (!extension_loaded('zlib')) { - $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); - } - } - - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_bz2() { - if (!extension_loaded('bz2')) { - $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); - } - } - - /** - * simple test that checks that the given filenames and contents can be grepped from - * the uncompressed tar stream - * - * No check for format correctness - */ - public function test_createdynamic() { - $tar = new Tar(); - - $dir = dirname(__FILE__).'/tar'; - $tdir = ltrim($dir,'/'); - - $tar->create(); - $tar->AddFile("$dir/testdata1.txt"); - $tar->AddFile("$dir/foobar/testdata2.txt", 'noway/testdata2.txt'); - $tar->addData('another/testdata3.txt', 'testcontent3'); - - $data = $tar->getArchive(); - - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent2') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent3') !== false, 'Content in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir") !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, "testdata1.txt") !== false, 'File in TAR'); - - $this->assertTrue(strpos($data, 'noway/testdata2.txt') !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, 'another/testdata3.txt') !== false, 'Path in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir/foobar") === false, 'Path not in TAR'); - $this->assertTrue(strpos($data, "foobar.txt") === false, 'File not in TAR'); - - $this->assertTrue(strpos($data, "foobar") === false, 'Path not in TAR'); - } - - /** - * simple test that checks that the given filenames and contents can be grepped from the - * uncompressed tar file - * - * No check for format correctness - */ - public function test_createfile() { - $tar = new Tar(); - - $dir = dirname(__FILE__).'/tar'; - $tdir = ltrim($dir,'/'); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->AddFile("$dir/testdata1.txt"); - $tar->AddFile("$dir/foobar/testdata2.txt", 'noway/testdata2.txt'); - $tar->addData('another/testdata3.txt', 'testcontent3'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent2') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent3') !== false, 'Content in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir") !== false, "Path in TAR '$tdir'"); - $this->assertTrue(strpos($data, "testdata1.txt") !== false, 'File in TAR'); - - $this->assertTrue(strpos($data, 'noway/testdata2.txt') !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, 'another/testdata3.txt') !== false, 'Path in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir/foobar") === false, 'Path not in TAR'); - $this->assertTrue(strpos($data, "foobar.txt") === false, 'File not in TAR'); - - $this->assertTrue(strpos($data, "foobar") === false, 'Path not in TAR'); - - @unlink($tmp); - } - - /** - * List the contents of the prebuilt TAR files - */ - public function test_tarcontent() { - $dir = dirname(__FILE__).'/tar'; - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $content = $tar->contents(); - - $this->assertCount(4, $content, "Contents of $file"); - $this->assertEquals('tar/testdata1.txt', $content[1]['filename'], "Contents of $file"); - $this->assertEquals(13, $content[1]['size'], "Contents of $file"); - - $this->assertEquals('tar/foobar/testdata2.txt', $content[3]['filename'], "Contents of $file"); - $this->assertEquals(13, $content[1]['size'], "Contents of $file"); - } - } - - /** - * Extract the prebuilt tar files - */ - public function test_tarextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with component stripping - */ - public function test_compstripextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, 1); - - clearstatcache(); - - $this->assertFileExists($out.'/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with prefix stripping - */ - public function test_prefixstripextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, 'tar/foobar/'); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with include regex - */ - public function test_includeextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, '', '', '/\/foobar\//'); - - clearstatcache(); - - $this->assertFileNotExists($out.'/tar/testdata1.txt', "Extracted $file"); - - $this->assertFileExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with exclude regex - */ - public function test_excludeextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, '', '/\/foobar\//'); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileNotExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Check the extension to compression guesser - */ - public function test_filetype() { - $tar = new Tar(); - $this->assertEquals(Tar::COMPRESS_NONE, $tar->filetype('foo')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tgz')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tGZ')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tar.GZ')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tar.gz')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tbz')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tBZ')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.BZ2')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.bz2')); - } - - /** - * @depends test_ext_zlib - */ - public function test_longpathextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach(array('ustar', 'gnu') as $format) { - $tar = new Tar(); - $tar->open("$dir/longpath-$format.tgz"); - $tar->extract($out); - - $this->assertFileExists($out.'/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/test.txt'); - - TestUtils::rdelete($out); - } - } - - // FS#1442 - public function test_createlongfile() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = '0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.txt'; - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData($path, 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the complete path and a longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertTrue(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - public function test_createlongpathustar() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = ''; - for($i=0; $i<11; $i++) $path .= '1234567890/'; - $path = rtrim($path,'/'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData("$path/test.txt", 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the path and filename separated, no longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, 'test.txt') !== false, 'filename in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertFalse(strpos($data, "$path/test.txt") !== false, 'full filename in TAR'); - $this->assertFalse(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - public function test_createlongpathgnu() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = ''; - for($i=0; $i<20; $i++) $path .= '1234567890/'; - $path = rtrim($path,'/'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData("$path/test.txt", 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the complete path/filename and a longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, 'test.txt') !== false, 'filename in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertTrue(strpos($data, "$path/test.txt") !== false, 'full filename in TAR'); - $this->assertTrue(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - /** - * Extract a tarbomomb - * @depends test_ext_zlib - */ - public function test_tarbomb() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - $tar = new Tar(); - - $tar->open("$dir/tarbomb.tgz"); - $tar->extract($out); - - clearstatcache(); - - $this->assertFileExists($out.'/AAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB.txt'); - - TestUtils::rdelete($out); - } - - /** - * A single zero file should be just a header block + the footer - */ - public function test_zerofile(){ - $dir = dirname(__FILE__).'/tar'; - $tar = new Tar(); - $tar->create(); - $tar->addFile("$dir/zero.txt", 'zero.txt'); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*3, strlen($file)); // 1 header block + 2 footer blocks - } - - public function test_zerodata(){ - $tar = new Tar(); - $tar->create(); - $tar->addData('zero.txt',''); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*3, strlen($file)); // 1 header block + 2 footer blocks - } - - /** - * A file of exactly one block should be just a header block + data block + the footer - */ - public function test_blockfile(){ - $dir = dirname(__FILE__).'/tar'; - $tar = new Tar(); - $tar->create(); - $tar->addFile("$dir/block.txt", 'block.txt'); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*4, strlen($file)); // 1 header block + data block + 2 footer blocks - } - - public function test_blockdata(){ - $tar = new Tar(); - $tar->create(); - $tar->addData('block.txt', str_pad('', 512, 'x')); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*4, strlen($file)); // 1 header block + data block + 2 footer blocks - } - - - public function test_cleanPath(){ - $tar = new Tar(); - $tests = array ( - '/foo/bar' => 'foo/bar', - '/foo/bar/' => 'foo/bar', - 'foo//bar' => 'foo/bar', - 'foo/0/bar' => 'foo/0/bar', - 'foo/../bar' => 'bar', - 'foo/bang/bang/../../bar' => 'foo/bar', - 'foo/../../bar' => 'bar', - 'foo/.././../bar' => 'bar', - ); - - foreach($tests as $in => $out){ - $this->assertEquals($out, $tar->cleanPath($in), "Input: $in"); - } - } -} diff --git a/_test/tests/inc/tar/block.txt b/_test/tests/inc/tar/block.txt deleted file mode 100644 index 9b2f53080..000000000 --- a/_test/tests/inc/tar/block.txt +++ /dev/null @@ -1 +0,0 @@ -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/_test/tests/inc/tar/foobar/testdata2.txt b/_test/tests/inc/tar/foobar/testdata2.txt deleted file mode 100644 index a7db15771..000000000 --- a/_test/tests/inc/tar/foobar/testdata2.txt +++ /dev/null @@ -1 +0,0 @@ -testcontent2 diff --git a/_test/tests/inc/tar/longpath-gnu.tgz b/_test/tests/inc/tar/longpath-gnu.tgz deleted file mode 100644 index 6c937c8fe055c33eb842419c2321a15eededc191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmV;O0b>3iiwFQ;E|yRL1MS#dPQpMGhT&ejimm|8na;F&=K|OSiA0G84AjKsJAgz8 ze;Hs7Ro~~P{4`<G@61O*UFAdF+&@Ua$VH+igvC*tAj{|K{qp#&P$xck*GO=MsEUN5 z4B1w+;bYzoXJuIoCr{(!=Z$7_iv`)zpZqn~D5U4_RFwQJ?9czYqmZ6|70)Ao3n%lx z!YHKYA0M#)O{C<1?kJ?^AF7)DZ{p1SlSUyu|Jv8=e-oGIe|i+s^N(k<|4m#q{{y3t zoWGMgu>Vcu%71ed((~8Gv;R%>`n~?+U^;moj3=*|K4YEnfn&VgYqn-VG`=E5Imoo0 zE$jSe(`kF`yi@Q0QU?1!+y6?qoJIcW{qMxp^uL8p^nc@a`hW5JpZ?F!w*UDm=o<Q; z{=aqqI|;k}@92LEH|u}C3Ob={{jcIz{qO023!UhH-P8XS{coWQ{ojt}ZLj_Oi<h_a ztopxR_5J?-SKaA<jradzaRL5$|G&lRe;>9lceh>$00000000000000003gX1cRP#4 H08jt`8rtUy diff --git a/_test/tests/inc/tar/longpath-ustar.tgz b/_test/tests/inc/tar/longpath-ustar.tgz deleted file mode 100644 index 59efbff6689a78bc9ff3dc08afb95b4a19eaaa67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmV-70m%LziwFP<GnP;Q1MQd5O2a@9Mf2=e_ysyMJF}~w6R@ZtRoWH&eACuqgxWGS zJ2Z07%aUXRyL;{>ge9rva(7R+T`Opym~BQbM%!yv-Hu;$ETpDV$fP5dMAltfvlWea zU)O#$ETvyQJRhI8Sgnsd-*03;&IJDU&#j{1_n(v){v$Z-f7&Sc{i_!AKZKM1Cy0XI zzga>5L-6=NHwu3LIcM}ggfsoSqTu&mN=E-f_`CnpQE>YgCPV*2nAHC-QSkd0HuOJ) zR{qCP@cU1q=zj>!e)>oF{i|e|x&QXXnq>Qz>EDuN_>YLfrTJ$X?n~BT8vF-Dp)S_- zrhZiCYc4kDk$1ii`)B^?KN07_f5=Dlzxj7Y;pKJt_}15_E7zd`000000001(8=vJ@ JkzW8P0049*qb&dc diff --git a/_test/tests/inc/tar/tarbomb.tgz b/_test/tests/inc/tar/tarbomb.tgz deleted file mode 100644 index 8418d4073e9afc339cd05c222063733305bd5d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmV;o07(BIiwFp>OqNgp188AwX=GGEQgmf=bY*ffE_7jX0PWOG3c@fD1>hXzonSI) zI+?9?olCfqBGgS69^Vv1!7hxEQjqxwgb>KzkT(p?PTti4psHAUfZzJZAaK-}G)T`t zh)Fs)sa)T*BTxR2uhTh?(`BPQKGi>z$!Gng)E_Bmg3BA7$Gmu=+O`S+fBXf_w|Vc| loA&rG`CnJ)@A7~7{~b#z`OkYljxomku{#>(T|NK|001}}SC0Sy diff --git a/_test/tests/inc/tar/test.tar b/_test/tests/inc/tar/test.tar deleted file mode 100644 index 931866b0ba0f279fab0b68e6a27e988860e41dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 zcmeIz(F%ev6b9g3_Y`}AJV!V8JSz>lQP30g_?=lnVMsv>s(&{V6}Nr=Jd-#SCUYZg z!F!_}2T!Rdc5dp^wKl^gIbU)eSl?sv#K!u}^O`<?7$pwYn%Fh_rST49JB&*&eCIP= zd?D>9O_a!MIZB3Qq=4&l-jDOw%<uEBxFTaI!(3*c{P+Ad`)%Jz+X=5`IJoia0_p$X z_5CL2F_8ZMr|Z89TK~07)TsZT*n2nmUyp(E-N(R7^?%CWInw-5|MTyF6#Aw9m#F{w uy)gm=AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwx`TmmO_reCc9 diff --git a/_test/tests/inc/tar/test.tbz b/_test/tests/inc/tar/test.tbz deleted file mode 100644 index 5a737401907117fc2bfda39d27f73aed5892adac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmV;~04D!JT4*^jL0KkKSu)~jd;kFw|AfMl06;(i|9}8Mf&_mdo<INrKnO4Z_5p)U z8fk>Y$$){T2}J>*13&-(6;mQLG$xv9qtx_(+KiuS9TF829Rvhw2#Ul+1bL+{14Lq2 zt2>Ie7al|uB)^?#v8g3(RV?(ma)r$E(@P8tWRr2bg?anS6MV@WS+Xi+vt*k{ZKWXO zj7*$ZtW>rn(rvkcg5;G%43I(b1bsDB)P{r|7#=58&aGBaW1;#a{%>I3b?@C%1h_jp T9nMZ=5Ak;-Q-uiwE+&`2Za`N2 diff --git a/_test/tests/inc/tar/test.tgz b/_test/tests/inc/tar/test.tgz deleted file mode 100644 index b0031964934865544c7c8537740a7995f99c882f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmV<203-h&iwFQ#E0s_H1MSsK3c@fD1>mebMNVL6+Wed++6r!3Xh-n)CRL%L2n7=n z-?s^cflPU1M#5OB%qa5Krjxy;`J0WI&l|-x8C$dS9P5}YvC=koW65cfFlwzr-yYxB zb>mc`p|ax7SJF+=1_`{Cvt+m<1?;YQzs^5q{+NHm4Jl0-dU^8i`N!<{LoZz~y!m!B zP+WTdhhf;|Tm!4-zwz<?$1;ccU&12)`x>Y}y#`jz|2cnS$YK7Mu$ccf=05-c00000 W000000002M@45hgL7JNYC;$NZ_i5h% diff --git a/_test/tests/inc/tar/testdata1.txt b/_test/tests/inc/tar/testdata1.txt deleted file mode 100644 index ac65bb32e..000000000 --- a/_test/tests/inc/tar/testdata1.txt +++ /dev/null @@ -1 +0,0 @@ -testcontent1 diff --git a/_test/tests/inc/tar/zero.txt b/_test/tests/inc/tar/zero.txt deleted file mode 100644 index e69de29bb..000000000 -- GitLab From 9283184c402b592f2ed8d8a99c3809ece7d87e7a Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 15 May 2015 15:49:27 +0200 Subject: [PATCH 134/440] added rudimentary README to vendor dir --- vendor/README | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 vendor/README diff --git a/vendor/README b/vendor/README new file mode 100644 index 000000000..e4027f419 --- /dev/null +++ b/vendor/README @@ -0,0 +1,6 @@ +====== composer managed libraries ====== + +All file within here are manged through composer and should not be +edited directly. Instead provide upstream patches. + +Learn more about Composer at http://getcomposer.org -- GitLab From 41d51802a4f1d52aced2f2960bc919c9739cf775 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 15 May 2015 16:26:00 +0200 Subject: [PATCH 135/440] switched geshi higlighter to composer based repository --- .gitignore | 2 +- composer.json | 3 +- composer.lock | 48 +- inc/geshi/actionscript-french.php | 957 ----------------- inc/geshi/cobol.php | 244 ----- inc/geshi/parigp.php | 277 ----- inc/load.php | 1 - inc/parserutils.php | 5 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/installed.json | 48 + vendor/easybook/geshi/README.md | 10 + vendor/easybook/geshi/composer.json | 24 + {inc => vendor/easybook/geshi}/geshi.php | 2 +- {inc => vendor/easybook/geshi}/geshi/4cs.php | 2 - .../easybook/geshi}/geshi/6502acme.php | 0 .../easybook/geshi}/geshi/6502kickass.php | 0 .../easybook/geshi}/geshi/6502tasm.php | 0 .../easybook/geshi}/geshi/68000devpac.php | 0 {inc => vendor/easybook/geshi}/geshi/abap.php | 0 .../easybook/geshi}/geshi/actionscript.php | 0 .../easybook/geshi}/geshi/actionscript3.php | 0 {inc => vendor/easybook/geshi}/geshi/ada.php | 0 vendor/easybook/geshi/geshi/aimms.php | 316 ++++++ .../easybook/geshi}/geshi/algol68.php | 0 .../easybook/geshi}/geshi/apache.php | 0 .../easybook/geshi}/geshi/applescript.php | 0 .../easybook/geshi}/geshi/apt_sources.php | 11 +- {inc => vendor/easybook/geshi}/geshi/arm.php | 0 {inc => vendor/easybook/geshi}/geshi/asm.php | 0 {inc => vendor/easybook/geshi}/geshi/asp.php | 0 .../easybook/geshi}/geshi/asymptote.php | 2 - .../easybook/geshi}/geshi/autoconf.php | 0 .../easybook/geshi}/geshi/autohotkey.php | 0 .../easybook/geshi}/geshi/autoit.php | 0 .../easybook/geshi}/geshi/avisynth.php | 0 {inc => vendor/easybook/geshi}/geshi/awk.php | 2 - .../easybook/geshi}/geshi/bascomavr.php | 0 {inc => vendor/easybook/geshi}/geshi/bash.php | 62 +- .../easybook/geshi}/geshi/basic4gl.php | 2 - vendor/easybook/geshi/geshi/batch.php | 138 +++ {inc => vendor/easybook/geshi}/geshi/bf.php | 0 .../easybook/geshi}/geshi/bibtex.php | 0 .../easybook/geshi}/geshi/blitzbasic.php | 2 - {inc => vendor/easybook/geshi}/geshi/bnf.php | 0 {inc => vendor/easybook/geshi}/geshi/boo.php | 2 - {inc => vendor/easybook/geshi}/geshi/c.php | 0 .../easybook/geshi}/geshi/c_loadrunner.php | 0 .../easybook/geshi}/geshi/c_mac.php | 0 vendor/easybook/geshi/geshi/c_winapi.php | 870 ++++++++++++++++ .../easybook/geshi}/geshi/caddcl.php | 2 - .../easybook/geshi}/geshi/cadlisp.php | 2 - {inc => vendor/easybook/geshi}/geshi/cfdg.php | 2 - {inc => vendor/easybook/geshi}/geshi/cfm.php | 0 .../easybook/geshi}/geshi/chaiscript.php | 0 vendor/easybook/geshi/geshi/chapel.php | 169 +++ {inc => vendor/easybook/geshi}/geshi/cil.php | 2 - .../easybook/geshi}/geshi/clojure.php | 0 .../easybook/geshi}/geshi/cmake.php | 0 vendor/easybook/geshi/geshi/cobol.php | 457 +++++++++ .../easybook/geshi}/geshi/coffeescript.php | 0 .../easybook/geshi}/geshi/cpp-qt.php | 8 +- vendor/easybook/geshi/geshi/cpp-winapi.php | 836 +++++++++++++++ {inc => vendor/easybook/geshi}/geshi/cpp.php | 10 +- .../easybook/geshi}/geshi/csharp.php | 11 +- {inc => vendor/easybook/geshi}/geshi/css.php | 0 .../easybook/geshi}/geshi/cuesheet.php | 0 {inc => vendor/easybook/geshi}/geshi/d.php | 0 vendor/easybook/geshi/geshi/dart.php | 159 +++ {inc => vendor/easybook/geshi}/geshi/dcl.php | 0 .../easybook/geshi}/geshi/dcpu16.php | 0 {inc => vendor/easybook/geshi}/geshi/dcs.php | 0 .../easybook/geshi}/geshi/delphi.php | 2 - {inc => vendor/easybook/geshi}/geshi/diff.php | 0 {inc => vendor/easybook/geshi}/geshi/div.php | 2 - {inc => vendor/easybook/geshi}/geshi/dos.php | 0 {inc => vendor/easybook/geshi}/geshi/dot.php | 0 {inc => vendor/easybook/geshi}/geshi/e.php | 0 .../easybook/geshi}/geshi/ecmascript.php | 0 .../easybook/geshi}/geshi/eiffel.php | 2 - .../easybook/geshi}/geshi/email.php | 0 {inc => vendor/easybook/geshi}/geshi/epc.php | 0 .../easybook/geshi}/geshi/erlang.php | 0 .../easybook/geshi}/geshi/euphoria.php | 0 vendor/easybook/geshi/geshi/ezt.php | 134 +++ {inc => vendor/easybook/geshi}/geshi/f1.php | 0 .../easybook/geshi}/geshi/falcon.php | 0 {inc => vendor/easybook/geshi}/geshi/fo.php | 0 .../easybook/geshi}/geshi/fortran.php | 2 - .../easybook/geshi}/geshi/freebasic.php | 2 - .../easybook/geshi}/geshi/freeswitch.php | 2 - .../easybook/geshi}/geshi/fsharp.php | 0 .../easybook/geshi}/geshi/gambas.php | 0 {inc => vendor/easybook/geshi}/geshi/gdb.php | 2 - .../easybook/geshi}/geshi/genero.php | 2 - .../easybook/geshi}/geshi/genie.php | 2 - .../easybook/geshi}/geshi/gettext.php | 2 - {inc => vendor/easybook/geshi}/geshi/glsl.php | 0 {inc => vendor/easybook/geshi}/geshi/gml.php | 2 - .../easybook/geshi}/geshi/gnuplot.php | 0 {inc => vendor/easybook/geshi}/geshi/go.php | 0 .../easybook/geshi}/geshi/groovy.php | 0 .../easybook/geshi}/geshi/gwbasic.php | 0 .../easybook/geshi}/geshi/haskell.php | 0 {inc => vendor/easybook/geshi}/geshi/haxe.php | 0 .../easybook/geshi}/geshi/hicest.php | 0 .../easybook/geshi}/geshi/hq9plus.php | 2 - .../easybook/geshi}/geshi/html4strict.php | 0 .../easybook/geshi}/geshi/html5.php | 0 {inc => vendor/easybook/geshi}/geshi/icon.php | 0 {inc => vendor/easybook/geshi}/geshi/idl.php | 2 - {inc => vendor/easybook/geshi}/geshi/ini.php | 5 +- {inc => vendor/easybook/geshi}/geshi/inno.php | 2 - .../easybook/geshi}/geshi/intercal.php | 0 {inc => vendor/easybook/geshi}/geshi/io.php | 2 - vendor/easybook/geshi/geshi/ispfpanel.php | 165 +++ {inc => vendor/easybook/geshi}/geshi/j.php | 2 - {inc => vendor/easybook/geshi}/geshi/java.php | 2 - .../easybook/geshi}/geshi/java5.php | 2 - .../easybook/geshi}/geshi/javascript.php | 0 vendor/easybook/geshi/geshi/jcl.php | 155 +++ .../easybook/geshi}/geshi/jquery.php | 0 .../easybook/geshi}/geshi/kixtart.php | 2 - .../easybook/geshi}/geshi/klonec.php | 2 - .../easybook/geshi}/geshi/klonecpp.php | 2 - .../easybook/geshi}/geshi/latex.php | 0 {inc => vendor/easybook/geshi}/geshi/lb.php | 0 {inc => vendor/easybook/geshi}/geshi/ldif.php | 0 {inc => vendor/easybook/geshi}/geshi/lisp.php | 11 +- {inc => vendor/easybook/geshi}/geshi/llvm.php | 0 .../easybook/geshi}/geshi/locobasic.php | 0 .../easybook/geshi}/geshi/logtalk.php | 0 .../easybook/geshi}/geshi/lolcode.php | 0 .../easybook/geshi}/geshi/lotusformulas.php | 2 - .../easybook/geshi}/geshi/lotusscript.php | 2 - .../easybook/geshi}/geshi/lscript.php | 0 {inc => vendor/easybook/geshi}/geshi/lsl2.php | 415 +++++++- {inc => vendor/easybook/geshi}/geshi/lua.php | 2 - {inc => vendor/easybook/geshi}/geshi/m68k.php | 2 - .../easybook/geshi}/geshi/magiksf.php | 0 {inc => vendor/easybook/geshi}/geshi/make.php | 0 .../easybook/geshi}/geshi/mapbasic.php | 0 .../easybook/geshi}/geshi/matlab.php | 0 {inc => vendor/easybook/geshi}/geshi/mirc.php | 0 {inc => vendor/easybook/geshi}/geshi/mmix.php | 0 .../easybook/geshi}/geshi/modula2.php | 0 .../easybook/geshi}/geshi/modula3.php | 0 .../easybook/geshi}/geshi/mpasm.php | 2 - {inc => vendor/easybook/geshi}/geshi/mxml.php | 2 - .../easybook/geshi}/geshi/mysql.php | 0 .../easybook/geshi}/geshi/nagios.php | 2 - .../easybook/geshi}/geshi/netrexx.php | 2 - .../easybook/geshi}/geshi/newlisp.php | 0 vendor/easybook/geshi/geshi/nginx.php | 868 ++++++++++++++++ {inc => vendor/easybook/geshi}/geshi/nsis.php | 2 - .../easybook/geshi}/geshi/oberon2.php | 0 {inc => vendor/easybook/geshi}/geshi/objc.php | 2 - .../easybook/geshi}/geshi/objeck.php | 0 .../easybook/geshi}/geshi/ocaml-brief.php | 2 - .../easybook/geshi}/geshi/ocaml.php | 0 .../easybook/geshi}/geshi/octave.php | 2 - .../easybook/geshi}/geshi/oobas.php | 2 - .../easybook/geshi}/geshi/oorexx.php | 2 - .../easybook/geshi}/geshi/oracle11.php | 2 - .../easybook/geshi}/geshi/oracle8.php | 2 - .../easybook/geshi}/geshi/oxygene.php | 0 {inc => vendor/easybook/geshi}/geshi/oz.php | 0 .../easybook/geshi}/geshi/parasail.php | 0 vendor/easybook/geshi/geshi/parigp.php | 293 ++++++ .../easybook/geshi}/geshi/pascal.php | 0 {inc => vendor/easybook/geshi}/geshi/pcre.php | 0 {inc => vendor/easybook/geshi}/geshi/per.php | 2 - {inc => vendor/easybook/geshi}/geshi/perl.php | 14 +- .../easybook/geshi}/geshi/perl6.php | 0 {inc => vendor/easybook/geshi}/geshi/pf.php | 0 .../easybook/geshi}/geshi/php-brief.php | 0 {inc => vendor/easybook/geshi}/geshi/php.php | 2 - .../easybook/geshi}/geshi/pic16.php | 2 - {inc => vendor/easybook/geshi}/geshi/pike.php | 2 - .../easybook/geshi}/geshi/pixelbender.php | 2 - {inc => vendor/easybook/geshi}/geshi/pli.php | 0 .../easybook/geshi}/geshi/plsql.php | 2 - .../easybook/geshi}/geshi/postgresql.php | 0 .../easybook/geshi}/geshi/povray.php | 0 .../easybook/geshi}/geshi/powerbuilder.php | 0 .../easybook/geshi}/geshi/powershell.php | 0 .../easybook/geshi}/geshi/proftpd.php | 0 .../easybook/geshi}/geshi/progress.php | 0 .../easybook/geshi}/geshi/prolog.php | 0 .../easybook/geshi}/geshi/properties.php | 0 .../easybook/geshi}/geshi/providex.php | 2 - .../easybook/geshi}/geshi/purebasic.php | 0 .../easybook/geshi}/geshi/pycon.php | 0 .../easybook/geshi}/geshi/pys60.php | 2 - .../easybook/geshi}/geshi/python.php | 0 {inc => vendor/easybook/geshi}/geshi/q.php | 0 .../easybook/geshi}/geshi/qbasic.php | 0 vendor/easybook/geshi/geshi/racket.php | 964 ++++++++++++++++++ .../easybook/geshi}/geshi/rails.php | 2 - vendor/easybook/geshi/geshi/rbs.php | 224 ++++ .../easybook/geshi}/geshi/rebol.php | 0 {inc => vendor/easybook/geshi}/geshi/reg.php | 2 - {inc => vendor/easybook/geshi}/geshi/rexx.php | 2 - .../easybook/geshi}/geshi/robots.php | 0 .../easybook/geshi}/geshi/rpmspec.php | 0 .../easybook/geshi}/geshi/rsplus.php | 0 {inc => vendor/easybook/geshi}/geshi/ruby.php | 0 vendor/easybook/geshi/geshi/rust.php | 228 +++++ {inc => vendor/easybook/geshi}/geshi/sas.php | 0 vendor/easybook/geshi/geshi/sass.php | 248 +++++ .../easybook/geshi}/geshi/scala.php | 0 .../easybook/geshi}/geshi/scheme.php | 2 - .../easybook/geshi}/geshi/scilab.php | 0 vendor/easybook/geshi/geshi/scl.php | 148 +++ .../easybook/geshi}/geshi/sdlbasic.php | 2 - .../easybook/geshi}/geshi/smalltalk.php | 0 .../easybook/geshi}/geshi/smarty.php | 2 - .../easybook/geshi}/geshi/spark.php | 0 .../easybook/geshi}/geshi/sparql.php | 0 {inc => vendor/easybook/geshi}/geshi/sql.php | 5 + .../easybook/geshi}/geshi/stonescript.php | 0 .../easybook/geshi}/geshi/systemverilog.php | 0 {inc => vendor/easybook/geshi}/geshi/tcl.php | 0 .../easybook/geshi}/geshi/teraterm.php | 0 {inc => vendor/easybook/geshi}/geshi/text.php | 2 - .../easybook/geshi}/geshi/thinbasic.php | 2 - {inc => vendor/easybook/geshi}/geshi/tsql.php | 0 vendor/easybook/geshi/geshi/twig.php | 190 ++++ .../easybook/geshi}/geshi/typoscript.php | 2 - .../easybook/geshi}/geshi/unicon.php | 0 {inc => vendor/easybook/geshi}/geshi/upc.php | 0 {inc => vendor/easybook/geshi}/geshi/urbi.php | 2 - .../easybook/geshi}/geshi/uscript.php | 2 - {inc => vendor/easybook/geshi}/geshi/vala.php | 2 - {inc => vendor/easybook/geshi}/geshi/vb.php | 0 .../easybook/geshi}/geshi/vbnet.php | 0 vendor/easybook/geshi/geshi/vbscript.php | 153 +++ .../easybook/geshi}/geshi/vedit.php | 0 .../easybook/geshi}/geshi/verilog.php | 60 +- {inc => vendor/easybook/geshi}/geshi/vhdl.php | 2 - {inc => vendor/easybook/geshi}/geshi/vim.php | 2 - .../easybook/geshi}/geshi/visualfoxpro.php | 0 .../easybook/geshi}/geshi/visualprolog.php | 2 - .../easybook/geshi}/geshi/whitespace.php | 2 - .../easybook/geshi}/geshi/whois.php | 0 .../easybook/geshi}/geshi/winbatch.php | 0 .../easybook/geshi}/geshi/xbasic.php | 0 {inc => vendor/easybook/geshi}/geshi/xml.php | 2 - vendor/easybook/geshi/geshi/xojo.php | 166 +++ .../easybook/geshi}/geshi/xorg_conf.php | 2 - {inc => vendor/easybook/geshi}/geshi/xpp.php | 2 - {inc => vendor/easybook/geshi}/geshi/yaml.php | 0 {inc => vendor/easybook/geshi}/geshi/z80.php | 0 .../easybook/geshi}/geshi/zxbasic.php | 0 253 files changed, 7547 insertions(+), 1716 deletions(-) delete mode 100644 inc/geshi/actionscript-french.php delete mode 100644 inc/geshi/cobol.php delete mode 100644 inc/geshi/parigp.php create mode 100644 vendor/easybook/geshi/README.md create mode 100644 vendor/easybook/geshi/composer.json rename {inc => vendor/easybook/geshi}/geshi.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/4cs.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/6502acme.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/6502kickass.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/6502tasm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/68000devpac.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/abap.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/actionscript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/actionscript3.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ada.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/aimms.php rename {inc => vendor/easybook/geshi}/geshi/algol68.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/apache.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/applescript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/apt_sources.php (86%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/arm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/asm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/asp.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/asymptote.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/autoconf.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/autohotkey.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/autoit.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/avisynth.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/awk.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/bascomavr.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/bash.php (88%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/basic4gl.php (99%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/batch.php rename {inc => vendor/easybook/geshi}/geshi/bf.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/bibtex.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/blitzbasic.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/bnf.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/boo.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/c.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/c_loadrunner.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/c_mac.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/c_winapi.php rename {inc => vendor/easybook/geshi}/geshi/caddcl.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cadlisp.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cfdg.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cfm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/chaiscript.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/chapel.php rename {inc => vendor/easybook/geshi}/geshi/cil.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/clojure.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cmake.php (100%) mode change 100644 => 100755 create mode 100755 vendor/easybook/geshi/geshi/cobol.php rename {inc => vendor/easybook/geshi}/geshi/coffeescript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cpp-qt.php (99%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/cpp-winapi.php rename {inc => vendor/easybook/geshi}/geshi/cpp.php (96%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/csharp.php (96%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/css.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/cuesheet.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/d.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/dart.php rename {inc => vendor/easybook/geshi}/geshi/dcl.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/dcpu16.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/dcs.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/delphi.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/diff.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/div.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/dos.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/dot.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/e.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ecmascript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/eiffel.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/email.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/epc.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/erlang.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/euphoria.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/ezt.php rename {inc => vendor/easybook/geshi}/geshi/f1.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/falcon.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/fo.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/fortran.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/freebasic.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/freeswitch.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/fsharp.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gambas.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gdb.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/genero.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/genie.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gettext.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/glsl.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gml.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gnuplot.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/go.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/groovy.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/gwbasic.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/haskell.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/haxe.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/hicest.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/hq9plus.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/html4strict.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/html5.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/icon.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/idl.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ini.php (97%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/inno.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/intercal.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/io.php (99%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/ispfpanel.php rename {inc => vendor/easybook/geshi}/geshi/j.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/java.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/java5.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/javascript.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/jcl.php rename {inc => vendor/easybook/geshi}/geshi/jquery.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/kixtart.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/klonec.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/klonecpp.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/latex.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lb.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ldif.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lisp.php (94%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/llvm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/locobasic.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/logtalk.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lolcode.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lotusformulas.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lotusscript.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lscript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lsl2.php (67%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/lua.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/m68k.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/magiksf.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/make.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mapbasic.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/matlab.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mirc.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mmix.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/modula2.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/modula3.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mpasm.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mxml.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/mysql.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/nagios.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/netrexx.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/newlisp.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/nginx.php rename {inc => vendor/easybook/geshi}/geshi/nsis.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oberon2.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/objc.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/objeck.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ocaml-brief.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ocaml.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/octave.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oobas.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oorexx.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oracle11.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oracle8.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oxygene.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/oz.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/parasail.php (100%) mode change 100644 => 100755 create mode 100755 vendor/easybook/geshi/geshi/parigp.php rename {inc => vendor/easybook/geshi}/geshi/pascal.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pcre.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/per.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/perl.php (89%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/perl6.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pf.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/php-brief.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/php.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pic16.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pike.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pixelbender.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pli.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/plsql.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/postgresql.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/povray.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/powerbuilder.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/powershell.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/proftpd.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/progress.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/prolog.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/properties.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/providex.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/purebasic.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pycon.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/pys60.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/python.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/q.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/qbasic.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/racket.php rename {inc => vendor/easybook/geshi}/geshi/rails.php (99%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/rbs.php rename {inc => vendor/easybook/geshi}/geshi/rebol.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/reg.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/rexx.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/robots.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/rpmspec.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/rsplus.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/ruby.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/rust.php rename {inc => vendor/easybook/geshi}/geshi/sas.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/sass.php rename {inc => vendor/easybook/geshi}/geshi/scala.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/scheme.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/scilab.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/scl.php rename {inc => vendor/easybook/geshi}/geshi/sdlbasic.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/smalltalk.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/smarty.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/spark.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/sparql.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/sql.php (97%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/stonescript.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/systemverilog.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/tcl.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/teraterm.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/text.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/thinbasic.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/tsql.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/twig.php rename {inc => vendor/easybook/geshi}/geshi/typoscript.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/unicon.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/upc.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/urbi.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/uscript.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/vala.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/vb.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/vbnet.php (100%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/vbscript.php rename {inc => vendor/easybook/geshi}/geshi/vedit.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/verilog.php (61%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/vhdl.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/vim.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/visualfoxpro.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/visualprolog.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/whitespace.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/whois.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/winbatch.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/xbasic.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/xml.php (99%) mode change 100644 => 100755 create mode 100644 vendor/easybook/geshi/geshi/xojo.php rename {inc => vendor/easybook/geshi}/geshi/xorg_conf.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/xpp.php (99%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/yaml.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/z80.php (100%) mode change 100644 => 100755 rename {inc => vendor/easybook/geshi}/geshi/zxbasic.php (100%) mode change 100644 => 100755 diff --git a/.gitignore b/.gitignore index 5698e9d1f..d28991d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -62,4 +62,4 @@ vendor/*/*/tests/* vendor/*/*/test/* vendor/*/*/doc/* vendor/*/*/docs/* - +vendor/*/*/contrib/* diff --git a/composer.json b/composer.json index 14ae94ad7..3fe00cc92 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "require": { - "splitbrain/php-archive": "~1.0" + "splitbrain/php-archive": "~1.0", + "easybook/geshi": "~1.0" } } diff --git a/composer.lock b/composer.lock index 753d5c9c0..8b6424244 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,54 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "de1f49aad78674b8d56a7f93fb633f65", + "hash": "23ee0dd06136e2301c930e75055300d5", "packages": [ + { + "name": "easybook/geshi", + "version": "v1.0.8.14", + "source": { + "type": "git", + "url": "https://github.com/easybook/geshi.git", + "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8", + "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8", + "shasum": "" + }, + "require": { + "php": ">4.3.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + }, + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + } + ], + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": [ + "highlight", + "highlighter", + "syntax" + ], + "time": "2015-04-15 13:21:45" + }, { "name": "splitbrain/php-archive", "version": "1.0.0", diff --git a/inc/geshi/actionscript-french.php b/inc/geshi/actionscript-french.php deleted file mode 100644 index e81605098..000000000 --- a/inc/geshi/actionscript-french.php +++ /dev/null @@ -1,957 +0,0 @@ -<?php -/************************************************************************************* - * actionscript.php - * ---------------- - * Author: Steffen Krause (Steffen.krause@muse.de) - * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.7.9 - * CVS Revision Version: $Revision: 1.9 $ - * Date Started: 2004/06/20 - * Last Modified: $Date: 2006/04/23 01:14:41 $ - * - * Actionscript language file for GeSHi. - * - * CHANGES - * ------- - * 2005/08/25 (1.0.2) - * Author [ NikO ] - http://niko.informatif.org - * - add full link for myInstance.methods to http://wiki.media-box.net/documentation/flash - * 2004/11/27 (1.0.1) - * - Added support for multiple object splitters - * 2004/10/27 (1.0.0) - * - First Release - * - * TODO (updated 2004/11/27) - * ------------------------- - * - ************************************************************************************* - * - * This file is part of GeSHi. - * - * GeSHi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GeSHi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GeSHi; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - ************************************************************************************/ - -$language_data = array ( - 'LANG_NAME' => 'Actionscript', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - '#include', - 'for', - 'foreach', - 'if', - 'elseif', - 'else', - 'while', - 'do', - 'dowhile', - 'endwhile', - 'endif', - 'switch', - 'case', - 'endswitch', - 'break', - 'continue', - 'in', - 'null', - 'false', - 'true', - 'var', - 'default', - 'new', - '_global', - 'undefined', - 'super' - ), - 2 => array( - 'static', - 'private', - 'public', - 'class', - 'extends', - 'implements', - 'import', - 'return', - 'trace', - '_quality', - '_root', - 'set', - 'setInterval', - 'setProperty', - 'stopAllSounds', - 'targetPath', - 'this', - 'typeof', - 'unescape', - 'updateAfterEvent' - ), - 3 => array ( - 'Accessibility', - 'Array', - 'Boolean', - 'Button', - 'Camera', - 'Color', - 'ContextMenuItem', - 'ContextMenu', - 'Cookie', - 'Date', - 'Error', - 'function', - 'FWEndCommand', - 'FWJavascript', - 'Key', - 'LoadMovieNum', - 'LoadMovie', - 'LoadVariablesNum', - 'LoadVariables', - 'LoadVars', - 'LocalConnection', - 'Math', - 'Microphone', - 'MMExecute', - 'MMEndCommand', - 'MMSave', - 'Mouse', - 'MovieClipLoader', - 'MovieClip', - 'NetConnexion', - 'NetStream', - 'Number', - 'Object', - 'printAsBitmapNum', - 'printNum', - 'printAsBitmap', - 'printJob', - 'print', - 'Selection', - 'SharedObject', - 'Sound', - 'Stage', - 'String', - 'System', - 'TextField', - 'TextFormat', - 'Tween', - 'Video', - 'XMLUI', - 'XMLNode', - 'XMLSocket', - 'XML' - ), - 4 => array ( - 'isactive', - 'updateProperties' - ), - 5 => array ( - 'callee', - 'caller', - ), - 6 => array ( - 'concat', - 'join', - 'pop', - 'push', - 'reverse', - 'shift', - 'slice', - 'sort', - 'sortOn', - 'splice', - 'toString', - 'unshift' - ), - 7 => array ( - 'valueOf' - ), - 8 => array ( - 'onDragOut', - 'onDragOver', - 'onKeyUp', - 'onKillFocus', - 'onPress', - 'onRelease', - 'onReleaseOutside', - 'onRollOut', - 'onRollOver', - 'onSetFocus' - ), - 9 => array ( - 'setMode', - 'setMotionLevel', - 'setQuality', - 'activityLevel', - 'bandwidth', - 'currentFps', - 'fps', - 'index', - 'motionLevel', - 'motionTimeOut', - 'muted', - 'names', - 'quality', - 'onActivity', - 'onStatus' - ), - 10 => array ( - 'getRGB', - 'setRGB', - 'getTransform', - 'setTransform' - ), - 11 => array ( - 'caption', - 'enabled', - 'separatorBefore', - 'visible', - 'onSelect' - ), - 12 => array ( - 'setCookie', - 'getcookie' - ), - 13 => array ( - 'hideBuiltInItems', - 'builtInItems', - 'customItems', - 'onSelect' - ), - 14 => array ( - 'CustomActions.get', - 'CustomActions.install', - 'CustomActions.list', - 'CustomActions.uninstall', - ), - 15 => array ( - 'getDate', - 'getDay', - 'getFullYear', - 'getHours', - 'getMilliseconds', - 'getMinutes', - 'getMonth', - 'getSeconds', - 'getTime', - 'getTimezoneOffset', - 'getUTCDate', - 'getUTCDay', - 'getUTCFullYear', - 'getUTCHours', - 'getUTCMinutes', - 'getUTCMilliseconds', - 'getUTCMonth', - 'getUTCSeconds', - 'getYear', - 'setDate', - 'setFullYear', - 'setHours', - 'setMilliseconds', - 'setMinutes', - 'setMonth', - 'setSeconds', - 'setTime', - 'setUTCDate', - 'setUTCDay', - 'setUTCFullYear', - 'setUTCHours', - 'setUTCMinutes', - 'setUTCMilliseconds', - 'setUTCMonth', - 'setUTCSeconds', - 'setYear', - 'UTC' - ), - 16 => array ( - 'message', - 'name', - 'throw', - 'try', - 'catch', - 'finally' - ), - 17 => array ( - 'apply', - 'call' - ), - 18 => array ( - 'BACKSPACE', - 'CAPSLOCK', - 'CONTROL', - 'DELETEKEY', - 'DOWN', - 'END', - 'ENTER', - 'ESCAPE', - 'getAscii', - 'getCode', - 'HOME', - 'INSERT', - 'isDown', - 'isToggled', - 'LEFT', - 'onKeyDown', - 'onKeyUp', - 'PGDN', - 'PGUP', - 'RIGHT', - 'SPACE', - 'TAB', - 'UP' - ), - 19 => array ( - 'addRequestHeader', - 'contentType', - 'decode' - ), - 20 => array ( - 'allowDomain', - 'allowInsecureDomain', - 'close', - 'domain' - ), - 21 => array ( - 'abs', - 'acos', - 'asin', - 'atan', - 'atan2', - 'ceil', - 'cos', - 'exp', - 'floor', - 'log', - 'LN2', - 'LN10', - 'LOG2E', - 'LOG10E', - 'max', - 'min', - 'PI', - 'pow', - 'random', - 'sin', - 'SQRT1_2', - 'sqrt', - 'tan', - 'round', - 'SQRT2' - ), - 22 => array ( - 'activityLevel', - 'muted', - 'names', - 'onActivity', - 'onStatus', - 'setRate', - 'setGain', - 'gain', - 'rate', - 'setSilenceLevel', - 'setUseEchoSuppression', - 'silenceLevel', - 'silenceTimeOut', - 'useEchoSuppression' - ), - 23 => array ( - 'hide', - 'onMouseDown', - 'onMouseMove', - 'onMouseUp', - 'onMouseWeel', - 'show' - ), - 24 => array ( - '_alpha', - 'attachAudio', - 'attachMovie', - 'beginFill', - 'beginGradientFill', - 'clear', - 'createEmptyMovieClip', - 'createTextField', - '_current', - 'curveTo', - '_dropTarget', - 'duplicateMovieClip', - 'endFill', - 'focusEnabled', - 'enabled', - '_focusrec', - '_framesLoaded', - 'getBounds', - 'getBytesLoaded', - 'getBytesTotal', - 'getDepth', - 'getInstanceAtDepth', - 'getNextHighestDepth', - 'getSWFVersion', - 'getTextSnapshot', - 'getURL', - 'globalToLocal', - 'gotoAndPlay', - 'gotoAndStop', - '_height', - 'hitArea', - 'hitTest', - 'lineStyle', - 'lineTo', - 'localToGlobal', - '_lockroot', - 'menu', - 'onUnload', - '_parent', - 'play', - 'prevFrame', - '_quality', - 'removeMovieClip', - '_rotation', - 'setMask', - '_soundbuftime', - 'startDrag', - 'stopDrag', - 'stop', - 'swapDepths', - 'tabChildren', - '_target', - '_totalFrames', - 'trackAsMenu', - 'unloadMovie', - 'useHandCursor', - '_visible', - '_width', - '_xmouse', - '_xscale', - '_x', - '_ymouse', - '_yscale', - '_y' - ), - 25 => array ( - 'getProgress', - 'loadClip', - 'onLoadComplete', - 'onLoadError', - 'onLoadInit', - 'onLoadProgress', - 'onLoadStart' - ), - 26 => array ( - 'bufferLength', - 'currentFps', - 'seek', - 'setBufferTime', - 'bufferTime', - 'time', - 'pause' - ), - 27 => array ( - 'MAX_VALUE', - 'MIN_VALUE', - 'NEGATIVE_INFINITY', - 'POSITIVE_INFINITY' - ), - 28 => array ( - 'addProperty', - 'constructor', - '__proto__', - 'registerClass', - '__resolve', - 'unwatch', - 'watch', - 'onUpDate' - ), - 29 => array ( - 'addPage' - ), - 30 => array ( - 'getBeginIndex', - 'getCaretIndex', - 'getEndIndex', - 'setSelection' - ), - 31 => array ( - 'flush', - 'getLocal', - 'getSize' - ), - 32 => array ( - 'attachSound', - 'duration', - 'getPan', - 'getVolume', - 'onID3', - 'loadSound', - 'id3', - 'onSoundComplete', - 'position', - 'setPan', - 'setVolume' - ), - 33 => array ( - 'getBeginIndex', - 'getCaretIndex', - 'getEndIndex', - 'setSelection' - ), - 34 => array ( - 'getEndIndex', - ), - 35 => array ( - 'align', - 'height', - 'width', - 'onResize', - 'scaleMode', - 'showMenu' - ), - 36 => array ( - 'charAt', - 'charCodeAt', - 'concat', - 'fromCharCode', - 'indexOf', - 'lastIndexOf', - 'substr', - 'substring', - 'toLowerCase', - 'toUpperCase' - ), - 37 => array ( - 'avHardwareDisable', - 'hasAccessibility', - 'hasAudioEncoder', - 'hasAudio', - 'hasEmbeddedVideo', - 'hasMP3', - 'hasPrinting', - 'hasScreenBroadcast', - 'hasScreenPlayback', - 'hasStreamingAudio', - 'hasStreamingVideo', - 'hasVideoEncoder', - 'isDebugger', - 'language', - 'localFileReadDisable', - 'manufacturer', - 'os', - 'pixelAspectRatio', - 'playerType', - 'screenColor', - 'screenDPI', - 'screenResolutionX', - 'screenResolutionY', - 'serverString', - 'version' - ), - 38 => array ( - 'allowDomain', - 'allowInsecureDomain', - 'loadPolicyFile' - ), - 39 => array ( - 'exactSettings', - 'setClipboard', - 'showSettings', - 'useCodepage' - ), - 40 => array ( - 'getStyle', - 'getStyleNames', - 'parseCSS', - 'setStyle', - 'transform' - ), - 41 => array ( - 'autoSize', - 'background', - 'backgroundColor', - 'border', - 'borderColor', - 'bottomScroll', - 'condenseWhite', - 'embedFonts', - 'getFontList', - 'getNewTextFormat', - 'getTextFormat', - 'hscroll', - 'htmlText', - 'html', - 'maxChars', - 'maxhscroll', - 'maxscroll', - 'mouseWheelEnabled', - 'multiline', - 'onScroller', - 'password', - 'removeTextField', - 'replaceSel', - 'replaceText', - 'restrict', - 'scroll', - 'selectable', - 'setNewTextFormat', - 'setTextFormat', - 'styleSheet', - 'tabEnabled', - 'tabIndex', - 'textColor', - 'textHeight', - 'textWidth', - 'text', - 'type', - '_url', - 'variable', - 'wordWrap' - ), - 42 => array ( - 'blockIndent', - 'bold', - 'bullet', - 'font', - 'getTextExtent', - 'indent', - 'italic', - 'leading', - 'leftMargin', - 'rightMargin', - 'size', - 'tabStops', - 'underline' - ), - 43 => array ( - 'findText', - 'getCount', - 'getSelected', - 'getSelectedText', - 'getText', - 'hitTestTextNearPos', - 'setSelectColor', - 'setSelected' - ), - 44 => array ( - 'begin', - 'change', - 'continueTo', - 'fforward', - 'finish', - 'func', - 'FPS', - 'getPosition', - 'isPlaying', - 'looping', - 'obj', - 'onMotionChanged', - 'onMotionFinished', - 'onMotionLooped', - 'onMotionStarted', - 'onMotionResumed', - 'onMotionStopped', - 'prop', - 'rewind', - 'resume', - 'setPosition', - 'time', - 'userSeconds', - 'yoyo' - ), - 45 => array ( - 'attachVideo', - 'deblocking', - 'smoothing' - ), - 46 => array ( - 'addRequestHeader', - 'appendChild', - 'attributes', - 'childNodes', - 'cloneNode', - 'contentType', - 'createElement', - 'createTextNode', - 'docTypeDecl', - 'firstChild', - 'hasChildNodes', - 'ignoreWhite', - 'insertBefore', - 'lastChild', - 'nextSibling', - 'nodeName', - 'nodeType', - 'nodeValue', - 'parentNode', - 'parseXML', - 'previousSibling', - 'removeNode', - 'xmlDecl' - ), - 47 => array ( - 'onClose', - 'onXML' - ), - 48 => array ( - 'add', - 'and', - '_highquality', - 'chr', - 'eq', - 'ge', - 'ifFrameLoaded', - 'int', - 'le', - 'it', - 'mbchr', - 'mblength', - 'mbord', - 'ne', - 'not', - 'or', - 'ord', - 'tellTarget', - 'toggleHighQuality' - ), - 49 => array ( - 'ASSetPropFlags', - 'ASnative', - 'ASconstructor', - 'AsSetupError', - 'FWEndCommand', - 'FWJavascript', - 'MMEndCommand', - 'MMSave', - 'XMLUI' - ), - 50 => array ( - 'System.capabilities' - ), - 51 => array ( - 'System.security' - ), - 52 => array ( - 'TextField.StyleSheet' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>','=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true, - 2 => true, - 3 => true, - 4 => true, - 5 => true, - 6 => true, - 7 => true, - 8 => true, - 9 => true, - 10 => true, - 11 => true, - 12 => true, - 13 => true, - 14 => true, - 15 => true, - 16 => true, - 17 => true, - 18 => true, - 19 => true, - 20 => true, - 21 => true, - 22 => true, - 23 => true, - 24 => true, - 25 => true, - 26 => true, - 27 => true, - 28 => true, - 29 => true, - 30 => true, - 31 => true, - 32 => true, - 33 => true, - 34 => true, - 35 => true, - 36 => true, - 37 => true, - 38 => true, - 39 => true, - 40 => true, - 41 => true, - 42 => true, - 43 => true, - 44 => true, - 45 => true, - 46 => true, - 47 => true, - 48 => true, - 49 => true, - 50 => true, - 51 => true, - 52 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff;', - 2 => 'color: #006600;', - 3 => 'color: #000080;', - 4 => 'color: #006600;', - 5 => 'color: #006600;', - 6 => 'color: #006600;', - 7 => 'color: #006600;', - 8 => 'color: #006600;', - 9 => 'color: #006600;', - 10 => 'color: #006600;', - 11 => 'color: #006600;', - 12 => 'color: #006600;', - 13 => 'color: #006600;', - 14 => 'color: #006600;', - 15 => 'color: #006600;', - 16 => 'color: #006600;', - 17 => 'color: #006600;', - 18 => 'color: #006600;', - 19 => 'color: #006600;', - 20 => 'color: #006600;', - 21 => 'color: #006600;', - 22 => 'color: #006600;', - 23 => 'color: #006600;', - 24 => 'color: #006600;', - 25 => 'color: #006600;', - 26 => 'color: #006600;', - 27 => 'color: #006600;', - 28 => 'color: #006600;', - 29 => 'color: #006600;', - 30 => 'color: #006600;', - 31 => 'color: #006600;', - 32 => 'color: #006600;', - 33 => 'color: #006600;', - 34 => 'color: #006600;', - 35 => 'color: #006600;', - 36 => 'color: #006600;', - 37 => 'color: #006600;', - 38 => 'color: #006600;', - 39 => 'color: #006600;', - 40 => 'color: #006600;', - 41 => 'color: #006600;', - 42 => 'color: #006600;', - 43 => 'color: #006600;', - 44 => 'color: #006600;', - 45 => 'color: #006600;', - 46 => 'color: #006600;', - 47 => 'color: #006600;', - 48 => 'color: #CC0000;', - 49 => 'color: #5700d1;', - 50 => 'color: #006600;', - 51 => 'color: #006600;', - 52 => 'color: #CC0000;' - ), - 'COMMENTS' => array( - 1 => 'color: #ff8000; font-style: italic;', - 2 => 'color: #ff8000; font-style: italic;', - 'MULTI' => 'color: #ff8000; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #333333;' - ), - 'STRINGS' => array( - 0 => 'color: #333333; background-color: #eeeeee;' - ), - 'NUMBERS' => array( - 0 => 'color: #c50000;' - ), - - 'SYMBOLS' => array( - 0 => 'color: #000000;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 2 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 3 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 4 => 'http://wiki.media-box.net/documentation/flash/accessibility/{FNAME}', - 5 => 'http://wiki.media-box.net/documentation/flash/arguments/{FNAME}', - 6 => 'http://wiki.media-box.net/documentation/flash/array/{FNAME}', - 7 => 'http://wiki.media-box.net/documentation/flash/boolean/{FNAME}', - 8 => 'http://wiki.media-box.net/documentation/flash/button/{FNAME}', - 9 => 'http://wiki.media-box.net/documentation/flash/camera/{FNAME}', - 10 => 'http://wiki.media-box.net/documentation/flash/color/{FNAME}', - 11 => 'http://wiki.media-box.net/documentation/flash/contextmenuitem/{FNAME}', - 12 => 'http://wiki.media-box.net/documentation/flash/contextmenu/{FNAME}', - 13 => 'http://wiki.media-box.net/documentation/flash/cookie/{FNAME}', - 14 => 'http://wiki.media-box.net/documentation/flash/customactions/{FNAME}', - 15 => 'http://wiki.media-box.net/documentation/flash/date/{FNAME}', - 16 => 'http://wiki.media-box.net/documentation/flash/error/{FNAME}', - 17 => 'http://wiki.media-box.net/documentation/flash/function/{FNAME}', - 18 => 'http://wiki.media-box.net/documentation/flash/key/{FNAME}', - 19 => 'http://wiki.media-box.net/documentation/flash/loadvars/{FNAME}', - 20 => 'http://wiki.media-box.net/documentation/flash/localconnection/{FNAME}', - 21 => 'http://wiki.media-box.net/documentation/flash/math/{FNAME}', - 22 => 'http://wiki.media-box.net/documentation/flash/microphone/{FNAME}', - 23 => 'http://wiki.media-box.net/documentation/flash/mouse/{FNAME}', - 24 => 'http://wiki.media-box.net/documentation/flash/movieclip/{FNAME}', - 25 => 'http://wiki.media-box.net/documentation/flash/moviecliploader/{FNAME}', - 26 => 'http://wiki.media-box.net/documentation/flash/netstream/{FNAME}', - 27 => 'http://wiki.media-box.net/documentation/flash/number/{FNAME}', - 28 => 'http://wiki.media-box.net/documentation/flash/object/{FNAME}', - 29 => 'http://wiki.media-box.net/documentation/flash/printJob/{FNAME}', - 30 => 'http://wiki.media-box.net/documentation/flash/selection/{FNAME}', - 31 => 'http://wiki.media-box.net/documentation/flash/sharedobject/{FNAME}', - 32 => 'http://wiki.media-box.net/documentation/flash/sound/{FNAME}', - 33 => 'http://wiki.media-box.net/documentation/flash/selection/{FNAME}', - 34 => 'http://wiki.media-box.net/documentation/flash/sharedobject/{FNAME}', - 35 => 'http://wiki.media-box.net/documentation/flash/stage/{FNAME}', - 36 => 'http://wiki.media-box.net/documentation/flash/string/{FNAME}', - 37 => 'http://wiki.media-box.net/documentation/flash/system/capabilities/{FNAME}', - 38 => 'http://wiki.media-box.net/documentation/flash/system/security/{FNAME}', - 39 => 'http://wiki.media-box.net/documentation/flash/system/{FNAME}', - 40 => 'http://wiki.media-box.net/documentation/flash/textfield/stylesheet/{FNAME}', - 41 => 'http://wiki.media-box.net/documentation/flash/textfield/{FNAME}', - 42 => 'http://wiki.media-box.net/documentation/flash/textformat/{FNAME}', - 43 => 'http://wiki.media-box.net/documentation/flash/textsnapshot/{FNAME}', - 44 => 'http://wiki.media-box.net/documentation/flash/tween/{FNAME}', - 45 => 'http://wiki.media-box.net/documentation/flash/video/{FNAME}', - 46 => 'http://wiki.media-box.net/documentation/flash/xml/{FNAME}', - 47 => 'http://wiki.media-box.net/documentation/flash/xmlsocket/{FNAME}', - 48 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 49 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 50 => 'http://wiki.media-box.net/documentation/flash/system/capabilities', - 51 => 'http://wiki.media-box.net/documentation/flash/system/security', - 52 => 'http://wiki.media-box.net/documentation/flash/textfield/stylesheet' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array(), - 'HIGHLIGHT_STRICT_BLOCK' => array() -); - -?> diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php deleted file mode 100644 index b07be48a1..000000000 --- a/inc/geshi/cobol.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php -/************************************************************************************* - * cobol.php - * ---------- - * Author: BenBE (BenBE@omorphia.org) - * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) - * Release Version: 1.0.8.11 - * Date Started: 2007/07/02 - * - * COBOL language file for GeSHi. - * - * CHANGES - * ------- - * - * TODO (updated 2007/07/02) - * ------------------------- - * - ************************************************************************************* - * - * This file is part of GeSHi. - * - * GeSHi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GeSHi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GeSHi; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - ************************************************************************************/ - -$language_data = array ( - 'LANG_NAME' => 'COBOL', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array(), - 'COMMENT_REGEXP' => array(1 => '/^\*.*?$/m'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"', "'"), - 'ESCAPE_CHAR' => '\\', - 'NUMBERS' => - GESHI_NUMBER_INT_BASIC | - GESHI_NUMBER_FLT_NONSCI | - GESHI_NUMBER_FLT_SCI_SHORT | - GESHI_NUMBER_FLT_SCI_ZERO, - 'KEYWORDS' => array( - 1 => array( //Compiler Directives - 'ANSI', 'BLANK', 'NOBLANK', 'CALL-SHARED', 'CANCEL', 'NOCANCEL', - 'CHECK', 'CODE', 'NOCODE', 'COLUMNS', 'COMPACT', 'NOCOMPACT', - 'COMPILE', 'CONSULT', 'NOCONSULT', 'CROSSREF', 'NOCROSSREF', - 'DIAGNOSE-74', 'NODIAGNOSE-74', 'DIAGNOSE-85', 'NODIAGNOSE-85', - 'DIAGNOSEALL', 'NODIAGNOSEALL', 'ENDIF', 'ENDUNIT', 'ENV', - 'ERRORFILE', 'ERRORS', 'FIPS', 'NOFIPS', 'FMAP', 'HEADING', 'HEAP', - 'HIGHPIN', 'HIGHREQUESTERS', 'ICODE', 'NOICODE', 'IF', 'IFNOT', - 'INNERLIST', 'NOINNERLIST', 'INSPECT', 'NOINSPECT', 'LARGEDATA', - 'LD', 'LESS-CODE', 'LIBRARY', 'LINES', 'LIST', 'NOLIST', 'LMAP', - 'NOLMAP', 'MAIN', 'MAP', 'NOMAP', 'NLD', 'NONSTOP', 'NON-SHARED', - 'OPTIMIZE', 'PERFORM-TRACE', 'PORT', 'NOPORT', 'RESETTOG', - 'RUNNABLE', 'RUNNAMED', 'SAVE', 'SAVEABEND', 'NOSAVEABEND', - 'SEARCH', 'NOSEARCH', 'SECTION', 'SETTOG', 'SHARED', 'SHOWCOPY', - 'NOSHOWCOPY', 'SHOWFILE', 'NOSHOWFILE', 'SOURCE', 'SQL', 'NOSQL', - 'SQLMEM', 'SUBSET', 'SUBTYPE', 'SUPPRESS', 'NOSUPPRESS', 'SYMBOLS', - 'NOSYMBOLS', 'SYNTAX', 'TANDEM', 'TRAP2', 'NOTRAP2', 'TRAP2-74', - 'NOTRAP2-74', 'UL', 'WARN', 'NOWARN' - ), - 2 => array( //Statement Keywords - 'ACCEPT', 'ADD', 'TO', 'GIVING', 'CORRESPONDING', 'ALTER', 'CALL', - 'CHECKPOINT', 'CLOSE', 'COMPUTE', 'CONTINUE', 'COPY', - 'DELETE', 'DISPLAY', 'DIVIDE', 'INTO', 'REMAINDER', 'ENTER', - 'COBOL', 'EVALUATE', 'EXIT', 'GO', 'INITIALIZE', - 'TALLYING', 'REPLACING', 'CONVERTING', 'LOCKFILE', 'MERGE', 'MOVE', - 'MULTIPLY', 'OPEN', 'PERFORM', 'TIMES', - 'UNTIL', 'VARYING', 'RETURN', - ), - 3 => array( //Reserved in some contexts - 'ACCESS', 'ADDRESS', 'ADVANCING', 'AFTER', 'ALL', - 'ALPHABET', 'ALPHABETIC', 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER', - 'ALPHANUMERIC', 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE', - 'AND', 'ANY', 'APPROXIMATE', 'AREA', 'AREAS', 'ASCENDING', 'ASSIGN', - 'AT', 'AUTHOR', 'BEFORE', 'BINARY', 'BLOCK', 'BOTTOM', 'BY', - 'CD', 'CF', 'CH', 'CHARACTER', 'CHARACTERS', - 'CHARACTER-SET', 'CLASS', 'CLOCK-UNITS', - 'CODE-SET', 'COLLATING', 'COLUMN', 'COMMA', - 'COMMON', 'COMMUNICATION', 'COMP', 'COMP-3', 'COMP-5', - 'COMPUTATIONAL', 'COMPUTATIONAL-3', 'COMPUTATIONAL-5', - 'CONFIGURATION', 'CONTAINS', 'CONTENT', 'CONTROL', - 'CONTROLS', 'CORR', 'COUNT', - 'CURRENCY', 'DATA', 'DATE', 'DATE-COMPILED', 'DATE-WRITTEN', 'DAY', - 'DAY-OF-WEEK', 'DE', 'DEBUG-CONTENTS', 'DEBUG-ITEM', 'DEBUG-LINE', - 'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL-POINT', - 'DECLARATIVES', 'DEBUG-NAME', 'DEBUG-SUB-1', 'DELIMITED', - 'DELIMITER', 'DEPENDING', 'DESCENDING', 'DESTINATION', 'DETAIL', - 'DISABLE', 'DIVISION', 'DOWN', 'DUPLICATES', - 'DYNAMIC', 'EGI', 'ELSE', 'EMI', 'ENABLE', 'END', 'END-ADD', - 'END-COMPUTE', 'END-DELETE', 'END-DIVIDE', 'END-EVALUATE', 'END-IF', - 'END-MULTIPLY', 'END-OF-PAGE', 'END-PERFORM', 'END-READ', - 'END-RECEIVE', 'END-RETURN', 'END-REWRITE', 'END-SEARCH', - 'END-START', 'END-STRING', 'END-SUBTRACT', 'END-UNSTRING', - 'END-WRITE', 'EOP', 'EQUAL', 'ERROR', 'ESI', - 'EVERY', 'EXCEPTION', 'EXCLUSIVE', 'EXTEND', - 'EXTENDED-STORAGE', 'EXTERNAL', 'FALSE', 'FD', 'FILE', - 'FILE-CONTROL', 'FILLER', 'FINAL', 'FIRST', 'FOOTING', 'FOR', - 'FROM', 'FUNCTION', 'GENERATE', 'GENERIC', 'GLOBAL', - 'GREATER', 'GROUP', 'GUARDIAN-ERR', 'HIGH-VALUE', - 'HIGH-VALUES', 'I-O', 'I-O-CONTROL', 'IDENTIFICATION', 'IN', - 'INDEX', 'INDEXED', 'INDICATE', 'INITIAL', 'INITIATE', - 'INPUT', 'INPUT-OUTPUT', 'INSTALLATION', - 'INVALID', 'IS', 'JUST', 'JUSTIFIED', 'KEY', 'LABEL', 'LAST', - 'LEADING', 'LEFT', 'LESS', 'LIMIT', 'LIMITS', 'LINAGE', - 'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINKAGE', 'LOCK', - 'LOW-VALUE', 'LOW-VALUES', 'MEMORY', 'MESSAGE', - 'MODE', 'MODULES', 'MULTIPLE', 'NATIVE', - 'NEGATIVE', 'NEXT', 'NO', 'NOT', 'NULL', 'NULLS', 'NUMBER', - 'NUMERIC', 'NUMERIC-EDITED', 'OBJECT-COMPUTER', 'OCCURS', 'OF', - 'OFF', 'OMITTED', 'ON', 'OPTIONAL', 'OR', 'ORDER', - 'ORGANIZATION', 'OTHER', 'OUTPUT', 'OVERFLOW', 'PACKED-DECIMAL', - 'PADDING', 'PAGE', 'PAGE-COUNTER', 'PF', 'PH', 'PIC', - 'PICTURE', 'PLUS', 'POINTER', 'POSITION', 'POSITIVE', 'PRINTING', - 'PROCEDURE', 'PROCEDURES', 'PROCEED', 'PROGRAM', 'PROGRAM-ID', - 'PROGRAM-STATUS', 'PROGRAM-STATUS-1', 'PROGRAM-STATUS-2', 'PROMPT', - 'PROTECTED', 'PURGE', 'QUEUE', 'QUOTE', 'QUOTES', 'RD', - 'RECEIVE', 'RECEIVE-CONTROL', 'RECORD', 'RECORDS', - 'REDEFINES', 'REEL', 'REFERENCE', 'REFERENCES', 'RELATIVE', - 'REMOVAL', 'RENAMES', 'REPLACE', - 'REPLY', 'REPORT', 'REPORTING', 'REPORTS', 'RERUN', - 'RESERVE', 'RESET', 'REVERSED', 'REWIND', 'REWRITE', 'RF', - 'RH', 'RIGHT', 'ROUNDED', 'RUN', 'SAME', 'SD', - 'SECURITY', 'SEGMENT', 'SEGMENT-LIMIT', 'SELECT', 'SEND', - 'SENTENCE', 'SEPARATE', 'SEQUENCE', 'SEQUENTIAL', 'SET', - 'SIGN', 'SIZE', 'SORT', 'SORT-MERGE', 'SOURCE-COMPUTER', - 'SPACE', 'SPACES', 'SPECIAL-NAMES', 'STANDARD', 'STANDARD-1', - 'STANDARD-2', 'START', 'STARTBACKUP', 'STATUS', 'STOP', 'STRING', - 'SUB-QUEUE-1', 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBTRACT', - 'SYMBOLIC', 'SYNC', 'SYNCDEPTH', 'SYNCHRONIZED', - 'TABLE', 'TAL', 'TAPE', 'TERMINAL', 'TERMINATE', 'TEST', - 'TEXT', 'THAN', 'THEN', 'THROUGH', 'THRU', 'TIME', - 'TOP', 'TRAILING', 'TRUE', 'TYPE', 'UNIT', 'UNLOCK', 'UNLOCKFILE', - 'UNLOCKRECORD', 'UNSTRING', 'UP', 'UPON', 'USAGE', 'USE', - 'USING', 'VALUE', 'VALUES', 'WHEN', 'WITH', 'WORDS', - 'WORKING-STORAGE', 'WRITE', 'ZERO', 'ZEROES' - ), - 4 => array( //Standard functions - 'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'CHAR', 'COS', 'CURRENT-DATE', - 'DATE-OF-INTEGER', 'DAY-OF-INTEGER', 'FACTORIAL', 'INTEGER', - 'INTEGER-OF-DATE', 'INTEGER-OF-DAY', 'INTEGER-PART', 'LENGTH', - 'LOG', 'LOG10', 'LOWER-CASE', 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE', - 'MIN', 'MOD', 'NUMVAL', 'NUMVAL-C', 'ORD', 'ORD-MAX', 'ORD-MIN', - 'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', 'SIN', 'SQRT', - 'STANDARD-DEVIATION', 'SUM', 'TAN', 'UPPER-CASE', 'VARIANCE', - 'WHEN-COMPILED' - ), - 5 => array( //Privileged Built-in Functions - '#IN', '#OUT', '#TERM', '#TEMP', '#DYNAMIC', 'COBOL85^ARMTRAP', - 'COBOL85^COMPLETION', 'COBOL_COMPLETION_', 'COBOL_CONTROL_', - 'COBOL_GETENV_', 'COBOL_PUTENV_', 'COBOL85^RETURN^SORT^ERRORS', - 'COBOL_RETURN_SORT_ERRORS_', 'COBOL85^REWIND^SEQUENTIAL', - 'COBOL_REWIND_SEQUENTIAL_', 'COBOL85^SET^SORT^PARAM^TEXT', - 'COBOL_SET_SORT_PARAM_TEXT_', 'COBOL85^SET^SORT^PARAM^VALUE', - 'COBOL_SET_SORT_PARAM_VALUE_', 'COBOL_SET_MAX_RECORD_', - 'COBOL_SETMODE_', 'COBOL85^SPECIAL^OPEN', 'COBOL_SPECIAL_OPEN_', - 'COBOLASSIGN', 'COBOL_ASSIGN_', 'COBOLFILEINFO', 'COBOL_FILE_INFO_', - 'COBOLSPOOLOPEN', 'CREATEPROCESS', 'ALTERPARAMTEXT', - 'CHECKLOGICALNAME', 'CHECKMESSAGE', 'DELETEASSIGN', 'DELETEPARAM', - 'DELETESTARTUP', 'GETASSIGNTEXT', 'GETASSIGNVALUE', 'GETBACKUPCPU', - 'GETPARAMTEXT', 'GETSTARTUPTEXT', 'PUTASSIGNTEXT', 'PUTASSIGNVALUE', - 'PUTPARAMTEXT', 'PUTSTARTUPTEXT' - ) - ), - 'SYMBOLS' => array( - //Avoid having - in identifiers marked as symbols - ' + ', ' - ', ' * ', ' / ', ' ** ', - '.', ',', - '=', - '(', ')', '[', ']' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #000080; font-weight: bold;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #008000; font-weight: bold;', - 4 => 'color: #000080;', - 5 => 'color: #008000;', - ), - 'COMMENTS' => array( - 1 => 'color: #a0a0a0; font-style: italic;', - 'MULTI' => 'color: #a0a0a0; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #339933;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #993399;' - ), - 'METHODS' => array( - 1 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #000066;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ), - 'TAB_WIDTH' => 4 - ); - -?> diff --git a/inc/geshi/parigp.php b/inc/geshi/parigp.php deleted file mode 100644 index c9c73095b..000000000 --- a/inc/geshi/parigp.php +++ /dev/null @@ -1,277 +0,0 @@ -<?php -/************************************************************************************* - * parigp.php - * -------- - * Author: Charles R Greathouse IV (charles@crg4.com) - * Copyright: 2011 Charles R Greathouse IV (http://math.crg4.com/) - * Release Version: 1.0.8.11 - * Date Started: 2011/05/11 - * - * PARI/GP language file for GeSHi. - * - * CHANGES - * ------- - * 2011/07/09 (1.0.8.11) - * - First Release - * - * TODO (updated 2011/07/09) - * ------------------------- - * - * - ************************************************************************************* - * - * This file is part of GeSHi. - * - * GeSHi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GeSHi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GeSHi; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - ************************************************************************************/ - -$language_data = array( - 'LANG_NAME' => 'PARI/GP', - 'COMMENT_SINGLE' => array(1 => '\\\\'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'NUMBERS' => array( - # Integers - 1 => GESHI_NUMBER_INT_BASIC, - # Reals - 2 => GESHI_NUMBER_FLT_SCI_ZERO - ), - 'KEYWORDS' => array( - 1 => array( - 'addprimes','bestappr','bezout','bezoutres','bigomega','binomial', - 'chinese','content','contfrac','contfracpnqn','core','coredisc', - 'dirdiv','direuler','dirmul','divisors','eulerphi','factor', - 'factorback','factorcantor','factorff','factorial','factorint', - 'factormod','ffgen','ffinit','fflog','fforder','ffprimroot', - 'fibonacci','gcd','hilbert','isfundamental','ispower','isprime', - 'ispseudoprime','issquare','issquarefree','kronecker','lcm', - 'moebius','nextprime','numbpart','numdiv','omega','partitions', - 'polrootsff','precprime','prime','primepi','primes','qfbclassno', - 'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw', - 'qfbprimeform','qfbred','qfbsolve','quadclassunit','quaddisc', - 'quadgen','quadhilbert','quadpoly','quadray','quadregulator', - 'quadunit','removeprimes','sigma','sqrtint','stirling', - 'sumdedekind','zncoppersmith','znlog','znorder','znprimroot', - 'znstar','Col','List','Mat','Mod','Pol','Polrev','Qfb','Ser','Set', - 'Str','Strchr','Strexpand','Strtex','Vec','Vecrev','Vecsmall', - 'binary','bitand','bitneg','bitnegimply','bitor','bittest','bitxor', - 'ceil','centerlift','component','conj','conjvec','denominator', - 'floor','frac','imag','length','lift','norm','norml2','numerator', - 'numtoperm','padicprec','permtonum','precision','random','real', - 'round','simplify','sizebyte','sizedigit','truncate','valuation', - 'variable','ellL1','elladd','ellak','ellan','ellanalyticrank', - 'ellap','ellbil','ellchangecurve','ellchangepoint','ellconvertname', - 'elldivpol','elleisnum','elleta','ellgenerators','ellglobalred', - 'ellgroup','ellheight','ellheightmatrix','ellidentify','ellinit', - 'ellisoncurve','ellj','elllocalred','elllog','elllseries', - 'ellminimalmodel','ellmodulareqn','ellorder','ellordinate', - 'ellpointtoz','ellpow','ellrootno','ellsearch','ellsigma','ellsub', - 'elltaniyama','elltatepairing','elltors','ellweilpairing','ellwp', - 'ellzeta','ellztopoint','bnfcertify','bnfcompress', - 'bnfdecodemodule','bnfinit','bnfisintnorm','bnfisnorm', - 'bnfisprincipal','bnfissunit','bnfisunit','bnfnarrow','bnfsignunit', - 'bnfsunit','bnrL1','bnrclassno','bnrclassnolist','bnrconductor', - 'bnrconductorofchar','bnrdisc','bnrdisclist','bnrinit', - 'bnrisconductor','bnrisprincipal','bnrrootnumber','bnrstark', - 'dirzetak','factornf','galoisexport','galoisfixedfield', - 'galoisgetpol','galoisidentify','galoisinit','galoisisabelian', - 'galoisisnormal','galoispermtopol','galoissubcyclo', - 'galoissubfields','galoissubgroups','idealadd','idealaddtoone', - 'idealappr','idealchinese','idealcoprime','idealdiv','idealfactor', - 'idealfactorback','idealfrobenius','idealhnf','idealintersect', - 'idealinv','ideallist','ideallistarch','ideallog','idealmin', - 'idealmul','idealnorm','idealpow','idealprimedec','idealramgroups', - 'idealred','idealstar','idealtwoelt','idealval','matalgtobasis', - 'matbasistoalg','modreverse','newtonpoly','nfalgtobasis','nfbasis', - 'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv', - 'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul', - 'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr', - 'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor', - 'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj', - 'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl', - 'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots', - 'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','polcompositum', - 'polgalois','polred','polredabs','polredord','poltschirnhaus', - 'rnfalgtobasis','rnfbasis','rnfbasistoalg','rnfcharpoly', - 'rnfconductor','rnfdedekind','rnfdet','rnfdisc','rnfeltabstorel', - 'rnfeltdown','rnfeltreltoabs','rnfeltup','rnfequation', - 'rnfhnfbasis','rnfidealabstorel','rnfidealdown','rnfidealhnf', - 'rnfidealmul','rnfidealnormabs','rnfidealnormrel', - 'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit', - 'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer', - 'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs', - 'rnfpseudobasis','rnfsteinitz','subgrouplist','zetak','zetakinit', - 'plot','plotbox','plotclip','plotcolor','plotcopy','plotcursor', - 'plotdraw','ploth','plothraw','plothsizes','plotinit','plotkill', - 'plotlines','plotlinetype','plotmove','plotpoints','plotpointsize', - 'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline', - 'plotrmove','plotrpoint','plotscale','plotstring','psdraw', - 'psploth','psplothraw','O','deriv','diffop','eval','factorpadic', - 'intformal','padicappr','padicfields','polchebyshev','polcoeff', - 'polcyclo','poldegree','poldisc','poldiscreduced','polhensellift', - 'polhermite','polinterpolate','polisirreducible','pollead', - 'pollegendre','polrecip','polresultant','polroots','polrootsmod', - 'polrootspadic','polsturm','polsubcyclo','polsylvestermatrix', - 'polsym','poltchebi','polzagier','serconvol','serlaplace', - 'serreverse','subst','substpol','substvec','taylor','thue', - 'thueinit','break','for','fordiv','forell','forprime','forstep', - 'forsubgroup','forvec','if','next','return','until','while', - 'Strprintf','addhelp','alarm','alias','allocatemem','apply', - 'default','error','extern','externstr','getheap','getrand', - 'getstack','gettime','global','input','install','kill','print1', - 'print','printf','printtex','quit','read','readvec','select', - 'setrand','system','trap','type','version','warning','whatnow', - 'write1','write','writebin','writetex','divrem','lex','max','min', - 'shift','shiftmul','sign','vecmax','vecmin','derivnum','intcirc', - 'intfouriercos','intfourierexp','intfouriersin','intfuncinit', - 'intlaplaceinv','intmellininv','intmellininvshort','intnum', - 'intnuminit','intnuminitgen','intnumromb','intnumstep','prod', - 'prodeuler','prodinf','solve','sum','sumalt','sumdiv','suminf', - 'sumnum','sumnumalt','sumnuminit','sumpos','Euler','I','Pi','abs', - 'acos','acosh','agm','arg','asin','asinh','atan','atanh','bernfrac', - 'bernreal','bernvec','besselh1','besselh2','besseli','besselj', - 'besseljh','besselk','besseln','cos','cosh','cotan','dilog','eint1', - 'erfc','eta','exp','gamma','gammah','hyperu','incgam','incgamc', - 'lngamma','log','polylog','psi','sin','sinh','sqr','sqrt','sqrtn', - 'tan','tanh','teichmuller','theta','thetanullk','weber','zeta', - 'algdep','charpoly','concat','lindep','listcreate','listinsert', - 'listkill','listpop','listput','listsort','matadjoint', - 'matcompanion','matdet','matdetint','matdiagonal','mateigen', - 'matfrobenius','mathess','mathilbert','mathnf','mathnfmod', - 'mathnfmodid','matid','matimage','matimagecompl','matindexrank', - 'matintersect','matinverseimage','matisdiagonal','matker', - 'matkerint','matmuldiagonal','matmultodiagonal','matpascal', - 'matrank','matrix','matrixqz','matsize','matsnf','matsolve', - 'matsolvemod','matsupplement','mattranspose','minpoly','qfgaussred', - 'qfjacobi','qflll','qflllgram','qfminim','qfperfection','qfrep', - 'qfsign','setintersect','setisset','setminus','setsearch','cmp', - 'setunion','trace','vecextract','vecsort','vector','vectorsmall', - 'vectorv','ellheegner' - ), - - 2 => array( - 'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol', - 'vecsmall','vec','list','str','genstr','gen','typ' - ), - - 3 => array( - 'TeXstyle','breakloop','colors','compatible','datadir','debug', - 'debugfiles','debugmem','echo','factor_add_primes','factor_proven', - 'format','graphcolormap','graphcolors','help','histfile','histsize', - 'lines','linewrap',/*'log',*/'logfile','new_galois_format','output', - 'parisize','path','prettyprinter','primelimit','prompt_cont', - 'prompt','psfile','readline','realprecision','recover','secure', - 'seriesprecision',/*'simplify',*/'strictmatch','timer' - ), - - 4 => array( - 'alarmer','archer','errpile','gdiver','impl','syntaxer','invmoder', - 'overflower','talker','typeer','user' - ) - ), - 'SYMBOLS' => array( - 1 => array( - '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\'' - ) - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true, - 2 => true, - 3 => true, - 4 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff;', - 2 => 'color: #e07022;', - 3 => 'color: #00d2d2;', - 4 => 'color: #00d2d2;' - ), - 'COMMENTS' => array( - 1 => 'color: #008000;', - 'MULTI' => 'color: #008000;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #111111; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #002222;' - ), - 'STRINGS' => array( - 0 => 'color: #800080;' - ), - 'NUMBERS' => array( - 0 => 'color: #666666;', - 1 => 'color: #666666;', - 2 => 'color: #666666;' - ), - 'METHODS' => array( - 0 => 'color: #004000;' - ), - 'SYMBOLS' => array( - 1 => 'color: #339933;' - ), - 'REGEXPS' => array( - 0 => 'color: #e07022', # Should be the same as keyword group 2 - 1 => 'color: #555555' - ), - 'SCRIPT' => array() - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - 0 => array( # types marked on variables - GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE))"', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '"', - GESHI_AFTER => '"' - ), - 1 => array( # literal variables - GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - 2 => array( - '[a-zA-Z][a-zA-Z0-9_]*:' => '' - ), - 3 => array( - 'default(' => '' - ), - 4 => array( - 'trap(' => '' - ), - ), - 'HIGHLIGHT_STRICT_BLOCK' => array() -); - -?> diff --git a/inc/load.php b/inc/load.php index 18786dc79..daf856188 100644 --- a/inc/load.php +++ b/inc/load.php @@ -70,7 +70,6 @@ function load_autoload($name){ 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', 'IXR_IntrospectionServer' => DOKU_INC.'inc/IXR_Library.php', 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', - 'GeSHi' => DOKU_INC.'inc/geshi.php', 'Tar' => DOKU_INC.'inc/Tar.class.php', 'TarLib' => DOKU_INC.'inc/TarLib.class.php', 'ZipLib' => DOKU_INC.'inc/ZipLib.class.php', diff --git a/inc/parserutils.php b/inc/parserutils.php index 17c331ef5..8650f974f 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -746,14 +746,13 @@ function p_xhtml_cached_geshi($code, $language, $wrapper='pre') { $cache = getCacheName($language.$code,".code"); $ctime = @filemtime($cache); if($ctime && !$INPUT->bool('purge') && - $ctime > filemtime(DOKU_INC.'inc/geshi.php') && // geshi changed - $ctime > @filemtime(DOKU_INC.'inc/geshi/'.$language.'.php') && // language syntax definition changed + $ctime > filemtime(DOKU_INC.'vendor/composer/installed.json') && // libraries changed $ctime > filemtime(reset($config_cascade['main']['default']))){ // dokuwiki changed $highlighted_code = io_readFile($cache, false); } else { - $geshi = new GeSHi($code, $language, DOKU_INC . 'inc/geshi'); + $geshi = new GeSHi($code, $language); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); $geshi->set_header_type(GESHI_HEADER_PRE); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 7a91153b0..63b550c32 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'GeSHi' => $vendorDir . '/easybook/geshi/geshi.php', ); diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 769865f79..a9eb3f9ee 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -47,5 +47,53 @@ "unzip", "zip" ] + }, + { + "name": "easybook/geshi", + "version": "v1.0.8.14", + "version_normalized": "1.0.8.14", + "source": { + "type": "git", + "url": "https://github.com/easybook/geshi.git", + "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8", + "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8", + "shasum": "" + }, + "require": { + "php": ">4.3.0" + }, + "time": "2015-04-15 13:21:45", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + }, + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + } + ], + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": [ + "highlight", + "highlighter", + "syntax" + ] } ] diff --git a/vendor/easybook/geshi/README.md b/vendor/easybook/geshi/README.md new file mode 100644 index 000000000..0a12d08bb --- /dev/null +++ b/vendor/easybook/geshi/README.md @@ -0,0 +1,10 @@ +# GeSHi - Generic Syntax Highlighter # + +This repository has been created just to be able to install GeSHi as a Composer +package. Technically it's a port of the GeSHi project code found on SourceForge: +http://sourceforge.net/projects/geshi/ + +Differences from the official SourceForge repository: + + * 11/may/2014: added `sass.php` file to highlight Sass stylesheets. + * 28/sep/2012: added `twig.php` file to highlight Twig templates. diff --git a/vendor/easybook/geshi/composer.json b/vendor/easybook/geshi/composer.json new file mode 100644 index 000000000..33494664c --- /dev/null +++ b/vendor/easybook/geshi/composer.json @@ -0,0 +1,24 @@ +{ + "name": "easybook/geshi", + "type": "library", + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": ["highlighter", "highlight", "syntax"], + "license": "GPL-2.0", + "authors": [ + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + }, + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + } + ], + "require": { + "php": ">4.3.0" + }, + "autoload": { + "classmap": ["./"] + } +} \ No newline at end of file diff --git a/inc/geshi.php b/vendor/easybook/geshi/geshi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi.php rename to vendor/easybook/geshi/geshi.php index c6ff9ef77..bd265af97 --- a/inc/geshi.php +++ b/vendor/easybook/geshi/geshi.php @@ -41,7 +41,7 @@ // /** The version of this GeSHi file */ -define('GESHI_VERSION', '1.0.8.11'); +define('GESHI_VERSION', '1.0.8.12'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { diff --git a/inc/geshi/4cs.php b/vendor/easybook/geshi/geshi/4cs.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/4cs.php rename to vendor/easybook/geshi/geshi/4cs.php index 5209c51e8..e5a00645c --- a/inc/geshi/4cs.php +++ b/vendor/easybook/geshi/geshi/4cs.php @@ -135,5 +135,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> \ No newline at end of file diff --git a/inc/geshi/6502acme.php b/vendor/easybook/geshi/geshi/6502acme.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502acme.php rename to vendor/easybook/geshi/geshi/6502acme.php diff --git a/inc/geshi/6502kickass.php b/vendor/easybook/geshi/geshi/6502kickass.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502kickass.php rename to vendor/easybook/geshi/geshi/6502kickass.php diff --git a/inc/geshi/6502tasm.php b/vendor/easybook/geshi/geshi/6502tasm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502tasm.php rename to vendor/easybook/geshi/geshi/6502tasm.php diff --git a/inc/geshi/68000devpac.php b/vendor/easybook/geshi/geshi/68000devpac.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/68000devpac.php rename to vendor/easybook/geshi/geshi/68000devpac.php diff --git a/inc/geshi/abap.php b/vendor/easybook/geshi/geshi/abap.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/abap.php rename to vendor/easybook/geshi/geshi/abap.php diff --git a/inc/geshi/actionscript.php b/vendor/easybook/geshi/geshi/actionscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/actionscript.php rename to vendor/easybook/geshi/geshi/actionscript.php diff --git a/inc/geshi/actionscript3.php b/vendor/easybook/geshi/geshi/actionscript3.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/actionscript3.php rename to vendor/easybook/geshi/geshi/actionscript3.php diff --git a/inc/geshi/ada.php b/vendor/easybook/geshi/geshi/ada.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ada.php rename to vendor/easybook/geshi/geshi/ada.php diff --git a/vendor/easybook/geshi/geshi/aimms.php b/vendor/easybook/geshi/geshi/aimms.php new file mode 100644 index 000000000..f46bdd0bc --- /dev/null +++ b/vendor/easybook/geshi/geshi/aimms.php @@ -0,0 +1,316 @@ +<?php +/************************************************************************************* + * aimms.php + * -------- + * Author: Guido Diepen (guido.diepen@aimms.com) + * Copyright: (c) 2011 Guido Diepen (http://www.aimms.com) + * Release Version: 1.0.8.12 + * Date Started: 2011/05/05 + * + * AIMMS language file for GeSHi. + * + * CHANGES + * ------- + * 2004/07/14 (1.0.0) + * - First Release + * + * TODO (updated 2004/07/14) + * ------------------------- + * * Make sure the last few function I may have missed + * (like eval()) are included for highlighting + * * Split to several files - php4, php5 etc + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'AIMMS3', + 'COMMENT_SINGLE' => array(1 => '!'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'", "\\"), + 'HARDCHAR' => "\\", + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'if', 'then', 'else', 'endif', 'elseif', 'for', 'do', 'while' , 'endfor' , 'endwhile', 'break', 'switch', 'endswitch', + 'display', 'return', 'in', 'apply' + + ), + 2 => array( + 'main model' , 'declaration section', 'procedure', 'endprocedure', 'endmodel', 'endsection' , 'set', 'parameter', + 'string parameter', 'element parameter', 'quantity' + ), + 3 => array( + 'identifier', 'index', 'index domain', 'body' + ), + 4 => array( + 'ActiveCard','Card','ConvertUnit','DistributionCumulative','DistributionDensity','DistributionDeviation', + 'DistributionInverseCumulative','DistributionInverseDensity','DistributionKurtosis','DistributionMean', + 'DistributionSkewness','DistributionVariance','Element','EvaluateUnit','First','FormatString','Last', + 'Ord','Unit','Val','Aggregate','AttributeToString','CaseCompareIdentifier','CaseCreateDifferenceFile', + 'CloseDataSource','CreateTimeTable','ConstraintVariables','ConvertReferenceDate','CloneElement', + 'FindNthString','FindReplaceNthString','FindReplaceStrings','FindString','StringOccurrences', + 'CurrentToMoment','CurrentToString','CurrentToTimeSlot','DaylightsavingEndDate','DaylightsavingStartDate', + 'DeclaredSubset','DomainIndex','IndexRange','IsRunningAsViewer','ListingFileCopy','ListingFileDelete', + 'DirectoryGetFiles','DirectoryGetSubdirectories','DirectSQL','Disaggregate','ElementCast','ElementRange', + 'EnvironmentGetString','EnvironmentSetString','errh::Adapt','errh::Attribute','errh::Category', + 'errh::Code','errh::Column','errh::CreationTime','errh::Filename','errh::InsideCategory', + 'errh::IsMarkedAsHandled','errh::Line','errh::MarkAsHandled','errh::Message','errh::Multiplicity', + 'errh::Node','errh::NumberOfLocations','errh::Severity','ExcelAddNewSheet','ExcelAssignParameter', + 'ExcelAssignSet','ExcelAssignTable','ExcelAssignValue','ExcelClearRange','ExcelCloseWorkbook', + 'ExcelColumnName','ExcelColumnNumber','ExcelCopyRange','ExcelCreateWorkbook','ExcelDeleteSheet', + 'ExcelPrint','ExcelRetrieveParameter','ExcelRetrieveSet','ExcelRetrieveTable','ExcelRetrieveValue', + 'ExcelRunMacro','ExcelSaveWorkbook','ExcelSetActiveSheet','ExcelSetUpdateLinksBehavior', + 'ExcelSetVisibility','FindUsedElements','GenerateCUT','GMP::Coefficient::Get', + 'GMP::Coefficient::GetQuadratic','GMP::Coefficient::Set','GMP::Coefficient::SetQuadratic', + 'GMP::Column::Add','GMP::Column::Delete','GMP::Column::Freeze','GMP::Column::GetLowerbound', + 'GMP::Column::GetScale','GMP::Column::GetStatus','GMP::Column::GetType','GMP::Column::GetUpperbound', + 'GMP::Column::SetAsObjective','GMP::Column::SetLowerbound','GMP::Column::SetType', + 'GMP::Column::SetUpperbound','GMP::Column::Unfreeze','GMP::Instance::AddIntegerEliminationRows', + 'GMP::Instance::CalculateSubGradient','GMP::Instance::Copy','GMP::Instance::CreateDual', + 'GMP::Instance::CreateMasterMip','GMP::Instance::CreatePresolved', + 'GMP::SolverSession::CreateProgressCategory','GMP::Instance::CreateProgressCategory', + 'GMP::Instance::CreateSolverSession','GMP::Stochastic::CreateBendersRootproblem', + 'GMP::Instance::Delete','GMP::Instance::DeleteIntegerEliminationRows', + 'GMP::Instance::DeleteSolverSession','GMP::Instance::FindApproximatelyFeasibleSolution', + 'GMP::Instance::FixColumns','GMP::Instance::Generate','GMP::Instance::GenerateRobustCounterpart', + 'GMP::Instance::GenerateStochasticProgram','GMP::SolverSession::GetCallbackInterruptStatus', + 'GMP::SolverSession::WaitForCompletion','GMP::SolverSession::WaitForSingleCompletion', + 'GMP::SolverSession::ExecutionStatus','GMP::Instance::GetDirection','GMP::Instance::GetLinearObjective', + 'GMP::Instance::GetMathematicalProgrammingType','GMP::Instance::GetMemoryUsed', + 'GMP::Instance::GetNumberOfColumns','GMP::Instance::GetNumberOfIndicatorRows', + 'GMP::Instance::GetNumberOfIntegerColumns','GMP::Instance::GetNumberOfNonlinearColumns', + 'GMP::Instance::GetNumberOfNonlinearNonzeros','GMP::Instance::GetNumberOfNonlinearRows', + 'GMP::Instance::GetNumberOfNonzeros','GMP::Instance::GetNumberOfRows', + 'GMP::Instance::GetNumberOfSOS1Rows','GMP::Instance::GetNumberOfSOS2Rows', + 'GMP::Instance::GetObjective','GMP::Instance::GetOptionValue','GMP::Instance::GetSolver', + 'GMP::Instance::GetSymbolicMathematicalProgram','GMP::Instance::MemoryStatistics', + 'GMP::Instance::Rename','GMP::Instance::SetCallbackAddCut','GMP::Instance::SetCallbackBranch', + 'GMP::Instance::SetCallbackHeuristic','GMP::Instance::SetCallbackIncumbent', + 'GMP::Instance::SetCallbackIterations','GMP::Instance::SetCallbackNewIncumbent', + 'GMP::Instance::SetCallbackStatusChange','GMP::Instance::SetCutoff','GMP::Instance::SetDirection', + 'GMP::Instance::SetMathematicalProgrammingType','GMP::Instance::SetSolver','GMP::Instance::Solve', + 'GMP::Stochastic::GetObjectiveBound','GMP::Stochastic::GetRelativeWeight', + 'GMP::Stochastic::GetRepresentativeScenario','GMP::Stochastic::UpdateBendersSubproblem', + 'GMP::Linearization::Add','GMP::Linearization::AddSingle','GMP::Linearization::Delete', + 'GMP::Linearization::GetDeviation','GMP::Linearization::GetDeviationBound', + 'GMP::Linearization::GetLagrangeMultiplier','GMP::Linearization::GetType', + 'GMP::Linearization::GetWeight','GMP::Linearization::RemoveDeviation', + 'GMP::Linearization::SetDeviationBound','GMP::Linearization::SetType', + 'GMP::Linearization::SetWeight','GMP::ProgressWindow::DeleteCategory', + 'GMP::ProgressWindow::DisplayLine','GMP::ProgressWindow::DisplayProgramStatus', + 'GMP::ProgressWindow::DisplaySolver','GMP::ProgressWindow::DisplaySolverStatus', + 'GMP::ProgressWindow::FreezeLine','GMP::ProgressWindow::UnfreezeLine', + 'GMP::QuadraticCoefficient::Get','GMP::QuadraticCoefficient::Set','GMP::Row::Activate', + 'GMP::Stochastic::AddBendersFeasibilityCut','GMP::Stochastic::AddBendersOptimalityCut', + 'GMP::Stochastic::BendersFindFeasibilityReference','GMP::Stochastic::MergeSolution', + 'GMP::Row::Add','GMP::Row::Deactivate','GMP::Row::Delete','GMP::Row::DeleteIndicatorCondition', + 'GMP::Row::Generate','GMP::Row::GetConvex','GMP::Row::GetIndicatorColumn', + 'GMP::Row::GetIndicatorCondition','GMP::Row::GetLeftHandSide','GMP::Row::GetRelaxationOnly', + 'GMP::Row::GetRightHandSide','GMP::Row::GetScale','GMP::Row::GetStatus','GMP::Row::GetType', + 'GMP::Row::SetConvex','GMP::Row::SetIndicatorCondition','GMP::Row::SetLeftHandSide', + 'GMP::Row::SetRelaxationOnly','GMP::Row::SetRightHandSide','GMP::Row::SetType', + 'GMP::Solution::Check','GMP::Solution::Copy','GMP::Solution::Count','GMP::Solution::Delete', + 'GMP::Solution::DeleteAll','GMP::Solution::GetColumnValue','GMP::Solution::GetCPUSecondsUsed', + 'GMP::Solution::GetDistance','GMP::Solution::GetFirstOrderDerivative', + 'GMP::Solution::GetIterationsUsed','GMP::Solution::GetNodesUsed','GMP::Solution::GetLinearObjective', + 'GMP::Solution::GetMemoryUsed','GMP::Solution::GetObjective','GMP::Solution::GetPenalizedObjective', + 'GMP::Solution::GetProgramStatus','GMP::Solution::GetRowValue','GMP::Solution::GetSolutionsSet', + 'GMP::Solution::GetSolverStatus','GMP::Solution::IsDualDegenerated','GMP::Solution::IsInteger', + 'GMP::Solution::IsPrimalDegenerated','GMP::Solution::SetMIPStartFlag','GMP::Solution::Move', + 'GMP::Solution::RandomlyGenerate','GMP::Solution::RetrieveFromModel', + 'GMP::Solution::RetrieveFromSolverSession','GMP::Solution::SendToModel', + 'GMP::Solution::SendToModelSelection','GMP::Solution::SendToSolverSession', + 'GMP::Solution::SetIterationCount','GMP::Solution::SetProgramStatus','GMP::Solution::SetSolverStatus', + 'GMP::Solution::UpdatePenaltyWeights','GMP::Solution::ConstructMean', + 'GMP::SolverSession::AsynchronousExecute','GMP::SolverSession::Execute', + 'GMP::SolverSession::Interrupt','GMP::SolverSession::AddLinearization', + 'GMP::SolverSession::GenerateBranchLowerBound','GMP::SolverSession::GenerateBranchUpperBound', + 'GMP::SolverSession::GenerateBranchRow','GMP::SolverSession::GenerateCut', + 'GMP::SolverSession::GenerateBinaryEliminationRow','GMP::SolverSession::GetCPUSecondsUsed', + 'GMP::SolverSession::GetHost','GMP::SolverSession::GetInstance', + 'GMP::SolverSession::GetIterationsUsed','GMP::SolverSession::GetNodesLeft', + 'GMP::SolverSession::GetNodesUsed','GMP::SolverSession::GetNodeNumber', + 'GMP::SolverSession::GetNodeObjective','GMP::SolverSession::GetNumberOfBranchNodes', + 'GMP::SolverSession::GetLinearObjective','GMP::SolverSession::GetMemoryUsed', + 'GMP::SolverSession::GetObjective','GMP::SolverSession::GetOptionValue', + 'GMP::SolverSession::GetProgramStatus','GMP::SolverSession::GetSolver', + 'GMP::SolverSession::GetSolverStatus','GMP::SolverSession::RejectIncumbent', + 'GMP::Event::Create','GMP::Event::Delete','GMP::Event::Reset','GMP::Event::Set', + 'GMP::SolverSession::SetObjective','GMP::SolverSession::SetOptionValue', + 'GMP::Instance::SetCPUSecondsLimit','GMP::Instance::SetIterationLimit', + 'GMP::Instance::SetMemoryLimit','GMP::Instance::SetOptionValue','GMP::Tuning::SolveSingleMPS', + 'GMP::Tuning::TuneMultipleMPS','GMP::Tuning::TuneSingleGMP', + 'GMP::Solver::GetAsynchronousSessionsLimit','GMP::Robust::EvaluateAdjustableVariables', + 'GenerateXML','GetDatasourceProperty','ReadGeneratedXML','ReadXML','ReferencedIdentifiers', + 'WriteXML','IdentifierAttributes','IdentifierDimension','IsRuntimeIdentifier','IdentifierMemory', + 'IdentifierMemoryStatistics','IdentifierText','IdentifierType','IdentifierUnit','ScalarValue', + 'SectionIdentifiers','SubRange','MemoryInUse','CommitTransaction','RollbackTransaction', + 'MemoryStatistics','me::AllowedAttribute','me::ChangeType','me::ChangeTypeAllowed','me::Children', + 'me::ChildTypeAllowed','me::Compile','me::Create','me::CreateLibrary','me::Delete','me::ExportNode', + 'me::GetAttribute','me::ImportLibrary','me::ImportNode','me::IsRunnable','me::Move','me::Parent', + 'me::Rename','me::SetAttribute','MomentToString','MomentToTimeSlot','OptionGetValue', + 'OptionGetKeywords','OptionGetString','OptionSetString','OptionSetValue','PeriodToString', + 'ProfilerContinue','ProfilerPause','ProfilerRestart','RestoreInactiveElements', + 'RetrieveCurrentVariableValues','SetAddRecursive','SetElementAdd','SetElementRename', + 'SQLColumnData','SQLCreateConnectionString','SQLDriverName','SQLNumberOfColumns', + 'SQLNumberOfDrivers','SQLNumberOfTables','SQLNumberOfViews','SQLTableName','SQLViewName', + 'StartTransaction','StringToElement','StringToMoment','StringToTimeSlot','TestDatabaseColumn', + 'TestDatabaseTable','TestDataSource','TestDate','TimeslotCharacteristic','TimeslotToMoment', + 'TimeslotToString','TimeZoneOffset','VariableConstraints','PageOpen','PageOpenSingle','PageClose', + 'PageGetActive','PageSetFocus','PageGetFocus','PageSetCursor','PageRefreshAll','PageGetChild', + 'PageGetParent','PageGetNext','PageGetPrevious','PageGetNextInTreeWalk','PageGetUsedIdentifiers', + 'PageGetTitle','PageGetAll','PageCopyTableToClipboard','PageCopyTableToExcel','PrintPage', + 'PrintPageCount','PrintStartReport','PrintEndReport','PivotTableReloadState','PivotTableSaveState', + 'PivotTableDeleteState','FileSelect','FileSelectNew','FileDelete','FileExists','FileCopy', + 'FileMove','FileView','FileEdit','FilePrint','FileTime','FileTouch','FileAppend','FileGetSize', + 'DirectorySelect','DirectoryCreate','DirectoryDelete','DirectoryExists','DirectoryCopy', + 'DirectoryMove','DirectoryGetCurrent','DialogProgress','DialogMessage','DialogError', + 'StatusMessage','DialogAsk','DialogGetString','DialogGetDate','DialogGetNumber','DialogGetElement', + 'DialogGetElementByText','DialogGetElementByData','DialogGetPassword','DialogGetColor','CaseNew', + 'CaseFind','CaseCreate','CaseLoadCurrent','CaseMerge','CaseLoadIntoCurrent','CaseSelect', + 'CaseSelectNew','CaseSetCurrent','CaseSave','CaseSaveAll','CaseSaveAs','CaseSelectMultiple', + 'CaseGetChangedStatus','CaseSetChangedStatus','CaseDelete','CaseGetType','CaseGetDatasetReference', + 'CaseWriteToSingleFile','CaseReadFromSingleFile','DatasetNew','DatasetFind','DatasetCreate', + 'DatasetLoadCurrent','DatasetMerge','DatasetLoadIntoCurrent','DatasetSelect','DatasetSelectNew', + 'DatasetSetCurrent','DatasetSave','DatasetSaveAll','DatasetSaveAs','DatasetGetChangedStatus', + 'DatasetSetChangedStatus','DatasetDelete','DatasetGetCategory','DataFileGetName', + 'DataFileGetAcronym','DataFileSetAcronym','DataFileGetComment','DataFileSetComment', + 'DataFileGetPath','DataFileGetTime','DataFileGetOwner','DataFileGetGroup','DataFileReadPermitted', + 'DataFileWritePermitted','DataFileExists','DataFileCopy','DataCategoryContents','CaseTypeContents', + 'CaseTypeCategories','Execute','OpenDocument','TestInternetConnection','GeoFindCoordinates', + 'ShowHelpTopic','Delay','ScheduleAt','ExitAimms','SessionArgument','SessionHasVisibleGUI', + 'ProjectDeveloperMode','DebuggerBreakpoint','ShowProgressWindow','ShowMessageWindow', + 'SolverGetControl','SolverReleaseControl','ProfilerStart','DataManagerImport','DataManagerExport', + 'DataManagerFileNew','DataManagerFileOpen','DataManagerFileGetCurrent','DataImport220', + 'SecurityGetUsers','SecurityGetGroups','UserColorAdd','UserColorDelete','UserColorGetRGB', + 'UserColorModify','LicenseNumber','LicenseType','LicenseStartDate','LicenseExpirationDate', + 'LicenseMaintenanceExpirationDate','VARLicenseExpirationDate','AimmsRevisionString', + 'VARLicenseCreate','HistogramCreate','HistogramDelete','HistogramSetDomain', + 'HistogramAddObservation','HistogramGetFrequencies','HistogramGetBounds', + 'HistogramGetObservationCount','HistogramGetAverage','HistogramGetDeviation', + 'HistogramGetSkewness','HistogramGetKurtosis','DateDifferenceDays','DateDifferenceYearFraction', + 'PriceFractional','PriceDecimal','RateEffective','RateNominal','DepreciationLinearLife', + 'DepreciationLinearRate','DepreciationNonLinearSumOfYear','DepreciationNonLinearLife', + 'DepreciationNonLinearFactor','DepreciationNonLinearRate','DepreciationSum', + 'InvestmentConstantPresentValue','InvestmentConstantFutureValue', + 'InvestmentConstantPeriodicPayment','InvestmentConstantInterestPayment', + 'InvestmentConstantPrincipalPayment','InvestmentConstantCumulativePrincipalPayment', + 'InvestmentConstantCumulativeInterestPayment','InvestmentConstantNumberPeriods', + 'InvestmentConstantRateAll','InvestmentConstantRate','InvestmentVariablePresentValue', + 'InvestmentVariablePresentValueInperiodic','InvestmentSingleFutureValue', + 'InvestmentVariableInternalRateReturnAll','InvestmentVariableInternalRateReturn', + 'InvestmentVariableInternalRateReturnInperiodicAll','InvestmentVariableInternalRateReturnInperiodic', + 'InvestmentVariableInternalRateReturnModified','SecurityDiscountedPrice', + 'SecurityDiscountedRedemption','SecurityDiscountedYield','SecurityDiscountedRate', + 'TreasuryBillPrice','TreasuryBillYield','TreasuryBillBondEquivalent','SecurityMaturityPrice', + 'SecurityMaturityCouponRate','SecurityMaturityYield','SecurityMaturityAccruedInterest', + 'SecurityCouponNumber','SecurityCouponPreviousDate','SecurityCouponNextDate','SecurityCouponDays', + 'SecurityCouponDaysPreSettlement','SecurityCouponDaysPostSettlement','SecurityPeriodicPrice', + 'SecurityPeriodicRedemption','SecurityPeriodicCouponRate','SecurityPeriodicYieldAll', + 'SecurityPeriodicYield','SecurityPeriodicAccruedInterest','SecurityPeriodicDuration', + 'SecurityPeriodicDurationModified','Abs','AtomicUnit','Ceil','Character','CharacterNumber','Cube', + 'Degrees','Div','Exp','FileRead','Floor','Log','Log10','Mapval','Max','Min','Mod','Power', + 'Radians','Round','Sign','Sqr','Sqrt','StringCapitalize','StringLength','StringToLower', + 'StringToUnit','StringToUpper','SubString','Trunc','Binomial','NegativeBinomial','Poisson', + 'Geometric','HyperGeometric','Uniform','Normal','LogNormal','Triangular','Exponential','Weibull', + 'Beta','Gamma','Logistic','Pareto','ExtremeValue','Precision','Factorial','Combination', + 'Permutation','Errorf','Cos','Sin','Tan','ArcCos','ArcSin','ArcTan','Cosh','Sinh','Tanh', + 'ArcCosh','ArcSinh','ArcTanh' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')', '[', ']', '{', '}', + '%', '&', '|', '/', + '<', '>', '>=' , '<=', ':=', + '=', '-', '+', '*', + '.', ',' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #404040;', + 4 => 'color: #990000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #808080; font-style: italic ', + 'HARD' => 'color: #808080; font-style: italic' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + ), + 'COMMENTS' => array( + 1 => 'color: #008000; font-style: italic;', + 'MULTI' => 'color: #008000; font-style: italic;' + ), + + 'METHODS' => array( + 1 => 'color: #004000;', + 2 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'ESCAPE_CHAR' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/algol68.php b/vendor/easybook/geshi/geshi/algol68.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/algol68.php rename to vendor/easybook/geshi/geshi/algol68.php diff --git a/inc/geshi/apache.php b/vendor/easybook/geshi/geshi/apache.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/apache.php rename to vendor/easybook/geshi/geshi/apache.php diff --git a/inc/geshi/applescript.php b/vendor/easybook/geshi/geshi/applescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/applescript.php rename to vendor/easybook/geshi/geshi/applescript.php diff --git a/inc/geshi/apt_sources.php b/vendor/easybook/geshi/geshi/apt_sources.php old mode 100644 new mode 100755 similarity index 86% rename from inc/geshi/apt_sources.php rename to vendor/easybook/geshi/geshi/apt_sources.php index 9f1ed045e..979d10ce9 --- a/inc/geshi/apt_sources.php +++ b/vendor/easybook/geshi/geshi/apt_sources.php @@ -55,7 +55,7 @@ $language_data = array ( 'stable/updates', //Debian 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge', - 'etch', 'lenny', 'wheezy', 'sid', + 'etch', 'lenny', 'wheezy', 'jessie', 'sid', //Ubuntu 'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports', 'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports', @@ -69,7 +69,14 @@ $language_data = array ( 'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports', 'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports', 'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports', - 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports' + 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports', + 'natty', 'natty-updates', 'natty-security', 'natty-proposed', 'natty-backports', + 'oneiric', 'oneiric-updates', 'oneiric-security', 'oneiric-proposed', 'oneiric-backports', + 'precise', 'precise-updates', 'precise-security', 'precise-proposed', 'precise-backports', + 'quantal', 'quantal-updates', 'quantal-security', 'quantal-proposed', 'quantal-backports', + 'raring', 'raring-updates', 'raring-security', 'raring-proposed', 'raring-backports', + 'saucy', 'saucy-updates', 'saucy-security', 'saucy-proposed', 'saucy-backports', + 'trusty', 'trusty-updates', 'trusty-security', 'trusty-proposed', 'trusty-backports' ), 3 => array( 'main', 'restricted', 'preview', 'contrib', 'non-free', diff --git a/inc/geshi/arm.php b/vendor/easybook/geshi/geshi/arm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/arm.php rename to vendor/easybook/geshi/geshi/arm.php diff --git a/inc/geshi/asm.php b/vendor/easybook/geshi/geshi/asm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/asm.php rename to vendor/easybook/geshi/geshi/asm.php diff --git a/inc/geshi/asp.php b/vendor/easybook/geshi/geshi/asp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/asp.php rename to vendor/easybook/geshi/geshi/asp.php diff --git a/inc/geshi/asymptote.php b/vendor/easybook/geshi/geshi/asymptote.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/asymptote.php rename to vendor/easybook/geshi/geshi/asymptote.php index 8683588e5..295cb0a56 --- a/inc/geshi/asymptote.php +++ b/vendor/easybook/geshi/geshi/asymptote.php @@ -190,5 +190,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/autoconf.php b/vendor/easybook/geshi/geshi/autoconf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autoconf.php rename to vendor/easybook/geshi/geshi/autoconf.php diff --git a/inc/geshi/autohotkey.php b/vendor/easybook/geshi/geshi/autohotkey.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autohotkey.php rename to vendor/easybook/geshi/geshi/autohotkey.php diff --git a/inc/geshi/autoit.php b/vendor/easybook/geshi/geshi/autoit.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autoit.php rename to vendor/easybook/geshi/geshi/autoit.php diff --git a/inc/geshi/avisynth.php b/vendor/easybook/geshi/geshi/avisynth.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/avisynth.php rename to vendor/easybook/geshi/geshi/avisynth.php diff --git a/inc/geshi/awk.php b/vendor/easybook/geshi/geshi/awk.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/awk.php rename to vendor/easybook/geshi/geshi/awk.php index 1ec239b70..46fe49f87 --- a/inc/geshi/awk.php +++ b/vendor/easybook/geshi/geshi/awk.php @@ -154,5 +154,3 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array (), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/bascomavr.php b/vendor/easybook/geshi/geshi/bascomavr.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bascomavr.php rename to vendor/easybook/geshi/geshi/bascomavr.php diff --git a/inc/geshi/bash.php b/vendor/easybook/geshi/geshi/bash.php old mode 100644 new mode 100755 similarity index 88% rename from inc/geshi/bash.php rename to vendor/easybook/geshi/geshi/bash.php index c69f0054f..eba70028b --- a/inc/geshi/bash.php +++ b/vendor/easybook/geshi/geshi/bash.php @@ -132,7 +132,16 @@ $language_data = array ( 'apt-src remove', 'apt-src update', 'apt-src upgrade', 'apt-src version', - 'basename', 'bash', 'bc', 'bison', 'bunzip2', 'bzcat', + 'aptitude autoclean', 'aptitude build-dep', 'aptitude changelog', + 'aptitude clean', 'aptitude download', 'aptitude forbid-version', + 'aptitude forget-new', 'aptitude full-upgrade', 'aptitude hold', + 'aptitude install', 'aptitude markauto', 'aptitude purge', + 'aptitude reinstall', 'aptitude remove', 'aptitude safe-upgrade', + 'aptitude search', 'aptitude show', 'aptitude unhold', + 'aptitude unmarkauto', 'aptitude update', 'aptitude versions', + 'aptitude why', 'aptitude why-not', + + 'basename', 'bash', 'batctl', 'bc', 'bison', 'bunzip2', 'bzcat', 'bzcmp', 'bzdiff', 'bzegrep', 'bzfgrep', 'bzgrep', 'bzip2', 'bzip2recover', 'bzless', 'bzmore', @@ -247,14 +256,14 @@ $language_data = array ( 'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe', 'git-write-tree', 'gitxgrep', - 'head', 'hexdump', 'hostname', + 'head', 'hexdump', 'hostname', 'htop', 'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install', 'ip', 'ip addr', 'ip addrlabel', 'ip link', 'ip maddr', 'ip mroute', 'ip neigh', 'ip route', 'ip rule', 'ip tunnel', 'ip xfrm', - 'join', + 'jar', 'java', 'javac', 'join', 'kbd_mode','kbdrate', 'kdialog', 'kfile', 'kill', 'killall', @@ -271,10 +280,11 @@ $language_data = array ( 'od', 'openvt', - 'passwd', 'patch', 'pcregrep', 'pcretest', 'perl', 'perror', - 'pgawk', 'pidof', 'ping', 'pr', 'procmail', 'prune', 'ps', 'pstree', - 'ps2ascii', 'ps2epsi', 'ps2frag', 'ps2pdf', 'ps2ps', 'psbook', - 'psmerge', 'psnup', 'psresize', 'psselect', 'pstops', + 'passwd', 'patch', 'pbzip2', 'pcregrep', 'pcretest', 'perl', + 'perror', 'pgawk', 'pidof', 'pigz', 'ping', 'pr', 'procmail', + 'prune', 'ps', 'pstree', 'ps2ascii', 'ps2epsi', 'ps2frag', + 'ps2pdf', 'ps2ps', 'psbook', 'psmerge', 'psnup', 'psresize', + 'psselect', 'pstops', 'rbash', 'rcs', 'rcs2log', 'read', 'readlink', 'red', 'resizecons', 'rev', 'rm', 'rmdir', 'rsh', 'run-parts', @@ -283,7 +293,7 @@ $language_data = array ( 'setkeycodes', 'setleds', 'setmetamode', 'setserial', 'setterm', 'sh', 'showkey', 'shred', 'size', 'size86', 'skill', 'sleep', 'slogin', 'snice', 'sort', 'sox', 'split', 'ssed', 'ssh', 'ssh-add', - 'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'stat', 'strace', + 'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'sshfs', 'stat', 'strace', 'strings', 'strip', 'stty', 'su', 'sudo', 'suidperl', 'sum', 'svn', 'svnadmin', 'svndumpfilter', 'svnlook', 'svnmerge', 'svnmucc', 'svnserve', 'svnshell', 'svnsync', 'svnversion', 'svnwrap', 'sync', @@ -291,16 +301,40 @@ $language_data = array ( 'svn add', 'svn ann', 'svn annotate', 'svn blame', 'svn cat', 'svn changelist', 'svn checkout', 'svn ci', 'svn cl', 'svn cleanup', 'svn co', 'svn commit', 'svn copy', 'svn cp', 'svn del', - 'svn delete', 'svn di', 'svn diff', 'svn export', 'svn h', - 'svn help', 'svn import', 'svn info', 'svn list', 'svn lock', - 'svn log', 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', - 'svn move', 'svn mv', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit', + 'svn delete', 'svn di', 'svn diff', 'svn export', 'svn help', + 'svn import', 'svn info', 'svn list', 'svn lock', 'svn log', + 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', 'svn move', + 'svn mv', 'svn patch', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit', 'svn pg', 'svn pget', 'svn pl', 'svn plist', 'svn praise', 'svn propdel', 'svn propedit', 'svn propget', 'svn proplist', - 'svn propset', 'svn ps', 'svn pset', 'svn remove', 'svn ren', + 'svn propset', 'svn ps', 'svn pset', 'svn relocate', 'svn remove', 'svn rename', 'svn resolve', 'svn resolved', 'svn revert', 'svn rm', 'svn st', 'svn stat', 'svn status', 'svn sw', 'svn switch', - 'svn unlock', 'svn up', 'svn update', + 'svn unlock', 'svn up', 'svn update', 'svn upgrade', + + 'svnadmin crashtest', 'svnadmin create', 'svnadmin deltify', + 'svnadmin dump', 'svnadmin help', 'svnadmin hotcopy', + 'svnadmin list-dblogs', 'svnadmin list-unused-dblogs', + 'svnadmin load', 'svnadmin lslocks', 'svnadmin lstxns', + 'svnadmin pack', 'svnadmin recover', 'svnadmin rmlocks', + 'svnadmin rmtxns', 'svnadmin setlog', 'svnadmin setrevprop', + 'svnadmin setuuid', 'svnadmin upgrade', 'svnadmin verify', + + 'svndumpfilter exclude', 'svndumpfilter help', + 'svndumpfilter include', + + 'svnlook author', 'svnlook cat', 'svnlook changed', 'svnlook date', + 'svnlook diff', 'svnlook dirs-changed', 'svnlook filesize', + 'svnlook help', 'svnlook history', 'svnlook info', 'svnlook lock', + 'svnlook log', 'svnlook pg', 'svnlook pget', 'svnlook pl', + 'svnlook plist', 'svnlook propget', 'svnlook proplist', + 'svnlook tree', 'svnlook uuid', 'svnlook youngest', + + 'svnrdump dump', 'svnrdump help', 'svnrdump load', + + 'svnsync copy-revprops', 'svnsync help', 'svnsync info', + 'svnsync init', 'svnsync initialize', 'svnsync sync', + 'svnsync synchronize', 'tac', 'tail', 'tar', 'tee', 'tempfile', 'touch', 'tr', 'tree', 'true', diff --git a/inc/geshi/basic4gl.php b/vendor/easybook/geshi/geshi/basic4gl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/basic4gl.php rename to vendor/easybook/geshi/geshi/basic4gl.php index 35c927406..112fb6967 --- a/inc/geshi/basic4gl.php +++ b/vendor/easybook/geshi/geshi/basic4gl.php @@ -337,5 +337,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/vendor/easybook/geshi/geshi/batch.php b/vendor/easybook/geshi/geshi/batch.php new file mode 100644 index 000000000..7d1ca635b --- /dev/null +++ b/vendor/easybook/geshi/geshi/batch.php @@ -0,0 +1,138 @@ +<?php +/************************************************************************************* + * batch.php + * ------------ + * Author: FraidZZ ( fraidzz [@] bk.ru ) + * Copyright: (c) 2015 FraidZZ ( http://vk.com/fraidzz , http://www.cyberforum.ru/members/340557.html ) + * Release Version: 1.0.8.11 + * Date Started: 2015/03/28 + * + * Windows batch file language file for GeSHi. + * + ************************************************************************************* + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Windows Batch file', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 100 => '/(?:^|[&|])\\s*(?:rem|::)[^\\n]*/msi', + 101 => '/[\\/-]\\S*/si', + 102 => '/^\s*:[^:]\\S*/msi', + 103 => '/(?:([%!])[^"\'~ ][^"\' ]*\\1|%%?(?:~[dpnxsatz]*)?[^"\'])/si' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + 100 => '/(?:([%!])\\S+\\1|%%(?:~[dpnxsatz]*)?[^"\'])/si' + ), + 'KEYWORDS' => array( + 1 => array( + 'echo', 'set', 'for', 'if', 'exit', 'else', 'do', 'not', 'defined', 'exist' + ), + 2 => array( + "ASSOC", "ATTRIB", "BREAK", "BCDEDIT", "CACLS", "CD", + "CHCP", "CHDIR", "CHKDSK", "CHKNTFS", "CLS", "CMD", "COLOR", + "COMP", "COMPACT", "CONVERT", "COPY", "DATE", "DEL", "DIR", + "DISKCOMP", "DISKCOPY", "DISKPART", "DOSKEY", "DRIVERQUERY", "ECHO", "ENDLOCAL", + "ERASE", "EXIT", "FC", "FIND", "FINDSTR", "FOR", "FORMAT", + "FSUTIL", "FTYPE", "GPRESULT", "GRAFTABL", "HELP", "ICACLS", + "IF", "LABEL", "MD", "MKDIR", "MKLINK", "MODE", "MORE", + "MOVE", "OPENFILES", "PATH", "PAUSE", "POPD", "PRINT", "PROMPT", + "PUSHD", "RD", "RECOVER", "REN", "RENAME", "REPLACE", "RMDIR", + "ROBOCOPY", "SET", "SETLOCAL", "SC", "SCHTASKS", "SHIFT", "SHUTDOWN", + "SORT", "START", "SUBST", "SYSTEMINFO", "TASKLIST", "TASKKILL", "TIME", + "TITLE", "TREE", "TYPE", "VER", "VERIFY", "VOL", "XCOPY", + "WMIC", "CSCRIPT" + ), + 3 => array( + "enabledelayedexpansion", "enableextensions" + ) + ), + 'SYMBOLS' => array( + '(', ')', '+', '-', '~', '^', '@', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #800080; font-weight: bold;', + 2 => 'color: #0080FF; font-weight: bold;', + 3 => 'color: #0000FF; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #888888;', + 2 => 'color: #FF1010; font-weight: bold;', + 101 => 'color: #44aa44; font-weight: bold;', + 100 => 'color: #888888;', + 102 => 'color: #990000; font-weight: bold;', + 103 => 'color: #000099; font-weight: bold;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 100 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #44aa44; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #990000; font-weight: bold', + 1 => 'color: #800080; font-weight: bold;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array(), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "((?:goto|call)\\s*)(\\S+)", + GESHI_REPLACE => "\\2", + GESHI_BEFORE => "\\1", + GESHI_MODIFIERS => "si", + GESHI_AFTER => "" + ) , + 1 => "goto|call" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); diff --git a/inc/geshi/bf.php b/vendor/easybook/geshi/geshi/bf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bf.php rename to vendor/easybook/geshi/geshi/bf.php diff --git a/inc/geshi/bibtex.php b/vendor/easybook/geshi/geshi/bibtex.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bibtex.php rename to vendor/easybook/geshi/geshi/bibtex.php diff --git a/inc/geshi/blitzbasic.php b/vendor/easybook/geshi/geshi/blitzbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/blitzbasic.php rename to vendor/easybook/geshi/geshi/blitzbasic.php index 1d3c08d05..c90f45bfa --- a/inc/geshi/blitzbasic.php +++ b/vendor/easybook/geshi/geshi/blitzbasic.php @@ -181,5 +181,3 @@ $language_data = array ( 1 => false ) ); - -?> diff --git a/inc/geshi/bnf.php b/vendor/easybook/geshi/geshi/bnf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bnf.php rename to vendor/easybook/geshi/geshi/bnf.php diff --git a/inc/geshi/boo.php b/vendor/easybook/geshi/geshi/boo.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/boo.php rename to vendor/easybook/geshi/geshi/boo.php index b68d442f7..15944f42a --- a/inc/geshi/boo.php +++ b/vendor/easybook/geshi/geshi/boo.php @@ -213,5 +213,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/c.php b/vendor/easybook/geshi/geshi/c.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c.php rename to vendor/easybook/geshi/geshi/c.php diff --git a/inc/geshi/c_loadrunner.php b/vendor/easybook/geshi/geshi/c_loadrunner.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c_loadrunner.php rename to vendor/easybook/geshi/geshi/c_loadrunner.php diff --git a/inc/geshi/c_mac.php b/vendor/easybook/geshi/geshi/c_mac.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c_mac.php rename to vendor/easybook/geshi/geshi/c_mac.php diff --git a/vendor/easybook/geshi/geshi/c_winapi.php b/vendor/easybook/geshi/geshi/c_winapi.php new file mode 100644 index 000000000..1252e7b92 --- /dev/null +++ b/vendor/easybook/geshi/geshi/c_winapi.php @@ -0,0 +1,870 @@ +<?php +/************************************************************************************* + * c_winapi.php + * ----- + * Author: Benny Baumann (BenBE@geshi.org) + * Contributors: + * - Jack Lloyd (lloyd@randombit.net) + * - Michael Mol (mikemol@gmail.com) + * Copyright: (c) 2012 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.11 + * Date Started: 2012/08/12 + * + * C (WinAPI) language file for GeSHi. + * + * CHANGES + * ------- + * 2009/01/22 (1.0.8.3) + * - Made keywords case-sensitive. + * 2008/05/23 (1.0.7.22) + * - Added description of extra language features (SF#1970248) + * 2004/XX/XX (1.0.4) + * - Added a couple of new keywords (Jack Lloyd) + * 2004/11/27 (1.0.3) + * - Added support for multiple object splitters + * 2004/10/27 (1.0.2) + * - Added support for URLs + * 2004/08/05 (1.0.1) + * - Added support for symbols + * 2004/07/14 (1.0.0) + * - First Release + * + * TODO (updated 2009/02/08) + * ------------------------- + * - Get a list of inbuilt functions to add (and explore C more + * to complete this rather bare language file + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'C (WinAPI)', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'if', 'return', 'while', 'case', 'continue', 'default', + 'do', 'else', 'for', 'switch', 'goto' + ), + 2 => array( + 'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline' + ), + 3 => array( + // assert.h + 'assert', + + //complex.h + 'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan', + 'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj', + 'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh', + + //ctype.h + 'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl', + 'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace', + 'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper', + + //inttypes.h + 'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax', + 'wcstoumax', + + //locale.h + 'localeconv', 'setlocale', + + //math.h + 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp', + 'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow', + 'sin', 'sinh', 'sqrt', 'tan', 'tanh', + + //setjmp.h + 'longjmp', 'setjmp', + + //signal.h + 'raise', + + //stdarg.h + 'va_arg', 'va_copy', 'va_end', 'va_start', + + //stddef.h + 'offsetof', + + //stdio.h + 'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc', + 'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar', + 'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell', + 'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf', + 'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf', + 'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile', + 'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf', + 'vsprintf', 'vsscanf', + + //stdlib.h + 'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch', + 'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv', + 'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod', + 'strtol', 'strtoul', 'system', + + //string.h + 'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat', + 'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror', + 'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr', + 'strspn', 'strstr', 'strtok', 'strxfrm', + + //time.h + 'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime', + 'mktime', 'strftime', 'time', + + //wchar.h + 'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide', + 'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc', + 'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf', + 'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb', + 'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn', + 'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk', + 'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok', + 'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp', + 'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf', + + //wctype.h + 'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit', + 'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace', + 'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper', + 'wctrans', 'wctype' + ), + 4 => array( + 'auto', 'char', 'const', 'double', 'float', 'int', 'long', + 'register', 'short', 'signed', 'sizeof', 'static', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t', + 'size_t', 'off_t' + ), + // Public API + 5 => array( + 'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber', + 'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA', + 'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW', + 'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess', + 'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW', + 'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess', + 'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId', + 'GetEnvironmentStringsA', 'GetEnvironmentStringsW', + 'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess', + 'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass', + 'GetProcessAffinityMask', 'GetProcessPriorityBoost', + 'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion', + 'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW', + 'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes', + 'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess', + 'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA', + 'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass', + 'SetProcessAffinityMask', 'SetProcessPriorityBoost', + 'SetProcessShutdownParameters', 'SetProcessWorkingSetSize', + 'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority', + 'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread', + 'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess', + 'TerminateThread', 'WaitForInputIdle', 'WinExec', + + '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread', + '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW', + 'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW', + 'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA', + 'DeleteFileW', 'FindClose', 'FindCloseChangeNotification', + 'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW', + 'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW', + 'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW', + 'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW', + 'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA', + 'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW', + 'GetFileInformationByHandle', 'GetFileSize', 'GetFileType', + 'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives', + 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA', + 'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW', + 'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW', + 'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile', + 'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx', + 'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW', + 'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile', + 'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA', + 'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount', + 'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile', + 'WriteFileEx', + + 'DeviceIoControl', + + 'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress', + 'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW', + 'LoadModule', + + 'GetPrivateProfileIntA', 'GetPrivateProfileIntW', + 'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA', + 'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW', + 'GetPrivateProfileStringA', 'GetPrivateProfileStringW', + 'GetPrivateProfileStructA', 'GetPrivateProfileStructW', + 'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA', + 'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW', + 'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW', + 'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW', + 'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA', + 'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW', + 'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey', + 'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW', + 'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW', + 'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA', + 'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW', + 'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW', + 'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW', + 'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA', + 'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA', + 'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW', + 'WritePrivateProfileStringA', 'WritePrivateProfileStringW', + 'WritePrivateProfileStructA', 'WritePrivateProfileStructW', + 'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA', + 'WriteProfileStringW', + + 'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW', + 'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA', + 'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList', + 'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW', + 'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce', + 'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce', + 'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce', + 'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid', + 'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted', + 'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW', + 'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW', + 'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA', + 'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW', + 'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW', + 'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity', + 'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce', + 'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx', + 'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce', + 'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW', + 'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW', + 'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA', + 'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA', + 'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW', + 'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity', + 'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl', + 'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength', + 'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo', + 'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority', + 'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA', + 'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA', + 'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser', + 'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl', + 'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl', + 'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW', + 'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW', + 'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA', + 'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', + 'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD', + 'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA', + 'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW', + 'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA', + 'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck', + 'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf', + 'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA', + 'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA', + 'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx', + 'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl', + 'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner', + 'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken', + 'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A', + 'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW', + 'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW', + 'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW', + 'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA', + 'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW', + 'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW', + 'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W', + 'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA', + 'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus', + 'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW', + 'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA', + 'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW', + 'UnlockServiceDatabase', + + 'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW', + 'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree', + 'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose', + 'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex', + 'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum', + 'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers', + 'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers', + 'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers', + 'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers', + 'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend', + 'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum', + 'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports', + 'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum', + 'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo', + 'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd', + 'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo', + 'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo', + 'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum', + 'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel', + 'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo', + 'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx', + 'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum', + 'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum', + 'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel', + 'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel', + 'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups', + 'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo', + 'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel', + 'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo', + 'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W', + 'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA', + 'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W', + 'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum', + 'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W', + 'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W', + 'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW', + 'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA', + 'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW', + 'WNetGetResourceInformationA', 'WNetGetResourceInformationW', + 'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA', + 'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA', + 'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW', + + 'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname', + 'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname', + 'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr', + 'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select', + 'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept', + 'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr', + 'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber', + 'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect', + 'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent', + 'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW', + 'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents', + 'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError', + 'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA', + 'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA', + 'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA', + 'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf', + 'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd', + 'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs', + 'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom', + 'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo', + 'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA', + 'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA', + 'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents', + 'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols', + 'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider', + 'WSCUnInstallNameSpace', + + 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit', + 'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry', + 'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory', + 'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory', + + 'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation', + + 'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow', + 'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos', + 'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint', + 'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW', + 'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows', + 'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW', + 'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect', + 'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup', + 'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow', + 'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', + 'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA', + 'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild', + 'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed', + 'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint', + 'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow', + 'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout', + 'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW', + 'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows', + 'UpdateLayeredWindow', 'WindowFromPoint', + + 'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA', + 'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA', + 'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog', + 'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt', + 'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem', + 'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA', + 'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW', + 'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt', + 'SetDlgItemTextA', 'SetDlgItemTextW', + + 'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr', + 'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr', + 'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages', + 'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags', + 'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize', + 'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock', + 'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps', + 'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock', + 'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc', + 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect', + 'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock', + 'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire', + 'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink', + + 'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW', + 'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW', + 'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW', + 'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW', + 'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW', + 'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord', + 'SetClassWord', 'SetWindowWord' + ), + // Native API + 6 => array( + 'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer', + 'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout', + 'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer', + 'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite', + 'CsrSetPriorityClass', + + 'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources', + 'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U', + 'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll', + 'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions', + 'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread', + 'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum', + + 'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort', + 'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort', + 'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort', + 'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort', + 'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort', + 'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort', + 'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort', + 'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort', + 'NtWriteRequestData', 'ZwWriteRequestData', + + 'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm', + 'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType', + 'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm', + 'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList', + 'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken', + 'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm', + 'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm', + 'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken', + 'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread', + 'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken', + 'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck', + 'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm', + 'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm', + 'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject', + 'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken', + 'NtSetSecurityObject', 'ZwSetSecurityObject', + + 'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom', + 'NtQueryInformationAtom', 'ZwQueryInformationAtom', + + 'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread', + 'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread', + 'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread', + 'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread', + 'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess', + 'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread', + 'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread', + 'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread', + 'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread', + 'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread', + 'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess', + 'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert', + 'NtYieldExecution', 'ZwYieldExecution', + + 'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64', + 'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame', + 'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection', + 'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory', + 'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64', + 'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection', + 'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection', + 'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory', + 'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory', + 'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64', + 'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64', + 'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory', + 'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection', + 'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory', + 'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64', + + 'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject', + 'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject', + 'NtQueryInformationJobObject', 'ZwQueryInformationJobObject', + 'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject', + 'ZwTerminateJobObject', + + 'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile', + 'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile', + 'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile', + 'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile', + 'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile', + 'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile', + 'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile', + 'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion', + 'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile', + 'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile', + 'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter', + 'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile', + 'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion', + 'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile', + 'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile', + 'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64', + 'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile', + 'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile', + + 'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock', + 'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce', + 'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable', + 'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce', + 'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle', + 'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize', + 'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString', + 'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact', + 'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted', + 'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace', + 'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits', + 'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong', + 'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants', + 'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared', + 'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant', + 'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString', + 'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger', + 'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray', + 'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray', + 'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD', + 'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap', + 'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer', + 'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap', + 'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess', + 'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN', + 'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment', + 'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection', + 'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue', + 'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams', + 'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable', + 'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer', + 'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U', + 'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource', + 'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide', + 'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable', + 'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties', + 'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid', + 'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString', + 'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply', + 'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap', + 'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet', + 'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits', + 'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet', + 'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString', + 'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid', + 'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce', + 'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize', + 'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U', + 'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U', + 'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags', + 'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps', + 'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName', + 'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader', + 'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString', + 'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap', + 'RtlInitializeContext', 'RtlInitializeCriticalSection', + 'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable', + 'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact', + 'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString', + 'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString', + 'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3', + 'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd', + 'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate', + 'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract', + 'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid', + 'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime', + 'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable', + 'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory', + 'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject', + 'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams', + 'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits', + 'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString', + 'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser', + 'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey', + 'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey', + 'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString', + 'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap', + 'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable', + 'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl', + 'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation', + 'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation', + 'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet', + 'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap', + 'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom', + 'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock', + 'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations', + 'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime', + 'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits', + 'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount', + 'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor', + 'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl', + 'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames', + 'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject', + 'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap', + 'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact', + 'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor', + 'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime', + 'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980', + 'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize', + 'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString', + 'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize', + 'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN', + 'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap', + 'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString', + 'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString', + 'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN', + 'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar', + 'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap', + 'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap', + 'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize', + 'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap', + 'RtlZeroMemory', + + 'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount', + 'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter', + 'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer', + 'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime', + 'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution', + 'ZwSetTimerResolution', + + 'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair', + 'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore', + 'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair', + 'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore', + 'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent', + 'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore', + 'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant', + 'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore', + 'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent', + 'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair', + 'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair', + 'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair', + 'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject', + 'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject', + 'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair', + 'NtWaitLowEventPair', 'ZwWaitLowEventPair', + + 'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject', + 'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject', + 'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject', + 'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject', + 'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject', + 'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject', + 'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject', + 'ZwSetInformationObject', + + 'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException', + 'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort', + 'ZwSetDefaultHardErrorPort', + + 'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel', + 'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel', + 'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel', + 'ZwSetContextChannel', + + 'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey', + 'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey', + 'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry', + 'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2', + 'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey', + 'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey', + 'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey', + 'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey', + 'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey', + 'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey', + + 'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile', + 'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile', + + 'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile', + 'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort', + 'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile', + 'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile', + 'NtSystemDebugControl', 'ZwSystemDebugControl', + + 'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache', + 'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer', + 'NtSetLdtEntries', 'ZwSetLdtEntries', + + 'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl', + + 'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation', + 'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency', + 'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState', + 'ZwSetThreadExecutionState', + + 'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice', + 'NtUnloadDriver', 'ZwUnloadDriver', + + 'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage', + 'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue', + 'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale', + 'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue', + 'ZwSetSystemEnvironmentValue', + + 'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize', + 'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint', + 'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher', + 'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag', + 'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId', + 'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn', + 'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile', + 'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection', + 'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation', + 'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl', + 'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize', + 'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context', + 'SaveEm87Context' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '=', '<', '>', + '!', '^', '&', '|', + '?', ':', + ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;', + 5 => 'color: #4000dd;', + 6 => 'color: #4000dd;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #339933;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html', + 4 => '', + 5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com', + 6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/caddcl.php b/vendor/easybook/geshi/geshi/caddcl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/caddcl.php rename to vendor/easybook/geshi/geshi/caddcl.php index 8b8b2f248..0135a7aec --- a/inc/geshi/caddcl.php +++ b/vendor/easybook/geshi/geshi/caddcl.php @@ -122,5 +122,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cadlisp.php b/vendor/easybook/geshi/geshi/cadlisp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cadlisp.php rename to vendor/easybook/geshi/geshi/cadlisp.php index 3fa7ead09..41d72ca27 --- a/inc/geshi/cadlisp.php +++ b/vendor/easybook/geshi/geshi/cadlisp.php @@ -182,5 +182,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cfdg.php b/vendor/easybook/geshi/geshi/cfdg.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cfdg.php rename to vendor/easybook/geshi/geshi/cfdg.php index e40963f06..eeb7c2f3d --- a/inc/geshi/cfdg.php +++ b/vendor/easybook/geshi/geshi/cfdg.php @@ -120,5 +120,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cfm.php b/vendor/easybook/geshi/geshi/cfm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cfm.php rename to vendor/easybook/geshi/geshi/cfm.php diff --git a/inc/geshi/chaiscript.php b/vendor/easybook/geshi/geshi/chaiscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/chaiscript.php rename to vendor/easybook/geshi/geshi/chaiscript.php diff --git a/vendor/easybook/geshi/geshi/chapel.php b/vendor/easybook/geshi/geshi/chapel.php new file mode 100644 index 000000000..d0e50e614 --- /dev/null +++ b/vendor/easybook/geshi/geshi/chapel.php @@ -0,0 +1,169 @@ +<?php +/************************************************************************************* + * chapel.php + * ----- + * Author: Richard Molitor (richard.molitor@student.kit.edu) + * Copyright: (c) 2013 Richard Molitor + * Release Version: 1.0.8.12 + * Date Started: 2013/06/22 + * + * Chapel language file for GeSHi. + * + * CHANGES + * ------- + * 2013/06/22 (1.0.8.12) + * - First Release + * + * TODO (updated 2013/06/22) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Chapel', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // statements + 1 => array( + 'atomic', 'begin', 'break', 'class', 'cobegin', 'coforall', + 'continue', 'do', 'else', 'export', 'extern', 'for', 'forall', 'if', + 'iter', 'inline', 'label', 'let', 'local', 'module', + 'otherwise', 'proc', 'record', 'return', 'select', 'serial', + 'then', 'use', 'var', 'when', 'where', 'while', 'yield' + ), + // literals + 2 => array( + 'nil', 'true', 'false' + ), + // built-in functions + 3 => array( + 'by', 'delete', 'dmapped', 'domain', 'enum', 'index', 'min', + 'minloc', 'max', 'maxloc', 'new', 'range', 'reduce', 'scan', + 'sparse', 'subdomain', 'sync', 'union', 'zip' + ), + // built-in types + 4 => array( + 'config', 'const', 'in', 'inout', 'opaque', 'on', 'out', 'param', + 'ref', 'single', 'type' + ), + // library types + 5 => array( + 'void', 'bool', 'int', 'uint', 'real', 'imag', 'complex', 'string', + 'locale' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '=', '<', '>', + '!', '^', '&', '|', + '?', ':', + ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + //2 => 'color: #339933;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/cil.php b/vendor/easybook/geshi/geshi/cil.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cil.php rename to vendor/easybook/geshi/geshi/cil.php index 9872e755f..a108f2498 --- a/inc/geshi/cil.php +++ b/vendor/easybook/geshi/geshi/cil.php @@ -192,5 +192,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/clojure.php b/vendor/easybook/geshi/geshi/clojure.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/clojure.php rename to vendor/easybook/geshi/geshi/clojure.php diff --git a/inc/geshi/cmake.php b/vendor/easybook/geshi/geshi/cmake.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cmake.php rename to vendor/easybook/geshi/geshi/cmake.php diff --git a/vendor/easybook/geshi/geshi/cobol.php b/vendor/easybook/geshi/geshi/cobol.php new file mode 100755 index 000000000..1280a4c7e --- /dev/null +++ b/vendor/easybook/geshi/geshi/cobol.php @@ -0,0 +1,457 @@ +<?php +/************************************************************************************* + * cobol.php + * ---------- + * Author: BenBE (BenBE@omorphia.org) + * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) + * Release Version: 1.0.8.12 + * Date Started: 2007/07/02 + * + * COBOL language file for GeSHi. + * + * Most of the compiler directives, reserved words and intrinsic functions are + * from the 2009 COBOL Draft Standard, Micro Focus, and GNU Cobol. The lists of + * these were found in the draft standard (Sections 8.9, 8.10, 8.11 and 8.12), + * Micro Focus' COBOL Language Reference and the GNU Cobol FAQ. + * + * CHANGES + * ------- + * 2013/11/17 (1.0.8.12) + * - Changed compiler directives to be handled like comments. + * - Fixed bug where keywords in identifiers were highlighted. + * 2013/08/19 (1.0.8.12) + * - Added more intrinsic functions, reserved words, and compiler directives + * from the (upcoming) standard. + * 2013/07/07 (1.0.8.12) + * - Added more reserved words, compiler directives and intrinsic functions. + * - Added modern comment syntax and corrected the other one. + * - Set OOLANG to true and added an object splitter. + * - Added extra symbols. + * - Fixed bug where scope terminators were only the statement in + * end-statement was highlighted. + * + * TODO (updated 2013/11/17) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'COBOL', + 'COMMENT_SINGLE' => array( + 1 => '*>', // COBOL 2002 inline comment + 2 => '>>' // COBOL compiler directive indicator + ), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => '/^......(\*.*?$)/m', // Fixed-form comment + 2 => '/\$SET.*/i' // MF compiler directive indicator + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '', + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_SCI_SHORT | + GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // Statements containing spaces. These are separate to other statements + // so that they are highlighted correctly. + 1 => array( + 'DELETE FILE', 'GO TO', 'NEXT SENTENCE', 'XML GENERATE', + 'XML PARSE' + ), + + 2 => array( // Other Reserved Words + '3-D', 'ABSENT', 'ABSTRACT', 'ACCESS', 'ACQUIRE', + 'ACTION', 'ACTIVE-CLASS', 'ACTIVE-X', 'ACTUAL', 'ADDRESS', + 'ADDRESS-ARRAY', 'ADDRESS-OFFSET', 'ADJUSTABLE-COLUMNS', + 'ADVANCING', 'AFP-5A', 'AFTER', 'ALIGNED', 'ALIGNMENT', 'ALL', + 'ALLOW', 'ALLOWING', 'ALPHABET', 'ALPHABETIC', + 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER', 'ALPHANUMERIC', + 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE', 'AND', 'ANY', + 'ANYCASE', + 'APPLY', 'ARE', 'AREA', 'AREAS', 'ARGUMENT-NUMBER', + 'ARGUMENT-VALUE', + 'ARITHMETIC', 'AS', 'ASCENDING', + 'ASSEMBLY-ATTRIBUTES', 'ASSIGN', 'AT', 'ATTRIBUTE', 'AUTHOR', + 'AUTO', 'AUTO-DECIMAL', 'AUTO-HYPHEN-SKIP', 'AUTO-MINIMIZE', + 'AUTO-RESIZE', 'AUTO-SKIP', 'AUTO-SPIN', 'AUTOMATIC', + 'AUTOTERMINATE', 'AWAY-FROM-ZERO', + 'AX-EVENT-LIST', 'B-AND', 'B-EXOR', 'B-LEFT', + 'B-NOT', 'B-OR', 'B-RIGHT', 'B-XOR', 'BACKGROUND-COLOR', + 'BACKGROUND-COLOUR', 'BACKGROUND-HIGH', 'BACKGROUND-LOW', + 'BACKGROUND-STANDARD', 'BACKWARD', 'BAR', 'BASED', 'BASIS', 'BEEP', + 'BEFORE', 'BEGINNING', 'BELL', 'BINARY', 'BINARY-CHAR', + 'BINARY-DOUBLE', 'BINARY-LONG', 'BINARY-SHORT', 'BIND', 'BIT', + 'BITMAP', 'BITMAP-END', 'BITMAP-HANDLE', 'BITMAP-NUMBER', + 'BITMAP-RAW-HEIGHT', 'BITMAP-RAW-WIDTH', 'BITMAP-SCALE', + 'BITMAP-START', 'BITMAP-TIMER', 'BITMAP-TRAILING', 'BITMAP-WIDTH', + 'BLANK', 'BLINK', 'BLINKING', 'BLOB', 'BLOB-FILE', 'BLOB-LOCATOR', + 'BLOCK', 'BOLD', 'BOOLEAN', 'BOTTOM', 'BOX', 'BOXED', 'BROWSING', + 'BUSY', 'BUTTONS', 'BY', 'C01', 'C02', 'C03', 'C04', + 'C05', + 'C06', 'C07', 'C08', 'C09', 'C10', 'C11', 'C12', 'CALENDAR-FONT', + 'CALLED', 'CANCEL-BUTTON', 'CAPACITY', 'CATCH', 'CBL', + 'CBL-CTR', 'CCOL', 'CD', 'CELL', 'CELL-COLOR', 'CELL-DATA', + 'CELL-FONT', 'CELL-PROTECTION', 'CELLS', 'CENTER', 'CENTERED', + 'CENTERED-HEADINGS', 'CENTURY-DATE', 'CENTURY-DAY', 'CF', 'CH', + 'CHAINING', 'CHANGED', 'CHAR-VARYING', + 'CHARACTER', + 'CHARACTERS', 'CHART', 'CHECK-BOX', 'CHECKING', 'CLASS', + 'CLASS-ATTRIBUTES', 'CLASS-CONTROL', 'CLASS-ID', 'CLASS-OBJECT', + 'CLASSIFICATION', + 'CLEAR-SELECTION', 'CLINE', 'CLINES', 'CLOB', 'CLOB-FILE', + 'CLOB-LOCATOR', 'CLOCK-UNITS', 'COBOL', 'CODE', 'CODE-SET', + 'COERCION', 'COL', 'COLLATING', 'COLORS', 'COLOUR', + 'COLOURS', 'COLS', 'COLUMN', 'COLUMN-COLOR', 'COLUMN-DIVIDERS', + 'COLUMN-FONT', 'COLUMN-HEADINGS', 'COLUMN-PROTECTION', 'COLUMNS', + 'COM-REG', 'COMBO-BOX', 'COMMA', 'COMMITMENT', 'COMMON', + 'COMMUNICATION', 'COMP', 'COMP-0', 'COMP-1', 'COMP-2', 'COMP-3', + 'COMP-4', 'COMP-5', 'COMP-6', 'COMP-X', 'COMPRESSION', + 'COMPUTATIONAL', 'COMPUTATIONAL-0', 'COMPUTATIONAL-1', + 'COMPUTATIONAL-2', 'COMPUTATIONAL-3', 'COMPUTATIONAL-4', + 'COMPUTATIONAL-5', 'COMPUTATIONAL-6', 'COMPUTATIONAL-X', + 'CONDITION-VALUE', 'CONFIGURATION', 'CONSOLE', 'CONSTANT', + 'CONSTRAIN', 'CONSTRAINTS', 'CONTAINS', 'CONTENT', + 'CONTROL', 'CONTROL-AREA', 'CONTROLS', 'CONTROLS-UNCROPPED', + 'CONVERSION', 'CONVERT', 'CONVERTING', 'COPY-SELECTION', + 'CORE-INDEX', 'CORR', 'CORRESPONDING', 'COUNT', + 'CREATING', 'CRT', 'CRT-UNDER', 'CSIZE', 'CSP', 'CURRENCY', + 'CURSOR', 'CURSOR-COL', 'CURSOR-COLOR', + 'CURSOR-FRAME-WIDTH', 'CURSOR-ROW', 'CURSOR-X', 'CURSOR-Y', + 'CUSTOM-ATTRIBUTE', 'CUSTOM-PRINT-TEMPLATE', 'CYCLE', 'CYL-INDEX', + 'CYL-OVERFLOW', 'DASHED', 'DATA', 'DATA-COLUMNS', + 'DATA-POINTER', 'DATA-TYPES', 'DATABASE-KEY', 'DATABASE-KEY-LONG', + 'DATE', 'DATE-COMPILED', 'DATE-ENTRY', 'DATE-RECORD', + 'DATE-WRITTEN', 'DAY', 'DAY-OF-WEEK', 'DBCLOB', 'DBCLOB-FILE', + 'DBCLOB-LOCATOR', 'DBCS', 'DE', 'DEBUG', 'DEBUG-CONTENTS', + 'DEBUG-ITEM', 'DEBUG-LINE', 'DEBUG-NAME', 'DEBUG-SUB-1', + 'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL', + 'DECIMAL-POINT', 'DECLARATIVES', 'DEFAULT', + 'DEFAULT-BUTTON', 'DEFAULT-FONT', 'DEFINITION', + 'DELEGATE-ID', 'DELIMITED', 'DELIMITER', 'DEPENDING', + 'DESCENDING', 'DESTINATION', 'DESTROY', 'DETAIL', 'DICTIONARY', + 'DISABLE', 'DISC', 'DISJOINING', 'DISK', 'DISP', + 'DISPLAY-1', 'DISPLAY-COLUMNS', 'DISPLAY-FORMAT', 'DISPLAY-ST', + 'DIVIDER-COLOR', 'DIVIDERS', 'DIVISION', 'DOT-DASH', + 'DOTTED', 'DOWN', 'DRAG-COLOR', 'DRAW', 'DROP', 'DROP-DOWN', + 'DROP-LIST', 'DUPLICATES', 'DYNAMIC', 'EBCDIC', 'EC', 'ECHO', 'EGCS', + 'EGI', 'EJECT', 'ELEMENTARY', 'ELSE', 'EMI', 'EMPTY-CHECK', + 'ENABLE', 'ENABLED', 'END', 'END-ACCEPT', 'END-ADD', 'END-CALL', + 'END-CHAIN', 'END-COLOR', 'END-COMPUTE', 'END-DELEGATE', + 'END-DELETE', 'END-DISPLAY', 'END-DIVIDE', 'END-EVALUATE', + 'END-IF', 'END-INVOKE', 'END-MODIFY', 'END-MOVE', 'END-MULTIPLY', + 'END-OF-PAGE', 'END-PERFORM', 'END-READ', 'END-RECEIVE', + 'END-RETURN', 'END-REWRITE', 'END-SEARCH', 'END-START', + 'END-STRING', 'END-SUBTRACT', 'END-SYNC', 'END-TRY', + 'END-UNSTRING', 'END-WAIT', 'END-WRITE', 'END-XML', 'ENDING', + 'ENGRAVED', 'ENSURE-VISIBLE', 'ENTRY-CONVENTION', + 'ENTRY-FIELD', + 'ENTRY-REASON', 'ENUM', 'ENUM-ID', 'ENVIRONMENT', + 'ENVIRONMENT-NAME', 'ENVIRONMENT-VALUE', 'EOL', 'EOP', + 'EOS', 'EQUAL', 'EQUALS', 'ERASE', 'ERROR', 'ESCAPE', + 'ESCAPE-BUTTON', 'ESI', 'EVENT', 'EVENT-LIST', + 'EVENT-POINTER', 'EVERY', 'EXCEEDS', 'EXCEPTION', + 'EXCEPTION-OBJECT', 'EXCEPTION-VALUE', 'EXCESS-3', + 'EXCLUDE-EVENT-LIST', 'EXCLUSIVE', + 'EXPAND', 'EXPANDS', 'EXTEND', 'EXTENDED', + 'EXTENDED-SEARCH', 'EXTENSION', 'EXTERNAL', 'EXTERNAL-FORM', + 'EXTERNALLY-DESCRIBED-KEY', 'FACTORY', 'FALSE', 'FD', + 'FH--FCD', 'FH--KEYDEF', 'FILE', 'FILE-CONTROL', 'FILE-ID', + 'FILE-LIMIT', 'FILE-LIMITS', 'FILE-NAME', 'FILE-POS', 'FILL-COLOR', + 'FILL-COLOR2', 'FILL-PERCENT', 'FILLER', 'FINAL', 'FINALLY', + 'FINISH-REASON', 'FIRST', 'FIXED', 'FIXED-FONT', 'FIXED-WIDTH', + 'FLAT', 'FLAT-BUTTONS', 'FLOAT-BINARY-7', 'FLOAT-BINARY-16', + 'FLOAT-BINARY-34', 'FLOAT-DECIMAL-16', 'FLOAT-DECIMAL-34', + 'FLOAT-EXTENDED', 'FLOAT-LONG', + 'FLOAT-SHORT', 'FLOATING', 'FONT', 'FOOTING', 'FOR', + 'FOREGROUND-COLOR', 'FOREGROUND-COLOUR', 'FOREVER', 'FORMAT', + 'FRAME', 'FRAMED', 'FROM', 'FULL', 'FULL-HEIGHT', + 'FUNCTION', 'FUNCTION-ID', 'FUNCTION-POINTER', 'GENERATE', + 'GET', 'GETTER', 'GIVING', 'GLOBAL', 'GO-BACK', 'GO-FORWARD', + 'GO-HOME', 'GO-SEARCH', 'GRAPHICAL', 'GREATER', 'GRID', + 'GRIP', 'GROUP', 'GROUP-USAGE', 'GROUP-VALUE', 'HANDLE', + 'HAS-CHILDREN', 'HEADING', 'HEADING-COLOR', 'HEADING-DIVIDER-COLOR', + 'HEADING-FONT', 'HEAVY', 'HEIGHT', 'HEIGHT-IN-CELLS', 'HELP-ID', + 'HIDDEN-DATA', 'HIGH', 'HIGH-COLOR', 'HIGH-VALUE', 'HIGH-VALUES', + 'HIGHLIGHT', 'HORIZONTAL', 'HOT-TRACK', 'HSCROLL', 'HSCROLL-POS', + 'I-O', 'I-O-CONTROL', 'ICON', 'ID', 'IDENTIFICATION', + 'IDENTIFIED', 'IFINITY', 'IGNORE', 'IGNORING', 'IMPLEMENTS', 'IN', + 'INDEPENDENT', 'INDEX', 'INDEXED', 'INDEXER', 'INDEXER-ID', 'INDIC', + 'INDICATE', 'INDICATOR', 'INDICATORS', 'INDIRECT', + 'INHERITING', 'INHERITS', + 'INITIAL', 'INITIALIZED', 'INPUT', + 'INPUT-OUTPUT', 'INQUIRE', 'INSERT', 'INSERT-ROWS', + 'INSERTION-INDEX', 'INSTALLATION', 'INSTANCE', + 'INTERFACE', 'INTERFACE-ID', 'INTERMEDIATE', + 'INTERNAL', 'INTO', 'INTRINSIC', + 'INVALID', 'INVOKED', 'IS', 'ITEM', 'ITEM-BOLD', + 'ITEM-ID', 'ITEM-TEXT', 'ITEM-TO-ADD', 'ITEM-TO-DELETE', + 'ITEM-TO-EMPTY', 'ITEM-VALUE', 'ITERATOR', 'ITERATOR-ID', 'J', + 'JOINED', 'JOINING', 'JUST', 'JUSTIFIED', 'KANJI', + 'KEPT', 'KEY', 'KEY-YY', 'KEYBOARD', 'LABEL', 'LABEL-OFFSET', + 'LARGE-FONT', 'LAST', 'LAST-ROW', 'LAYOUT-DATA', 'LAYOUT-MANAGER', + 'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_CURRENCY', 'LC_MESSAGES', + 'LC_MONETARY', 'LC_NUMERIC', 'LC_TIME', 'LEADING', 'LEADING-SHIFT', + 'LEAVE', 'LEFT', 'LEFT-JUSTIFY', 'LEFT-TEXT', 'LEFTLINE', + 'LENGTH-CHECK', 'LESS', 'LIMIT', 'LIMITS', 'LIN', 'LINAGE', + 'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINES', 'LINES-AT-ROOT', + 'LINK', 'LINKAGE', 'LIST', 'LIST-BOX', 'LM-RESIZE', 'LOCAL-STORAGE', + 'LOCALE', 'LOCK', 'LOCKING', 'LONG-DATE', 'LONG-VARBINARY', + 'LONG-VARCHAR', 'LOW', 'LOW-COLOR', 'LOW-VALUE', 'LOW-VALUES', + 'LOWER', 'LOWERED', 'LOWLIGHT', 'MANUAL', 'MASS-UPDATE', + 'MASTER-INDEX', 'MAX-HEIGHT', 'MAX-LINES', 'MAX-PROGRESS', + 'MAX-SIZE', 'MAX-TEXT', 'MAX-VAL', 'MAX-WIDTH', 'MDI-CHILD', + 'MDI-FRAME', 'MEDIUM-FONT', 'MEMORY', 'MENU', 'MESSAGE', + 'MESSAGES', 'METACLASS', 'METHOD', 'METHOD-ID', 'MIN-HEIGHT', + 'MIN-LINES', 'MIN-SIZE', 'MIN-VAL', 'MIN-WIDTH', 'MODAL', 'MODE', + 'MODELESS', 'MODIFIED', 'MODULES', 'MONITOR-POINTER', + 'MORE-LABELS', 'MULTILINE', + 'MUTEX-POINTER', 'NAME', 'NAMED', 'NATIONAL', + 'NATIONAL-EDITED', 'NATIVE', 'NAVIGATE-URL', 'NCHAR', + 'NEAREST-AWAY-FROM-ZERO', 'NEAREST-EVEN', 'NEAREST-TOWARD-ZERO', + 'NEGATIVE', 'NEGATIVE-INFINITY', + 'NESTED', 'NET-EVENT-LIST', 'NEW', 'NEWABLE', 'NEXT ', 'NEXT-ITEM', + 'NO', 'NO-AUTO-DEFAULT', 'NO-AUTOSEL', 'NO-BOX', 'NO-CELL-DRAG', + 'NO-CLOSE', 'NO-DIVIDERS', 'NO-ECHO', 'NO-F4', 'NO-FOCUS', + 'NO-GROUP-TAB', 'NO-KEY-LETTER', 'NO-SEARCH', 'NO-TAB', 'NO-UPDOWN', + 'NOMINAL', 'NONE', 'NORMAL', 'NOT', 'NOT-A-NUMBER', 'NOTIFY', + 'NOTIFY-CHANGE', 'NOTIFY-DBLCLICK', 'NOTIFY-SELCHANGE', + 'NSTD-REELS', 'NULL', 'NULLS', 'NUM-COL-HEADINGS', + 'NUM-ROW-HEADINGS', 'NUM-ROWS', 'NUMBER', 'NUMBERS', 'NUMERIC', + 'NUMERIC-EDITED', 'NUMERIC-FILL', 'O-FILL', 'OBJECT', + 'OBJECT-COMPUTER', 'OBJECT-ID', 'OBJECT-REFERENCE', + 'OBJECT-STORAGE', 'OCCURS', 'OF', 'OFF', 'OK-BUTTON', 'OMITTED', + 'ONLY', 'OOSTACKPTR', 'OPERATOR', 'OPERATOR-ID', + 'OPTIONAL', 'OPTIONS', 'OR', 'ORDER', 'ORGANIZATION', 'OTHER', + 'OTHERWISE', 'OUTPUT', 'OVERFLOW', 'OVERLAP-LEFT', 'OVERLAP-TOP', + 'OVERLAPPED', 'OVERLINE', 'OVERRIDE', 'PACKED-DECIMAL', + 'PADDING', 'PAGE', 'PAGE-COUNTER', 'PAGE-SETUP', 'PAGE-SIZE', + 'PAGED', 'PANEL-INDEX', 'PANEL-STYLE', 'PANEL-TEXT', 'PANEL-WIDTHS', + 'PARAGRAPH', 'PARAMS', 'PARENT', 'PARSE', 'PARTIAL', 'PASSWORD', + 'PERMANENT', 'PF', 'PH', 'PIC', 'PICTURE', 'PIXEL', + 'PIXELS', 'PLACEMENT', 'PLUS', 'POINTER', 'POP-UP', 'POSITION', + 'POSITION-SHIFT', 'POSITIONING', 'POSITIVE', 'POSITIVE-INFINITY', + 'PREFIXED', 'PREFIXING', 'PRESENT', + 'PREVIOUS', 'PRINT', 'PRINT-CONTROL', 'PRINT-NO-PROMPT', + 'PRINT-PREVIEW', 'PRINT-SWITCH', 'PRINTER', 'PRINTER-1', 'PRINTING', + 'PRIOR', 'PRIORITY', 'PRIVATE', 'PROCEDURE', 'PROCEDURE-POINTER', + 'PROCEDURES', 'PROCEED', 'PROCESS', 'PROCESSING', 'PROGRAM', + 'PROGRAM-ID', 'PROGRAM-POINTER', 'PROGRESS', 'PROHIBITED', + 'PROMPT', 'PROPERTIES', + 'PROPERTY', 'PROPERTY-ID', 'PROPERTY-VALUE', 'PROTECTED', + 'PROTOTYPE', 'PUBLIC', 'PURGE', 'PUSH-BUTTON', 'QUERY-INDEX', + 'QUEUE', 'QUOTE', 'QUOTES', 'RADIO-BUTTON', 'RAISED', + 'RAISING', 'RD', 'READ-ONLY', 'READING', + 'READY', 'RECORD', 'RECORD-DATA', 'RECORD-OVERFLOW', + 'RECORD-TO-ADD', 'RECORD-TO-DELETE', 'RECORDING', 'RECORDS', + 'RECURSIVE', 'REDEFINE', 'REDEFINES', 'REDEFINITION', 'REEL', + 'REFERENCE', 'REFERENCES', 'REFRESH', 'REGION-COLOR', 'RELATION', + 'RELATIVE', 'RELOAD', 'REMAINDER', 'REMARKS', 'REMOVAL', + 'RENAMES', 'REORG-CRITERIA', 'REPEATED', 'REPLACE', 'REPLACING', + 'REPORT', 'REPORTING', 'REPORTS', 'REPOSITORY', 'REQUIRED', + 'REPRESENTS-NOT-A-NUMBER', + 'REREAD', 'RERUN', 'RESERVE', 'RESET-GRID', 'RESET-LIST', + 'RESET-TABS', 'RESIZABLE', 'RESTRICTED', 'RESULT-SET-LOCATOR', + 'RETRY', 'RETURN-CODE', 'RETURNING', + 'REVERSE-VIDEO', 'REVERSED', 'REWIND', 'RF', 'RH', + 'RIGHT', 'RIGHT-ALIGN', 'RIGHT-JUSTIFY', 'RIMMED', + 'ROLLING', 'ROUNDED', 'ROUNDING', 'ROW-COLOR', 'ROW-COLOR-PATTERN', + 'ROW-DIVIDERS', 'ROW-FONT', 'ROW-HEADINGS', 'ROW-PROTECTION', + 'ROWID', 'RUN', 'S01', 'S02', 'S03', 'S04', 'S05', 'SAME', + 'SAVE-AS', 'SAVE-AS-NO-PROMPT', 'SCREEN', 'SCROLL', 'SCROLL-BAR', + 'SD', 'SEARCH-OPTIONS', 'SEARCH-TEXT', 'SECONDS', + 'SECTION', 'SECURE', 'SECURITY', 'SEEK', 'SEGMENT', 'SEGMENT-LIMIT', + 'SELECT-ALL', 'SELECTION-INDEX', 'SELECTION-TEXT', + 'SELECTIVE', 'SELF', 'SELF-ACT', 'SELFCLASS', 'SEMAPHORE-POINTER', + 'SEND', 'SENTENCE', 'SEPARATE', 'SEPARATION', 'SEQUENCE', + 'SEQUENTIAL', 'SETTER', 'SHADING', 'SHADOW', + 'SHARING', 'SHIFT-IN', 'SHIFT-OUT', 'SHORT-DATE', 'SHOW-LINES', + 'SHOW-NONE', 'SHOW-SEL-ALWAYS', 'SIGNED', 'SIGNED-INT', + 'SIGNED-LONG', 'SIGNED-SHORT', 'SIZE', 'SKIP1', + 'SKIP2', 'SKIP3', 'SMALL-FONT', 'SORT-CONTROL', + 'SORT-CORE-SIZE', 'SORT-FILE-SIZE', 'SORT-MERGE', 'SORT-MESSAGE', + 'SORT-MODE-SIZE', 'SORT-OPTION', 'SORT-ORDER', 'SORT-RETURN', + 'SORT-TAPE', 'SORT-TAPES', 'SOURCE', 'SOURCE-COMPUTER', 'SOURCES', + 'SPACE', 'SPACE-FILL', 'SPACES', 'SPECIAL-NAMES', 'SPINNER', 'SQL', + 'SQUARE', 'STANDARD', 'STANDARD-1', 'STANDARD-2', 'STANDARD-3', + 'STANDARD-BINARY', 'STANDARD-DECIMAL', + 'START-X', 'START-Y', 'STARTING', 'STATEMENT', 'STATIC', + 'STATIC-LIST', + 'STATUS', 'STATUS-BAR', 'STATUS-TEXT', 'STEP', + 'STOP-BROWSER', 'STRONG', 'STYLE', 'SUB-QUEUE-1', + 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBFILE', 'SUBWINDOW', + 'SUFFIXING', 'SUPER', 'SYMBOL', 'SYMBOLIC', + 'SYNCHRONIZED', 'SYSIN', 'SYSIPT', 'SYSLST', 'SYSOUT', + 'SYSPCH', 'SYSPUNCH', 'SYSTEM', 'SYSTEM-DEFAULT', 'SYSTEM-INFO', + 'TAB', 'TAB-CONTROL', 'TAB-TO-ADD', 'TAB-TO-DELETE', 'TABLE', + 'TALLY', 'TALLYING', 'TAPE', 'TAPES', 'TEMPORARY', 'TERMINAL', + 'TERMINAL-INFO', 'TERMINATION-VALUE', 'TEST', 'TEXT', + 'THAN', 'THEN', 'THREAD', 'THREAD-LOCAL', 'THREAD-LOCAL-STORAGE', + 'THREAD-POINTER', 'THROUGH', 'THRU', 'THUMB-POSITION', + 'TILED-HEADINGS', 'TIME', 'TIME-OF-DAY', 'TIME-OUT', 'TIME-RECORD', + 'TIMEOUT', 'TIMES', 'TIMESTAMP', 'TIMESTAMP-OFFSET', + 'TIMESTAMP-OFFSET-RECORD', 'TIMESTAMP-RECORD', 'TITLE', 'TITLE-BAR', + 'TITLE-POSITION', 'TO', 'TOOL-BAR', 'TOP', 'TOTALED', 'TOTALING', + 'TOWARD-GREATER', 'TOWARD-LESSER', + 'TRACE', 'TRACK-AREA', 'TRACK-LIMIT', 'TRACK-THUMB', 'TRACKS', + 'TRADITIONAL-FONT', 'TRAILING', 'TRAILING-SHIFT', 'TRAILING-SIGN', + 'TRANSACTION', 'TRANSPARENT', 'TRANSPARENT-COLOR', + 'TREE-VIEW', 'TRUE', 'TRUNCATION', 'TYPE', 'TYPEDEF', 'UCS-4', + 'UNDERLINE', 'UNDERLINED', 'UNEQUAL', 'UNFRAMED', 'UNIT', 'UNITS', + 'UNIVERSAL', 'UNSIGNED', 'UNSIGNED-INT', 'UNSIGNED-LONG', + 'UNSIGNED-SHORT', + 'UNSORTED', 'UP', 'UPDATE', 'UNTIL', 'UPON', 'UPPER', + 'UPSI-0', 'UPSI-1', 'UPSI-2', 'UPSI-3', 'UPSI-4', 'UPSI-5', + 'UPSI-6', 'UPSI-7', 'USAGE', 'USE-ALT', 'USE-RETURN', + 'USE-TAB', 'USER', 'USER-COLORS', 'USER-DEFAULT', 'USER-GRAY', + 'USER-WHITE', 'USING', 'UTF-16', 'UTF-8', 'VALID', + 'VAL-STATUS', 'VALIDATE-STATUS', + 'VALUE', 'VALUE-FORMAT', 'VALUES', 'VALUETYPE', 'VALUETYPE-ID', + 'VARBINARY', 'VARIABLE', 'VARIANT', 'VARYING', 'VERTICAL', + 'VERY-HEAVY', 'VIRTUAL-WIDTH', 'VISIBLE', 'VPADDING', 'VSCROLL', + 'VSCROLL-BAR', 'VSCROLL-POS', 'VTOP', 'WEB-BROWSER', 'WHEN', + 'WHERE', 'WIDTH', 'WIDTH-IN-CELLS', 'WINDOW', + 'WITH', 'WORDS', 'WORKING-STORAGE', 'WRAP', 'WRITE-ONLY', + 'WRITE-VERIFY', 'WRITING', ' XML', 'XML ', 'XML-CODE', 'XML-EVENT', + 'XML-NTEXT', 'XML-TEXT', 'YIELDING', 'YYYYDDD', 'YYYYMMDD', 'ZERO', + 'ZERO-FILL', 'ZEROES', 'ZEROS' + ), + 3 => array( // Statement Keywords containing no spaces. + 'ACCEPT', 'ADD', 'ALTER', 'ALLOCATE', 'ATTACH', 'CALL', 'CANCEL', + 'CHAIN', 'CREATE', + 'CLOSE', 'COLOR', 'COMPUTE', 'COMMIT', 'CONTINUE', + 'COPY', 'DECLARE', 'DELEGATE', 'DELETE', 'DETACH', 'DISPLAY', + 'DIVIDE', + 'ENTER', 'ENTRY', 'EVALUATE', 'EXAMINE', + 'EXEC', 'EXECUTE', 'EXHIBIT', 'EXIT', 'FREE', 'GOBACK', + 'IF', 'INITIALIZE', 'INITIATE', 'INSPECT', 'INVOKE', 'MERGE', + 'MODIFY', 'MOVE', 'MULTIPLY', 'NOTE', 'ON', 'OPEN', + 'PERFORM', 'RAISE', 'READ', 'RECEIVE', 'RELEASE', 'RETURN', + 'RESET', 'RESUME', + 'REWRITE', 'ROLLBACK', 'SEARCH', 'SELECT', 'SERVICE', 'SET', 'SORT', + 'START', 'STOP', 'STRING', 'SUBTRACT', 'SYNC', + 'SUPPRESS', 'TERMINATE', + 'TRANSFORM', 'TRY', 'UNLOCKFILE', 'UNLOCK', 'UNSTRING', 'USE', + 'VALIDATE', 'WAIT', 'WRITE' + ), + 4 => array( // Intrinsic functions + 'ABS', 'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'BOOLEAN-OF-INTEGER', + 'BYTE-LENGTH', 'CHAR', 'CHAR-NATIONAL', + 'COS', 'COMBINED-DATETIME', 'CONCATENATE', 'CURRENT-DATE', + 'DATE-OF-INTEGER', 'DATE-TO-YYYYMMDD', 'DAY-TO-YYYYDDD', + 'DAY-OF-INTEGER', 'DISPLAY-OF', 'E', 'EXCEPTION-FILE', + 'EXCEPTION-FILE-N', 'EXCEPTION-LOCATION', + 'EXCEPTION-LOCATION-N', 'EXCEPTION-STATEMENT', 'EXCEPTION-STATUS', + 'EXP', 'EXP10', 'FACTORIAL', 'FORMATTED-CURRENT-DATE', + 'FORMATTED-DATE', 'FORMATTED-DATETIME', 'FORMATTED-TIME', + 'FRACTION-PART', 'HIGHEST-ALGEBRAIC', 'INTEGER', + 'INTEGER-OF-BOOLEAN', 'INTEGER-OF-DATE', 'INTEGER-OF-DAY', + 'INTEGER-OF-FORMATTED-DATE', 'INTEGER-PART', 'LENGTH', + 'LOCALE-COMPARE', + 'LOCALE-DATE', 'LOCALE-TIME', 'LOCALE-TIME-FROM-SECONDS', + 'LOCALE-TIME-FROM-SECS', 'LOG', + 'LOG10', 'LOWER-CASE', 'LOWEST-ALGEBRAIC', + 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE', + 'MIN', 'MOD', 'NATIONAL-OF', 'NUMVAL', 'NUMVAL-C', 'NUMVAL-F', + 'ORD', 'ORD-MAX', 'ORD-MIN', + 'PI', 'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', + 'SECONDS-FROM-FORMATTED-TIME', 'SIGN', 'SIN', 'SQRT', + 'SECONDS-PAST-MIDNIGHT', 'STANDARD-DEVIATION', 'STANDARD-COMPARE', + 'STORED-CHAR-LENGTH', + 'SUBSTITUTE', 'SUBSTITUE-CASE', 'SUM', 'TAN', 'TEST-DATE-YYYYMMDD', + 'TEST-DAY-YYYYDDD', 'TEST-FORMATTED-TIME', 'TEST-NUMVAL', + 'TEST-NUMVAL-C', 'TEST-NUMVAL-F', + 'TRIM', 'UPPER-CASE', 'VARIANCE', 'YEAR-TO-YYYY', 'WHEN-COMPILED' + ), + ), + 'SYMBOLS' => array( + // Arithmetic and comparison operators must be surrounded by spaces. + ' + ', ' - ', ' * ', ' / ', ' ** ', ' ^ ', + '.', ',', + ' = ', ' < ', ' > ', ' >= ', ' <= ', ' <> ', + '(', ')', '[', ']' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #008000; font-weight: bold;', + 3 => 'color: #000000; font-weight: bold;', + 4 => 'color: #9d7700;', + ), + 'COMMENTS' => array( + 1 => 'color: #a0a0a0; font-style: italic;', + 2 => 'color: #000080; font-weight: bold;', + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #339933;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #993399;' + ), + 'METHODS' => array( + 1 => 'color: #800080;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9-\$_\|\#|^&])', + ), + ), +); diff --git a/inc/geshi/coffeescript.php b/vendor/easybook/geshi/geshi/coffeescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/coffeescript.php rename to vendor/easybook/geshi/geshi/coffeescript.php diff --git a/inc/geshi/cpp-qt.php b/vendor/easybook/geshi/geshi/cpp-qt.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cpp-qt.php rename to vendor/easybook/geshi/geshi/cpp-qt.php index 36626c90d..5a23f5854 --- a/inc/geshi/cpp-qt.php +++ b/vendor/easybook/geshi/geshi/cpp-qt.php @@ -48,7 +48,11 @@ $language_data = array ( //Multiline-continued single-line comments 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', //Multiline-continued preprocessor define - 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), @@ -489,6 +493,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #888888;', 2 => 'color: #006E28;', + 3 => 'color: #BF0303;', + 4 => 'color: #BF0303;', 'MULTI' => 'color: #888888; font-style: italic;' ), 'ESCAPE_CHAR' => array( diff --git a/vendor/easybook/geshi/geshi/cpp-winapi.php b/vendor/easybook/geshi/geshi/cpp-winapi.php new file mode 100644 index 000000000..ddc70b688 --- /dev/null +++ b/vendor/easybook/geshi/geshi/cpp-winapi.php @@ -0,0 +1,836 @@ +<?php +/************************************************************************************* + * cpp-winapi.php + * ------- + * Author: Dennis Bayer (Dennis.Bayer@mnifh-giessen.de) + * Contributors: + * - M. Uli Kusterer (witness.of.teachtext@gmx.net) + * - Jack Lloyd (lloyd@randombit.net) + * - Benny Baumann (BenBE@geshi.org) + * Copyright: (c) 2004 Dennis Bayer, Nigel McNie, 2012 Benny Baumann (http://qbnz.com/highlighter) + * Release Version: 1.0.8.11 + * Date Started: 2004/09/27 + * + * C++ language file for GeSHi. + * + * CHANGES + * ------- + * 2008/05/23 (1.0.7.22) + * - Added description of extra language features (SF#1970248) + * 2004/XX/XX (1.0.2) + * - Added several new keywords (Jack Lloyd) + * 2004/11/27 (1.0.1) + * - Added StdCLib function and constant names, changed color scheme to + * a cleaner one. (M. Uli Kusterer) + * - Added support for multiple object splitters + * 2004/10/27 (1.0.0) + * - First Release + * + * TODO (updated 2004/11/27) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'C++ (WinAPI)', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[abfnrtv\\\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return', + 'switch', 'throw', 'while' + ), + 2 => array( + 'NULL', 'false', 'true', 'enum', 'errno', 'EDOM', + 'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG', + 'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG', + 'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP', + 'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP', + 'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN', + 'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN', + 'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT', + 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR', + 'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', + 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr', + 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC', + 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', + 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', + 'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' + ), + 3 => array( + 'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', + 'printf', 'fprintf', 'snprintf', 'sprintf', 'assert', + 'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint', + 'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper', + 'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp', + 'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2', + 'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp', + 'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen', + 'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf', + 'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf', + 'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc', + 'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind', + 'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs', + 'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc', + 'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv', + 'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat', + 'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn', + 'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy', + 'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime', + 'asctime', 'ctime', 'gmtime', 'localtime', 'strftime' + ), + 4 => array( + 'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint', + 'register', 'short', 'shortint', 'signed', 'static', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', + 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' + ), + // Public API + 5 => array( + 'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber', + 'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA', + 'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW', + 'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess', + 'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW', + 'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess', + 'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId', + 'GetEnvironmentStringsA', 'GetEnvironmentStringsW', + 'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess', + 'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass', + 'GetProcessAffinityMask', 'GetProcessPriorityBoost', + 'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion', + 'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW', + 'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes', + 'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess', + 'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA', + 'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass', + 'SetProcessAffinityMask', 'SetProcessPriorityBoost', + 'SetProcessShutdownParameters', 'SetProcessWorkingSetSize', + 'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority', + 'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread', + 'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess', + 'TerminateThread', 'WaitForInputIdle', 'WinExec', + + '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread', + '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW', + 'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW', + 'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA', + 'DeleteFileW', 'FindClose', 'FindCloseChangeNotification', + 'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW', + 'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW', + 'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW', + 'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW', + 'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA', + 'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW', + 'GetFileInformationByHandle', 'GetFileSize', 'GetFileType', + 'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives', + 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA', + 'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW', + 'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW', + 'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile', + 'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx', + 'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW', + 'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile', + 'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA', + 'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount', + 'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile', + 'WriteFileEx', + + 'DeviceIoControl', + + 'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress', + 'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW', + 'LoadModule', + + 'GetPrivateProfileIntA', 'GetPrivateProfileIntW', + 'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA', + 'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW', + 'GetPrivateProfileStringA', 'GetPrivateProfileStringW', + 'GetPrivateProfileStructA', 'GetPrivateProfileStructW', + 'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA', + 'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW', + 'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW', + 'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW', + 'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA', + 'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW', + 'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey', + 'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW', + 'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW', + 'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA', + 'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW', + 'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW', + 'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW', + 'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA', + 'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA', + 'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW', + 'WritePrivateProfileStringA', 'WritePrivateProfileStringW', + 'WritePrivateProfileStructA', 'WritePrivateProfileStructW', + 'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA', + 'WriteProfileStringW', + + 'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW', + 'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA', + 'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList', + 'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW', + 'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce', + 'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce', + 'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce', + 'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid', + 'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted', + 'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW', + 'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW', + 'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA', + 'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW', + 'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW', + 'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity', + 'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce', + 'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx', + 'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce', + 'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW', + 'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW', + 'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA', + 'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA', + 'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW', + 'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity', + 'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl', + 'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength', + 'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo', + 'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority', + 'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA', + 'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA', + 'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser', + 'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl', + 'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl', + 'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW', + 'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW', + 'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA', + 'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', + 'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD', + 'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA', + 'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW', + 'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA', + 'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck', + 'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf', + 'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA', + 'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA', + 'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx', + 'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl', + 'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner', + 'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken', + 'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A', + 'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW', + 'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW', + 'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW', + 'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA', + 'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW', + 'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW', + 'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W', + 'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA', + 'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus', + 'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW', + 'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA', + 'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW', + 'UnlockServiceDatabase', + + 'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW', + 'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree', + 'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose', + 'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex', + 'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum', + 'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers', + 'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers', + 'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers', + 'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers', + 'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend', + 'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum', + 'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports', + 'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum', + 'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo', + 'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd', + 'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo', + 'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo', + 'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum', + 'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel', + 'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo', + 'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx', + 'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum', + 'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum', + 'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel', + 'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel', + 'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups', + 'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo', + 'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel', + 'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo', + 'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W', + 'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA', + 'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W', + 'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum', + 'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W', + 'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W', + 'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW', + 'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA', + 'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW', + 'WNetGetResourceInformationA', 'WNetGetResourceInformationW', + 'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA', + 'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA', + 'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW', + + 'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname', + 'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname', + 'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr', + 'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select', + 'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept', + 'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr', + 'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber', + 'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect', + 'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent', + 'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW', + 'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents', + 'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError', + 'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA', + 'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA', + 'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA', + 'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf', + 'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd', + 'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs', + 'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom', + 'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo', + 'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA', + 'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA', + 'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents', + 'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols', + 'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider', + 'WSCUnInstallNameSpace', + + 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit', + 'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry', + 'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory', + 'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory', + + 'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation', + + 'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow', + 'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos', + 'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint', + 'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW', + 'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows', + 'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW', + 'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect', + 'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup', + 'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow', + 'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', + 'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA', + 'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild', + 'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed', + 'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint', + 'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow', + 'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout', + 'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW', + 'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows', + 'UpdateLayeredWindow', 'WindowFromPoint', + + 'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA', + 'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA', + 'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog', + 'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt', + 'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem', + 'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA', + 'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW', + 'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt', + 'SetDlgItemTextA', 'SetDlgItemTextW', + + 'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr', + 'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr', + 'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages', + 'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags', + 'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize', + 'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock', + 'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps', + 'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock', + 'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc', + 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect', + 'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock', + 'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire', + 'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink', + + 'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW', + 'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW', + 'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW', + 'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW', + 'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW', + 'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord', + 'SetClassWord', 'SetWindowWord' + ), + // Native API + 6 => array( + 'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer', + 'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout', + 'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer', + 'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite', + 'CsrSetPriorityClass', + + 'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources', + 'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U', + 'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll', + 'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions', + 'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread', + 'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum', + + 'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort', + 'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort', + 'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort', + 'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort', + 'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort', + 'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort', + 'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort', + 'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort', + 'NtWriteRequestData', 'ZwWriteRequestData', + + 'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm', + 'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType', + 'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm', + 'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList', + 'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken', + 'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm', + 'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm', + 'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken', + 'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread', + 'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken', + 'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck', + 'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm', + 'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm', + 'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject', + 'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken', + 'NtSetSecurityObject', 'ZwSetSecurityObject', + + 'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom', + 'NtQueryInformationAtom', 'ZwQueryInformationAtom', + + 'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread', + 'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread', + 'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread', + 'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread', + 'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess', + 'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread', + 'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread', + 'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread', + 'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread', + 'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread', + 'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess', + 'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert', + 'NtYieldExecution', 'ZwYieldExecution', + + 'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64', + 'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame', + 'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection', + 'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory', + 'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64', + 'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection', + 'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection', + 'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory', + 'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory', + 'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64', + 'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64', + 'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory', + 'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection', + 'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory', + 'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64', + + 'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject', + 'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject', + 'NtQueryInformationJobObject', 'ZwQueryInformationJobObject', + 'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject', + 'ZwTerminateJobObject', + + 'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile', + 'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile', + 'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile', + 'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile', + 'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile', + 'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile', + 'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile', + 'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion', + 'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile', + 'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile', + 'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter', + 'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile', + 'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion', + 'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile', + 'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile', + 'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64', + 'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile', + 'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile', + + 'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock', + 'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce', + 'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable', + 'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce', + 'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle', + 'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize', + 'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString', + 'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact', + 'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted', + 'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace', + 'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits', + 'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong', + 'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants', + 'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared', + 'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant', + 'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString', + 'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger', + 'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray', + 'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray', + 'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD', + 'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap', + 'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer', + 'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap', + 'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess', + 'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN', + 'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment', + 'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection', + 'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue', + 'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams', + 'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable', + 'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer', + 'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U', + 'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource', + 'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide', + 'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable', + 'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties', + 'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid', + 'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString', + 'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply', + 'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap', + 'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet', + 'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits', + 'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet', + 'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString', + 'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid', + 'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce', + 'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize', + 'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U', + 'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U', + 'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags', + 'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps', + 'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName', + 'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader', + 'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString', + 'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap', + 'RtlInitializeContext', 'RtlInitializeCriticalSection', + 'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable', + 'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact', + 'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString', + 'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString', + 'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3', + 'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd', + 'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate', + 'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract', + 'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid', + 'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime', + 'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable', + 'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory', + 'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject', + 'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams', + 'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits', + 'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString', + 'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser', + 'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey', + 'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey', + 'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString', + 'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap', + 'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable', + 'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl', + 'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation', + 'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation', + 'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet', + 'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap', + 'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom', + 'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock', + 'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations', + 'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime', + 'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits', + 'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount', + 'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor', + 'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl', + 'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames', + 'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject', + 'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap', + 'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact', + 'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor', + 'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime', + 'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980', + 'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize', + 'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString', + 'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize', + 'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN', + 'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap', + 'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString', + 'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString', + 'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN', + 'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar', + 'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap', + 'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap', + 'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize', + 'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap', + 'RtlZeroMemory', + + 'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount', + 'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter', + 'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer', + 'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime', + 'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution', + 'ZwSetTimerResolution', + + 'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair', + 'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore', + 'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair', + 'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore', + 'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent', + 'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore', + 'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant', + 'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore', + 'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent', + 'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair', + 'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair', + 'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair', + 'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject', + 'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject', + 'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair', + 'NtWaitLowEventPair', 'ZwWaitLowEventPair', + + 'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject', + 'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject', + 'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject', + 'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject', + 'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject', + 'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject', + 'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject', + 'ZwSetInformationObject', + + 'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException', + 'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort', + 'ZwSetDefaultHardErrorPort', + + 'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel', + 'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel', + 'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel', + 'ZwSetContextChannel', + + 'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey', + 'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey', + 'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry', + 'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2', + 'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey', + 'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey', + 'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey', + 'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey', + 'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey', + 'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey', + + 'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile', + 'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile', + + 'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile', + 'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort', + 'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile', + 'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile', + 'NtSystemDebugControl', 'ZwSystemDebugControl', + + 'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache', + 'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer', + 'NtSetLdtEntries', 'ZwSetLdtEntries', + + 'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl', + + 'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation', + 'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency', + 'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState', + 'ZwSetThreadExecutionState', + + 'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice', + 'NtUnloadDriver', 'ZwUnloadDriver', + + 'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage', + 'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue', + 'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale', + 'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue', + 'ZwSetSystemEnvironmentValue', + + 'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize', + 'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint', + 'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher', + 'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag', + 'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId', + 'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn', + 'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile', + 'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection', + 'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation', + 'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl', + 'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize', + 'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context', + 'SaveEm87Context' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '{', '}', '[', ']'), + 1 => array('<', '>','='), + 2 => array('+', '-', '*', '/', '%'), + 3 => array('!', '^', '&', '|'), + 4 => array('?', ':', ';') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #0000ff;', + 3 => 'color: #0000dd;', + 4 => 'color: #0000ff;', + 5 => 'color: #4000dd;', + 6 => 'color: #4000dd;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 3 => 'color: #FF0000;', + 4 => 'color: #FF0000;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #FF0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #007788;', + 2 => 'color: #007788;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com', + 6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])" + ) + ) +); diff --git a/inc/geshi/cpp.php b/vendor/easybook/geshi/geshi/cpp.php old mode 100644 new mode 100755 similarity index 96% rename from inc/geshi/cpp.php rename to vendor/easybook/geshi/geshi/cpp.php index 42ab311cc..52e4be6ea --- a/inc/geshi/cpp.php +++ b/vendor/easybook/geshi/geshi/cpp.php @@ -56,14 +56,18 @@ $language_data = array ( //Multiline-continued single-line comments 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', //Multiline-continued preprocessor define - 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', 'ESCAPE_REGEXP' => array( //Simple Single Char Escapes - 1 => "#\\\\[abfnrtv\\\'\"?\n]#i", + 1 => "#\\\\[abfnrtv\\\'\"?\n]#", //Hexadecimal Char Specs 2 => "#\\\\x[\da-fA-F]{2}#", //Hexadecimal Char Specs @@ -167,6 +171,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #666666;', 2 => 'color: #339900;', + 3 => 'color: #FF0000;', + 4 => 'color: #FF0000;', 'MULTI' => 'color: #ff0000; font-style: italic;' ), 'ESCAPE_CHAR' => array( diff --git a/inc/geshi/csharp.php b/vendor/easybook/geshi/geshi/csharp.php old mode 100644 new mode 100755 similarity index 96% rename from inc/geshi/csharp.php rename to vendor/easybook/geshi/geshi/csharp.php index 26024e91a..a73d01d6b --- a/inc/geshi/csharp.php +++ b/vendor/easybook/geshi/geshi/csharp.php @@ -12,6 +12,8 @@ * * CHANGES * ------- + * 2015/04/14 + * - Added C# 5.0 and 6.0 missing keywords and #pragma directive * 2012/06/18 (1.0.8.11) * - Added missing keywords (Christian Stelzmann) * 2009/04/03 (1.0.8.6) @@ -62,7 +64,8 @@ $language_data = array ( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( - 'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue', + 'abstract', 'add', 'as', 'async', 'await', 'base', + 'break', 'by', 'case', 'catch', 'const', 'continue', 'default', 'do', 'else', 'event', 'explicit', 'extern', 'false', 'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if', 'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null', @@ -74,10 +77,10 @@ $language_data = array ( ), 2 => array( '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if', - '#line', '#region', '#undef', '#warning' + '#line', '#pragma', '#region', '#undef', '#warning' ), 3 => array( - 'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked' + 'checked', 'is', 'new', 'nameof', 'sizeof', 'typeof', 'unchecked' ), 4 => array( 'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double', @@ -253,4 +256,4 @@ $language_data = array ( ) ); -?> \ No newline at end of file +?> diff --git a/inc/geshi/css.php b/vendor/easybook/geshi/geshi/css.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/css.php rename to vendor/easybook/geshi/geshi/css.php diff --git a/inc/geshi/cuesheet.php b/vendor/easybook/geshi/geshi/cuesheet.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cuesheet.php rename to vendor/easybook/geshi/geshi/cuesheet.php diff --git a/inc/geshi/d.php b/vendor/easybook/geshi/geshi/d.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/d.php rename to vendor/easybook/geshi/geshi/d.php diff --git a/vendor/easybook/geshi/geshi/dart.php b/vendor/easybook/geshi/geshi/dart.php new file mode 100644 index 000000000..932e13e87 --- /dev/null +++ b/vendor/easybook/geshi/geshi/dart.php @@ -0,0 +1,159 @@ +<?php +/************************************************************************************* + * dart.php + * -------- + * Author: Edward Hart (edward.dan.hart@gmail.com) + * Copyright: (c) 2013 Edward Hart + * Release Version: 1.0.8.12 + * Date Started: 2013/10/25 + * + * Dart language file for GeSHi. + * + * CHANGES + * ------- + * 2013/10/25 + * - First Release + * + * TODO (updated 2013/10/25) + * ------------------------- + * - Highlight standard library types. + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Dart', + + 'COMMENT_SINGLE' => array('//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\nrfbtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + 4 => "#\\\\u\\{[\da-fA-F]*\\}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | + GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + + 'KEYWORDS' => array( + 1 => array( + 'abstract', 'as', 'assert', 'break', 'case', 'catch', 'class', + 'const', 'continue', 'default', 'do', 'dynamic', 'else', 'export', + 'extends', 'external', 'factory', 'false', 'final', 'finally', + 'for', 'get', 'if', 'implements', 'import', 'in', 'is', 'library', + 'new', 'null', 'operator', 'part', 'return', 'set', 'static', + 'super', 'switch', 'this', 'throw', 'true', 'try', 'typedef', 'var', + 'while', 'with' + ), + 2 => array( + 'double', 'bool', 'int', 'num', 'void' + ), + ), + + 'SYMBOLS' => array( + 0 => array('(', ')', '{', '}', '[', ']'), + 1 => array('+', '-', '*', '/', '%', '~'), + 2 => array('&', '|', '^'), + 3 => array('=', '!', '<', '>'), + 4 => array('?', ':'), + 5 => array('..'), + 6 => array(';', ',') + ), + + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + ), + + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'font-weight: bold;', + 2 => 'color: #445588; font-weight: bold;' + ), + 'COMMENTS' => array( + 0 => 'color: #999988; font-style: italic;', + 'MULTI' => 'color: #999988; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '' + ), + 'STRINGS' => array( + 0 => 'color: #d14;' + ), + 'NUMBERS' => array( + 0 => 'color: #009999;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'BRACKETS' => array(''), + 'METHODS' => array( + 1 => 'color: #006633;' + ), + 'SYMBOLS' => array( + 0 => 'font-weight: bold;', + 1 => 'font-weight: bold;', + 2 => 'font-weight: bold;', + 3 => 'font-weight: bold;', + 4 => 'font-weight: bold;', + 5 => 'font-weight: bold;', + 6 => 'font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/dcl.php b/vendor/easybook/geshi/geshi/dcl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcl.php rename to vendor/easybook/geshi/geshi/dcl.php diff --git a/inc/geshi/dcpu16.php b/vendor/easybook/geshi/geshi/dcpu16.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcpu16.php rename to vendor/easybook/geshi/geshi/dcpu16.php diff --git a/inc/geshi/dcs.php b/vendor/easybook/geshi/geshi/dcs.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcs.php rename to vendor/easybook/geshi/geshi/dcs.php diff --git a/inc/geshi/delphi.php b/vendor/easybook/geshi/geshi/delphi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/delphi.php rename to vendor/easybook/geshi/geshi/delphi.php index d5596e0cd..34d0fd7bf --- a/inc/geshi/delphi.php +++ b/vendor/easybook/geshi/geshi/delphi.php @@ -297,5 +297,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/diff.php b/vendor/easybook/geshi/geshi/diff.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/diff.php rename to vendor/easybook/geshi/geshi/diff.php diff --git a/inc/geshi/div.php b/vendor/easybook/geshi/geshi/div.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/div.php rename to vendor/easybook/geshi/geshi/div.php index aa11795ac..fb8a72a16 --- a/inc/geshi/div.php +++ b/vendor/easybook/geshi/geshi/div.php @@ -122,5 +122,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/dos.php b/vendor/easybook/geshi/geshi/dos.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dos.php rename to vendor/easybook/geshi/geshi/dos.php diff --git a/inc/geshi/dot.php b/vendor/easybook/geshi/geshi/dot.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dot.php rename to vendor/easybook/geshi/geshi/dot.php diff --git a/inc/geshi/e.php b/vendor/easybook/geshi/geshi/e.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/e.php rename to vendor/easybook/geshi/geshi/e.php diff --git a/inc/geshi/ecmascript.php b/vendor/easybook/geshi/geshi/ecmascript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ecmascript.php rename to vendor/easybook/geshi/geshi/ecmascript.php diff --git a/inc/geshi/eiffel.php b/vendor/easybook/geshi/geshi/eiffel.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/eiffel.php rename to vendor/easybook/geshi/geshi/eiffel.php index baa13c319..807d23f94 --- a/inc/geshi/eiffel.php +++ b/vendor/easybook/geshi/geshi/eiffel.php @@ -391,5 +391,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/email.php b/vendor/easybook/geshi/geshi/email.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/email.php rename to vendor/easybook/geshi/geshi/email.php diff --git a/inc/geshi/epc.php b/vendor/easybook/geshi/geshi/epc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/epc.php rename to vendor/easybook/geshi/geshi/epc.php diff --git a/inc/geshi/erlang.php b/vendor/easybook/geshi/geshi/erlang.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/erlang.php rename to vendor/easybook/geshi/geshi/erlang.php diff --git a/inc/geshi/euphoria.php b/vendor/easybook/geshi/geshi/euphoria.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/euphoria.php rename to vendor/easybook/geshi/geshi/euphoria.php diff --git a/vendor/easybook/geshi/geshi/ezt.php b/vendor/easybook/geshi/geshi/ezt.php new file mode 100644 index 000000000..74d8d5204 --- /dev/null +++ b/vendor/easybook/geshi/geshi/ezt.php @@ -0,0 +1,134 @@ +<?php +/************************************************************************************* + * ezt.php + * ----------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2012/09/01 + * + * Easytrieve language file for GeSHi. + * + * CHANGES + * ------- + * 2012/09/22 (1.0.0) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'EZT', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'COMMENT_REGEXP' => array( + // First character of the line is an asterisk. Rest of the line is spaces/null + 0 => '/\*(\s|\D)?(\n)/', + // Asterisk followed by any character & then a non numeric character. + // This is to prevent expressions such as 25 * 4 from being marked as a comment + // Note: 25*4 - 100 will mark *4 - 100 as a comment. Pls. space out expressions + // In any case, 25*4 will result in an Easytrieve error + 1 => '/\*.([^0-9\n])+.*(\n)/' + ), + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'CONTROL','DEFINE','DISPLAY','DO','ELSE','END-DO','END-IF', + 'END-PROC','FILE','GET','GOTO','HEADING','IF','JOB','LINE', + 'PARM','PERFORM','POINT','PRINT','PROC','PUT','READ','RECORD', + 'REPORT','RETRIEVE','SEARCH','SELECT','SEQUENCE','SORT','STOP', + 'TITLE','WRITE' + ), + // Procedure Keywords (Names of specific procedures) + 2 => array ( + 'AFTER-BREAK','AFTER-LINE','BEFORE-BREAK','BEFORE-LINE', + 'ENDPAGE','REPORT-INPUT','TERMINATION', + ), + // Macro names, Parameters + 3 => array ( + 'COMPILE','CONCAT','DESC','GETDATE','MASK','PUNCH', + 'VALUE','SYNTAX','NEWPAGE','SKIP','COL','TALLY', + 'WITH' + ) + ), + 'SYMBOLS' => array( + '(',')','=','&',',','*','>','<','%' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + //4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;' + ), + 'COMMENTS' => array( + 0 => 'color: #0000FF; font-style: italic;', + 1 => 'color: #0000FF; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #66CC66;' + ), + 'NUMBERS' => array( + 0 => 'color: #736205;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #E01B6A;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // We are trying to highlight Macro names here which preceded by % + 0 => '(%)([a-zA-Z0-9])+(\s|\n)' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/f1.php b/vendor/easybook/geshi/geshi/f1.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/f1.php rename to vendor/easybook/geshi/geshi/f1.php diff --git a/inc/geshi/falcon.php b/vendor/easybook/geshi/geshi/falcon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/falcon.php rename to vendor/easybook/geshi/geshi/falcon.php diff --git a/inc/geshi/fo.php b/vendor/easybook/geshi/geshi/fo.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/fo.php rename to vendor/easybook/geshi/geshi/fo.php diff --git a/inc/geshi/fortran.php b/vendor/easybook/geshi/geshi/fortran.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/fortran.php rename to vendor/easybook/geshi/geshi/fortran.php index c21ccd192..a77b6e7fa --- a/inc/geshi/fortran.php +++ b/vendor/easybook/geshi/geshi/fortran.php @@ -156,5 +156,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK'=> array( ) ); - -?> diff --git a/inc/geshi/freebasic.php b/vendor/easybook/geshi/geshi/freebasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/freebasic.php rename to vendor/easybook/geshi/geshi/freebasic.php index b23f39bc7..c54264496 --- a/inc/geshi/freebasic.php +++ b/vendor/easybook/geshi/geshi/freebasic.php @@ -137,5 +137,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/freeswitch.php b/vendor/easybook/geshi/geshi/freeswitch.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/freeswitch.php rename to vendor/easybook/geshi/geshi/freeswitch.php index c6fff2767..5412e6d69 --- a/inc/geshi/freeswitch.php +++ b/vendor/easybook/geshi/geshi/freeswitch.php @@ -164,5 +164,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/fsharp.php b/vendor/easybook/geshi/geshi/fsharp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/fsharp.php rename to vendor/easybook/geshi/geshi/fsharp.php diff --git a/inc/geshi/gambas.php b/vendor/easybook/geshi/geshi/gambas.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gambas.php rename to vendor/easybook/geshi/geshi/gambas.php diff --git a/inc/geshi/gdb.php b/vendor/easybook/geshi/geshi/gdb.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gdb.php rename to vendor/easybook/geshi/geshi/gdb.php index 0a5e32c30..9f63d25b0 --- a/inc/geshi/gdb.php +++ b/vendor/easybook/geshi/geshi/gdb.php @@ -194,5 +194,3 @@ $language_data = array ( ); // kate: replace-tabs on; indent-width 4; - -?> diff --git a/inc/geshi/genero.php b/vendor/easybook/geshi/geshi/genero.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/genero.php rename to vendor/easybook/geshi/geshi/genero.php index e1b20b3e8..2ab24855f --- a/inc/geshi/genero.php +++ b/vendor/easybook/geshi/geshi/genero.php @@ -459,5 +459,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/genie.php b/vendor/easybook/geshi/geshi/genie.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/genie.php rename to vendor/easybook/geshi/geshi/genie.php index db05ec062..3bab1b7b7 --- a/inc/geshi/genie.php +++ b/vendor/easybook/geshi/geshi/genie.php @@ -153,5 +153,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/gettext.php b/vendor/easybook/geshi/geshi/gettext.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gettext.php rename to vendor/easybook/geshi/geshi/gettext.php index 80b531c10..eb928bf6c --- a/inc/geshi/gettext.php +++ b/vendor/easybook/geshi/geshi/gettext.php @@ -93,5 +93,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4, ); - -?> diff --git a/inc/geshi/glsl.php b/vendor/easybook/geshi/geshi/glsl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/glsl.php rename to vendor/easybook/geshi/geshi/glsl.php diff --git a/inc/geshi/gml.php b/vendor/easybook/geshi/geshi/gml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gml.php rename to vendor/easybook/geshi/geshi/gml.php index 999251b22..58387b38a --- a/inc/geshi/gml.php +++ b/vendor/easybook/geshi/geshi/gml.php @@ -502,5 +502,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/gnuplot.php b/vendor/easybook/geshi/geshi/gnuplot.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gnuplot.php rename to vendor/easybook/geshi/geshi/gnuplot.php diff --git a/inc/geshi/go.php b/vendor/easybook/geshi/geshi/go.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/go.php rename to vendor/easybook/geshi/geshi/go.php diff --git a/inc/geshi/groovy.php b/vendor/easybook/geshi/geshi/groovy.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/groovy.php rename to vendor/easybook/geshi/geshi/groovy.php diff --git a/inc/geshi/gwbasic.php b/vendor/easybook/geshi/geshi/gwbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gwbasic.php rename to vendor/easybook/geshi/geshi/gwbasic.php diff --git a/inc/geshi/haskell.php b/vendor/easybook/geshi/geshi/haskell.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/haskell.php rename to vendor/easybook/geshi/geshi/haskell.php diff --git a/inc/geshi/haxe.php b/vendor/easybook/geshi/geshi/haxe.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/haxe.php rename to vendor/easybook/geshi/geshi/haxe.php diff --git a/inc/geshi/hicest.php b/vendor/easybook/geshi/geshi/hicest.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/hicest.php rename to vendor/easybook/geshi/geshi/hicest.php diff --git a/inc/geshi/hq9plus.php b/vendor/easybook/geshi/geshi/hq9plus.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/hq9plus.php rename to vendor/easybook/geshi/geshi/hq9plus.php index 7ba1a73c1..5b62589cc --- a/inc/geshi/hq9plus.php +++ b/vendor/easybook/geshi/geshi/hq9plus.php @@ -100,5 +100,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/html4strict.php b/vendor/easybook/geshi/geshi/html4strict.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/html4strict.php rename to vendor/easybook/geshi/geshi/html4strict.php diff --git a/inc/geshi/html5.php b/vendor/easybook/geshi/geshi/html5.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/html5.php rename to vendor/easybook/geshi/geshi/html5.php diff --git a/inc/geshi/icon.php b/vendor/easybook/geshi/geshi/icon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/icon.php rename to vendor/easybook/geshi/geshi/icon.php diff --git a/inc/geshi/idl.php b/vendor/easybook/geshi/geshi/idl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/idl.php rename to vendor/easybook/geshi/geshi/idl.php index 69bd14ff4..a2b6f57e1 --- a/inc/geshi/idl.php +++ b/vendor/easybook/geshi/geshi/idl.php @@ -119,5 +119,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/ini.php b/vendor/easybook/geshi/geshi/ini.php old mode 100644 new mode 100755 similarity index 97% rename from inc/geshi/ini.php rename to vendor/easybook/geshi/geshi/ini.php index 8e6ca76db..f0a8edeaa --- a/inc/geshi/ini.php +++ b/vendor/easybook/geshi/geshi/ini.php @@ -44,8 +44,9 @@ $language_data = array ( 'LANG_NAME' => 'INI', - 'COMMENT_SINGLE' => array(0 => ';'), + 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(0 => '/^\s*;.*?$/m'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', @@ -124,5 +125,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/inno.php b/vendor/easybook/geshi/geshi/inno.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/inno.php rename to vendor/easybook/geshi/geshi/inno.php index 1e2ee8bef..192054cf1 --- a/inc/geshi/inno.php +++ b/vendor/easybook/geshi/geshi/inno.php @@ -208,5 +208,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/intercal.php b/vendor/easybook/geshi/geshi/intercal.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/intercal.php rename to vendor/easybook/geshi/geshi/intercal.php diff --git a/inc/geshi/io.php b/vendor/easybook/geshi/geshi/io.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/io.php rename to vendor/easybook/geshi/geshi/io.php index 51fad43a7..d23984e8f --- a/inc/geshi/io.php +++ b/vendor/easybook/geshi/geshi/io.php @@ -134,5 +134,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/ispfpanel.php b/vendor/easybook/geshi/geshi/ispfpanel.php new file mode 100644 index 000000000..c02897850 --- /dev/null +++ b/vendor/easybook/geshi/geshi/ispfpanel.php @@ -0,0 +1,165 @@ +<?php +/************************************************************************************* + * ispfpanel.php + * ------------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2012/09/18 + * + * ISPF Panel Definition (MVS) language file for GeSHi. + * + * CHANGES + * ------- + * 2011/09/22 (1.0.0) + * - First Release + * + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'ISPF Panel', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + // Panel Definition Statements + 1 => array( + ')CCSID',')PANEL',')ATTR',')ABC',')ABCINIT',')ABCPROC',')BODY',')MODEL', + ')AREA',')INIT',')REINIT',')PROC',')FIELD',')HELP',')LIST',')PNTS',')END' + ), + // File-Tailoring Skeletons + 2 => array ( + ')DEFAULT',')BLANK', ')CM', ')DO', ')DOT', ')ELSE', ')ENDSEL', + ')ENDDO', ')ENDDOT', ')IF', ')IM', ')ITERATE', ')LEAVE', ')NOP', ')SEL', + ')SET', ')TB', ')TBA' + ), + // Control Variables + 3 => array ( + '.ALARM','.ATTR','.ATTRCHAR','.AUTOSEL','.CSRPOS','.CSRROW','.CURSOR','.HELP', + '.HHELP','.KANA','.MSG','.NRET','.PFKEY','.RESP','.TRAIL','.ZVARS' + ), + // Keywords + 4 => array ( + 'WINDOW','ALARM','ATTN','BARRIER','HILITE','CAPS', + 'CKBOX','CLEAR','CMD','COLOR','COMBO','CSRGRP','CUADYN', + 'SKIP','INTENS','AREA','EXTEND', + 'DESC','ASIS','VGET','VPUT','JUST','BATSCRD','BATSCRW', + 'BDBCS','BDISPMAX','BIT','BKGRND','BREDIMAX','PAD','PADC', + 'PAS','CHINESES','CHINESET','DANISH','DATAMOD','DDLIST', + 'DEPTH','DUMP','ENGLISH','ERROR','EXIT','EXPAND','FIELD', + 'FORMAT','FRENCH','GE','GERMAN','IMAGE','IND','TYPE', + 'ITALIAN','JAPANESE','KOREAN','LCOL','LEN','LIND','LISTBOX', + 'MODE','NEST','NOJUMP','NOKANA','NUMERIC','OUTLINE','PARM', + 'PGM','PORTUGESE','RADIO','RCOL','REP','RIND','ROWS', + 'SCALE','SCROLL','SFIHDR','SGERMAN','SIND','SPANISH', + 'UPPERENG','WIDTH' + ), + // Parameters + 5 => array ( + 'ADDPOP','ALPHA','ALPHAB','DYNAMIC','SCRL', + 'CCSID','COMMAND','DSNAME','DSNAMEF','DSNAMEFM', + 'DSNAMEPQ','DSNAMEQ','EBCDIC','ENBLDUMP','ENUM',// 'EXTEND', + 'FI','FILEID','FRAME','GUI','GUISCRD','GUISCRW','HEX', + 'HIGH','IDATE','IN','INCLUDE','INPUT','ITIME','JDATE', + 'JSTD','KEYLIST','LANG','LEFT','LIST','LISTV','LISTVX', + 'LISTX','LMSG','LOGO','LOW','MIX','NAME','NAMEF','NB', + 'NEWAPPL','NEWPOOL','NOCHECK','NOLOGO','NON','NONBLANK', + 'NULLS','NUM','OFF','ON','OPT','OUT','OUTPUT','PANEL', + /* 'PGM',*/'PICT','PICTN','POSITION','TBDISPL','PROFILE', + 'QUERY','RANGE','REVERSE','RIGHT','SHARED','SMSG', + 'STDDATE','STDTIME','TERMSTAT','TERMTRAC','TEST', + 'TESTX','TEXT','TRACE','TRACEX','USCORE','USER', + 'USERMOD','WSCMD','WSCMDV' + ), + ), + 'SYMBOLS' => array( + '(',')','=','&',',','*','#','+','&','%','_','-','@','!' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'BKGROUND' => 'background-color: #000000; color: #00FFFF;', + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;', + 4 => 'color: #876C00;', + 5 => 'color: #00FF00;' + ), + 'COMMENTS' => array( + 0 => 'color: #002EB8; font-style: italic;', + //1 => 'color: #002EB8; font-style: italic;', + //2 => 'color: #002EB8; font-style: italic;', + 'MULTI' => 'color: #002EB8; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #700000;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF6633;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #6B1F6B;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // Variables Defined in the Panel + 0 => '&[a-zA-Z]{1,8}[0-9]{0,}', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/j.php b/vendor/easybook/geshi/geshi/j.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/j.php rename to vendor/easybook/geshi/geshi/j.php index 5565bb499..fe8cb11a6 --- a/inc/geshi/j.php +++ b/vendor/easybook/geshi/geshi/j.php @@ -186,5 +186,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/java.php b/vendor/easybook/geshi/geshi/java.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/java.php rename to vendor/easybook/geshi/geshi/java.php index 652b8ddd3..f384c4d84 --- a/inc/geshi/java.php +++ b/vendor/easybook/geshi/geshi/java.php @@ -979,5 +979,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/java5.php b/vendor/easybook/geshi/geshi/java5.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/java5.php rename to vendor/easybook/geshi/geshi/java5.php index af16bd1e6..5d74d988b --- a/inc/geshi/java5.php +++ b/vendor/easybook/geshi/geshi/java5.php @@ -1033,5 +1033,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/javascript.php b/vendor/easybook/geshi/geshi/javascript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/javascript.php rename to vendor/easybook/geshi/geshi/javascript.php diff --git a/vendor/easybook/geshi/geshi/jcl.php b/vendor/easybook/geshi/geshi/jcl.php new file mode 100644 index 000000000..7d9c54825 --- /dev/null +++ b/vendor/easybook/geshi/geshi/jcl.php @@ -0,0 +1,155 @@ +<?php +/************************************************************************************* + * jcl.php + * ----------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2011/09/16 + * + * JCL (MVS), DFSORT, IDCAMS language file for GeSHi. + * + * CHANGES + * ------- + * 2011/09/16 (1.0.0) + * - Internal Release (for own blog/testing) + * 2012/09/22 (1.0.1) + * - Released with support for DFSORT, ICETOOL, IDCAMS + * - Added support for Symbolic variables in JCL + * - Added support for TWS OPC variables + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'JCL', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + // Comments identified using REGEX + // Comments start with //* but should not be followed by % (TWS) or + (some JES3 stmts) + 3 => "\/\/\*[^%](.*?)(\n)" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'COMMAND', 'CNTL', 'DD', 'ENDCNTL', 'EXEC', 'IF', 'THEN', 'ELSE', + 'ENDIF', 'JCLLIB', 'JOB', 'OUTPUT', 'PEND', + 'PROC', 'SET', 'XMIT' + ), + 2 => array ( + 'PGM','CLASS','NOTIFY','MSGCLASS','DSN','KEYLEN','LABEL','LIKE', + 'RECFM','LRECL','DCB','DSORG','BLKSIZE','SPACE','STORCLAS', + 'DUMMY','DYNAM','AVGREC','BURST','DISP','UNIT','VOLUME', + 'MSGLEVEL','REGION' + ), + // Keywords set 3: DFSORT, ICETOOL + 3 => array ( + 'ALTSEQ','DEBUG','END','INCLUDE','INREC','MERGE','MODS','OMIT', + 'OPTION','OUTFIL','OUTREC','RECORD','SORT','SUM', + 'COPY','COUNT','DEFAULTS','DISPLAY','MODE','OCCUR','RANGE', + 'SELECT','STATS','UNIQUE','VERIFY' + ), + // Keywords set 4: IDCAMS + 4 => array ( + 'ALTER','BLDINDEX','CNVTCAT','DEFINE','ALIAS','ALTERNATEINDEX', + 'CLUSTER','GENERATIONDATAGROUP','GDG','NONVSAM','PAGESPACE','PATH', + /* 'SPACE',*/'USERCATALOG','DELETE','EXAMINE','EXPORT','DISCONNECT', + 'EXPORTRA','IMPORT','CONNECT','IMPORTRA','LISTCAT','LISTCRA', + 'PRINT','REPRO','RESETCAT'//,'VERIFY' + ) + ), + 'SYMBOLS' => array( + '(',')','=',',','>','<' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;', + 4 => 'color: #876C00;' + ), + 'COMMENTS' => array( + 0 => 'color: #0000FF;', + //1 => 'color: #0000FF;', + //2 => 'color: #0000FF;', + 3 => 'color: #0000FF;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #66CC66;' + ), + 'NUMBERS' => array( + 0 => 'color: #336633;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #6B1F6B;', + 1 => 'color: #6B1F6B;', + 2 => 'color: #6B1F6B;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + // JCL book at IBM Bookshelf is http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/IEA2B680/CONTENTS?SHELF=&DT=20080604022956#3.1 + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // The following regular expressions solves three purposes + // - Identify Temp Variables in JCL (e.g. &&TEMP) + // - Symbolic variables in JCL (e.g. &SYSUID) + // - TWS OPC Variables (e.g. %OPC) + // Thanks to Simon for pointing me to this + 0 => '&&[a-zA-Z]{1,8}[0-9]{0,}', + 1 => '&[a-zA-Z]{1,8}[0-9]{0,}', + 2 => '&|\?|%[a-zA-Z]{1,8}[0-9]{0,}' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/jquery.php b/vendor/easybook/geshi/geshi/jquery.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/jquery.php rename to vendor/easybook/geshi/geshi/jquery.php diff --git a/inc/geshi/kixtart.php b/vendor/easybook/geshi/geshi/kixtart.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/kixtart.php rename to vendor/easybook/geshi/geshi/kixtart.php index 5b9091989..42ffa42ec --- a/inc/geshi/kixtart.php +++ b/vendor/easybook/geshi/geshi/kixtart.php @@ -325,5 +325,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/klonec.php b/vendor/easybook/geshi/geshi/klonec.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/klonec.php rename to vendor/easybook/geshi/geshi/klonec.php index 5f86e78dc..4831b13b7 --- a/inc/geshi/klonec.php +++ b/vendor/easybook/geshi/geshi/klonec.php @@ -278,5 +278,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/klonecpp.php b/vendor/easybook/geshi/geshi/klonecpp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/klonecpp.php rename to vendor/easybook/geshi/geshi/klonecpp.php index 6564c6b7b..d0368202d --- a/inc/geshi/klonecpp.php +++ b/vendor/easybook/geshi/geshi/klonecpp.php @@ -306,5 +306,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/latex.php b/vendor/easybook/geshi/geshi/latex.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/latex.php rename to vendor/easybook/geshi/geshi/latex.php diff --git a/inc/geshi/lb.php b/vendor/easybook/geshi/geshi/lb.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lb.php rename to vendor/easybook/geshi/geshi/lb.php diff --git a/inc/geshi/ldif.php b/vendor/easybook/geshi/geshi/ldif.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ldif.php rename to vendor/easybook/geshi/geshi/ldif.php diff --git a/inc/geshi/lisp.php b/vendor/easybook/geshi/geshi/lisp.php old mode 100644 new mode 100755 similarity index 94% rename from inc/geshi/lisp.php rename to vendor/easybook/geshi/geshi/lisp.php index be823a405..a2301914e --- a/inc/geshi/lisp.php +++ b/vendor/easybook/geshi/geshi/lisp.php @@ -3,14 +3,16 @@ * lisp.php * -------- * Author: Roberto Rossi (rsoftware@altervista.org) - * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter - * Release Version: 1.0.8.11 + * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.12 * Date Started: 2004/08/30 * * Generic Lisp language file for GeSHi. * * CHANGES * ------- + * 2013/11/13 (1.0.8.12) + * - Fixed bug where a keyword was highlighted in identifiers (Edward Hart) * 2005/12/9 (1.0.2) * - Added support for :keywords and ::access (Denis Mashkevich) * 2004/11/27 (1.0.1) @@ -135,10 +137,11 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9-\$_\|\#|^&])', + ), 'OOLANG' => array( 'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*' ) ) ); - -?> \ No newline at end of file diff --git a/inc/geshi/llvm.php b/vendor/easybook/geshi/geshi/llvm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/llvm.php rename to vendor/easybook/geshi/geshi/llvm.php diff --git a/inc/geshi/locobasic.php b/vendor/easybook/geshi/geshi/locobasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/locobasic.php rename to vendor/easybook/geshi/geshi/locobasic.php diff --git a/inc/geshi/logtalk.php b/vendor/easybook/geshi/geshi/logtalk.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/logtalk.php rename to vendor/easybook/geshi/geshi/logtalk.php diff --git a/inc/geshi/lolcode.php b/vendor/easybook/geshi/geshi/lolcode.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lolcode.php rename to vendor/easybook/geshi/geshi/lolcode.php diff --git a/inc/geshi/lotusformulas.php b/vendor/easybook/geshi/geshi/lotusformulas.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lotusformulas.php rename to vendor/easybook/geshi/geshi/lotusformulas.php index 12257d748..18d6f7822 --- a/inc/geshi/lotusformulas.php +++ b/vendor/easybook/geshi/geshi/lotusformulas.php @@ -314,5 +314,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 2 ); - -?> diff --git a/inc/geshi/lotusscript.php b/vendor/easybook/geshi/geshi/lotusscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lotusscript.php rename to vendor/easybook/geshi/geshi/lotusscript.php index b8b65f206..5d8b6d596 --- a/inc/geshi/lotusscript.php +++ b/vendor/easybook/geshi/geshi/lotusscript.php @@ -187,5 +187,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 2 ); - -?> diff --git a/inc/geshi/lscript.php b/vendor/easybook/geshi/geshi/lscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lscript.php rename to vendor/easybook/geshi/geshi/lscript.php diff --git a/inc/geshi/lsl2.php b/vendor/easybook/geshi/geshi/lsl2.php old mode 100644 new mode 100755 similarity index 67% rename from inc/geshi/lsl2.php rename to vendor/easybook/geshi/geshi/lsl2.php index f80cf4f29..dd0bcce8b --- a/inc/geshi/lsl2.php +++ b/vendor/easybook/geshi/geshi/lsl2.php @@ -9,15 +9,14 @@ * * Linden Scripting Language (LSL2) language file for GeSHi. * - * Data derived and validated against the following: - * http://wiki.secondlife.com/wiki/LSL_Portal - * http://www.lslwiki.net/lslwiki/wakka.php?wakka=HomePage - * http://rpgstats.com/wiki/index.php?title=Main_Page - * * CHANGES * ------- - * 2009/02/05 (1.0.0) + * 2009-02-05 (1.0.0) * - First Release + * 2013-01-01 + * - Modified by Sei Lisa for compatibility with the geshi.py output module + * which is part of the LSL2 Derived Files Generator, available at: + * http://code.google.com/p/lsl-keywords * * TODO (updated 2009/02/05) * ------------------------- @@ -50,6 +49,7 @@ $language_data = array ( 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( +// Generated by LSL2 Derived Files Generator. Database version: 0.0.20130627001; output module version: 0.0.20130619000 1 => array( // flow control 'do', 'else', @@ -65,11 +65,17 @@ $language_data = array ( 'AGENT', 'AGENT_ALWAYS_RUN', 'AGENT_ATTACHMENTS', + 'AGENT_AUTOPILOT', 'AGENT_AWAY', 'AGENT_BUSY', + 'AGENT_BY_LEGACY_NAME', + 'AGENT_BY_USERNAME', 'AGENT_CROUCHING', 'AGENT_FLYING', 'AGENT_IN_AIR', + 'AGENT_LIST_PARCEL', + 'AGENT_LIST_PARCEL_OWNER', + 'AGENT_LIST_REGION', 'AGENT_MOUSELOOK', 'AGENT_ON_OBJECT', 'AGENT_SCRIPTED', @@ -78,6 +84,7 @@ $language_data = array ( 'AGENT_WALKING', 'ALL_SIDES', 'ANIM_ON', + 'ATTACH_AVATAR_CENTER', 'ATTACH_BACK', 'ATTACH_BELLY', 'ATTACH_CHEST', @@ -92,17 +99,18 @@ $language_data = array ( 'ATTACH_HUD_TOP_LEFT', 'ATTACH_HUD_TOP_RIGHT', 'ATTACH_LEAR', + 'ATTACH_LEFT_PEC', 'ATTACH_LEYE', 'ATTACH_LFOOT', 'ATTACH_LHAND', 'ATTACH_LHIP', 'ATTACH_LLARM', 'ATTACH_LLLEG', - 'ATTACH_LPEC', 'ATTACH_LSHOULDER', 'ATTACH_LUARM', 'ATTACH_LULEG', 'ATTACH_MOUTH', + 'ATTACH_NECK', 'ATTACH_NOSE', 'ATTACH_PELVIS', 'ATTACH_REAR', @@ -110,12 +118,15 @@ $language_data = array ( 'ATTACH_RFOOT', 'ATTACH_RHAND', 'ATTACH_RHIP', + 'ATTACH_RIGHT_PEC', 'ATTACH_RLARM', 'ATTACH_RLLEG', - 'ATTACH_RPEC', 'ATTACH_RSHOULDER', 'ATTACH_RUARM', 'ATTACH_RULEG', + 'AVOID_CHARACTERS', + 'AVOID_DYNAMIC_OBSTACLES', + 'AVOID_NONE', 'CAMERA_ACTIVE', 'CAMERA_BEHINDNESS_ANGLE', 'CAMERA_BEHINDNESS_LAG', @@ -134,18 +145,52 @@ $language_data = array ( 'CHANGED_COLOR', 'CHANGED_INVENTORY', 'CHANGED_LINK', + 'CHANGED_MEDIA', 'CHANGED_OWNER', 'CHANGED_REGION', + 'CHANGED_REGION_START', 'CHANGED_SCALE', 'CHANGED_SHAPE', 'CHANGED_TELEPORT', 'CHANGED_TEXTURE', + 'CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES', + 'CHARACTER_AVOIDANCE_MODE', + 'CHARACTER_CMD_JUMP', + 'CHARACTER_CMD_SMOOTH_STOP', + 'CHARACTER_CMD_STOP', + 'CHARACTER_DESIRED_SPEED', + 'CHARACTER_DESIRED_TURN_SPEED', + 'CHARACTER_LENGTH', + 'CHARACTER_MAX_ACCEL', + 'CHARACTER_MAX_DECEL', + 'CHARACTER_MAX_SPEED', + 'CHARACTER_MAX_TURN_RADIUS', + 'CHARACTER_ORIENTATION', + 'CHARACTER_RADIUS', + 'CHARACTER_STAY_WITHIN_PARCEL', + 'CHARACTER_TYPE', + 'CHARACTER_TYPE_A', + 'CHARACTER_TYPE_B', + 'CHARACTER_TYPE_C', + 'CHARACTER_TYPE_D', + 'CHARACTER_TYPE_NONE', + 'CLICK_ACTION_BUY', 'CLICK_ACTION_NONE', 'CLICK_ACTION_OPEN', 'CLICK_ACTION_OPEN_MEDIA', 'CLICK_ACTION_PAY', + 'CLICK_ACTION_PLAY', 'CLICK_ACTION_SIT', 'CLICK_ACTION_TOUCH', + 'CONTENT_TYPE_ATOM', + 'CONTENT_TYPE_FORM', + 'CONTENT_TYPE_HTML', + 'CONTENT_TYPE_JSON', + 'CONTENT_TYPE_LLSD', + 'CONTENT_TYPE_RSS', + 'CONTENT_TYPE_TEXT', + 'CONTENT_TYPE_XHTML', + 'CONTENT_TYPE_XML', 'CONTROL_BACK', 'CONTROL_DOWN', 'CONTROL_FWD', @@ -160,18 +205,38 @@ $language_data = array ( 'DATA_NAME', 'DATA_ONLINE', 'DATA_PAYINFO', - 'DATA_RATING', 'DATA_SIM_POS', 'DATA_SIM_RATING', 'DATA_SIM_STATUS', 'DEBUG_CHANNEL', 'DEG_TO_RAD', + 'DENSITY', 'EOF', + 'ERR_GENERIC', + 'ERR_MALFORMED_PARAMS', + 'ERR_PARCEL_PERMISSIONS', + 'ERR_RUNTIME_PERMISSIONS', + 'ERR_THROTTLED', + 'ESTATE_ACCESS_ALLOWED_AGENT_ADD', + 'ESTATE_ACCESS_ALLOWED_AGENT_REMOVE', + 'ESTATE_ACCESS_ALLOWED_GROUP_ADD', + 'ESTATE_ACCESS_ALLOWED_GROUP_REMOVE', + 'ESTATE_ACCESS_BANNED_AGENT_ADD', + 'ESTATE_ACCESS_BANNED_AGENT_REMOVE', 'FALSE', + 'FORCE_DIRECT_PATH', + 'FRICTION', + 'GCNP_RADIUS', + 'GCNP_STATIC', + 'GRAVITY_MULTIPLIER', + 'HORIZONTAL', 'HTTP_BODY_MAXLENGTH', 'HTTP_BODY_TRUNCATED', + 'HTTP_CUSTOM_HEADER', 'HTTP_METHOD', 'HTTP_MIMETYPE', + 'HTTP_PRAGMA_NO_CACHE', + 'HTTP_VERBOSE_THROTTLE', 'HTTP_VERIFY_CERT', 'INVENTORY_ALL', 'INVENTORY_ANIMATION', @@ -185,11 +250,36 @@ $language_data = array ( 'INVENTORY_SCRIPT', 'INVENTORY_SOUND', 'INVENTORY_TEXTURE', + 'JSON_APPEND', + 'JSON_ARRAY', + 'JSON_FALSE', + 'JSON_INVALID', + 'JSON_NULL', + 'JSON_NUMBER', + 'JSON_OBJECT', + 'JSON_STRING', + 'JSON_TRUE', + 'KFM_CMD_PAUSE', + 'KFM_CMD_PLAY', + 'KFM_CMD_SET_MODE', + 'KFM_CMD_STOP', + 'KFM_COMMAND', + 'KFM_DATA', + 'KFM_FORWARD', + 'KFM_LOOP', + 'KFM_MODE', + 'KFM_PING_PONG', + 'KFM_REVERSE', + 'KFM_ROTATION', + 'KFM_TRANSLATION', + 'LAND_LARGE_BRUSH', 'LAND_LEVEL', 'LAND_LOWER', + 'LAND_MEDIUM_BRUSH', 'LAND_NOISE', 'LAND_RAISE', 'LAND_REVERT', + 'LAND_SMALL_BRUSH', 'LAND_SMOOTH', 'LINK_ALL_CHILDREN', 'LINK_ALL_OTHERS', @@ -213,20 +303,54 @@ $language_data = array ( 'MASK_NEXT', 'MASK_OWNER', 'NULL_KEY', + 'OBJECT_ATTACHED_POINT', + 'OBJECT_CHARACTER_TIME', 'OBJECT_CREATOR', 'OBJECT_DESC', 'OBJECT_GROUP', 'OBJECT_NAME', 'OBJECT_OWNER', + 'OBJECT_PATHFINDING_TYPE', + 'OBJECT_PHANTOM', + 'OBJECT_PHYSICS', + 'OBJECT_PHYSICS_COST', 'OBJECT_POS', + 'OBJECT_PRIM_EQUIVALENCE', + 'OBJECT_RETURN_PARCEL', + 'OBJECT_RETURN_PARCEL_OWNER', + 'OBJECT_RETURN_REGION', + 'OBJECT_ROOT', 'OBJECT_ROT', + 'OBJECT_RUNNING_SCRIPT_COUNT', + 'OBJECT_SCRIPT_MEMORY', + 'OBJECT_SCRIPT_TIME', + 'OBJECT_SERVER_COST', + 'OBJECT_STREAMING_COST', + 'OBJECT_TEMP_ON_REZ', + 'OBJECT_TOTAL_SCRIPT_COUNT', 'OBJECT_UNKNOWN_DETAIL', 'OBJECT_VELOCITY', + 'OPT_AVATAR', + 'OPT_CHARACTER', + 'OPT_EXCLUSION_VOLUME', + 'OPT_LEGACY_LINKSET', + 'OPT_MATERIAL_VOLUME', + 'OPT_OTHER', + 'OPT_STATIC_OBSTACLE', + 'OPT_WALKABLE', + 'PARCEL_COUNT_GROUP', + 'PARCEL_COUNT_OTHER', + 'PARCEL_COUNT_OWNER', + 'PARCEL_COUNT_SELECTED', + 'PARCEL_COUNT_TEMP', + 'PARCEL_COUNT_TOTAL', 'PARCEL_DETAILS_AREA', 'PARCEL_DETAILS_DESC', 'PARCEL_DETAILS_GROUP', + 'PARCEL_DETAILS_ID', 'PARCEL_DETAILS_NAME', 'PARCEL_DETAILS_OWNER', + 'PARCEL_DETAILS_SEE_AVATARS', 'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY', 'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS', 'PARCEL_FLAG_ALLOW_CREATE_OBJECTS', @@ -246,6 +370,7 @@ $language_data = array ( 'PARCEL_MEDIA_COMMAND_AGENT', 'PARCEL_MEDIA_COMMAND_AUTO_ALIGN', 'PARCEL_MEDIA_COMMAND_DESC', + 'PARCEL_MEDIA_COMMAND_LOOP', 'PARCEL_MEDIA_COMMAND_LOOP_SET', 'PARCEL_MEDIA_COMMAND_PAUSE', 'PARCEL_MEDIA_COMMAND_PLAY', @@ -254,8 +379,10 @@ $language_data = array ( 'PARCEL_MEDIA_COMMAND_TEXTURE', 'PARCEL_MEDIA_COMMAND_TIME', 'PARCEL_MEDIA_COMMAND_TYPE', + 'PARCEL_MEDIA_COMMAND_UNLOAD', 'PARCEL_MEDIA_COMMAND_URL', 'PASSIVE', + 'PATROL_PAUSE_AT_WAYPOINTS', 'PAYMENT_INFO_ON_FILE', 'PAYMENT_INFO_USED', 'PAY_DEFAULT', @@ -264,7 +391,11 @@ $language_data = array ( 'PERMISSION_CHANGE_LINKS', 'PERMISSION_CONTROL_CAMERA', 'PERMISSION_DEBIT', + 'PERMISSION_OVERRIDE_ANIMATIONS', + 'PERMISSION_RETURN_OBJECTS', + 'PERMISSION_SILENT_ESTATE_MANAGEMENT', 'PERMISSION_TAKE_CONTROLS', + 'PERMISSION_TELEPORT', 'PERMISSION_TRACK_CAMERA', 'PERMISSION_TRIGGER_ANIMATION', 'PERM_ALL', @@ -273,6 +404,7 @@ $language_data = array ( 'PERM_MOVE', 'PERM_TRANSFER', 'PI', + 'PING_PONG', 'PI_BY_TWO', 'PRIM_BUMP_BARK', 'PRIM_BUMP_BLOBS', @@ -294,39 +426,93 @@ $language_data = array ( 'PRIM_BUMP_WEAVE', 'PRIM_BUMP_WOOD', 'PRIM_COLOR', + 'PRIM_DESC', + 'PRIM_FLEXIBLE', 'PRIM_FULLBRIGHT', + 'PRIM_GLOW', 'PRIM_HOLE_CIRCLE', 'PRIM_HOLE_DEFAULT', 'PRIM_HOLE_SQUARE', 'PRIM_HOLE_TRIANGLE', + 'PRIM_LINK_TARGET', 'PRIM_MATERIAL', 'PRIM_MATERIAL_FLESH', 'PRIM_MATERIAL_GLASS', - 'PRIM_MATERIAL_LIGHT', 'PRIM_MATERIAL_METAL', 'PRIM_MATERIAL_PLASTIC', 'PRIM_MATERIAL_RUBBER', 'PRIM_MATERIAL_STONE', 'PRIM_MATERIAL_WOOD', + 'PRIM_MEDIA_ALT_IMAGE_ENABLE', + 'PRIM_MEDIA_AUTO_LOOP', + 'PRIM_MEDIA_AUTO_PLAY', + 'PRIM_MEDIA_AUTO_SCALE', + 'PRIM_MEDIA_AUTO_ZOOM', + 'PRIM_MEDIA_CONTROLS', + 'PRIM_MEDIA_CONTROLS_MINI', + 'PRIM_MEDIA_CONTROLS_STANDARD', + 'PRIM_MEDIA_CURRENT_URL', + 'PRIM_MEDIA_FIRST_CLICK_INTERACT', + 'PRIM_MEDIA_HEIGHT_PIXELS', + 'PRIM_MEDIA_HOME_URL', + 'PRIM_MEDIA_MAX_HEIGHT_PIXELS', + 'PRIM_MEDIA_MAX_URL_LENGTH', + 'PRIM_MEDIA_MAX_WHITELIST_COUNT', + 'PRIM_MEDIA_MAX_WHITELIST_SIZE', + 'PRIM_MEDIA_MAX_WIDTH_PIXELS', + 'PRIM_MEDIA_PARAM_MAX', + 'PRIM_MEDIA_PERMS_CONTROL', + 'PRIM_MEDIA_PERMS_INTERACT', + 'PRIM_MEDIA_PERM_ANYONE', + 'PRIM_MEDIA_PERM_GROUP', + 'PRIM_MEDIA_PERM_NONE', + 'PRIM_MEDIA_PERM_OWNER', + 'PRIM_MEDIA_WHITELIST', + 'PRIM_MEDIA_WHITELIST_ENABLE', + 'PRIM_MEDIA_WIDTH_PIXELS', + 'PRIM_NAME', + 'PRIM_OMEGA', 'PRIM_PHANTOM', 'PRIM_PHYSICS', + 'PRIM_PHYSICS_SHAPE_CONVEX', + 'PRIM_PHYSICS_SHAPE_NONE', + 'PRIM_PHYSICS_SHAPE_PRIM', + 'PRIM_PHYSICS_SHAPE_TYPE', + 'PRIM_POINT_LIGHT', 'PRIM_POSITION', + 'PRIM_POS_LOCAL', 'PRIM_ROTATION', + 'PRIM_ROT_LOCAL', + 'PRIM_SCULPT_FLAG_INVERT', + 'PRIM_SCULPT_FLAG_MIRROR', + 'PRIM_SCULPT_TYPE_CYLINDER', + 'PRIM_SCULPT_TYPE_MASK', + 'PRIM_SCULPT_TYPE_PLANE', + 'PRIM_SCULPT_TYPE_SPHERE', + 'PRIM_SCULPT_TYPE_TORUS', 'PRIM_SHINY_HIGH', 'PRIM_SHINY_LOW', 'PRIM_SHINY_MEDIUM', 'PRIM_SHINY_NONE', 'PRIM_SIZE', + 'PRIM_SLICE', 'PRIM_TEMP_ON_REZ', + 'PRIM_TEXGEN', + 'PRIM_TEXGEN_DEFAULT', + 'PRIM_TEXGEN_PLANAR', + 'PRIM_TEXT', 'PRIM_TEXTURE', 'PRIM_TYPE', 'PRIM_TYPE_BOX', 'PRIM_TYPE_CYLINDER', 'PRIM_TYPE_PRISM', 'PRIM_TYPE_RING', + 'PRIM_TYPE_SCULPT', 'PRIM_TYPE_SPHERE', 'PRIM_TYPE_TORUS', 'PRIM_TYPE_TUBE', + 'PROFILE_NONE', + 'PROFILE_SCRIPT_MEMORY', 'PSYS_PART_BOUNCE_MASK', 'PSYS_PART_EMISSIVE_MASK', 'PSYS_PART_END_ALPHA', @@ -352,10 +538,8 @@ $language_data = array ( 'PSYS_SRC_BURST_RATE', 'PSYS_SRC_BURST_SPEED_MAX', 'PSYS_SRC_BURST_SPEED_MIN', - 'PSYS_SRC_INNERANGLE', 'PSYS_SRC_MAX_AGE', 'PSYS_SRC_OMEGA', - 'PSYS_SRC_OUTERANGLE', 'PSYS_SRC_PATTERN', 'PSYS_SRC_PATTERN_ANGLE', 'PSYS_SRC_PATTERN_ANGLE_CONE', @@ -364,13 +548,70 @@ $language_data = array ( 'PSYS_SRC_PATTERN_EXPLODE', 'PSYS_SRC_TARGET_KEY', 'PSYS_SRC_TEXTURE', + 'PUBLIC_CHANNEL', + 'PURSUIT_FUZZ_FACTOR', + 'PURSUIT_GOAL_TOLERANCE', + 'PURSUIT_INTERCEPT', + 'PURSUIT_OFFSET', + 'PU_EVADE_HIDDEN', + 'PU_EVADE_SPOTTED', + 'PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED', + 'PU_FAILURE_INVALID_GOAL', + 'PU_FAILURE_INVALID_START', + 'PU_FAILURE_NO_NAVMESH', + 'PU_FAILURE_NO_VALID_DESTINATION', + 'PU_FAILURE_OTHER', + 'PU_FAILURE_PARCEL_UNREACHABLE', + 'PU_FAILURE_TARGET_GONE', + 'PU_FAILURE_UNREACHABLE', + 'PU_GOAL_REACHED', + 'PU_SLOWDOWN_DISTANCE_REACHED', 'RAD_TO_DEG', + 'RCERR_CAST_TIME_EXCEEDED', + 'RCERR_SIM_PERF_LOW', + 'RCERR_UNKNOWN', + 'RC_DATA_FLAGS', + 'RC_DETECT_PHANTOM', + 'RC_GET_LINK_NUM', + 'RC_GET_NORMAL', + 'RC_GET_ROOT_KEY', + 'RC_MAX_HITS', + 'RC_REJECT_AGENTS', + 'RC_REJECT_LAND', + 'RC_REJECT_NONPHYSICAL', + 'RC_REJECT_PHYSICAL', + 'RC_REJECT_TYPES', + 'REGION_FLAG_ALLOW_DAMAGE', + 'REGION_FLAG_ALLOW_DIRECT_TELEPORT', + 'REGION_FLAG_BLOCK_FLY', + 'REGION_FLAG_BLOCK_TERRAFORM', + 'REGION_FLAG_DISABLE_COLLISIONS', + 'REGION_FLAG_DISABLE_PHYSICS', + 'REGION_FLAG_FIXED_SUN', + 'REGION_FLAG_RESTRICT_PUSHOBJECT', + 'REGION_FLAG_SANDBOX', 'REMOTE_DATA_CHANNEL', + 'REMOTE_DATA_REPLY', 'REMOTE_DATA_REQUEST', + 'REQUIRE_LINE_OF_SIGHT', + 'RESTITUTION', + 'REVERSE', + 'ROTATE', + 'SCALE', 'SCRIPTED', + 'SIM_STAT_PCT_CHARS_STEPPED', + 'SMOOTH', 'SQRT2', 'STATUS_BLOCK_GRAB', + 'STATUS_BLOCK_GRAB_OBJECT', + 'STATUS_BOUNDS_ERROR', + 'STATUS_CAST_SHADOWS', 'STATUS_DIE_AT_EDGE', + 'STATUS_INTERNAL_ERROR', + 'STATUS_MALFORMED_PARAMS', + 'STATUS_NOT_FOUND', + 'STATUS_NOT_SUPPORTED', + 'STATUS_OK', 'STATUS_PHANTOM', 'STATUS_PHYSICS', 'STATUS_RETURN_AT_EDGE', @@ -378,8 +619,34 @@ $language_data = array ( 'STATUS_ROTATE_Y', 'STATUS_ROTATE_Z', 'STATUS_SANDBOX', + 'STATUS_TYPE_MISMATCH', + 'STATUS_WHITELIST_FAILED', + 'STRING_TRIM', + 'STRING_TRIM_HEAD', + 'STRING_TRIM_TAIL', + 'TEXTURE_BLANK', + 'TEXTURE_DEFAULT', + 'TEXTURE_MEDIA', + 'TEXTURE_PLYWOOD', + 'TEXTURE_TRANSPARENT', + 'TOUCH_INVALID_FACE', + 'TOUCH_INVALID_TEXCOORD', + 'TOUCH_INVALID_VECTOR', + 'TRAVERSAL_TYPE', + 'TRAVERSAL_TYPE_FAST', + 'TRAVERSAL_TYPE_NONE', + 'TRAVERSAL_TYPE_SLOW', 'TRUE', 'TWO_PI', + 'TYPE_FLOAT', + 'TYPE_INTEGER', + 'TYPE_INVALID', + 'TYPE_KEY', + 'TYPE_ROTATION', + 'TYPE_STRING', + 'TYPE_VECTOR', + 'URL_REQUEST_DENIED', + 'URL_REQUEST_GRANTED', 'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY', 'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE', 'VEHICLE_ANGULAR_FRICTION_TIMESCALE', @@ -419,13 +686,15 @@ $language_data = array ( 'VEHICLE_TYPE_SLED', 'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY', 'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE', + 'VERTICAL', + 'WANDER_PAUSE_AT_WAYPOINTS', 'ZERO_ROTATION', 'ZERO_VECTOR', ), 3 => array( // handlers 'at_rot_target', 'at_target', - 'attached', + 'attach', 'changed', 'collision', 'collision_end', @@ -433,6 +702,7 @@ $language_data = array ( 'control', 'dataserver', 'email', + 'http_request', 'http_response', 'land_collision', 'land_collision_end', @@ -447,6 +717,7 @@ $language_data = array ( 'not_at_target', 'object_rez', 'on_rez', + 'path_update', 'remote_data', 'run_time_permissions', 'sensor', @@ -456,12 +727,14 @@ $language_data = array ( 'touch', 'touch_end', 'touch_start', + 'transaction_result', ), 4 => array( // data types 'float', 'integer', 'key', 'list', + 'quaternion', 'rotation', 'string', 'vector', @@ -480,6 +753,8 @@ $language_data = array ( 'llAsin', 'llAtan2', 'llAttachToAvatar', + 'llAttachToAvatarTemp', + 'llAvatarOnLinkSitTarget', 'llAvatarOnSitTarget', 'llAxes2Rot', 'llAxisAngle2Rot', @@ -487,16 +762,19 @@ $language_data = array ( 'llBase64ToString', 'llBreakAllLinks', 'llBreakLink', + 'llCastRay', 'llCeil', 'llClearCameraParams', + 'llClearLinkMedia', + 'llClearPrimMedia', 'llCloseRemoteDataChannel', - 'llCloud', 'llCollisionFilter', 'llCollisionSound', - 'llCollisionSprite', 'llCos', + 'llCreateCharacter', 'llCreateLink', 'llCSV2List', + 'llDeleteCharacter', 'llDeleteSubList', 'llDeleteSubString', 'llDetachFromAvatar', @@ -524,31 +802,42 @@ $language_data = array ( 'llEmail', 'llEscapeURL', 'llEuler2Rot', + 'llEvade', + 'llExecCharacterCmd', 'llFabs', + 'llFleeFrom', 'llFloor', 'llForceMouselook', 'llFrand', + 'llGenerateKey', 'llGetAccel', 'llGetAgentInfo', 'llGetAgentLanguage', + 'llGetAgentList', 'llGetAgentSize', 'llGetAlpha', 'llGetAndResetTime', 'llGetAnimation', 'llGetAnimationList', + 'llGetAnimationOverride', 'llGetAttached', 'llGetBoundingBox', 'llGetCameraPos', 'llGetCameraRot', 'llGetCenterOfMass', + 'llGetClosestNavPoint', 'llGetColor', 'llGetCreator', 'llGetDate', + 'llGetDisplayName', 'llGetEnergy', + 'llGetEnv', 'llGetForce', 'llGetFreeMemory', + 'llGetFreeURLs', 'llGetGeometricCenter', 'llGetGMTclock', + 'llGetHTTPHeader', 'llGetInventoryCreator', 'llGetInventoryKey', 'llGetInventoryName', @@ -558,13 +847,18 @@ $language_data = array ( 'llGetKey', 'llGetLandOwnerAt', 'llGetLinkKey', + 'llGetLinkMedia', 'llGetLinkName', 'llGetLinkNumber', + 'llGetLinkNumberOfSides', + 'llGetLinkPrimitiveParams', 'llGetListEntryType', 'llGetListLength', 'llGetLocalPos', 'llGetLocalRot', 'llGetMass', + 'llGetMassMKS', + 'llGetMemoryLimit', 'llGetNextEmail', 'llGetNotecardLine', 'llGetNumberOfNotecardLines', @@ -582,12 +876,15 @@ $language_data = array ( 'llGetParcelDetails', 'llGetParcelFlags', 'llGetParcelMaxPrims', + 'llGetParcelMusicURL', 'llGetParcelPrimCount', 'llGetParcelPrimOwners', 'llGetPermissions', 'llGetPermissionsKey', + 'llGetPhysicsMaterial', 'llGetPos', 'llGetPrimitiveParams', + 'llGetPrimMediaParams', 'llGetRegionAgentCount', 'llGetRegionCorner', 'llGetRegionFlags', @@ -600,8 +897,11 @@ $language_data = array ( 'llGetScale', 'llGetScriptName', 'llGetScriptState', + 'llGetSimStats', 'llGetSimulatorHostname', + 'llGetSPMaxMemory', 'llGetStartParameter', + 'llGetStaticPath', 'llGetStatus', 'llGetSubString', 'llGetSunDirection', @@ -614,6 +914,8 @@ $language_data = array ( 'llGetTimestamp', 'llGetTorque', 'llGetUnixTime', + 'llGetUsedMemory', + 'llGetUsername', 'llGetVel', 'llGetWallclock', 'llGiveInventory', @@ -625,13 +927,21 @@ $language_data = array ( 'llGroundRepel', 'llGroundSlope', 'llHTTPRequest', + 'llHTTPResponse', 'llInsertString', 'llInstantMessage', 'llIntegerToBase64', + 'llJson2List', + 'llJsonGetValue', + 'llJsonSetValue', + 'llJsonValueType', 'llKey2Name', + 'llLinkParticleSystem', + 'llLinkSitTarget', 'llList2CSV', 'llList2Float', 'llList2Integer', + 'llList2Json', 'llList2Key', 'llList2List', 'llList2ListStrided', @@ -654,6 +964,7 @@ $language_data = array ( 'llLoopSound', 'llLoopSoundMaster', 'llLoopSoundSlave', + 'llManageEstateAccess', 'llMapDestination', 'llMD5String', 'llMessageLinked', @@ -661,6 +972,7 @@ $language_data = array ( 'llModifyLand', 'llModPow', 'llMoveToTarget', + 'llNavigateTo', 'llOffsetTexture', 'llOpenRemoteDataChannel', 'llOverMyLand', @@ -672,29 +984,39 @@ $language_data = array ( 'llParticleSystem', 'llPassCollisions', 'llPassTouches', + 'llPatrolPoints', 'llPlaySound', 'llPlaySoundSlave', 'llPow', 'llPreloadSound', + 'llPursue', 'llPushObject', 'llRegionSay', + 'llRegionSayTo', 'llReleaseControls', + 'llReleaseURL', 'llRemoteDataReply', - 'llRemoteDataSetRegion', 'llRemoteLoadScriptPin', 'llRemoveFromLandBanList', 'llRemoveFromLandPassList', 'llRemoveInventory', 'llRemoveVehicleFlags', 'llRequestAgentData', + 'llRequestDisplayName', 'llRequestInventoryData', 'llRequestPermissions', + 'llRequestSecureURL', 'llRequestSimulatorData', + 'llRequestURL', + 'llRequestUsername', + 'llResetAnimationOverride', 'llResetLandBanList', 'llResetLandPassList', 'llResetOtherScript', 'llResetScript', 'llResetTime', + 'llReturnObjectsByID', + 'llReturnObjectsByOwner', 'llRezAtRoot', 'llRezObject', 'llRot2Angle', @@ -713,32 +1035,45 @@ $language_data = array ( 'llSay', 'llScaleTexture', 'llScriptDanger', + 'llScriptProfiler', 'llSendRemoteData', 'llSensor', 'llSensorRemove', 'llSensorRepeat', 'llSetAlpha', + 'llSetAngularVelocity', + 'llSetAnimationOverride', 'llSetBuoyancy', 'llSetCameraAtOffset', 'llSetCameraEyeOffset', 'llSetCameraParams', 'llSetClickAction', 'llSetColor', + 'llSetContentType', 'llSetDamage', 'llSetForce', 'llSetForceAndTorque', 'llSetHoverHeight', + 'llSetKeyframedMotion', 'llSetLinkAlpha', + 'llSetLinkCamera', 'llSetLinkColor', + 'llSetLinkMedia', 'llSetLinkPrimitiveParams', + 'llSetLinkPrimitiveParamsFast', 'llSetLinkTexture', + 'llSetLinkTextureAnim', 'llSetLocalRot', + 'llSetMemoryLimit', 'llSetObjectDesc', 'llSetObjectName', 'llSetParcelMusicURL', 'llSetPayPrice', + 'llSetPhysicsMaterial', 'llSetPos', 'llSetPrimitiveParams', + 'llSetPrimMediaParams', + 'llSetRegionPos', 'llSetRemoteScriptAccessPin', 'llSetRot', 'llSetScale', @@ -758,6 +1093,7 @@ $language_data = array ( 'llSetVehicleRotationParam', 'llSetVehicleType', 'llSetVehicleVectorParam', + 'llSetVelocity', 'llSHA1String', 'llShout', 'llSin', @@ -779,32 +1115,57 @@ $language_data = array ( 'llTarget', 'llTargetOmega', 'llTargetRemove', + 'llTeleportAgent', + 'llTeleportAgentGlobalCoords', 'llTeleportAgentHome', + 'llTextBox', 'llToLower', 'llToUpper', + 'llTransferLindenDollars', 'llTriggerSound', 'llTriggerSoundLimited', 'llUnescapeURL', 'llUnSit', + 'llUpdateCharacter', 'llVecDist', 'llVecMag', 'llVecNorm', 'llVolumeDetect', + 'llWanderWithin', 'llWater', 'llWhisper', 'llWind', - 'llXorBase64StringsCorrect', + 'llXorBase64', + 'print', ), 6 => array( // deprecated + 'ATTACH_LPEC', + 'ATTACH_RPEC', + 'DATA_RATING', + 'PERMISSION_CHANGE_JOINTS', + 'PERMISSION_CHANGE_PERMISSIONS', + 'PERMISSION_RELEASE_OWNERSHIP', + 'PERMISSION_REMAP_CONTROLS', + 'PRIM_CAST_SHADOWS', + 'PRIM_MATERIAL_LIGHT', + 'PSYS_SRC_INNERANGLE', + 'PSYS_SRC_OBJ_REL_MASK', + 'PSYS_SRC_OUTERANGLE', + 'VEHICLE_FLAG_NO_FLY_UP', + 'llCloud', 'llMakeExplosion', 'llMakeFire', 'llMakeFountain', 'llMakeSmoke', + 'llRemoteDataSetRegion', 'llSound', 'llSoundPreload', 'llXorBase64Strings', + 'llXorBase64StringsCorrect', ), 7 => array( // unimplemented + 'event', + 'llCollisionSprite', 'llPointAt', 'llRefreshPrimURL', 'llReleaseCamera', @@ -812,7 +1173,6 @@ $language_data = array ( 'llSetPrimURL', 'llStopPointAt', 'llTakeCamera', - 'llTextBox', ), 8 => array( // God mode 'llGodLikeRezObject', @@ -824,9 +1184,9 @@ $language_data = array ( '{', '}', '(', ')', '[', ']', '=', '+', '-', '*', '/', '+=', '-=', '*=', '/=', '++', '--', - '!', '%', '&', '|', '&&', '||', - '==', '!=', '<', '>', '<=', '>=', - '~', '<<', '>>', '^', ':', + '!', '%', '&', '|', '&&', '||', + '==', '!=', '<', '>', '<=', '>=', + '~', '<<', '>>', '^', ':', ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => true, @@ -878,12 +1238,12 @@ $language_data = array ( 'URLS' => array( 1 => '', 2 => '', - 3 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 4 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 5 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 6 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 7 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 8 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} + 3 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 4 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 5 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 6 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 7 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 8 => 'http://wiki.secondlife.com/wiki/{FNAME}', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array(), @@ -895,4 +1255,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); -?> \ No newline at end of file diff --git a/inc/geshi/lua.php b/vendor/easybook/geshi/geshi/lua.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lua.php rename to vendor/easybook/geshi/geshi/lua.php index 8a09ba20e..985cb8c27 --- a/inc/geshi/lua.php +++ b/vendor/easybook/geshi/geshi/lua.php @@ -173,5 +173,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/m68k.php b/vendor/easybook/geshi/geshi/m68k.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/m68k.php rename to vendor/easybook/geshi/geshi/m68k.php index 98321577b..983c288ec --- a/inc/geshi/m68k.php +++ b/vendor/easybook/geshi/geshi/m68k.php @@ -139,5 +139,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 8 ); - -?> diff --git a/inc/geshi/magiksf.php b/vendor/easybook/geshi/geshi/magiksf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/magiksf.php rename to vendor/easybook/geshi/geshi/magiksf.php diff --git a/inc/geshi/make.php b/vendor/easybook/geshi/geshi/make.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/make.php rename to vendor/easybook/geshi/geshi/make.php diff --git a/inc/geshi/mapbasic.php b/vendor/easybook/geshi/geshi/mapbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mapbasic.php rename to vendor/easybook/geshi/geshi/mapbasic.php diff --git a/inc/geshi/matlab.php b/vendor/easybook/geshi/geshi/matlab.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/matlab.php rename to vendor/easybook/geshi/geshi/matlab.php diff --git a/inc/geshi/mirc.php b/vendor/easybook/geshi/geshi/mirc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mirc.php rename to vendor/easybook/geshi/geshi/mirc.php diff --git a/inc/geshi/mmix.php b/vendor/easybook/geshi/geshi/mmix.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mmix.php rename to vendor/easybook/geshi/geshi/mmix.php diff --git a/inc/geshi/modula2.php b/vendor/easybook/geshi/geshi/modula2.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/modula2.php rename to vendor/easybook/geshi/geshi/modula2.php diff --git a/inc/geshi/modula3.php b/vendor/easybook/geshi/geshi/modula3.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/modula3.php rename to vendor/easybook/geshi/geshi/modula3.php diff --git a/inc/geshi/mpasm.php b/vendor/easybook/geshi/geshi/mpasm.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/mpasm.php rename to vendor/easybook/geshi/geshi/mpasm.php index f724a9414..a0e1ef8ff --- a/inc/geshi/mpasm.php +++ b/vendor/easybook/geshi/geshi/mpasm.php @@ -160,5 +160,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/mxml.php b/vendor/easybook/geshi/geshi/mxml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/mxml.php rename to vendor/easybook/geshi/geshi/mxml.php index 0cc8287a2..60dfe5f32 --- a/inc/geshi/mxml.php +++ b/vendor/easybook/geshi/geshi/mxml.php @@ -141,5 +141,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/mysql.php b/vendor/easybook/geshi/geshi/mysql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mysql.php rename to vendor/easybook/geshi/geshi/mysql.php diff --git a/inc/geshi/nagios.php b/vendor/easybook/geshi/geshi/nagios.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/nagios.php rename to vendor/easybook/geshi/geshi/nagios.php index 32cbaef9e..47254311c --- a/inc/geshi/nagios.php +++ b/vendor/easybook/geshi/geshi/nagios.php @@ -221,5 +221,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/netrexx.php b/vendor/easybook/geshi/geshi/netrexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/netrexx.php rename to vendor/easybook/geshi/geshi/netrexx.php index 14a2d23fd..b038aa4d5 --- a/inc/geshi/netrexx.php +++ b/vendor/easybook/geshi/geshi/netrexx.php @@ -159,5 +159,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/newlisp.php b/vendor/easybook/geshi/geshi/newlisp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/newlisp.php rename to vendor/easybook/geshi/geshi/newlisp.php diff --git a/vendor/easybook/geshi/geshi/nginx.php b/vendor/easybook/geshi/geshi/nginx.php new file mode 100644 index 000000000..0d4fe3b4f --- /dev/null +++ b/vendor/easybook/geshi/geshi/nginx.php @@ -0,0 +1,868 @@ +<?php +/************************************************************************************* + * nginx.php + * ------ + * Author: Cliff Wells (cliff@nginx.org) + * Copyright: (c) Cliff Wells (http://wiki.nginx.org/CliffWells) + * Contributors: + * - Deoren Moor (http://www.whyaskwhy.org/blog/) + * - Thomas Joiner + * Release Version: 1.0.8.12 + * Date Started: 2010/08/24 + * + * nginx language file for GeSHi. + * + * Original release found at http://forum.nginx.org/read.php?2,123194,123210 + * + * CHANGES + * ------- + * 2012/08/29 + * - Clean up the duplicate keywords + * + * 2012/08/26 + * - Synchronized with directives listed on wiki/doc pages + * - Misc formatting tweaks and language fixes to pass langcheck + * + * 2010/08/24 + * - First Release + * + * TODO (updated 2012/08/26) + * ------------------------- + * - Verify PARSER_CONTROL items are correct + * - Verify REGEXPS + * - Verify ['STYLES']['REGEXPS'] entries + * + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'nginx', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( // core module + // http://wiki.nginx.org/CoreModule + // http://nginx.org/en/docs/ngx_core_module.html + 'daemon', + 'debug_points', + 'env', + 'error_log', + 'events', + 'include', + 'lock_file', + 'master_process', + 'pcre_jit', + 'pid', + 'ssl_engine', + 'timer_resolution', + 'user', + 'worker_cpu_affinity', + 'worker_priority', + 'worker_processes', + 'worker_rlimit_core', + 'worker_rlimit_nofile', + 'worker_rlimit_sigpending', + 'working_directory', + // see EventsModule due to organization of wiki + //'accept_mutex', + //'accept_mutex_delay', + //'debug_connection', + //'multi_accept', + //'use', + //'worker_connections', + ), + 2 => array( // events module + // http://wiki.nginx.org/EventsModule + // http://nginx.org/en/docs/ngx_core_module.html + 'accept_mutex', + 'accept_mutex_delay', + 'debug_connection', + 'devpoll_changes', + 'devpoll_events', + 'kqueue_changes', + 'kqueue_events', + 'epoll_events', + 'multi_accept', + 'rtsig_signo', + 'rtsig_overflow_events', + 'rtsig_overflow_test', + 'rtsig_overflow_threshold', + 'use', + 'worker_connections', + ), + 3 => array( // http module + // http://wiki.nginx.org/HttpCoreModule + // http://nginx.org/en/docs/http/ngx_http_core_module.html + 'aio', + 'alias', + 'chunked_transfer_encoding', + 'client_body_buffer_size', + 'client_body_in_file_only', + 'client_body_in_single_buffer', + 'client_body_temp_path', + 'client_body_timeout', + 'client_header_buffer_size', + 'client_header_timeout', + 'client_max_body_size', + 'connection_pool_size', + 'default_type', + 'directio', + 'directio_alignment', + 'disable_symlinks', + 'error_page', + 'etag', + 'http', + 'if_modified_since', + 'ignore_invalid_headers', + 'internal', + 'keepalive_disable', + 'keepalive_requests', + 'keepalive_timeout', + 'large_client_header_buffers', + 'limit_except', + 'limit_rate', + 'limit_rate_after', + 'lingering_close', + 'lingering_time', + 'lingering_timeout', + 'listen', + 'location', + 'log_not_found', + 'log_subrequest', + 'max_ranges', + 'merge_slashes', + 'msie_padding', + 'msie_refresh', + 'open_file_cache', + 'open_file_cache_errors', + 'open_file_cache_min_uses', + 'open_file_cache_valid', + 'optimize_server_names', + 'port_in_redirect', + 'postpone_output', + 'read_ahead', + 'recursive_error_pages', + 'request_pool_size', + 'reset_timedout_connection', + 'resolver', + 'resolver_timeout', + 'root', + 'satisfy', + 'satisfy_any', + 'send_lowat', + 'send_timeout', + 'sendfile', + 'sendfile_max_chunk', + 'server', + 'server_name', + 'server_name_in_redirect', + 'server_names_hash_bucket_size', + 'server_names_hash_max_size', + 'server_tokens', + 'tcp_nodelay', + 'tcp_nopush', + 'try_files', + 'types', + 'types_hash_bucket_size', + 'types_hash_max_size', + 'underscores_in_headers', + 'variables_hash_bucket_size', + 'variables_hash_max_size', + ), + 4 => array( // upstream module + // http://wiki.nginx.org/HttpUpstreamModule + // http://nginx.org/en/docs/http/ngx_http_upstream_module.html + 'ip_hash', + 'keepalive', + 'least_conn', + // Use the documentation from the core module since every conf will have at least one of those. + //'server', + 'upstream', + ), + 5 => array( // access module + // http://wiki.nginx.org/HttpAccessModule + // http://nginx.org/en/docs/http/ngx_http_access_module.html + 'deny', + 'allow', + ), + 6 => array( // auth basic module + // http://wiki.nginx.org/HttpAuthBasicModule + // http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html + 'auth_basic', + 'auth_basic_user_file' + ), + 7 => array( // auto index module + // http://wiki.nginx.org/HttpAutoindexModule + // http://nginx.org/en/docs/http/ngx_http_autoindex_module.html + 'autoindex', + 'autoindex_exact_size', + 'autoindex_localtime', + ), + 8 => array( // browser module + // http://wiki.nginx.org/HttpBrowserModule + // http://nginx.org/en/docs/http/ngx_http_browser_module.html + 'ancient_browser', + 'ancient_browser_value', + 'modern_browser', + 'modern_browser_value', + ), + 9 => array( // charset module + // http://wiki.nginx.org/HttpCharsetModule + // http://nginx.org/en/docs/http/ngx_http_charset_module.html + 'charset', + 'charset_map', + 'charset_types', + 'override_charset', + 'source_charset', + ), + 10 => array( // empty gif module + // http://wiki.nginx.org/HttpEmptyGifModule + // http://nginx.org/en/docs/http/ngx_http_empty_gif_module.html + 'empty_gif', + ), + 11 => array( // fastcgi module + // http://wiki.nginx.org/HttpFastcgiModule + // http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html + 'fastcgi_bind', + 'fastcgi_buffer_size', + 'fastcgi_buffers', + 'fastcgi_busy_buffers_size', + 'fastcgi_cache', + 'fastcgi_cache_bypass', + 'fastcgi_cache_key', + 'fastcgi_cache_lock', + 'fastcgi_cache_lock_timeout', + 'fastcgi_cache_methods', + 'fastcgi_cache_min_uses', + 'fastcgi_cache_path', + 'fastcgi_cache_use_stale', + 'fastcgi_cache_valid', + 'fastcgi_connect_timeout', + 'fastcgi_hide_header', + 'fastcgi_ignore_client_abort', + 'fastcgi_ignore_headers', + 'fastcgi_index', + 'fastcgi_intercept_errors', + 'fastcgi_keep_conn', + 'fastcgi_max_temp_file_size', + 'fastcgi_next_upstream', + 'fastcgi_no_cache', + 'fastcgi_param', + 'fastcgi_pass', + 'fastcgi_pass_header', + 'fastcgi_pass_request_body', + 'fastcgi_pass_request_headers', + 'fastcgi_read_timeout', + 'fastcgi_redirect_errors', + 'fastcgi_send_timeout', + 'fastcgi_split_path_info', + 'fastcgi_store', + 'fastcgi_store_access', + 'fastcgi_temp_file_write_size', + 'fastcgi_temp_path', + ), + 12 => array( // geo module + // http://wiki.nginx.org/HttpGeoModule + // http://nginx.org/en/docs/http/ngx_http_geo_module.html + 'geo' + ), + 13 => array( // gzip module + // http://wiki.nginx.org/HttpGzipModule + // http://nginx.org/en/docs/http/ngx_http_gzip_module.html + 'gzip', + 'gzip_buffers', + 'gzip_comp_level', + 'gzip_disable', + 'gzip_min_length', + 'gzip_http_version', + 'gzip_proxied', + 'gzip_types', + 'gzip_vary', + ), + 14 => array( // headers module + // http://wiki.nginx.org/HttpHeadersModule + // http://nginx.org/en/docs/http/ngx_http_headers_module.html + 'add_header', + 'expires', + ), + 15 => array( // index module + // http://wiki.nginx.org/HttpIndexModule + // http://nginx.org/en/docs/http/ngx_http_index_module.html + 'index', + ), + 16 => array( // limit requests module + // http://wiki.nginx.org/HttpLimitReqModule + // http://nginx.org/en/docs/http/ngx_http_limit_req_module.html + 'limit_req', + 'limit_req_log_level', + 'limit_req_zone', + ), + 17 => array( // referer module + // http://wiki.nginx.org/HttpRefererModule + // http://nginx.org/en/docs/http/ngx_http_referer_module.html + 'referer_hash_bucket_size', + 'referer_hash_max_size', + 'valid_referers', + ), + 18 => array( // limit zone module + // deprecated in 1.1.8 + // http://wiki.nginx.org/HttpLimitZoneModule + 'limit_zone', + // Covered by documentation for ngx_http_limit_conn_module + //'limit_conn', + ), + 19 => array( // limit connection module + // http://wiki.nginx.org/HttpLimitConnModule + // http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html + 'limit_conn', + 'limit_conn_zone', + 'limit_conn_log_level', + ), + 20 => array( // log module + // http://wiki.nginx.org/HttpLogModule + // http://nginx.org/en/docs/http/ngx_http_log_module.html + 'access_log', + 'log_format', + // Appears to be deprecated + 'log_format_combined', + 'open_log_file_cache', + ), + 21 => array( // map module + // http://wiki.nginx.org/HttpMapModule + // http://nginx.org/en/docs/http/ngx_http_map_module.html + 'map', + 'map_hash_max_size', + 'map_hash_bucket_size', + ), + 22 => array( // memcached module + // http://wiki.nginx.org/HttpMemcachedModule + // http://nginx.org/en/docs/http/ngx_http_memcached_module.html + 'memcached_buffer_size', + 'memcached_connect_timeout', + 'memcached_next_upstream', + 'memcached_pass', + 'memcached_read_timeout', + 'memcached_send_timeout', + ), + 23 => array( // proxy module + // http://wiki.nginx.org/HttpProxyModule + // http://nginx.org/en/docs/http/ngx_http_proxy_module.html + 'proxy_bind', + 'proxy_buffer_size', + 'proxy_buffering', + 'proxy_buffers', + 'proxy_busy_buffers_size', + 'proxy_cache', + 'proxy_cache_bypass', + 'proxy_cache_key', + 'proxy_cache_lock', + 'proxy_cache_lock_timeout', + 'proxy_cache_methods', + 'proxy_cache_min_uses', + 'proxy_cache_path', + 'proxy_cache_use_stale', + 'proxy_cache_valid', + 'proxy_connect_timeout', + 'proxy_cookie_domain', + 'proxy_cookie_path', + 'proxy_headers_hash_bucket_size', + 'proxy_headers_hash_max_size', + 'proxy_hide_header', + 'proxy_http_version', + 'proxy_ignore_client_abort', + 'proxy_ignore_headers', + 'proxy_intercept_errors', + 'proxy_max_temp_file_size', + 'proxy_method', + 'proxy_next_upstream', + 'proxy_no_cache', + 'proxy_pass', + 'proxy_pass_header', + 'proxy_pass_request_body', + 'proxy_pass_request_headers', + 'proxy_redirect', + 'proxy_read_timeout', + 'proxy_redirect_errors', + 'proxy_send_lowat', + 'proxy_send_timeout', + 'proxy_set_body', + 'proxy_set_header', + 'proxy_ssl_session_reuse', + 'proxy_store', + 'proxy_store_access', + 'proxy_temp_file_write_size', + 'proxy_temp_path', + 'proxy_upstream_fail_timeout', + 'proxy_upstream_max_fails', + ), + 24 => array( // rewrite module + // http://wiki.nginx.org/HttpRewriteModule + // http://nginx.org/en/docs/http/ngx_http_rewrite_module.html + 'break', + 'if', + 'return', + 'rewrite', + 'rewrite_log', + 'set', + 'uninitialized_variable_warn', + ), + 25 => array( // ssi module + // http://wiki.nginx.org/HttpSsiModule + // http://nginx.org/en/docs/http/ngx_http_ssi_module.html + 'ssi', + 'ssi_silent_errors', + 'ssi_types', + 'ssi_value_length', + ), + 26 => array( // user id module + // http://wiki.nginx.org/HttpUseridModule + // http://nginx.org/en/docs/http/ngx_http_userid_module.html + 'userid', + 'userid_domain', + 'userid_expires', + 'userid_name', + 'userid_p3p', + 'userid_path', + 'userid_service', + ), + 27 => array( // addition module + // http://wiki.nginx.org/HttpAdditionModule + // http://nginx.org/en/docs/http/ngx_http_addition_module.html + 'add_before_body', + 'add_after_body', + 'addition_types', + ), + 28 => array( // embedded Perl module + // http://wiki.nginx.org/HttpPerlModule + // http://nginx.org/en/docs/http/ngx_http_perl_module.html + 'perl', + 'perl_modules', + 'perl_require', + 'perl_set', + ), + 29 => array( // flash video files module + // http://wiki.nginx.org/HttpFlvModule + // http://nginx.org/en/docs/http/ngx_http_flv_module.html + 'flv', + ), + 30 => array( // gzip precompression module + // http://wiki.nginx.org/HttpGzipStaticModule + // http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html + 'gzip_static', + // Removed to remove duplication with ngx_http_gzip_module + //'gzip_http_version', + //'gzip_proxied', + //'gzip_disable', + //'gzip_vary', + ), + 31 => array( // random index module + // http://wiki.nginx.org/HttpRandomIndexModule + // http://nginx.org/en/docs/http/ngx_http_random_index_module.html + 'random_index', + ), + 32 => array( // real ip module + // http://wiki.nginx.org/HttpRealipModule + // http://nginx.org/en/docs/http/ngx_http_realip_module.html + 'set_real_ip_from', + 'real_ip_header', + 'real_ip_recursive', + ), + 33 => array( // https module + // http://wiki.nginx.org/HttpSslModule + // http://nginx.org/en/docs/http/ngx_http_ssl_module.html + 'ssl', + 'ssl_certificate', + 'ssl_certificate_key', + 'ssl_ciphers', + 'ssl_client_certificate', + 'ssl_crl', + 'ssl_dhparam', + // Use the documentation for the core module since it links to the + // original properly + //'ssl_engine', + 'ssl_prefer_server_ciphers', + 'ssl_protocols', + 'ssl_session_cache', + 'ssl_session_timeout', + 'ssl_verify_client', + 'ssl_verify_depth', + ), + 34 => array( // status module + // http://wiki.nginx.org/HttpStubStatusModule + 'stub_status', + ), + 35 => array( // substitution module + // http://wiki.nginx.org/HttpSubModule + // http://nginx.org/en/docs/http/ngx_http_sub_module.html + 'sub_filter', + 'sub_filter_once', + 'sub_filter_types', + ), + 36 => array( // NginxHttpDavModule + // http://wiki.nginx.org/HttpDavModule + // http://nginx.org/en/docs/http/ngx_http_dav_module.html + 'dav_access', + 'dav_methods', + 'create_full_put_path', + 'min_delete_depth', + ), + 37 => array( // Google performance tools module + // http://wiki.nginx.org/GooglePerftoolsModule + 'google_perftools_profiles', + ), + 38 => array( // xslt module + // http://wiki.nginx.org/HttpXsltModule + // http://nginx.org/en/docs/http/ngx_http_xslt_module.html + 'xslt_entities', + 'xslt_param', + 'xslt_string_param', + 'xslt_stylesheet', + 'xslt_types', + ), + 39 => array( // uWSGI module + // http://wiki.nginx.org/HttpUwsgiModule + 'uwsgi_bind', + 'uwsgi_buffer_size', + 'uwsgi_buffering', + 'uwsgi_buffers', + 'uwsgi_busy_buffers_size', + 'uwsgi_cache', + 'uwsgi_cache_bypass', + 'uwsgi_cache_key', + 'uwsgi_cache_lock', + 'uwsgi_cache_lock_timeout', + 'uwsgi_cache_methods', + 'uwsgi_cache_min_uses', + 'uwsgi_cache_path', + 'uwsgi_cache_use_stale', + 'uwsgi_cache_valid', + 'uwsgi_connect_timeout', + 'uwsgi_hide_header', + 'uwsgi_ignore_client_abort', + 'uwsgi_ignore_headers', + 'uwsgi_intercept_errors', + 'uwsgi_max_temp_file_size', + 'uwsgi_modifier', + 'uwsgi_next_upstream', + 'uwsgi_no_cache', + 'uwsgi_param', + 'uwsgi_pass', + 'uwsgi_pass_header', + 'uwsgi_pass_request_body', + 'uwsgi_pass_request_headers', + 'uwsgi_read_timeout', + 'uwsgi_send_timeout', + 'uwsgi_store', + 'uwsgi_store_access', + 'uwsgi_string', + 'uwsgi_temp_file_write_size', + 'uwsgi_temp_path', + ), + 40 => array( // SCGI module + // http://wiki.nginx.org/HttpScgiModule + // Note: These directives were pulled from nginx 1.2.3 + // ngx_http_scgi_module.c source file. + 'scgi_bind', + 'scgi_buffering', + 'scgi_buffers', + 'scgi_buffer_size', + 'scgi_busy_buffers_size', + 'scgi_cache', + 'scgi_cache_bypass', + 'scgi_cache_key', + 'scgi_cache_lock', + 'scgi_cache_lock_timeout', + 'scgi_cache_methods', + 'scgi_cache_min_uses', + 'scgi_cache_path', + 'scgi_cache_use_stale', + 'scgi_cache_valid', + 'scgi_connect_timeout', + 'scgi_hide_header', + 'scgi_ignore_client_abort', + 'scgi_ignore_headers', + 'scgi_intercept_errors', + 'scgi_max_temp_file_size', + 'scgi_next_upstream', + 'scgi_no_cache', + 'scgi_param', + 'scgi_pass', + 'scgi_pass_header', + 'scgi_pass_request_body', + 'scgi_pass_request_headers', + 'scgi_read_timeout', + 'scgi_send_timeout', + 'scgi_store', + 'scgi_store_access', + 'scgi_temp_file_write_size', + 'scgi_temp_path', + ), + 41 => array( // split clients module + // http://wiki.nginx.org/HttpSplitClientsModule + // http://nginx.org/en/docs/http/ngx_http_split_clients_module.html + 'split_clients', + ), + 42 => array( // X-Accel module + // http://wiki.nginx.org/X-accel + 'X-Accel-Redirect', + 'X-Accel-Buffering', + 'X-Accel-Charset', + 'X-Accel-Expires', + 'X-Accel-Limit-Rate', + ), + 43 => array( // degradation module + // http://wiki.nginx.org/HttpDegradationModule + 'degradation', + 'degrade', + ), + 44 => array( // GeoIP module + // http://wiki.nginx.org/HttpGeoipModule + // http://nginx.org/en/docs/http/ngx_http_geoip_module.html + 'geoip_country', + 'geoip_city', + 'geoip_proxy', + 'geoip_proxy_recursive', + ), + 45 => array( // Image filter module + // http://wiki.nginx.org/HttpImageFilterModule + // http://nginx.org/en/docs/http/ngx_http_image_filter_module.html + 'image_filter', + 'image_filter_buffer', + 'image_filter_jpeg_quality', + 'image_filter_sharpen', + 'image_filter_transparency', + ), + 46 => array( // MP4 module + // http://wiki.nginx.org/HttpMp4Module + // http://nginx.org/en/docs/http/ngx_http_mp4_module.html + 'mp4', + 'mp4_buffer_size', + 'mp4_max_buffer_size', + ), + 47 => array( // Secure Link module + // http://wiki.nginx.org/HttpSecureLinkModule + // http://nginx.org/en/docs/http/ngx_http_secure_link_module.html + 'secure_link', + 'secure_link_md', + 'secure_link_secret', + ), + 48 => array( // Mail Core module + // http://wiki.nginx.org/MailCoreModule + 'auth', + 'imap_capabilities', + 'imap_client_buffer', + 'pop_auth', + 'pop_capabilities', + 'protocol', + 'smtp_auth', + 'smtp_capabilities', + 'so_keepalive', + 'timeout', + // Removed to prioritize documentation for core module + //'listen', + //'server', + //'server_name', + ), + 49 => array( // Mail Auth module + // http://wiki.nginx.org/MailAuthModule + 'auth_http', + 'auth_http_header', + 'auth_http_timeout', + ), + 50 => array( // Mail Proxy module + // http://wiki.nginx.org/MailProxyModule + 'proxy', + 'proxy_buffer', + 'proxy_pass_error_message', + 'proxy_timeout', + 'xclient', + ), + 51 => array( // Mail SSL module + // http://wiki.nginx.org/MailSslModule + // Removed to prioritize documentation for http + //'ssl', + //'ssl_certificate', + //'ssl_certificate_key', + //'ssl_ciphers', + //'ssl_prefer_server_ciphers', + //'ssl_protocols', + //'ssl_session_cache', + //'ssl_session_timeout', + 'starttls', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '=', '~', ';' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + 9 => true, + 10 => true, + 11 => true, + 12 => true, + 13 => true, + 14 => true, + 15 => true, + 16 => true, + 17 => true, + 18 => true, + 19 => true, + 20 => true, + 21 => true, + 22 => true, + 23 => true, + 24 => true, + 25 => true, + 26 => true, + 27 => true, + 28 => true, + 29 => true, + 30 => true, + 31 => true, + 32 => true, + 33 => true, + 34 => true, + 35 => true, + 36 => true, + 37 => true, + 38 => true, + 39 => true, + 40 => true, + 41 => true, + 42 => true, + 43 => true, + 44 => true, + 45 => true, + 46 => true, + 47 => true, + 48 => true, + 49 => true, + 50 => true, + 51 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #000066;', + 4 => 'color: #000000; font-weight: bold;', + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => 'http://wiki.nginx.org/CoreModule#{FNAME}', + 2 => 'http://wiki.nginx.org/NginxHttpEventsModule#{FNAME}', + 3 => 'http://wiki.nginx.org/NginxHttpCoreModule#{FNAME}', + 4 => 'http://wiki.nginx.org/NginxHttpUpstreamModule#{FNAME}', + 5 => 'http://wiki.nginx.org/NginxHttpAccessModule#{FNAME}', + 6 => 'http://wiki.nginx.org/NginxHttpAuthBasicModule#{FNAME}', + 7 => 'http://wiki.nginx.org/NginxHttpAutoIndexModule#{FNAME}', + 8 => 'http://wiki.nginx.org/NginxHttpBrowserModule#{FNAME}', + 9 => 'http://wiki.nginx.org/NginxHttpCharsetModule#{FNAME}', + 10 => 'http://wiki.nginx.org/NginxHttpEmptyGifModule#{FNAME}', + 11 => 'http://wiki.nginx.org/NginxHttpFcgiModule#{FNAME}', + 12 => 'http://wiki.nginx.org/NginxHttpGeoModule#{FNAME}', + 13 => 'http://wiki.nginx.org/NginxHttpGzipModule#{FNAME}', + 14 => 'http://wiki.nginx.org/NginxHttpHeadersModule#{FNAME}', + 15 => 'http://wiki.nginx.org/NginxHttpIndexModule#{FNAME}', + 16 => 'http://wiki.nginx.org/HttpLimitReqModule#{FNAME}', + 17 => 'http://wiki.nginx.org/NginxHttpRefererModule#{FNAME}', + 18 => 'http://wiki.nginx.org/NginxHttpLimitZoneModule#{FNAME}', + 19 => 'http://wiki.nginx.org/HttpLimitConnModule#{FNAME}', + 20 => 'http://wiki.nginx.org/NginxHttpLogModule#{FNAME}', + 21 => 'http://wiki.nginx.org/NginxHttpMapModule#{FNAME}', + 22 => 'http://wiki.nginx.org/NginxHttpMemcachedModule#{FNAME}', + 23 => 'http://wiki.nginx.org/NginxHttpProxyModule#{FNAME}', + 24 => 'http://wiki.nginx.org/NginxHttpRewriteModule#{FNAME}', + 25 => 'http://wiki.nginx.org/NginxHttpSsiModule#{FNAME}', + 26 => 'http://wiki.nginx.org/NginxHttpUserIdModule#{FNAME}', + 27 => 'http://wiki.nginx.org/NginxHttpAdditionModule#{FNAME}', + 28 => 'http://wiki.nginx.org/NginxHttpEmbeddedPerlModule#{FNAME}', + 29 => 'http://wiki.nginx.org/NginxHttpFlvStreamModule#{FNAME}', + 30 => 'http://wiki.nginx.org/NginxHttpGzipStaticModule#{FNAME}', + 31 => 'http://wiki.nginx.org/NginxHttpRandomIndexModule#{FNAME}', + 32 => 'http://wiki.nginx.org/NginxHttpRealIpModule#{FNAME}', + 33 => 'http://wiki.nginx.org/NginxHttpSslModule#{FNAME}', + 34 => 'http://wiki.nginx.org/NginxHttpStubStatusModule#{FNAME}', + 35 => 'http://wiki.nginx.org/NginxHttpSubModule#{FNAME}', + 36 => 'http://wiki.nginx.org/NginxHttpDavModule#{FNAME}', + 37 => 'http://wiki.nginx.org/NginxHttpGooglePerfToolsModule#{FNAME}', + 38 => 'http://wiki.nginx.org/NginxHttpXsltModule#{FNAME}', + 39 => 'http://wiki.nginx.org/NginxHttpUwsgiModule#{FNAME}', + 40 => 'http://wiki.nginx.org/HttpScgiModule', + 41 => 'http://wiki.nginx.org/HttpSplitClientsModule#{FNAME}', + 42 => 'http://wiki.nginx.org/X-accel#{FNAME}', + 43 => 'http://wiki.nginx.org/HttpDegradationModule#{FNAME}', + 44 => 'http://wiki.nginx.org/HttpGeoipModule#{FNAME}', + 45 => 'http://wiki.nginx.org/HttpImageFilterModule#{FNAME}', + 46 => 'http://wiki.nginx.org/HttpMp4Module#{FNAME}', + 47 => 'http://wiki.nginx.org/HttpSecureLinkModule#{FNAME}', + 48 => 'http://wiki.nginx.org/MailCoreModule#{FNAME}', + 49 => 'http://wiki.nginx.org/MailAuthModule#{FNAME}', + 50 => 'http://wiki.nginx.org/MailProxyModule#{FNAME}', + 51 => 'http://wiki.nginx.org/MailSslModule#{FNAME}', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*', + 4 => '<[a-zA-Z_][a-zA-Z0-9_]*>', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/nsis.php b/vendor/easybook/geshi/geshi/nsis.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/nsis.php rename to vendor/easybook/geshi/geshi/nsis.php index 35df9b4b8..29ba952b4 --- a/inc/geshi/nsis.php +++ b/vendor/easybook/geshi/geshi/nsis.php @@ -347,5 +347,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oberon2.php b/vendor/easybook/geshi/geshi/oberon2.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oberon2.php rename to vendor/easybook/geshi/geshi/oberon2.php diff --git a/inc/geshi/objc.php b/vendor/easybook/geshi/geshi/objc.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/objc.php rename to vendor/easybook/geshi/geshi/objc.php index 2f5162d76..52576c16a --- a/inc/geshi/objc.php +++ b/vendor/easybook/geshi/geshi/objc.php @@ -354,5 +354,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/objeck.php b/vendor/easybook/geshi/geshi/objeck.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/objeck.php rename to vendor/easybook/geshi/geshi/objeck.php diff --git a/inc/geshi/ocaml-brief.php b/vendor/easybook/geshi/geshi/ocaml-brief.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/ocaml-brief.php rename to vendor/easybook/geshi/geshi/ocaml-brief.php index b518adf87..c5fee2fec --- a/inc/geshi/ocaml-brief.php +++ b/vendor/easybook/geshi/geshi/ocaml-brief.php @@ -108,5 +108,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/ocaml.php b/vendor/easybook/geshi/geshi/ocaml.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ocaml.php rename to vendor/easybook/geshi/geshi/ocaml.php diff --git a/inc/geshi/octave.php b/vendor/easybook/geshi/geshi/octave.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/octave.php rename to vendor/easybook/geshi/geshi/octave.php index ccffcd97a..7bab9b138 --- a/inc/geshi/octave.php +++ b/vendor/easybook/geshi/geshi/octave.php @@ -511,5 +511,3 @@ $language_data = array ( 'SCRIPT' => array(), ) ); - -?> diff --git a/inc/geshi/oobas.php b/vendor/easybook/geshi/geshi/oobas.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oobas.php rename to vendor/easybook/geshi/geshi/oobas.php index ff75af65f..25c345bbb --- a/inc/geshi/oobas.php +++ b/vendor/easybook/geshi/geshi/oobas.php @@ -131,5 +131,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oorexx.php b/vendor/easybook/geshi/geshi/oorexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oorexx.php rename to vendor/easybook/geshi/geshi/oorexx.php index 62c6cc463..15cdd92e7 --- a/inc/geshi/oorexx.php +++ b/vendor/easybook/geshi/geshi/oorexx.php @@ -167,5 +167,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/oracle11.php b/vendor/easybook/geshi/geshi/oracle11.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oracle11.php rename to vendor/easybook/geshi/geshi/oracle11.php index 16259e695..97b147f5d --- a/inc/geshi/oracle11.php +++ b/vendor/easybook/geshi/geshi/oracle11.php @@ -610,5 +610,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oracle8.php b/vendor/easybook/geshi/geshi/oracle8.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oracle8.php rename to vendor/easybook/geshi/geshi/oracle8.php index 145bda407..b49390806 --- a/inc/geshi/oracle8.php +++ b/vendor/easybook/geshi/geshi/oracle8.php @@ -492,5 +492,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oxygene.php b/vendor/easybook/geshi/geshi/oxygene.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oxygene.php rename to vendor/easybook/geshi/geshi/oxygene.php diff --git a/inc/geshi/oz.php b/vendor/easybook/geshi/geshi/oz.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oz.php rename to vendor/easybook/geshi/geshi/oz.php diff --git a/inc/geshi/parasail.php b/vendor/easybook/geshi/geshi/parasail.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/parasail.php rename to vendor/easybook/geshi/geshi/parasail.php diff --git a/vendor/easybook/geshi/geshi/parigp.php b/vendor/easybook/geshi/geshi/parigp.php new file mode 100755 index 000000000..1a5d4a73e --- /dev/null +++ b/vendor/easybook/geshi/geshi/parigp.php @@ -0,0 +1,293 @@ +<?php +/************************************************************************************* + * parigp.php + * -------- + * Author: Charles R Greathouse IV (charles@crg4.com) + * Copyright: 2011-2013 Charles R Greathouse IV (http://math.crg4.com/) + * Release Version: 1.0.8.12 + * Date Started: 2011/05/11 + * + * PARI/GP language file for GeSHi. + * + * CHANGES + * ------- + * 2011/07/09 (1.0.8.11) + * - First Release + * 2013/02/05 (1.0.8.12) + * - Added 2.6.0 commands, default, member functions, and error-handling + * + * TODO (updated 2011/07/09) + * ------------------------- + * + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'PARI/GP', + 'COMMENT_SINGLE' => array(1 => '\\\\'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => array( + # Integers + 1 => GESHI_NUMBER_INT_BASIC, + # Reals + 2 => GESHI_NUMBER_FLT_SCI_ZERO + ), + 'KEYWORDS' => array( + 1 => array( + 'abs','acos','acosh','addhelp','addprimes','agm','alarm','algdep', + 'alias','allocatemem','apply','arg','asin','asinh','atan','atanh', + 'bernfrac','bernpol','bernreal','bernvec','besselh1','besselh2', + 'besseli','besselj','besseljh','besselk','besseln','bestappr', + 'bestapprPade','bezout','bezoutres','bigomega','binary','binomial', + 'bitand','bitneg','bitnegimply','bitor','bittest','bitxor', + 'bnfcertify','bnfcompress','bnfdecodemodule','bnfinit', + 'bnfisintnorm','bnfisnorm','bnfisprincipal','bnfissunit', + 'bnfisunit','bnfnarrow','bnfsignunit','bnfsunit','bnrclassno', + 'bnrclassnolist','bnrconductor','bnrconductorofchar','bnrdisc', + 'bnrdisclist','bnrinit','bnrisconductor','bnrisprincipal','bnrL1', + 'bnrrootnumber','bnrstark','break','breakpoint','Catalan','ceil', + 'centerlift','charpoly','chinese','cmp','Col','component','concat', + 'conj','conjvec','content','contfrac','contfracpnqn','core', + 'coredisc','cos','cosh','cotan','dbg_down','dbg_err','dbg_up', + 'dbg_x','default','denominator','deriv','derivnum','diffop', + 'digits','dilog','dirdiv','direuler','dirmul','dirzetak','divisors', + 'divrem','eint1','elladd','ellak','ellan','ellanalyticrank','ellap', + 'ellbil','ellcard','ellchangecurve','ellchangepoint', + 'ellconvertname','elldivpol','elleisnum','elleta','ellffinit', + 'ellfromj','ellgenerators','ellglobalred','ellgroup','ellheegner', + 'ellheight','ellheightmatrix','ellidentify','ellinit', + 'ellisoncurve','ellj','ellL1','elllocalred','elllog','elllseries', + 'ellminimalmodel','ellmodulareqn','ellmul','ellneg','ellorder', + 'ellordinate','ellpointtoz','ellrootno','ellsearch','ellsigma', + 'ellsub','elltaniyama','elltatepairing','elltors','ellweilpairing', + 'ellwp','ellzeta','ellztopoint','erfc','errname','error','eta','Euler', + 'eulerphi','eval','exp','extern','externstr','factor','factorback', + 'factorcantor','factorff','factorial','factorint','factormod', + 'factornf','factorpadic','ffgen','ffinit','fflog','ffnbirred', + 'fforder','ffprimroot','fibonacci','floor','for','forcomposite','fordiv','forell', + 'forprime','forqfvec','forstep','forsubgroup','forvec','frac','galoisexport', + 'galoisfixedfield','galoisgetpol','galoisidentify','galoisinit', + 'galoisisabelian','galoisisnormal','galoispermtopol', + 'galoissubcyclo','galoissubfields','galoissubgroups','gamma', + 'gammah','gcd','getenv','getheap','getrand','getstack','gettime', + 'global','hammingweight','hilbert','hyperu','I','idealadd', + 'idealaddtoone','idealappr','idealchinese','idealcoprime', + 'idealdiv','idealfactor','idealfactorback','idealfrobenius', + 'idealhnf','idealintersect','idealinv','ideallist','ideallistarch', + 'ideallog','idealmin','idealmul','idealnorm','idealnumden', + 'idealpow','idealprimedec','idealramgroups','idealred','idealstar', + 'idealtwoelt','idealval','if','iferr','iferrname','imag','incgam','incgamc','input', + 'install','intcirc','intformal','intfouriercos','intfourierexp', + 'intfouriersin','intfuncinit','intlaplaceinv','intmellininv', + 'intmellininvshort','intnum','intnuminit','intnuminitgen', + 'intnumromb','intnumstep','isfundamental','ispolygonal','ispower','ispowerful', + 'isprime','isprimepower','ispseudoprime','issquare','issquarefree','istotient', + 'kill','kronecker','lcm','length','lex','lift','lindep','List', + 'listcreate','listinsert','listkill','listpop','listput','listsort', + 'lngamma','local','log','Mat','matadjoint','matalgtobasis', + 'matbasistoalg','matcompanion','matconcat','matcontent','matdet','matdetint', + 'matdiagonal','mateigen','matfrobenius','mathess','mathilbert', + 'mathnf','mathnfmod','mathnfmodid','matid','matimage', + 'matimagecompl','matindexrank','matintersect','matinverseimage', + 'matisdiagonal','matker','matkerint','matmuldiagonal', + 'matmultodiagonal','matpascal','matrank','matrix','matrixqz', + 'matsize','matsnf','matsolve','matsolvemod','matsupplement', + 'mattranspose','max','min','minpoly','Mod','modreverse','moebius', + 'my','newtonpoly','next','nextprime','nfalgtobasis','nfbasis', + 'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv', + 'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul', + 'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr', + 'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor', + 'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj', + 'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl', + 'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots', + 'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','norm','norml2', + 'numbpart','numdiv','numerator','numtoperm','O','omega','padicappr', + 'padicfields','padicprec','partitions','permtonum','Pi','plot', + 'plotbox','plotclip','plotcolor','plotcopy','plotcursor','plotdraw', + 'ploth','plothraw','plothsizes','plotinit','plotkill','plotlines', + 'plotlinetype','plotmove','plotpoints','plotpointsize', + 'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline', + 'plotrmove','plotrpoint','plotscale','plotstring','Pol', + 'polchebyshev','polcoeff','polcompositum','polcyclo','polcyclofactors','poldegree', + 'poldisc','poldiscreduced','polgalois','polgraeffe','polhensellift', + 'polhermite','polinterpolate','poliscyclo','poliscycloprod', + 'polisirreducible','pollead','pollegendre','polrecip','polred', + 'polredabs','polredbest','polredord','polresultant','Polrev','polroots', + 'polrootsff','polrootsmod','polrootspadic','polsturm','polsubcyclo', + 'polsylvestermatrix','polsym','poltchebi','poltschirnhaus', + 'polylog','polzagier','precision','precprime','prime','primepi', + 'primes','print','print1','printf','printsep','printtex','prod','prodeuler', + 'prodinf','psdraw','psi','psploth','psplothraw','Qfb','qfbclassno', + 'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw', + 'qfbprimeform','qfbred','qfbsolve','qfgaussred','qfjacobi','qflll', + 'qflllgram','qfminim','qfperfection','qfrep','qfsign', + 'quadclassunit','quaddisc','quadgen','quadhilbert','quadpoly', + 'quadray','quadregulator','quadunit','quit','random','randomprime','read', + 'readvec','real','removeprimes','return','rnfalgtobasis','rnfbasis', + 'rnfbasistoalg','rnfcharpoly','rnfconductor','rnfdedekind','rnfdet', + 'rnfdisc','rnfeltabstorel','rnfeltdown','rnfeltreltoabs','rnfeltup', + 'rnfequation','rnfhnfbasis','rnfidealabstorel','rnfidealdown', + 'rnfidealhnf','rnfidealmul','rnfidealnormabs','rnfidealnormrel', + 'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit', + 'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer', + 'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs', + 'rnfpseudobasis','rnfsteinitz','round','select','Ser','serconvol', + 'serlaplace','serreverse','Set','setbinop','setintersect', + 'setisset','setminus','setrand','setsearch','setunion','shift', + 'shiftmul','sigma','sign','simplify','sin','sinh','sizebyte', + 'sizedigit','solve','sqr','sqrt','sqrtint','sqrtn','sqrtnint','stirling','Str', + 'Strchr','Strexpand','Strprintf','Strtex','subgrouplist','subst', + 'substpol','substvec','sum','sumalt','sumdedekind','sumdiv','sumdivmult','sumdigits', + 'sumformal','suminf','sumnum','sumnumalt','sumnuminit','sumpos','system','tan', + 'tanh','taylor','teichmuller','theta','thetanullk','thue', + 'thueinit','trace','trap','truncate','type','until','valuation', + 'variable','Vec','vecextract','vecmax','vecmin','Vecrev', + 'vecsearch','Vecsmall','vecsort','vector','vectorsmall','vectorv', + 'version','warning','weber','whatnow','while','write','write1', + 'writebin','writetex','zeta','zetak','zetakinit','zncoppersmith', + 'znlog','znorder','znprimroot','znstar' + ), + + 2 => array( + 'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol', + 'vecsmall','vec','list','str','genstr','gen','typ' + ), + + 3 => array( + 'TeXstyle','breakloop','colors','compatible','datadir','debug', + 'debugfiles','debugmem','echo','factor_add_primes','factor_proven', + 'format','graphcolormap','graphcolors','help','histfile','histsize', + 'lines','linewrap',/*'log',*/'logfile','new_galois_format','output', + 'parisize','path','prettyprinter','primelimit','prompt_cont', + 'prompt','psfile','readline','realprecision','recover','secure', + 'seriesprecision',/*'simplify',*/'sopath','strictmatch','timer' + ), + + 4 => array( + '"e_ARCH"','"e_BUG"','"e_FILE"','"e_IMPL"','"e_PACKAGE"','"e_DIM"', + '"e_FLAG"','"e_NOTFUNC"','"e_OP"','"e_TYPE"','"e_TYPE2"', + '"e_PRIORITY"','"e_VAR"','"e_DOMAIN"','"e_MAXPRIME"','"e_MEM"', + '"e_OVERFLOW"','"e_PREC"','"e_STACK"','"e_ALARM"','"e_USER"', + '"e_CONSTPOL"','"e_COPRIME"','"e_INV"','"e_IRREDPOL"','"e_MISC"', + '"e_MODULUS"','"e_NEGVAL"','"e_PRIME"','"e_ROOTS0"','"e_SQRTN"' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\'' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #e07022;', + 3 => 'color: #00d2d2;', + 4 => 'color: #00d2d2;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 'MULTI' => 'color: #008000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #111111; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #002222;' + ), + 'STRINGS' => array( + 0 => 'color: #800080;' + ), + 'NUMBERS' => array( + 0 => 'color: #666666;', + 1 => 'color: #666666;', + 2 => 'color: #666666;' + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array( + 0 => 'color: #e07022', # Should be the same as keyword group 2 + 1 => 'color: #555555', + 2 => 'color: #0000ff' # Should be the same as keyword group 1 + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + 0 => array( # types marked on variables + GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE|ERROR))"', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '"', + GESHI_AFTER => '"' + ), + 1 => array( # literal variables + GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( # member functions + GESHI_SEARCH => '(?<=[.])(a[1-6]|b[2-8]|c[4-6]|area|bid|bnf|clgp|cyc|diff|disc|[efjp]|fu|gen|index|mod|nf|no|omega|pol|reg|roots|sign|r[12]|t2|tate|tu|zk|zkst)\b', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 2 => array( + '[a-zA-Z][a-zA-Z0-9_]*:' => '' + ), + 3 => array( + 'default(' => '' + ), + 4 => array( + 'iferrname(' => '' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/pascal.php b/vendor/easybook/geshi/geshi/pascal.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pascal.php rename to vendor/easybook/geshi/geshi/pascal.php diff --git a/inc/geshi/pcre.php b/vendor/easybook/geshi/geshi/pcre.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pcre.php rename to vendor/easybook/geshi/geshi/pcre.php diff --git a/inc/geshi/per.php b/vendor/easybook/geshi/geshi/per.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/per.php rename to vendor/easybook/geshi/geshi/per.php index c42ddb58a..c3b5d1508 --- a/inc/geshi/per.php +++ b/vendor/easybook/geshi/geshi/per.php @@ -298,5 +298,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/perl.php b/vendor/easybook/geshi/geshi/perl.php old mode 100644 new mode 100755 similarity index 89% rename from inc/geshi/perl.php rename to vendor/easybook/geshi/geshi/perl.php index 309ebd861..2c3dc92fe --- a/inc/geshi/perl.php +++ b/vendor/easybook/geshi/geshi/perl.php @@ -74,6 +74,12 @@ $language_data = array ( //Predefined variables 5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/', ), + 'NUMBERS' => array( + // Includes rules for decimal, octal (0777), hexidecimal (0xDEADBEEF), + // binary (0b101010) numbers, amended to work with underscores (since + // Perl allows you to use underscores in number literals) + 0 => '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\._]e[+\-])([1-9][\d_]*?|0)(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.%])(?<![\d\._]e[+\-])0b[01_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0[0-7_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0x[0-9a-fA-F_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])[\d_]+?\.[\d_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])', + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"','`'), 'HARDQUOTE' => array("'", "'"), // An optional 2-element array defining the beginning and end of a hard-quoted string @@ -106,7 +112,7 @@ $language_data = array ( 'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority', 'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent', 'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent', - 'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep', + 'getsockname', 'getsockopt', 'given', 'glob', 'gmtime', 'goto', 'grep', 'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local', 'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget', @@ -115,17 +121,17 @@ $language_data = array ( 'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw', 'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe', 'recv', 'ref', 'rename', 'require', 'return', - 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek', + 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'say', 'scalar', 'seek', 'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', 'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent', 'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget', 'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair', - 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', + 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', 'state', 'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread', 'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', 'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef', 'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values', - 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y' + 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'when', 'write', 'y' ) ), 'SYMBOLS' => array( diff --git a/inc/geshi/perl6.php b/vendor/easybook/geshi/geshi/perl6.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/perl6.php rename to vendor/easybook/geshi/geshi/perl6.php diff --git a/inc/geshi/pf.php b/vendor/easybook/geshi/geshi/pf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pf.php rename to vendor/easybook/geshi/geshi/pf.php diff --git a/inc/geshi/php-brief.php b/vendor/easybook/geshi/geshi/php-brief.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/php-brief.php rename to vendor/easybook/geshi/geshi/php-brief.php diff --git a/inc/geshi/php.php b/vendor/easybook/geshi/geshi/php.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/php.php rename to vendor/easybook/geshi/geshi/php.php index 2827457b1..7b5c16e18 --- a/inc/geshi/php.php +++ b/vendor/easybook/geshi/geshi/php.php @@ -1113,5 +1113,3 @@ $language_data = array( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/pic16.php b/vendor/easybook/geshi/geshi/pic16.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pic16.php rename to vendor/easybook/geshi/geshi/pic16.php index 46d7ac94d..2e28f17b6 --- a/inc/geshi/pic16.php +++ b/vendor/easybook/geshi/geshi/pic16.php @@ -137,5 +137,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/pike.php b/vendor/easybook/geshi/geshi/pike.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pike.php rename to vendor/easybook/geshi/geshi/pike.php index 743f711b1..dcc53092d --- a/inc/geshi/pike.php +++ b/vendor/easybook/geshi/geshi/pike.php @@ -99,5 +99,3 @@ $language_data = array( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/pixelbender.php b/vendor/easybook/geshi/geshi/pixelbender.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pixelbender.php rename to vendor/easybook/geshi/geshi/pixelbender.php index 7b29ee6c3..6a2c8dea0 --- a/inc/geshi/pixelbender.php +++ b/vendor/easybook/geshi/geshi/pixelbender.php @@ -172,5 +172,3 @@ $language_data = array( 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/pli.php b/vendor/easybook/geshi/geshi/pli.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pli.php rename to vendor/easybook/geshi/geshi/pli.php diff --git a/inc/geshi/plsql.php b/vendor/easybook/geshi/geshi/plsql.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/plsql.php rename to vendor/easybook/geshi/geshi/plsql.php index 09f90a225..58f7c90f4 --- a/inc/geshi/plsql.php +++ b/vendor/easybook/geshi/geshi/plsql.php @@ -252,5 +252,3 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/postgresql.php b/vendor/easybook/geshi/geshi/postgresql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/postgresql.php rename to vendor/easybook/geshi/geshi/postgresql.php diff --git a/inc/geshi/povray.php b/vendor/easybook/geshi/geshi/povray.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/povray.php rename to vendor/easybook/geshi/geshi/povray.php diff --git a/inc/geshi/powerbuilder.php b/vendor/easybook/geshi/geshi/powerbuilder.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/powerbuilder.php rename to vendor/easybook/geshi/geshi/powerbuilder.php diff --git a/inc/geshi/powershell.php b/vendor/easybook/geshi/geshi/powershell.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/powershell.php rename to vendor/easybook/geshi/geshi/powershell.php diff --git a/inc/geshi/proftpd.php b/vendor/easybook/geshi/geshi/proftpd.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/proftpd.php rename to vendor/easybook/geshi/geshi/proftpd.php diff --git a/inc/geshi/progress.php b/vendor/easybook/geshi/geshi/progress.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/progress.php rename to vendor/easybook/geshi/geshi/progress.php diff --git a/inc/geshi/prolog.php b/vendor/easybook/geshi/geshi/prolog.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/prolog.php rename to vendor/easybook/geshi/geshi/prolog.php diff --git a/inc/geshi/properties.php b/vendor/easybook/geshi/geshi/properties.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/properties.php rename to vendor/easybook/geshi/geshi/properties.php diff --git a/inc/geshi/providex.php b/vendor/easybook/geshi/geshi/providex.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/providex.php rename to vendor/easybook/geshi/geshi/providex.php index 1e735bd0f..1a7b08bbe --- a/inc/geshi/providex.php +++ b/vendor/easybook/geshi/geshi/providex.php @@ -295,5 +295,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/purebasic.php b/vendor/easybook/geshi/geshi/purebasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/purebasic.php rename to vendor/easybook/geshi/geshi/purebasic.php diff --git a/inc/geshi/pycon.php b/vendor/easybook/geshi/geshi/pycon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pycon.php rename to vendor/easybook/geshi/geshi/pycon.php diff --git a/inc/geshi/pys60.php b/vendor/easybook/geshi/geshi/pys60.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pys60.php rename to vendor/easybook/geshi/geshi/pys60.php index 59c67fac7..865b59adb --- a/inc/geshi/pys60.php +++ b/vendor/easybook/geshi/geshi/pys60.php @@ -269,5 +269,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/python.php b/vendor/easybook/geshi/geshi/python.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/python.php rename to vendor/easybook/geshi/geshi/python.php diff --git a/inc/geshi/q.php b/vendor/easybook/geshi/geshi/q.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/q.php rename to vendor/easybook/geshi/geshi/q.php diff --git a/inc/geshi/qbasic.php b/vendor/easybook/geshi/geshi/qbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/qbasic.php rename to vendor/easybook/geshi/geshi/qbasic.php diff --git a/vendor/easybook/geshi/geshi/racket.php b/vendor/easybook/geshi/geshi/racket.php new file mode 100644 index 000000000..c0d931b41 --- /dev/null +++ b/vendor/easybook/geshi/geshi/racket.php @@ -0,0 +1,964 @@ +<?php +/************************************************************************************* + * racket.php + * ---------- + * Author: Tim Brown (tim@timb.net) + * Copyright: (c) 2013 Tim Brown ((https://github.com/tim-brown/geshi-racket)) + * Release Version: 1.0.8.12 + * Date Started: 2013-03-01 + * + * Racket language file for GeSHi. + * + * This file was built automatically from the scripts in + * https://github.com/tim-brown/geshi-racket (you didn't think + * I typed those NUMBER regular expressions in myself, did you?). + * Use those scripts to regenerate the file. + * + * CHANGES + * ------- + * 1.0 (2013-03-31) + * - Initial Release1.1 (2013-03-31) + * - Added URLs, "symbol"-like identifiers moved to SYMBOLS* + * + * TODO (updated 2013-04-25) + * ------------------------- + * * better handling of empty and short arrays + * * care more about indentation and line lengths + * * most compound regexps are possibly over-bracketed: (or ...) + * * most compound regexps are possibly over-bracketed: (: ...) + * * URLs should be formed more smartly by discovering which module they came from. + * * '|...| identifiers + * * #<<HERE strings + * * #;(...) comments -- (note: requires balanced parenthesis regexp) + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Racket', + 'COMMENT_SINGLE' => array( + 1 => ';', + ), + 'COMMENT_MULTI' => array( + '#|' => '|#', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', + ), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'abort-current-continuation', 'abs', 'absolute-path?', 'acos', 'add1', + 'alarm-evt', 'always-evt', 'andmap', 'angle', 'append', + 'arithmetic-shift', 'arity-at-least-value', 'arity-at-least?', + 'asin', 'assf', 'assoc', 'assq', 'assv', 'atan', 'banner', + 'bitwise-and', 'bitwise-bit-field', 'bitwise-bit-set?', + 'bitwise-ior', 'bitwise-not', 'bitwise-xor', 'boolean?', + 'bound-identifier=?', 'box', 'box-cas!', 'box-immutable', 'box?', + 'break-enabled', 'break-thread', 'build-list', 'build-path', + 'build-path/convention-type', 'build-string', 'build-vector', + 'byte-pregexp', 'byte-pregexp?', 'byte-ready?', 'byte-regexp', + 'byte-regexp?', 'byte?', 'bytes', 'bytes>?', 'bytes<?', + 'bytes->immutable-bytes', 'bytes->list', 'bytes->path', + 'bytes->path-element', 'bytes->string/latin-1', + 'bytes->string/locale', 'bytes->string/utf-8', + 'bytes-append', 'bytes-close-converter', 'bytes-convert', + 'bytes-convert-end', 'bytes-converter?', 'bytes-copy', + 'bytes-copy!', 'bytes-fill!', 'bytes-length', + 'bytes-open-converter', 'bytes-ref', 'bytes-set!', + 'bytes-utf-8-index', 'bytes-utf-8-length', 'bytes-utf-8-ref', + 'bytes=?', 'bytes?', 'caaaar', 'caaadr', 'caaar', 'caadar', + 'caaddr', 'caadr', 'caar', 'cadaar', 'cadadr', 'cadar', 'caddar', + 'cadddr', 'caddr', 'cadr', 'call-in-nested-thread', + 'call-with-break-parameterization', + 'call-with-composable-continuation', + 'call-with-continuation-barrier', 'call-with-continuation-prompt', + 'call-with-current-continuation', 'call-with-escape-continuation', + 'call-with-exception-handler', + 'call-with-immediate-continuation-mark', + 'call-with-parameterization', 'call-with-semaphore', + 'call-with-semaphore/enable-break', 'call-with-values', 'call/cc', + 'call/ec', 'car', 'cdaaar', 'cdaadr', 'cdaar', 'cdadar', 'cdaddr', + 'cdadr', 'cdar', 'cddaar', 'cddadr', 'cddar', 'cdddar', 'cddddr', + 'cdddr', 'cddr', 'cdr', 'ceiling', 'channel-get', 'channel-put', + 'channel-put-evt', 'channel-put-evt?', 'channel-try-get', + 'channel?', 'chaperone-box', 'chaperone-continuation-mark-key', + 'chaperone-evt', 'chaperone-hash', 'chaperone-of?', + 'chaperone-procedure', 'chaperone-prompt-tag', 'chaperone-struct', + 'chaperone-struct-type', 'chaperone-vector', 'chaperone?', + 'char>=?', 'char>?', 'char<=?', 'char<?', + 'char->integer', 'char-alphabetic?', 'char-blank?', + 'char-ci>=?', 'char-ci>?', 'char-ci<=?', 'char-ci<?', + 'char-ci=?', 'char-downcase', 'char-foldcase', + 'char-general-category', 'char-graphic?', 'char-iso-control?', + 'char-lower-case?', 'char-numeric?', 'char-punctuation?', + 'char-ready?', 'char-symbolic?', 'char-title-case?', + 'char-titlecase', 'char-upcase', 'char-upper-case?', + 'char-utf-8-length', 'char-whitespace?', 'char=?', 'char?', + 'check-duplicate-identifier', + 'checked-procedure-check-and-extract', 'choice-evt', + 'cleanse-path', 'close-input-port', 'close-output-port', + 'collect-garbage', 'collection-file-path', 'collection-path', + 'compile', 'compile-allow-set!-undefined', + 'compile-context-preservation-enabled', + 'compile-enforce-module-constants', 'compile-syntax', + 'compiled-expression?', 'compiled-module-expression?', + 'complete-path?', 'complex?', 'compose', 'compose1', 'cons', + 'continuation-mark-key?', 'continuation-mark-set->context', + 'continuation-mark-set->list', + 'continuation-mark-set->list*', 'continuation-mark-set-first', + 'continuation-mark-set?', 'continuation-marks', + 'continuation-prompt-available?', 'continuation-prompt-tag?', + 'continuation?', 'copy-file', 'cos', + 'current-break-parameterization', 'current-code-inspector', + 'current-command-line-arguments', 'current-compile', + 'current-compiled-file-roots', 'current-continuation-marks', + 'current-custodian', 'current-directory', 'current-drive', + 'current-error-port', 'current-eval', + 'current-evt-pseudo-random-generator', 'current-gc-milliseconds', + 'current-get-interaction-input-port', + 'current-inexact-milliseconds', 'current-input-port', + 'current-inspector', 'current-library-collection-paths', + 'current-load', 'current-load-extension', + 'current-load-relative-directory', 'current-load/use-compiled', + 'current-locale', 'current-logger', 'current-memory-use', + 'current-milliseconds', 'current-module-declare-name', + 'current-module-declare-source', 'current-module-name-resolver', + 'current-namespace', 'current-output-port', + 'current-parameterization', 'current-preserved-thread-cell-values', + 'current-print', 'current-process-milliseconds', + 'current-prompt-read', 'current-pseudo-random-generator', + 'current-read-interaction', 'current-reader-guard', + 'current-readtable', 'current-seconds', 'current-security-guard', + 'current-subprocess-custodian-mode', 'current-thread', + 'current-thread-group', 'current-thread-initial-stack-size', + 'current-write-relative-directory', 'custodian-box-value', + 'custodian-box?', 'custodian-limit-memory', + 'custodian-managed-list', 'custodian-memory-accounting-available?', + 'custodian-require-memory', 'custodian-shutdown-all', 'custodian?', + 'custom-print-quotable-accessor', 'custom-print-quotable?', + 'custom-write-accessor', 'custom-write?', 'date*-nanosecond', + 'date*-time-zone-name', 'date*?', 'date-day', 'date-dst?', + 'date-hour', 'date-minute', 'date-month', 'date-second', + 'date-time-zone-offset', 'date-week-day', 'date-year', + 'date-year-day', 'date?', 'datum->syntax', + 'datum-intern-literal', 'default-continuation-prompt-tag', + 'delete-directory', 'delete-file', 'denominator', + 'directory-exists?', 'directory-list', 'display', 'displayln', + 'double-flonum?', 'dump-memory-stats', 'dynamic-require', + 'dynamic-require-for-syntax', 'dynamic-wind', 'eof', 'eof-object?', + 'ephemeron-value', 'ephemeron?', 'eprintf', 'eq-hash-code', 'eq?', + 'equal-hash-code', 'equal-secondary-hash-code', 'equal?', + 'equal?/recur', 'eqv-hash-code', 'eqv?', 'error', + 'error-display-handler', 'error-escape-handler', + 'error-print-context-length', 'error-print-source-location', + 'error-print-width', 'error-value->string-handler', 'eval', + 'eval-jit-enabled', 'eval-syntax', 'even?', 'evt?', + 'exact->inexact', 'exact-integer?', + 'exact-nonnegative-integer?', 'exact-positive-integer?', 'exact?', + 'executable-yield-handler', 'exit', 'exit-handler', + 'exn-continuation-marks', 'exn-message', 'exn:break-continuation', + 'exn:break:hang-up?', 'exn:break:terminate?', 'exn:break?', + 'exn:fail:contract:arity?', 'exn:fail:contract:continuation?', + 'exn:fail:contract:divide-by-zero?', + 'exn:fail:contract:non-fixnum-result?', + 'exn:fail:contract:variable-id', 'exn:fail:contract:variable?', + 'exn:fail:contract?', 'exn:fail:filesystem:errno-errno', + 'exn:fail:filesystem:errno?', 'exn:fail:filesystem:exists?', + 'exn:fail:filesystem:version?', 'exn:fail:filesystem?', + 'exn:fail:network:errno-errno', 'exn:fail:network:errno?', + 'exn:fail:network?', 'exn:fail:out-of-memory?', + 'exn:fail:read-srclocs', 'exn:fail:read:eof?', + 'exn:fail:read:non-char?', 'exn:fail:read?', + 'exn:fail:syntax-exprs', 'exn:fail:syntax:unbound?', + 'exn:fail:syntax?', 'exn:fail:unsupported?', 'exn:fail:user?', + 'exn:fail?', 'exn:srclocs-accessor', 'exn:srclocs?', 'exn?', 'exp', + 'expand', 'expand-once', 'expand-syntax', 'expand-syntax-once', + 'expand-syntax-to-top-form', 'expand-to-top-form', + 'expand-user-path', 'expt', 'file-exists?', + 'file-or-directory-identity', 'file-or-directory-modify-seconds', + 'file-or-directory-permissions', 'file-position', 'file-position*', + 'file-size', 'file-stream-buffer-mode', 'file-stream-port?', + 'filesystem-root-list', 'filter', 'find-executable-path', + 'find-library-collection-paths', 'find-system-path', 'findf', + 'fixnum?', 'floating-point-bytes->real', 'flonum?', 'floor', + 'flush-output', 'foldl', 'foldr', 'for-each', 'format', 'fprintf', + 'free-identifier=?', 'free-label-identifier=?', + 'free-template-identifier=?', 'free-transformer-identifier=?', + 'gcd', 'generate-temporaries', 'gensym', 'get-output-bytes', + 'get-output-string', 'getenv', 'global-port-print-handler', + 'guard-evt', 'handle-evt', 'handle-evt?', 'hash', 'hash->list', + 'hash-copy', 'hash-count', 'hash-eq?', 'hash-equal?', 'hash-eqv?', + 'hash-for-each', 'hash-has-key?', 'hash-iterate-first', + 'hash-iterate-key', 'hash-iterate-next', 'hash-iterate-value', + 'hash-keys', 'hash-map', 'hash-placeholder?', 'hash-ref', + 'hash-ref!', 'hash-remove', 'hash-remove!', 'hash-set', + 'hash-set!', 'hash-set*', 'hash-set*!', 'hash-update', + 'hash-update!', 'hash-values', 'hash-weak?', 'hash?', 'hasheq', + 'hasheqv', 'identifier-binding', 'identifier-label-binding', + 'identifier-prune-lexical-context', + 'identifier-prune-to-source-module', + 'identifier-remove-from-definition-context', + 'identifier-template-binding', 'identifier-transformer-binding', + 'identifier?', 'imag-part', 'immutable?', 'impersonate-box', + 'impersonate-continuation-mark-key', 'impersonate-hash', + 'impersonate-procedure', 'impersonate-prompt-tag', + 'impersonate-struct', 'impersonate-vector', 'impersonator-of?', + 'impersonator-prop:application-mark', + 'impersonator-property-accessor-procedure?', + 'impersonator-property?', 'impersonator?', 'in-cycle', + 'in-directory', 'in-hash', 'in-hash-keys', 'in-hash-pairs', + 'in-hash-values', 'in-parallel', 'in-sequences', + 'in-values*-sequence', 'in-values-sequence', 'inexact->exact', + 'inexact-real?', 'inexact?', 'input-port?', 'inspector?', + 'integer->char', 'integer->integer-bytes', + 'integer-bytes->integer', 'integer-length', 'integer-sqrt', + 'integer-sqrt/remainder', 'integer?', + 'internal-definition-context-seal', 'internal-definition-context?', + 'keyword<?', 'keyword->string', 'keyword-apply', 'keyword?', + 'kill-thread', 'lcm', 'length', 'liberal-define-context?', + 'link-exists?', 'list', 'list*', 'list->bytes', + 'list->string', 'list->vector', 'list-ref', 'list-tail', + 'list?', 'load', 'load-extension', 'load-on-demand-enabled', + 'load-relative', 'load-relative-extension', 'load/cd', + 'load/use-compiled', 'local-expand', 'local-expand/capture-lifts', + 'local-transformer-expand', + 'local-transformer-expand/capture-lifts', 'locale-string-encoding', + 'log', 'log-level?', 'log-max-level', 'log-message', + 'log-receiver?', 'logger-name', 'logger?', 'magnitude', + 'make-arity-at-least', 'make-base-empty-namespace', + 'make-base-namespace', 'make-bytes', 'make-channel', + 'make-continuation-mark-key', 'make-continuation-prompt-tag', + 'make-custodian', 'make-custodian-box', 'make-date', 'make-date*', + 'make-derived-parameter', 'make-directory', 'make-do-sequence', + 'make-empty-namespace', 'make-ephemeron', 'make-exn', + 'make-exn:break', 'make-exn:break:hang-up', + 'make-exn:break:terminate', 'make-exn:fail', + 'make-exn:fail:contract', 'make-exn:fail:contract:arity', + 'make-exn:fail:contract:continuation', + 'make-exn:fail:contract:divide-by-zero', + 'make-exn:fail:contract:non-fixnum-result', + 'make-exn:fail:contract:variable', 'make-exn:fail:filesystem', + 'make-exn:fail:filesystem:errno', + 'make-exn:fail:filesystem:exists', + 'make-exn:fail:filesystem:version', 'make-exn:fail:network', + 'make-exn:fail:network:errno', 'make-exn:fail:out-of-memory', + 'make-exn:fail:read', 'make-exn:fail:read:eof', + 'make-exn:fail:read:non-char', 'make-exn:fail:syntax', + 'make-exn:fail:syntax:unbound', 'make-exn:fail:unsupported', + 'make-exn:fail:user', 'make-file-or-directory-link', 'make-hash', + 'make-hash-placeholder', 'make-hasheq', 'make-hasheq-placeholder', + 'make-hasheqv', 'make-hasheqv-placeholder', 'make-immutable-hash', + 'make-immutable-hasheq', 'make-immutable-hasheqv', + 'make-impersonator-property', 'make-input-port', 'make-inspector', + 'make-keyword-procedure', 'make-known-char-range-list', + 'make-log-receiver', 'make-logger', 'make-output-port', + 'make-parameter', 'make-phantom-bytes', 'make-pipe', + 'make-placeholder', 'make-polar', 'make-prefab-struct', + 'make-pseudo-random-generator', 'make-reader-graph', + 'make-readtable', 'make-rectangular', 'make-rename-transformer', + 'make-resolved-module-path', 'make-security-guard', + 'make-semaphore', 'make-set!-transformer', 'make-shared-bytes', + 'make-sibling-inspector', 'make-special-comment', 'make-srcloc', + 'make-string', 'make-struct-field-accessor', + 'make-struct-field-mutator', 'make-struct-type', + 'make-struct-type-property', 'make-syntax-delta-introducer', + 'make-syntax-introducer', 'make-thread-cell', 'make-thread-group', + 'make-vector', 'make-weak-box', 'make-weak-hash', + 'make-weak-hasheq', 'make-weak-hasheqv', 'make-will-executor', + 'map', 'max', 'mcar', 'mcdr', 'mcons', 'member', 'memf', 'memq', + 'memv', 'min', 'module->exports', 'module->imports', + 'module->language-info', 'module->namespace', + 'module-compiled-exports', 'module-compiled-imports', + 'module-compiled-language-info', 'module-compiled-name', + 'module-compiled-submodules', 'module-declared?', + 'module-path-index-join', 'module-path-index-resolve', + 'module-path-index-split', 'module-path-index-submodule', + 'module-path-index?', 'module-path?', 'module-predefined?', + 'module-provide-protected?', 'modulo', 'mpair?', 'nack-guard-evt', + 'namespace-anchor->empty-namespace', + 'namespace-anchor->namespace', 'namespace-anchor?', + 'namespace-attach-module', 'namespace-attach-module-declaration', + 'namespace-base-phase', 'namespace-mapped-symbols', + 'namespace-module-identifier', 'namespace-module-registry', + 'namespace-require', 'namespace-require/constant', + 'namespace-require/copy', 'namespace-require/expansion-time', + 'namespace-set-variable-value!', 'namespace-symbol->identifier', + 'namespace-syntax-introduce', 'namespace-undefine-variable!', + 'namespace-unprotect-module', 'namespace-variable-value', + 'namespace?', 'negative?', 'never-evt', 'newline', + 'normal-case-path', 'not', 'null', 'null?', 'number->string', + 'number?', 'numerator', 'object-name', 'odd?', 'open-input-bytes', + 'open-input-string', 'open-output-bytes', 'open-output-string', + 'ormap', 'output-port?', 'pair?', 'parameter-procedure=?', + 'parameter?', 'parameterization?', 'path->bytes', + 'path->complete-path', 'path->directory-path', + 'path->string', 'path-add-suffix', 'path-convention-type', + 'path-element->bytes', 'path-element->string', + 'path-for-some-system?', 'path-list-string->path-list', + 'path-replace-suffix', 'path-string?', 'path?', 'peek-byte', + 'peek-byte-or-special', 'peek-bytes', 'peek-bytes!', + 'peek-bytes-avail!', 'peek-bytes-avail!*', + 'peek-bytes-avail!/enable-break', 'peek-char', + 'peek-char-or-special', 'peek-string', 'peek-string!', + 'phantom-bytes?', 'pipe-content-length', 'placeholder-get', + 'placeholder-set!', 'placeholder?', 'poll-guard-evt', + 'port-closed-evt', 'port-closed?', 'port-commit-peeked', + 'port-count-lines!', 'port-count-lines-enabled', + 'port-display-handler', 'port-file-identity', 'port-file-unlock', + 'port-next-location', 'port-print-handler', 'port-progress-evt', + 'port-provides-progress-evts?', 'port-read-handler', + 'port-try-file-lock?', 'port-write-handler', 'port-writes-atomic?', + 'port-writes-special?', 'port?', 'positive?', + 'prefab-key->struct-type', 'prefab-key?', 'prefab-struct-key', + 'pregexp', 'pregexp?', 'primitive-closure?', + 'primitive-result-arity', 'primitive?', 'print', + 'print-as-expression', 'print-boolean-long-form', 'print-box', + 'print-graph', 'print-hash-table', 'print-mpair-curly-braces', + 'print-pair-curly-braces', 'print-reader-abbreviations', + 'print-struct', 'print-syntax-width', 'print-unreadable', + 'print-vector-length', 'printf', 'procedure->method', + 'procedure-arity', 'procedure-arity-includes?', 'procedure-arity?', + 'procedure-closure-contents-eq?', 'procedure-extract-target', + 'procedure-keywords', 'procedure-reduce-arity', + 'procedure-reduce-keyword-arity', 'procedure-rename', + 'procedure-struct-type?', 'procedure?', 'progress-evt?', + 'prop:arity-string', 'prop:checked-procedure', + 'prop:custom-print-quotable', 'prop:custom-write', + 'prop:equal+hash', 'prop:evt', 'prop:exn:srclocs', + 'prop:impersonator-of', 'prop:input-port', + 'prop:liberal-define-context', 'prop:output-port', + 'prop:procedure', 'prop:rename-transformer', 'prop:sequence', + 'prop:set!-transformer', 'pseudo-random-generator->vector', + 'pseudo-random-generator-vector?', 'pseudo-random-generator?', + 'putenv', 'quotient', 'quotient/remainder', 'raise', + 'raise-argument-error', 'raise-arguments-error', + 'raise-arity-error', 'raise-mismatch-error', 'raise-range-error', + 'raise-result-error', 'raise-syntax-error', 'raise-type-error', + 'raise-user-error', 'random', 'random-seed', 'rational?', + 'rationalize', 'read', 'read-accept-bar-quote', 'read-accept-box', + 'read-accept-compiled', 'read-accept-dot', 'read-accept-graph', + 'read-accept-infix-dot', 'read-accept-lang', + 'read-accept-quasiquote', 'read-accept-reader', 'read-byte', + 'read-byte-or-special', 'read-bytes', 'read-bytes!', + 'read-bytes-avail!', 'read-bytes-avail!*', + 'read-bytes-avail!/enable-break', 'read-bytes-line', + 'read-case-sensitive', 'read-char', 'read-char-or-special', + 'read-curly-brace-as-paren', 'read-decimal-as-inexact', + 'read-eval-print-loop', 'read-language', 'read-line', + 'read-on-demand-source', 'read-square-bracket-as-paren', + 'read-string', 'read-string!', 'read-syntax', + 'read-syntax/recursive', 'read/recursive', 'readtable-mapping', + 'readtable?', 'real->decimal-string', 'real->double-flonum', + 'real->floating-point-bytes', 'real->single-flonum', + 'real-part', 'real?', 'regexp', 'regexp-match', + 'regexp-match-exact?', 'regexp-match-peek', + 'regexp-match-peek-immediate', 'regexp-match-peek-positions', + 'regexp-match-peek-positions-immediate', + 'regexp-match-peek-positions-immediate/end', + 'regexp-match-peek-positions/end', 'regexp-match-positions', + 'regexp-match-positions/end', 'regexp-match/end', 'regexp-match?', + 'regexp-max-lookbehind', 'regexp-quote', 'regexp-replace', + 'regexp-replace*', 'regexp-replace-quote', 'regexp-replaces', + 'regexp-split', 'regexp-try-match', 'regexp?', 'relative-path?', + 'remainder', 'remove', 'remove*', 'remq', 'remq*', 'remv', 'remv*', + 'rename-file-or-directory', 'rename-transformer-target', + 'rename-transformer?', 'reroot-path', 'resolve-path', + 'resolved-module-path-name', 'resolved-module-path?', 'reverse', + 'round', 'seconds->date', 'security-guard?', + 'semaphore-peek-evt', 'semaphore-peek-evt?', 'semaphore-post', + 'semaphore-try-wait?', 'semaphore-wait', + 'semaphore-wait/enable-break', 'semaphore?', 'sequence->stream', + 'sequence-generate', 'sequence-generate*', 'sequence?', + 'set!-transformer-procedure', 'set!-transformer?', 'set-box!', + 'set-mcar!', 'set-mcdr!', 'set-phantom-bytes!', + 'set-port-next-location!', 'shared-bytes', 'shell-execute', + 'simplify-path', 'sin', 'single-flonum?', 'sleep', + 'special-comment-value', 'special-comment?', 'split-path', 'sqrt', + 'srcloc-column', 'srcloc-line', 'srcloc-position', 'srcloc-source', + 'srcloc-span', 'srcloc?', 'stop-after', 'stop-before', 'string', + 'string>=?', 'string>?', 'string<=?', 'string<?', + 'string->bytes/latin-1', 'string->bytes/locale', + 'string->bytes/utf-8', 'string->immutable-string', + 'string->keyword', 'string->list', 'string->number', + 'string->path', 'string->path-element', 'string->symbol', + 'string->uninterned-symbol', 'string->unreadable-symbol', + 'string-append', 'string-ci>=?', 'string-ci>?', + 'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-copy', + 'string-copy!', 'string-downcase', 'string-fill!', + 'string-foldcase', 'string-length', 'string-locale>?', + 'string-locale<?', 'string-locale-ci>?', + 'string-locale-ci<?', 'string-locale-ci=?', + 'string-locale-downcase', 'string-locale-upcase', + 'string-locale=?', 'string-normalize-nfc', 'string-normalize-nfd', + 'string-normalize-nfkc', 'string-normalize-nfkd', 'string-ref', + 'string-set!', 'string-titlecase', 'string-upcase', + 'string-utf-8-length', 'string=?', 'string?', 'struct->vector', + 'struct-accessor-procedure?', 'struct-constructor-procedure?', + 'struct-info', 'struct-mutator-procedure?', + 'struct-predicate-procedure?', 'struct-type-info', + 'struct-type-make-constructor', 'struct-type-make-predicate', + 'struct-type-property-accessor-procedure?', + 'struct-type-property?', 'struct-type?', 'struct:arity-at-least', + 'struct:date', 'struct:date*', 'struct:exn', 'struct:exn:break', + 'struct:exn:break:hang-up', 'struct:exn:break:terminate', + 'struct:exn:fail', 'struct:exn:fail:contract', + 'struct:exn:fail:contract:arity', + 'struct:exn:fail:contract:continuation', + 'struct:exn:fail:contract:divide-by-zero', + 'struct:exn:fail:contract:non-fixnum-result', + 'struct:exn:fail:contract:variable', 'struct:exn:fail:filesystem', + 'struct:exn:fail:filesystem:errno', + 'struct:exn:fail:filesystem:exists', + 'struct:exn:fail:filesystem:version', 'struct:exn:fail:network', + 'struct:exn:fail:network:errno', 'struct:exn:fail:out-of-memory', + 'struct:exn:fail:read', 'struct:exn:fail:read:eof', + 'struct:exn:fail:read:non-char', 'struct:exn:fail:syntax', + 'struct:exn:fail:syntax:unbound', 'struct:exn:fail:unsupported', + 'struct:exn:fail:user', 'struct:srcloc', 'struct?', 'sub1', + 'subbytes', 'subprocess', 'subprocess-group-enabled', + 'subprocess-kill', 'subprocess-pid', 'subprocess-status', + 'subprocess-wait', 'subprocess?', 'substring', 'symbol->string', + 'symbol-interned?', 'symbol-unreadable?', 'symbol?', 'sync', + 'sync/enable-break', 'sync/timeout', 'sync/timeout/enable-break', + 'syntax->datum', 'syntax->list', 'syntax-arm', + 'syntax-column', 'syntax-disarm', 'syntax-e', 'syntax-line', + 'syntax-local-bind-syntaxes', 'syntax-local-certifier', + 'syntax-local-context', 'syntax-local-expand-expression', + 'syntax-local-get-shadower', 'syntax-local-introduce', + 'syntax-local-lift-context', 'syntax-local-lift-expression', + 'syntax-local-lift-module-end-declaration', + 'syntax-local-lift-provide', 'syntax-local-lift-require', + 'syntax-local-lift-values-expression', + 'syntax-local-make-definition-context', + 'syntax-local-make-delta-introducer', + 'syntax-local-module-defined-identifiers', + 'syntax-local-module-exports', + 'syntax-local-module-required-identifiers', 'syntax-local-name', + 'syntax-local-phase-level', 'syntax-local-submodules', + 'syntax-local-transforming-module-provides?', 'syntax-local-value', + 'syntax-local-value/immediate', 'syntax-original?', + 'syntax-position', 'syntax-property', + 'syntax-property-symbol-keys', 'syntax-protect', 'syntax-rearm', + 'syntax-recertify', 'syntax-shift-phase-level', 'syntax-source', + 'syntax-source-module', 'syntax-span', 'syntax-taint', + 'syntax-tainted?', 'syntax-track-origin', + 'syntax-transforming-module-expression?', 'syntax-transforming?', + 'syntax?', 'system-big-endian?', 'system-idle-evt', + 'system-language+country', 'system-library-subpath', + 'system-path-convention-type', 'system-type', 'tan', + 'terminal-port?', 'thread', 'thread-cell-ref', 'thread-cell-set!', + 'thread-cell-values?', 'thread-cell?', 'thread-dead-evt', + 'thread-dead?', 'thread-group?', 'thread-receive', + 'thread-receive-evt', 'thread-resume', 'thread-resume-evt', + 'thread-rewind-receive', 'thread-running?', 'thread-send', + 'thread-suspend', 'thread-suspend-evt', 'thread-try-receive', + 'thread-wait', 'thread/suspend-to-kill', 'thread?', 'time-apply', + 'truncate', 'unbox', 'uncaught-exception-handler', + 'use-collection-link-paths', 'use-compiled-file-paths', + 'use-user-specific-search-paths', 'values', + 'variable-reference->empty-namespace', + 'variable-reference->module-base-phase', + 'variable-reference->module-declaration-inspector', + 'variable-reference->module-path-index', + 'variable-reference->module-source', + 'variable-reference->namespace', 'variable-reference->phase', + 'variable-reference->resolved-module-path', + 'variable-reference-constant?', 'variable-reference?', 'vector', + 'vector->immutable-vector', 'vector->list', + 'vector->pseudo-random-generator', + 'vector->pseudo-random-generator!', 'vector->values', + 'vector-copy!', 'vector-fill!', 'vector-immutable', + 'vector-length', 'vector-ref', 'vector-set!', + 'vector-set-performance-stats!', 'vector?', 'version', 'void', + 'void?', 'weak-box-value', 'weak-box?', 'will-execute', + 'will-executor?', 'will-register', 'will-try-execute', 'wrap-evt', + 'write', 'write-byte', 'write-bytes', 'write-bytes-avail', + 'write-bytes-avail*', 'write-bytes-avail-evt', + 'write-bytes-avail/enable-break', 'write-char', 'write-special', + 'write-special-avail*', 'write-special-evt', 'write-string', + 'zero?', + ), + + 2 => array( + '#%app', '#%datum', '#%expression', '#%module-begin', '#%plain-app', + '#%plain-lambda', '#%plain-module-begin', '#%provide', '#%require', + '#%stratified-body', '#%top', '#%top-interaction', + '#%variable-reference', ':do-in', 'all-defined-out', + 'all-from-out', 'and', 'apply', 'arity-at-least', 'begin', + 'begin-for-syntax', 'begin0', 'call-with-input-file', + 'call-with-input-file*', 'call-with-output-file', + 'call-with-output-file*', 'case', 'case-lambda', 'combine-in', + 'combine-out', 'cond', 'date', 'date*', 'define', + 'define-for-syntax', 'define-logger', 'define-namespace-anchor', + 'define-sequence-syntax', 'define-struct', 'define-struct/derived', + 'define-syntax', 'define-syntax-rule', 'define-syntaxes', + 'define-values', 'define-values-for-syntax', 'do', 'else', + 'except-in', 'except-out', 'exn', 'exn:break', 'exn:break:hang-up', + 'exn:break:terminate', 'exn:fail', 'exn:fail:contract', + 'exn:fail:contract:arity', 'exn:fail:contract:continuation', + 'exn:fail:contract:divide-by-zero', + 'exn:fail:contract:non-fixnum-result', + 'exn:fail:contract:variable', 'exn:fail:filesystem', + 'exn:fail:filesystem:errno', 'exn:fail:filesystem:exists', + 'exn:fail:filesystem:version', 'exn:fail:network', + 'exn:fail:network:errno', 'exn:fail:out-of-memory', + 'exn:fail:read', 'exn:fail:read:eof', 'exn:fail:read:non-char', + 'exn:fail:syntax', 'exn:fail:syntax:unbound', + 'exn:fail:unsupported', 'exn:fail:user', 'file', 'for', 'for*', + 'for*/and', 'for*/first', 'for*/fold', 'for*/fold/derived', + 'for*/hash', 'for*/hasheq', 'for*/hasheqv', 'for*/last', + 'for*/list', 'for*/lists', 'for*/or', 'for*/product', 'for*/sum', + 'for*/vector', 'for-label', 'for-meta', 'for-syntax', + 'for-template', 'for/and', 'for/first', 'for/fold', + 'for/fold/derived', 'for/hash', 'for/hasheq', 'for/hasheqv', + 'for/last', 'for/list', 'for/lists', 'for/or', 'for/product', + 'for/sum', 'for/vector', 'gen:custom-write', 'gen:equal+hash', + 'if', 'in-bytes', 'in-bytes-lines', 'in-indexed', + 'in-input-port-bytes', 'in-input-port-chars', 'in-lines', + 'in-list', 'in-mlist', 'in-naturals', 'in-port', 'in-producer', + 'in-range', 'in-string', 'in-value', 'in-vector', 'lambda', 'let', + 'let*', 'let*-values', 'let-syntax', 'let-syntaxes', 'let-values', + 'let/cc', 'let/ec', 'letrec', 'letrec-syntax', 'letrec-syntaxes', + 'letrec-syntaxes+values', 'letrec-values', 'lib', 'local-require', + 'log-debug', 'log-error', 'log-fatal', 'log-info', 'log-warning', + 'module', 'module*', 'module+', 'only-in', 'only-meta-in', + 'open-input-file', 'open-input-output-file', 'open-output-file', + 'or', 'parameterize', 'parameterize*', 'parameterize-break', + 'planet', 'prefix-in', 'prefix-out', 'protect-out', 'provide', + 'quasiquote', 'quasisyntax', 'quasisyntax/loc', 'quote', + 'quote-syntax', 'quote-syntax/prune', 'regexp-match*', + 'regexp-match-peek-positions*', 'regexp-match-positions*', + 'relative-in', 'rename-in', 'rename-out', 'require', 'set!', + 'set!-values', 'sort', 'srcloc', 'struct', 'struct-copy', + 'struct-field-index', 'struct-out', 'submod', 'syntax', + 'syntax-case', 'syntax-case*', 'syntax-id-rules', 'syntax-rules', + 'syntax/loc', 'time', 'unless', 'unquote', 'unquote-splicing', + 'unsyntax', 'unsyntax-splicing', 'when', 'with-continuation-mark', + 'with-handlers', 'with-handlers*', 'with-input-from-file', + 'with-output-to-file', 'with-syntax', '?', + ), + + 3 => array( + '>/c', '</c', 'append*', 'append-map', 'argmax', 'argmin', + 'bad-number-of-results', 'base->-doms/c', 'base->-rngs/c', + 'base->?', 'blame-add-unknown-context', 'blame-context', + 'blame-contract', 'blame-fmt->-string', 'blame-negative', + 'blame-original?', 'blame-positive', 'blame-replace-negative', + 'blame-source', 'blame-swap', 'blame-swapped?', 'blame-value', + 'blame?', 'boolean=?', 'build-chaperone-contract-property', + 'build-compound-type-name', 'build-contract-property', + 'build-flat-contract-property', 'bytes-append*', 'bytes-join', + 'bytes-no-nuls?', 'call-with-input-bytes', + 'call-with-input-string', 'call-with-output-bytes', + 'call-with-output-string', 'chaperone-contract-property?', + 'chaperone-contract?', 'class->interface', 'class-info', + 'class?', 'coerce-chaperone-contract', + 'coerce-chaperone-contracts', 'coerce-contract', + 'coerce-contract/f', 'coerce-contracts', 'coerce-flat-contract', + 'coerce-flat-contracts', 'conjugate', 'cons?', 'const', + 'contract-first-order', 'contract-first-order-passes?', + 'contract-name', 'contract-proc', 'contract-projection', + 'contract-property?', 'contract-random-generate', + 'contract-stronger?', 'contract-struct-exercise', + 'contract-struct-generate', 'contract?', 'convert-stream', + 'copy-directory/files', 'copy-port', 'cosh', 'count', + 'current-blame-format', 'current-future', 'curry', 'curryr', + 'degrees->radians', 'delete-directory/files', + 'deserialize-info:set-v0', 'dict-iter-contract', + 'dict-key-contract', 'dict-value-contract', 'drop', 'drop-right', + 'dup-input-port', 'dup-output-port', 'dynamic-get-field', + 'dynamic-send', 'dynamic-set-field!', 'eighth', 'empty', + 'empty-sequence', 'empty-stream', 'empty?', 'env-stash', + 'eq-contract-val', 'eq-contract?', 'equal<%>', + 'equal-contract-val', 'equal-contract?', 'exact-ceiling', + 'exact-floor', 'exact-round', 'exact-truncate', + 'exn:fail:contract:blame-object', 'exn:fail:contract:blame?', + 'exn:fail:object?', 'exn:misc:match?', 'explode-path', + 'externalizable<%>', 'false', 'false/c', 'false?', + 'field-names', 'fifth', 'file-name-from-path', + 'filename-extension', 'filter-map', 'filter-not', + 'filter-read-input-port', 'find-files', 'first', 'flat-contract', + 'flat-contract-predicate', 'flat-contract-property?', + 'flat-contract?', 'flat-named-contract', 'flatten', 'fold-files', + 'force', 'fourth', 'fsemaphore-count', 'fsemaphore-post', + 'fsemaphore-try-wait?', 'fsemaphore-wait', 'fsemaphore?', 'future', + 'future?', 'futures-enabled?', 'generate-ctc-fail?', + 'generate-env', 'generate-member-key', 'generate/choose', + 'generate/direct', 'generic?', 'group-execute-bit', + 'group-read-bit', 'group-write-bit', 'has-contract?', 'identity', + 'impersonator-contract?', 'impersonator-prop:contracted', + 'implementation?', 'implementation?/c', 'in-dict', 'in-dict-keys', + 'in-dict-pairs', 'in-dict-values', 'infinite?', + 'input-port-append', 'instanceof/c', 'interface->method-names', + 'interface-extension?', 'interface?', 'is-a?', 'is-a?/c', 'last', + 'last-pair', 'list->set', 'list->seteq', 'list->seteqv', + 'make-chaperone-contract', 'make-contract', 'make-custom-hash', + 'make-directory*', 'make-exn:fail:contract:blame', + 'make-exn:fail:object', 'make-flat-contract', 'make-fsemaphore', + 'make-generate-ctc-fail', 'make-generic', + 'make-immutable-custom-hash', 'make-input-port/read-to-peek', + 'make-limited-input-port', 'make-list', 'make-lock-file-name', + 'make-mixin-contract', 'make-none/c', 'make-pipe-with-specials', + 'make-primitive-class', 'make-proj-contract', + 'make-tentative-pretty-print-output-port', 'make-weak-custom-hash', + 'match-equality-test', 'matches-arity-exactly?', + 'member-name-key-hash-code', 'member-name-key=?', + 'member-name-key?', 'merge-input', 'method-in-interface?', + 'mixin-contract', 'n->th', 'nan?', 'natural-number/c', 'negate', + 'new-?/c', 'new-?/c', 'ninth', 'normalize-path', 'object%', + 'object->vector', 'object-info', 'object-interface', + 'object-method-arity-includes?', 'object=?', 'object?', + 'open-output-nowhere', 'order-of-magnitude', 'other-execute-bit', + 'other-read-bit', 'other-write-bit', 'parse-command-line', + 'partition', 'path-element?', 'path-only', 'pathlist-closure', + 'pi', 'pi.f', 'place-break', 'place-channel', 'place-channel-get', + 'place-channel-put', 'place-channel-put/get', 'place-channel?', + 'place-dead-evt', 'place-enabled?', 'place-kill', + 'place-message-allowed?', 'place-sleep', 'place-wait', 'place?', + 'port->bytes', 'port->list', 'port->string', + 'predicate/c', 'preferences-lock-file-mode', 'pretty-display', + 'pretty-format', 'pretty-print', + 'pretty-print-.-symbol-without-bars', + 'pretty-print-abbreviate-read-macros', 'pretty-print-columns', + 'pretty-print-current-style-table', 'pretty-print-depth', + 'pretty-print-exact-as-decimal', 'pretty-print-extend-style-table', + 'pretty-print-handler', 'pretty-print-newline', + 'pretty-print-post-print-hook', 'pretty-print-pre-print-hook', + 'pretty-print-print-hook', 'pretty-print-print-line', + 'pretty-print-remap-stylable', 'pretty-print-show-inexactness', + 'pretty-print-size-hook', 'pretty-print-style-table?', + 'pretty-printing', 'pretty-write', 'printable<%>', + 'printable/c', 'process', 'process*', 'process*/ports', + 'process/ports', 'processor-count', 'promise-forced?', + 'promise-running?', 'promise?', 'prop:chaperone-contract', + 'prop:contract', 'prop:contracted', 'prop:dict', + 'prop:flat-contract', 'prop:opt-chaperone-contract', + 'prop:opt-chaperone-contract-get-test', + 'prop:opt-chaperone-contract?', 'prop:stream', 'proper-subset?', + 'put-preferences', 'radians->degrees', 'raise-blame-error', + 'raise-contract-error', 'range', 'reencode-input-port', + 'reencode-output-port', 'relocate-input-port', + 'relocate-output-port', 'rest', 'second', 'sequence->list', + 'sequence-add-between', 'sequence-andmap', 'sequence-append', + 'sequence-count', 'sequence-filter', 'sequence-fold', + 'sequence-for-each', 'sequence-length', 'sequence-map', + 'sequence-ormap', 'sequence-ref', 'sequence-tail', 'set', + 'set->list', 'set-add', 'set-count', 'set-empty?', 'set-eq?', + 'set-equal?', 'set-eqv?', 'set-first', 'set-for-each', + 'set-intersect', 'set-map', 'set-member?', 'set-remove', + 'set-rest', 'set-subtract', 'set-symmetric-difference', + 'set-union', 'set/c', 'set=?', 'set?', 'seteq', 'seteqv', + 'seventh', 'sgn', 'shuffle', 'simple-form-path', 'sinh', 'sixth', + 'skip-projection-wrapper?', 'some-system-path->string', + 'special-filter-input-port', 'split-at', 'split-at-right', 'sqr', + 'stream->list', 'stream-add-between', 'stream-andmap', + 'stream-append', 'stream-count', 'stream-empty?', 'stream-filter', + 'stream-first', 'stream-fold', 'stream-for-each', 'stream-length', + 'stream-map', 'stream-ormap', 'stream-ref', 'stream-rest', + 'stream-tail', 'stream?', 'string->some-system-path', + 'string-append*', 'string-no-nuls?', 'struct-type-property/c', + 'struct:exn:fail:contract:blame', 'struct:exn:fail:object', + 'subclass?', 'subclass?/c', 'subset?', 'symbol=?', 'system', + 'system*', 'system*/exit-code', 'system/exit-code', 'take', + 'take-right', 'tanh', 'tcp-abandon-port', 'tcp-accept', + 'tcp-accept-evt', 'tcp-accept-ready?', 'tcp-accept/enable-break', + 'tcp-addresses', 'tcp-close', 'tcp-connect', + 'tcp-connect/enable-break', 'tcp-listen', 'tcp-listener?', + 'tcp-port?', 'tentative-pretty-print-port-cancel', + 'tentative-pretty-print-port-transfer', 'tenth', + 'the-unsupplied-arg', 'third', 'touch', 'transplant-input-port', + 'transplant-output-port', 'true', 'udp-addresses', 'udp-bind!', + 'udp-bound?', 'udp-close', 'udp-connect!', 'udp-connected?', + 'udp-open-socket', 'udp-receive!', 'udp-receive!*', + 'udp-receive!-evt', 'udp-receive!/enable-break', + 'udp-receive-ready-evt', 'udp-send', 'udp-send*', 'udp-send-evt', + 'udp-send-ready-evt', 'udp-send-to', 'udp-send-to*', + 'udp-send-to-evt', 'udp-send-to/enable-break', + 'udp-send/enable-break', 'udp?', 'unit?', 'unsupplied-arg?', + 'user-execute-bit', 'user-read-bit', 'user-write-bit', + 'value-contract', 'vector-append', 'vector-argmax', + 'vector-argmin', 'vector-copy', 'vector-count', 'vector-drop', + 'vector-drop-right', 'vector-filter', 'vector-filter-not', + 'vector-map', 'vector-map!', 'vector-member', 'vector-memq', + 'vector-memv', 'vector-set*!', 'vector-split-at', + 'vector-split-at-right', 'vector-take', 'vector-take-right', + 'with-input-from-bytes', 'with-input-from-string', + 'with-output-to-bytes', 'with-output-to-string', 'would-be-future', + 'writable<%>', 'xor', + ), + 4 => array( + '>=/c', '<=/c', '->*m', '->d', '->dm', '->i', '->m', + '=/c', 'absent', 'abstract', 'add-between', 'and/c', 'any', + 'any/c', 'augment', 'augment*', 'augment-final', 'augment-final*', + 'augride', 'augride*', 'between/c', 'blame-add-context', + 'box-immutable/c', 'box/c', 'call-with-file-lock/timeout', + 'case->', 'case->m', 'class', 'class*', + 'class-field-accessor', 'class-field-mutator', 'class/c', + 'class/derived', 'command-line', 'compound-unit', + 'compound-unit/infer', 'cons/c', 'continuation-mark-key/c', + 'contract', 'contract-out', 'contract-struct', 'contracted', + 'current-contract-region', 'define-compound-unit', + 'define-compound-unit/infer', 'define-contract-struct', + 'define-local-member-name', 'define-match-expander', + 'define-member-name', 'define-opt/c', 'define-serializable-class', + 'define-serializable-class*', 'define-signature', + 'define-signature-form', 'define-struct/contract', 'define-unit', + 'define-unit-binding', 'define-unit-from-context', + 'define-unit/contract', 'define-unit/new-import-export', + 'define-unit/s', 'define-values-for-export', + 'define-values/invoke-unit', 'define-values/invoke-unit/infer', + 'define/augment', 'define/augment-final', 'define/augride', + 'define/contract', 'define/final-prop', 'define/match', + 'define/overment', 'define/override', 'define/override-final', + 'define/private', 'define/public', 'define/public-final', + 'define/pubment', 'define/subexpression-pos-prop', 'delay', + 'delay/idle', 'delay/name', 'delay/strict', 'delay/sync', + 'delay/thread', 'dict->list', 'dict-can-functional-set?', + 'dict-can-remove-keys?', 'dict-count', 'dict-for-each', + 'dict-has-key?', 'dict-iterate-first', 'dict-iterate-key', + 'dict-iterate-next', 'dict-iterate-value', 'dict-keys', 'dict-map', + 'dict-mutable?', 'dict-ref', 'dict-ref!', 'dict-remove', + 'dict-remove!', 'dict-set', 'dict-set!', 'dict-set*', 'dict-set*!', + 'dict-update', 'dict-update!', 'dict-values', 'dict?', + 'display-lines', 'display-lines-to-file', 'display-to-file', + 'dynamic-place', 'dynamic-place*', 'eof-evt', 'except', + 'exn:fail:contract:blame', 'exn:fail:object', 'export', 'extends', + 'field', 'field-bound?', 'file->bytes', 'file->bytes-lines', + 'file->lines', 'file->list', 'file->string', + 'file->value', 'find-relative-path', 'flat-murec-contract', + 'flat-rec-contract', 'for*/set', 'for*/seteq', 'for*/seteqv', + 'for/set', 'for/seteq', 'for/seteqv', 'gen:dict', 'gen:stream', + 'generic', 'get-field', 'get-preference', 'hash/c', 'implies', + 'import', 'in-set', 'in-stream', 'include', + 'include-at/relative-to', 'include-at/relative-to/reader', + 'include/reader', 'inherit', 'inherit-field', 'inherit/inner', + 'inherit/super', 'init', 'init-depend', 'init-field', 'init-rest', + 'inner', 'inspect', 'instantiate', 'integer-in', 'interface', + 'interface*', 'invoke-unit', 'invoke-unit/infer', 'lazy', 'link', + 'list/c', 'listof', 'local', 'make-handle-get-preference-locked', + 'make-object', 'make-temporary-file', 'match', 'match*', + 'match*/derived', 'match-define', 'match-define-values', + 'match-lambda', 'match-lambda*', 'match-lambda**', 'match-let', + 'match-let*', 'match-let*-values', 'match-let-values', + 'match-letrec', 'match/derived', 'match/values', 'member-name-key', + 'method-contract?', 'mixin', 'nand', 'new', 'non-empty-listof', + 'none/c', 'nor', 'not/c', 'object-contract', 'object/c', + 'one-of/c', 'only', 'open', 'opt/c', 'or/c', 'overment', + 'overment*', 'override', 'override*', 'override-final', + 'override-final*', 'parameter/c', 'parametric->/c', + 'peek-bytes!-evt', 'peek-bytes-avail!-evt', 'peek-bytes-evt', + 'peek-string!-evt', 'peek-string-evt', 'peeking-input-port', + 'place', 'place*', 'port->bytes-lines', 'port->lines', + 'prefix', 'private', 'private*', 'procedure-arity-includes/c', + 'promise/c', 'prompt-tag/c', 'prop:dict/contract', + 'provide-signature-elements', 'provide/contract', 'public', + 'public*', 'public-final', 'public-final*', 'pubment', 'pubment*', + 'read-bytes!-evt', 'read-bytes-avail!-evt', 'read-bytes-evt', + 'read-bytes-line-evt', 'read-line-evt', 'read-string!-evt', + 'read-string-evt', 'real-in', 'recursive-contract', + 'regexp-match-evt', 'remove-duplicates', 'rename', 'rename-inner', + 'rename-super', 'send', 'send*', 'send+', 'send-generic', + 'send/apply', 'send/keyword-apply', 'set-field!', 'shared', + 'stream', 'stream-cons', 'string-join', 'string-len/c', + 'string-normalize-spaces', 'string-replace', 'string-split', + 'string-trim', 'struct*', 'struct/c', 'struct/ctc', 'struct/dc', + 'super', 'super-instantiate', 'super-make-object', 'super-new', + 'symbols', 'syntax/c', 'tag', 'this', 'this%', 'thunk', 'thunk*', + 'unconstrained-domain->', 'unit', 'unit-from-context', 'unit/c', + 'unit/new-import-export', 'unit/s', 'vector-immutable/c', + 'vector-immutableof', 'vector/c', 'vectorof', 'with-contract', + 'with-method', 'write-to-file', '~.a', '~.s', '~.v', '~a', '~e', + '~r', '~s', '~v', + ), + ), + 'SYMBOLS' => array( + 0 => array( + '>', '>=', '<', '<=', '*', '+', '-', '->', '->*', '...', '/', + '=', '=>', '==', '_', '#fl', '#fx', '#s', '#', '#f', '#F', + '#false', '#t', '#T', '#true', '#lang', '#reader', '.', '\'', '#`', + '#,@', '#,', '#\'', '`', '@', ',', '#%', '#$', '#&', '#~', '#rx', + '#px', '#<<', '#;', '#hash', '#', + ), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'NUMBERS' => array( + 1 => '(((#x#e)|(#e#x)|(#x#i)|(#i#x)|(#x))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)'. + '(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))('. + '([sl]((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan'. + '\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9a-fA-F])+'. + '(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#'. + ')*)\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?'. + '))|((((inf\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9'. + '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('. + '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('. + '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'. + 'f]))))@((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9a-fA-F])+(#)'. + '*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)'. + '\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?)))'. + '|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|((((((-)|(\+)))?('. + '([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9])+)i))|((((('. + '-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)))?(((((([0-9'. + '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('. + '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('. + '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'. + 'f])))))|(((((-)|(\+)))?([0-9])+))))', + 2 => '(((#o#e)|(#e#o)|(#o#i)|(#i#o)|(#o))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|'. + '(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|'. + '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'. + ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])'. + '+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl'. + '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'. + 'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)'. + '))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'. + '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'. + ')?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7]'. + ')+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['. + '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('. + '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'. + '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'. + '))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?'. + '(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))'. + '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['. + '0f])))))|(((((-)|(\+)))?([0-9])+))))', + 3 => '(((#b#e)|(#e#b)|(#b#i)|(#i#b)|(#b))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|'. + '(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|'. + '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'. + ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])'. + '+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl'. + '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'. + 'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)'. + '))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'. + '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'. + ')?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1]'. + ')+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['. + '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('. + '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'. + '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'. + '))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?'. + '(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))'. + '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['. + '0f])))))|(((((-)|(\+)))?([0-9])+))))', + 4 => '((((#d#e)|(#e#d)|(#d#i)|(#i#d)|(#e)|(#i)|(#d)))?((((((((((((-'. + ')|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*'. + ')(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|(['. + 'def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(na'. + 'n\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9])+(#)*)'. + '))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf'. + '\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?'. + '(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)'. + '\\/(([0-9])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)'. + '))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))'. + '?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#'. + ')*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|([def]))(('. + '((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f'. + ']))))))))|((((((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))((['. + '0-9])+\\/([0-9])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|'. + '(((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-'. + '9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((('. + '[sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((in'. + 'f\.)|(nan\.))[0f])))))|(((((-)|(\+)))?([0-9])+))))', + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: blue;', + 2 => 'color: rgb(34, 34, 139);', + 3 => 'color: blue;', + 4 => 'color: rgb(34, 34, 139);', + ), + 'COMMENTS' => array( + 1 => 'color: rgb(194, 116, 31);', + 'MULTI' => 'color: rgb(194, 116, 31);', + ), + 'ESCAPE_CHAR' => array( + 0 => '', + ), + 'BRACKETS' => array( + 0 => 'color: rgb(132, 60,36);', + ), + 'STRINGS' => array( + 0 => 'color: rgb(34, 139, 34);', + ), + 'NUMBERS' => array( + 0 => 'color: rgb(34, 139, 34);', + 1 => 'color: rgb(34, 139, 34);', + 2 => 'color: rgb(34, 139, 34);', + 3 => 'color: rgb(34, 139, 34);', + 4 => 'color: rgb(34, 139, 34);', + ), + 'METHODS' => array( + 0 => 'color: #202020;', + ), + 'SYMBOLS' => array( + 0 => 'color: rgb(132, 60,36);', + ), + 'REGEXPS' => array( + 1 => 'color: rgb(34, 139, 34);', + 2 => 'color: rgb(132, 60,36);', + 3 => 'color: rgb(34, 139, 34);', + ), + 'SCRIPT' => array( + ), + ), + 'URLS' => array( + 1 => 'http://docs.racket-lang.org/reference/', + 2 => 'http://docs.racket-lang.org/reference/', + 3 => 'http://docs.racket-lang.org/reference/', + 4 => 'http://docs.racket-lang.org/reference/', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 1 => '#\\\\(nul|null|backspace|tab|newline|linefeed|vtab|page|retur'. + 'n|space|rubout|([0-7]{1,3})|(u[[:xdigit:]]{1,4})|(U[[:xdigit:'. + ']]{1,6})|[a-z])', + 2 => '#:[^[:space:]()[\\]{}",\']+', + 3 => '\'((\\\\ )|([^[:space:]()[\\]{}",\']))+', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '[[:space:]()[\\]{}",\']', + ), + 'ENABLE_FLAGS' => array( + 'SYMBOLS' => GESHI_MAYBE, + 'BRACKETS' => GESHI_MAYBE, + 'REGEXPS' => GESHI_MAYBE, + 'ESCAPE_CHAR' => GESHI_MAYBE, + ) + ) +); diff --git a/inc/geshi/rails.php b/vendor/easybook/geshi/geshi/rails.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/rails.php rename to vendor/easybook/geshi/geshi/rails.php index 65ddee884..d41bd9a6f --- a/inc/geshi/rails.php +++ b/vendor/easybook/geshi/geshi/rails.php @@ -402,5 +402,3 @@ $language_data = array ( 0 => true, ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/rbs.php b/vendor/easybook/geshi/geshi/rbs.php new file mode 100644 index 000000000..02c2fcfa8 --- /dev/null +++ b/vendor/easybook/geshi/geshi/rbs.php @@ -0,0 +1,224 @@ +<?php +/************************************************************************************* + * rbs.php + * ------ + * Author: Deng Wen Gang (deng@priity.com) + * Copyright: (c) 2013 Deng Wen Gang + * Release Version: 1.0.8.12 + * Date Started: 2013/01/15 + * + * RBScript language file for GeSHi. + * + * RBScript official website: http://docs.realsoftware.com/index.php/Rbscript + * + * CHANGES + * ------- + * 2013/01/15 (1.0.0) + * - First Release + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'RBScript', + 'COMMENT_SINGLE' => array( 1 => '//', 2 => "'" ), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 3 => '/REM\s.*$/im', + 4 => '/&b[01]+/', + 5 => '/&o[0-7]+/', + 6 => '/&h[a-f0-9]+/i', + 7 => '/&c[a-f0-9]+/i', + 8 => '/&u[a-f0-9]+/i', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'Int8', 'Int16', 'Int32', 'Int64', 'Uint8', 'Uint16', 'Uint32', 'Uint64', 'Byte', 'Integer', + 'Single', 'Double', 'Boolean', 'String', 'Color', 'Object', 'Variant' + ), + 2 => array( + 'Private', 'Public', 'Protected', + 'Sub', 'Function', 'Delegate', 'Exception', + ), + 3 => array( + 'IsA', + 'And', 'Or', 'Not', 'Xor', + 'If', 'Then', 'Else', 'ElseIf', + 'Select', 'Case', + 'For', 'Each', 'In', 'To', 'Step', 'Next', + 'Do', 'Loop', 'Until', + 'While', 'Wend', + 'Continue', 'Exit', 'Goto', 'End', + ), + 4 => array( + 'Const', 'Static', + 'Dim', 'As', 'Redim', + 'Me', 'Self', 'Super', 'Extends', 'Implements', + 'ByRef', 'ByVal', 'Assigns', 'ParamArray', + 'Mod', + 'Raise', + ), + 5 => array( + 'False', 'True', 'Nil' + ), + 6 => array( + 'Abs', + 'Acos', + 'Asc', + 'AscB', + 'Asin', + 'Atan', + 'Atan2', + 'CDbl', + 'Ceil', + 'Chr', + 'ChrB', + 'CMY', + 'Cos', + 'CountFields', + 'CStr', + 'Exp', + 'Floor', + 'Format', + 'Hex', + 'HSV', + 'InStr', + 'InStrB', + 'Left', + 'LeftB', + 'Len', + 'LenB', + 'Log', + 'Lowercase', + 'LTrim', + 'Max', + 'Microseconds', + 'Mid', + 'MidB', + 'Min', + 'NthField', + 'Oct', + 'Pow', + 'Replace', + 'ReplaceB', + 'ReplaceAll', + 'ReplaceAllB', + 'RGB', + 'Right', + 'RightB', + 'Rnd', + 'Round', + 'RTrim', + 'Sin', + 'Sqrt', + 'Str', + 'StrComp', + 'Tan', + 'Ticks', + 'Titlecase', + 'Trim', + 'UBound', + 'Uppercase', + 'Val', + ), + ), + 'SYMBOLS' => array( + '+', '-', '*', '/', '\\', '^', '<', '>', '=', '<>', '&' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #F660AB; font-weight: bold;', + 2 => 'color: #E56717; font-weight: bold;', + 3 => 'color: #8D38C9; font-weight: bold;', + 4 => 'color: #151B8D; font-weight: bold;', + 5 => 'color: #00C2FF; font-weight: bold;', + 6 => 'color: #3EA99F; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 2 => 'color: #008000;', + 3 => 'color: #008000;', + + 4 => 'color: #800000;', + 5 => 'color: #800000;', + 6 => 'color: #800000;', + 7 => 'color: #800000;', + 8 => 'color: #800000;', + ), + 'BRACKETS' => array( + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'SYMBOLS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); diff --git a/inc/geshi/rebol.php b/vendor/easybook/geshi/geshi/rebol.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rebol.php rename to vendor/easybook/geshi/geshi/rebol.php diff --git a/inc/geshi/reg.php b/vendor/easybook/geshi/geshi/reg.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/reg.php rename to vendor/easybook/geshi/geshi/reg.php index 157b2bd24..2034d5adb --- a/inc/geshi/reg.php +++ b/vendor/easybook/geshi/geshi/reg.php @@ -229,5 +229,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/rexx.php b/vendor/easybook/geshi/geshi/rexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/rexx.php rename to vendor/easybook/geshi/geshi/rexx.php index b3cb93229..1189ac5be --- a/inc/geshi/rexx.php +++ b/vendor/easybook/geshi/geshi/rexx.php @@ -158,5 +158,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/robots.php b/vendor/easybook/geshi/geshi/robots.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/robots.php rename to vendor/easybook/geshi/geshi/robots.php diff --git a/inc/geshi/rpmspec.php b/vendor/easybook/geshi/geshi/rpmspec.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rpmspec.php rename to vendor/easybook/geshi/geshi/rpmspec.php diff --git a/inc/geshi/rsplus.php b/vendor/easybook/geshi/geshi/rsplus.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rsplus.php rename to vendor/easybook/geshi/geshi/rsplus.php diff --git a/inc/geshi/ruby.php b/vendor/easybook/geshi/geshi/ruby.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ruby.php rename to vendor/easybook/geshi/geshi/ruby.php diff --git a/vendor/easybook/geshi/geshi/rust.php b/vendor/easybook/geshi/geshi/rust.php new file mode 100644 index 000000000..07ba51a02 --- /dev/null +++ b/vendor/easybook/geshi/geshi/rust.php @@ -0,0 +1,228 @@ +<?php +/************************************************************************************* + * rust.php + * -------- + * Author: Edward Hart (edward.dan.hart@gmail.com) + * Copyright: (c) 2013 Edward Hart + * Release Version: 1.0.8.12 + * Date Started: 2013/10/20 + * + * Rust language file for GeSHi. + * + * CHANGES + * ------- + * 2013/10/20 + * - First Release + * + * TODO (updated 2013/10/20) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Rust', + + 'COMMENT_SINGLE' => array('//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\nrt\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + + 'KEYWORDS' => array( + // Keywords + 1 => array( + 'alt', 'as', 'assert', 'break', 'const', 'continue', 'copy', 'do', + 'else', 'enum', 'extern', 'fn', 'for', 'if', + 'impl', 'in', 'let', 'log', 'loop', 'match', 'mod', 'mut', 'of', + 'priv', 'pub', 'ref', 'return', 'self', 'static', 'struct', 'super', + 'to', 'trait', 'type', 'unsafe', 'use', 'with', 'while' + ), + // Boolean values + 2 => array( 'true', 'false' ), + // Structs and built-in types + 3 => array( + 'u8', 'i8', + 'u16', 'i16', + 'u32', 'i32', + 'u64', 'i64', + 'f32', 'f64', + 'int', 'uint', + 'float', + 'bool', + 'str', 'char', + 'Argument', 'AsyncWatcher', 'BorrowRecord', 'BufReader', + 'BufWriter', 'BufferedReader', 'BufferedStream', 'BufferedWriter', + 'ByRef', 'ByteIterator', 'CFile', 'CString', 'CStringIterator', + 'Cell', 'Chain', 'Chan', 'ChanOne', 'CharIterator', + 'CharOffsetIterator', 'CharRange', 'CharSplitIterator', + 'CharSplitNIterator', 'ChunkIter', 'Condition', 'ConnectRequest', + 'Coroutine', 'Counter', 'CrateMap', 'Cycle', 'DeflateWriter', + 'Display', 'ElementSwaps', 'Enumerate', 'Exp', 'Exp1', 'FileDesc', + 'FileReader', 'FileStat', 'FileStream', 'FileWriter', 'Filter', + 'FilterMap', 'FlatMap', 'FormatSpec', 'Formatter', 'FsRequest', + 'Fuse', 'GarbageCollector', 'GetAddrInfoRequest', 'Handle', + 'HashMap', 'HashMapIterator', 'HashMapMoveIterator', + 'HashMapMutIterator', 'HashSet', 'HashSetIterator', + 'HashSetMoveIterator', 'Hint', 'IdleWatcher', 'InflateReader', + 'Info', 'Inspect', 'Invert', 'IoError', 'Isaac64Rng', 'IsaacRng', + 'LineBufferedWriter', 'Listener', 'LocalHeap', 'LocalStorage', + 'Loop', 'Map', 'MatchesIndexIterator', 'MemReader', 'MemWriter', + 'MemoryMap', 'ModEntry', 'MoveIterator', 'MovePtrAdaptor', + 'MoveRevIterator', 'NoOpRunnable', 'NonCopyable', 'Normal', + 'OSRng', 'OptionIterator', 'Parser', 'Path', 'Peekable', + 'Permutations', 'Pipe', 'PipeStream', 'PluralArm', 'Port', + 'PortOne', 'Process', 'ProcessConfig', 'ProcessOptions', + 'ProcessOutput', 'RC', 'RSplitIterator', 'RandSample', 'Range', + 'RangeInclusive', 'RangeStep', 'RangeStepInclusive', 'Rc', 'RcMut', + 'ReaderRng', 'Repeat', 'ReprVisitor', 'RequestData', + 'ReseedWithDefault', 'ReseedingRng', 'Scan', 'SchedOpts', + 'SelectArm', 'SharedChan', 'SharedPort', 'SignalWatcher', + 'SipState', 'Skip', 'SkipWhile', 'SocketAddr', 'SplitIterator', + 'StackPool', 'StackSegment', 'StandardNormal', 'StdErrLogger', + 'StdIn', 'StdOut', 'StdReader', 'StdRng', 'StdWriter', + 'StrSplitIterator', 'StreamWatcher', 'TTY', 'Take', 'TakeWhile', + 'Task', 'TaskBuilder', 'TaskOpts', 'TcpAcceptor', 'TcpListener', + 'TcpStream', 'TcpWatcher', 'Timer', 'TimerWatcher', 'TrieMap', + 'TrieMapIterator', 'TrieSet', 'TrieSetIterator', 'Tube', + 'UdpSendRequest', 'UdpSocket', 'UdpStream', 'UdpWatcher', 'Unfold', + 'UnixAcceptor', 'UnixListener', 'UnixStream', 'Unwinder', + 'UvAddrInfo', 'UvError', 'UvEventLoop', 'UvFileStream', + 'UvIoFactory', 'UvPausibleIdleCallback', 'UvPipeStream', + 'UvProcess', 'UvRemoteCallback', 'UvSignal', 'UvTTY', + 'UvTcpAcceptor', 'UvTcpListener', 'UvTcpStream', 'UvTimer', + 'UvUdpSocket', 'UvUnboundPipe', 'UvUnixAcceptor', 'UvUnixListener', + 'VecIterator', 'VecMutIterator', 'Weighted', 'WeightedChoice', + 'WindowIter', 'WriteRequest', 'XorShiftRng', 'Zip', 'addrinfo', + 'uv_buf_t', 'uv_err_data', 'uv_process_options_t', 'uv_stat_t', + 'uv_stdio_container_t', 'uv_timespec_t' + ), + // Enums + 4 => array( + 'Alignment', 'Count', 'Either', 'ExponentFormat', 'FPCategory', + 'FileAccess', 'FileMode', 'Flag', 'IoErrorKind', 'IpAddr', + 'KeyValue', 'MapError', 'MapOption', 'MemoryMapKind', 'Method', + 'NullByteResolution', 'Option', 'Ordering', 'PathPrefix', 'Piece', + 'PluralKeyword', 'Position', 'Protocol', 'Result', 'SchedHome', + 'SchedMode', 'SeekStyle', 'SendStr', 'SignFormat', + 'SignificantDigits', 'Signum', 'SocketType', 'StdioContainer', + 'TaskResult', 'TaskType', 'UvSocketAddr', 'Void', 'uv_handle_type', + 'uv_membership', 'uv_req_type' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '&', '|', '^', '!', '<', '>', '~', '@', + ':', + ';', ',', + '=' + ), + + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #708;', + 2 => 'color: #219;', + 3 => 'color: #05a;', + 4 => 'color: #800;' + ), + 'COMMENTS' => array( + 0 => 'color: #a50; font-style: italic;', + 'MULTI' => 'color: #a50; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '' + ), + 'STRINGS' => array( + 0 => 'color: #a11;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'BRACKETS' => array(''), + 'METHODS' => array( + 1 => 'color: #164;' + ), + 'SYMBOLS' => array( + 0 => '' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/sas.php b/vendor/easybook/geshi/geshi/sas.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/sas.php rename to vendor/easybook/geshi/geshi/sas.php diff --git a/vendor/easybook/geshi/geshi/sass.php b/vendor/easybook/geshi/geshi/sass.php new file mode 100644 index 000000000..286f4bfab --- /dev/null +++ b/vendor/easybook/geshi/geshi/sass.php @@ -0,0 +1,248 @@ +<?php +/************************************************************************************* + * sass.php + * ------- + * Author: Javier Eguiluz (javier.eguiluz@gmail.com) + * Release Version: 1.0.8.12 + * Date Started: 2014/05/10 + * + * SASS language file for GeSHi. + * + * CHANGES + * ------- + * 2014/05/10 (1.0.0) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Sass', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // properties + 1 => array( + 'azimuth', 'background-attachment', 'background-color', + 'background-image', 'background-position', 'background-repeat', + 'background', 'border-bottom-color', 'border-radius', + 'border-top-left-radius', 'border-top-right-radius', + 'border-bottom-right-radius', 'border-bottom-left-radius', + 'border-bottom-style', 'border-bottom-width', 'border-left-color', + 'border-left-style', 'border-left-width', 'border-right', + 'border-right-color', 'border-right-style', 'border-right-width', + 'border-top-color', 'border-top-style', + 'border-top-width','border-bottom', 'border-collapse', + 'border-left', 'border-width', 'border-color', 'border-spacing', + 'border-style', 'border-top', 'border', 'box-shadow', 'caption-side', 'clear', + 'clip', 'color', 'content', 'counter-increment', 'counter-reset', + 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display', + 'elevation', 'empty-cells', 'float', 'font-family', 'font-size', + 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', + 'font-weight', 'font', 'line-height', 'letter-spacing', + 'list-style', 'list-style-image', 'list-style-position', + 'list-style-type', 'margin-bottom', 'margin-left', 'margin-right', + 'margin-top', 'margin', 'marker-offset', 'marks', 'max-height', + 'max-width', 'min-height', 'min-width', 'orphans', 'outline', + 'outline-color', 'outline-style', 'outline-width', 'overflow', + 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', + 'padding', 'page', 'page-break-after', 'page-break-before', + 'page-break-inside', 'pause-after', 'pause-before', 'pause', + 'pitch', 'pitch-range', 'play-during', 'position', 'quotes', + 'richness', 'right', 'size', 'speak-header', 'speak-numeral', + 'speak-punctuation', 'speak', 'speech-rate', 'stress', + 'table-layout', 'text-align', 'text-decoration', 'text-indent', + 'text-shadow', 'text-transform', 'top', 'unicode-bidi', + 'vertical-align', 'visibility', 'voice-family', 'volume', + 'white-space', 'widows', 'width', 'word-spacing', 'z-index', + 'bottom', 'left', 'height', + // media queries + 'screen', 'orientation', 'min-device-width', 'max-device-width', + ), + // reserved words for values + 2 => array( + // colors + 'aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', + 'maroon', 'navy', 'olive', 'orange', 'purple', 'red', 'silver', + 'teal', 'white', 'yellow', + // media queries + 'landscape', 'portrait', + // other + 'above', 'absolute', 'always', 'armenian', 'aural', 'auto', + 'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink', + 'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left', + 'center-right', 'center', 'circle', 'cjk-ideographic', + 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', + 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero', + 'decimal', 'default', 'digits', 'disc', 'dotted', 'double', + 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', + 'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast', + 'fixed', 'georgian', 'groove', 'hebrew', 'help', 'hidden', + 'hide', 'higher', 'high', 'hiragana-iroha', 'hiragana', 'icon', + 'inherit', 'inline-table', 'inline', 'inline-block', 'inset', 'inside', + 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana', 'landscape', + 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', + 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', + 'lower-roman', 'lowercase', 'ltr', 'lower', 'low', + 'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize', + 'narrower', 'ne-resize', 'no-close-quote', + 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', + 'nw-resize', 'oblique', 'once', 'open-quote', 'outset', + 'outside', 'overline', 'pointer', 'portrait', 'px', + 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', + 'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif', + 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', + 'separate', 'serif', 'show', 'silent', 'slow', 'slower', + 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', + 'spell-out', 'square', 'static', 'status-bar', 'super', + 'sw-resize', 'table-caption', 'table-cell', 'table-column', + 'table-column-group', 'table-footer-group', 'table-header-group', + 'table-row', 'table-row-group', 'text', 'text-bottom', + 'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed', + 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', + 'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait', + 'wider', 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', + 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow', 'yes' + ), + // directives + 3 => array( + '@at-root', '@charset', '@content', '@debug', '@each', '@else', '@elseif', + '@else if', '@extend', '@font-face', '@for', '@function', '@if', + '@import', '@include', '@media', '@mixin', '@namespace', '@page', + '@return', '@warn', '@while', + ), + // built-in Sass functions + 4 => array( + 'rgb', 'rgba', 'red', 'green', 'blue', 'mix', + 'hsl', 'hsla', 'hue', 'saturation', 'lightness', 'adjust-hue', + 'lighten', 'darken', 'saturate', 'desaturate', 'grayscale', + 'complement', 'invert', + 'alpha', 'rgba', 'opacify', 'transparentize', + 'adjust-color', 'scale-color', 'change-color', 'ie-hex-str', + 'unquote', 'quote', 'str-length', 'str-insert', 'str-index', + 'str-slice', 'to-upper-case', 'to-lower-case', + 'percentage', 'round', 'ceil', 'floor', 'abs', 'min', 'max', 'random', + 'length', 'nth', 'join', 'append', 'zip', 'index', 'list-separator', + 'map-get', 'map-merge', 'map-remove', 'map-keys', 'map-values', + 'map-has-key', 'keywords', + 'feature-exists', 'variable-exists', 'global-variable-exists', + 'function-exists', 'mixin-exists', 'inspect', 'type-of', 'unit', + 'unitless', 'comparable', 'call', + 'if', 'unique-id', + ), + // reserved words + 5 => array( + '!important', '!default', '!optional', 'true', 'false', 'with', + 'without', 'null', 'from', 'through', 'to', 'in', 'and', 'or', + 'only', 'not', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', ':', ';', + '>', '+', '*', ',', '^', '=', + '&', '~', '!', '%', '?', '...', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #993333;', + 3 => 'color: #990000;', + 4 => 'color: #000000; font-weight: bold;', + 5 => 'color: #009900;', + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #00AA00;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #00AA00;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #cc00cc;', + 1 => 'color: #6666ff;', + 2 => 'color: #3333ff;', + 3 => 'color: #933;', + 4 => 'color: #ff6633;', + 5 => 'color: #0066ff;', + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + // Variables + 0 => "[$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*", + // Hexadecimal colors + 1 => "\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})", + // CSS Pseudo classes + // note: & is needed for > (i.e. > ) + 2 => "(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))", + // Measurements + 3 => "[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)", + // Interpolation + 4 => "(\#\{.*\})", + // Browser prefixed properties + 5 => "(\-(moz|ms|o|webkit)\-[a-z\-]*)", + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2, +); diff --git a/inc/geshi/scala.php b/vendor/easybook/geshi/geshi/scala.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/scala.php rename to vendor/easybook/geshi/geshi/scala.php diff --git a/inc/geshi/scheme.php b/vendor/easybook/geshi/geshi/scheme.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/scheme.php rename to vendor/easybook/geshi/geshi/scheme.php index a84b90809..59870846b --- a/inc/geshi/scheme.php +++ b/vendor/easybook/geshi/geshi/scheme.php @@ -166,5 +166,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/scilab.php b/vendor/easybook/geshi/geshi/scilab.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/scilab.php rename to vendor/easybook/geshi/geshi/scilab.php diff --git a/vendor/easybook/geshi/geshi/scl.php b/vendor/easybook/geshi/geshi/scl.php new file mode 100644 index 000000000..6b0e494f2 --- /dev/null +++ b/vendor/easybook/geshi/geshi/scl.php @@ -0,0 +1,148 @@ +<?php +/************************************************************************************* + * <scl.php> + * --------------------------------- + * Author: Leonhard Hösch (leonhard.hoesch@siemens.com) + * Copyright: (c) 2008 by Leonhard Hösch (siemens.de) + * Release Version: 1.0.8.12 + * Date Started: 2012/09/25 + * + * SCL language file for GeSHi. + * + * A SCL langauge file. + * + * CHANGES + * ------- + * <date-of-release> (<GeSHi release>) + * - First Release + * + * TODO (updated <date-of-release>) + * ------------------------- + * <things-to-do> + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'SCL', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('(*' => '*)'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '$', + 'KEYWORDS' => array( + 1 => array( + 'AND','ANY','ARRAY','AT','BEGIN','BLOCK_DB','BLOCK_FB','BLOCK_FC','BLOCK_SDB', + 'BLOCK_SFB','BLOCK_SFC','BOOL','BY','BYTE','CASE','CHAR','CONST','CONTINUE','COUNTER', + 'DATA_BLOCK','DATE','DATE_AND_TIME','DINT','DIV','DO','DT','DWORD','ELSE','ELSIF', + 'EN','END_CASE','END_CONST','END_DATA_BLOCK','END_FOR','END_FUNCTION', + 'END_FUNCTION_BLOCK','END_IF','END_LABEL','END_TYPE','END_ORGANIZATION_BLOCK', + 'END_REPEAT','END_STRUCT','END_VAR','END_WHILE','ENO','EXIT','FALSE','FOR','FUNCTION', + 'FUNCTION_BLOCK','GOTO','IF','INT','LABEL','MOD','NIL','NOT','OF','OK','OR', + 'ORGANIZATION_BLOCK','POINTER','PROGRAM','REAL','REPEAT','RETURN','S5TIME','STRING', + 'STRUCT','THEN','TIME','TIMER','TIME_OF_DAY','TO','TOD','TRUE','TYPE','VAR', + 'VAR_TEMP','UNTIL','VAR_INPUT','VAR_IN_OUT','VAR_OUTPUT','VOID','WHILE','WORD','XOR' + ), + 2 =>array( + 'UBLKMOV','FILL','CREAT_DB','DEL_DB','TEST_DB','COMPRESS','REPL_VAL','CREA_DBL','READ_DBL', + 'WRIT_DBL','CREA_DB','RE_TRIGR','STP','WAIT','MP_ALM','CiR','PROTECT','SET_CLK','READ_CLK', + 'SNC_RTCB','SET_CLKS','RTM','SET_RTM','CTRL_RTM','READ_RTM','TIME_TCK','RD_DPARM', + 'RD_DPARA','WR_PARM','WR_DPARM','PARM_MOD','WR_REC','RD_REC','RD_DPAR','RDREC','WRREC','RALRM', + 'SALRM','RCVREC','PRVREC','SET_TINT','CAN_TINT','ACT_TINT','QRY_TINT','SRT_DINT','QRY_DINT', + 'CAN_DINT','MSK_FLT','DMSK_FLT','READ_ERR','DIS_IRT','EN_IRT','DIS_AIRT','EN_AIRT','RD_SINFO', + 'RDSYSST','WR_USMSG','OB_RT','C_DIAG','DP_TOPOL','UPDAT_PI','UPDAT_PO','SYNC_PI','SYNC_PO', + 'SET','RSET','DRUM','GADR_LGC','LGC_GADR','RD_LGADR','GEO_LOG','LOG_GEO','DP_PRAL','DPSYC_FR', + 'D_ACT_DP','DPNRM_DG','DPRD_DAT','DPWR_DAT','PN_IN','PN_OUT','PN_DP','WWW','IP_CONF','GETIO', + 'SETIO','GETIO_PART','SETIO_PART','GD_SND','GD_RCV','USEND','URCV','BSEND','BRCV','PUT','GET', + 'PRINT','START','STOP','RESUME','STATUS','USTATUS','CONTROL','C_CNTRL','X_SEND','X_RCV', + 'X_GET','X_PUT','X_ABORT','I_GET','I_PUT','I_ABORT','TCON','TDISCON','TSEND','TRCV','TUSEND', + 'TURCV','NOTIFY','NOTIFY_8P','ALARM','ALARM_8P','ALARM_8','AR_SEND','DIS_MSG','EN_MSG', + 'ALARM_SQ','ALARM_S','ALARM_SC','ALARM_DQ','LARM_D','READ_SI','DEL_SI','TP','TON','TOF','CTU', + 'CTD','CTUD','CONT_C','CONT_S','PULSEGEN','Analog','DIGITAL','COUNT','FREQUENC','PULSE', + 'SEND_PTP','RECV_PTP','RES_RECV','SEND_RK','FETCH_RK','SERVE_RK','H_CTRL','state' + ), + ), + 'SYMBOLS' => array( + '.', '"', '|', ';', ',', '=>', '>=', '<=', ':=', '=', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #ff6f00;', + ), + 'COMMENTS' => array( + 1 => 'color: #009600; font-style: italic;', + 'MULTI' => 'color: #009600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'NUMBERS' => GESHI_NUMBER_INT_BASIC, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '', + 2 => '' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '<?php11!!' => '!!11?>' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/sdlbasic.php b/vendor/easybook/geshi/geshi/sdlbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/sdlbasic.php rename to vendor/easybook/geshi/geshi/sdlbasic.php index 381161fdf..b95003fcc --- a/inc/geshi/sdlbasic.php +++ b/vendor/easybook/geshi/geshi/sdlbasic.php @@ -161,5 +161,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/smalltalk.php b/vendor/easybook/geshi/geshi/smalltalk.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/smalltalk.php rename to vendor/easybook/geshi/geshi/smalltalk.php diff --git a/inc/geshi/smarty.php b/vendor/easybook/geshi/geshi/smarty.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/smarty.php rename to vendor/easybook/geshi/geshi/smarty.php index 86e9d44c0..883b3eb7c --- a/inc/geshi/smarty.php +++ b/vendor/easybook/geshi/geshi/smarty.php @@ -188,5 +188,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/spark.php b/vendor/easybook/geshi/geshi/spark.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/spark.php rename to vendor/easybook/geshi/geshi/spark.php diff --git a/inc/geshi/sparql.php b/vendor/easybook/geshi/geshi/sparql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/sparql.php rename to vendor/easybook/geshi/geshi/sparql.php diff --git a/inc/geshi/sql.php b/vendor/easybook/geshi/geshi/sql.php old mode 100644 new mode 100755 similarity index 97% rename from inc/geshi/sql.php rename to vendor/easybook/geshi/geshi/sql.php index 4d08a51fe..f4d130eb9 --- a/inc/geshi/sql.php +++ b/vendor/easybook/geshi/geshi/sql.php @@ -159,6 +159,11 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( //' + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\.\|\#|^&])" + ) ) ); diff --git a/inc/geshi/stonescript.php b/vendor/easybook/geshi/geshi/stonescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/stonescript.php rename to vendor/easybook/geshi/geshi/stonescript.php diff --git a/inc/geshi/systemverilog.php b/vendor/easybook/geshi/geshi/systemverilog.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/systemverilog.php rename to vendor/easybook/geshi/geshi/systemverilog.php diff --git a/inc/geshi/tcl.php b/vendor/easybook/geshi/geshi/tcl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/tcl.php rename to vendor/easybook/geshi/geshi/tcl.php diff --git a/inc/geshi/teraterm.php b/vendor/easybook/geshi/geshi/teraterm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/teraterm.php rename to vendor/easybook/geshi/geshi/teraterm.php diff --git a/inc/geshi/text.php b/vendor/easybook/geshi/geshi/text.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/text.php rename to vendor/easybook/geshi/geshi/text.php index 87fb7110c..3c7f17c62 --- a/inc/geshi/text.php +++ b/vendor/easybook/geshi/geshi/text.php @@ -80,5 +80,3 @@ $language_data = array ( ), ) ); - -?> diff --git a/inc/geshi/thinbasic.php b/vendor/easybook/geshi/geshi/thinbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/thinbasic.php rename to vendor/easybook/geshi/geshi/thinbasic.php index f54959e16..3d2034921 --- a/inc/geshi/thinbasic.php +++ b/vendor/easybook/geshi/geshi/thinbasic.php @@ -864,5 +864,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/tsql.php b/vendor/easybook/geshi/geshi/tsql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/tsql.php rename to vendor/easybook/geshi/geshi/tsql.php diff --git a/vendor/easybook/geshi/geshi/twig.php b/vendor/easybook/geshi/geshi/twig.php new file mode 100644 index 000000000..cc790532c --- /dev/null +++ b/vendor/easybook/geshi/geshi/twig.php @@ -0,0 +1,190 @@ +<?php +/************************************************************************************* + * twig.php + * ---------- + * Author: Keyvan Akbary (keyvan@kiwwito.com) + * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/) + * Release Version: 1.0.0 + * Date Started: 2011/12/05 + * + * Twig template language file for GeSHi. + * + * CHANGES + * ------- + * 2012/09/28 (1.9.0 by José Andrés Puertas y Javier Eguiluz) + * - Added new tags, filters and functions + * - Added regexps for variables, objects and properties + * - Lots of other minor tweaks (delimites, comments, ...) + * + * 2011/12/05 (1.0.0 by Keyvan Akbary) + * - Initial Release + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Twig', + 'COMMENT_SINGLE' => array('{#' => '#}'), + 'COMMENT_MULTI' => array('{#' => '#}'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + //TWIG + //Tags + 1 => array( + 'autoescape', 'endautoescape', 'block', 'endblock', 'do', 'embed', 'endembed', + 'extends', 'filter', 'endfilter', 'for', 'endfor', 'from', 'if', 'else', 'elseif', 'endif', + 'import', 'include', 'macro', 'endmacro', 'raw', 'endraw', 'sandbox', 'set', 'endset', + 'spaceless', 'endspaceless', 'use', 'verbatim', 'endverbatim', + 'trans', 'endtrans', 'transchoice', 'endtranschoice' + ), + //Filters + 2 => array( + 'abs', 'batch', 'capitalize', 'convert_encoding', 'date', 'date_modify', 'default', + 'escape', 'first', 'format', 'join', 'json_encode', 'keys', 'last', 'length', 'lower', + 'merge', 'nl2br', 'number_format', 'raw', 'replace', 'reverse', 'slice', 'sort', 'split', + 'striptags', 'title', 'trans', 'trim', 'upper', 'url_encode' + ), + //Functions + 3 => array( + 'attribute', 'block', 'constant', 'cycle', 'date', 'dump', 'include', + 'parent', 'random', 'range', 'source', 'template_from_string' + ), + //Tests + 4 => array( + 'constant', 'defined', 'divisibleby', 'empty', 'even', 'iterable', 'null', + 'odd', 'sameas' + ), + //Operators + 5 => array( + 'in', 'is', 'and', 'b-and', 'or', 'b-or', 'b-xor', 'not', 'into', + 'starts with', 'ends with', 'matches' + ), + 6 => array( + '{{', '}}', '{%', '%}' + ), + ), + 'SYMBOLS' => array( + '+', '-', '/', '/', '*', '**', //Math operators + '==', '!=', '<', '>', '>=', '<=', '===', //Logic operators + '..', '|', '~', '[', ']', '.', '?', ':', '(', ')', //Other + '=' //HTML (attributes) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + //Twig + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', //Tags + 2 => 'color: #008000;', //Filters + 3 => 'color: #0600FF;', //Functions + 4 => 'color: #804040;', //Tests + 5 => 'color: #008000;', //Operators + 6 => 'color: #008000;' // {{ and {% + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #D36900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #D36900;' + ), + 'SCRIPT' => array( + 0 => '', + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #009000;' + ), + 'REGEXPS' => array( + 0 => 'color: #00aaff;', + 1 => 'color: #00aaff;' + ) + ), + 'URLS' => array( + 1 => 'http://twig.sensiolabs.org/doc/tags/{FNAMEL}.html', + 2 => 'http://twig.sensiolabs.org/doc/filters/{FNAMEL}.html', + 3 => 'http://twig.sensiolabs.org/doc/functions/{FNAMEL}.html', + 4 => 'http://twig.sensiolabs.org/doc/tests/{FNAMEL}.html', + 5 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)", + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '' + ), + 1 => array( + GESHI_SEARCH => "\.([a-zA-Z_][a-zA-Z0-9_]*)", + GESHI_REPLACE => '.\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '{{' => '}}', + '{%' => '%}' + ), + 1 => array( + '{#' => '#}', + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + ) + ) +); diff --git a/inc/geshi/typoscript.php b/vendor/easybook/geshi/geshi/typoscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/typoscript.php rename to vendor/easybook/geshi/geshi/typoscript.php index 6751aaa8d..25671d728 --- a/inc/geshi/typoscript.php +++ b/vendor/easybook/geshi/geshi/typoscript.php @@ -296,5 +296,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ), ); - -?> diff --git a/inc/geshi/unicon.php b/vendor/easybook/geshi/geshi/unicon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/unicon.php rename to vendor/easybook/geshi/geshi/unicon.php diff --git a/inc/geshi/upc.php b/vendor/easybook/geshi/geshi/upc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/upc.php rename to vendor/easybook/geshi/geshi/upc.php diff --git a/inc/geshi/urbi.php b/vendor/easybook/geshi/geshi/urbi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/urbi.php rename to vendor/easybook/geshi/geshi/urbi.php index a7353ea8b..c73e44404 --- a/inc/geshi/urbi.php +++ b/vendor/easybook/geshi/geshi/urbi.php @@ -196,5 +196,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4, ); - -?> diff --git a/inc/geshi/uscript.php b/vendor/easybook/geshi/geshi/uscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/uscript.php rename to vendor/easybook/geshi/geshi/uscript.php index 58cdb8d9e..03b1d48a6 --- a/inc/geshi/uscript.php +++ b/vendor/easybook/geshi/geshi/uscript.php @@ -295,5 +295,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/vala.php b/vendor/easybook/geshi/geshi/vala.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vala.php rename to vendor/easybook/geshi/geshi/vala.php index acac57e2a..28f153427 --- a/inc/geshi/vala.php +++ b/vendor/easybook/geshi/geshi/vala.php @@ -147,5 +147,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/vb.php b/vendor/easybook/geshi/geshi/vb.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vb.php rename to vendor/easybook/geshi/geshi/vb.php diff --git a/inc/geshi/vbnet.php b/vendor/easybook/geshi/geshi/vbnet.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vbnet.php rename to vendor/easybook/geshi/geshi/vbnet.php diff --git a/vendor/easybook/geshi/geshi/vbscript.php b/vendor/easybook/geshi/geshi/vbscript.php new file mode 100644 index 000000000..6db3bbd3f --- /dev/null +++ b/vendor/easybook/geshi/geshi/vbscript.php @@ -0,0 +1,153 @@ +<?php +/************************************************************************************* + * vbscript.php + * ------ + * Author: Roberto Rossi (rsoftware@altervista.org) + * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), + * Nigel McNie (http://qbnz.com/highlighter), + * Rory Prendergast (http://www.tanium.com) + * Release Version: 1.0.8.12 + * Date Started: 2012/08/20 + * + * VBScript language file for GeSHi. + * + * CHANGES + * ------- + * 2012/08/20 (1.0.0) + * - First Release + * + * TODO (updated 2004/11/27) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'VBScript', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + // Comments (either single or multiline with _ + 1 => '/\'.*(?<! _)\n/sU', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'Empty', 'Nothing', 'Null', 'vbArray', 'vbBoolean', 'vbByte', + 'vbCr', 'vbCrLf', 'vbCurrency', 'vbDate', 'vbDouble', 'vbEmpty', + 'vbError', 'vbFirstFourDays', 'vbFirstFullWeek', 'vbFirstJan1', + 'vbFormFeed', 'vbFriday', 'vbInteger', 'vbLf', 'vbLong', 'vbMonday', + 'vbNewLine', 'vbNull', 'vbNullChar', 'vbNullString', 'vbObject', + 'vbSaturday', 'vbSingle', 'vbString', 'vbSunday', 'vbTab', + 'vbThursday', 'vbTuesday', 'vbUseSystem', 'vbUseSystemDayOfWeek', + 'vbVariant', 'vbWednesday', 'FALSE', 'TRUE' + ), + 2 => array( + 'bs', 'Array', 'Asc', 'Atn', 'CBool', 'CByte', 'CDate', 'CDbl', 'Chr', + 'CInt', 'CLng', 'Cos', 'CreateObject', 'CSng', 'CStr', 'Date', 'DateAdd', + 'DateDiff', 'DatePart', 'DateSerial', 'DateValue', 'Day', 'Eval', 'Exp', + 'Filter', 'Fix', 'FormatDateTime', 'FormatNumber', 'FormatPercent', + 'GetObject', 'Hex', 'Hour', 'InputBox', 'InStr', 'InstrRev', 'Int', + 'IsArray', 'IsDate', 'IsEmpty', 'IsNull', 'IsNumeric', 'IsObject', 'Join', + 'LBound', 'LCase', 'Left', 'Len', 'Log', 'LTrim', 'Mid', 'Minute', 'Month', + 'MonthName', 'MsgBox', 'Now', 'Oct', 'Replace', 'RGB', 'Right', 'Rnd', + 'Round', 'RTrim', 'ScriptEngine', 'ScriptEngineBuildVersion', + 'ScriptEngineMajorVersion', 'ScriptEngineMinorVersion', 'Second', + 'Sgn', 'Sin', 'Space', 'Split', 'Sqr', 'StrComp', 'String', 'StrReverse', + 'Tan', 'Time', 'TimeSerial', 'TimeValue', 'Trim', 'TypeName', 'UBound', + 'UCase', 'VarType', 'Weekday', 'WeekdayName', 'Year' + ), + 3 => array( + 'Call', 'Case', 'Const', 'Dim', 'Do', 'Each', 'Else', 'End', 'Erase', + 'Execute', 'Exit', 'For', 'Function', 'Gosub', 'Goto', 'If', 'Loop', + 'Next', 'On Error', 'Option Explicit', 'Private', 'Public', + 'Randomize', 'ReDim', 'Rem', 'Resume', 'Select', 'Set', 'Sub', 'Then', + 'Wend', 'While', 'With', 'In', 'To', 'Step' + ), + 4 => array( + 'And', 'Eqv', 'Imp', 'Is', 'Mod', 'Not', 'Or', 'Xor' + ), + ), + 'SYMBOLS' => array( + '-', '&', '*', '/', '\\', '^', '+', '<', '<=', '<>', '=', '>', '>=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #F660AB; font-weight: bold;', + 2 => 'color: #E56717; font-weight: bold;', + 3 => 'color: #8D38C9; font-weight: bold;', + 4 => 'color: #151B8D; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;' + ), + 'BRACKETS' => array( + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'SPACE_AS_WHITESPACE' => true + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER + ) + ) +); diff --git a/inc/geshi/vedit.php b/vendor/easybook/geshi/geshi/vedit.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vedit.php rename to vendor/easybook/geshi/geshi/vedit.php diff --git a/inc/geshi/verilog.php b/vendor/easybook/geshi/geshi/verilog.php old mode 100644 new mode 100755 similarity index 61% rename from inc/geshi/verilog.php rename to vendor/easybook/geshi/geshi/verilog.php index 2bf66d1c0..d6ec08615 --- a/inc/geshi/verilog.php +++ b/vendor/easybook/geshi/geshi/verilog.php @@ -2,8 +2,8 @@ /** * verilog.php * ----------- - * Author: G�nter Dannoritzer <dannoritzer@web.de> - * Copyright: (C) 2008 Guenter Dannoritzer + * Author: Günter Dannoritzer <dannoritzer@web.de> + * Copyright: (C) 2008 Günter Dannoritzer * Release Version: 1.0.8.11 * Date Started: 2008/05/28 * @@ -19,6 +19,9 @@ * TODO (updated 2008/05/29) * ------------------------- * + * 2013/01/08 + * - extended keywords to include system keywords + * ************************************************************************************* * * This file is part of GeSHi. @@ -49,22 +52,41 @@ $language_data = array ( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( // keywords - 1 => array('always', 'and', 'assign', 'begin', 'buf', 'bufif0', 'bufif1', 'case', - 'casex', 'casez', 'cmos', 'deassign', 'default', 'defparam', - 'disable', 'edge', 'else', 'end', 'endcase', 'endfunction', - 'endmodule', 'endprimitive', 'endspecify', 'endtable', 'endtask', - 'event', 'fork', 'for', 'force', 'forever', 'function', 'highz0', - 'highz1', 'if', 'ifnone', 'initial', 'inout', 'input', 'integer', - 'join', 'large', 'macromodule', 'medium', 'module', 'nand', - 'negedge', 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or', - 'output', 'parameter', 'pmos', 'posedge', 'primitive', 'pull0', - 'pull1', 'pulldown', 'pullup', 'rcmos', 'real', 'realtime', 'reg', - 'release', 'repeat', 'rnmos', 'rpmos', 'rtran', 'rtranif0', - 'rtranif1', 'scalared', 'small', 'specify', 'specparam', - 'strong0', 'strong1', 'supply0', 'supply1', 'table', 'task', - 'time', 'tran', 'tranif0', 'tranif1', 'tri', 'tri0', 'tri1', - 'triand', 'trior', 'trireg', 'vectored', 'wait', 'wand', 'weak0', - 'weak1', 'while', 'wire', 'wor', 'xnor', 'xor' + 1 => array( + 'accept_on','alias', + 'always','always_comb','always_ff','always_latch','and','assert', + 'assign','assume','automatic','before','begin','bind','bins','binsof', + 'bit','break','buf','bufif0','bufif1','byte','case','casex','casez', + 'cell','chandle','checker','class','clocking','cmos','config','const', + 'constraint','context','continue','cover','covergroup','coverpoint','cross', + 'deassign','default','defparam','design','disable','dist','do','edge','else', + 'end','endcase','endchecker','endclass','endclocking','endconfig', + 'endfunction','endgenerate','endgroup','endinterface','endmodule', + 'endpackage','endprimitive','endprogram','endproperty','endspecify', + 'endsequence','endtable','endtask','enum','event','eventually','expect', + 'export','extends','extern','final','first_match','for','force','foreach', + 'forever','fork','forkjoin','function','generate','genvar','global', + 'highz0','highz1','if','iff','ifnone','ignore_bins','illegal_bins', + 'implies','import','incdir','include','initial','inout','input','inside', + 'instance','int','integer','interface','intersect','join','join_any', + 'join_none','large','let','liblist','library','local','localparam', + 'logic','longint','macromodule','matches','medium','modport','module','nand', + 'negedge','new','nexttime','nmos','nor','noshowcancelled','not','notif0', + 'notif1','null','or','output','package','packed','parameter','pmos','posedge', + 'primitive','priority','program','property','protected','pull0','pull1', + 'pulldown','pullup','pulsestyle_ondetect','pulsestyle_onevent','pure', + 'rand','randc','randcase','randsequence','rcmos','real','realtime','ref', + 'reg','reject_on','release','repeat','restrict','return','rnmos','rpmos', + 'rtran','rtranif0','rtranif1','s_always','s_eventually','s_nexttime', + 's_until','s_until_with','scalared','sequence','shortint','shortreal', + 'showcancelled','signed','small','solve','specify','specparam','static', + 'string','strong','strong0','strong1','struct','super','supply0','supply1', + 'sync_accept_on','sync_reject_on','table','tagged','task','this','throughout', + 'time','timeprecision','timeunit','tran','tranif0','tranif1','tri','tri0', + 'tri1','triand','trior','trireg','type','typedef','union','unique','unique0', + 'unsigned','until','until_with','untyped','use','uwire','var','vectored', + 'virtual','void','wait','wait_order','wand','weak','weak0','weak1','while', + 'wildcard','wire','with','within','wor','xnor','xor' ), // system tasks 2 => array( @@ -169,5 +191,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/vhdl.php b/vendor/easybook/geshi/geshi/vhdl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vhdl.php rename to vendor/easybook/geshi/geshi/vhdl.php index a8f37e676..cc8158fcf --- a/inc/geshi/vhdl.php +++ b/vendor/easybook/geshi/geshi/vhdl.php @@ -179,5 +179,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/vim.php b/vendor/easybook/geshi/geshi/vim.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vim.php rename to vendor/easybook/geshi/geshi/vim.php index fe7e5e006..e2e363477 --- a/inc/geshi/vim.php +++ b/vendor/easybook/geshi/geshi/vim.php @@ -416,5 +416,3 @@ $language_data = array( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/visualfoxpro.php b/vendor/easybook/geshi/geshi/visualfoxpro.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/visualfoxpro.php rename to vendor/easybook/geshi/geshi/visualfoxpro.php diff --git a/inc/geshi/visualprolog.php b/vendor/easybook/geshi/geshi/visualprolog.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/visualprolog.php rename to vendor/easybook/geshi/geshi/visualprolog.php index d36f1c67a..26c438d21 --- a/inc/geshi/visualprolog.php +++ b/vendor/easybook/geshi/geshi/visualprolog.php @@ -125,5 +125,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/whitespace.php b/vendor/easybook/geshi/geshi/whitespace.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/whitespace.php rename to vendor/easybook/geshi/geshi/whitespace.php index 58f396376..eec0be3f6 --- a/inc/geshi/whitespace.php +++ b/vendor/easybook/geshi/geshi/whitespace.php @@ -117,5 +117,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/whois.php b/vendor/easybook/geshi/geshi/whois.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/whois.php rename to vendor/easybook/geshi/geshi/whois.php diff --git a/inc/geshi/winbatch.php b/vendor/easybook/geshi/geshi/winbatch.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/winbatch.php rename to vendor/easybook/geshi/geshi/winbatch.php diff --git a/inc/geshi/xbasic.php b/vendor/easybook/geshi/geshi/xbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/xbasic.php rename to vendor/easybook/geshi/geshi/xbasic.php diff --git a/inc/geshi/xml.php b/vendor/easybook/geshi/geshi/xml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xml.php rename to vendor/easybook/geshi/geshi/xml.php index 6354e457b..88d17901e --- a/inc/geshi/xml.php +++ b/vendor/easybook/geshi/geshi/xml.php @@ -153,5 +153,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/xojo.php b/vendor/easybook/geshi/geshi/xojo.php new file mode 100644 index 000000000..58fcab103 --- /dev/null +++ b/vendor/easybook/geshi/geshi/xojo.php @@ -0,0 +1,166 @@ +<?php +/************************************************************************************* + * xojo.php + * -------- + * Author: Dr Garry Pettet (contact@garrypettet.com) + * Copyright: (c) 2014 Dr Garry Pettet (http://garrypettet.com) + * Release Version: 1.0.0 + * Date Started: 2014/10/19 + * + * Xojo language file for GeSHi. + * + * CHANGES + * ------- + * 2014/10/19 (1.0.8.12) + * - First Release + * + * TODO (updated 2014/10/19) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Xojo', + 'COMMENT_SINGLE' => array(1 => "'", 2 => '//', 3 => 'rem'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'NUMBERS' => array( + 1 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE, // integers + 2 => GESHI_NUMBER_FLT_NONSCI // floating point numbers + ), + 'KEYWORDS' => array( + //Keywords + 1 => array( + 'AddHandler', 'AddressOf', 'Aggregates', 'And', 'Array', 'As', 'Assigns', 'Attributes', + 'Break', 'ByRef', 'ByVal', 'Call', 'Case', 'Catch', 'Class', 'Const', 'Continue', + 'CType', 'Declare', 'Delegate', 'Dim', 'Do', 'DownTo', 'Each', 'Else', 'Elseif', 'End', + 'Enum', 'Event', 'Exception', 'Exit', 'Extends', 'False', 'Finally', 'For', + 'Function', 'Global', 'GoTo', 'Handles', 'If', 'Implements', 'In', 'Inherits', + 'Inline68K', 'Interface', 'Is', 'IsA', 'Lib', 'Loop', 'Me', 'Mod', 'Module', + 'Namespace', 'New', 'Next', 'Nil', 'Not', 'Object', 'Of', 'Optional', 'Or', + 'ParamArray', 'Private', 'Property', 'Protected', 'Public', 'Raise', + 'RaiseEvent', 'Rect', 'Redim', 'RemoveHandler', 'Return', 'Select', 'Self', 'Shared', + 'Soft', 'Static', 'Step', 'Sub', 'Super', 'Then', 'To', 'True', 'Try', + 'Until', 'Using', 'Wend', 'While', 'With', 'WeakAddressOf', 'Xor' + ), + //Data Types + 2 => array( + 'Boolean', 'CFStringRef', 'CString', 'Currency', 'Double', 'Int8', 'Int16', 'Int32', + 'Int64', 'Integer', 'OSType', 'PString', 'Ptr', 'Short', 'Single', 'String', + 'Structure', 'UInt8', 'UInt16', 'UInt32', 'UInt64', 'UShort', 'WindowPtr', + 'WString', 'XMLNodeType' + ), + //Compiler Directives + 3 => array( + '#Bad', '#Else', '#Endif', '#If', '#Pragma', '#Tag' + ), + ), + 'SYMBOLS' => array( + '+', '-', '*', '=', '/', '>', '<', '^', '(', ')', '.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', // keywords + 2 => 'color: #0000FF;', // primitive data types + 3 => 'color: #0000FF;', // compiler commands + ), + 'COMMENTS' => array( + 1 => 'color: #7F0000;', + 'MULTI' => 'color: #7F0000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #6500FE;' + ), + 'NUMBERS' => array( + 1 => 'color: #326598;', // integers + 2 => 'color: #006532;', // floating point numbers + ), + 'METHODS' => array( + 1 => 'color: #000000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + 1 => 'color: #326598;', // &h hex numbers + 2 => 'color: #326598;', // &b hex numbers + 3 => 'color: #326598;', // &o hex numbers + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://docs.xojo.com/index.php/{FNAMEU}', + 2 => 'http://docs.xojo.com/index.php/{FNAMEU}', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 =>'.' + ), + 'REGEXPS' => array( + 1 => array( // &h numbers + // search for &h, then any number of letters a-f or numbers 0-9 + GESHI_SEARCH => '(&h[0-9a-fA-F]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( // &b numbers + // search for &b, then any number of 0-1 digits + GESHI_SEARCH => '(&b[0-1]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( // &o octal numbers + // search for &o, then any number of 0-7 digits + GESHI_SEARCH => '(&o[0-7]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/xorg_conf.php b/vendor/easybook/geshi/geshi/xorg_conf.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xorg_conf.php rename to vendor/easybook/geshi/geshi/xorg_conf.php index 99edc6652..41e4496ee --- a/inc/geshi/xorg_conf.php +++ b/vendor/easybook/geshi/geshi/xorg_conf.php @@ -120,5 +120,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/xpp.php b/vendor/easybook/geshi/geshi/xpp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xpp.php rename to vendor/easybook/geshi/geshi/xpp.php index a06e27794..52db2727b --- a/inc/geshi/xpp.php +++ b/vendor/easybook/geshi/geshi/xpp.php @@ -432,5 +432,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/yaml.php b/vendor/easybook/geshi/geshi/yaml.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/yaml.php rename to vendor/easybook/geshi/geshi/yaml.php diff --git a/inc/geshi/z80.php b/vendor/easybook/geshi/geshi/z80.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/z80.php rename to vendor/easybook/geshi/geshi/z80.php diff --git a/inc/geshi/zxbasic.php b/vendor/easybook/geshi/geshi/zxbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/zxbasic.php rename to vendor/easybook/geshi/geshi/zxbasic.php -- GitLab From 853f15576b2e90a6aef68fe4d7b9ce486e1dbe4f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 15 May 2015 16:38:04 +0200 Subject: [PATCH 136/440] some more ignores --- .gitattributes | 2 ++ .gitignore | 3 +++ 2 files changed, 5 insertions(+) diff --git a/.gitattributes b/.gitattributes index 1012087d4..6beb1fb7a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,8 @@ .gitignore export-ignore .editorconfig export-ignore .travis.yml export-ignore +composer.json export-ignore +composer.lock export-ignore _test export-ignore _cs export-ignore lib/plugins/testing export-ignore diff --git a/.gitignore b/.gitignore index d28991d9c..a8962d0bc 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,9 @@ lib/images/*/local/* # composer default ignores +composer.phar +vendor/bin/* +vendor/*/*/bin/* vendor/*/*/tests/* vendor/*/*/test/* vendor/*/*/doc/* -- GitLab From c2fbf98617ceed35a8d735fbc917627e001f225b Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 17:00:23 +0200 Subject: [PATCH 137/440] Show a relevant page title for other actions See Issue #1149 - Show 'admin' or the admin plugin name for admin functions - Show action name for user & site actions, e.g. login, sitemape - Show page name + action for page actions, e.g. changes, backlinks - Show a utf8 pen glyph when editing - Otherwise show the page name (as previously) --- inc/template.php | 63 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/inc/template.php b/inc/template.php index 3859065bc..fd8bff11a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1035,6 +1035,8 @@ function tpl_pageinfo($ret = false) { * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { + global $ACT, $INPUT, $lang; + if(is_null($id)) { global $ID; $id = $ID; @@ -1042,14 +1044,67 @@ function tpl_pagetitle($id = null, $ret = false) { $name = $id; if(useHeading('navigation')) { - $title = p_get_first_heading($id); - if($title) $name = $title; + $first_heading = p_get_first_heading($id); + if($first_heading) $name = $first_heading; + } + + // default page title is the page name, modify with the current action + switch ($ACT) { + // admin functions + case 'admin' : + $page_title = $lang['btn_admin']; + // try to get the plugin name + // retrieve admin plugin name from $_REQUEST['page'] + if (($page = $INPUT->str('page', '', true)) != '') { + $pluginlist = plugin_list('admin'); + if (in_array($page, $pluginlist)) { + // attempt to load the plugin + + if (($plugin = plugin_load('admin',$page)) !== null){ + $plugin_title = $plugin->getMenuText(); + $page_title = $plugin_title ? $plugin_title : $page; + } + } + } + break; + + // user functions + case 'login' : + case 'profile' : + case 'register' : + case 'resendpwd' : + $page_title = $lang['btn_'.$ACT]; + break; + + // wiki functions + case 'search' : + case 'index' : + $page_title = $lang['btn_'.$ACT]; + break; + + // page functions + case 'edit' : + $page_title = "✎ ".$name; + break; + + case 'revisions' : + $page_title = $name . ' - ' . $lang['btn_revs']; + break; + + case 'backlink' : + case 'recent' : + case 'subscribe' : + $page_title = $name . ' - ' . $lang['btn_'.$ACT]; + break; + + default : // SHOW and anything else not included + $page_title = $name; } if($ret) { - return hsc($name); + return hsc($page_title); } else { - print hsc($name); + print hsc($page_title); return true; } } -- GitLab From 11aaacbee50790c2d5a2c10e97307da213d6320d Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 17:05:23 +0200 Subject: [PATCH 138/440] Revert "Show a relevant page title for other actions" This reverts commit c2fbf98617ceed35a8d735fbc917627e001f225b. --- inc/template.php | 63 +++--------------------------------------------- 1 file changed, 4 insertions(+), 59 deletions(-) diff --git a/inc/template.php b/inc/template.php index fd8bff11a..3859065bc 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1035,8 +1035,6 @@ function tpl_pageinfo($ret = false) { * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { - global $ACT, $INPUT, $lang; - if(is_null($id)) { global $ID; $id = $ID; @@ -1044,67 +1042,14 @@ function tpl_pagetitle($id = null, $ret = false) { $name = $id; if(useHeading('navigation')) { - $first_heading = p_get_first_heading($id); - if($first_heading) $name = $first_heading; - } - - // default page title is the page name, modify with the current action - switch ($ACT) { - // admin functions - case 'admin' : - $page_title = $lang['btn_admin']; - // try to get the plugin name - // retrieve admin plugin name from $_REQUEST['page'] - if (($page = $INPUT->str('page', '', true)) != '') { - $pluginlist = plugin_list('admin'); - if (in_array($page, $pluginlist)) { - // attempt to load the plugin - - if (($plugin = plugin_load('admin',$page)) !== null){ - $plugin_title = $plugin->getMenuText(); - $page_title = $plugin_title ? $plugin_title : $page; - } - } - } - break; - - // user functions - case 'login' : - case 'profile' : - case 'register' : - case 'resendpwd' : - $page_title = $lang['btn_'.$ACT]; - break; - - // wiki functions - case 'search' : - case 'index' : - $page_title = $lang['btn_'.$ACT]; - break; - - // page functions - case 'edit' : - $page_title = "✎ ".$name; - break; - - case 'revisions' : - $page_title = $name . ' - ' . $lang['btn_revs']; - break; - - case 'backlink' : - case 'recent' : - case 'subscribe' : - $page_title = $name . ' - ' . $lang['btn_'.$ACT]; - break; - - default : // SHOW and anything else not included - $page_title = $name; + $title = p_get_first_heading($id); + if($title) $name = $title; } if($ret) { - return hsc($page_title); + return hsc($name); } else { - print hsc($page_title); + print hsc($name); return true; } } -- GitLab From fffeeafeb2530d99ec4baaec915722482dc92e84 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 17:11:22 +0200 Subject: [PATCH 139/440] Show a relevant page title for other actions See Issue #1149 - Show 'admin' or the admin plugin name for admin functions - Show action name for user & site actions, e.g. login, sitemape - Show page name + action for page actions, e.g. changes, backlinks - Show a utf8 pen glyph when editing - Otherwise show the page name (as previously) --- inc/template.php | 63 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/inc/template.php b/inc/template.php index 3859065bc..fd8bff11a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1035,6 +1035,8 @@ function tpl_pageinfo($ret = false) { * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { + global $ACT, $INPUT, $lang; + if(is_null($id)) { global $ID; $id = $ID; @@ -1042,14 +1044,67 @@ function tpl_pagetitle($id = null, $ret = false) { $name = $id; if(useHeading('navigation')) { - $title = p_get_first_heading($id); - if($title) $name = $title; + $first_heading = p_get_first_heading($id); + if($first_heading) $name = $first_heading; + } + + // default page title is the page name, modify with the current action + switch ($ACT) { + // admin functions + case 'admin' : + $page_title = $lang['btn_admin']; + // try to get the plugin name + // retrieve admin plugin name from $_REQUEST['page'] + if (($page = $INPUT->str('page', '', true)) != '') { + $pluginlist = plugin_list('admin'); + if (in_array($page, $pluginlist)) { + // attempt to load the plugin + + if (($plugin = plugin_load('admin',$page)) !== null){ + $plugin_title = $plugin->getMenuText(); + $page_title = $plugin_title ? $plugin_title : $page; + } + } + } + break; + + // user functions + case 'login' : + case 'profile' : + case 'register' : + case 'resendpwd' : + $page_title = $lang['btn_'.$ACT]; + break; + + // wiki functions + case 'search' : + case 'index' : + $page_title = $lang['btn_'.$ACT]; + break; + + // page functions + case 'edit' : + $page_title = "✎ ".$name; + break; + + case 'revisions' : + $page_title = $name . ' - ' . $lang['btn_revs']; + break; + + case 'backlink' : + case 'recent' : + case 'subscribe' : + $page_title = $name . ' - ' . $lang['btn_'.$ACT]; + break; + + default : // SHOW and anything else not included + $page_title = $name; } if($ret) { - return hsc($name); + return hsc($page_title); } else { - print hsc($name); + print hsc($page_title); return true; } } -- GitLab From 26e22ab837dcabe137a0912fcd2f96d0c35f48c8 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:03:34 +0200 Subject: [PATCH 140/440] Changes for PHP 7 Compatibility - replace PHP4 style class constructor function names (based on class name) with php 5 __construct() Also remove some '&' reference operators used with objects And add some object type hints --- _test/tests/inc/parser/lexer.test.php | 4 +- inc/IXR_Library.php | 20 ++++---- inc/events.php | 4 +- inc/form.php | 2 +- inc/parser/handler.php | 48 +++++++++++--------- inc/parser/lexer.php | 6 +-- inc/parser/parser.php | 20 ++++---- lib/plugins/config/settings/config.class.php | 4 +- lib/plugins/config/settings/extra.class.php | 2 +- lib/plugins/popularity/action.php | 2 +- lib/plugins/popularity/admin.php | 2 +- lib/plugins/popularity/helper.php | 2 +- lib/plugins/usermanager/admin.php | 2 +- 13 files changed, 62 insertions(+), 56 deletions(-) diff --git a/_test/tests/inc/parser/lexer.test.php b/_test/tests/inc/parser/lexer.test.php index d0965a13e..c50665928 100644 --- a/_test/tests/inc/parser/lexer.test.php +++ b/_test/tests/inc/parser/lexer.test.php @@ -146,7 +146,7 @@ class TestOfLexerStateStack extends DokuWikiTest { } class TestParser { - function TestParser() { + function __construct() { } function accept() { } @@ -364,7 +364,7 @@ class TestOfLexerHandlers extends DokuWikiTest { class TestParserByteIndex { - function TestParserByteIndex() {} + function __construct() {} function ignore() {} diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 839298680..301a8d9e1 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -52,7 +52,7 @@ class IXR_Value { * @param mixed $data * @param bool $type */ - function IXR_Value($data, $type = false) { + function __construct($data, $type = false) { $this->data = $data; if(!$type) { $type = $this->calculateType(); @@ -201,7 +201,7 @@ class IXR_Message { /** * @param string $message */ - function IXR_Message($message) { + function __construct($message) { $this->message =& $message; } @@ -388,7 +388,7 @@ class IXR_Server { * @param bool $data * @param bool $wait */ - function IXR_Server($callbacks = false, $data = false, $wait = false) { + function __construct($callbacks = false, $data = false, $wait = false) { $this->setCapabilities(); if($callbacks) { $this->callbacks = $callbacks; @@ -621,7 +621,7 @@ class IXR_Request { * @param string $method * @param array $args */ - function IXR_Request($method, $args) { + function __construct($method, $args) { $this->method = $method; $this->args = $args; $this->xml = <<<EOD @@ -684,7 +684,7 @@ class IXR_Client extends DokuHTTPClient { * @param int $port * @param int $timeout */ - function IXR_Client($server, $path = false, $port = 80, $timeout = 15) { + function __construct($server, $path = false, $port = 80, $timeout = 15) { parent::__construct(); if(!$path) { // Assume we have been given a URL instead @@ -779,7 +779,7 @@ class IXR_Error { * @param int $code * @param string $message */ - function IXR_Error($code, $message) { + function __construct($code, $message) { $this->code = $code; $this->message = htmlspecialchars($message); } @@ -829,7 +829,7 @@ class IXR_Date { /** * @param int|string $time */ - function IXR_Date($time) { + function __construct($time) { // $time can be a PHP timestamp or an ISO one if(is_numeric($time)) { $this->parseTimestamp($time); @@ -899,7 +899,7 @@ class IXR_Base64 { /** * @param string $data */ - function IXR_Base64($data) { + function __construct($data) { $this->data = $data; } @@ -923,7 +923,7 @@ class IXR_IntrospectionServer extends IXR_Server { /** @var string[] */ var $help; - function IXR_IntrospectionServer() { + function __construct() { $this->setCallbacks(); $this->setCapabilities(); $this->capabilities['introspection'] = array( @@ -1106,7 +1106,7 @@ class IXR_ClientMulticall extends IXR_Client { * @param string|bool $path * @param int $port */ - function IXR_ClientMulticall($server, $path = false, $port = 80) { + function __construct($server, $path = false, $port = 80) { parent::IXR_Client($server, $path, $port); //$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)'; } diff --git a/inc/events.php b/inc/events.php index 256fb561e..35d55d0e3 100644 --- a/inc/events.php +++ b/inc/events.php @@ -31,7 +31,7 @@ class Doku_Event { * @param string $name * @param mixed $data */ - function Doku_Event($name, &$data) { + function __construct($name, &$data) { $this->name = $name; $this->data =& $data; @@ -153,7 +153,7 @@ class Doku_Event_Handler { * constructor, loads all action plugins and calls their register() method giving them * an opportunity to register any hooks they require */ - function Doku_Event_Handler() { + function __construct() { // load action plugins /** @var DokuWiki_Action_Plugin $plugin */ diff --git a/inc/form.php b/inc/form.php index 00eea9b3a..748983281 100644 --- a/inc/form.php +++ b/inc/form.php @@ -55,7 +55,7 @@ class Doku_Form { * * @author Tom N Harris <tnharris@whoopdedo.org> */ - function Doku_Form($params, $action=false, $method=false, $enctype=false) { + function __construct($params, $action=false, $method=false, $enctype=false) { if(!is_array($params)) { $this->params = array('id' => $params); if ($action !== false) $this->params['action'] = $action; diff --git a/inc/parser/handler.php b/inc/parser/handler.php index b8e2de82a..815ac39c5 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -17,7 +17,7 @@ class Doku_Handler { var $rewriteBlocks = true; - function Doku_Handler() { + function __construct() { $this->CallWriter = new Doku_Handler_CallWriter($this); } @@ -295,7 +295,7 @@ class Doku_Handler { switch ( $state ) { case DOKU_LEXER_ENTER: $ReWriter = new Doku_Handler_Preformatted($this->CallWriter); - $this->CallWriter = & $ReWriter; + $this->CallWriter = $ReWriter; $this->_addCall('preformatted_start',array(), $pos); break; case DOKU_LEXER_EXIT: @@ -715,15 +715,21 @@ function Doku_Handler_Parse_Media($match) { } //------------------------------------------------------------------------ -class Doku_Handler_CallWriter { +interface Doku_Handler_CallWriter_Interface { + public function writeCall($call); + public function writeCalls($calls); + public function finalise(); +} + +class Doku_Handler_CallWriter implements Doku_Handler_CallWriter_Interface { var $Handler; /** * @param Doku_Handler $Handler */ - function Doku_Handler_CallWriter(& $Handler) { - $this->Handler = & $Handler; + function __construct(Doku_Handler $Handler) { + $this->Handler = $Handler; } function writeCall($call) { @@ -748,7 +754,7 @@ class Doku_Handler_CallWriter { * * @author Chris Smith <chris@jalakai.co.uk> */ -class Doku_Handler_Nest { +class Doku_Handler_Nest implements Doku_Handler_CallWriter_Interface { var $CallWriter; var $calls = array(); @@ -762,8 +768,8 @@ class Doku_Handler_Nest { * @param string $close closing instruction name, this is required to properly terminate the * syntax mode if the document ends without a closing pattern */ - function Doku_Handler_Nest(& $CallWriter, $close="nest_close") { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter, $close="nest_close") { + $this->CallWriter = $CallWriter; $this->closingInstruction = $close; } @@ -808,7 +814,7 @@ class Doku_Handler_Nest { } } -class Doku_Handler_List { +class Doku_Handler_List implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -818,8 +824,8 @@ class Doku_Handler_List { const NODE = 1; - function Doku_Handler_List(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1018,7 +1024,7 @@ class Doku_Handler_List { } //------------------------------------------------------------------------ -class Doku_Handler_Preformatted { +class Doku_Handler_Preformatted implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1028,8 +1034,8 @@ class Doku_Handler_Preformatted { - function Doku_Handler_Preformatted(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1078,7 +1084,7 @@ class Doku_Handler_Preformatted { } //------------------------------------------------------------------------ -class Doku_Handler_Quote { +class Doku_Handler_Quote implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1086,8 +1092,8 @@ class Doku_Handler_Quote { var $quoteCalls = array(); - function Doku_Handler_Quote(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1170,7 +1176,7 @@ class Doku_Handler_Quote { } //------------------------------------------------------------------------ -class Doku_Handler_Table { +class Doku_Handler_Table implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1185,8 +1191,8 @@ class Doku_Handler_Table { var $currentRow = array('tableheader' => 0, 'tablecell' => 0); var $countTableHeadRows = 0; - function Doku_Handler_Table(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1551,7 +1557,7 @@ class Doku_Handler_Block { * * @author Andreas Gohr <andi@splitbrain.org> */ - function Doku_Handler_Block(){ + function __construct(){ global $DOKU_PLUGINS; //check if syntax plugins were loaded if(empty($DOKU_PLUGINS['syntax'])) return; diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php index b46a5f505..5afcc520a 100644 --- a/inc/parser/lexer.php +++ b/inc/parser/lexer.php @@ -46,7 +46,7 @@ class Doku_LexerParallelRegex { * for insensitive. * @access public */ - function Doku_LexerParallelRegex($case) { + function __construct($case) { $this->_case = $case; $this->_patterns = array(); $this->_labels = array(); @@ -232,7 +232,7 @@ class Doku_LexerStateStack { * @param string $start Starting state name. * @access public */ - function Doku_LexerStateStack($start) { + function __construct($start) { $this->_stack = array($start); } @@ -296,7 +296,7 @@ class Doku_Lexer { * @param boolean $case True for case sensitive. * @access public */ - function Doku_Lexer(&$parser, $start = "accept", $case = false) { + function __construct(&$parser, $start = "accept", $case = false) { $this->_case = $case; /** @var Doku_LexerParallelRegex[] _regexes */ $this->_regexes = array(); diff --git a/inc/parser/parser.php b/inc/parser/parser.php index 5f86cf5c4..65510071e 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -226,7 +226,7 @@ class Doku_Parser_Mode_Plugin extends DokuWiki_Plugin implements Doku_Parser_Mod //------------------------------------------------------------------- class Doku_Parser_Mode_base extends Doku_Parser_Mode { - function Doku_Parser_Mode_base() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -248,7 +248,7 @@ class Doku_Parser_Mode_base extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_footnote extends Doku_Parser_Mode { - function Doku_Parser_Mode_footnote() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -416,7 +416,7 @@ class Doku_Parser_Mode_formatting extends Doku_Parser_Mode { /** * @param string $type */ - function Doku_Parser_Mode_formatting($type) { + function __construct($type) { global $PARSER_MODES; if ( !array_key_exists($type, $this->formatting) ) { @@ -470,7 +470,7 @@ class Doku_Parser_Mode_formatting extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { - function Doku_Parser_Mode_listblock() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -504,7 +504,7 @@ class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_table extends Doku_Parser_Mode { - function Doku_Parser_Mode_table() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -648,7 +648,7 @@ class Doku_Parser_Mode_file extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_quote extends Doku_Parser_Mode { - function Doku_Parser_Mode_quote() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -682,7 +682,7 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode { var $acronyms = array(); var $pattern = ''; - function Doku_Parser_Mode_acronym($acronyms) { + function __construct($acronyms) { usort($acronyms,array($this,'_compare')); $this->acronyms = $acronyms; } @@ -729,7 +729,7 @@ class Doku_Parser_Mode_smiley extends Doku_Parser_Mode { var $smileys = array(); var $pattern = ''; - function Doku_Parser_Mode_smiley($smileys) { + function __construct($smileys) { $this->smileys = $smileys; } @@ -762,7 +762,7 @@ class Doku_Parser_Mode_wordblock extends Doku_Parser_Mode { var $badwords = array(); var $pattern = ''; - function Doku_Parser_Mode_wordblock($badwords) { + function __construct($badwords) { $this->badwords = $badwords; } @@ -797,7 +797,7 @@ class Doku_Parser_Mode_entity extends Doku_Parser_Mode { var $entities = array(); var $pattern = ''; - function Doku_Parser_Mode_entity($entities) { + function __construct($entities) { $this->entities = $entities; } diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 316cc2c59..f2d43bff6 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -37,7 +37,7 @@ if (!class_exists('configuration')) { * * @param string $datafile path to config metadata file */ - public function configuration($datafile) { + public function __construct($datafile) { global $conf, $config_cascade; if (!file_exists($datafile)) { @@ -434,7 +434,7 @@ if (!class_exists('setting')) { * @param string $key * @param array|null $params array with metadata of setting */ - public function setting($key, $params=null) { + public function __construct($key, $params=null) { $this->_key = $key; if (is_array($params)) { diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index fd3a90e28..c6a3f9dae 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -20,7 +20,7 @@ if (!class_exists('setting_sepchar')) { for ($i=0;$i<strlen($str);$i++) $this->_choices[] = $str{$i}; // call foundation class constructor - $this->setting($key,$param); + parent::__construct($key,$param); } } } diff --git a/lib/plugins/popularity/action.php b/lib/plugins/popularity/action.php index 9e2e78d11..d5ec0f5c5 100644 --- a/lib/plugins/popularity/action.php +++ b/lib/plugins/popularity/action.php @@ -15,7 +15,7 @@ class action_plugin_popularity extends Dokuwiki_Action_Plugin { */ var $helper; - function action_plugin_popularity(){ + function __construct(){ $this->helper = $this->loadHelper('popularity', false); } diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php index ab569b8b4..a2c3c6c8b 100644 --- a/lib/plugins/popularity/admin.php +++ b/lib/plugins/popularity/admin.php @@ -20,7 +20,7 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin { var $helper; var $sentStatus = null; - function admin_plugin_popularity(){ + function __construct(){ $this->helper = $this->loadHelper('popularity', false); } diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php index 8673fb5af..e99f6a60c 100644 --- a/lib/plugins/popularity/helper.php +++ b/lib/plugins/popularity/helper.php @@ -30,7 +30,7 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { var $popularityLastSubmitFile; - function helper_plugin_popularity(){ + function __construct(){ global $conf; $this->autosubmitFile = $conf['cachedir'].'/autosubmit.txt'; $this->autosubmitErrorFile = $conf['cachedir'].'/autosubmitError.txt'; diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 9cb9b0c40..0d92e5cc1 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -36,7 +36,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Constructor */ - public function admin_plugin_usermanager(){ + public function __construct(){ /** @var DokuWiki_Auth_Plugin $auth */ global $auth; -- GitLab From 5c3b310dea6f5a4712e4b9bc1f3d6d198c057ee0 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:32:40 +0200 Subject: [PATCH 141/440] more class constructors to __construct() --- inc/JSON.php | 2 +- inc/JpegMeta.php | 2 +- inc/cache.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/JSON.php b/inc/JSON.php index 7f89005ff..e01488e14 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -119,7 +119,7 @@ class JSON { * JSON_LOOSE_TYPE - loose typing * "{...}" syntax creates associative arrays in decode. */ - function JSON($use=JSON_STRICT_TYPE) { + function __construct($use=JSON_STRICT_TYPE) { $this->use = $use; } diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index cd082cbba..1fa4f25ce 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -54,7 +54,7 @@ class JpegMeta { * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function JpegMeta($fileName) { + function __construct($fileName) { $this->_fileName = $fileName; diff --git a/inc/cache.php b/inc/cache.php index 68f64eaa2..1776d94cd 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -26,7 +26,7 @@ class cache { * @param string $key primary identifier * @param string $ext file extension */ - public function cache($key,$ext) { + public function __construct($key,$ext) { $this->key = $key; $this->ext = $ext; $this->cache = getCacheName($key,$ext); -- GitLab From 45e8987e1f40331011f6c91dab7bff6cb34631ce Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:33:44 +0200 Subject: [PATCH 142/440] more object type hints and removal of '&' operator before objects --- inc/parser/lexer.php | 4 ++-- inc/parser/parser.php | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php index 5afcc520a..17aa6c170 100644 --- a/inc/parser/lexer.php +++ b/inc/parser/lexer.php @@ -296,11 +296,11 @@ class Doku_Lexer { * @param boolean $case True for case sensitive. * @access public */ - function __construct(&$parser, $start = "accept", $case = false) { + function __construct($parser, $start = "accept", $case = false) { $this->_case = $case; /** @var Doku_LexerParallelRegex[] _regexes */ $this->_regexes = array(); - $this->_parser = &$parser; + $this->_parser = $parser; $this->_mode = new Doku_LexerStateStack($start); $this->_mode_handlers = array(); } diff --git a/inc/parser/parser.php b/inc/parser/parser.php index 65510071e..7814e94f6 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -64,24 +64,24 @@ class Doku_Parser { /** * @param Doku_Parser_Mode_base $BaseMode */ - function addBaseMode(& $BaseMode) { - $this->modes['base'] =& $BaseMode; + function addBaseMode($BaseMode) { + $this->modes['base'] = $BaseMode; if ( !$this->Lexer ) { $this->Lexer = new Doku_Lexer($this->Handler,'base', true); } - $this->modes['base']->Lexer =& $this->Lexer; + $this->modes['base']->Lexer = $this->Lexer; } /** * PHP preserves order of associative elements * Mode sequence is important */ - function addMode($name, & $Mode) { + function addMode($name, Doku_Parser_Mode_Interface $Mode) { if ( !isset($this->modes['base']) ) { $this->addBaseMode(new Doku_Parser_Mode_base()); } - $Mode->Lexer = & $this->Lexer; - $this->modes[$name] =& $Mode; + $Mode->Lexer = $this->Lexer; + $this->modes[$name] = $Mode; } function connectModes() { -- GitLab From e56e288689415ba069beb129a3ed9dccc404c0a3 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:33:59 +0200 Subject: [PATCH 143/440] PHP7 Compat updates on the phpseclib This is a quick fix in advance of the library being updated to the latest & PHP7 compatible version. --- inc/phpseclib/Crypt_AES.php | 4 ++-- inc/phpseclib/Crypt_Base.php | 2 +- inc/phpseclib/Crypt_Hash.php | 2 +- inc/phpseclib/Crypt_Rijndael.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/inc/phpseclib/Crypt_AES.php b/inc/phpseclib/Crypt_AES.php index 81fa2feab..f2df78351 100644 --- a/inc/phpseclib/Crypt_AES.php +++ b/inc/phpseclib/Crypt_AES.php @@ -164,9 +164,9 @@ class Crypt_AES extends Crypt_Rijndael { * @param optional Integer $mode * @access public */ - function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + function __construct($mode = CRYPT_AES_MODE_CBC) { - parent::Crypt_Rijndael($mode); + parent::__construct($mode); } /** diff --git a/inc/phpseclib/Crypt_Base.php b/inc/phpseclib/Crypt_Base.php index 7c650ca72..4fb9990c7 100644 --- a/inc/phpseclib/Crypt_Base.php +++ b/inc/phpseclib/Crypt_Base.php @@ -445,7 +445,7 @@ class Crypt_Base { * @param optional Integer $mode * @access public */ - function Crypt_Base($mode = CRYPT_MODE_CBC) + function __construct($mode = CRYPT_MODE_CBC) { $const_crypt_mode = 'CRYPT_' . $this->const_namespace . '_MODE'; diff --git a/inc/phpseclib/Crypt_Hash.php b/inc/phpseclib/Crypt_Hash.php index 840fcd508..61825d3c3 100644 --- a/inc/phpseclib/Crypt_Hash.php +++ b/inc/phpseclib/Crypt_Hash.php @@ -143,7 +143,7 @@ class Crypt_Hash { * @return Crypt_Hash * @access public */ - function Crypt_Hash($hash = 'sha1') + function __construct($hash = 'sha1') { if ( !defined('CRYPT_HASH_MODE') ) { switch (true) { diff --git a/inc/phpseclib/Crypt_Rijndael.php b/inc/phpseclib/Crypt_Rijndael.php index c63e0ff7e..33f42da17 100644 --- a/inc/phpseclib/Crypt_Rijndael.php +++ b/inc/phpseclib/Crypt_Rijndael.php @@ -699,9 +699,9 @@ class Crypt_Rijndael extends Crypt_Base { * @param optional Integer $mode * @access public */ - function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + function __construct($mode = CRYPT_RIJNDAEL_MODE_CBC) { - parent::Crypt_Base($mode); + parent::__construct($mode); } /** -- GitLab From 1cb97a10e626bb48eb809e12d0fadea1e1cea7da Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:41:15 +0200 Subject: [PATCH 144/440] update parent constructor calls to use __construct() --- inc/cache.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/cache.php b/inc/cache.php index 1776d94cd..35d9cfd43 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -193,7 +193,7 @@ class cache_parser extends cache { $this->file = $file; $this->mode = $mode; - parent::cache($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); + parent::__construct($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); } /** @@ -309,7 +309,7 @@ class cache_instructions extends cache_parser { * @param string $file source file for cache */ public function cache_instructions($id, $file) { - parent::cache_parser($id, $file, 'i'); + parent::__construct($id, $file, 'i'); } /** -- GitLab From 2863d10380f6ac5a00868d7125b535a7dc38cb08 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 15 May 2015 19:59:24 +0200 Subject: [PATCH 145/440] another class_name to __construct --- inc/cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/cache.php b/inc/cache.php index 35d9cfd43..6b05a2b54 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -188,7 +188,7 @@ class cache_parser extends cache { * @param string $file source file for cache * @param string $mode input mode */ - public function cache_parser($id, $file, $mode) { + public function __construct($id, $file, $mode) { if ($id) $this->page = $id; $this->file = $file; $this->mode = $mode; -- GitLab From 79eec18f7ad9126ba147cd13eb2a8d6ee41bf140 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sat, 16 May 2015 00:12:29 +0200 Subject: [PATCH 146/440] yet another class constructor --- inc/cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/cache.php b/inc/cache.php index 6b05a2b54..9375dc86b 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -308,7 +308,7 @@ class cache_instructions extends cache_parser { * @param string $id page id * @param string $file source file for cache */ - public function cache_instructions($id, $file) { + public function __construct($id, $file) { parent::__construct($id, $file, 'i'); } -- GitLab From 689215716f1a8fc21318a4e032a96a3a592317e7 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 16 May 2015 10:51:32 +0200 Subject: [PATCH 147/440] replace deprecated getRevisions call --- inc/html.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/inc/html.php b/inc/html.php index 4bf784502..2564c3bd6 100644 --- a/inc/html.php +++ b/inc/html.php @@ -776,10 +776,16 @@ function html_recent($first=0, $show_changes='both'){ $href = ''; if (!empty($recent['media'])) { - $diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && file_exists(mediaFN($recent['id']))); + $changelog = new MediaChangeLog($recent['id']); + $revs = $changelog->getRevisions(0, 1); + $diff = (count($revs) && file_exists(mediaFN($recent['id']))); if ($diff) { - $href = media_managerURL(array('tab_details' => 'history', - 'mediado' => 'diff', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); + $href = media_managerURL(array( + 'tab_details' => 'history', + 'mediado' => 'diff', + 'image' => $recent['id'], + 'ns' => getNS($recent['id']) + ), '&'); } } else { $href = wl($recent['id'],"do=diff", false, '&'); -- GitLab From 313d3e75d6e76a2d4336143256b8d0b8777e2849 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sat, 16 May 2015 11:00:57 +0200 Subject: [PATCH 148/440] add package phpunit & travis config files to .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a8962d0bc..acb26dd90 100644 --- a/.gitignore +++ b/.gitignore @@ -60,6 +60,8 @@ lib/images/*/local/* # composer default ignores composer.phar vendor/bin/* +vendor/*/*/phpunit.xml +vendor/*/*/.travis.yml vendor/*/*/bin/* vendor/*/*/tests/* vendor/*/*/test/* -- GitLab From bff1a21bd9a53ef56d9603457bbb3b6178564791 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 16 May 2015 11:49:27 +0200 Subject: [PATCH 149/440] removed one of the ignored lines --- vendor/splitbrain/php-archive/.travis.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 vendor/splitbrain/php-archive/.travis.yml diff --git a/vendor/splitbrain/php-archive/.travis.yml b/vendor/splitbrain/php-archive/.travis.yml deleted file mode 100644 index 21124ce5d..000000000 --- a/vendor/splitbrain/php-archive/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - hhvm - -before_script: - - composer self-update - - composer install --prefer-source --no-interaction --dev - -script: phpunit \ No newline at end of file -- GitLab From 8381d1c12c09df8fe72bac997487210bf08b8e5f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 16 May 2015 12:49:55 +0200 Subject: [PATCH 150/440] update to __construct --- inc/cliopts.php | 4 +-- inc/feedcreator.class.php | 52 +++++++++++++++++++++++++++++++-------- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/inc/cliopts.php b/inc/cliopts.php index 7d71c7dc9..d7d06119a 100644 --- a/inc/cliopts.php +++ b/inc/cliopts.php @@ -447,7 +447,7 @@ class Doku_Cli_Opts_Error { var $code; var $msg; - function Doku_Cli_Opts_Error($code, $msg) { + function __construct($code, $msg) { $this->code = $code; $this->msg = $msg; } @@ -468,7 +468,7 @@ class Doku_Cli_Opts_Container { var $options = array(); var $args = array(); - function Doku_Cli_Opts_Container($options) { + function __construct($options) { foreach ( $options[0] as $option ) { if ( false !== ( strpos($option[0], '--') ) ) { $opt_name = substr($option[0], 2); diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php index b90da5724..dd6da4465 100644 --- a/inc/feedcreator.class.php +++ b/inc/feedcreator.class.php @@ -129,6 +129,9 @@ class FeedItem extends HtmlDescribable { // var $source; } +/** + * Class EnclosureItem + */ class EnclosureItem extends HtmlDescribable { /* * @@ -226,7 +229,7 @@ class FeedHtmlField { * Creates a new instance of FeedHtmlField. * @param string $parFieldContent: if given, sets the rawFieldContent property */ - function FeedHtmlField($parFieldContent) { + function __construct($parFieldContent) { if ($parFieldContent) { $this->rawFieldContent = $parFieldContent; } @@ -604,6 +607,8 @@ class FeedCreator extends HtmlDescribable { /** * @since 1.4 * @access private + * + * @param string $filename */ function _redirect($filename) { // attention, heavily-commented-out-area @@ -697,7 +702,7 @@ class FeedDate { * Accepts RFC 822, ISO 8601 date formats as well as unix time stamps. * @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and time is used. */ - function FeedDate($dateString="") { + function __construct($dateString="") { if ($dateString=="") $dateString = date("r"); if (is_numeric($dateString)) { @@ -878,7 +883,10 @@ class RSSCreator091 extends FeedCreator { */ var $RSSVersion; - function RSSCreator091() { + /** + * Constructor + */ + function __construct() { $this->_setRSSVersion("0.91"); $this->contentType = "application/rss+xml"; } @@ -886,6 +894,8 @@ class RSSCreator091 extends FeedCreator { /** * Sets this RSS feed's version number. * @access private + * + * @param $version */ function _setRSSVersion($version) { $this->RSSVersion = $version; @@ -1034,7 +1044,10 @@ class RSSCreator091 extends FeedCreator { */ class RSSCreator20 extends RSSCreator091 { - function RSSCreator20() { + /** + * Constructor + */ + function __construct() { parent::_setRSSVersion("2.0"); } @@ -1051,7 +1064,10 @@ class RSSCreator20 extends RSSCreator091 { */ class PIECreator01 extends FeedCreator { - function PIECreator01() { + /** + * Constructor + */ + function __construct() { $this->encoding = "utf-8"; } @@ -1113,7 +1129,10 @@ class PIECreator01 extends FeedCreator { */ class AtomCreator10 extends FeedCreator { - function AtomCreator10() { + /** + * Constructor + */ + function __construct() { $this->contentType = "application/atom+xml"; $this->encoding = "utf-8"; } @@ -1200,7 +1219,10 @@ class AtomCreator10 extends FeedCreator { */ class AtomCreator03 extends FeedCreator { - function AtomCreator03() { + /** + * Constructor + */ + function __construct() { $this->contentType = "application/atom+xml"; $this->encoding = "utf-8"; } @@ -1272,12 +1294,19 @@ class AtomCreator03 extends FeedCreator { * @author Kai Blankenhorn <kaib@bitfolge.de> */ class MBOXCreator extends FeedCreator { - - function MBOXCreator() { + /** + * Constructor + */ + function __construct() { $this->contentType = "text/plain"; $this->encoding = "utf-8"; } + /** + * @param string $input + * @param int $line_max + * @return string + */ function qp_enc($input = "", $line_max = 76) { $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); $lines = preg_split("/(?:\r\n|\r|\n)/", $input); @@ -1363,7 +1392,10 @@ class MBOXCreator extends FeedCreator { */ class OPMLCreator extends FeedCreator { - function OPMLCreator() { + /** + * Constructor + */ + function __construct() { $this->encoding = "utf-8"; } -- GitLab From 4a0a77adb7e7e218beb1e58d7b0ef3ae17f4a612 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 16 May 2015 12:50:37 +0200 Subject: [PATCH 151/440] var declaration, static declaration --- inc/feedcreator.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php index dd6da4465..fe444b39b 100644 --- a/inc/feedcreator.class.php +++ b/inc/feedcreator.class.php @@ -485,6 +485,8 @@ class FeedCreator extends HtmlDescribable { var $additionalElements = Array(); + var $_timeout; + /** * Adds an FeedItem to the feed. * @@ -508,7 +510,7 @@ class FeedCreator extends HtmlDescribable { * @param int $length the maximum length the string should be truncated to * @return string the truncated string */ - function iTrunc($string, $length) { + static function iTrunc($string, $length) { if (strlen($string)<=$length) { return $string; } -- GitLab From 144055c8fa7b544201172cc89abf15f8c443e6e9 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 16 May 2015 15:12:06 +0200 Subject: [PATCH 152/440] PHPDocs --- lib/plugins/action.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/action.php b/lib/plugins/action.php index 4b5eef60a..23d94a509 100644 --- a/lib/plugins/action.php +++ b/lib/plugins/action.php @@ -16,6 +16,8 @@ class DokuWiki_Action_Plugin extends DokuWiki_Plugin { /** * Registers a callback function for a given event + * + * @param Doku_Event_Handler $controller */ public function register(Doku_Event_Handler $controller) { trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING); -- GitLab From c248bda1dcbef2068071904057b8410aa1eb0200 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sat, 16 May 2015 17:40:33 +0200 Subject: [PATCH 153/440] fix missing language code parameter for admin plugin titles add unit test coverage --- .../tests/inc/template_include_page.test.php | 77 +++++++++++++------ inc/template.php | 4 +- 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/_test/tests/inc/template_include_page.test.php b/_test/tests/inc/template_include_page.test.php index 47d4d46f1..580221979 100644 --- a/_test/tests/inc/template_include_page.test.php +++ b/_test/tests/inc/template_include_page.test.php @@ -1,40 +1,67 @@ <?php -class template_include_page_test extends DokuWikiTest { - function testNoSidebar() { - global $ID; +class template_pagetitle_test extends DokuWikiTest { - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertEquals('', $sidebar); + function test_localID() { + global $ID,$ACT; + + + $id = 'foo:bar'; + + $ACT = 'show'; + $this->assertEquals('foo:bar', tpl_pagetitle($id, true)); } - function testExistingSidebars() { - global $ID; + function test_globalID() { + global $ID,$ACT; + - saveWikiText('sidebar', 'topsidebar-test', ''); + $ID = 'foo:bar'; - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $ACT = 'show'; + $this->assertEquals('foo:bar', tpl_pagetitle(null, true)); + } + + function test_adminTitle() { + global $ID,$ACT; - $ID = 'foo'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $ID = 'foo:bar'; + + $ACT = 'admin'; + $this->assertEquals('Admin', tpl_pagetitle(null, true)); + } - saveWikiText('foo:bar:sidebar', 'bottomsidebar-test', ''); + function test_adminPluginTitle() { + global $ID,$ACT,$INPUT,$conf; - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'bottomsidebar-test') > 0); + if (!plugin_load('admin','config')) { + $this->markTestSkipped('Plugin Config not found, unable to test admin plugin titles'); + return; + } - $ID = 'foo:bar:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'bottomsidebar-test') > 0); + $ID = 'foo:bar'; + $ACT = 'admin'; + $conf['lang'] = 'en'; + $INPUT->set('page','config'); - $ID = 'foo'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $this->assertEquals('Configuration Settings', tpl_pagetitle(null, true)); } + function test_nonPageFunctionTitle() { + global $ID,$ACT; + + $ID = 'foo:bar'; + + $ACT = 'index'; + $this->assertEquals('Sitemap', tpl_pagetitle(null, true)); + } + + function test_pageFunctionTitle() { + global $ID,$ACT; + + $ID = 'foo:bar'; + + $ACT = 'revisions'; + $this->assertEquals('foo:bar - Old revisions', tpl_pagetitle(null, true)); + } } diff --git a/inc/template.php b/inc/template.php index fd8bff11a..39d06e895 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1035,7 +1035,7 @@ function tpl_pageinfo($ret = false) { * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { - global $ACT, $INPUT, $lang; + global $ACT, $INPUT, $conf, $lang; if(is_null($id)) { global $ID; @@ -1061,7 +1061,7 @@ function tpl_pagetitle($id = null, $ret = false) { // attempt to load the plugin if (($plugin = plugin_load('admin',$page)) !== null){ - $plugin_title = $plugin->getMenuText(); + $plugin_title = $plugin->getMenuText($conf['lang']); $page_title = $plugin_title ? $plugin_title : $page; } } -- GitLab From 4d6524b8916955bf5fa9086042917244751dc03d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 16 May 2015 16:29:20 +0200 Subject: [PATCH 154/440] allow preview style replacements --- lib/exe/css.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/exe/css.php b/lib/exe/css.php index 701cebaed..dc4d7d75c 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -37,7 +37,7 @@ function css_out(){ if(!$tpl) $tpl = $conf['template']; // load style.ini - $styleini = css_styleini($tpl); + $styleini = css_styleini($tpl, $INPUT->bool('preview')); // find mediatypes if ($INPUT->str('s') == 'feed') { @@ -49,7 +49,7 @@ function css_out(){ } // The generated script depends on some dynamic options - $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl.$type,'.css'); + $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$INPUT->int('preview').DOKU_BASE.$tpl.$type,'.css'); // if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility if (isset($config_cascade['userstyle']['default'])) { @@ -63,6 +63,7 @@ function css_out(){ $cache_files[] = $tplinc.'style.local.ini'; // @deprecated $cache_files[] = DOKU_CONF."tpl/$tpl/style.ini"; $cache_files[] = __FILE__; + if($INPUT->bool('preview')) $cache_files[] = $conf['cachedir'].'/preview.ini'; // Array of needed files and their web locations, the latter ones // are needed to fix relative paths in the stylesheets @@ -262,9 +263,12 @@ function css_applystyle($css, $replacements) { * @author Andreas Gohr <andi@splitbrain.org> * * @param string $tpl the used template + * @param bool $preview load preview replacements * @return array with keys 'stylesheets' and 'replacements' */ -function css_styleini($tpl) { +function css_styleini($tpl, $preview=false) { + global $conf; + $stylesheets = array(); // mode, file => base $replacements = array(); // placeholder => value @@ -321,6 +325,19 @@ function css_styleini($tpl) { } } + // allow replacement overwrites in preview mode + if($preview) { + $webbase = DOKU_BASE; + $ini = $conf['cachedir'].'/preview.ini'; + if(file_exists($ini)) { + $data = parse_ini_file($ini, true); + // replacements + if(is_array($data['replacements'])) { + $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase)); + } + } + } + return array( 'stylesheets' => $stylesheets, 'replacements' => $replacements -- GitLab From 6ea007c9f8c6830ea4f21ad880e91279e2f4bf10 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 16 May 2015 18:40:21 +0200 Subject: [PATCH 155/440] a first very basic implementation of the preview mechanism --- .gitignore | 1 + lib/plugins/styler/.travis.yml | 13 ++++ lib/plugins/styler/README | 27 ++++++++ lib/plugins/styler/_test/general.test.php | 33 +++++++++ lib/plugins/styler/action.php | 84 +++++++++++++++++++++++ lib/plugins/styler/admin.php | 74 ++++++++++++++++++++ lib/plugins/styler/lang/en/lang.php | 16 +++++ lib/plugins/styler/plugin.info.txt | 7 ++ lib/plugins/styler/script.js | 40 +++++++++++ 9 files changed, 295 insertions(+) create mode 100644 lib/plugins/styler/.travis.yml create mode 100644 lib/plugins/styler/README create mode 100644 lib/plugins/styler/_test/general.test.php create mode 100644 lib/plugins/styler/action.php create mode 100644 lib/plugins/styler/admin.php create mode 100644 lib/plugins/styler/lang/en/lang.php create mode 100644 lib/plugins/styler/plugin.info.txt create mode 100644 lib/plugins/styler/script.js diff --git a/.gitignore b/.gitignore index acb26dd90..cf1a37300 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ !/lib/plugins/popularity !/lib/plugins/revert !/lib/plugins/safefnrecode +!/lib/plugins/styler !/lib/plugins/testing !/lib/plugins/usermanager !/lib/plugins/action.php diff --git a/lib/plugins/styler/.travis.yml b/lib/plugins/styler/.travis.yml new file mode 100644 index 000000000..d80c0691f --- /dev/null +++ b/lib/plugins/styler/.travis.yml @@ -0,0 +1,13 @@ +# Config file for travis-ci.org + +language: php +php: + - "5.5" + - "5.4" + - "5.3" +env: + - DOKUWIKI=master + - DOKUWIKI=stable +before_install: wget https://raw.github.com/splitbrain/dokuwiki-travis/master/travis.sh +install: sh travis.sh +script: cd _test && phpunit --stderr --group plugin_styler \ No newline at end of file diff --git a/lib/plugins/styler/README b/lib/plugins/styler/README new file mode 100644 index 000000000..37a966352 --- /dev/null +++ b/lib/plugins/styler/README @@ -0,0 +1,27 @@ +styler Plugin for DokuWiki + +Allows to edit style.ini replacements + +All documentation for this plugin can be found at +https://www.dokuwiki.org/plugin:styler + +If you install this plugin manually, make sure it is installed in +lib/plugins/styler/ - if the folder is called different it +will not work! + +Please refer to http://www.dokuwiki.org/plugins for additional info +on how to install plugins in DokuWiki. + +---- +Copyright (C) Andreas Gohr <andi@splitbrain.org> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +See the COPYING file in your DokuWiki folder for details diff --git a/lib/plugins/styler/_test/general.test.php b/lib/plugins/styler/_test/general.test.php new file mode 100644 index 000000000..8b0712a20 --- /dev/null +++ b/lib/plugins/styler/_test/general.test.php @@ -0,0 +1,33 @@ +<?php +/** + * General tests for the styler plugin + * + * @group plugin_styler + * @group plugins + */ +class general_plugin_styler_test extends DokuWikiTest { + + /** + * Simple test to make sure the plugin.info.txt is in correct format + */ + public function test_plugininfo() { + $file = __DIR__.'/../plugin.info.txt'; + $this->assertFileExists($file); + + $info = confToHash($file); + + $this->assertArrayHasKey('base', $info); + $this->assertArrayHasKey('author', $info); + $this->assertArrayHasKey('email', $info); + $this->assertArrayHasKey('date', $info); + $this->assertArrayHasKey('name', $info); + $this->assertArrayHasKey('desc', $info); + $this->assertArrayHasKey('url', $info); + + $this->assertEquals('styler', $info['base']); + $this->assertRegExp('/^https?:\/\//', $info['url']); + $this->assertTrue(mail_isvalid($info['email'])); + $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); + $this->assertTrue(false !== strtotime($info['date'])); + } +} diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php new file mode 100644 index 000000000..648190a2a --- /dev/null +++ b/lib/plugins/styler/action.php @@ -0,0 +1,84 @@ +<?php +/** + * DokuWiki Plugin styler (Action Component) + * + * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +class action_plugin_styler extends DokuWiki_Action_Plugin { + + /** + * Registers a callback function for a given event + * + * @param Doku_Event_Handler $controller DokuWiki's event controller object + * @return void + */ + public function register(Doku_Event_Handler $controller) { + + $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); + $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); + + } + + /** + * [Custom event handler which performs action] + * + * @param Doku_Event $event event object by reference + * @param mixed $param [the parameters passed as fifth argument to register_hook() when this + * handler was registered] + * @return void + */ + public function handle_action(Doku_Event &$event, $param) { + $event->data = act_clean($event->data); + if($event->data === 'styler_plugin_preview') { + msg('handle') ; + $event->data = 'show'; + $this->preview(); + } elseif ($event->data === 'styler_plugin_save') { + $event->data = 'show'; + } + } + + protected function preview(){ + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, $this->makeini()); + } + + protected function makeini() { + global $INPUT; + + $ini = "[replacements]\n"; + foreach($INPUT->arr('tpl') as $key => $val) { + $ini .= $key .' = "'.addslashes($val).'"'."\n"; + } + + return $ini; + } + + /** + * [Custom event handler which performs action] + * + * @param Doku_Event $event event object by reference + * @param mixed $param [the parameters passed as fifth argument to register_hook() when this + * handler was registered] + * @return void + */ + + public function handle_ajax(Doku_Event &$event, $param) { + if($event->data != 'plugin_styler') return; + $event->preventDefault(); + $event->stopPropagation(); + + /** @var admin_plugin_styler $hlp */ + $hlp = plugin_load('admin', 'styler'); + $hlp->html(); + } + +} + +// vim:ts=4:sw=4:et: diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php new file mode 100644 index 000000000..8ecbd22a0 --- /dev/null +++ b/lib/plugins/styler/admin.php @@ -0,0 +1,74 @@ +<?php +/** + * DokuWiki Plugin styler (Admin Component) + * + * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +class admin_plugin_styler extends DokuWiki_Admin_Plugin { + + /** + * @return int sort number in admin menu + */ + public function getMenuSort() { + return 1000; + } + + /** + * @return bool true if only access for superuser, false is for superusers and moderators + */ + public function forAdminOnly() { + return true; + } + + /** + * Should carry out any processing required by the plugin. + */ + public function handle() { + set_doku_pref('styler_plugin', 1); + } + + /** + * Render HTML output, e.g. helpful text and a form + */ + public function html() { + global $conf; + $tpl = $conf['template']; + define('SIMPLE_TEST',1); // hack, ideally certain functions should be moved out of css.php + require_once(DOKU_INC.'lib/exe/css.php'); + $styleini = css_styleini($conf['template'], true); + $replacements = $styleini['replacements']; + + ptln('<h1>'.$this->getLang('menu').'</h1>'); + + if (empty($replacements)) { + echo '<p class="error">Sorry, this template does not support this functionality.</p>'; + } else { + echo '<p>Intro blah... for the currently active template ("'.$tpl.'")... not all variables preview...</p>'; + + echo '<form class="styler" id="plugin__styler" method="post">'; + echo '<h2>Template variables</h2>'; + echo '<table>'; + foreach($replacements as $key => $value){ + echo '<tr>'; + echo '<td>'.$key.'</td>'; + echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" />'; + echo '</tr>'; + } + echo '</table>'; + echo '<input type="submit" name="do[styler_plugin_preview]" value="preview">'; + echo '</form>'; + } + + + + } + + +} + +// vim:ts=4:sw=4:et: \ No newline at end of file diff --git a/lib/plugins/styler/lang/en/lang.php b/lib/plugins/styler/lang/en/lang.php new file mode 100644 index 000000000..dfb472f11 --- /dev/null +++ b/lib/plugins/styler/lang/en/lang.php @@ -0,0 +1,16 @@ +<?php +/** + * English language file for styler plugin + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// menu entry for admin plugins +// $lang['menu'] = 'Your menu entry'; + +// custom language strings for the plugin +// $lang['fixme'] = 'FIXME'; + + + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/styler/plugin.info.txt b/lib/plugins/styler/plugin.info.txt new file mode 100644 index 000000000..51f2f72f6 --- /dev/null +++ b/lib/plugins/styler/plugin.info.txt @@ -0,0 +1,7 @@ +base styler +author Andreas Gohr +email andi@splitbrain.org +date 2015-05-16 +name styler plugin +desc Allows to edit style.ini replacements +url https://www.dokuwiki.org/plugin:styler diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js new file mode 100644 index 000000000..d09a8b8da --- /dev/null +++ b/lib/plugins/styler/script.js @@ -0,0 +1,40 @@ +jQuery(function () { + + + if (DokuCookie.getValue('styler_plugin') == 1) { + + + + // load dialog + var $dialog = jQuery(document.createElement('div')); + jQuery('body').append($dialog); + $dialog.load( + DOKU_BASE + '/lib/exe/ajax.php', + { + 'call': 'plugin_styler' + }, + function () { + // load the preview template + var now = new Date().getTime(); + var $style = jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + + // open the dialog + $dialog.dialog({ + 'title': 'Template Variables', + 'width': 500, + 'top': 50, + 'position': { 'my': 'left top', 'at': 'left top', 'of': window }, + // bring everything back to normal + 'close': function (event, ui) { + // disable the styler plugin again + DokuCookie.setValue('styler_plugin', 0); + // reload + document.location.reload() + } + }); + } + ); + + } +}); \ No newline at end of file -- GitLab From a61966c55d9d0ac4b800d65cfc6ee1aea44899b5 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sat, 16 May 2015 19:07:23 +0200 Subject: [PATCH 156/440] Provide a function to return admin plugin for the page request. This was previously carried out in three separate places. Refactor that code to use the new function. Update tpl_pageTitle test to use a manager level admin plugin. --- .../tests/inc/template_include_page.test.php | 8 ++--- inc/actions.php | 17 ++-------- inc/pluginutils.php | 31 +++++++++++++++++++ inc/template.php | 30 +++++------------- 4 files changed, 45 insertions(+), 41 deletions(-) diff --git a/_test/tests/inc/template_include_page.test.php b/_test/tests/inc/template_include_page.test.php index 580221979..7dd13ba23 100644 --- a/_test/tests/inc/template_include_page.test.php +++ b/_test/tests/inc/template_include_page.test.php @@ -34,17 +34,17 @@ class template_pagetitle_test extends DokuWikiTest { function test_adminPluginTitle() { global $ID,$ACT,$INPUT,$conf; - if (!plugin_load('admin','config')) { - $this->markTestSkipped('Plugin Config not found, unable to test admin plugin titles'); + if (!plugin_load('admin','revert')) { + $this->markTestSkipped('Revert plugin not found, unable to test admin plugin titles'); return; } $ID = 'foo:bar'; $ACT = 'admin'; $conf['lang'] = 'en'; - $INPUT->set('page','config'); + $INPUT->set('page','revert'); - $this->assertEquals('Configuration Settings', tpl_pagetitle(null, true)); + $this->assertEquals('Revert Manager', tpl_pagetitle(null, true)); } function test_nonPageFunctionTitle() { diff --git a/inc/actions.php b/inc/actions.php index 709c19ddd..b0753b22e 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -162,20 +162,9 @@ function act_dispatch(){ if($ACT == 'admin'){ // retrieve admin plugin name from $_REQUEST['page'] if (($page = $INPUT->str('page', '', true)) != '') { - $pluginlist = plugin_list('admin'); - if (in_array($page, $pluginlist)) { - // attempt to load the plugin - - if (($plugin = plugin_load('admin',$page)) !== null){ - /** @var DokuWiki_Admin_Plugin $plugin */ - if($plugin->forAdminOnly() && !$INFO['isadmin']){ - // a manager tried to load a plugin that's for admins only - $INPUT->remove('page'); - msg('For admins only',-1); - }else{ - $plugin->handle(); - } - } + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()){ + $plugin->handle(); } } } diff --git a/inc/pluginutils.php b/inc/pluginutils.php index 4d591869d..60f79869f 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -103,3 +103,34 @@ function plugin_getcascade() { global $plugin_controller; return $plugin_controller->getCascade(); } + + +/** + * Return the currently operating admin plugin or null + * if not on an admin plugin page + * + * @return Doku_Plugin_Admin + */ +function plugin_getRequestAdminPlugin(){ + static $admin_plugin = false; + global $ACT,$INPUT,$INFO; + + if ($admin_plugin === false) { + if (($ACT == 'admin') && ($page = $INPUT->str('page', '', true)) != '') { + $pluginlist = plugin_list('admin'); + if (in_array($page, $pluginlist)) { + // attempt to load the plugin + /** @var $admin_plugin DokuWiki_Admin_Plugin */ + $admin_plugin = plugin_load('admin', $page); + // verify + if ($admin_plugin && $admin_plugin->forAdminOnly() && !$INFO['isadmin']) { + $admin_plugin = null; + $INPUT->remove('page'); + msg('For admins only',-1); + } + } + } + } + + return $admin_plugin; +} diff --git a/inc/template.php b/inc/template.php index 39d06e895..95dc52deb 100644 --- a/inc/template.php +++ b/inc/template.php @@ -218,18 +218,9 @@ function tpl_toc($return = false) { $toc = array(); } } elseif($ACT == 'admin') { - // try to load admin plugin TOC FIXME: duplicates code from tpl_admin - $plugin = null; - $class = $INPUT->str('page'); - if(!empty($class)) { - $pluginlist = plugin_list('admin'); - if(in_array($class, $pluginlist)) { - // attempt to load the plugin - /** @var $plugin DokuWiki_Admin_Plugin */ - $plugin = plugin_load('admin', $class); - } - } - if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) { + // try to load admin plugin TOC + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()) { $toc = $plugin->getTOC(); $TOC = $toc; // avoid later rebuild } @@ -1054,17 +1045,10 @@ function tpl_pagetitle($id = null, $ret = false) { case 'admin' : $page_title = $lang['btn_admin']; // try to get the plugin name - // retrieve admin plugin name from $_REQUEST['page'] - if (($page = $INPUT->str('page', '', true)) != '') { - $pluginlist = plugin_list('admin'); - if (in_array($page, $pluginlist)) { - // attempt to load the plugin - - if (($plugin = plugin_load('admin',$page)) !== null){ - $plugin_title = $plugin->getMenuText($conf['lang']); - $page_title = $plugin_title ? $plugin_title : $page; - } - } + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()){ + $plugin_title = $plugin->getMenuText($conf['lang']); + $page_title = $plugin_title ? $plugin_title : $plugin->getPluginName(); } break; -- GitLab From 1f3b9c4577b0d0fa91c26b01caab84ab3f20e1e4 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sat, 16 May 2015 19:25:26 +0200 Subject: [PATCH 157/440] php7 compatibility: change revert plugin constructor to __construct --- lib/plugins/revert/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index 88d8cd93d..b61615d00 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -16,7 +16,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { /** * Constructor */ - function admin_plugin_revert(){ + function __construct(){ $this->setupLocale(); } -- GitLab From 0f5e7090beb4c8b8e99aa87454c89b53ed11cc66 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 16 May 2015 19:27:43 +0200 Subject: [PATCH 158/440] we have working save and revert buttons --- lib/plugins/styler/action.php | 73 +++++++++++++++++++++++++++++++---- lib/plugins/styler/admin.php | 3 ++ 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index 648190a2a..e2385e739 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -19,8 +19,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { */ public function register(Doku_Event_Handler $controller) { - $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); - $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); + $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); + $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); } @@ -35,31 +35,90 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { public function handle_action(Doku_Event &$event, $param) { $event->data = act_clean($event->data); if($event->data === 'styler_plugin_preview') { - msg('handle') ; $event->data = 'show'; $this->preview(); - } elseif ($event->data === 'styler_plugin_save') { + } elseif($event->data === 'styler_plugin_reset') { $event->data = 'show'; + $this->reset(); + } elseif($event->data === 'styler_plugin_revert') { + $event->data = 'show'; + $this->revert(); + } elseif($event->data === 'styler_plugin_save') { + $event->data = 'show'; + $this->save(); } } - protected function preview(){ + /** + * saves the preview.ini + */ + protected function preview() { global $conf; - $ini = $conf['cachedir'].'/preview.ini'; + $ini = $conf['cachedir'].'/preview.ini'; io_saveFile($ini, $this->makeini()); } + /** + * deletes the preview.ini + */ + protected function reset() { + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, ''); + } + + /** + * deletes the local style.ini replacements + */ + protected function revert() { + $this->replaceini(''); + $this->reset(); + } + + /** + * save the local style.ini replacements + */ + protected function save() { + $this->replaceini($this->makeini()); + $this->reset(); + } + + /** + * create the replacement part of a style.ini from submitted data + * + * @return string + */ protected function makeini() { global $INPUT; $ini = "[replacements]\n"; foreach($INPUT->arr('tpl') as $key => $val) { - $ini .= $key .' = "'.addslashes($val).'"'."\n"; + $ini .= $key.' = "'.addslashes($val).'"'."\n"; } return $ini; } + /** + * replaces the replacement parts in the local ini + * + * @param string $new the new ini contents + */ + protected function replaceini($new) { + global $conf; + $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini"; + if(file_exists($ini)) { + $old = io_readFile($ini); + $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old); + $old = trim($old); + } else { + $old = ''; + } + + io_makeFileDir($ini); + io_saveFile($ini, "$old\n\n$new"); + } + /** * [Custom event handler which performs action] * diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 8ecbd22a0..323bf61ec 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -61,6 +61,9 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } echo '</table>'; echo '<input type="submit" name="do[styler_plugin_preview]" value="preview">'; + echo '<input type="submit" name="do[styler_plugin_reset]" value="reset current">'; #FIXME only if preview.ini exists + echo '<input type="submit" name="do[styler_plugin_revert]" value="revert to original">'; #FIXME only if local.ini exists + echo '<input type="submit" name="do[styler_plugin_save]" value="save">'; echo '</form>'; } -- GitLab From fb7685fb53589ebe099201297c0e8dbf20d89c59 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 16 May 2015 19:52:26 +0200 Subject: [PATCH 159/440] more improvements --- lib/plugins/styler/action.php | 50 +++++++++++++++++++++-------------- lib/plugins/styler/admin.php | 16 ++++++----- lib/plugins/styler/script.js | 11 ++++---- 3 files changed, 46 insertions(+), 31 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index e2385e739..88e2d0912 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -9,6 +9,14 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); +/** + * Class action_plugin_styler + * + * This handles all the save actions and loading the interface + * + * All this usually would be done within an admin plugin, but we want to have this available outside + * the admin interface using our floating dialog. + */ class action_plugin_styler extends DokuWiki_Action_Plugin { /** @@ -18,10 +26,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { * @return void */ public function register(Doku_Event_Handler $controller) { - $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); - } /** @@ -33,6 +39,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { * @return void */ public function handle_action(Doku_Event &$event, $param) { + if(!auth_isadmin()) return; + $event->data = act_clean($event->data); if($event->data === 'styler_plugin_preview') { $event->data = 'show'; @@ -49,6 +57,26 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { } } + /** + * [Custom event handler which performs action] + * + * @param Doku_Event $event event object by reference + * @param mixed $param [the parameters passed as fifth argument to register_hook() when this + * handler was registered] + * @return void + */ + + public function handle_ajax(Doku_Event &$event, $param) { + if(!auth_isadmin()) return; + if($event->data != 'plugin_styler') return; + $event->preventDefault(); + $event->stopPropagation(); + + /** @var admin_plugin_styler $hlp */ + $hlp = plugin_load('admin', 'styler'); + $hlp->form(); + } + /** * saves the preview.ini */ @@ -119,24 +147,6 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { io_saveFile($ini, "$old\n\n$new"); } - /** - * [Custom event handler which performs action] - * - * @param Doku_Event $event event object by reference - * @param mixed $param [the parameters passed as fifth argument to register_hook() when this - * handler was registered] - * @return void - */ - - public function handle_ajax(Doku_Event &$event, $param) { - if($event->data != 'plugin_styler') return; - $event->preventDefault(); - $event->stopPropagation(); - - /** @var admin_plugin_styler $hlp */ - $hlp = plugin_load('admin', 'styler'); - $hlp->html(); - } } diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 323bf61ec..4be2153ab 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -29,13 +29,21 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { * Should carry out any processing required by the plugin. */ public function handle() { - set_doku_pref('styler_plugin', 1); } /** * Render HTML output, e.g. helpful text and a form */ public function html() { + echo '<div id="plugin__styler">'; + $this->form(); + echo '</div>'; + } + + /** + * Create the actual editing form + */ + public function form() { global $conf; $tpl = $conf['template']; define('SIMPLE_TEST',1); // hack, ideally certain functions should be moved out of css.php @@ -50,7 +58,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } else { echo '<p>Intro blah... for the currently active template ("'.$tpl.'")... not all variables preview...</p>'; - echo '<form class="styler" id="plugin__styler" method="post">'; + echo '<form class="styler" method="post">'; echo '<h2>Template variables</h2>'; echo '<table>'; foreach($replacements as $key => $value){ @@ -66,12 +74,8 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { echo '<input type="submit" name="do[styler_plugin_save]" value="save">'; echo '</form>'; } - - - } - } // vim:ts=4:sw=4:et: \ No newline at end of file diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index d09a8b8da..b3cadfd5e 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -1,10 +1,12 @@ jQuery(function () { + // user openend the admin page, set cookie and redirect + if(jQuery('#plugin__styler').length) { + DokuCookie.setValue('styler_plugin', 1); + document.location.href = DOKU_BASE; + } - + // The Styler Dialog is currently enabled, display it here and apply the preview styles if (DokuCookie.getValue('styler_plugin') == 1) { - - - // load dialog var $dialog = jQuery(document.createElement('div')); jQuery('body').append($dialog); @@ -35,6 +37,5 @@ jQuery(function () { }); } ); - } }); \ No newline at end of file -- GitLab From c175e043e167877c54c7823870ab7a75141b062e Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 16 May 2015 19:57:56 +0200 Subject: [PATCH 160/440] __construct --- lib/plugins/config/settings/extra.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index c6a3f9dae..2445577d1 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -15,7 +15,7 @@ if (!class_exists('setting_sepchar')) { * @param string $key * @param array|null $param array with metadata of setting */ - function setting_sepchar($key,$param=null) { + function __construct($key,$param=null) { $str = '_-.'; for ($i=0;$i<strlen($str);$i++) $this->_choices[] = $str{$i}; -- GitLab From aae321f2598674fe5c509cdd2a07327249358938 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 08:15:32 +0200 Subject: [PATCH 161/440] make styler plugin work without javascript as well (partly done) --- lib/plugins/styler/action.php | 94 +++--------------------------- lib/plugins/styler/admin.php | 106 ++++++++++++++++++++++++++++++---- 2 files changed, 103 insertions(+), 97 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index 88e2d0912..b7dd27cc4 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -28,6 +28,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { public function register(Doku_Event_Handler $controller) { $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); + + // FIXME load preview style when on admin page } /** @@ -40,21 +42,12 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { */ public function handle_action(Doku_Event &$event, $param) { if(!auth_isadmin()) return; + if($event->data != 'styler_plugin') return; + $event->data = 'show'; - $event->data = act_clean($event->data); - if($event->data === 'styler_plugin_preview') { - $event->data = 'show'; - $this->preview(); - } elseif($event->data === 'styler_plugin_reset') { - $event->data = 'show'; - $this->reset(); - } elseif($event->data === 'styler_plugin_revert') { - $event->data = 'show'; - $this->revert(); - } elseif($event->data === 'styler_plugin_save') { - $event->data = 'show'; - $this->save(); - } + /** @var admin_plugin_styler $hlp */ + $hlp = plugin_load('admin', 'styler'); + $hlp->handle(); } /** @@ -74,80 +67,9 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { /** @var admin_plugin_styler $hlp */ $hlp = plugin_load('admin', 'styler'); - $hlp->form(); + $hlp->form(true); } - /** - * saves the preview.ini - */ - protected function preview() { - global $conf; - $ini = $conf['cachedir'].'/preview.ini'; - io_saveFile($ini, $this->makeini()); - } - - /** - * deletes the preview.ini - */ - protected function reset() { - global $conf; - $ini = $conf['cachedir'].'/preview.ini'; - io_saveFile($ini, ''); - } - - /** - * deletes the local style.ini replacements - */ - protected function revert() { - $this->replaceini(''); - $this->reset(); - } - - /** - * save the local style.ini replacements - */ - protected function save() { - $this->replaceini($this->makeini()); - $this->reset(); - } - - /** - * create the replacement part of a style.ini from submitted data - * - * @return string - */ - protected function makeini() { - global $INPUT; - - $ini = "[replacements]\n"; - foreach($INPUT->arr('tpl') as $key => $val) { - $ini .= $key.' = "'.addslashes($val).'"'."\n"; - } - - return $ini; - } - - /** - * replaces the replacement parts in the local ini - * - * @param string $new the new ini contents - */ - protected function replaceini($new) { - global $conf; - $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini"; - if(file_exists($ini)) { - $old = io_readFile($ini); - $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old); - $old = trim($old); - } else { - $old = ''; - } - - io_makeFileDir($ini); - io_saveFile($ini, "$old\n\n$new"); - } - - } // vim:ts=4:sw=4:et: diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 4be2153ab..dfc72373c 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -29,6 +29,11 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { * Should carry out any processing required by the plugin. */ public function handle() { + global $INPUT; + $run = $INPUT->extract('run')->str('run'); + if(!$run) return; + $run = "run_$run"; + $this->$run(); } /** @@ -36,46 +41,125 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { */ public function html() { echo '<div id="plugin__styler">'; - $this->form(); + $this->form(false); echo '</div>'; } /** * Create the actual editing form */ - public function form() { + public function form($isajax) { global $conf; + global $ID; $tpl = $conf['template']; - define('SIMPLE_TEST',1); // hack, ideally certain functions should be moved out of css.php + define('SIMPLE_TEST', 1); // hack, ideally certain functions should be moved out of css.php require_once(DOKU_INC.'lib/exe/css.php'); - $styleini = css_styleini($conf['template'], true); + $styleini = css_styleini($conf['template'], true); $replacements = $styleini['replacements']; + if($isajax) { + $target = wl($ID, array('do' => 'styler_plugin')); + } else { + $target = wl($ID, array('do' => 'admin', 'page' => 'styler')); + } + ptln('<h1>'.$this->getLang('menu').'</h1>'); - if (empty($replacements)) { + if(empty($replacements)) { echo '<p class="error">Sorry, this template does not support this functionality.</p>'; } else { echo '<p>Intro blah... for the currently active template ("'.$tpl.'")... not all variables preview...</p>'; - echo '<form class="styler" method="post">'; + echo '<form class="styler" method="post" action="'.$target.'">'; echo '<h2>Template variables</h2>'; echo '<table>'; - foreach($replacements as $key => $value){ + foreach($replacements as $key => $value) { echo '<tr>'; echo '<td>'.$key.'</td>'; echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" />'; echo '</tr>'; } echo '</table>'; - echo '<input type="submit" name="do[styler_plugin_preview]" value="preview">'; - echo '<input type="submit" name="do[styler_plugin_reset]" value="reset current">'; #FIXME only if preview.ini exists - echo '<input type="submit" name="do[styler_plugin_revert]" value="revert to original">'; #FIXME only if local.ini exists - echo '<input type="submit" name="do[styler_plugin_save]" value="save">'; + echo '<input type="submit" name="run[preview]" value="preview">'; + echo '<input type="submit" name="run[reset]" value="reset current">'; #FIXME only if preview.ini exists + echo '<input type="submit" name="run[revert]" value="revert to original">'; #FIXME only if local.ini exists + echo '<input type="submit" name="run[save]" value="save">'; echo '</form>'; } } + /** + * saves the preview.ini + */ + protected function run_preview() { + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, $this->makeini()); + } + + /** + * deletes the preview.ini + */ + protected function run_reset() { + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, ''); + } + + /** + * deletes the local style.ini replacements + */ + protected function run_revert() { + $this->replaceini(''); + $this->run_reset(); + } + + /** + * save the local style.ini replacements + */ + protected function run_save() { + $this->replaceini($this->makeini()); + $this->run_reset(); + } + + /** + * create the replacement part of a style.ini from submitted data + * + * @return string + */ + protected function makeini() { + global $INPUT; + + $ini = "[replacements]\n"; + $ini .= ";These overwrites have been generated from the Template Styler Admin interface\n"; + $ini .= ";Any values in this section will be overwritten by that tool again\n"; + foreach($INPUT->arr('tpl') as $key => $val) { + $ini .= $key.' = "'.addslashes($val).'"'."\n"; + } + + return $ini; + } + + /** + * replaces the replacement parts in the local ini + * + * @param string $new the new ini contents + */ + protected function replaceini($new) { + global $conf; + $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini"; + if(file_exists($ini)) { + $old = io_readFile($ini); + $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old); + $old = trim($old); + } else { + $old = ''; + } + + io_makeFileDir($ini); + io_saveFile($ini, "$old\n\n$new"); + } + } // vim:ts=4:sw=4:et: \ No newline at end of file -- GitLab From 831864db51ec2c0cd8b86aaee1f1c160df91087d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 10:53:22 +0200 Subject: [PATCH 162/440] make styler work without JS as well --- lib/plugins/styler/action.php | 37 +++++++++++++++++++++++++++++------ lib/plugins/styler/admin.php | 2 +- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index b7dd27cc4..b63cf3ec1 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -20,7 +20,7 @@ if(!defined('DOKU_INC')) die(); class action_plugin_styler extends DokuWiki_Action_Plugin { /** - * Registers a callback function for a given event + * Registers a callback functions * * @param Doku_Event_Handler $controller DokuWiki's event controller object * @return void @@ -28,12 +28,37 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { public function register(Doku_Event_Handler $controller) { $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); + $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_header'); + } + + /** + * Adds the preview parameter to the stylesheet loading in non-js mode + * + * @param Doku_Event $event event object by reference + * @param mixed $param [the parameters passed as fifth argument to register_hook() when this + * handler was registered] + * @return void + */ + public function handle_header(Doku_Event &$event, $param) { + global $ACT; + global $INPUT; + if($ACT != 'admin' || $INPUT->str('page') != 'styler') return; + if(!auth_isadmin()) return; - // FIXME load preview style when on admin page + // set preview + $len = count($event->data['link']); + for($i = 0; $i < $len; $i++) { + if( + $event->data['link'][$i]['rel'] == 'stylesheet' && + strpos($event->data['link'][$i]['href'], 'lib/exe/css.php') !== false + ) { + $event->data['link'][$i]['href'] .= '&preview=1&tseed='.time(); + } + } } /** - * [Custom event handler which performs action] + * Updates the style.ini settings by passing it on to handle() of the admin component * * @param Doku_Event $event event object by reference * @param mixed $param [the parameters passed as fifth argument to register_hook() when this @@ -41,8 +66,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { * @return void */ public function handle_action(Doku_Event &$event, $param) { - if(!auth_isadmin()) return; if($event->data != 'styler_plugin') return; + if(!auth_isadmin()) return; $event->data = 'show'; /** @var admin_plugin_styler $hlp */ @@ -51,7 +76,7 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { } /** - * [Custom event handler which performs action] + * Create the style form in the floating Dialog * * @param Doku_Event $event event object by reference * @param mixed $param [the parameters passed as fifth argument to register_hook() when this @@ -60,8 +85,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { */ public function handle_ajax(Doku_Event &$event, $param) { - if(!auth_isadmin()) return; if($event->data != 'plugin_styler') return; + if(!auth_isadmin()) return; $event->preventDefault(); $event->stopPropagation(); diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index dfc72373c..bb9426e12 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -26,7 +26,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } /** - * Should carry out any processing required by the plugin. + * handle the different actions (also called from ajax) */ public function handle() { global $INPUT; -- GitLab From 82f9aff6a65b1acaeec6cfde9a2848cb9cb92e03 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 11:16:17 +0200 Subject: [PATCH 163/440] started to localize the styler plugin --- lib/plugins/styler/admin.php | 37 +++++++++++++++++++++------- lib/plugins/styler/lang/en/intro.txt | 2 ++ lib/plugins/styler/lang/en/lang.php | 9 +++++-- lib/plugins/styler/script.js | 2 +- 4 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 lib/plugins/styler/lang/en/intro.txt diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index bb9426e12..bfc6cd32b 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -25,6 +25,15 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { return true; } + /** + * @param string $language + * @return string + */ + public function getMenuText($language) { + $js = $this->getLang('js'); + return $js['menu']; + } + /** * handle the different actions (also called from ajax) */ @@ -41,6 +50,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { */ public function html() { echo '<div id="plugin__styler">'; + ptln('<h1>'.$this->getMenuText('').'</h1>'); $this->form(false); echo '</div>'; } @@ -63,15 +73,13 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { $target = wl($ID, array('do' => 'admin', 'page' => 'styler')); } - ptln('<h1>'.$this->getLang('menu').'</h1>'); - if(empty($replacements)) { - echo '<p class="error">Sorry, this template does not support this functionality.</p>'; + echo '<p class="error">'.$this->getLang('error').'</p>'; } else { - echo '<p>Intro blah... for the currently active template ("'.$tpl.'")... not all variables preview...</p>'; + echo $this->locale_xhtml('intro'); echo '<form class="styler" method="post" action="'.$target.'">'; - echo '<h2>Template variables</h2>'; + echo '<table>'; foreach($replacements as $key => $value) { echo '<tr>'; @@ -80,11 +88,22 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { echo '</tr>'; } echo '</table>'; - echo '<input type="submit" name="run[preview]" value="preview">'; - echo '<input type="submit" name="run[reset]" value="reset current">'; #FIXME only if preview.ini exists - echo '<input type="submit" name="run[revert]" value="revert to original">'; #FIXME only if local.ini exists - echo '<input type="submit" name="run[save]" value="save">'; + + echo '<p class="center">'; + echo '<input type="submit" name="run[preview]" value="'.$this->getLang('btn_preview').'">'; + echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'">'; #FIXME only if preview.ini exists + echo '</p>'; + + echo '<p class="center">'; + echo '<input type="submit" name="run[save]" value="'.$this->getLang('btn_save').'">'; + echo '</p>'; + + echo '<p class="center">'; + echo '<input type="submit" name="run[revert]" value="'.$this->getLang('btn_revert').'">'; #FIXME only if local.ini exists + echo '</p>'; + echo '</form>'; + } } diff --git a/lib/plugins/styler/lang/en/intro.txt b/lib/plugins/styler/lang/en/intro.txt new file mode 100644 index 000000000..bb9e3ff33 --- /dev/null +++ b/lib/plugins/styler/lang/en/intro.txt @@ -0,0 +1,2 @@ +This tool allows you to change certain style settings of your currently selected template +all changes are stored in a local configuration file and are upgrade safe. \ No newline at end of file diff --git a/lib/plugins/styler/lang/en/lang.php b/lib/plugins/styler/lang/en/lang.php index dfb472f11..2dd7921b0 100644 --- a/lib/plugins/styler/lang/en/lang.php +++ b/lib/plugins/styler/lang/en/lang.php @@ -6,10 +6,15 @@ */ // menu entry for admin plugins -// $lang['menu'] = 'Your menu entry'; +$lang['js']['menu'] = 'Template Style Settings'; // custom language strings for the plugin -// $lang['fixme'] = 'FIXME'; +$lang['error'] = 'Sorry, this template does not support this functionality.'; + +$lang['btn_preview'] = 'Preview your changes'; +$lang['btn_save'] = 'Save your changes'; +$lang['btn_reset'] = 'Reset your current changes'; +$lang['btn_revert'] = 'Revert all styles back to the template\'s default'; diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index b3cadfd5e..d472c4fe7 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -23,7 +23,7 @@ jQuery(function () { // open the dialog $dialog.dialog({ - 'title': 'Template Variables', + 'title': LANG.plugins.styler.menu, 'width': 500, 'top': 50, 'position': { 'my': 'left top', 'at': 'left top', 'of': window }, -- GitLab From 45ae4bb83834a513e709b960747f964dba90392b Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sun, 17 May 2015 12:56:51 +0200 Subject: [PATCH 164/440] Add filtering to remove blank entries from key/value config retrieval This applies to: - acronyms - entities - interwiki - mime - smileys --- inc/confutils.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/inc/confutils.php b/inc/confutils.php index 8643a056c..3e69b20be 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -49,6 +49,7 @@ function getMimeTypes() { static $mime = null; if ( !$mime ) { $mime = retrieveConfig('mime','confToHash'); + $mime = array_filter($mime); } return $mime; } @@ -62,6 +63,7 @@ function getAcronyms() { static $acronyms = null; if ( !$acronyms ) { $acronyms = retrieveConfig('acronyms','confToHash'); + $acronyms = array_filter($acronyms); } return $acronyms; } @@ -75,6 +77,7 @@ function getSmileys() { static $smileys = null; if ( !$smileys ) { $smileys = retrieveConfig('smileys','confToHash'); + $smileys = array_filter($smileys); } return $smileys; } @@ -88,6 +91,7 @@ function getEntities() { static $entities = null; if ( !$entities ) { $entities = retrieveConfig('entities','confToHash'); + $entities = array_filter($entities); } return $entities; } @@ -101,9 +105,11 @@ function getInterwiki() { static $wikis = null; if ( !$wikis ) { $wikis = retrieveConfig('interwiki','confToHash',array(true)); + $wikis = array_filter($wikis); + + //add sepecial case 'this' + $wikis['this'] = DOKU_URL.'{NAME}'; } - //add sepecial case 'this' - $wikis['this'] = DOKU_URL.'{NAME}'; return $wikis; } -- GitLab From 4c353447a306680af86c38db3ef592e29a0cbe60 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sun, 17 May 2015 13:02:07 +0200 Subject: [PATCH 165/440] Support negating of config values include earlier in the cascade To negate a config value, prefix the value with an '!'. E.g. to disable recognition of the gopher scheme !gopher This applies to: - scheme - stopwords --- inc/confutils.php | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/inc/confutils.php b/inc/confutils.php index 3e69b20be..7d7c043fa 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -120,7 +120,7 @@ function getInterwiki() { function getWordblocks() { static $wordblocks = null; if ( !$wordblocks ) { - $wordblocks = retrieveConfig('wordblock','file'); + $wordblocks = retrieveConfig('wordblock','file',null,'array_merge_with_removal'); } return $wordblocks; } @@ -133,11 +133,11 @@ function getWordblocks() { function getSchemes() { static $schemes = null; if ( !$schemes ) { - $schemes = retrieveConfig('scheme','file'); + $schemes = retrieveConfig('scheme','file',null,'array_merge_with_removal'); + $schemes = array_map('trim', $schemes); + $schemes = preg_replace('/^#.*/', '', $schemes); + $schemes = array_filter($schemes); } - $schemes = array_map('trim', $schemes); - $schemes = preg_replace('/^#.*/', '', $schemes); - $schemes = array_filter($schemes); return $schemes; } @@ -202,7 +202,7 @@ function confToHash($file,$lower=false) { * @param array $params optional additional params to pass to the callback * @return array configuration values */ -function retrieveConfig($type,$fn,$params=null) { +function retrieveConfig($type,$fn,$params=null,$combine='array_merge') { global $config_cascade; if(!is_array($params)) $params = array(); @@ -214,7 +214,7 @@ function retrieveConfig($type,$fn,$params=null) { foreach ($config_cascade[$type][$config_group] as $file) { if (file_exists($file)) { $config = call_user_func_array($fn,array_merge(array($file),$params)); - $combined = array_merge($combined, $config); + $combined = $combine($combined, $config); } } } @@ -353,4 +353,27 @@ function conf_decodeString($str) { return $str; } } + +/** + * array combination function to remove negated values (prefixed by !) + * + * @param array $current + * @param array $new + * + * @return array the combined array, numeric keys reset + */ +function array_merge_with_removal($current, $new) { + foreach ($new as $val) { + if (substr($val,0,1) == '!') { + $idx = array_search(substr($val,1),$current); + if ($idx !== false) { + unset($current[$idx]); + } + } else { + $current[] = $val; + } + } + + return array_slice($current,0); +} //Setup VIM: ex: et ts=4 : -- GitLab From b9e2f0546e334add4084195d07568a352bee5091 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Sun, 17 May 2015 13:27:56 +0200 Subject: [PATCH 166/440] update test groups for the extension manager test --- lib/plugins/extension/_test/extension.test.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/extension/_test/extension.test.php b/lib/plugins/extension/_test/extension.test.php index 453b95e79..d4f13201d 100644 --- a/lib/plugins/extension/_test/extension.test.php +++ b/lib/plugins/extension/_test/extension.test.php @@ -14,7 +14,9 @@ class mock_helper_plugin_extension_extension extends helper_plugin_extension_ext /** * @group plugin_extension + * @group admin_plugins * @group plugins + * @group bundled_plugins */ class helper_plugin_extension_extension_test extends DokuWikiTest { -- GitLab From e422a60a9672c993b6872e856b9172dbd8135b56 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 15:37:50 +0200 Subject: [PATCH 167/440] added color picker support I'm not too hapy with it --- lib/plugins/styler/admin.php | 28 +- lib/plugins/styler/iris.js | 1488 ++++++++++++++++++++++++++++++++++ lib/plugins/styler/script.js | 13 +- 3 files changed, 1525 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/styler/iris.js diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index bfc6cd32b..8d44ac6f5 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -84,7 +84,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { foreach($replacements as $key => $value) { echo '<tr>'; echo '<td>'.$key.'</td>'; - echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" />'; + echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' />'; echo '</tr>'; } echo '</table>'; @@ -107,6 +107,32 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } } + /** + * set the color class attribute + */ + protected function colorClass($key) { + static $colors = array( + 'text', + 'background', + 'text_alt', + 'background_alt', + 'text_neu', + 'background_neu', + 'border', + 'highlight', + 'background_site', + 'link', + 'existing', + 'missing', + ); + + if(preg_match('/colou?r/', $key) || in_array(trim($key,'_'), $colors)) { + return 'class="color"'; + } else { + return ''; + } + } + /** * saves the preview.ini */ diff --git a/lib/plugins/styler/iris.js b/lib/plugins/styler/iris.js new file mode 100644 index 000000000..4eda5022e --- /dev/null +++ b/lib/plugins/styler/iris.js @@ -0,0 +1,1488 @@ +/*! Iris Color Picker - v1.0.7 - 2014-11-28 +* https://github.com/Automattic/Iris +* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ +(function( $, undef ){ + var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion; + + _html = '<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>'; + _css = '.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}'; + + // Even IE9 dosen't support gradients. Elaborate sigh. + UA = navigator.userAgent.toLowerCase(); + isIE = navigator.appName === 'Microsoft Internet Explorer'; + IEVersion = isIE ? parseFloat( UA.match( /msie ([0-9]{1,}[\.0-9]{0,})/ )[1] ) : 0; + nonGradientIE = ( isIE && IEVersion < 10 ); + gradientType = false; + + // we don't bother with an unprefixed version, as it has a different syntax + vendorPrefixes = [ '-moz-', '-webkit-', '-o-', '-ms-' ]; + + // Bail for IE <= 7 + if ( nonGradientIE && IEVersion <= 7 ) { + $.fn.iris = $.noop; + $.support.iris = false; + return; + } + + $.support.iris = true; + + function testGradientType() { + var el, base, + bgImageString = 'backgroundImage'; + + if ( nonGradientIE ) { + gradientType = 'filter'; + } + else { + el = $( '<div id="iris-gradtest" />' ); + base = 'linear-gradient(top,#fff,#000)'; + $.each( vendorPrefixes, function( i, val ){ + el.css( bgImageString, val + base ); + if ( el.css( bgImageString ).match( 'gradient' ) ) { + gradientType = i; + return false; + } + }); + // check for legacy webkit gradient syntax + if ( gradientType === false ) { + el.css( 'background', '-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))' ); + if ( el.css( bgImageString ).match( 'gradient' ) ) { + gradientType = 'webkit'; + } + } + el.remove(); + } + + } + + /** + * Only for CSS3 gradients. oldIE will use a separate function. + * + * Accepts as many color stops as necessary from 2nd arg on, or 2nd + * arg can be an array of color stops + * + * @param {string} origin Gradient origin - top or left, defaults to left. + * @return {string} Appropriate CSS3 gradient string for use in + */ + function createGradient( origin, stops ) { + origin = ( origin === 'top' ) ? 'top' : 'left'; + stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 ); + if ( gradientType === 'webkit' ) { + return legacyWebkitGradient( origin, stops ); + } else { + return vendorPrefixes[ gradientType ] + 'linear-gradient(' + origin + ', ' + stops.join(', ') + ')'; + } + } + + /** + * Stupid gradients for a stupid browser. + */ + function stupidIEGradient( origin, stops ) { + var type, self, lastIndex, filter, startPosProp, endPosProp, dimensionProp, template, html; + + origin = ( origin === 'top' ) ? 'top' : 'left'; + stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 ); + // 8 hex: AARRGGBB + // GradientType: 0 vertical, 1 horizontal + type = ( origin === 'top' ) ? 0 : 1; + self = $( this ); + lastIndex = stops.length - 1; + filter = 'filter'; + startPosProp = ( type === 1 ) ? 'left' : 'top'; + endPosProp = ( type === 1 ) ? 'right' : 'bottom'; + dimensionProp = ( type === 1 ) ? 'height' : 'width'; + template = '<div class="iris-ie-gradient-shim" style="position:absolute;' + dimensionProp + ':100%;' + startPosProp + ':%start%;' + endPosProp + ':%end%;' + filter + ':%filter%;" data-color:"%color%"></div>'; + html = ''; + // need a positioning context + if ( self.css('position') === 'static' ) { + self.css( {position: 'relative' } ); + } + + stops = fillColorStops( stops ); + $.each(stops, function( i, startColor ) { + var endColor, endStop, filterVal; + + // we want two at a time. if we're on the last pair, bail. + if ( i === lastIndex ) { + return false; + } + + endColor = stops[ i + 1 ]; + //if our pairs are at the same color stop, moving along. + if ( startColor.stop === endColor.stop ) { + return; + } + + endStop = 100 - parseFloat( endColor.stop ) + '%'; + startColor.octoHex = new Color( startColor.color ).toIEOctoHex(); + endColor.octoHex = new Color( endColor.color ).toIEOctoHex(); + + filterVal = 'progid:DXImageTransform.Microsoft.Gradient(GradientType=' + type + ', StartColorStr=\'' + startColor.octoHex + '\', EndColorStr=\'' + endColor.octoHex + '\')'; + html += template.replace( '%start%', startColor.stop ).replace( '%end%', endStop ).replace( '%filter%', filterVal ); + }); + self.find( '.iris-ie-gradient-shim' ).remove(); + $( html ).prependTo( self ); + } + + function legacyWebkitGradient( origin, colorList ) { + var stops = []; + origin = ( origin === 'top' ) ? '0% 0%,0% 100%,' : '0% 100%,100% 100%,'; + colorList = fillColorStops( colorList ); + $.each( colorList, function( i, val ){ + stops.push( 'color-stop(' + ( parseFloat( val.stop ) / 100 ) + ', ' + val.color + ')' ); + }); + return '-webkit-gradient(linear,' + origin + stops.join(',') + ')'; + } + + function fillColorStops( colorList ) { + var colors = [], + percs = [], + newColorList = [], + lastIndex = colorList.length - 1; + + $.each( colorList, function( index, val ) { + var color = val, + perc = false, + match = val.match( /1?[0-9]{1,2}%$/ ); + + if ( match ) { + color = val.replace( /\s?1?[0-9]{1,2}%$/, '' ); + perc = match.shift(); + } + colors.push( color ); + percs.push( perc ); + }); + + // back fill first and last + if ( percs[0] === false ) { + percs[0] = '0%'; + } + + if ( percs[lastIndex] === false ) { + percs[lastIndex] = '100%'; + } + + percs = backFillColorStops( percs ); + + $.each( percs, function( i ){ + newColorList[i] = { color: colors[i], stop: percs[i] }; + }); + return newColorList; + } + + function backFillColorStops( stops ) { + var first = 0, + last = stops.length - 1, + i = 0, + foundFirst = false, + incr, + steps, + step, + firstVal; + + if ( stops.length <= 2 || $.inArray( false, stops ) < 0 ) { + return stops; + } + while ( i < stops.length - 1 ) { + if ( ! foundFirst && stops[i] === false ) { + first = i - 1; + foundFirst = true; + } else if ( foundFirst && stops[i] !== false ) { + last = i; + i = stops.length; + } + i++; + } + steps = last - first; + firstVal = parseInt( stops[first].replace('%'), 10 ); + incr = ( parseFloat( stops[last].replace('%') ) - firstVal ) / steps; + i = first + 1; + step = 1; + while ( i < last ) { + stops[i] = ( firstVal + ( step * incr ) ) + '%'; + step++; + i++; + } + return backFillColorStops( stops ); + } + + $.fn.gradient = function() { + var args = arguments; + return this.each( function() { + // this'll be oldishIE + if ( nonGradientIE ) { + stupidIEGradient.apply( this, args ); + } else { + // new hotness + $( this ).css( 'backgroundImage', createGradient.apply( this, args ) ); + } + }); + }; + + $.fn.raninbowGradient = function( origin, args ) { + var opts, template, i, steps; + + origin = origin || 'top'; + opts = $.extend( {}, { s: 100, l: 50 }, args ); + template = 'hsl(%h%,' + opts.s + '%,' + opts.l + '%)'; + i = 0; + steps = []; + while ( i <= 360 ) { + steps.push( template.replace('%h%', i) ); + i += 30; + } + return this.each(function() { + $(this).gradient( origin, steps ); + }); + }; + + // the colorpicker widget def. + Iris = { + options: { + color: false, + mode: 'hsl', + controls: { + horiz: 's', // horizontal defaults to saturation + vert: 'l', // vertical defaults to lightness + strip: 'h' // right strip defaults to hue + }, + hide: true, // hide the color picker by default + border: true, // draw a border around the collection of UI elements + target: false, // a DOM element / jQuery selector that the element will be appended within. Only used when called on an input. + width: 200, // the width of the collection of UI elements + palettes: false // show a palette of basic colors beneath the square. + }, + _color: '', + _palettes: [ '#000', '#fff', '#d33', '#d93', '#ee2', '#81d742', '#1e73be', '#8224e3' ], + _inited: false, + _defaultHSLControls: { + horiz: 's', + vert: 'l', + strip: 'h' + }, + _defaultHSVControls: { + horiz: 'h', + vert: 'v', + strip: 's' + }, + _scale: { + h: 360, + s: 100, + l: 100, + v: 100 + }, + _create: function() { + var self = this, + el = self.element, + color = self.options.color || el.val(); + + if ( gradientType === false ) { + testGradientType(); + } + + if ( el.is( 'input' ) ) { + if ( self.options.target ) { + self.picker = $( _html ).appendTo( self.options.target ); + } else { + self.picker = $( _html ).insertAfter( el ); + } + + self._addInputListeners( el ); + } else { + el.append( _html ); + self.picker = el.find( '.iris-picker' ); + } + + // Browsers / Versions + // Feature detection doesn't work for these, and $.browser is deprecated + if ( isIE ) { + if ( IEVersion === 9 ) { + self.picker.addClass( 'iris-ie-9' ); + } else if ( IEVersion <= 8 ) { + self.picker.addClass( 'iris-ie-lt9' ); + } + } else if ( UA.indexOf('compatible') < 0 && UA.indexOf('khtml') < 0 && UA.match( /mozilla/ ) ) { + self.picker.addClass( 'iris-mozilla' ); + } + + if ( self.options.palettes ) { + self._addPalettes(); + } + + self._color = new Color( color ).setHSpace( self.options.mode ); + self.options.color = self._color.toString(); + + // prep 'em for re-use + self.controls = { + square: self.picker.find( '.iris-square' ), + squareDrag: self.picker.find( '.iris-square-value' ), + horiz: self.picker.find( '.iris-square-horiz' ), + vert: self.picker.find( '.iris-square-vert' ), + strip: self.picker.find( '.iris-strip' ), + stripSlider: self.picker.find( '.iris-strip .iris-slider-offset' ) + }; + + // small sanity check - if we chose hsv, change default controls away from hsl + if ( self.options.mode === 'hsv' && self._has('l', self.options.controls) ) { + self.options.controls = self._defaultHSVControls; + } else if ( self.options.mode === 'hsl' && self._has('v', self.options.controls) ) { + self.options.controls = self._defaultHSLControls; + } + + // store it. HSL gets squirrely + self.hue = self._color.h(); + + if ( self.options.hide ) { + self.picker.hide(); + } + + if ( self.options.border ) { + self.picker.addClass( 'iris-border' ); + } + + self._initControls(); + self.active = 'external'; + self._dimensions(); + self._change(); + }, + _has: function(needle, haystack) { + var ret = false; + $.each(haystack, function(i,v){ + if ( needle === v ) { + ret = true; + // exit the loop + return false; + } + }); + return ret; + }, + _addPalettes: function () { + var container = $( '<div class="iris-palette-container" />' ), + palette = $( '<a class="iris-palette" tabindex="0" />' ), + colors = $.isArray( this.options.palettes ) ? this.options.palettes : this._palettes; + + // do we have an existing container? Empty and reuse it. + if ( this.picker.find( '.iris-palette-container' ).length ) { + container = this.picker.find( '.iris-palette-container' ).detach().html( '' ); + } + + $.each(colors, function(index, val) { + palette.clone().data( 'color', val ) + .css( 'backgroundColor', val ).appendTo( container ) + .height( 10 ).width( 10 ); + }); + + this.picker.append(container); + }, + _paint: function() { + var self = this; + self._paintDimension( 'top', 'strip' ); + self._paintDimension( 'top', 'vert' ); + self._paintDimension( 'left', 'horiz' ); + }, + _paintDimension: function( origin, control ) { + var self = this, + c = self._color, + mode = self.options.mode, + color = self._getHSpaceColor(), + target = self.controls[ control ], + controlOpts = self.options.controls, + stops; + + // don't paint the active control + if ( control === self.active || ( self.active === 'square' && control !== 'strip' ) ) { + return; + } + + switch ( controlOpts[ control ] ) { + case 'h': + if ( mode === 'hsv' ) { + color = c.clone(); + switch ( control ) { + case 'horiz': + color[controlOpts.vert](100); + break; + case 'vert': + color[controlOpts.horiz](100); + break; + case 'strip': + color.setHSpace('hsl'); + break; + } + stops = color.toHsl(); + } else { + if ( control === 'strip' ) { + stops = { s: color.s, l: color.l }; + } else { + stops = { s: 100, l: color.l }; + } + } + + target.raninbowGradient( origin, stops ); + break; + case 's': + if ( mode === 'hsv' ) { + if ( control === 'vert' ) { + stops = [ c.clone().a(0).s(0).toCSS('rgba'), c.clone().a(1).s(0).toCSS('rgba') ]; + } else if ( control === 'strip' ) { + stops = [ c.clone().s(100).toCSS('hsl'), c.clone().s(0).toCSS('hsl') ]; + } else if ( control === 'horiz' ) { + stops = [ '#fff', 'hsl(' + color.h + ',100%,50%)' ]; + } + } else { // implicit mode === 'hsl' + if ( control === 'vert' && self.options.controls.horiz === 'h' ) { + stops = ['hsla(0, 0%, ' + color.l + '%, 0)', 'hsla(0, 0%, ' + color.l + '%, 1)']; + } else { + stops = ['hsl('+ color.h +',0%,50%)', 'hsl(' + color.h + ',100%,50%)']; + } + } + + + target.gradient( origin, stops ); + break; + case 'l': + if ( control === 'strip' ) { + stops = ['hsl(' + color.h + ',100%,100%)', 'hsl(' + color.h + ', ' + color.s + '%,50%)', 'hsl('+ color.h +',100%,0%)']; + } else { + stops = ['#fff', 'rgba(255,255,255,0) 50%', 'rgba(0,0,0,0) 50%', 'rgba(0,0,0,1)']; + } + target.gradient( origin, stops ); + break; + case 'v': + if ( control === 'strip' ) { + stops = [ c.clone().v(100).toCSS(), c.clone().v(0).toCSS() ]; + } else { + stops = ['rgba(0,0,0,0)', '#000']; + } + target.gradient( origin, stops ); + break; + default: + break; + } + }, + + _getHSpaceColor: function() { + return ( this.options.mode === 'hsv' ) ? this._color.toHsv() : this._color.toHsl(); + }, + + _dimensions: function( reset ) { + // whatever size + var self = this, + opts = self.options, + controls = self.controls, + square = controls.square, + strip = self.picker.find( '.iris-strip' ), + squareWidth = '77.5%', + stripWidth = '12%', + totalPadding = 20, + innerWidth = opts.border ? opts.width - totalPadding : opts.width, + controlsHeight, + paletteCount = $.isArray( opts.palettes ) ? opts.palettes.length : self._palettes.length, + paletteMargin, paletteWidth, paletteContainerWidth; + + if ( reset ) { + square.css( 'width', '' ); + strip.css( 'width', '' ); + self.picker.css( {width: '', height: ''} ); + } + + squareWidth = innerWidth * ( parseFloat( squareWidth ) / 100 ); + stripWidth = innerWidth * ( parseFloat( stripWidth ) / 100 ); + controlsHeight = opts.border ? squareWidth + totalPadding : squareWidth; + + square.width( squareWidth ).height( squareWidth ); + strip.height( squareWidth ).width( stripWidth ); + self.picker.css( { width: opts.width, height: controlsHeight } ); + + if ( ! opts.palettes ) { + return self.picker.css( 'paddingBottom', '' ); + } + + // single margin at 2% + paletteMargin = squareWidth * 2 / 100; + paletteContainerWidth = squareWidth - ( ( paletteCount - 1 ) * paletteMargin ); + paletteWidth = paletteContainerWidth / paletteCount; + self.picker.find('.iris-palette').each( function( i ) { + var margin = i === 0 ? 0 : paletteMargin; + $( this ).css({ + width: paletteWidth, + height: paletteWidth, + marginLeft: margin + }); + }); + self.picker.css( 'paddingBottom', paletteWidth + paletteMargin ); + strip.height( paletteWidth + paletteMargin + squareWidth ); + }, + + _addInputListeners: function( input ) { + var self = this, + debounceTimeout = 100, + callback = function( event ){ + var color = new Color( input.val() ), + val = input.val().replace( /^#/, '' ); + + input.removeClass( 'iris-error' ); + // we gave a bad color + if ( color.error ) { + // don't error on an empty input - we want those allowed + if ( val !== '' ) { + input.addClass( 'iris-error' ); + } + } else { + if ( color.toString() !== self._color.toString() ) { + // let's not do this on keyup for hex shortcodes + if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) { + self._setOption( 'color', color.toString() ); + } + } + } + }; + + input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) ); + + // If we initialized hidden, show on first focus. The rest is up to you. + if ( self.options.hide ) { + input.one( 'focus', function() { + self.show(); + }); + } + }, + + _initControls: function() { + var self = this, + controls = self.controls, + square = controls.square, + controlOpts = self.options.controls, + stripScale = self._scale[controlOpts.strip]; + + controls.stripSlider.slider({ + orientation: 'vertical', + max: stripScale, + slide: function( event, ui ) { + self.active = 'strip'; + // "reverse" for hue. + if ( controlOpts.strip === 'h' ) { + ui.value = stripScale - ui.value; + } + + self._color[controlOpts.strip]( ui.value ); + self._change.apply( self, arguments ); + } + }); + + controls.squareDrag.draggable({ + containment: controls.square.find( '.iris-square-inner' ), + zIndex: 1000, + cursor: 'move', + drag: function( event, ui ) { + self._squareDrag( event, ui ); + }, + start: function() { + square.addClass( 'iris-dragging' ); + $(this).addClass( 'ui-state-focus' ); + }, + stop: function() { + square.removeClass( 'iris-dragging' ); + $(this).removeClass( 'ui-state-focus' ); + } + }).on( 'mousedown mouseup', function( event ) { + var focusClass = 'ui-state-focus'; + event.preventDefault(); + if (event.type === 'mousedown' ) { + self.picker.find( '.' + focusClass ).removeClass( focusClass ).blur(); + $(this).addClass( focusClass ).focus(); + } else { + $(this).removeClass( focusClass ); + } + }).on( 'keydown', function( event ) { + var container = controls.square, + draggable = controls.squareDrag, + position = draggable.position(), + distance = self.options.width / 100; // Distance in pixels the draggable should be moved: 1 "stop" + + // make alt key go "10" + if ( event.altKey ) { + distance *= 10; + } + + // Reposition if one of the directional keys is pressed + switch ( event.keyCode ) { + case 37: position.left -= distance; break; // Left + case 38: position.top -= distance; break; // Up + case 39: position.left += distance; break; // Right + case 40: position.top += distance; break; // Down + default: return true; // Exit and bubble + } + + // Keep draggable within container + position.left = Math.max( 0, Math.min( position.left, container.width() ) ); + position.top = Math.max( 0, Math.min( position.top, container.height() ) ); + + draggable.css(position); + self._squareDrag( event, { position: position }); + event.preventDefault(); + }); + + // allow clicking on the square to move there and keep dragging + square.mousedown( function( event ) { + var squareOffset, pos; + // only left click + if ( event.which !== 1 ) { + return; + } + + // prevent bubbling from the handle: no infinite loops + if ( ! $( event.target ).is( 'div' ) ) { + return; + } + + squareOffset = self.controls.square.offset(); + pos = { + top: event.pageY - squareOffset.top, + left: event.pageX - squareOffset.left + }; + event.preventDefault(); + self._squareDrag( event, { position: pos } ); + event.target = self.controls.squareDrag.get(0); + self.controls.squareDrag.css( pos ).trigger( event ); + }); + + // palettes + if ( self.options.palettes ) { + self._paletteListeners(); + } + }, + + _paletteListeners: function() { + var self = this; + self.picker.find('.iris-palette-container').on('click.palette', '.iris-palette', function() { + self._color.fromCSS( $(this).data('color') ); + self.active = 'external'; + self._change(); + }).on( 'keydown.palette', '.iris-palette', function( event ) { + if ( ! ( event.keyCode === 13 || event.keyCode === 32 ) ) { + return true; + } + event.stopPropagation(); + $( this ).click(); + }); + }, + + _squareDrag: function( event, ui ) { + var self = this, + controlOpts = self.options.controls, + dimensions = self._squareDimensions(), + vertVal = Math.round( ( dimensions.h - ui.position.top ) / dimensions.h * self._scale[controlOpts.vert] ), + horizVal = self._scale[controlOpts.horiz] - Math.round( ( dimensions.w - ui.position.left ) / dimensions.w * self._scale[controlOpts.horiz] ); + + self._color[controlOpts.horiz]( horizVal )[controlOpts.vert]( vertVal ); + + self.active = 'square'; + self._change.apply( self, arguments ); + }, + + _setOption: function( key, value ) { + var self = this, + oldValue = self.options[key], + doDimensions = false, + hexLessColor, + newColor, + method; + + // ensure the new value is set. We can reset to oldValue if some check wasn't met. + self.options[key] = value; + + switch(key) { + case 'color': + // cast to string in case we have a number + value = '' + value; + hexLessColor = value.replace( /^#/, '' ); + newColor = new Color( value ).setHSpace( self.options.mode ); + if ( newColor.error ) { + self.options[key] = oldValue; + } else { + self._color = newColor; + self.options.color = self.options[key] = self._color.toString(); + self.active = 'external'; + self._change(); + } + break; + case 'palettes': + doDimensions = true; + + if ( value ) { + self._addPalettes(); + } else { + self.picker.find('.iris-palette-container').remove(); + } + + // do we need to add events? + if ( ! oldValue ) { + self._paletteListeners(); + } + break; + case 'width': + doDimensions = true; + break; + case 'border': + doDimensions = true; + method = value ? 'addClass' : 'removeClass'; + self.picker[method]('iris-border'); + break; + case 'mode': + case 'controls': + // if nothing's changed, let's bail, since this causes re-rendering the whole widget + if ( oldValue === value ) { + return; + } + + // we're using these poorly named variables because they're already scoped. + // method is the element that Iris was called on. oldValue will be the options + method = self.element; + oldValue = self.options; + oldValue.hide = ! self.picker.is( ':visible' ); + self.destroy(); + self.picker.remove(); + return $(self.element).iris(oldValue); + } + + // Do we need to recalc dimensions? + if ( doDimensions ) { + self._dimensions(true); + } + }, + + _squareDimensions: function( forceRefresh ) { + var square = this.controls.square, + dimensions, + control; + + if ( forceRefresh !== undef && square.data('dimensions') ) { + return square.data('dimensions'); + } + + control = this.controls.squareDrag; + dimensions = { + w: square.width(), + h: square.height() + }; + square.data( 'dimensions', dimensions ); + return dimensions; + }, + + _isNonHueControl: function( active, type ) { + if ( active === 'square' && this.options.controls.strip === 'h' ) { + return true; + } else if ( type === 'external' || ( type === 'h' && active === 'strip' ) ) { + return false; + } + + return true; + }, + + _change: function() { + var self = this, + controls = self.controls, + color = self._getHSpaceColor(), + actions = [ 'square', 'strip' ], + controlOpts = self.options.controls, + type = controlOpts[self.active] || 'external', + oldHue = self.hue; + + if ( self.active === 'strip' ) { + // take no action on any of the square sliders if we adjusted the strip + actions = []; + } else if ( self.active !== 'external' ) { + // for non-strip, non-external, strip should never change + actions.pop(); // conveniently the last item + } + + $.each( actions, function(index, item) { + var value, dimensions, cssObj; + if ( item !== self.active ) { + switch ( item ) { + case 'strip': + // reverse for hue + value = ( controlOpts.strip === 'h' ) ? self._scale[controlOpts.strip] - color[controlOpts.strip] : color[controlOpts.strip]; + controls.stripSlider.slider( 'value', value ); + break; + case 'square': + dimensions = self._squareDimensions(); + cssObj = { + left: color[controlOpts.horiz] / self._scale[controlOpts.horiz] * dimensions.w, + top: dimensions.h - ( color[controlOpts.vert] / self._scale[controlOpts.vert] * dimensions.h ) + }; + + self.controls.squareDrag.css( cssObj ); + break; + } + } + }); + + // Ensure that we don't change hue if we triggered a hue reset + if ( color.h !== oldHue && self._isNonHueControl( self.active, type ) ) { + self._color.h(oldHue); + } + + // store hue for repeating above check next time + self.hue = self._color.h(); + + self.options.color = self._color.toString(); + + // only run after the first time + if ( self._inited ) { + self._trigger( 'change', { type: self.active }, { color: self._color } ); + } + + if ( self.element.is( ':input' ) && ! self._color.error ) { + self.element.removeClass( 'iris-error' ); + if ( self.element.val() !== self._color.toString() ) { + self.element.val( self._color.toString() ); + } + } + + self._paint(); + self._inited = true; + self.active = false; + }, + // taken from underscore.js _.debounce method + _debounce: function( func, wait, immediate ) { + var timeout, result; + return function() { + var context = this, + args = arguments, + later, + callNow; + + later = function() { + timeout = null; + if ( ! immediate) { + result = func.apply( context, args ); + } + }; + + callNow = immediate && !timeout; + clearTimeout( timeout ); + timeout = setTimeout( later, wait ); + if ( callNow ) { + result = func.apply( context, args ); + } + return result; + }; + }, + show: function() { + this.picker.show(); + }, + hide: function() { + this.picker.hide(); + }, + toggle: function() { + this.picker.toggle(); + }, + color: function(newColor) { + if ( newColor === true ) { + return this._color.clone(); + } else if ( newColor === undef ) { + return this._color.toString(); + } + this.option('color', newColor); + } + }; + // initialize the widget + $.widget( 'a8c.iris', Iris ); + // add CSS + $( '<style id="iris-css">' + _css + '</style>' ).appendTo( 'head' ); + +}( jQuery )); +/*! Color.js - v0.9.11 - 2013-08-09 +* https://github.com/Automattic/Color.js +* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */ +(function(global, undef) { + + var Color = function( color, type ) { + if ( ! ( this instanceof Color ) ) + return new Color( color, type ); + + return this._init( color, type ); + }; + + Color.fn = Color.prototype = { + _color: 0, + _alpha: 1, + error: false, + // for preserving hue/sat in fromHsl().toHsl() flows + _hsl: { h: 0, s: 0, l: 0 }, + // for preserving hue/sat in fromHsv().toHsv() flows + _hsv: { h: 0, s: 0, v: 0 }, + // for setting hsl or hsv space - needed for .h() & .s() functions to function properly + _hSpace: 'hsl', + _init: function( color ) { + var func = 'noop'; + switch ( typeof color ) { + case 'object': + // alpha? + if ( color.a !== undef ) + this.a( color.a ); + func = ( color.r !== undef ) ? 'fromRgb' : + ( color.l !== undef ) ? 'fromHsl' : + ( color.v !== undef ) ? 'fromHsv' : func; + return this[func]( color ); + case 'string': + return this.fromCSS( color ); + case 'number': + return this.fromInt( parseInt( color, 10 ) ); + } + return this; + }, + + _error: function() { + this.error = true; + return this; + }, + + clone: function() { + var newColor = new Color( this.toInt() ), + copy = ['_alpha', '_hSpace', '_hsl', '_hsv', 'error']; + for ( var i = copy.length - 1; i >= 0; i-- ) { + newColor[ copy[i] ] = this[ copy[i] ]; + } + return newColor; + }, + + setHSpace: function( space ) { + this._hSpace = ( space === 'hsv' ) ? space : 'hsl'; + return this; + }, + + noop: function() { + return this; + }, + + fromCSS: function( color ) { + var list, + leadingRE = /^(rgb|hs(l|v))a?\(/; + this.error = false; + + // whitespace and semicolon trim + color = color.replace(/^\s+/, '').replace(/\s+$/, '').replace(/;$/, ''); + + if ( color.match(leadingRE) && color.match(/\)$/) ) { + list = color.replace(/(\s|%)/g, '').replace(leadingRE, '').replace(/,?\);?$/, '').split(','); + + if ( list.length < 3 ) + return this._error(); + + if ( list.length === 4 ) { + this.a( parseFloat( list.pop() ) ); + // error state has been set to true in .a() if we passed NaN + if ( this.error ) + return this; + } + + for (var i = list.length - 1; i >= 0; i--) { + list[i] = parseInt(list[i], 10); + if ( isNaN( list[i] ) ) + return this._error(); + } + + if ( color.match(/^rgb/) ) { + return this.fromRgb( { + r: list[0], + g: list[1], + b: list[2] + } ); + } else if ( color.match(/^hsv/) ) { + return this.fromHsv( { + h: list[0], + s: list[1], + v: list[2] + } ); + } else { + return this.fromHsl( { + h: list[0], + s: list[1], + l: list[2] + } ); + } + } else { + // must be hex amirite? + return this.fromHex( color ); + } + }, + + fromRgb: function( rgb, preserve ) { + if ( typeof rgb !== 'object' || rgb.r === undef || rgb.g === undef || rgb.b === undef ) + return this._error(); + + this.error = false; + return this.fromInt( parseInt( ( rgb.r << 16 ) + ( rgb.g << 8 ) + rgb.b, 10 ), preserve ); + }, + + fromHex: function( color ) { + color = color.replace(/^#/, '').replace(/^0x/, ''); + if ( color.length === 3 ) { + color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2]; + } + + // rough error checking - this is where things go squirrely the most + this.error = ! /^[0-9A-F]{6}$/i.test( color ); + return this.fromInt( parseInt( color, 16 ) ); + }, + + fromHsl: function( hsl ) { + var r, g, b, q, p, h, s, l; + + if ( typeof hsl !== 'object' || hsl.h === undef || hsl.s === undef || hsl.l === undef ) + return this._error(); + + this._hsl = hsl; // store it + this._hSpace = 'hsl'; // implicit + h = hsl.h / 360; s = hsl.s / 100; l = hsl.l / 100; + if ( s === 0 ) { + r = g = b = l; // achromatic + } + else { + q = l < 0.5 ? l * ( 1 + s ) : l + s - l * s; + p = 2 * l - q; + r = this.hue2rgb( p, q, h + 1/3 ); + g = this.hue2rgb( p, q, h ); + b = this.hue2rgb( p, q, h - 1/3 ); + } + return this.fromRgb( { + r: r * 255, + g: g * 255, + b: b * 255 + }, true ); // true preserves hue/sat + }, + + fromHsv: function( hsv ) { + var h, s, v, r, g, b, i, f, p, q, t; + if ( typeof hsv !== 'object' || hsv.h === undef || hsv.s === undef || hsv.v === undef ) + return this._error(); + + this._hsv = hsv; // store it + this._hSpace = 'hsv'; // implicit + + h = hsv.h / 360; s = hsv.s / 100; v = hsv.v / 100; + i = Math.floor( h * 6 ); + f = h * 6 - i; + p = v * ( 1 - s ); + q = v * ( 1 - f * s ); + t = v * ( 1 - ( 1 - f ) * s ); + + switch( i % 6 ) { + case 0: + r = v; g = t; b = p; + break; + case 1: + r = q; g = v; b = p; + break; + case 2: + r = p; g = v; b = t; + break; + case 3: + r = p; g = q; b = v; + break; + case 4: + r = t; g = p; b = v; + break; + case 5: + r = v; g = p; b = q; + break; + } + + return this.fromRgb( { + r: r * 255, + g: g * 255, + b: b * 255 + }, true ); // true preserves hue/sat + + }, + // everything comes down to fromInt + fromInt: function( color, preserve ) { + this._color = parseInt( color, 10 ); + + if ( isNaN( this._color ) ) + this._color = 0; + + // let's coerce things + if ( this._color > 16777215 ) + this._color = 16777215; + else if ( this._color < 0 ) + this._color = 0; + + // let's not do weird things + if ( preserve === undef ) { + this._hsv.h = this._hsv.s = this._hsl.h = this._hsl.s = 0; + } + // EVENT GOES HERE + return this; + }, + + hue2rgb: function( p, q, t ) { + if ( t < 0 ) { + t += 1; + } + if ( t > 1 ) { + t -= 1; + } + if ( t < 1/6 ) { + return p + ( q - p ) * 6 * t; + } + if ( t < 1/2 ) { + return q; + } + if ( t < 2/3 ) { + return p + ( q - p ) * ( 2/3 - t ) * 6; + } + return p; + }, + + toString: function() { + var hex = parseInt( this._color, 10 ).toString( 16 ); + if ( this.error ) + return ''; + // maybe left pad it + if ( hex.length < 6 ) { + for (var i = 6 - hex.length - 1; i >= 0; i--) { + hex = '0' + hex; + } + } + return '#' + hex; + }, + + toCSS: function( type, alpha ) { + type = type || 'hex'; + alpha = parseFloat( alpha || this._alpha ); + switch ( type ) { + case 'rgb': + case 'rgba': + var rgb = this.toRgb(); + if ( alpha < 1 ) { + return "rgba( " + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + alpha + " )"; + } + else { + return "rgb( " + rgb.r + ", " + rgb.g + ", " + rgb.b + " )"; + } + break; + case 'hsl': + case 'hsla': + var hsl = this.toHsl(); + if ( alpha < 1 ) { + return "hsla( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "%, " + alpha + " )"; + } + else { + return "hsl( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "% )"; + } + break; + default: + return this.toString(); + } + }, + + toRgb: function() { + return { + r: 255 & ( this._color >> 16 ), + g: 255 & ( this._color >> 8 ), + b: 255 & ( this._color ) + }; + }, + + toHsl: function() { + var rgb = this.toRgb(); + var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; + var max = Math.max( r, g, b ), min = Math.min( r, g, b ); + var h, s, l = ( max + min ) / 2; + + if ( max === min ) { + h = s = 0; // achromatic + } else { + var d = max - min; + s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min ); + switch ( max ) { + case r: h = ( g - b ) / d + ( g < b ? 6 : 0 ); + break; + case g: h = ( b - r ) / d + 2; + break; + case b: h = ( r - g ) / d + 4; + break; + } + h /= 6; + } + + // maintain hue & sat if we've been manipulating things in the HSL space. + h = Math.round( h * 360 ); + if ( h === 0 && this._hsl.h !== h ) { + h = this._hsl.h; + } + s = Math.round( s * 100 ); + if ( s === 0 && this._hsl.s ) { + s = this._hsl.s; + } + + return { + h: h, + s: s, + l: Math.round( l * 100 ) + }; + + }, + + toHsv: function() { + var rgb = this.toRgb(); + var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; + var max = Math.max( r, g, b ), min = Math.min( r, g, b ); + var h, s, v = max; + var d = max - min; + s = max === 0 ? 0 : d / max; + + if ( max === min ) { + h = s = 0; // achromatic + } else { + switch( max ){ + case r: + h = ( g - b ) / d + ( g < b ? 6 : 0 ); + break; + case g: + h = ( b - r ) / d + 2; + break; + case b: + h = ( r - g ) / d + 4; + break; + } + h /= 6; + } + + // maintain hue & sat if we've been manipulating things in the HSV space. + h = Math.round( h * 360 ); + if ( h === 0 && this._hsv.h !== h ) { + h = this._hsv.h; + } + s = Math.round( s * 100 ); + if ( s === 0 && this._hsv.s ) { + s = this._hsv.s; + } + + return { + h: h, + s: s, + v: Math.round( v * 100 ) + }; + }, + + toInt: function() { + return this._color; + }, + + toIEOctoHex: function() { + // AARRBBGG + var hex = this.toString(); + var AA = parseInt( 255 * this._alpha, 10 ).toString(16); + if ( AA.length === 1 ) { + AA = '0' + AA; + } + return '#' + AA + hex.replace(/^#/, '' ); + }, + + toLuminosity: function() { + var rgb = this.toRgb(); + return 0.2126 * Math.pow( rgb.r / 255, 2.2 ) + 0.7152 * Math.pow( rgb.g / 255, 2.2 ) + 0.0722 * Math.pow( rgb.b / 255, 2.2); + }, + + getDistanceLuminosityFrom: function( color ) { + if ( ! ( color instanceof Color ) ) { + throw 'getDistanceLuminosityFrom requires a Color object'; + } + var lum1 = this.toLuminosity(); + var lum2 = color.toLuminosity(); + if ( lum1 > lum2 ) { + return ( lum1 + 0.05 ) / ( lum2 + 0.05 ); + } + else { + return ( lum2 + 0.05 ) / ( lum1 + 0.05 ); + } + }, + + getMaxContrastColor: function() { + var lum = this.toLuminosity(); + var hex = ( lum >= 0.5 ) ? '000000' : 'ffffff'; + return new Color( hex ); + }, + + getReadableContrastingColor: function( bgColor, minContrast ) { + if ( ! bgColor instanceof Color ) { + return this; + } + + // you shouldn't use less than 5, but you might want to. + var targetContrast = ( minContrast === undef ) ? 5 : minContrast; + // working things + var contrast = bgColor.getDistanceLuminosityFrom( this ); + var maxContrastColor = bgColor.getMaxContrastColor(); + var maxContrast = maxContrastColor.getDistanceLuminosityFrom( bgColor ); + + // if current max contrast is less than the target contrast, we had wishful thinking. + // still, go max + if ( maxContrast <= targetContrast ) { + return maxContrastColor; + } + // or, we might already have sufficient contrast + else if ( contrast >= targetContrast ) { + return this; + } + + var incr = ( 0 === maxContrastColor.toInt() ) ? -1 : 1; + while ( contrast < targetContrast ) { + this.l( incr, true ); // 2nd arg turns this into an incrementer + contrast = this.getDistanceLuminosityFrom( bgColor ); + // infininite loop prevention: you never know. + if ( this._color === 0 || this._color === 16777215 ) { + break; + } + } + + return this; + + }, + + a: function( val ) { + if ( val === undef ) + return this._alpha; + + var a = parseFloat( val ); + + if ( isNaN( a ) ) + return this._error(); + + this._alpha = a; + return this; + }, + + // TRANSFORMS + + darken: function( amount ) { + amount = amount || 5; + return this.l( - amount, true ); + }, + + lighten: function( amount ) { + amount = amount || 5; + return this.l( amount, true ); + }, + + saturate: function( amount ) { + amount = amount || 15; + return this.s( amount, true ); + }, + + desaturate: function( amount ) { + amount = amount || 15; + return this.s( - amount, true ); + }, + + toGrayscale: function() { + return this.setHSpace('hsl').s( 0 ); + }, + + getComplement: function() { + return this.h( 180, true ); + }, + + getSplitComplement: function( step ) { + step = step || 1; + var incr = 180 + ( step * 30 ); + return this.h( incr, true ); + }, + + getAnalog: function( step ) { + step = step || 1; + var incr = step * 30; + return this.h( incr, true ); + }, + + getTetrad: function( step ) { + step = step || 1; + var incr = step * 60; + return this.h( incr, true ); + }, + + getTriad: function( step ) { + step = step || 1; + var incr = step * 120; + return this.h( incr, true ); + }, + + _partial: function( key ) { + var prop = shortProps[key]; + return function( val, incr ) { + var color = this._spaceFunc('to', prop.space); + + // GETTER + if ( val === undef ) + return color[key]; + + // INCREMENT + if ( incr === true ) + val = color[key] + val; + + // MOD & RANGE + if ( prop.mod ) + val = val % prop.mod; + if ( prop.range ) + val = ( val < prop.range[0] ) ? prop.range[0] : ( val > prop.range[1] ) ? prop.range[1] : val; + + // NEW VALUE + color[key] = val; + + return this._spaceFunc('from', prop.space, color); + }; + }, + + _spaceFunc: function( dir, s, val ) { + var space = s || this._hSpace, + funcName = dir + space.charAt(0).toUpperCase() + space.substr(1); + return this[funcName](val); + } + }; + + var shortProps = { + h: { + mod: 360 + }, + s: { + range: [0,100] + }, + l: { + space: 'hsl', + range: [0,100] + }, + v: { + space: 'hsv', + range: [0,100] + }, + r: { + space: 'rgb', + range: [0,255] + }, + g: { + space: 'rgb', + range: [0,255] + }, + b: { + space: 'rgb', + range: [0,255] + } + }; + + for ( var key in shortProps ) { + if ( shortProps.hasOwnProperty( key ) ) + Color.fn[key] = Color.fn._partial(key); + } + + // play nicely with Node + browser + if ( typeof exports === 'object' ) + module.exports = Color; + else + global.Color = Color; + +}(this)); diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index d472c4fe7..b71e46802 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -1,6 +1,8 @@ +/* DOKUWIKI:include_once iris.js */ + jQuery(function () { // user openend the admin page, set cookie and redirect - if(jQuery('#plugin__styler').length) { + if (jQuery('#plugin__styler').length) { DokuCookie.setValue('styler_plugin', 1); document.location.href = DOKU_BASE; } @@ -22,11 +24,12 @@ jQuery(function () { $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); // open the dialog - $dialog.dialog({ + var $dlg = $dialog.dialog({ 'title': LANG.plugins.styler.menu, 'width': 500, 'top': 50, - 'position': { 'my': 'left top', 'at': 'left top', 'of': window }, + 'maxHeight': 500, + 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, // bring everything back to normal 'close': function (event, ui) { // disable the styler plugin again @@ -35,6 +38,10 @@ jQuery(function () { document.location.reload() } }); + + jQuery('.styler .color').iris({ + }); + } ); } -- GitLab From 9fb9909916c8ce7fbca17d536942c0166afe487c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 17:58:50 +0200 Subject: [PATCH 168/440] added more localization --- lib/plugins/styler/admin.php | 8 +++++++- lib/plugins/styler/lang/en/intro.txt | 4 ++-- lib/plugins/styler/lang/en/lang.php | 11 +++++++++++ lib/tpl/dokuwiki/lang/en/lang.php | 12 ++++++++++++ lib/tpl/dokuwiki/lang/en/style.txt | 4 ++++ lib/tpl/dokuwiki/pagefooter.html | 4 ++++ 6 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 lib/tpl/dokuwiki/lang/en/lang.php create mode 100644 lib/tpl/dokuwiki/lang/en/style.txt create mode 100644 lib/tpl/dokuwiki/pagefooter.html diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 8d44ac6f5..4269a0ee7 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -82,8 +82,12 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { echo '<table>'; foreach($replacements as $key => $value) { + $name = tpl_getLang($key); + if(empty($name)) $name = $this->getLang($key); + if(empty($name)) $name = $key; + echo '<tr>'; - echo '<td>'.$key.'</td>'; + echo '<td>'.$name.'</td>'; echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' />'; echo '</tr>'; } @@ -104,6 +108,8 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { echo '</form>'; + echo tpl_locale_xhtml('style'); + } } diff --git a/lib/plugins/styler/lang/en/intro.txt b/lib/plugins/styler/lang/en/intro.txt index bb9e3ff33..4ea55172f 100644 --- a/lib/plugins/styler/lang/en/intro.txt +++ b/lib/plugins/styler/lang/en/intro.txt @@ -1,2 +1,2 @@ -This tool allows you to change certain style settings of your currently selected template -all changes are stored in a local configuration file and are upgrade safe. \ No newline at end of file +This tool allows you to change certain style settings of your currently selected template. +All changes are stored in a local configuration file and are upgrade safe. \ No newline at end of file diff --git a/lib/plugins/styler/lang/en/lang.php b/lib/plugins/styler/lang/en/lang.php index 2dd7921b0..1bf8efa2c 100644 --- a/lib/plugins/styler/lang/en/lang.php +++ b/lib/plugins/styler/lang/en/lang.php @@ -16,6 +16,17 @@ $lang['btn_save'] = 'Save your changes'; $lang['btn_reset'] = 'Reset your current changes'; $lang['btn_revert'] = 'Revert all styles back to the template\'s default'; +// default guaranteed placeholders +$lang['__text__'] = 'Main text color'; +$lang['__background__'] = 'Main text background color'; +$lang['__text_alt__'] = 'Alternative text color'; +$lang['__background_alt__'] = 'Alternative text background color'; +$lang['__text_neu__'] = 'Neutral text color'; +$lang['__background_neu__'] = 'Neutral text background color'; +$lang['__border__'] = 'Border color'; +$lang['__highlight__'] = 'Highlight color (for search results mainly)'; + + //Setup VIM: ex: et ts=4 : diff --git a/lib/tpl/dokuwiki/lang/en/lang.php b/lib/tpl/dokuwiki/lang/en/lang.php new file mode 100644 index 000000000..82a720e21 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/en/lang.php @@ -0,0 +1,12 @@ +<?php + +// style.ini values + +$lang['__background_site__'] = 'Color for the very background (behind the content box)'; +$lang['__link__'] = 'The general link color'; +$lang['__existing__'] = 'The color for links to existing pages'; +$lang['__missing__'] = 'The color for links to non-existing pages'; +$lang['__site_width__'] = 'The width of the full site (can also be a percentage)'; +$lang['__sidebar_width__'] = 'The width of the sitebar if any (can also be a percentage)'; +$lang['__tablet_width__'] = 'Below screensizes of this width, the site switches to tablet mode'; +$lang['__phone_width__'] = 'Below screensizes of this width, the site switches to phone mode'; diff --git a/lib/tpl/dokuwiki/lang/en/style.txt b/lib/tpl/dokuwiki/lang/en/style.txt new file mode 100644 index 000000000..f6bb4fc6f --- /dev/null +++ b/lib/tpl/dokuwiki/lang/en/style.txt @@ -0,0 +1,4 @@ +If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' in the ''wiki'' namespace and it +will be automaticaly be used. You can also upload a ''favicon.ico'' there. If you use a closed +wiki it is recommended to make the ''wiki'' namespace world readable in the ACL settings or +your logo is not shown to not logged in users. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/pagefooter.html b/lib/tpl/dokuwiki/pagefooter.html new file mode 100644 index 000000000..a361c4d69 --- /dev/null +++ b/lib/tpl/dokuwiki/pagefooter.html @@ -0,0 +1,4 @@ +<?php + +$plg = plugin_load('action', 'feedback'); +if($plg) $plg->tpl(); -- GitLab From b1a864fe66dcf7f538e4d304cc01ea9ec736b786 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 19:45:15 +0200 Subject: [PATCH 169/440] fix keeping the current page --- lib/plugins/styler/action.php | 3 +++ lib/plugins/styler/admin.php | 1 - lib/plugins/styler/script.js | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index b63cf3ec1..35e2f8f3c 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -90,6 +90,9 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { $event->preventDefault(); $event->stopPropagation(); + global $ID; + $ID = getID(); + /** @var admin_plugin_styler $hlp */ $hlp = plugin_load('admin', 'styler'); $hlp->form(true); diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 4269a0ee7..432b22279 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -61,7 +61,6 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { public function form($isajax) { global $conf; global $ID; - $tpl = $conf['template']; define('SIMPLE_TEST', 1); // hack, ideally certain functions should be moved out of css.php require_once(DOKU_INC.'lib/exe/css.php'); $styleini = css_styleini($conf['template'], true); diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index b71e46802..1c53987a4 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -4,7 +4,7 @@ jQuery(function () { // user openend the admin page, set cookie and redirect if (jQuery('#plugin__styler').length) { DokuCookie.setValue('styler_plugin', 1); - document.location.href = DOKU_BASE; + document.location.href = document.location.href.replace(/do=admin/, ''); } // The Styler Dialog is currently enabled, display it here and apply the preview styles @@ -15,7 +15,8 @@ jQuery(function () { $dialog.load( DOKU_BASE + '/lib/exe/ajax.php', { - 'call': 'plugin_styler' + 'call': 'plugin_styler', + 'id': JSINFO.id }, function () { // load the preview template -- GitLab From a93f9a7aab0ddcc00415f5b4e0c6876751a4d4c1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 19:48:18 +0200 Subject: [PATCH 170/440] allow resizing the dialog --- lib/plugins/styler/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index 1c53987a4..79df8a88b 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -16,7 +16,7 @@ jQuery(function () { DOKU_BASE + '/lib/exe/ajax.php', { 'call': 'plugin_styler', - 'id': JSINFO.id + 'id': JSINFO.id }, function () { // load the preview template @@ -28,8 +28,8 @@ jQuery(function () { var $dlg = $dialog.dialog({ 'title': LANG.plugins.styler.menu, 'width': 500, + 'height': 500, 'top': 50, - 'maxHeight': 500, 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, // bring everything back to normal 'close': function (event, ui) { -- GitLab From d071b66c820e5b1ecc60efc27a15e113c88832af Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 17 May 2015 20:40:33 +0200 Subject: [PATCH 171/440] autopreview in styler plugin --- lib/plugins/styler/action.php | 7 +- lib/plugins/styler/admin.php | 8 +-- lib/plugins/styler/script.js | 119 +++++++++++++++++++++++----------- 3 files changed, 91 insertions(+), 43 deletions(-) diff --git a/lib/plugins/styler/action.php b/lib/plugins/styler/action.php index 35e2f8f3c..1cc712a15 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styler/action.php @@ -91,11 +91,16 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { $event->stopPropagation(); global $ID; + global $INPUT; $ID = getID(); /** @var admin_plugin_styler $hlp */ $hlp = plugin_load('admin', 'styler'); - $hlp->form(true); + if($INPUT->str('run') == 'preview') { + $hlp->run_preview(); + } else { + $hlp->form(true); + } } } diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styler/admin.php index 432b22279..a66dfbb11 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styler/admin.php @@ -87,13 +87,13 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { echo '<tr>'; echo '<td>'.$name.'</td>'; - echo '<td><input name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' />'; + echo '<td><input type="text" name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' />'; echo '</tr>'; } echo '</table>'; echo '<p class="center">'; - echo '<input type="submit" name="run[preview]" value="'.$this->getLang('btn_preview').'">'; + echo '<input type="submit" name="run[preview]" class="btn_preview" value="'.$this->getLang('btn_preview').'">'; echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'">'; #FIXME only if preview.ini exists echo '</p>'; @@ -139,9 +139,9 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } /** - * saves the preview.ini + * saves the preview.ini (alos called from ajax directly) */ - protected function run_preview() { + public function run_preview() { global $conf; $ini = $conf['cachedir'].'/preview.ini'; io_saveFile($ini, $this->makeini()); diff --git a/lib/plugins/styler/script.js b/lib/plugins/styler/script.js index 79df8a88b..a4fb601c8 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styler/script.js @@ -7,43 +7,86 @@ jQuery(function () { document.location.href = document.location.href.replace(/do=admin/, ''); } - // The Styler Dialog is currently enabled, display it here and apply the preview styles - if (DokuCookie.getValue('styler_plugin') == 1) { - // load dialog - var $dialog = jQuery(document.createElement('div')); - jQuery('body').append($dialog); - $dialog.load( - DOKU_BASE + '/lib/exe/ajax.php', - { - 'call': 'plugin_styler', - 'id': JSINFO.id - }, - function () { - // load the preview template - var now = new Date().getTime(); - var $style = jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); - - // open the dialog - var $dlg = $dialog.dialog({ - 'title': LANG.plugins.styler.menu, - 'width': 500, - 'height': 500, - 'top': 50, - 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, - // bring everything back to normal - 'close': function (event, ui) { - // disable the styler plugin again - DokuCookie.setValue('styler_plugin', 0); - // reload - document.location.reload() - } - }); - - jQuery('.styler .color').iris({ - }); - - } - ); + // continue only if the Styler Dialog is currently enabled + if (DokuCookie.getValue('styler_plugin') != 1) return; + + var styler_timeout = null; + + // create dialog element + var $dialog = jQuery(document.createElement('div')); + jQuery('body').append($dialog); + + + /** + * updates the current CSS with a new preview one + */ + function styler_updateCSS() { + var now = new Date().getTime(); + var $style = jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + } + + /** + * save current values and reload preview (debounced) + */ + function styler_saveAndUpdate() { + if (styler_timeout) window.clearTimeout(styler_timeout); + styler_timeout = window.setTimeout(function () { + styler_timeout = null; + + var params = $dialog.find('input[type=text]').serializeArray(); + params[params.length] = { name: 'call', value: 'plugin_styler'}; + params[params.length] = {name: 'run', value: 'preview'}; + + jQuery.post( + DOKU_BASE + '/lib/exe/ajax.php', + params, + styler_updateCSS + ); + }, 500); } + + // load the dialog content and apply listeners + $dialog.load( + DOKU_BASE + '/lib/exe/ajax.php', + { + 'call': 'plugin_styler', + 'run': 'html', + 'id': JSINFO.id + }, + function () { + // load the preview template + styler_updateCSS(); + + // open the dialog + $dialog.dialog({ + 'title': LANG.plugins.styler.menu, + 'width': 500, + 'height': 500, + 'top': 50, + 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, + // bring everything back to normal + 'close': function (event, ui) { + // disable the styler plugin again + DokuCookie.setValue('styler_plugin', 0); + // reload + document.location.reload() + } + }); + + // we don't need the manual preview in JS mode + $dialog.find('.btn_preview').hide(); + + // add the color picker FIXME add saveAndUpdate to correct event + $dialog.find('.color').iris({ }); + + // listen to keyup events + $dialog.find('input[type=text]').keyup(function () { + console.log('change'); + styler_saveAndUpdate(); + }); + + } + ); + }); \ No newline at end of file -- GitLab From a2237e348f84c81fd0f16da7aa55d1caeaf62a6b Mon Sep 17 00:00:00 2001 From: Noel Tilliot <noeltilliot@byom.de> Date: Mon, 18 May 2015 17:21:45 +0200 Subject: [PATCH 172/440] translation update --- inc/lang/de/lang.php | 2 +- lib/plugins/authmysql/lang/de/lang.php | 8 ++++++++ lib/plugins/extension/lang/de/lang.php | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/authmysql/lang/de/lang.php diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 7dd95eddd..f435a31bf 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -350,10 +350,10 @@ $lang['media_perm_read'] = 'Sie besitzen nicht die notwendigen Berechtigun $lang['media_perm_upload'] = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.'; $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnisse'; $lang['plainhtml'] = 'HTML Klartext'; $lang['wikimarkup'] = 'Wiki Markup'; $lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>'; $lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.'; -$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php new file mode 100644 index 000000000..6160f60ea --- /dev/null +++ b/lib/plugins/authmysql/lang/de/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Noel Tilliot <noeltilliot@byom.de> + */ +$lang['usernotexists'] = 'Sorry, dieser Nutzer existiert nicht.'; diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php index ce5495e24..ef3197513 100644 --- a/lib/plugins/extension/lang/de/lang.php +++ b/lib/plugins/extension/lang/de/lang.php @@ -8,6 +8,7 @@ * @author Simon <st103267@stud.uni-stuttgart.de> * @author Hoisl <hoisl@gmx.at> * @author Dominik Mahr <drache.mahr@gmx.de> + * @author Noel Tilliot <noeltilliot@byom.de> */ $lang['menu'] = 'Erweiterungen verwalten'; $lang['tab_plugins'] = 'Installierte Plugins'; @@ -29,6 +30,9 @@ $lang['btn_disable'] = 'Deaktivieren'; $lang['btn_install'] = 'Installieren'; $lang['btn_reinstall'] = 'Neu installieren'; $lang['js']['reallydel'] = 'Wollen Sie diese Erweiterung wirklich löschen?'; +$lang['js']['display_viewoptions'] = 'Optionen anzeigen'; +$lang['js']['display_enabled'] = 'aktiviert'; +$lang['js']['display_disabled'] = 'deaktiviert'; $lang['search_for'] = 'Erweiterung suchen:'; $lang['search'] = 'Suchen'; $lang['extensionby'] = '<strong>%s</strong> von %s'; -- GitLab From f266a91942e3eb7558afe54062c5e6a7bbcdf9ee Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Mon, 18 May 2015 20:31:04 +0100 Subject: [PATCH 173/440] Ensure filtering only removes empty string values (not other values which PHP evaluates to false) --- inc/confutils.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inc/confutils.php b/inc/confutils.php index 7d7c043fa..e3805d74e 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -63,7 +63,7 @@ function getAcronyms() { static $acronyms = null; if ( !$acronyms ) { $acronyms = retrieveConfig('acronyms','confToHash'); - $acronyms = array_filter($acronyms); + $acronyms = array_filter($acronyms, 'strlen'); } return $acronyms; } @@ -77,7 +77,7 @@ function getSmileys() { static $smileys = null; if ( !$smileys ) { $smileys = retrieveConfig('smileys','confToHash'); - $smileys = array_filter($smileys); + $smileys = array_filter($smileys, 'strlen'); } return $smileys; } @@ -91,7 +91,7 @@ function getEntities() { static $entities = null; if ( !$entities ) { $entities = retrieveConfig('entities','confToHash'); - $entities = array_filter($entities); + $entities = array_filter($entities, 'strlen'); } return $entities; } @@ -105,7 +105,7 @@ function getInterwiki() { static $wikis = null; if ( !$wikis ) { $wikis = retrieveConfig('interwiki','confToHash',array(true)); - $wikis = array_filter($wikis); + $wikis = array_filter($wikis, 'strlen'); //add sepecial case 'this' $wikis['this'] = DOKU_URL.'{NAME}'; -- GitLab From 3a7669bd1068f34022db08228baeefae2b27d05b Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Mon, 18 May 2015 20:32:49 +0100 Subject: [PATCH 174/440] Ensure single value negation is not affected by white space differences --- inc/confutils.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/confutils.php b/inc/confutils.php index e3805d74e..c587bed4d 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -365,12 +365,12 @@ function conf_decodeString($str) { function array_merge_with_removal($current, $new) { foreach ($new as $val) { if (substr($val,0,1) == '!') { - $idx = array_search(substr($val,1),$current); + $idx = array_search(trim(substr($val,1)),$current); if ($idx !== false) { unset($current[$idx]); } } else { - $current[] = $val; + $current[] = trim($val); } } -- GitLab From 10b38f10e6ce99d01c6ca30bcd9992699d6ee049 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Mon, 18 May 2015 20:34:47 +0100 Subject: [PATCH 175/440] Define the negation character in a constant --- inc/confutils.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/inc/confutils.php b/inc/confutils.php index c587bed4d..4035d6dd4 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -6,6 +6,12 @@ * @author Harry Fuecks <hfuecks@gmail.com> */ +/* + * line prefix used to negate single value config items + * (scheme.conf & stopwords.conf), e.g. + * !gopher + */ +const DOKU_CONF_NEGATION = '!'; /** * Returns the (known) extension and mimetype of a given filename @@ -364,7 +370,7 @@ function conf_decodeString($str) { */ function array_merge_with_removal($current, $new) { foreach ($new as $val) { - if (substr($val,0,1) == '!') { + if (substr($val,0,1) == DOKU_CONF_NEGATION) { $idx = array_search(trim(substr($val,1)),$current); if ($idx !== false) { unset($current[$idx]); -- GitLab From d242ec8cf4d02610bd45b1f52dec36549d3c7e43 Mon Sep 17 00:00:00 2001 From: Tomas Darius Davainis <tomasdd@gmail.com> Date: Fri, 22 May 2015 07:06:06 +0200 Subject: [PATCH 176/440] translation update --- inc/lang/lt/lang.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index 80ffb8a10..a9eb05260 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Linas Valiukas <shirshegsm@gmail.com> * @author Edmondas Girkantas <eg@zemaitija.net> * @author ArÅ«nas VaitekÅ«nas <aras@fan.lt> @@ -160,7 +160,6 @@ $lang['qb_media'] = 'PaveikslÄ—liai ir kitos bylos'; $lang['qb_sig'] = 'Ä®terpti paraÅ¡Ä…'; $lang['qb_smileys'] = 'Å ypsenÄ—lÄ—s'; $lang['qb_chars'] = 'SpecialÅ«s simboliai'; -$lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įraÅ¡Ä…(us)?'; $lang['metaedit'] = 'Redaguoti metaduomenis'; $lang['metasaveerr'] = 'Nepavyko iÅ¡saugoti metaduomenų'; $lang['metasaveok'] = 'Metaduomenys iÅ¡saugoti'; -- GitLab From bdca103af13cf846a195328c69264d3ec632056b Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 22 May 2015 14:39:25 +0200 Subject: [PATCH 177/440] avoid accessing nonexistant array key. fixes #1165 --- inc/html.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 2564c3bd6..2f10e3c08 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1409,7 +1409,13 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) { // last timestamp is not in changelog, retrieve timestamp from metadata // note: when page is removed, the metadata timestamp is zero - $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; + if(!$r_rev) { + if(isset($INFO['meta']['last_change']['date'])) { + $r_rev = $INFO['meta']['last_change']['date']; + } else { + $r_rev = 0; + } + } //retrieve revisions with additional info list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev); -- GitLab From 123bc813fd93ab5d8dab3cc4a66a09e613a10aa2 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 23 May 2015 15:29:33 +0200 Subject: [PATCH 178/440] renamed plugin from styler to styling styler was already taken --- lib/plugins/{styler => styling}/.travis.yml | 2 +- lib/plugins/{styler => styling}/README | 6 +-- .../_test/general.test.php | 8 ++-- lib/plugins/{styler => styling}/action.php | 20 +++++----- lib/plugins/{styler => styling}/admin.php | 16 ++++---- lib/plugins/{styler => styling}/iris.js | 0 .../{styler => styling}/lang/en/intro.txt | 0 .../{styler => styling}/lang/en/lang.php | 2 +- .../{styler => styling}/plugin.info.txt | 6 +-- lib/plugins/{styler => styling}/script.js | 38 +++++++++---------- 10 files changed, 49 insertions(+), 49 deletions(-) rename lib/plugins/{styler => styling}/.travis.yml (79%) rename lib/plugins/{styler => styling}/README (86%) rename lib/plugins/{styler => styling}/_test/general.test.php (83%) rename lib/plugins/{styler => styling}/action.php (85%) rename lib/plugins/{styler => styling}/admin.php (93%) rename lib/plugins/{styler => styling}/iris.js (100%) rename lib/plugins/{styler => styling}/lang/en/intro.txt (100%) rename lib/plugins/{styler => styling}/lang/en/lang.php (95%) rename lib/plugins/{styler => styling}/plugin.info.txt (56%) rename lib/plugins/{styler => styling}/script.js (72%) diff --git a/lib/plugins/styler/.travis.yml b/lib/plugins/styling/.travis.yml similarity index 79% rename from lib/plugins/styler/.travis.yml rename to lib/plugins/styling/.travis.yml index d80c0691f..75ee0b152 100644 --- a/lib/plugins/styler/.travis.yml +++ b/lib/plugins/styling/.travis.yml @@ -10,4 +10,4 @@ env: - DOKUWIKI=stable before_install: wget https://raw.github.com/splitbrain/dokuwiki-travis/master/travis.sh install: sh travis.sh -script: cd _test && phpunit --stderr --group plugin_styler \ No newline at end of file +script: cd _test && phpunit --stderr --group plugin_styling diff --git a/lib/plugins/styler/README b/lib/plugins/styling/README similarity index 86% rename from lib/plugins/styler/README rename to lib/plugins/styling/README index 37a966352..a1a5e890c 100644 --- a/lib/plugins/styler/README +++ b/lib/plugins/styling/README @@ -1,12 +1,12 @@ -styler Plugin for DokuWiki +styling Plugin for DokuWiki Allows to edit style.ini replacements All documentation for this plugin can be found at -https://www.dokuwiki.org/plugin:styler +https://www.dokuwiki.org/plugin:styling If you install this plugin manually, make sure it is installed in -lib/plugins/styler/ - if the folder is called different it +lib/plugins/styling/ - if the folder is called different it will not work! Please refer to http://www.dokuwiki.org/plugins for additional info diff --git a/lib/plugins/styler/_test/general.test.php b/lib/plugins/styling/_test/general.test.php similarity index 83% rename from lib/plugins/styler/_test/general.test.php rename to lib/plugins/styling/_test/general.test.php index 8b0712a20..1337f6f75 100644 --- a/lib/plugins/styler/_test/general.test.php +++ b/lib/plugins/styling/_test/general.test.php @@ -1,11 +1,11 @@ <?php /** - * General tests for the styler plugin + * General tests for the styling plugin * - * @group plugin_styler + * @group plugin_styling * @group plugins */ -class general_plugin_styler_test extends DokuWikiTest { +class general_plugin_styling_test extends DokuWikiTest { /** * Simple test to make sure the plugin.info.txt is in correct format @@ -24,7 +24,7 @@ class general_plugin_styler_test extends DokuWikiTest { $this->assertArrayHasKey('desc', $info); $this->assertArrayHasKey('url', $info); - $this->assertEquals('styler', $info['base']); + $this->assertEquals('styling', $info['base']); $this->assertRegExp('/^https?:\/\//', $info['url']); $this->assertTrue(mail_isvalid($info['email'])); $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); diff --git a/lib/plugins/styler/action.php b/lib/plugins/styling/action.php similarity index 85% rename from lib/plugins/styler/action.php rename to lib/plugins/styling/action.php index 1cc712a15..622c634d6 100644 --- a/lib/plugins/styler/action.php +++ b/lib/plugins/styling/action.php @@ -1,6 +1,6 @@ <?php /** - * DokuWiki Plugin styler (Action Component) + * DokuWiki Plugin styling (Action Component) * * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html * @author Andreas Gohr <andi@splitbrain.org> @@ -10,14 +10,14 @@ if(!defined('DOKU_INC')) die(); /** - * Class action_plugin_styler + * Class action_plugin_styling * * This handles all the save actions and loading the interface * * All this usually would be done within an admin plugin, but we want to have this available outside * the admin interface using our floating dialog. */ -class action_plugin_styler extends DokuWiki_Action_Plugin { +class action_plugin_styling extends DokuWiki_Action_Plugin { /** * Registers a callback functions @@ -42,7 +42,7 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { public function handle_header(Doku_Event &$event, $param) { global $ACT; global $INPUT; - if($ACT != 'admin' || $INPUT->str('page') != 'styler') return; + if($ACT != 'admin' || $INPUT->str('page') != 'styling') return; if(!auth_isadmin()) return; // set preview @@ -66,12 +66,12 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { * @return void */ public function handle_action(Doku_Event &$event, $param) { - if($event->data != 'styler_plugin') return; + if($event->data != 'styling_plugin') return; if(!auth_isadmin()) return; $event->data = 'show'; - /** @var admin_plugin_styler $hlp */ - $hlp = plugin_load('admin', 'styler'); + /** @var admin_plugin_styling $hlp */ + $hlp = plugin_load('admin', 'styling'); $hlp->handle(); } @@ -85,7 +85,7 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { */ public function handle_ajax(Doku_Event &$event, $param) { - if($event->data != 'plugin_styler') return; + if($event->data != 'plugin_styling') return; if(!auth_isadmin()) return; $event->preventDefault(); $event->stopPropagation(); @@ -94,8 +94,8 @@ class action_plugin_styler extends DokuWiki_Action_Plugin { global $INPUT; $ID = getID(); - /** @var admin_plugin_styler $hlp */ - $hlp = plugin_load('admin', 'styler'); + /** @var admin_plugin_styling $hlp */ + $hlp = plugin_load('admin', 'styling'); if($INPUT->str('run') == 'preview') { $hlp->run_preview(); } else { diff --git a/lib/plugins/styler/admin.php b/lib/plugins/styling/admin.php similarity index 93% rename from lib/plugins/styler/admin.php rename to lib/plugins/styling/admin.php index a66dfbb11..85d87dd71 100644 --- a/lib/plugins/styler/admin.php +++ b/lib/plugins/styling/admin.php @@ -1,6 +1,6 @@ <?php /** - * DokuWiki Plugin styler (Admin Component) + * DokuWiki Plugin styling (Admin Component) * * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html * @author Andreas Gohr <andi@splitbrain.org> @@ -9,7 +9,7 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -class admin_plugin_styler extends DokuWiki_Admin_Plugin { +class admin_plugin_styling extends DokuWiki_Admin_Plugin { /** * @return int sort number in admin menu @@ -49,7 +49,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { * Render HTML output, e.g. helpful text and a form */ public function html() { - echo '<div id="plugin__styler">'; + echo '<div id="plugin__styling">'; ptln('<h1>'.$this->getMenuText('').'</h1>'); $this->form(false); echo '</div>'; @@ -67,9 +67,9 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { $replacements = $styleini['replacements']; if($isajax) { - $target = wl($ID, array('do' => 'styler_plugin')); + $target = wl($ID, array('do' => 'styling_plugin')); } else { - $target = wl($ID, array('do' => 'admin', 'page' => 'styler')); + $target = wl($ID, array('do' => 'admin', 'page' => 'styling')); } if(empty($replacements)) { @@ -77,7 +77,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } else { echo $this->locale_xhtml('intro'); - echo '<form class="styler" method="post" action="'.$target.'">'; + echo '<form class="styling" method="post" action="'.$target.'">'; echo '<table>'; foreach($replacements as $key => $value) { @@ -181,7 +181,7 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { global $INPUT; $ini = "[replacements]\n"; - $ini .= ";These overwrites have been generated from the Template Styler Admin interface\n"; + $ini .= ";These overwrites have been generated from the Template styling Admin interface\n"; $ini .= ";Any values in this section will be overwritten by that tool again\n"; foreach($INPUT->arr('tpl') as $key => $val) { $ini .= $key.' = "'.addslashes($val).'"'."\n"; @@ -212,4 +212,4 @@ class admin_plugin_styler extends DokuWiki_Admin_Plugin { } -// vim:ts=4:sw=4:et: \ No newline at end of file +// vim:ts=4:sw=4:et: diff --git a/lib/plugins/styler/iris.js b/lib/plugins/styling/iris.js similarity index 100% rename from lib/plugins/styler/iris.js rename to lib/plugins/styling/iris.js diff --git a/lib/plugins/styler/lang/en/intro.txt b/lib/plugins/styling/lang/en/intro.txt similarity index 100% rename from lib/plugins/styler/lang/en/intro.txt rename to lib/plugins/styling/lang/en/intro.txt diff --git a/lib/plugins/styler/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php similarity index 95% rename from lib/plugins/styler/lang/en/lang.php rename to lib/plugins/styling/lang/en/lang.php index 1bf8efa2c..a68464f15 100644 --- a/lib/plugins/styler/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -1,6 +1,6 @@ <?php /** - * English language file for styler plugin + * English language file for styling plugin * * @author Andreas Gohr <andi@splitbrain.org> */ diff --git a/lib/plugins/styler/plugin.info.txt b/lib/plugins/styling/plugin.info.txt similarity index 56% rename from lib/plugins/styler/plugin.info.txt rename to lib/plugins/styling/plugin.info.txt index 51f2f72f6..cdf01ee6f 100644 --- a/lib/plugins/styler/plugin.info.txt +++ b/lib/plugins/styling/plugin.info.txt @@ -1,7 +1,7 @@ -base styler +base styling author Andreas Gohr email andi@splitbrain.org date 2015-05-16 -name styler plugin +name styling plugin desc Allows to edit style.ini replacements -url https://www.dokuwiki.org/plugin:styler +url https://www.dokuwiki.org/plugin:styling diff --git a/lib/plugins/styler/script.js b/lib/plugins/styling/script.js similarity index 72% rename from lib/plugins/styler/script.js rename to lib/plugins/styling/script.js index a4fb601c8..76cd1a847 100644 --- a/lib/plugins/styler/script.js +++ b/lib/plugins/styling/script.js @@ -2,15 +2,15 @@ jQuery(function () { // user openend the admin page, set cookie and redirect - if (jQuery('#plugin__styler').length) { - DokuCookie.setValue('styler_plugin', 1); + if (jQuery('#plugin__styling').length) { + DokuCookie.setValue('styling_plugin', 1); document.location.href = document.location.href.replace(/do=admin/, ''); } - // continue only if the Styler Dialog is currently enabled - if (DokuCookie.getValue('styler_plugin') != 1) return; + // continue only if the styling Dialog is currently enabled + if (DokuCookie.getValue('styling_plugin') != 1) return; - var styler_timeout = null; + var styling_timeout = null; // create dialog element var $dialog = jQuery(document.createElement('div')); @@ -20,7 +20,7 @@ jQuery(function () { /** * updates the current CSS with a new preview one */ - function styler_updateCSS() { + function styling_updateCSS() { var now = new Date().getTime(); var $style = jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); @@ -29,19 +29,19 @@ jQuery(function () { /** * save current values and reload preview (debounced) */ - function styler_saveAndUpdate() { - if (styler_timeout) window.clearTimeout(styler_timeout); - styler_timeout = window.setTimeout(function () { - styler_timeout = null; + function styling_saveAndUpdate() { + if (styling_timeout) window.clearTimeout(styling_timeout); + styling_timeout = window.setTimeout(function () { + styling_timeout = null; var params = $dialog.find('input[type=text]').serializeArray(); - params[params.length] = { name: 'call', value: 'plugin_styler'}; + params[params.length] = { name: 'call', value: 'plugin_styling'}; params[params.length] = {name: 'run', value: 'preview'}; jQuery.post( DOKU_BASE + '/lib/exe/ajax.php', params, - styler_updateCSS + styling_updateCSS ); }, 500); } @@ -50,25 +50,25 @@ jQuery(function () { $dialog.load( DOKU_BASE + '/lib/exe/ajax.php', { - 'call': 'plugin_styler', + 'call': 'plugin_styling', 'run': 'html', 'id': JSINFO.id }, function () { // load the preview template - styler_updateCSS(); + styling_updateCSS(); // open the dialog $dialog.dialog({ - 'title': LANG.plugins.styler.menu, + 'title': LANG.plugins.styling.menu, 'width': 500, 'height': 500, 'top': 50, 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, // bring everything back to normal 'close': function (event, ui) { - // disable the styler plugin again - DokuCookie.setValue('styler_plugin', 0); + // disable the styling plugin again + DokuCookie.setValue('styling_plugin', 0); // reload document.location.reload() } @@ -83,10 +83,10 @@ jQuery(function () { // listen to keyup events $dialog.find('input[type=text]').keyup(function () { console.log('change'); - styler_saveAndUpdate(); + styling_saveAndUpdate(); }); } ); -}); \ No newline at end of file +}); -- GitLab From 4f2e8bf8642a993a0a5edf32a3172eaf77645a25 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 23 May 2015 15:31:16 +0200 Subject: [PATCH 179/440] fixed ajax endpoint for styling plugin --- lib/plugins/styling/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 76cd1a847..f2b4b9ebb 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -39,7 +39,7 @@ jQuery(function () { params[params.length] = {name: 'run', value: 'preview'}; jQuery.post( - DOKU_BASE + '/lib/exe/ajax.php', + DOKU_BASE + 'lib/exe/ajax.php', params, styling_updateCSS ); @@ -48,7 +48,7 @@ jQuery(function () { // load the dialog content and apply listeners $dialog.load( - DOKU_BASE + '/lib/exe/ajax.php', + DOKU_BASE + 'lib/exe/ajax.php', { 'call': 'plugin_styling', 'run': 'html', -- GitLab From 49f111354ae7007893e877ceaeaed0dd3367e8f2 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 23 May 2015 15:32:35 +0200 Subject: [PATCH 180/440] avoid double ampersand in url --- lib/plugins/styling/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index f2b4b9ebb..caedc7a1c 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -4,7 +4,7 @@ jQuery(function () { // user openend the admin page, set cookie and redirect if (jQuery('#plugin__styling').length) { DokuCookie.setValue('styling_plugin', 1); - document.location.href = document.location.href.replace(/do=admin/, ''); + document.location.href = document.location.href.replace(/&?do=admin/, ''); } // continue only if the styling Dialog is currently enabled -- GitLab From e4632ba4cca90438b3d47594f217a9ed18b980be Mon Sep 17 00:00:00 2001 From: Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.com> Date: Sat, 23 May 2015 15:37:05 +0000 Subject: [PATCH 181/440] Scrutinizer Auto-Fixes This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com --- lib/plugins/styling/admin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index 85d87dd71..ab8e5a5f4 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -57,6 +57,7 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { /** * Create the actual editing form + * @param boolean $isajax */ public function form($isajax) { global $conf; -- GitLab From 23a5593c5cae9f85a8821c0207d9e8ad2b6f3b15 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Mon, 25 May 2015 00:54:20 +0100 Subject: [PATCH 182/440] improved copy for styler plugin --- lib/plugins/styling/lang/en/lang.php | 6 +++--- lib/tpl/dokuwiki/lang/en/lang.php | 4 ++-- lib/tpl/dokuwiki/lang/en/style.txt | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index a68464f15..e50c6b912 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -18,11 +18,11 @@ $lang['btn_revert'] = 'Revert all styles back to the template\'s default'; // default guaranteed placeholders $lang['__text__'] = 'Main text color'; -$lang['__background__'] = 'Main text background color'; +$lang['__background__'] = 'Main background color'; $lang['__text_alt__'] = 'Alternative text color'; -$lang['__background_alt__'] = 'Alternative text background color'; +$lang['__background_alt__'] = 'Alternative background color'; $lang['__text_neu__'] = 'Neutral text color'; -$lang['__background_neu__'] = 'Neutral text background color'; +$lang['__background_neu__'] = 'Neutral background color'; $lang['__border__'] = 'Border color'; $lang['__highlight__'] = 'Highlight color (for search results mainly)'; diff --git a/lib/tpl/dokuwiki/lang/en/lang.php b/lib/tpl/dokuwiki/lang/en/lang.php index 82a720e21..b7b3e7fa1 100644 --- a/lib/tpl/dokuwiki/lang/en/lang.php +++ b/lib/tpl/dokuwiki/lang/en/lang.php @@ -6,7 +6,7 @@ $lang['__background_site__'] = 'Color for the very background (behind the conten $lang['__link__'] = 'The general link color'; $lang['__existing__'] = 'The color for links to existing pages'; $lang['__missing__'] = 'The color for links to non-existing pages'; -$lang['__site_width__'] = 'The width of the full site (can also be a percentage)'; -$lang['__sidebar_width__'] = 'The width of the sitebar if any (can also be a percentage)'; +$lang['__site_width__'] = 'The width of the full site (can be any length unit: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'The width of the sidebar, if any (can be any length unit: %, px, em, ...)'; $lang['__tablet_width__'] = 'Below screensizes of this width, the site switches to tablet mode'; $lang['__phone_width__'] = 'Below screensizes of this width, the site switches to phone mode'; diff --git a/lib/tpl/dokuwiki/lang/en/style.txt b/lib/tpl/dokuwiki/lang/en/style.txt index f6bb4fc6f..7bf3e1a82 100644 --- a/lib/tpl/dokuwiki/lang/en/style.txt +++ b/lib/tpl/dokuwiki/lang/en/style.txt @@ -1,4 +1,4 @@ -If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' in the ''wiki'' namespace and it -will be automaticaly be used. You can also upload a ''favicon.ico'' there. If you use a closed -wiki it is recommended to make the ''wiki'' namespace world readable in the ACL settings or -your logo is not shown to not logged in users. \ No newline at end of file +If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' into the ''wiki'' or the root namespace and it +will be automatically used. You can also upload a ''favicon.ico'' there. If you use a closed +wiki it is recommended to make the ''wiki'' (or root) namespace world readable in the ACL settings or +your logo is not shown to not logged in users. -- GitLab From 8b3eb08dfe10f165913eb8823bc517a3c2ca1d59 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 25 May 2015 09:57:02 +0200 Subject: [PATCH 183/440] adjusted gitignore for adjusted plugin name --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index cf1a37300..dd5c9cf18 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,7 @@ !/lib/plugins/popularity !/lib/plugins/revert !/lib/plugins/safefnrecode -!/lib/plugins/styler +!/lib/plugins/styling !/lib/plugins/testing !/lib/plugins/usermanager !/lib/plugins/action.php -- GitLab From 418cb6171fc2d6d04a505e28c123b22c384db8c5 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 25 May 2015 09:58:54 +0200 Subject: [PATCH 184/440] removed unused class --- lib/plugins/styling/admin.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index ab8e5a5f4..3c2ab577c 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -93,16 +93,16 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { } echo '</table>'; - echo '<p class="center">'; + echo '<p>'; echo '<input type="submit" name="run[preview]" class="btn_preview" value="'.$this->getLang('btn_preview').'">'; echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'">'; #FIXME only if preview.ini exists echo '</p>'; - echo '<p class="center">'; + echo '<p>'; echo '<input type="submit" name="run[save]" value="'.$this->getLang('btn_save').'">'; echo '</p>'; - echo '<p class="center">'; + echo '<p>'; echo '<input type="submit" name="run[revert]" value="'.$this->getLang('btn_revert').'">'; #FIXME only if local.ini exists echo '</p>'; -- GitLab From f969573b0f1e999e5252c3671da9a8b6ac0bbd38 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 25 May 2015 10:00:10 +0200 Subject: [PATCH 185/440] removed debuggin output --- lib/plugins/styling/script.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index caedc7a1c..7c8ffae91 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -82,7 +82,6 @@ jQuery(function () { // listen to keyup events $dialog.find('input[type=text]').keyup(function () { - console.log('change'); styling_saveAndUpdate(); }); -- GitLab From 5114259bf530b89afbb21bd693b1da3f96016b7f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 25 May 2015 10:00:47 +0200 Subject: [PATCH 186/440] removed accidental checkin --- lib/tpl/dokuwiki/pagefooter.html | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 lib/tpl/dokuwiki/pagefooter.html diff --git a/lib/tpl/dokuwiki/pagefooter.html b/lib/tpl/dokuwiki/pagefooter.html deleted file mode 100644 index a361c4d69..000000000 --- a/lib/tpl/dokuwiki/pagefooter.html +++ /dev/null @@ -1,4 +0,0 @@ -<?php - -$plg = plugin_load('action', 'feedback'); -if($plg) $plg->tpl(); -- GitLab From 18f4ec973d8b711f6687adb71ce03e77e5ab1f41 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 25 May 2015 10:41:49 +0200 Subject: [PATCH 187/440] fixed isBundled() check when remote info is unavailable --- lib/plugins/extension/helper/extension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php index d089245b5..719249fbe 100644 --- a/lib/plugins/extension/helper/extension.php +++ b/lib/plugins/extension/helper/extension.php @@ -105,7 +105,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { */ public function isBundled() { if (!empty($this->remoteInfo['bundled'])) return $this->remoteInfo['bundled']; - return in_array($this->base, + return in_array($this->id, array( 'authad', 'authldap', 'authmysql', 'authpgsql', 'authplain', 'acl', 'info', 'extension', 'revert', 'popularity', 'config', 'safefnrecode', 'testing', 'template:dokuwiki' -- GitLab From 5875e534bcbccf90fe3767fc77d8ea2a76aad9bd Mon Sep 17 00:00:00 2001 From: Guillaume Turri <guillaume.turri@gmail.com> Date: Fri, 15 May 2015 15:49:11 +0200 Subject: [PATCH 188/440] Plugins can send usage data They just need to register to the PLUGIN_USAGE_DATA event, and then to add either a simple string, or an array of key / value. For example: function register(Doku_Event_Handler $controller) { $controller->register_hook('PLUGIN_USAGE_DATA', 'AFTER', $this, 'usage_data'); } function usage_data(&$event){ $event->data['my_plugin_name'] = 'my usage data'; //or: $event->data['my_plugin_name'] = array ('k1' => 'v1', 'k2' => 'v2'); } --- lib/plugins/popularity/helper.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php index 8673fb5af..55264010f 100644 --- a/lib/plugins/popularity/helper.php +++ b/lib/plugins/popularity/helper.php @@ -253,9 +253,26 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { $data['php_exectime'] = $phptime; $data['php_extension'] = get_loaded_extensions(); + // plugin usage data + $this->_add_plugin_usage_data($data); + return $data; } + protected function _add_plugin_usage_data(&$data){ + $pluginsData = array(); + trigger_event('PLUGIN_POPULARITY_DATA_SETUP', $pluginsData); + foreach($pluginsData as $plugin => $d){ + if ( is_array($d) ) { + foreach($d as $key => $value){ + $data['plugin_' . $plugin . '_' . $key] = $value; + } + } else { + $data['plugin_' . $plugin] = $d; + } + } + } + /** * Callback to search and count the content of directories in DokuWiki * -- GitLab From edc61c3ad8e143dbc6aaf62829b2241e6393606e Mon Sep 17 00:00:00 2001 From: Ikuo Obataya <i.obataya@gmail.com> Date: Thu, 28 May 2015 03:36:03 +0200 Subject: [PATCH 189/440] translation update --- inc/lang/ja/lang.php | 3 +++ lib/plugins/authad/lang/ja/lang.php | 3 +++ lib/plugins/authldap/lang/ja/settings.php | 1 + lib/plugins/extension/lang/ja/lang.php | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 67a69c3de..290bb175b 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -77,6 +77,7 @@ $lang['regmissing'] = 'å…¨ã¦ã®é …目を入力ã—ã¦ãã ã•ã„。' $lang['reguexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; $lang['regsuccess'] = 'æ–°ã—ã„ユーザーãŒä½œæˆã•ã‚Œã¾ã—ãŸã€‚パスワードã¯ç™»éŒ²ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹å®›ã¦ã«é€ä»˜ã•ã‚Œã¾ã™ã€‚'; $lang['regsuccess2'] = 'æ–°ã—ã„ユーザーãŒä½œæˆã•ã‚Œã¾ã—ãŸã€‚'; +$lang['regfail'] = 'ユーザーを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['regmailfail'] = 'パスワードã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ãŠæ‰‹æ•°ã§ã™ãŒç®¡ç†è€…ã¾ã§é€£çµ¡ã‚’ãŠé¡˜ã„ã—ã¾ã™ã€‚'; $lang['regbadmail'] = 'メールアドレスãŒæœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“。'; $lang['regbadpass'] = '確èªç”¨ã®ãƒ‘スワードãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“。'; @@ -91,6 +92,7 @@ $lang['profdeleteuser'] = 'アカウントã®å‰Šé™¤'; $lang['profdeleted'] = 'ã“ã®wikiã‹ã‚‰ã‚ãªãŸã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯å‰Šé™¤æ¸ˆã§ã™ã€‚'; $lang['profconfdelete'] = 'ã“ã®wikiã‹ã‚‰è‡ªåˆ†ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæŠ¹æ¶ˆã‚’希望ã—ã¾ã™ã€‚<br/> ã“ã®æ“作ã¯å–消ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。'; $lang['profconfdeletemissing'] = '確èªã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。'; +$lang['proffail'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã¯æ›´æ–°ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['pwdforget'] = 'パスワードをãŠå¿˜ã‚Œã§ã™ã‹ï¼Ÿãƒ‘スワードå†ç™ºè¡Œ'; $lang['resendna'] = 'パスワードã®å†ç™ºè¡Œã¯å‡ºæ¥ã¾ã›ã‚“。'; $lang['resendpwd'] = 'æ–°ã—ã„パスワードをセット'; @@ -336,6 +338,7 @@ $lang['media_perm_read'] = 'ファイルを閲覧ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ $lang['media_perm_upload'] = 'ファイルをアップãƒãƒ¼ãƒ‰ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。'; $lang['media_update'] = 'æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’アップãƒãƒ¼ãƒ‰'; $lang['media_restore'] = 'ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元'; +$lang['media_acl_warning'] = 'ACL制é™ã‚„éžè¡¨ç¤ºãƒšãƒ¼ã‚¸ã¯è¡¨ç¤ºã•ã‚Œãªã„ã®ã§ã€ã“ã®ãƒªã‚¹ãƒˆã¯å®Œå…¨ã§ãªã„å ´åˆãŒã‚ã‚Šã¾ã™ã€‚'; $lang['currentns'] = 'ç¾åœ¨ã®åå‰ç©ºé–“'; $lang['searchresult'] = '検索çµæžœ'; $lang['plainhtml'] = 'プレーンHTML'; diff --git a/lib/plugins/authad/lang/ja/lang.php b/lib/plugins/authad/lang/ja/lang.php index 91c4f046a..e82ca3791 100644 --- a/lib/plugins/authad/lang/ja/lang.php +++ b/lib/plugins/authad/lang/ja/lang.php @@ -5,6 +5,9 @@ * * @author PzF_X <jp_minecraft@yahoo.co.jp> * @author Osaka <mr.osaka@gmail.com> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['domain'] = 'ãƒã‚°ã‚ªãƒ³æ™‚ã®ãƒ‰ãƒ¡ã‚¤ãƒ³'; $lang['authpwdexpire'] = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。'; +$lang['passchangefail'] = 'パスワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚パスワードã®ãƒ«ãƒ¼ãƒ«ã«åˆã‚ãªã‹ã£ãŸã®ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。'; +$lang['connectfail'] = 'Active Directoryサーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index 6cff0ea67..717b5a6d9 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -7,6 +7,7 @@ * @author Hideaki SAWADA <sawadakun@live.jp> * @author Hideaki SAWADA <chuno@live.jp> * @author PzF_X <jp_minecraft@yahoo.co.jp> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['server'] = 'LDAPサーãƒãƒ¼ã€‚ホストå(<code>localhost</code>)åˆã¯å®Œå…¨ä¿®é£¾URL(<code>ldap://server.tld:389</code>)'; $lang['port'] = '上記ãŒå®Œå…¨ä¿®é£¾URLã§ãªã„å ´åˆã€LDAPサーãƒãƒ¼ãƒãƒ¼ãƒˆ'; diff --git a/lib/plugins/extension/lang/ja/lang.php b/lib/plugins/extension/lang/ja/lang.php index ce6ed2b97..42334c767 100644 --- a/lib/plugins/extension/lang/ja/lang.php +++ b/lib/plugins/extension/lang/ja/lang.php @@ -6,6 +6,7 @@ * @author Hideaki SAWADA <chuno@live.jp> * @author PzF_X <jp_minecraft@yahoo.co.jp> * @author Satoshi Sahara <sahara.satoshi@gmail.com> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['menu'] = '拡張機能管ç†'; $lang['tab_plugins'] = 'インストール済プラグイン'; @@ -27,6 +28,9 @@ $lang['btn_disable'] = '無効化'; $lang['btn_install'] = 'インストール'; $lang['btn_reinstall'] = 'å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«'; $lang['js']['reallydel'] = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã‚’本当ã«ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã‹ï¼Ÿ'; +$lang['js']['display_enabled'] = '有効'; +$lang['js']['display_disabled'] = '無効'; +$lang['js']['display_updatable'] = 'æ›´æ–°å¯èƒ½'; $lang['search_for'] = '拡張機能ã®æ¤œç´¢ï¼š'; $lang['search'] = '検索'; $lang['extensionby'] = '<strong>%s</strong> 作者: %s'; -- GitLab From 4286c64e98499b93056c09498c10709f8909befd Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Thu, 28 May 2015 12:18:36 +0100 Subject: [PATCH 190/440] update confToHash() inline documentation for new parameter --- inc/confutils.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/inc/confutils.php b/inc/confutils.php index 4035d6dd4..8b61a8d5b 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -206,6 +206,11 @@ function confToHash($file,$lower=false) { * @param string $type the configuration settings to be read, must correspond to a key/array in $config_cascade * @param callback $fn the function used to process the configuration file into an array * @param array $params optional additional params to pass to the callback + * @param callback $combine the function used to combine arrays of values read from different configuration files; + * the function takes two parameters, + * $combined - the already read & merged configuration values + * $new - array of config values from the config cascade file being currently processed + * and returns an array of the merged configuration values. * @return array configuration values */ function retrieveConfig($type,$fn,$params=null,$combine='array_merge') { -- GitLab From 9a734b7aaba1445e06c1ccb95e59f54e01688d45 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Thu, 28 May 2015 16:37:32 +0100 Subject: [PATCH 191/440] Refactor code to make it simpler. The changes should also: - fix unlikely edge case when replacement line is the same as the old line (would have resulted in timeout) - reduce memory footprint - avoid applying string search beyond maxlines replacement limit --- _test/tests/inc/io_replaceinfile.test.php | 28 ++++++++++++++++-- inc/io.php | 35 ++++++++++------------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php index 98f21868f..c2dbc0dd4 100644 --- a/_test/tests/inc/io_replaceinfile.test.php +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -2,6 +2,8 @@ class io_replaceinfile_test extends DokuWikiTest { + protected $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; + /* * dependency for tests needing zlib extension to pass */ @@ -21,8 +23,8 @@ class io_replaceinfile_test extends DokuWikiTest { } function _write($file){ - $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; - io_saveFile($file, $contents); + + io_saveFile($file, $this->contents); // Replace one, no regex $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete00\012", false, 1)); $this->assertEquals("The\012Delete00\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file)); @@ -41,6 +43,7 @@ class io_replaceinfile_test extends DokuWikiTest { $this->_write(TMP_DIR.'/test.txt'); } + /** * @depends test_ext_zlib */ @@ -55,4 +58,25 @@ class io_replaceinfile_test extends DokuWikiTest { $this->_write(TMP_DIR.'/test.txt.bz2'); } + /** + * + */ + function test_edgecase1() + { + $file = TMP_DIR . '/test.txt'; + // Replace all, no regex, backreference like construct in replacement line + io_saveFile($file, $this->contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\\00\012", false, -1)); + $this->assertEquals("The\012Delete\\00\012Delete\\00\012Delete01\012Delete02\012Delete\\00\012DeleteX\012Test\012", io_readFile($file), "Edge case: backreference like construct in replacement line"); + } + /** + * @small + */ + function test_edgecase2() { + $file = TMP_DIR.'/test.txt'; + // Replace all, no regex, replacement line == search line + io_saveFile($file, $this->contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1)); + $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line"); + } } diff --git a/inc/io.php b/inc/io.php index dbb42114b..51ca2ea14 100644 --- a/inc/io.php +++ b/inc/io.php @@ -311,28 +311,23 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) $lines = file($file); } - // remove all matching lines - if ($regex) { - if($maxlines > 0) { - $matches = preg_grep($oldline, $lines); - $count = 0; - foreach($matches as $ix=>$m) { - $lines[$ix] = preg_replace($oldline, $newline, $m); - if(++$count >= $maxlines) break; - } - } else { - $lines = ($maxlines == 0) ? preg_grep($oldline, $lines, PREG_GREP_INVERT) - : preg_replace($oldline, $newline, $lines, $maxlines); - } - } else { + // make non-regexes into regexes + $pattern = $regex ? $oldline : '/'.preg_quote($oldline,'/').'/'; + $replace = $regex ? $newline : addcslashes($newline, '\$'); + + // remove matching lines + if ($maxlines > 0) { $count = 0; - $replaceline = $maxlines == 0 ? '' : $newline; - $pos = array_search($oldline,$lines); //return null or false if not found - while(is_int($pos)){ - $lines[$pos] = $replaceline; - if($maxlines > 0 && ++$count >= $maxlines) break; - $pos = array_search($oldline,$lines); + $matched = 0; + while (($count < $maxlines) && (list($i,$line) = each($lines))) { + // $matched will be set to 0|1 depending on whether pattern is matched and line replaced + $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched); + if ($matched) $count++; } + } else { + $lines = ($maxlines == 0) ? + preg_grep($pattern, $lines, PREG_GREP_INVERT) : + preg_replace($pattern, $replace, $lines); } if($maxlines == 0 && ((string)$newline) !== '') { -- GitLab From 2b2b4cfeaa8d7ae4ba8315b27379063862a067cf Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 29 May 2015 12:20:35 +0200 Subject: [PATCH 192/440] Upgrade to jQuery 1.11.3 and jQueryUI 1.11.4 closes #1175 --- inc/lang/ar/jquery.ui.datepicker.js | 13 +- inc/lang/el/jquery.ui.datepicker.js | 2 +- inc/lang/fa/jquery.ui.datepicker.js | 24 +- inc/lang/fr/jquery.ui.datepicker.js | 2 +- inc/lang/ka/jquery.ui.datepicker.js | 35 + inc/lang/ta/jquery.ui.datepicker.js | 37 + .../images/animated-overlay.gif | Bin 1738 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 78 -> 251 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 74 -> 247 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 184 -> 374 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 73 -> 246 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 126 -> 301 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 121 -> 301 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 186 -> 371 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 122 -> 319 bytes .../images/ui-icons_222222_256x240.png | Bin 3778 -> 7006 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 3778 -> 4599 bytes .../images/ui-icons_454545_256x240.png | Bin 3778 -> 7071 bytes .../images/ui-icons_888888_256x240.png | Bin 3778 -> 7092 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 3778 -> 4599 bytes .../jquery/jquery-ui-theme/smoothness.css | 24 +- lib/scripts/jquery/jquery-ui.js | 1823 +++++++++++------ lib/scripts/jquery/jquery-ui.min.js | 20 +- lib/scripts/jquery/jquery.js | 195 +- lib/scripts/jquery/jquery.min.js | 9 +- lib/scripts/jquery/update.sh | 10 +- 26 files changed, 1391 insertions(+), 803 deletions(-) create mode 100644 inc/lang/ka/jquery.ui.datepicker.js create mode 100644 inc/lang/ta/jquery.ui.datepicker.js delete mode 100644 lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif diff --git a/inc/lang/ar/jquery.ui.datepicker.js b/inc/lang/ar/jquery.ui.datepicker.js index c93fed48d..c9ee84a54 100644 --- a/inc/lang/ar/jquery.ui.datepicker.js +++ b/inc/lang/ar/jquery.ui.datepicker.js @@ -1,6 +1,7 @@ /* Arabic Translation for jQuery UI date picker plugin. */ -/* Khaled Alhourani -- me@khaledalhourani.com */ -/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name Ùبراير - يناير and there isn't any Arabic roots for these months */ +/* Used in most of Arab countries, primarily in Bahrain, Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */ +/* Written by Mohammed Alshehri -- m@dralshehri.com */ + (function( factory ) { if ( typeof define === "function" && define.amd ) { @@ -18,15 +19,15 @@ datepicker.regional['ar'] = { prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', - monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'Øزيران', - 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNames: ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', + 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأØد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], - dayNamesShort: ['الأØد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['Ø£Øد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], dayNamesMin: ['Ø', 'Ù†', 'Ø«', 'ر', 'Ø®', 'ج', 'س'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', - firstDay: 6, + firstDay: 0, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; diff --git a/inc/lang/el/jquery.ui.datepicker.js b/inc/lang/el/jquery.ui.datepicker.js index a852a77d7..362e248f8 100644 --- a/inc/lang/el/jquery.ui.datepicker.js +++ b/inc/lang/el/jquery.ui.datepicker.js @@ -16,7 +16,7 @@ datepicker.regional['el'] = { closeText: 'Κλείσιμο', prevText: 'Î ÏοηγοÏμενος', nextText: 'Επόμενος', - currentText: 'ΤÏÎχων Μήνας', + currentText: 'ΣήμεÏα', monthNames: ['ΙανουάÏιος','ΦεβÏουάÏιος','ΜάÏτιος','ΑπÏίλιος','Μάιος','ΙοÏνιος', 'ΙοÏλιος','ΑÏγουστος','ΣεπτÎμβÏιος','ΟκτώβÏιος','ÎοÎμβÏιος','ΔεκÎμβÏιος'], monthNamesShort: ['Ιαν','Φεβ','ΜαÏ','ΑπÏ','Μαι','Ιουν', diff --git a/inc/lang/fa/jquery.ui.datepicker.js b/inc/lang/fa/jquery.ui.datepicker.js index 8ffd66411..71f8a2852 100644 --- a/inc/lang/fa/jquery.ui.datepicker.js +++ b/inc/lang/fa/jquery.ui.datepicker.js @@ -19,18 +19,18 @@ datepicker.regional['fa'] = { nextText: 'بعدی>', currentText: 'امروز', monthNames: [ - 'Ùروردين', - 'ارديبهشت', - 'خرداد', - 'تير', - 'مرداد', - 'شهريور', - 'مهر', - 'آبان', - 'آذر', - 'دی', - 'بهمن', - 'اسÙند' + 'ژانویه', + 'Ùوریه', + 'مارس', + 'آوریل', + 'مه', + 'ژوئن', + 'ژوئیه', + 'اوت', + 'سپتامبر', + 'اکتبر', + 'نوامبر', + 'دسامبر' ], monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], dayNames: [ diff --git a/inc/lang/fr/jquery.ui.datepicker.js b/inc/lang/fr/jquery.ui.datepicker.js index 2f5ff3cbe..6b6e0b35f 100644 --- a/inc/lang/fr/jquery.ui.datepicker.js +++ b/inc/lang/fr/jquery.ui.datepicker.js @@ -21,7 +21,7 @@ datepicker.regional['fr'] = { currentText: 'Aujourd\'hui', monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], - monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin', + monthNamesShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], diff --git a/inc/lang/ka/jquery.ui.datepicker.js b/inc/lang/ka/jquery.ui.datepicker.js new file mode 100644 index 000000000..69103542b --- /dev/null +++ b/inc/lang/ka/jquery.ui.datepicker.js @@ -0,0 +1,35 @@ +/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Lado Lomidze (lado.lomidze@gmail.com). */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['ka'] = { + closeText: 'დáƒáƒ®áƒ£áƒ ვáƒ', + prevText: '< წინáƒ', + nextText: 'შემდეგი >', + currentText: 'დღეს', + monthNames: ['იáƒáƒœáƒ•áƒáƒ ი','თებერვáƒáƒšáƒ˜','მáƒáƒ ტი','áƒáƒžáƒ ილი','მáƒáƒ˜áƒ¡áƒ˜','ივნისი', 'ივლისი','áƒáƒ’ვისტáƒ','სექტემბერი','áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი','ნáƒáƒ”მბერი','დეკემბერი'], + monthNamesShort: ['იáƒáƒœ','თებ','მáƒáƒ ','áƒáƒžáƒ ','მáƒáƒ˜','ივნ', 'ივლ','áƒáƒ’ვ','სექ','áƒáƒ¥áƒ¢','ნáƒáƒ”','დეკ'], + dayNames: ['კვირáƒ','áƒáƒ შáƒáƒ‘áƒáƒ—ი','სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი','áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი','ხუთშáƒáƒ‘áƒáƒ—ი','პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი','შáƒáƒ‘áƒáƒ—ი'], + dayNamesShort: ['კვ','áƒáƒ შ','სáƒáƒ›','áƒáƒ—ხ','ხუთ','პáƒáƒ ','შáƒáƒ‘'], + dayNamesMin: ['კვ','áƒáƒ შ','სáƒáƒ›','áƒáƒ—ხ','ხუთ','პáƒáƒ ','შáƒáƒ‘'], + weekHeader: 'კვირáƒ', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['ka']); + +return datepicker.regional['ka']; + +})); diff --git a/inc/lang/ta/jquery.ui.datepicker.js b/inc/lang/ta/jquery.ui.datepicker.js new file mode 100644 index 000000000..113a20849 --- /dev/null +++ b/inc/lang/ta/jquery.ui.datepicker.js @@ -0,0 +1,37 @@ +/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by S A Sureshkumar (saskumar@live.com). */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['ta'] = { + closeText: 'மூடà¯', + prevText: 'à®®à¯à®©à¯à®©à¯ˆà®¯à®¤à¯', + nextText: 'அடà¯à®¤à¯à®¤à®¤à¯', + currentText: 'இனà¯à®±à¯', + monthNames: ['தை','மாசி','பஙà¯à®•à¯à®©à®¿','சிதà¯à®¤à®¿à®°à¯ˆ','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','பà¯à®°à®Ÿà¯à®Ÿà®¾à®šà®¿','à®à®ªà¯à®ªà®šà®¿','காரà¯à®¤à¯à®¤à®¿à®•à¯ˆ','மாரà¯à®•à®´à®¿'], + monthNamesShort: ['தை','மாசி','பஙà¯','சிதà¯','வைகா','ஆனி', + 'ஆடி','ஆவ','பà¯à®°','à®à®ªà¯','காரà¯','மாரà¯'], + dayNames: ['ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ','திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ','செவà¯à®µà®¾à®¯à¯à®•à¯à®•à®¿à®´à®®à¯ˆ','பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ','வியாழகà¯à®•à®¿à®´à®®à¯ˆ','வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ','சனிகà¯à®•à®¿à®´à®®à¯ˆ'], + dayNamesShort: ['ஞாயிறà¯','திஙà¯à®•à®³à¯','செவà¯à®µà®¾à®¯à¯','பà¯à®¤à®©à¯','வியாழனà¯','வெளà¯à®³à®¿','சனி'], + dayNamesMin: ['ஞா','தி','செ','பà¯','வி','வெ','ச'], + weekHeader: 'Ðе', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['ta']); + +return datepicker.regional['ta']; + +})); diff --git a/lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif b/lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif deleted file mode 100644 index d441f75ebfbdf26a265dfccd670120d25c0a341c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 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 ORn*B%u*Wk|4g3!*Rv{Mv diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png index f5c2d583d93997fbd38481147839de401555b1d5..03b1d721659c41bb2e6ba452c214ce17b7c79611 100644 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRl<n8Xlz--)7)B)s) zdAc};Se#CdU}fi7d?xUjM)4F+Jz)ke&l&nr;WHisRj8J@MwFx^mZVxG7o`Fz1|tJQ zQ(XgNT|>hV0}CrtODhutT>}#<1A~nbQHm%Ua`RI%(<*UmIKcX7E>Hu5r>mdKI;Vst E05}Fd2LJ#7 delta 48 zcmey(=r=({OVrcFF{FYqIf9iv#n^r3;xmEIG=v$rJZI=9ye?2+00K`}KbLh*2~7ZR Ce-7UO diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png index e36540bbf980dbc5369cef72757e55fdebc9177d..882c78c4f389908c4211b7b54eab4a5dabcc8031 100644 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRl<n8Xlz<9SycnOdv z<muuVqH#X?2R{?f;wKuOp+XF&CVrCHd|R&?D63lH8c~vxSdwa$T$Bo=7>o=IO?3^7 zbqx(e3@ofnEv-xpbPY_b3=B3#L@A<Z$jwj5OsmAL;Q;HSxj+pJp00i_>zopr0BlV@ A>i_@% delta 44 zcmey)=rut_P0-WDF{FYq`3FDK6;=0>fkF(YCVrCfI(^!l0SG)@{an^LB{Ts5Q&tZX diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png index 8225e3e18446872ddaffb9f1540e88e9487407e8..e17b8809cab832ba9cb4518a4bcbd598747e3c77 100644 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fC<Rju*&f~kYY)9^mSxl*x1kgCy^D%S4j2< z@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zq}S8MF~sBe+w+QCOpYQA59{Y83FI_)Y*@_ZC}CL5@j7gEq(SE0-xbUUn=4vH%eo&+ zAABV0a@afm$7TP0FPB+zGf1>0O5A6=I_1@@JGI~5#eHD$N<7iC)*$I!nUmua6%n1g zfipHNQi?Y*`FQyRzwMUb!ep^Gm9BfYd46CC=VG?Wc6@Q+e|P3#gC6-$Y&MB1!5wcZ z^?(jjEpd$~Nl7e8wMs5Z1yT$~28O1(2FALEh9L$PR;HF#CI-3&CRPRp8zZ6=Q8eV{ ar(~v8;?{70_0e3Q1_n=8KbLh*2~7aGdVk~q delta 156 zcmV;N0Av650=NN?B!7QNL_t(|0qxMS3PAxB#_|98Ow`>Zlq<uPB37Fhuv)FGR#vYg zPvj-6ZaB#+n0(Xk)K~xEsJ=bc_p1QF7-P)Od6mygy;3xzh_Pr>vJo9dY(<wUc4EMk zQ^G8cV#u6x5{pQ_TasJ!nQ#z2D)ygPWUR<zDMW+TzrWlVV-?;R+7#j7-M1eA0000< KMNUMnLSTYixJrKj diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png index 3e56dbdca70d7f64ba34ff09e09546614800000b..de3b7cc4d70392be37c496b40c853bf78b39a983 100644 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI2NH8$CE1Q=ADVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&V7%KUyadP- z^mK6y(Kw%+ks#5!xIpAl1H;se6O5NlHf91PRZCnWN>UO_QmvAUQh^kMk%6J9u7R<x zp<#%Dg_WtLm5G6_fr*uY!N!OvMHCIW`6-!cmAEw=V0|<fsDZ)L)z4*}Q$iB}S7$w^ delta 43 xcmeyy=s7_}Rlw85F{FYqIpYAU`$G+xR)(n=Cm6RM&A-F|1fH&bF6*2UngBp&4!ZyV diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png index d5265f4dd28a8827ddda4727345df0d8e30577c2..74ff8a2f52a8e40dadde8c4337c4b9d5cabef808 100644 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z4^J1z5R22v6~E>uiu5Y2S{%JyBCp!;PGRy6>C*-IN{9d2^Y9x>$kirP1fBcv#qe;k zeVh1aiMY6=iqdHhOEnL_?p&N9BG}BZFMP3Tkl4l=pqZ*At`Q|Ei6yC4$wjF^iowXh z&{WsJSl7@n#K6MJ)Y8htK-a*;%D`Y_M3f?mhTQy=%(P0}8V;~NnhVsx;OXk;vd$@? F2>|UhSndD- delta 96 zcmV-m0H6P@0)CJrT181jK~#7FV|n_Yg@J*}XcUd2ueVtk3s@NcurP|VFq*J1X0tHm zurPM8FtxKV=CCkjvoHpL#ecIfu3%x1A;!#6G>QNMnh?F=W(A}G0000<MNUMnLSTaK C?kH#g diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png index 1d509f45a5f10257d185c44e5e0cf02f80810bdf..08cf4c38aa14cb03b4d307749bd8538a4629e821 100644 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z4^J1z5R22v71NI!bh!y$y|_7@=X|fky!(k2hLazrsvTZ!(RN*tCqGHz-ZG;--Dwr_ z2R<B}@le_L@bRrY^PfoAN%k!Ybm3uQ=ymv}!k}lG4>VJ?#5JNMC9x#cD!C{XNHG{0 z7@F!D80#7uh8S2_nOa(z80Z?9SQ!{>jEGW1(U6;;l9^VCTf+g?M{|K17(8A5T-G@y GGywoOl34rz delta 91 zcmZ3>R5?K<)WOrmF{FYqxpMmPLkApEO}gAJ_H&83$&0mx>hx4cO6YGes7p=!bL`NG vgNIIVrZnvAZ+w)%+N#5I=*SGqE;m7j%-KRI)7Lp(VgLe9S3j3^P6<r_r?(`G diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png index 38349845c5df7d8d112db784544837c3fa168747..e7b6f8322735075b05c7d436a23d55c7368b7892 100644 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fC<Rju*&f~kYY)9^mSxl*x1kgCy^D%S4j2< z@?~JCQe$9fXklRZ1r%y{!N5>zz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zq|4LAF~sBe+w&WF851SiKR*92CiFZ;F-)NM8lRVP!~uqB7cO+W)Cx;9@am=gusbQ+ z`Oc1YV`IRctLrOPwQs37^G=wV;dr6U^V=7;mC7=moK-ky(xx<V?MolbcCG7`i=NvX zv-D7V)8a`Nug?x&9AZ-RcBjNlGb_p1Fe?e!XF9wZ5`T_vd2DfxzmmyaS0iQCd`=Ib zt5i!|BT7;dOH!?pi&B9UgOP!usjh*suAyOwfrXW+rIm?+u7Qb_fx*UzC`A+vx%nxX YX_dG&9AJGk7pQ^3)78&qol`;+012pl;{X5v delta 158 zcmV;P0Ac_00=fZ^B!7WPL_t(|0qxMS4M9;HM)C6{UxbHOm_uy_IwM#>&jJ>pmI#gJ zmMVpk70f^<A(~4<Y@mAo>Q|iZIFIiATh{;({GA{Og1mfg9|z0oX<+J1SersK?M#z} zPNt=#%a4-1vT5tXw~=&xqZMaUXs)AaFxAG?7&10c(y99LAQuRN7ppxYe}jdJ&Hw-a M07*qoM6N<$f&?K)KmY&$ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png index a374f750106646d810861a41412ca62376cc59d7..fea66d4dd97d03924cb5296c80bd5459dcbb5c57 100644 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^j6j?s03;ZUuHXC*q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&7i zC{Gv15Q)pl6*aw$ei_V%7k}sJ{~{sx%*ZAqc}M)g0{!lXc{+z>dE27nCGy^-@3?rj zz;@2VSwe@WKIWNTZWNQ1x+CITK_b)PpK5Kz?2_m1C0V>aQ1I*wgA&8WY4cu9jjUz^ z+M-(G8c~vxSdwa$T$Bo=7>o=IO?3^7bqx(e3@ofnEv-xpbPY_b3=B3#L@A<Z$jwj5 YOsmAL;Q;HSxj+pJp00i_>zopr0I-o{)c^nh delta 92 zcmV-i0HgoE0(y`nRzXQbK~#7FV|jdyg@J)C=oZU=dlm+J5cyw{<^Lxz`pokGG|Rs; yAoBkiAOdrjf~C#?Nr+0Q7KSvI|2=R6>5l*<vL`8NsL_A`0000<MNUMnLSTYVaVH4? diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png index a13f9b4dd243bb8ef4a9475f1f293bd779a7d98a..e556b9a90b19e71d08950599014c86d344e54a87 100644 GIT binary patch literal 7006 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 KzFgMq{eJ+memDI9 literal 3778 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 diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png index 945c3d704b777a5a83f0e18109f504baf9e89994..54f652fec05082143f8e400e322590fe0d5120aa 100644 GIT binary patch delta 4219 zcmY+HXEdDM*T(OAM(-uj+e9)!l+in*Bs$STM9k<d%A-ZUM~RYx2ttTVnh+8q`Y1zm z33+tU3BhQ=C<)_Dp8u!!_vM_m*S^+SYwv5FeNLO;foO)P8bIZ#W2OTDAJQ3*ov8r; z5OFoMG6R4}Bmm$N0pQo45N-tkLQw#)h6Mn%Tmaw>ENHOQ_<*<rLICJuVxSMCPzxFY z0IRQ&zK%`!w~d>Ou9G$FG(CoIS93G@>rL`i{F{)$N-{l8H^)N#hKqa`)k+AjNRg+f z$xL&M$?6*IRz+U?&u;Y?;DF6Vun~^Fp7IBFkvO+Wv++s_Du^ahSq5yO(0icWg>u+j z;_z4w^rY)6sC1Z07{s2%y@3VA9{s>0b)+&lGrsQgtnM+$!B$oqVL7V28Q^FvfuS&@ zA1_jW@_JJ4;*2Rj^+)WCeq>zzo$zv0Enoppss+@=%Tl#q;}b;Fc55}+*7+`+;$ht| z0oc&}G)rBRmcL1NS^q!o^E}?9_n%-jwy%O{h9fLicohija~I2Cv(Z34Tjpz4<J8yS zeIO^!L-|ujqAi+!TmSLfJwyUxG&bs<W={@pc6)FGohhhmM8pn(Q}K7ccs%g(dvJtn zm;5sJvc?a*cD|77;2G<jrdz2inrG}pnvMN`e9+trK2CV=U2!}UXD|T6$v|&(lc$;{ zyK3PTG}OlMQ}*{lMl^*T8iJ1A`wWfD6|a7gYP07=Q(k{;%cW^l6G@#jyv5_b^pKO7 zU3cX~!!d~sjE2!2^CemwxXGR^3x1?}NnTy*Yu_`)<gvs?LBny$M3lekbij*wzJ_A% z^~D@b{W%NPEJJBpDj7pOj13x9n=YAbW^~*+nxAz0UwPWiE}#09Xind6ujHS;`RWTR zv$QSs+pSStwZwMU?k&HOK_E+ddtsQ*>1ppei#f5Oae%+)Zpc_bYCs9Bxw19Vl3g1n zW3e;pphURn1cOC=x-;@QnkoFqL~=+oZk1NFz^`q78MvW-k*ghQb2d@v7n)%6RUj7n zxaVe>57dt1eurEEe8GUiJadA5E)WGTcpUi7jSEGfuXz7%_iW@3YV1v1$U`i5#lcQ{ zUV`lUv;c9}p2;+qnyyAySOmuue?FVp<T<Z^L(3B1(W8xbfoyf=+d>sUVZ_ufI2o&j zJoguu;kqe^pmN)$`(<U0yb{Si@m_-eg!&rmF<ly^%o960>L7EGZ|L*fnTg&sXueb( zx51?x)8*qgxEm5q9I15!iYibqEMyQ^nU6By<_|*O`GEuY__F+Gvd^d!Ch%(k<NG0H zb2O)a1D&DdJSw2!V&TGS&4{;1$=m=F|0|IXRT<D70?zDAW6Zb}-&3}qo7X>Zpb71r zpVT#rOM0ldp5_f4+!##7lJ;}iIxTP+Z1X41{VNqKSsJn&DNcI%INe=V%F#>T6w-Ul z-`=&8uS9kPxN+6Oqx)=!`6-IO(!Irr4WC^iG2VfSY*tpqc4u5{?jdfGD$zghS}EQ+ z15xXFL_gMb2i00Cq~qjaU4wo&1DTMhrs3I?ekK_HTx*JFNebBv>qupvGpnj2{!kn| zw6=Fq4w3XGjN3O5`M8KX`RYm%@d8}vgG&k_=~tj4QGU1~3yI0>?YqP@Fo#+0r7Sd! z)N2z?LkKTfY%s(v$=m^3E`5Z<3(_Ee?$jB0jNuhSG$!O<?Z0hV@IY9{>ej?kZg8gF z(5v>B;8)K771YSNJ%xP}l<g?tp`g0E`;W<YpuX-h1KM-l_#ZnJw<lu$V<Hz7BwC#; zO&@-=qxi8|HCzsE{$0<`U7f_JH(S$T<8kQ*AvAJm&4}d@{ddlnU_3QvNICS*wwUF! zpJI)UgXI}-YTfS7B7iK=tADYfQ!oLzzSpczGS+hi-;+1rs@$BTLT)uj(W1b<rNL9G zBqCJ`01{~8@HPgt=MnVCS3Y>7!?^f97?xp0&(<*=#PNAm9pW`k(45<wQG^y*y1J+X z=}DojoF32^H+ULjit~o7M99j1Oj?E`jJDx+t=`~o<IvnqQUtE7>NE$i)q3JmdUuGr zS2}P@XcK0Fkco>9u;}g`D?g83g?>|h`@=Yb&_YI;CscP(f#KmRLU1fbPK4Y=m8C5O zE{UYjh2#5UxACfhHq7w``hp>_i#W{}2s%)B;VAWJp(a`ea-{moF#nRHxNULK^((Sh zQe^U(`BMHS?DaZwu1+^bq-VZKqXn)Sdxb6(5iwW0#7I(qPGw35V(p2Jq%8zqYIBjJ z{X0?$9EMe%aD2JoB3CRM#&G4?=iPnj3}x~UbH+KU#0J2;yp#Ci%M?dO9=W>1HWp|U z6%gTKYhZ@1ZRF(#qw<<V;dUyh6{$e-F>nFzhG)yy%aJk;*(UQO7m+ynS(=Kn!<64b z|Czk|=k{}LP3o;iC7d5gRHx|Ew84_!nx*JyYZ$-lfN#W1;f;DE!M9KMIIZf<_RN@D zRVbRJXHscYyH5cwzjV3qyY-p%Zsfpi2ZMgd_;OLY_S>63lfZ~d*mZ9?&3woDc;CJe zvX`P*mi*(IgMFKS)Vs#^WQndXT7t4zswut70WUEP>IJGEuvi&PRGm&<V?S?iKpFGk zxbCq|!CmczL#4;M{@ra^tVmkJYa19zN9M$D6Xi>ta~T~yozhktYS-ks{6aeDi#=!| zHqb&yBPQ$=e4^C*D#o);(+NhQf^y1Ru+-Tk3pau2?(y(U>)G0DUr(*-v4aZse^pQk zO?STIIl`Xs<_mIzWHFp1mX*T58k+Em;?*mC3xqhIrL>U5U%R@1UG1>6RBFll<9hoz zpA4VH8&<P#viH0viE_DJAK=BZXo$p(oa;$o)y|Y5P^#ag(HlN52=)065j}Uv7FDio zD~qqAle@*5)>}A)Rq4E55Qe?jJ_yG-r|qEf?&^s;ou_h3bbbL5MBB~-J<p(^+hGS7 z%<xXE_0(qMPFrJSd}y3Q=fYx_!?l{({@V`pY*aq!S0$z%WulSw!XwP1&~31~!?3O) zac%RJN{eI)MFVH?fwHjrIOs4RI;y&W-aj1<*0K)ir?Cvq%r@KM)W(@daZc<rqqHJ) z$Zu+OEdAC7dzS7JH(qE8+tbqo{X=aTLbuH<EcV|G&zQTA>b=z4D%-c~cpA}jgVA;c zoFNGBdFwD-I%;mKU4}T(@0WjXkJw=#W(<CLUHrtPTYGaV`J%-f<tg&%daYLx|C6Jn zYelr*<{tbqQ~g{t#7zUI$Z#_{Bl>zRtLQW1&XPM>tACImw6#=UYIxEM<C3iN9(pjI zrRjE)wp=YeL{Of0eWjySLWkC_SJtVOvCn@3V}uK;{>p27umg=L0A|G6SxtyCUE82( z4R*lF*RR6vONm}Jzw(@!wWPR6!fM0U(?^SjecSZi$UKAH-B4~&q4E1#=3b=<;+{ix z<*2seuAVoEu(2xRKFCyGibC+qectU0y_yBu%!x0m#z|qdx_*!Bew07!<O6#}ftkfw zc6wJ}xl>bXp^boBz$)fus|V8|Q`m($_x$H#_jl)s7Q~0gyM`wUJ-x)Dz!XWGe)&M* zhPHabqZ%Uj+t80+*wIpRzpeZ|mV8dC<B#69KaXfYG7Yk_u&^+})-K(M5ipLHhPsoI zvxAvb)U5>p)_9qsp$QsV9XXn4Ogg9tH$H8nGuSGI_J!7l?4knWd9G3mK6ft9YxLgx zeYp55nI|QfDc8f((=#xM7hl_IHcKs3ntFX&h_B(@a<HcJ1q1ZaBOe;#p%-P!kLBwm z)|>r;fGc2n76sP$jwb{0RgL@U{My7ygRcV4ud5pkM+}b|jWnUmTny=4ujR`eWZsj( zz9-BO|MUrNV{v7qRP?;`{u#T~-5l9(*qUIuKlXXST@-$Mk0d<Iw)=_Xr|g4v1RSf{ z(!Uh{UaZMi<k=Jt-5O~lt);!3sb-dRPPI5p@5p1%pNy!HJi_eDc-?d?2G(A1&3M6P zs#H@ZvAd!SX7o2A@wCNECZQIX$i5c+sZ!`nbF##n_q4ti#;j+)iNW}lvya1eMjfBJ zk1!kI1V9_Q7-t**8s{|bPKgupj*IhJz+?l#klVhcc4y<=L+AR-u)E8V-2O0z!6ne# zx*&;M%bvl9wDwnc#xq}~gQn?Q3R1DKyR?qPJxkbo+`ymU62Qn4#wN*(kMt@Uo`<rL zb7y;P4jGB7O<g$Wmx^jDnj;I=1*rx4JgCFf7;ZKfA|kNl?0bj6nUo*)25L0elJVos z-FGx3?Go?n;YUMClc=JJyMJH%DJdpbK&_vZp!`C2897m3czylqNvo)n7Kj!@(TNRN z6+F*<z4oOWue*Gu&@OLk-cKhQ`VoIYuU=P41VmCJL0gB(<((ZvvKLJPP|#10Z$0;n z38lQqq6^G0nbM2B(O$cfBP>6)tOiG7J^mFh`+)G@Ii)STOvG_jaDng}#0poSW3&qw zw*`xCcI~?z$Bre$qW>EjUy@E$D@kd4EwEUMz{YfzQ*RIRuR=$NEFgaDi2uR6v+#Ne zyxXb#d=~m@D<pVrTiXbSCOkTONxl<^skGS|+d`%@ix)8b3`Us$92zav<Nf!^z?jcv zBrWIBkpFBFJXo8M*_w56O_8@GDu3knvc=xnUT%EY<d!O(SPP%jL_jl!mBWxD6#wvG z!~{AmG=6N5dGZkAxaxpw7jIthakS?pJYokiHeP0pFE!LY_eRaZHX<IjuAE_c!vcFh zEs_f_C@ffTZh4aS6(N4>P}?z$`RGog7Ps9_$<cq+pTQ5%Cb~7GzAc@qZf*{u+dIN# znAZLqnoSrTvtx0BynaRs=J~%`m$?0|yj*}PMr-bYG=zURkR1^2)HibNo7{=*C3yB7 z`I86c&|(<|r+jl`<@{=V4QB3#U^H+OtO~MDDYi=(82GssD5h=Uc|_)@ml7;5oX~Fd zN<UnBj7gjjLiCS1V&HqG<$Bke4hj@_lv9?tO%YJ6F1kYV#ZhRtXEr5Y6dTu^(65Wz z_;^njYW*d}weS%qZ@Jo{1kOw2n`27vr6xDfCDQGMiR<iGUzZCUU1p8f62|flKhe3$ z>JpLxlOWLAl0=M1ZxYJ#X0{hIZH2v-M3R~xkeeQaWq;!N_HdPC82WdUy+Ja*oh|xz z6r4M!Q7o8j^2mU7=M?^FNAWyxOqC^52I03kMOL&m1(e^GpQlPUrHfzwa^VpKDTnDZ z*8OxPnzb<gwa*`J@%4=Sq>3kqAV|&sDk4sWy*?Z2<KOwRq00|!2O&-_G`Y#@S3cKO z{{R^b3+!99vNa|_FLb|J5MD`BL^-@`_X{J)zv2tpQc6o93}fBSuY)E=NM*03#uW`X zoR+%6br@G*uW#@2v&#k@3#Z*His710w)pdXzYucSKE%yA#9hrb$o<a($f0BvrBL!x zva&WP6*Wa=HF+f|l!6)x)tPwh!~YZb1-N;8MEn&fNTF1uP|7y4s6W|is6YC@0>$T2 znofTdynm0d4)6%M?HuF|=(q*AxQiJ1IeWTWxjVZ>{L|yE@h1r|x@@lhUKbnxf6Sx6 AU;qFB delta 3393 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 SolWimzfq3ZAFj5fC;cC-{Y;nu diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png index 60ec1c692f45cd72b780dd01ab7df49d61e62e2c..1a2b52e8991536267f7e10ebb27048b1e1d1768f 100644 GIT binary patch literal 7071 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 QPt^=iK&r}=OPK`yAHhgN=l}o! literal 3778 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 diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png index 48de3ed6b0801b233683d4108b0802a2eb565ddd..88c31424bb54f423de5ed12c52bd3ccf4c27080a 100644 GIT binary patch literal 7092 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 literal 3778 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 diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png index b987966e0bb6d52c49d61159946d0466cabe1997..8da7fb0823e83fe8606c02f64905fa144c447d86 100644 GIT binary patch delta 4219 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 AU;qFB delta 3393 zcmXBVi$Bwk_XqIzd$Wzk5Dn!Pa&1x{DRbGVFqV7nY;GaGrBNij-_r#jaw)l#YmqJ= ztoS5K8<C2Hrb4lD&D<h1j9;IA&p+TiUgvSn<D3=s7NsophqMbIB!Q+Jws4IFrw5!e zb{LCa^zUh3pM|necx+HAVhc_&q%eJ>-Yq-V<5uI~h;g0+kD;*mmcQ~9m!D_%&n<s9 zmY@YEqNi$<QrqW$&nbW^CD6+kG~z@aT8EKm>GunYWr8BhpCx-hgtEyCI{jnsWi&(L z^{9FV^-@3ox;OxV!C*f~v(SIYl{?Joo>9`A1&7CVBGI)M-X=&l`sn9%j4=fGQ%Q@S zdjjZ^R2@;r_3dvaB#$ST44<Irt4gH63I8HmYO>K(;X>@QVWtm6JDrVjS-+pCdGH_` zOP=$rZ57Q-s+51st(k^fVkd@?3l~Stc;=`-rJ)9&=cq0{IM00eBR;Yl)A(y)RVpJ_ za=ugKZ*lM3ohH7a*mL))$5RF8%`9<dTxaH!vyZh~2Q0Ex+bSn8&NSo^bR5d8X}2m? z<SbyKIJ*AMo9mrFTQihYFeEq66@QnPcLFVi^d&Jn=OmiCwXzQRp7Cq7p12Uz@LzM# z*j4c;za-i-;9%M<u(G@F>jXX$al-Xp>2CVwKS7UO_s(GJqO1-WgnVCYcf@CTc>~ib z_=1W)T)=(s5Dl`wMI=|zQsOpNiD|*v?@dJYNaDHbT{2kF{pPA}@`5t!#5XCZ5awwe z@wfrlhuqo$>)$R!*x#9u)^;g8D*|0UH!hl^{7%qul!})c&AlXhp!u=&n5KNnpz~-6 z=cn1!0)_imylxW`!IMmo{*!s^+p}vuDxLd~6LLxKomyzYucYsMfULf#RNfN$5wLeA zYY^1*f4r#r>^=u93p-?SaVKH@OgZww;qk(XG@+QCVsLw5Ykz~9&=(Dfd*)PJ7y`R2 z`-;->+dk0Q-AUPcb<tTSez;)1bbFW}j64-Pc$=d*9+5w0J$bs-4*2eHpj=^@_|-sW zq4m(CQZB8_?)2pIiTK_B?Mj2``jL133%)LX3tqzUc=1;s4=&>mAUPxJqk}{7Coqcq z&4;Iz6C?Jmt$leRaEE?ENGC-g-hQd~LIue*Lupg}1r)-urR6;s`r(NNw9!?|_Q-&= zs&zA?QR!blaVfDZi8r{EO?Qu(Q(Ywt$&{J5L75}cD{xBY;%2`C^K8ekq^PV*z0vyK zIq==c>Eh#s>@?@i-@$zJH|wIzr;mEOD{cseZ1uNfk9~`V>gc`uCa+!r*J`WzjrjTq zf?sKLMPLGZ6H}lxV~#0G4mYzi+oKUD@pf@a_fgj#Yj<ZSMex=+l~ddFhI%u!nWyhb zJd=PQMWT$Z%L^l^x%X(>Tpx+t8eUgsX-(LtKiF(eIHa2@Y}9{<+C~0eb2UG!DgS=~ z{G*kADMKbZpr7Xh&-=Q{qK;(?>su~vJ+6tS`mJPyfoFV^@p7-8$iTZ)|K9%uX9L1_ z^hBzz5n(DIODG4lht5rG#{)Os9=G%)^LEL>yN0&=qkwX<m5$V4^GO~ioS{UftoFv; zKwecR({Cbq97OEIm!^_4h$o4{MuStY8$(}<urSaw3?AqfqsvZO{Y>;=J0|hNA1N6S zvb8JgGGuq!z7`_`gFe`^qMx5w1cRNfvX_qAN`0)UMYAwIO#(l2INMv*>UK}Gp{3aP z;<-c|ok%Dve7+qH0?8t3cn$&fu6OM4HxW~AWY7-*3*al%Jd;{r=*}d{!RN3l#YxcC z&(9Nf{2hU54fC|Wjp~jwhX)CD#QU-J_p6<*5W&NI|HQ;qXM}b<a0v_BW2nx;0>FnC zV}F|9F57@hdGDg8P$^<dY!5n?-G$gz=h}~(2Y;#{x)VqbXd*E;Y^SP`u}|lSrJIJK zYcE8Cq-MAhsXol19p}%pIVidq#2rxHYgBo-Na54q5JqdM*1C%MAG;S{o(|Z+rKYM( zBbk}AE9!u`tyiz}{b0+E)-S~~ON~FU^`tXZ5{evVqv6rOttmZQ<>fd|#{%StGWkCK zBQ7_kS*y~y0QCds@|xiO{mB?)xhCZ(OfGuEOx2XiIe0nHoz&e~1tqdX<{gqpeAgLE z1J+iql)5G9AgmR;*G%Z8ZL!PsjE^r#8`oKZzM)xv0gzb~`<3BBkqNyj4XX76Ejr_k z5Wo4w&3ao;VUF$63TA#s;?p=G&XY+VTgUC&<LbIGkXK&TH@~{_^d@&4ywZOv)Kbq~ z4QSPC05q};LQ0_Fs62PRmTu252z9rw24?%zQ<Uh{)!rBn;T5kFWW>}*_OMn}!mZZ$ z*;yr3tE@OA3-^onqOYT`1b|4&qC4|9QytuENLnfu#FuYt3f6w0L*3%@#Z<dzL_ywa z$cx<$PA72O20)GQWcABh1JEg$9^sGhAwi*AWgQFp$aiCln}~EaDXZM9IbZVQ4lqjI zVqvLJ>cTcpidL=z%0KS}KWF#MF_zNs#8i=8%JF-%HEE_cAZu94D4xWi&R^3m>hlq9 z5ILKtPR$uy?U|EsW0NE_5zXb#bt&%QW5icZ-zCbc`woq74_y)e&)th&soQyvO*3;K zsY!@}atuSlT~zwcFbhXZYr5F8_B>kR(zcSpSr)r`Q<n1aBxBS3KuvIQy>?hx^ekTE zdg#Mdg}kv5d&Im8BJ{3nj|K|w_3Ob8<JSWI4R+aR+Ev>tPa96hRBHQoypK$(E0kBa zB-9~~G4|%-O^=6zfJ9a_Shz7`1VgC#r30DD35)w}{r+xbS~UQ~%=A(lSr1^q`l>TP zE~Elj-q&c<@?|fUb}g9oDwqFKud$trATD7VK~t~VJXZ&Jui-4XWjEl}Ye3gakt*eW zMs$Y(A9P(if{z^=A4|Gq8-Jt$*tf-boN@l^R3`iuEO}I)q-D!JGqDC4e^TV^j1*0N z{X*JtUp;O<rbbf5UPa&7IW4x+a{H-0!0*Mt@Sb?Hw|Nlk3-lVo<y+P;7)%jBY+sLW z3wc0_Ui1u_fX5gKK<VMOkw=Oy|ATO>Rk>V1dP?=sM_}BR^=U%X4xl6(&FJ(>@VbhY zGqLcrqT|ak#_Ox=P*@~Cgc+!Wq}=NZ-dhkKU`3dsi_vKjsmrZ=hYOuD1;#K#!Y&8% zI8G^Y_xJp6-NVK}Cw~5*Hs`is90SrIg40!G!VwLtfU>`QFoiO>5_7Yho@or_tJ8c` z2E<^{e>2IcNDmoC#II5Fk|*YUQs+v?OnmVtfzLJ&2?E48arBqe%Nrn<!5zT=1ss1G z0ZZ8s=9^IS37a7_h5ct{{a)dN3O#dzwjo*X(OEVG;Ibq~l*dnQoM=9}DA$Hv?7UrS zQUqG6{tEz!Dw@=IVc-L^z7iel?u+P7noXR)e!frzdAF>h3zfAx2%onwI=&Qw5G~4u z%CcOu#C?G5{s=2>1}kY1jO9#W{@JLC=A6`O-mWU*Ea5<aE1x45cCdaBI>9?nISz4> zRFxpD=JLdi!Cp_YrAZ(f_z<l{aj5ghWvx%P3E*axV!%}3|LbDgpIgQ(avV96XHdNc z9SV5h)9{Vo&evzkGO?U*Vl_~;W9Ez1-$T5a72jK(!)~f7bNl#1_r%PWNNEoMFUegV z@ywfWn-s}<`4<?y&1>b&NhC}$0_5$;4{QQCRli@ybof-wC%tcKXJMVDH*H18^bKR4 zS}_XX#TTM3^Wi@c!0o;PEu^-NcS&0j87;f+mpqL14BX|uBm><Y<v<(F3hO?Pc(iX7 z9?{MUBQhN5O2~Ya4X^m;qYq}`phxF^`=O+5&Wf^a%~MDCiscjiZ@<S`SS&<YkJ^N1 zOl!IBH;|kTLF88}9JQ|NO6du0f(^TJuCs|<IfjYmCS+SB`eIAcNdZOh>{2Y6l$jo; zu|NGfaJ|z`1>zhj6484S6D_H`i+rp4dv2z_ZeJAdTt&w#&Tp_Vk<4C8zT5Tfag%Q> zX?YD4&Z^utNgG@~`&DRqp|#d8M$);s*<^5#xx#};s>ZM&m8?~_Axj2KkK%@|D>w|s z%xTR<D3(wVQO}Sknp8F;4Xqg8M-L<7KCFzKvxeSe+zgmyt1$(cq>WG<To=(K*BeKE zX`F5U8J8x(?~voxKF5~EKq3(f!QPw8h|qFPIr4ZoWN~f|d$$Iedx9TwKAHSJDCX|4 z#Nu;+S&ZxF?H*ipQZc%xL%P?m@ypPJ^3}KCN2i9)+-Uo?F{Rw`rs-wF@yGSZxxf`U zXy4<eFR_wO**X8t%y2O1KjKP**Ea5uA6`~we*#&?z?McZGzzdh<pz)~h7!m&0oT+o z<K)NTue&3|6y*P3*#Xo=BTJ2qm8Hy|cMN(bwJ-*1w9U3TfL0^e@d-@t)sq2IPd44< z%f;YQQcnuiX{6g7-Jp>hNwB&n4l~MUYlJYV!n|1`X9`lEfUBBcZ4^hL(HjyOX?GIr SolWimzfq3ZAFj5fC;cC-{Y;nu diff --git a/lib/scripts/jquery/jquery-ui-theme/smoothness.css b/lib/scripts/jquery/jquery-ui-theme/smoothness.css index 93a79cad2..2fa859a43 100644 --- a/lib/scripts/jquery/jquery-ui-theme/smoothness.css +++ b/lib/scripts/jquery/jquery-ui-theme/smoothness.css @@ -1,8 +1,8 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers ----------------------------------*/ @@ -48,7 +48,7 @@ left: 0; position: absolute; opacity: 0; - filter:Alpha(Opacity=0); + filter:Alpha(Opacity=0); /* support: IE8 */ } .ui-front { @@ -274,7 +274,7 @@ button.ui-button::-moz-focus-inner { } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { - width: 49%; + width: 45%; } .ui-datepicker table { width: 100%; @@ -514,9 +514,9 @@ button.ui-button::-moz-focus-inner { height: 100%; } .ui-progressbar .ui-progressbar-overlay { - background: url("images/animated-overlay.gif"); + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); height: 100%; - filter: alpha(opacity=25); + filter: alpha(opacity=25); /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { @@ -672,7 +672,7 @@ button.ui-button::-moz-focus-inner { background-position: 0 0; } -/* For IE8 - See #6727 */ +/* support: IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; @@ -954,18 +954,18 @@ body .ui-tooltip { .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; - filter:Alpha(Opacity=70); + filter:Alpha(Opacity=70); /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; - filter:Alpha(Opacity=35); + filter:Alpha(Opacity=35); /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ } /* Icons @@ -1213,13 +1213,13 @@ body .ui-tooltip { .ui-widget-overlay { background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3; - filter: Alpha(Opacity=30); + filter: Alpha(Opacity=30); /* support: IE8 */ } .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3; - filter: Alpha(Opacity=30); + filter: Alpha(Opacity=30); /* support: IE8 */ border-radius: 8px; } diff --git a/lib/scripts/jquery/jquery-ui.js b/lib/scripts/jquery/jquery-ui.js index 670e39a8f..31ee9cd81 100644 --- a/lib/scripts/jquery/jquery-ui.js +++ b/lib/scripts/jquery/jquery-ui.js @@ -1,7 +1,7 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ (function( factory ) { if ( typeof define === "function" && define.amd ) { @@ -15,10 +15,10 @@ } }(function( $ ) { /*! - * jQuery UI Core 1.11.0 + * jQuery UI Core 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -30,7 +30,7 @@ $.ui = $.ui || {}; $.extend( $.ui, { - version: "1.11.0", + version: "1.11.4", keyCode: { BACKSPACE: 8, @@ -54,15 +54,16 @@ $.extend( $.ui, { // plugins $.fn.extend({ - scrollParent: function() { + scrollParent: function( includeHidden ) { var position = this.css( "position" ), excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, scrollParent = this.parents().filter( function() { var parent = $( this ); if ( excludeStaticParent && parent.css( "position" ) === "static" ) { return false; } - return (/(auto|scroll)/).test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); }).eq( 0 ); return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; @@ -99,10 +100,10 @@ function focusable( element, isTabIndexNotNaN ) { if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { return false; } - img = $( "img[usemap=#" + mapName + "]" )[0]; + img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; return !!img && visible( img ); } - return ( /input|select|textarea|button|object/.test( nodeName ) ? + return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? !element.disabled : "a" === nodeName ? element.href || isTabIndexNotNaN : @@ -308,10 +309,10 @@ $.ui.plugin = { /*! - * jQuery UI Widget 1.11.0 + * jQuery UI Widget 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -324,11 +325,18 @@ var widget_uuid = 0, $.cleanData = (function( orig ) { return function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { try { - $( elem ).triggerHandler( "remove" ); + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + // http://bugs.jquery.com/ticket/8235 - } catch( e ) {} + } catch ( e ) {} } orig( elems ); }; @@ -482,11 +490,6 @@ $.widget.bridge = function( name, object ) { args = widget_slice.call( arguments, 1 ), returnValue = this; - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.widget.extend.apply( null, [ options ].concat(args) ) : - options; - if ( isMethodCall ) { this.each(function() { var methodValue, @@ -511,6 +514,12 @@ $.widget.bridge = function( name, object ) { } }); } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + this.each(function() { var instance = $.data( this, fullName ); if ( instance ) { @@ -546,10 +555,6 @@ $.Widget.prototype = { this.element = $( element ); this.uuid = widget_uuid++; this.eventNamespace = "." + this.widgetName + this.uuid; - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); this.bindings = $(); this.hoverable = $(); @@ -572,6 +577,11 @@ $.Widget.prototype = { this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); } + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + this._create(); this._trigger( "create", null, this._getCreateEventData() ); this._init(); @@ -734,8 +744,14 @@ $.Widget.prototype = { }, _off: function( element, eventName ) { - eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); }, _delay: function( handler, delay ) { @@ -841,10 +857,10 @@ var widget = $.widget; /*! - * jQuery UI Mouse 1.11.0 + * jQuery UI Mouse 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -858,7 +874,7 @@ $( document ).mouseup( function() { }); var mouse = $.widget("ui.mouse", { - version: "1.11.0", + version: "1.11.4", options: { cancel: "input,textarea,button,select,option", distance: 1, @@ -899,6 +915,8 @@ var mouse = $.widget("ui.mouse", { return; } + this._mouseMoved = false; + // we may have missed mouseup (out of window) (this._mouseStarted && this._mouseUp(event)); @@ -952,13 +970,23 @@ var mouse = $.widget("ui.mouse", { }, _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { - return this._mouseUp(event); + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { + return this._mouseUp(event); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + return this._mouseUp( event ); + } + } - // Iframe mouseup check - mouseup occurred in another document - } else if ( !event.which ) { - return this._mouseUp( event ); + if ( event.which || event.button ) { + this._mouseMoved = true; } if (this._mouseStarted) { @@ -1015,10 +1043,10 @@ var mouse = $.widget("ui.mouse", { /*! - * jQuery UI Position 1.11.0 + * jQuery UI Position 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -1129,8 +1157,11 @@ $.position = { offset: withinElement.offset() || { left: 0, top: 0 }, scrollLeft: withinElement.scrollLeft(), scrollTop: withinElement.scrollTop(), - width: isWindow ? withinElement.width() : withinElement.outerWidth(), - height: isWindow ? withinElement.height() : withinElement.outerHeight() + + // support: jQuery 1.6.x + // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows + width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), + height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() }; } }; @@ -1451,12 +1482,12 @@ $.ui.position = { newOverBottom; if ( overTop < 0 ) { newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; - if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) { + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { position.top += myOffset + atOffset + offset; } } else if ( overBottom > 0 ) { newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; - if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) { + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { position.top += myOffset + atOffset + offset; } } @@ -1519,10 +1550,10 @@ var position = $.ui.position; /*! - * jQuery UI Accordion 1.11.0 + * jQuery UI Accordion 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -1531,7 +1562,7 @@ var position = $.ui.position; var accordion = $.widget( "ui.accordion", { - version: "1.11.0", + version: "1.11.4", options: { active: 0, animate: {}, @@ -1765,13 +1796,22 @@ var accordion = $.widget( "ui.accordion", { }, _processPanels: function() { + var prevHeaders = this.headers, + prevPanels = this.panels; + this.headers = this.element.find( this.options.header ) .addClass( "ui-accordion-header ui-state-default ui-corner-all" ); - this.headers.next() + this.panels = this.headers.next() .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) .filter( ":not(.ui-accordion-content-active)" ) .hide(); + + // Avoid memory leaks (#10056) + if ( prevPanels ) { + this._off( prevHeaders.not( this.headers ) ); + this._off( prevPanels.not( this.panels ) ); + } }, _refresh: function() { @@ -1980,7 +2020,10 @@ var accordion = $.widget( "ui.accordion", { toHide.attr({ "aria-hidden": "true" }); - toHide.prev().attr( "aria-selected", "false" ); + toHide.prev().attr({ + "aria-selected": "false", + "aria-expanded": "false" + }); // if we're switching panels, remove the old header from the tab order // if we're opening from collapsed state, remove the previous header from the tab order // if we're collapsing, then keep the collapsing header in the tab order @@ -1991,7 +2034,7 @@ var accordion = $.widget( "ui.accordion", { }); } else if ( toShow.length ) { this.headers.filter(function() { - return $( this ).attr( "tabIndex" ) === 0; + return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; }) .attr( "tabIndex", -1 ); } @@ -2001,8 +2044,8 @@ var accordion = $.widget( "ui.accordion", { .prev() .attr({ "aria-selected": "true", - tabIndex: 0, - "aria-expanded": "true" + "aria-expanded": "true", + tabIndex: 0 }); }, @@ -2010,6 +2053,7 @@ var accordion = $.widget( "ui.accordion", { var total, easing, duration, that = this, adjust = 0, + boxSizing = toShow.css( "box-sizing" ), down = toShow.length && ( !toHide.length || ( toShow.index() < toHide.index() ) ), animate = this.options.animate || {}, @@ -2052,7 +2096,9 @@ var accordion = $.widget( "ui.accordion", { step: function( now, fx ) { fx.now = Math.round( now ); if ( fx.prop !== "height" ) { - adjust += fx.now; + if ( boxSizing === "content-box" ) { + adjust += fx.now; + } } else if ( that.options.heightStyle !== "content" ) { fx.now = Math.round( total - toHide.outerHeight() - adjust ); adjust = 0; @@ -2080,10 +2126,10 @@ var accordion = $.widget( "ui.accordion", { /*! - * jQuery UI Menu 1.11.0 + * jQuery UI Menu 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -2092,7 +2138,7 @@ var accordion = $.widget( "ui.accordion", { var menu = $.widget( "ui.menu", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<ul>", delay: 300, options: { @@ -2167,6 +2213,12 @@ var menu = $.widget( "ui.menu", { } }, "mouseenter .ui-menu-item": function( event ) { + // Ignore mouse events while typeahead is active, see #10458. + // Prevents focusing the wrong item when typeahead causes a scroll while the mouse + // is over an item in the menu + if ( this.previousFilter ) { + return; + } var target = $( event.currentTarget ); // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border @@ -2246,13 +2298,9 @@ var menu = $.widget( "ui.menu", { }, _keydown: function( event ) { - var match, prev, character, skip, regex, + var match, prev, character, skip, preventDefault = true; - function escape( value ) { - return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); - } - switch ( event.keyCode ) { case $.ui.keyCode.PAGE_UP: this.previousPage( event ); @@ -2301,10 +2349,7 @@ var menu = $.widget( "ui.menu", { character = prev + character; } - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.find( this.options.items ).filter(function() { - return regex.test( $( this ).text() ); - }); + match = this._filterMenuItems( character ); match = skip && match.index( this.active.next() ) !== -1 ? this.active.nextAll( ".ui-menu-item" ) : match; @@ -2313,22 +2358,15 @@ var menu = $.widget( "ui.menu", { // to move down the menu to the first item that starts with that character if ( !match.length ) { character = String.fromCharCode( event.keyCode ); - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.find( this.options.items ).filter(function() { - return regex.test( $( this ).text() ); - }); + match = this._filterMenuItems( character ); } if ( match.length ) { this.focus( event, match ); - if ( match.length > 1 ) { - this.previousFilter = character; - this.filterTimer = this._delay(function() { - delete this.previousFilter; - }, 1000 ); - } else { + this.previousFilter = character; + this.filterTimer = this._delay(function() { delete this.previousFilter; - } + }, 1000 ); } else { delete this.previousFilter; } @@ -2700,15 +2738,29 @@ var menu = $.widget( "ui.menu", { this.collapseAll( event, true ); } this._trigger( "select", event, ui ); + }, + + _filterMenuItems: function(character) { + var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ), + regex = new RegExp( "^" + escapedCharacter, "i" ); + + return this.activeMenu + .find( this.options.items ) + + // Only match on items, not dividers or other content (#10571) + .filter( ".ui-menu-item" ) + .filter(function() { + return regex.test( $.trim( $( this ).text() ) ); + }); } }); /*! - * jQuery UI Autocomplete 1.11.0 + * jQuery UI Autocomplete 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -2717,7 +2769,7 @@ var menu = $.widget( "ui.menu", { $.widget( "ui.autocomplete", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<input>", options: { appendTo: null, @@ -2820,7 +2872,9 @@ $.widget( "ui.autocomplete", { break; case keyCode.ESCAPE: if ( this.menu.element.is( ":visible" ) ) { - this._value( this.term ); + if ( !this.isMultiLine ) { + this._value( this.term ); + } this.close( event ); // Different browsers have different default behavior for escape // Single press can mean undo or clear @@ -2956,7 +3010,7 @@ $.widget( "ui.autocomplete", { // Announce the value in the liveRegion label = ui.item.attr( "aria-label" ) || item.value; - if ( label && jQuery.trim( label ).length ) { + if ( label && $.trim( label ).length ) { this.liveRegion.children().hide(); $( "<div>" ).text( label ).appendTo( this.liveRegion ); } @@ -3315,10 +3369,10 @@ var autocomplete = $.ui.autocomplete; /*! - * jQuery UI Button 1.11.0 + * jQuery UI Button 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -3354,7 +3408,7 @@ var lastActive, }; $.widget( "ui.button", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<button>", options: { disabled: null, @@ -3650,7 +3704,7 @@ $.widget( "ui.button", { }); $.widget( "ui.buttonset", { - version: "1.11.0", + version: "1.11.4", options: { items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" }, @@ -3712,10 +3766,10 @@ var button = $.ui.button; /*! - * jQuery UI Datepicker 1.11.0 + * jQuery UI Datepicker 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -3723,7 +3777,7 @@ var button = $.ui.button; */ -$.extend($.ui, { datepicker: { version: "1.11.0" } }); +$.extend($.ui, { datepicker: { version: "1.11.4" } }); var datepicker_instActive; @@ -4089,6 +4143,10 @@ $.extend(Datepicker.prototype, { } else if (nodeName === "div" || nodeName === "span") { $target.removeClass(this.markerClassName).empty(); } + + if ( datepicker_instActive === inst ) { + datepicker_instActive = null; + } }, /* Enable the date picker to a jQuery selection. @@ -4499,12 +4557,16 @@ $.extend(Datepicker.prototype, { datepicker_instActive = inst; // for delegate hover events inst.dpDiv.empty().append(this._generateHTML(inst)); this._attachHandlers(inst); - inst.dpDiv.find("." + this._dayOverClass + " a"); var origyearshtml, numMonths = this._getNumberOfMonths(inst), cols = numMonths[1], - width = 17; + width = 17, + activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); + + if ( activeCell.length > 0 ) { + datepicker_handleMouseover.apply( activeCell.get( 0 ) ); + } inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); if (cols > 1) { @@ -4838,7 +4900,8 @@ $.extend(Datepicker.prototype, { var isDoubled = lookAhead(match), size = (match === "@" ? 14 : (match === "!" ? 20 : (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), - digits = new RegExp("^\\d{1," + size + "}"), + minSize = (match === "y" ? size : 1), + digits = new RegExp("^\\d{" + minSize + "," + size + "}"), num = value.substring(iValue).match(digits); if (!num) { throw "Missing number at position " + iValue; @@ -5699,18 +5762,20 @@ function datepicker_bindHover(dpDiv) { $(this).removeClass("ui-datepicker-next-hover"); } }) - .delegate(selector, "mouseover", function(){ - if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? dpDiv.parent()[0] : datepicker_instActive.input[0])) { - $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - $(this).addClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).addClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).addClass("ui-datepicker-next-hover"); - } - } - }); + .delegate( selector, "mouseover", datepicker_handleMouseover ); +} + +function datepicker_handleMouseover() { + if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { + $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); + $(this).addClass("ui-state-hover"); + if (this.className.indexOf("ui-datepicker-prev") !== -1) { + $(this).addClass("ui-datepicker-prev-hover"); + } + if (this.className.indexOf("ui-datepicker-next") !== -1) { + $(this).addClass("ui-datepicker-next-hover"); + } + } } /* jQuery extend now ignores nulls! */ @@ -5766,16 +5831,16 @@ $.fn.datepicker = function(options){ $.datepicker = new Datepicker(); // singleton instance $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.11.0"; +$.datepicker.version = "1.11.4"; var datepicker = $.datepicker; /*! - * jQuery UI Draggable 1.11.0 + * jQuery UI Draggable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -5784,7 +5849,7 @@ var datepicker = $.datepicker; $.widget("ui.draggable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "drag", options: { addClasses: true, @@ -5819,8 +5884,8 @@ $.widget("ui.draggable", $.ui.mouse, { }, _create: function() { - if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) { - this.element[0].style.position = "relative"; + if ( this.options.helper === "original" ) { + this._setPositionRelative(); } if (this.options.addClasses){ this.element.addClass("ui-draggable"); @@ -5836,6 +5901,7 @@ $.widget("ui.draggable", $.ui.mouse, { _setOption: function( key, value ) { this._super( key, value ); if ( key === "handle" ) { + this._removeHandleClassName(); this._setHandleClassName(); } }, @@ -5851,20 +5917,9 @@ $.widget("ui.draggable", $.ui.mouse, { }, _mouseCapture: function(event) { + var o = this.options; - var document = this.document[ 0 ], - o = this.options; - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - // Support: IE9+ - // If the <body> is blurred, IE will switch windows, see #9520 - if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { - // Blur any element that currently has focus, see #4261 - $( document.activeElement ).blur(); - } - } catch ( error ) {} + this._blurActiveElement( event ); // among others, prevent a drag on a resizable-handle if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { @@ -5877,20 +5932,54 @@ $.widget("ui.draggable", $.ui.mouse, { return false; } - $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { - $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>") - .css({ - width: this.offsetWidth + "px", height: this.offsetHeight + "px", - position: "absolute", opacity: "0.001", zIndex: 1000 - }) - .css($(this).offset()) - .appendTo("body"); - }); + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); return true; }, + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map(function() { + var iframe = $( this ); + + return $( "<div>" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + }); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var document = this.document[ 0 ]; + + // Only need to blur if the event occurred on the draggable itself, see #10527 + if ( !this.handleElement.is( event.target ) ) { + return; + } + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> + try { + + // Support: IE9, IE10 + // If the <body> is blurred, IE will switch windows, see #9520 + if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { + + // Blur any element that currently has focus, see #4261 + $( document.activeElement ).blur(); + } + } catch ( error ) {} + }, + _mouseStart: function(event) { var o = this.options; @@ -5918,28 +6007,15 @@ $.widget("ui.draggable", $.ui.mouse, { //Store the helper's css position this.cssPosition = this.helper.css( "position" ); - this.scrollParent = this.helper.scrollParent(); + this.scrollParent = this.helper.scrollParent( true ); this.offsetParent = this.helper.offsetParent(); - this.offsetParentCssPosition = this.offsetParent.css( "position" ); + this.hasFixedAncestor = this.helper.parents().filter(function() { + return $( this ).css( "position" ) === "fixed"; + }).length > 0; //The element's absolute position on the page minus margins - this.offset = this.positionAbs = this.element.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - //Reset scroll cache - this.offset.scroll = false; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); + this.positionAbs = this.element.offset(); + this._refreshOffsets( event ); //Generate the original position this.originalPosition = this.position = this._generatePosition( event, false ); @@ -5966,6 +6042,10 @@ $.widget("ui.draggable", $.ui.mouse, { $.ui.ddmanager.prepareOffsets(this, event); } + // Reset helper's right/bottom css if they're set and set explicit width/height instead + // as this prevents resizing of elements with right/bottom set (see #7772) + this._normalizeRightBottom(); + this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) @@ -5976,9 +6056,24 @@ $.widget("ui.draggable", $.ui.mouse, { return true; }, + _refreshOffsets: function( event ) { + this.offset = { + top: this.positionAbs.top - this.margins.top, + left: this.positionAbs.left - this.margins.left, + scroll: false, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() + }; + + this.offset.click = { + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }; + }, + _mouseDrag: function(event, noPropagation) { // reset any necessary cached properties (see #5009) - if ( this.offsetParentCssPosition === "fixed" ) { + if ( this.hasFixedAncestor ) { this.offset.parent = this._getParentOffset(); } @@ -6036,19 +6131,19 @@ $.widget("ui.draggable", $.ui.mouse, { return false; }, - _mouseUp: function(event) { - //Remove frame helpers - $("div.ui-draggable-iframeFix").each(function() { - this.parentNode.removeChild(this); - }); + _mouseUp: function( event ) { + this._unblockFrames(); //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) if ( $.ui.ddmanager ) { $.ui.ddmanager.dragStop(this, event); } - // The interaction is over; whether or not the click resulted in a drag, focus the element - this.element.focus(); + // Only need to focus if the event occurred on the draggable itself, see #10527 + if ( this.handleElement.is( event.target ) ) { + // The interaction is over; whether or not the click resulted in a drag, focus the element + this.element.focus(); + } return $.ui.mouse.prototype._mouseUp.call(this, event); }, @@ -6072,25 +6167,36 @@ $.widget("ui.draggable", $.ui.mouse, { }, _setHandleClassName: function() { - this._removeHandleClassName(); - $( this.options.handle || this.element ).addClass( "ui-draggable-handle" ); + this.handleElement = this.options.handle ? + this.element.find( this.options.handle ) : this.element; + this.handleElement.addClass( "ui-draggable-handle" ); }, _removeHandleClassName: function() { - this.element.find( ".ui-draggable-handle" ) - .addBack() - .removeClass( "ui-draggable-handle" ); + this.handleElement.removeClass( "ui-draggable-handle" ); }, _createHelper: function(event) { var o = this.options, - helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[ 0 ], [ event ])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element); + helperIsFunction = $.isFunction( o.helper ), + helper = helperIsFunction ? + $( o.helper.apply( this.element[ 0 ], [ event ] ) ) : + ( o.helper === "clone" ? + this.element.clone().removeAttr( "id" ) : + this.element ); if (!helper.parents("body").length) { helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); } + // http://bugs.jqueryui.com/ticket/9446 + // a helper function can return the original element + // which wouldn't have been set to relative in _create + if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) { + this._setPositionRelative(); + } + if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { helper.css("position", "absolute"); } @@ -6099,6 +6205,12 @@ $.widget("ui.draggable", $.ui.mouse, { }, + _setPositionRelative: function() { + if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) { + this.element[ 0 ].style.position = "relative"; + } + }, + _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); @@ -6144,8 +6256,8 @@ $.widget("ui.draggable", $.ui.mouse, { } return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) }; }, @@ -6167,10 +6279,10 @@ $.widget("ui.draggable", $.ui.mouse, { _cacheMargins: function() { this.margins = { - left: (parseInt(this.element.css("marginLeft"),10) || 0), - top: (parseInt(this.element.css("marginTop"),10) || 0), - right: (parseInt(this.element.css("marginRight"),10) || 0), - bottom: (parseInt(this.element.css("marginBottom"),10) || 0) + left: (parseInt(this.element.css("marginLeft"), 10) || 0), + top: (parseInt(this.element.css("marginTop"), 10) || 0), + right: (parseInt(this.element.css("marginRight"), 10) || 0), + bottom: (parseInt(this.element.css("marginBottom"), 10) || 0) }; }, @@ -6183,11 +6295,11 @@ $.widget("ui.draggable", $.ui.mouse, { _setContainment: function() { - var over, c, ce, + var isUserScrollable, c, ce, o = this.options, document = this.document[ 0 ]; - this.relative_container = null; + this.relativeContainer = null; if ( !o.containment ) { this.containment = null; @@ -6230,15 +6342,25 @@ $.widget("ui.draggable", $.ui.mouse, { return; } - over = c.css( "overflow" ) !== "hidden"; + isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) ); this.containment = [ ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), - ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right, - ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top - this.margins.bottom + ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - + ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - + this.helperProportions.width - + this.margins.left - + this.margins.right, + ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - + ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - + this.helperProportions.height - + this.margins.top - + this.margins.bottom ]; - this.relative_container = c; + this.relativeContainer = c; }, _convertPositionTo: function(d, pos) { @@ -6291,8 +6413,8 @@ $.widget("ui.draggable", $.ui.mouse, { // If we are not dragging yet, we won't check for options if ( constrainPosition ) { if ( this.containment ) { - if ( this.relative_container ){ - co = this.relative_container.offset(); + if ( this.relativeContainer ){ + co = this.relativeContainer.offset(); containment = [ this.containment[ 0 ] + co.left, this.containment[ 1 ] + co.top, @@ -6366,16 +6488,29 @@ $.widget("ui.draggable", $.ui.mouse, { } }, + _normalizeRightBottom: function() { + if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) { + this.helper.width( this.helper.width() ); + this.helper.css( "right", "auto" ); + } + if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) { + this.helper.height( this.helper.height() ); + this.helper.css( "bottom", "auto" ); + } + }, + // From now on bulk stuff - mainly helpers - _trigger: function(type, event, ui) { + _trigger: function( type, event, ui ) { ui = ui || this._uiHash(); $.ui.plugin.call( this, type, [ event, ui, this ], true ); - //The absolute position has to be recalculated after plugins - if (type === "drag") { - this.positionAbs = this._convertPositionTo("absolute"); + + // Absolute position and offset (see #6884 ) have to be recalculated after plugins + if ( /^(drag|start|stop)/.test( type ) ) { + this.positionAbs = this._convertPositionTo( "absolute" ); + ui.offset = this.positionAbs; } - return $.Widget.prototype._trigger.call(this, type, event, ui); + return $.Widget.prototype._trigger.call( this, type, event, ui ); }, plugins: {}, @@ -6391,160 +6526,201 @@ $.widget("ui.draggable", $.ui.mouse, { }); -$.ui.plugin.add("draggable", "connectToSortable", { - start: function( event, ui, inst ) { +$.ui.plugin.add( "draggable", "connectToSortable", { + start: function( event, ui, draggable ) { + var uiSortable = $.extend( {}, ui, { + item: draggable.element + }); - var o = inst.options, - uiSortable = $.extend({}, ui, { item: inst.element }); - inst.sortables = []; - $(o.connectToSortable).each(function() { + draggable.sortables = []; + $( draggable.options.connectToSortable ).each(function() { var sortable = $( this ).sortable( "instance" ); - if (sortable && !sortable.options.disabled) { - inst.sortables.push({ - instance: sortable, - shouldRevert: sortable.options.revert - }); - sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). + + if ( sortable && !sortable.options.disabled ) { + draggable.sortables.push( sortable ); + + // refreshPositions is called at drag start to refresh the containerCache + // which is used in drag. This ensures it's initialized and synchronized + // with any changes that might have happened on the page since initialization. + sortable.refreshPositions(); sortable._trigger("activate", event, uiSortable); } }); - }, - stop: function( event, ui, inst ) { - - //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper + stop: function( event, ui, draggable ) { var uiSortable = $.extend( {}, ui, { - item: inst.element + item: draggable.element }); - $.each(inst.sortables, function() { - if (this.instance.isOver) { + draggable.cancelHelperRemoval = false; - this.instance.isOver = 0; + $.each( draggable.sortables, function() { + var sortable = this; - inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance - this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) - - //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid" - if (this.shouldRevert) { - this.instance.options.revert = this.shouldRevert; - } + if ( sortable.isOver ) { + sortable.isOver = 0; - //Trigger the stop of the sortable - this.instance._mouseStop(event); + // Allow this sortable to handle removing the helper + draggable.cancelHelperRemoval = true; + sortable.cancelHelperRemoval = false; - this.instance.options.helper = this.instance.options._helper; + // Use _storedCSS To restore properties in the sortable, + // as this also handles revert (#9675) since the draggable + // may have modified them in unexpected ways (#8809) + sortable._storedCSS = { + position: sortable.placeholder.css( "position" ), + top: sortable.placeholder.css( "top" ), + left: sortable.placeholder.css( "left" ) + }; - //If the helper has been the original item, restore properties in the sortable - if (inst.options.helper === "original") { - this.instance.currentItem.css({ top: "auto", left: "auto" }); - } + sortable._mouseStop(event); + // Once drag has ended, the sortable should return to using + // its original helper, not the shared helper from draggable + sortable.options.helper = sortable.options._helper; } else { - this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance - this.instance._trigger("deactivate", event, uiSortable); - } + // Prevent this Sortable from removing the helper. + // However, don't set the draggable to remove the helper + // either as another connected Sortable may yet handle the removal. + sortable.cancelHelperRemoval = true; + sortable._trigger( "deactivate", event, uiSortable ); + } }); - }, - drag: function( event, ui, inst ) { - - var that = this; - - $.each(inst.sortables, function() { - + drag: function( event, ui, draggable ) { + $.each( draggable.sortables, function() { var innermostIntersecting = false, - thisSortable = this; + sortable = this; - //Copy over some variables to allow calling the sortable's native _intersectsWith - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; + // Copy over variables that sortable's _intersectsWith uses + sortable.positionAbs = draggable.positionAbs; + sortable.helperProportions = draggable.helperProportions; + sortable.offset.click = draggable.offset.click; - if (this.instance._intersectsWith(this.instance.containerCache)) { + if ( sortable._intersectsWith( sortable.containerCache ) ) { innermostIntersecting = true; - $.each(inst.sortables, function() { - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; - if (this !== thisSortable && - this.instance._intersectsWith(this.instance.containerCache) && - $.contains(thisSortable.instance.element[0], this.instance.element[0]) - ) { + + $.each( draggable.sortables, function() { + // Copy over variables that sortable's _intersectsWith uses + this.positionAbs = draggable.positionAbs; + this.helperProportions = draggable.helperProportions; + this.offset.click = draggable.offset.click; + + if ( this !== sortable && + this._intersectsWith( this.containerCache ) && + $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { innermostIntersecting = false; } + return innermostIntersecting; }); } - if (innermostIntersecting) { - //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once - if (!this.instance.isOver) { + if ( innermostIntersecting ) { + // If it intersects, we use a little isOver variable and set it once, + // so that the move-in stuff gets fired only once. + if ( !sortable.isOver ) { + sortable.isOver = 1; - this.instance.isOver = 1; - //Now we fake the start of dragging for the sortable instance, - //by cloning the list group item, appending it to the sortable and using it as inst.currentItem - //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) - this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); - this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it - this.instance.options.helper = function() { return ui.helper[0]; }; + // Store draggable's parent in case we need to reappend to it later. + draggable._parent = ui.helper.parent(); - event.target = this.instance.currentItem[0]; - this.instance._mouseCapture(event, true); - this.instance._mouseStart(event, true, true); + sortable.currentItem = ui.helper + .appendTo( sortable.element ) + .data( "ui-sortable-item", true ); - //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes - this.instance.offset.click.top = inst.offset.click.top; - this.instance.offset.click.left = inst.offset.click.left; - this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; - this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; + // Store helper option to later restore it + sortable.options._helper = sortable.options.helper; - inst._trigger("toSortable", event); - inst.dropped = this.instance.element; //draggable revert needs that - //hack so receive/update callbacks work (mostly) - inst.currentItem = inst.element; - this.instance.fromOutside = inst; + sortable.options.helper = function() { + return ui.helper[ 0 ]; + }; - } + // Fire the start events of the sortable with our passed browser event, + // and our own helper (so it doesn't create a new one) + event.target = sortable.currentItem[ 0 ]; + sortable._mouseCapture( event, true ); + sortable._mouseStart( event, true, true ); + + // Because the browser event is way off the new appended portlet, + // modify necessary variables to reflect the changes + sortable.offset.click.top = draggable.offset.click.top; + sortable.offset.click.left = draggable.offset.click.left; + sortable.offset.parent.left -= draggable.offset.parent.left - + sortable.offset.parent.left; + sortable.offset.parent.top -= draggable.offset.parent.top - + sortable.offset.parent.top; + + draggable._trigger( "toSortable", event ); + + // Inform draggable that the helper is in a valid drop zone, + // used solely in the revert option to handle "valid/invalid". + draggable.dropped = sortable.element; + + // Need to refreshPositions of all sortables in the case that + // adding to one sortable changes the location of the other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); - //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable - if (this.instance.currentItem) { - this.instance._mouseDrag(event); + // hack so receive/update callbacks work (mostly) + draggable.currentItem = draggable.element; + sortable.fromOutside = draggable; } + if ( sortable.currentItem ) { + sortable._mouseDrag( event ); + // Copy the sortable's position because the draggable's can potentially reflect + // a relative position, while sortable is always absolute, which the dragged + // element has now become. (#8809) + ui.position = sortable.position; + } } else { + // If it doesn't intersect with the sortable, and it intersected before, + // we fake the drag stop of the sortable, but make sure it doesn't remove + // the helper by using cancelHelperRemoval. + if ( sortable.isOver ) { - //If it doesn't intersect with the sortable, and it intersected before, - //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval - if (this.instance.isOver) { - - this.instance.isOver = 0; - this.instance.cancelHelperRemoval = true; + sortable.isOver = 0; + sortable.cancelHelperRemoval = true; - //Prevent reverting on this forced stop - this.instance.options.revert = false; + // Calling sortable's mouseStop would trigger a revert, + // so revert must be temporarily false until after mouseStop is called. + sortable.options._revert = sortable.options.revert; + sortable.options.revert = false; - // The out event needs to be triggered independently - this.instance._trigger("out", event, this.instance._uiHash(this.instance)); + sortable._trigger( "out", event, sortable._uiHash( sortable ) ); + sortable._mouseStop( event, true ); - this.instance._mouseStop(event, true); - this.instance.options.helper = this.instance.options._helper; + // restore sortable behaviors that were modfied + // when the draggable entered the sortable area (#9481) + sortable.options.revert = sortable.options._revert; + sortable.options.helper = sortable.options._helper; - //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size - this.instance.currentItem.remove(); - if (this.instance.placeholder) { - this.instance.placeholder.remove(); + if ( sortable.placeholder ) { + sortable.placeholder.remove(); } - inst._trigger("fromSortable", event); - inst.dropped = false; //draggable revert needs that - } + // Restore and recalculate the draggable's offset considering the sortable + // may have modified them in unexpected ways. (#8809, #10669) + ui.helper.appendTo( draggable._parent ); + draggable._refreshOffsets( event ); + ui.position = draggable._generatePosition( event, true ); - } + draggable._trigger( "fromSortable", event ); - }); + // Inform draggable that the helper is no longer in a valid drop zone + draggable.dropped = false; + // Need to refreshPositions of all sortables just in case removing + // from one sortable changes the location of other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); + } + } + }); } }); @@ -6585,30 +6761,35 @@ $.ui.plugin.add("draggable", "opacity", { $.ui.plugin.add("draggable", "scroll", { start: function( event, ui, i ) { - if ( i.scrollParent[ 0 ] !== i.document[ 0 ] && i.scrollParent[ 0 ].tagName !== "HTML" ) { - i.overflowOffset = i.scrollParent.offset(); + if ( !i.scrollParentNotHidden ) { + i.scrollParentNotHidden = i.helper.scrollParent( false ); + } + + if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { + i.overflowOffset = i.scrollParentNotHidden.offset(); } }, drag: function( event, ui, i ) { var o = i.options, scrolled = false, + scrollParent = i.scrollParentNotHidden[ 0 ], document = i.document[ 0 ]; - if ( i.scrollParent[ 0 ] !== document && i.scrollParent[ 0 ].tagName !== "HTML" ) { - if (!o.axis || o.axis !== "x") { - if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; - } else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity) { - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; + if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { + if ( !o.axis || o.axis !== "x" ) { + if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; + } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; } } - if (!o.axis || o.axis !== "y") { - if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; - } else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity) { - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; + if ( !o.axis || o.axis !== "y" ) { + if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; + } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; } } @@ -6669,9 +6850,9 @@ $.ui.plugin.add("draggable", "snap", { for (i = inst.snapElements.length - 1; i >= 0; i--){ - l = inst.snapElements[i].left; + l = inst.snapElements[i].left - inst.margins.left; r = l + inst.snapElements[i].width; - t = inst.snapElements[i].top; + t = inst.snapElements[i].top - inst.margins.top; b = t + inst.snapElements[i].height; if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) { @@ -6688,16 +6869,16 @@ $.ui.plugin.add("draggable", "snap", { ls = Math.abs(l - x2) <= d; rs = Math.abs(r - x1) <= d; if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top; } if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top; } if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left; } if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left; } } @@ -6709,16 +6890,16 @@ $.ui.plugin.add("draggable", "snap", { ls = Math.abs(l - x1) <= d; rs = Math.abs(r - x2) <= d; if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top; } if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top; } if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left; } if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left; } } @@ -6736,8 +6917,8 @@ $.ui.plugin.add("draggable", "stack", { start: function( event, ui, instance ) { var min, o = instance.options, - group = $.makeArray($(o.stack)).sort(function(a,b) { - return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); + group = $.makeArray($(o.stack)).sort(function(a, b) { + return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0); }); if (!group.length) { return; } @@ -6773,10 +6954,10 @@ var draggable = $.ui.draggable; /*! - * jQuery UI Resizable 1.11.0 + * jQuery UI Resizable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -6785,7 +6966,7 @@ var draggable = $.ui.draggable; $.widget("ui.resizable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "resize", options: { alsoResize: false, @@ -6817,7 +6998,7 @@ $.widget("ui.resizable", $.ui.mouse, { }, _isNumber: function( value ) { - return !isNaN( parseInt( value , 10 ) ); + return !isNaN( parseInt( value, 10 ) ); }, _hasScroll: function( el, a ) { @@ -6858,7 +7039,7 @@ $.widget("ui.resizable", $.ui.mouse, { }); // Wrap the element if it cannot hold child nodes - if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { + if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) { this.element.wrap( $("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ @@ -6876,14 +7057,28 @@ $.widget("ui.resizable", $.ui.mouse, { this.elementIsWrapper = true; - this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); - this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); + this.element.css({ + marginLeft: this.originalElement.css("marginLeft"), + marginTop: this.originalElement.css("marginTop"), + marginRight: this.originalElement.css("marginRight"), + marginBottom: this.originalElement.css("marginBottom") + }); + this.originalElement.css({ + marginLeft: 0, + marginTop: 0, + marginRight: 0, + marginBottom: 0 + }); // support: Safari // Prevent Safari textarea resize this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); - this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); + this._proportionallyResizeElements.push( this.originalElement.css({ + position: "static", + zoom: 1, + display: "block" + }) ); // support: IE9 // avoid IE jump (hard set the margin) @@ -6892,8 +7087,21 @@ $.widget("ui.resizable", $.ui.mouse, { this._proportionallyResize(); } - this.handles = o.handles || (!$(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); - if(this.handles.constructor === String) { + this.handles = o.handles || + ( !$(".ui-resizable-handle", this.element).length ? + "e,s,se" : { + n: ".ui-resizable-n", + e: ".ui-resizable-e", + s: ".ui-resizable-s", + w: ".ui-resizable-w", + se: ".ui-resizable-se", + sw: ".ui-resizable-sw", + ne: ".ui-resizable-ne", + nw: ".ui-resizable-nw" + } ); + + this._handles = $(); + if ( this.handles.constructor === String ) { if ( this.handles === "all") { this.handles = "n,e,s,w,se,sw,ne,nw"; @@ -6902,10 +7110,10 @@ $.widget("ui.resizable", $.ui.mouse, { n = this.handles.split(","); this.handles = {}; - for(i = 0; i < n.length; i++) { + for (i = 0; i < n.length; i++) { handle = $.trim(n[i]); - hname = "ui-resizable-"+handle; + hname = "ui-resizable-" + handle; axis = $("<div class='ui-resizable-handle " + hname + "'></div>"); axis.css({ zIndex: o.zIndex }); @@ -6915,7 +7123,7 @@ $.widget("ui.resizable", $.ui.mouse, { axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); } - this.handles[handle] = ".ui-resizable-"+handle; + this.handles[handle] = ".ui-resizable-" + handle; this.element.append(axis); } @@ -6927,13 +7135,16 @@ $.widget("ui.resizable", $.ui.mouse, { target = target || this.element; - for(i in this.handles) { + for (i in this.handles) { - if(this.handles[i].constructor === String) { + if (this.handles[i].constructor === String) { this.handles[i] = this.element.children( this.handles[ i ] ).first().show(); + } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) { + this.handles[ i ] = $( this.handles[ i ] ); + this._on( this.handles[ i ], { "mousedown": that._mouseDown }); } - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { + if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) { axis = $(this.handles[i], this.element); @@ -6947,21 +7158,17 @@ $.widget("ui.resizable", $.ui.mouse, { target.css(padPos, padWrapper); this._proportionallyResize(); - } - // TODO: What's that good for? There's not anything to be executed left - if(!$(this.handles[i]).length) { - continue; - } + this._handles = this._handles.add( this.handles[ i ] ); } }; // TODO: make renderAxis a prototype function this._renderAxis(this.element); - this._handles = $(".ui-resizable-handle", this.element) - .disableSelection(); + this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) ); + this._handles.disableSelection(); this._handles.mouseover(function() { if (!that.resizing) { @@ -6983,7 +7190,7 @@ $.widget("ui.resizable", $.ui.mouse, { $(this).removeClass("ui-resizable-autohide"); that._handles.show(); }) - .mouseleave(function(){ + .mouseleave(function() { if (o.disabled) { return; } @@ -6995,7 +7202,6 @@ $.widget("ui.resizable", $.ui.mouse, { } this._mouseInit(); - }, _destroy: function() { @@ -7004,8 +7210,13 @@ $.widget("ui.resizable", $.ui.mouse, { var wrapper, _destroy = function(exp) { - $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") - .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); + $(exp) + .removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") + .removeData("resizable") + .removeData("ui-resizable") + .unbind(".resizable") + .find(".ui-resizable-handle") + .remove(); }; // TODO: Unwrap at same DOM position @@ -7062,13 +7273,34 @@ $.widget("ui.resizable", $.ui.mouse, { this.offset = this.helper.offset(); this.position = { left: curleft, top: curtop }; - this.size = this._helper ? { width: this.helper.width(), height: this.helper.height() } : { width: el.width(), height: el.height() }; - this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + + this.size = this._helper ? { + width: this.helper.width(), + height: this.helper.height() + } : { + width: el.width(), + height: el.height() + }; + + this.originalSize = this._helper ? { + width: el.outerWidth(), + height: el.outerHeight() + } : { + width: el.width(), + height: el.height() + }; + + this.sizeDiff = { + width: el.outerWidth() - el.width(), + height: el.outerHeight() - el.height() + }; + this.originalPosition = { left: curleft, top: curtop }; - this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; this.originalMousePosition = { left: event.pageX, top: event.pageY }; - this.aspectRatio = (typeof o.aspectRatio === "number") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); + this.aspectRatio = (typeof o.aspectRatio === "number") ? + o.aspectRatio : + ((this.originalSize.width / this.originalSize.height) || 1); cursor = $(".ui-resizable-" + this.axis).css("cursor"); $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); @@ -7080,28 +7312,20 @@ $.widget("ui.resizable", $.ui.mouse, { _mouseDrag: function(event) { - var data, - el = this.helper, props = {}, + var data, props, smp = this.originalMousePosition, a = this.axis, - dx = (event.pageX-smp.left)||0, - dy = (event.pageY-smp.top)||0, + dx = (event.pageX - smp.left) || 0, + dy = (event.pageY - smp.top) || 0, trigger = this._change[a]; - this.prevPosition = { - top: this.position.top, - left: this.position.left - }; - this.prevSize = { - width: this.size.width, - height: this.size.height - }; + this._updatePrevProperties(); if (!trigger) { return false; } - data = trigger.apply(this, [event, dx, dy]); + data = trigger.apply(this, [ event, dx, dy ]); this._updateVirtualBoundaries(event.shiftKey); if (this._aspectRatio || event.shiftKey) { @@ -7114,26 +7338,16 @@ $.widget("ui.resizable", $.ui.mouse, { this._propagate("resize", event); - if ( this.position.top !== this.prevPosition.top ) { - props.top = this.position.top + "px"; - } - if ( this.position.left !== this.prevPosition.left ) { - props.left = this.position.left + "px"; - } - if ( this.size.width !== this.prevSize.width ) { - props.width = this.size.width + "px"; - } - if ( this.size.height !== this.prevSize.height ) { - props.height = this.size.height + "px"; - } - el.css( props ); + props = this._applyChanges(); if ( !this._helper && this._proportionallyResizeElements.length ) { this._proportionallyResize(); } if ( !$.isEmptyObject( props ) ) { + this._updatePrevProperties(); this._trigger( "resize", event, this.ui() ); + this._applyChanges(); } return false; @@ -7145,16 +7359,21 @@ $.widget("ui.resizable", $.ui.mouse, { var pr, ista, soffseth, soffsetw, s, left, top, o = this.options, that = this; - if(this._helper) { + if (this._helper) { pr = this._proportionallyResizeElements; ista = pr.length && (/textarea/i).test(pr[0].nodeName); - soffseth = ista && this._hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height; + soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height; soffsetw = ista ? 0 : that.sizeDiff.width; - s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }; - left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null; - top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; + s = { + width: (that.helper.width() - soffsetw), + height: (that.helper.height() - soffseth) + }; + left = (parseInt(that.element.css("left"), 10) + + (that.position.left - that.originalPosition.left)) || null; + top = (parseInt(that.element.css("top"), 10) + + (that.position.top - that.originalPosition.top)) || null; if (!o.animate) { this.element.css($.extend(s, { top: top, left: left })); @@ -7182,6 +7401,38 @@ $.widget("ui.resizable", $.ui.mouse, { }, + _updatePrevProperties: function() { + this.prevPosition = { + top: this.position.top, + left: this.position.left + }; + this.prevSize = { + width: this.size.width, + height: this.size.height + }; + }, + + _applyChanges: function() { + var props = {}; + + if ( this.position.top !== this.prevPosition.top ) { + props.top = this.position.top + "px"; + } + if ( this.position.left !== this.prevPosition.left ) { + props.left = this.position.left + "px"; + } + if ( this.size.width !== this.prevSize.width ) { + props.width = this.size.width + "px"; + } + if ( this.size.height !== this.prevSize.height ) { + props.height = this.size.height + "px"; + } + + this.helper.css( props ); + + return props; + }, + _updateVirtualBoundaries: function(forceAspectRatio) { var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, o = this.options; @@ -7193,22 +7444,22 @@ $.widget("ui.resizable", $.ui.mouse, { maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity }; - if(this._aspectRatio || forceAspectRatio) { + if (this._aspectRatio || forceAspectRatio) { pMinWidth = b.minHeight * this.aspectRatio; pMinHeight = b.minWidth / this.aspectRatio; pMaxWidth = b.maxHeight * this.aspectRatio; pMaxHeight = b.maxWidth / this.aspectRatio; - if(pMinWidth > b.minWidth) { + if (pMinWidth > b.minWidth) { b.minWidth = pMinWidth; } - if(pMinHeight > b.minHeight) { + if (pMinHeight > b.minHeight) { b.minHeight = pMinHeight; } - if(pMaxWidth < b.maxWidth) { + if (pMaxWidth < b.maxWidth) { b.maxWidth = pMaxWidth; } - if(pMaxHeight < b.maxHeight) { + if (pMaxHeight < b.maxHeight) { b.maxHeight = pMaxHeight; } } @@ -7259,8 +7510,10 @@ $.widget("ui.resizable", $.ui.mouse, { var o = this._vBoundaries, a = this.axis, - ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), - isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), + ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), + ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), + isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), + isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height, cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); @@ -7300,32 +7553,56 @@ $.widget("ui.resizable", $.ui.mouse, { return data; }, + _getPaddingPlusBorderDimensions: function( element ) { + var i = 0, + widths = [], + borders = [ + element.css( "borderTopWidth" ), + element.css( "borderRightWidth" ), + element.css( "borderBottomWidth" ), + element.css( "borderLeftWidth" ) + ], + paddings = [ + element.css( "paddingTop" ), + element.css( "paddingRight" ), + element.css( "paddingBottom" ), + element.css( "paddingLeft" ) + ]; + + for ( ; i < 4; i++ ) { + widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 ); + widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 ); + } + + return { + height: widths[ 0 ] + widths[ 2 ], + width: widths[ 1 ] + widths[ 3 ] + }; + }, + _proportionallyResize: function() { if (!this._proportionallyResizeElements.length) { return; } - var i, j, borders, paddings, prel, + var prel, + i = 0, element = this.helper || this.element; - for ( i=0; i < this._proportionallyResizeElements.length; i++) { + for ( ; i < this._proportionallyResizeElements.length; i++) { prel = this._proportionallyResizeElements[i]; - if (!this.borderDif) { - this.borderDif = []; - borders = [prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")]; - paddings = [prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")]; - - for ( j = 0; j < borders.length; j++ ) { - this.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 ); - } + // TODO: Seems like a bug to cache this.outerDimensions + // considering that we are in a loop. + if (!this.outerDimensions) { + this.outerDimensions = this._getPaddingPlusBorderDimensions( prel ); } prel.css({ - height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, - width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 + height: (element.height() - this.outerDimensions.height) || 0, + width: (element.width() - this.outerDimensions.width) || 0 }); } @@ -7337,7 +7614,7 @@ $.widget("ui.resizable", $.ui.mouse, { var el = this.element, o = this.options; this.elementOffset = el.offset(); - if(this._helper) { + if (this._helper) { this.helper = this.helper || $("<div style='overflow:hidden;'></div>"); @@ -7345,8 +7622,8 @@ $.widget("ui.resizable", $.ui.mouse, { width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", - left: this.elementOffset.left +"px", - top: this.elementOffset.top +"px", + left: this.elementOffset.left + "px", + top: this.elementOffset.top + "px", zIndex: ++o.zIndex //TODO: Don't modify option }); @@ -7376,21 +7653,25 @@ $.widget("ui.resizable", $.ui.mouse, { return { height: this.originalSize.height + dy }; }, se: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + return $.extend(this._change.s.apply(this, arguments), + this._change.e.apply(this, [ event, dx, dy ])); }, sw: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + return $.extend(this._change.s.apply(this, arguments), + this._change.w.apply(this, [ event, dx, dy ])); }, ne: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + return $.extend(this._change.n.apply(this, arguments), + this._change.e.apply(this, [ event, dx, dy ])); }, nw: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + return $.extend(this._change.n.apply(this, arguments), + this._change.w.apply(this, [ event, dx, dy ])); } }, _propagate: function(n, event) { - $.ui.plugin.call(this, n, [event, this.ui()]); + $.ui.plugin.call(this, n, [ event, this.ui() ]); (n !== "resize" && this._trigger(n, event, this.ui())); }, @@ -7404,9 +7685,7 @@ $.widget("ui.resizable", $.ui.mouse, { position: this.position, size: this.size, originalSize: this.originalSize, - originalPosition: this.originalPosition, - prevSize: this.prevSize, - prevPosition: this.prevPosition + originalPosition: this.originalPosition }; } @@ -7423,11 +7702,13 @@ $.ui.plugin.add("resizable", "animate", { o = that.options, pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && that._hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height, + soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width, style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, - left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null, - top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; + left = (parseInt(that.element.css("left"), 10) + + (that.position.left - that.originalPosition.left)) || null, + top = (parseInt(that.element.css("top"), 10) + + (that.position.top - that.originalPosition.top)) || null; that.element.animate( $.extend(style, top && left ? { top: top, left: left } : {}), { @@ -7520,7 +7801,7 @@ $.ui.plugin.add( "resizable", "containment", { } }, - resize: function( event, ui ) { + resize: function( event ) { var woset, hoset, isParent, isOffsetRelative, that = $( this ).resizable( "instance" ), o = that.options, @@ -7539,7 +7820,11 @@ $.ui.plugin.add( "resizable", "containment", { } if ( cp.left < ( that._helper ? co.left : 0 ) ) { - that.size.width = that.size.width + ( that._helper ? ( that.position.left - co.left ) : ( that.position.left - cop.left ) ); + that.size.width = that.size.width + + ( that._helper ? + ( that.position.left - co.left ) : + ( that.position.left - cop.left ) ); + if ( pRatio ) { that.size.height = that.size.width / that.aspectRatio; continueResize = false; @@ -7548,7 +7833,11 @@ $.ui.plugin.add( "resizable", "containment", { } if ( cp.top < ( that._helper ? co.top : 0 ) ) { - that.size.height = that.size.height + ( that._helper ? ( that.position.top - co.top ) : that.position.top ); + that.size.height = that.size.height + + ( that._helper ? + ( that.position.top - co.top ) : + that.position.top ); + if ( pRatio ) { that.size.width = that.size.height * that.aspectRatio; continueResize = false; @@ -7556,19 +7845,27 @@ $.ui.plugin.add( "resizable", "containment", { that.position.top = that._helper ? co.top : 0; } - that.offset.left = that.parentData.left + that.position.left; - that.offset.top = that.parentData.top + that.position.top; - - woset = Math.abs( ( that._helper ? that.offset.left - cop.left : ( that.offset.left - co.left ) ) + that.sizeDiff.width ); - hoset = Math.abs( ( that._helper ? that.offset.top - cop.top : ( that.offset.top - co.top ) ) + that.sizeDiff.height ); - isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 ); isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) ); if ( isParent && isOffsetRelative ) { - woset -= Math.abs( that.parentData.left ); + that.offset.left = that.parentData.left + that.position.left; + that.offset.top = that.parentData.top + that.position.top; + } else { + that.offset.left = that.element.offset().left; + that.offset.top = that.element.offset().top; } + woset = Math.abs( that.sizeDiff.width + + (that._helper ? + that.offset.left - cop.left : + (that.offset.left - co.left)) ); + + hoset = Math.abs( that.sizeDiff.height + + (that._helper ? + that.offset.top - cop.top : + (that.offset.top - co.top)) ); + if ( woset + that.size.width >= that.parentData.width ) { that.size.width = that.parentData.width - woset; if ( pRatio ) { @@ -7585,15 +7882,15 @@ $.ui.plugin.add( "resizable", "containment", { } } - if ( !continueResize ){ - that.position.left = ui.prevPosition.left; - that.position.top = ui.prevPosition.top; - that.size.width = ui.prevSize.width; - that.size.height = ui.prevSize.height; + if ( !continueResize ) { + that.position.left = that.prevPosition.left; + that.position.top = that.prevPosition.top; + that.size.width = that.prevSize.width; + that.size.height = that.prevSize.height; } }, - stop: function(){ + stop: function() { var that = $( this ).resizable( "instance" ), o = that.options, co = that.containerOffset, @@ -7624,61 +7921,49 @@ $.ui.plugin.add( "resizable", "containment", { $.ui.plugin.add("resizable", "alsoResize", { - start: function () { + start: function() { var that = $(this).resizable( "instance" ), - o = that.options, - _store = function (exp) { - $(exp).each(function() { - var el = $(this); - el.data("ui-resizable-alsoresize", { - width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), - left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) - }); - }); - }; + o = that.options; - if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) { - if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } - else { $.each(o.alsoResize, function (exp) { _store(exp); }); } - }else{ - _store(o.alsoResize); - } + $(o.alsoResize).each(function() { + var el = $(this); + el.data("ui-resizable-alsoresize", { + width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), + left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) + }); + }); }, - resize: function (event, ui) { + resize: function(event, ui) { var that = $(this).resizable( "instance" ), o = that.options, os = that.originalSize, op = that.originalPosition, delta = { - height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0, - top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0 - }, - - _alsoResize = function (exp, c) { - $(exp).each(function() { - var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, - css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; + height: (that.size.height - os.height) || 0, + width: (that.size.width - os.width) || 0, + top: (that.position.top - op.top) || 0, + left: (that.position.left - op.left) || 0 + }; - $.each(css, function (i, prop) { - var sum = (start[prop]||0) + (delta[prop]||0); - if (sum && sum >= 0) { - style[prop] = sum || null; - } - }); + $(o.alsoResize).each(function() { + var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, + css = el.parents(ui.originalElement[0]).length ? + [ "width", "height" ] : + [ "width", "height", "top", "left" ]; - el.css(style); + $.each(css, function(i, prop) { + var sum = (start[prop] || 0) + (delta[prop] || 0); + if (sum && sum >= 0) { + style[prop] = sum || null; + } }); - }; - if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) { - $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); - }else{ - _alsoResize(o.alsoResize); - } + el.css(style); + }); }, - stop: function () { + stop: function() { $(this).removeData("resizable-alsoresize"); } }); @@ -7691,7 +7976,16 @@ $.ui.plugin.add("resizable", "ghost", { that.ghost = that.originalElement.clone(); that.ghost - .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) + .css({ + opacity: 0.25, + display: "block", + position: "relative", + height: cs.height, + width: cs.width, + margin: 0, + left: 0, + top: 0 + }) .addClass("ui-resizable-ghost") .addClass(typeof o.ghost === "string" ? o.ghost : ""); @@ -7699,10 +7993,14 @@ $.ui.plugin.add("resizable", "ghost", { }, - resize: function(){ + resize: function() { var that = $(this).resizable( "instance" ); if (that.ghost) { - that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width }); + that.ghost.css({ + position: "relative", + height: that.size.height, + width: that.size.width + }); } }, @@ -7718,15 +8016,16 @@ $.ui.plugin.add("resizable", "ghost", { $.ui.plugin.add("resizable", "grid", { resize: function() { - var that = $(this).resizable( "instance" ), + var outerDimensions, + that = $(this).resizable( "instance" ), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, - grid = typeof o.grid === "number" ? [o.grid, o.grid] : o.grid, - gridX = (grid[0]||1), - gridY = (grid[1]||1), + grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid, + gridX = (grid[0] || 1), + gridY = (grid[1] || 1), ox = Math.round((cs.width - os.width) / gridX) * gridX, oy = Math.round((cs.height - os.height) / gridY) * gridY, newWidth = os.width + ox, @@ -7739,16 +8038,16 @@ $.ui.plugin.add("resizable", "grid", { o.grid = grid; if (isMinWidth) { - newWidth = newWidth + gridX; + newWidth += gridX; } if (isMinHeight) { - newHeight = newHeight + gridY; + newHeight += gridY; } if (isMaxWidth) { - newWidth = newWidth - gridX; + newWidth -= gridX; } if (isMaxHeight) { - newHeight = newHeight - gridY; + newHeight -= gridY; } if (/^(se|s|e)$/.test(a)) { @@ -7763,19 +8062,25 @@ $.ui.plugin.add("resizable", "grid", { that.size.height = newHeight; that.position.left = op.left - ox; } else { + if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) { + outerDimensions = that._getPaddingPlusBorderDimensions( this ); + } + if ( newHeight - gridY > 0 ) { that.size.height = newHeight; that.position.top = op.top - oy; } else { - that.size.height = gridY; - that.position.top = op.top + os.height - gridY; + newHeight = gridY - outerDimensions.height; + that.size.height = newHeight; + that.position.top = op.top + os.height - newHeight; } if ( newWidth - gridX > 0 ) { that.size.width = newWidth; that.position.left = op.left - ox; } else { - that.size.width = gridX; - that.position.left = op.left + os.width - gridX; + newWidth = gridX - outerDimensions.width; + that.size.width = newWidth; + that.position.left = op.left + os.width - newWidth; } } } @@ -7786,10 +8091,10 @@ var resizable = $.ui.resizable; /*! - * jQuery UI Dialog 1.11.0 + * jQuery UI Dialog 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -7798,7 +8103,7 @@ var resizable = $.ui.resizable; var dialog = $.widget( "ui.dialog", { - version: "1.11.0", + version: "1.11.4", options: { appendTo: "body", autoOpen: true, @@ -7918,6 +8223,7 @@ var dialog = $.widget( "ui.dialog", { var next, originalPosition = this.originalPosition; + this._untrackInstance(); this._destroyOverlay(); this.element @@ -7996,10 +8302,10 @@ var dialog = $.widget( "ui.dialog", { _moveToTop: function( event, silent ) { var moved = false, - zIndicies = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { + zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { return +$( this ).css( "z-index" ); }).get(), - zIndexMax = Math.max.apply( null, zIndicies ); + zIndexMax = Math.max.apply( null, zIndices ); if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) { this.uiDialog.css( "z-index", zIndexMax + 1 ); @@ -8028,11 +8334,24 @@ var dialog = $.widget( "ui.dialog", { this._position(); this._createOverlay(); this._moveToTop( null, true ); + + // Ensure the overlay is moved to the top with the dialog, but only when + // opening. The overlay shouldn't move after the dialog is open so that + // modeless dialogs opened after the modal dialog stack properly. + if ( this.overlay ) { + this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 ); + } + this._show( this.uiDialog, this.options.show, function() { that._focusTabbable(); that._trigger( "focus" ); }); + // Track the dialog immediately upon openening in case a focus event + // somehow occurs outside of the dialog before an element inside the + // dialog is focused (#10152) + this._makeFocusTarget(); + this._trigger( "open" ); }, @@ -8344,14 +8663,18 @@ var dialog = $.widget( "ui.dialog", { _trackFocus: function() { this._on( this.widget(), { - "focusin": function( event ) { - this._untrackInstance(); - this._trackingInstances().unshift( this ); + focusin: function( event ) { + this._makeFocusTarget(); this._focusedElement = $( event.target ); } }); }, + _makeFocusTarget: function() { + this._untrackInstance(); + this._trackingInstances().unshift( this ); + }, + _untrackInstance: function() { var instances = this._trackingInstances(), exists = $.inArray( this, instances ); @@ -8625,10 +8948,10 @@ var dialog = $.widget( "ui.dialog", { /*! - * jQuery UI Droppable 1.11.0 + * jQuery UI Droppable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -8637,7 +8960,7 @@ var dialog = $.widget( "ui.dialog", { $.widget( "ui.droppable", { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "drop", options: { accept: "*", @@ -8801,7 +9124,7 @@ $.widget( "ui.droppable", { !inst.options.disabled && inst.options.scope === draggable.options.scope && inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) && - $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance ) + $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event ) ) { childrenIntersection = true; return false; } }); if ( childrenIntersection ) { @@ -8839,15 +9162,14 @@ $.ui.intersect = (function() { return ( x >= reference ) && ( x < ( reference + size ) ); } - return function( draggable, droppable, toleranceMode ) { + return function( draggable, droppable, toleranceMode, event ) { if ( !droppable.offset ) { return false; } - var draggableLeft, draggableTop, - x1 = ( draggable.positionAbs || draggable.position.absolute ).left, - y1 = ( draggable.positionAbs || draggable.position.absolute ).top, + var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left, + y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top, x2 = x1 + draggable.helperProportions.width, y2 = y1 + draggable.helperProportions.height, l = droppable.offset.left, @@ -8864,9 +9186,7 @@ $.ui.intersect = (function() { t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half case "pointer": - draggableLeft = ( ( draggable.positionAbs || draggable.position.absolute ).left + ( draggable.clickOffset || draggable.offset.click ).left ); - draggableTop = ( ( draggable.positionAbs || draggable.position.absolute ).top + ( draggable.clickOffset || draggable.offset.click ).top ); - return isOverAxis( draggableTop, t, droppable.proportions().height ) && isOverAxis( draggableLeft, l, droppable.proportions().width ); + return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width ); case "touch": return ( ( y1 >= t && y1 <= b ) || // Top edge touching @@ -8936,7 +9256,7 @@ $.ui.ddmanager = { if ( !this.options ) { return; } - if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance ) ) { + if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { dropped = this._drop.call( this, event ) || dropped; } @@ -8973,7 +9293,7 @@ $.ui.ddmanager = { } var parentInstance, scope, parent, - intersects = $.ui.intersect( draggable, this, this.options.tolerance ), + intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ), c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null ); if ( !c ) { return; @@ -9025,10 +9345,10 @@ var droppable = $.ui.droppable; /*! - * jQuery UI Effects 1.11.0 + * jQuery UI Effects 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -9036,7 +9356,11 @@ var droppable = $.ui.droppable; */ -var dataSpace = "ui-effects-"; +var dataSpace = "ui-effects-", + + // Create a local jQuery because jQuery Color relies on it and the + // global may not exist with AMD and a custom build (#10199) + jQuery = $; $.effects = { effect: {} @@ -9645,7 +9969,7 @@ color.hook = function( hook ) { } try { elem.style[ hook ] = value; - } catch( e ) { + } catch ( e ) { // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' } } @@ -9916,7 +10240,7 @@ $.fn.extend({ (function() { $.extend( $.effects, { - version: "1.11.0", + version: "1.11.4", // Saves a set of properties in a data storage save: function( element, set ) { @@ -10010,7 +10334,7 @@ $.extend( $.effects, { // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 try { active.id; - } catch( e ) { + } catch ( e ) { active = document.body; } @@ -10312,10 +10636,10 @@ var effect = $.effects; /*! - * jQuery UI Effects Blind 1.11.0 + * jQuery UI Effects Blind 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10389,10 +10713,10 @@ var effectBlind = $.effects.effect.blind = function( o, done ) { /*! - * jQuery UI Effects Bounce 1.11.0 + * jQuery UI Effects Bounce 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10499,10 +10823,10 @@ var effectBounce = $.effects.effect.bounce = function( o, done ) { /*! - * jQuery UI Effects Clip 1.11.0 + * jQuery UI Effects Clip 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10563,10 +10887,10 @@ var effectClip = $.effects.effect.clip = function( o, done ) { /*! - * jQuery UI Effects Drop 1.11.0 + * jQuery UI Effects Drop 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10593,7 +10917,7 @@ var effectDrop = $.effects.effect.drop = function( o, done ) { el.show(); $.effects.createWrapper( el ); - distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; + distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; if ( show ) { el @@ -10625,10 +10949,10 @@ var effectDrop = $.effects.effect.drop = function( o, done ) { /*! - * jQuery UI Effects Explode 1.11.0 + * jQuery UI Effects Explode 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10719,10 +11043,10 @@ var effectExplode = $.effects.effect.explode = function( o, done ) { /*! - * jQuery UI Effects Fade 1.11.0 + * jQuery UI Effects Fade 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10746,10 +11070,10 @@ var effectFade = $.effects.effect.fade = function( o, done ) { /*! - * jQuery UI Effects Fold 1.11.0 + * jQuery UI Effects Fold 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10819,10 +11143,10 @@ var effectFold = $.effects.effect.fold = function( o, done ) { /*! - * jQuery UI Effects Highlight 1.11.0 + * jQuery UI Effects Highlight 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10866,10 +11190,10 @@ var effectHighlight = $.effects.effect.highlight = function( o, done ) { /*! - * jQuery UI Effects Size 1.11.0 + * jQuery UI Effects Size 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11086,10 +11410,10 @@ var effectSize = $.effects.effect.size = function( o, done ) { /*! - * jQuery UI Effects Scale 1.11.0 + * jQuery UI Effects Scale 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11161,10 +11485,10 @@ var effectScale = $.effects.effect.scale = function( o, done ) { /*! - * jQuery UI Effects Puff 1.11.0 + * jQuery UI Effects Puff 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11207,10 +11531,10 @@ var effectPuff = $.effects.effect.puff = function( o, done ) { /*! - * jQuery UI Effects Pulsate 1.11.0 + * jQuery UI Effects Pulsate 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11267,10 +11591,10 @@ var effectPulsate = $.effects.effect.pulsate = function( o, done ) { /*! - * jQuery UI Effects Shake 1.11.0 + * jQuery UI Effects Shake 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11338,10 +11662,10 @@ var effectShake = $.effects.effect.shake = function( o, done ) { /*! - * jQuery UI Effects Slide 1.11.0 + * jQuery UI Effects Slide 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11399,10 +11723,10 @@ var effectSlide = $.effects.effect.slide = function( o, done ) { /*! - * jQuery UI Effects Transfer 1.11.0 + * jQuery UI Effects Transfer 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11443,10 +11767,10 @@ var effectTransfer = $.effects.effect.transfer = function( o, done ) { /*! - * jQuery UI Progressbar 1.11.0 + * jQuery UI Progressbar 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11455,7 +11779,7 @@ var effectTransfer = $.effects.effect.transfer = function( o, done ) { var progressbar = $.widget( "ui.progressbar", { - version: "1.11.0", + version: "1.11.4", options: { max: 100, value: 0, @@ -11588,10 +11912,10 @@ var progressbar = $.widget( "ui.progressbar", { /*! - * jQuery UI Selectable 1.11.0 + * jQuery UI Selectable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11600,7 +11924,7 @@ var progressbar = $.widget( "ui.progressbar", { var selectable = $.widget("ui.selectable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", options: { appendTo: "body", autoRefresh: true, @@ -11860,10 +12184,10 @@ var selectable = $.widget("ui.selectable", $.ui.mouse, { /*! - * jQuery UI Selectmenu 1.11.0 + * jQuery UI Selectmenu 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11872,7 +12196,7 @@ var selectable = $.widget("ui.selectable", $.ui.mouse, { var selectmenu = $.widget( "ui.selectmenu", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<select>", options: { appendTo: null, @@ -11912,8 +12236,7 @@ var selectmenu = $.widget( "ui.selectmenu", { }, _drawButton: function() { - var that = this, - tabindex = this.element.attr( "tabindex" ); + var that = this; // Associate existing label with the new button this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button ); @@ -11930,7 +12253,7 @@ var selectmenu = $.widget( "ui.selectmenu", { // Create button this.button = $( "<span>", { "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", - tabindex: tabindex || this.options.disabled ? -1 : 0, + tabindex: this.options.disabled ? -1 : 0, id: this.ids.button, role: "combobox", "aria-expanded": "false", @@ -11951,7 +12274,7 @@ var selectmenu = $.widget( "ui.selectmenu", { .appendTo( this.button ); this._setText( this.buttonText, this.element.find( "option:selected" ).text() ); - this._setOption( "width", this.options.width ); + this._resizeButton(); this._on( this.button, this._buttonEvents ); this.button.one( "focusin", function() { @@ -11989,6 +12312,12 @@ var selectmenu = $.widget( "ui.selectmenu", { role: "listbox", select: function( event, ui ) { event.preventDefault(); + + // support: IE8 + // If the item was selected via a click, the text selection + // will be destroyed in IE + that._setSelection(); + that._select( ui.item.data( "ui-selectmenu-item" ), event ); }, focus: function( event, ui ) { @@ -12031,7 +12360,9 @@ var selectmenu = $.widget( "ui.selectmenu", { refresh: function() { this._refreshMenu(); this._setText( this.buttonText, this._getSelectedItem().text() ); - this._setOption( "width", this.options.width ); + if ( !this.options.width ) { + this._resizeButton(); + } }, _refreshMenu: function() { @@ -12097,6 +12428,7 @@ var selectmenu = $.widget( "ui.selectmenu", { this.isOpen = false; this._toggleAttr(); + this.range = null; this._off( this.document ); this._trigger( "close", event ); @@ -12185,6 +12517,29 @@ var selectmenu = $.widget( "ui.selectmenu", { this[ this.isOpen ? "close" : "open" ]( event ); }, + _setSelection: function() { + var selection; + + if ( !this.range ) { + return; + } + + if ( window.getSelection ) { + selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange( this.range ); + + // support: IE8 + } else { + this.range.select(); + } + + // support: IE + // Setting the text selection kills the button focus in IE, but + // restoring the focus doesn't kill the selection. + this.button.focus(); + }, + _documentClick: { mousedown: function( event ) { if ( !this.isOpen ) { @@ -12198,7 +12553,28 @@ var selectmenu = $.widget( "ui.selectmenu", { }, _buttonEvents: { - click: "_toggle", + + // Prevent text selection from being reset when interacting with the selectmenu (#10144) + mousedown: function() { + var selection; + + if ( window.getSelection ) { + selection = window.getSelection(); + if ( selection.rangeCount ) { + this.range = selection.getRangeAt( 0 ); + } + + // support: IE8 + } else { + this.range = document.selection.createRange(); + } + }, + + click: function( event ) { + this._setSelection(); + this._toggle( event ); + }, + keydown: function( event ) { var preventDefault = true; switch ( event.keyCode ) { @@ -12320,10 +12696,7 @@ var selectmenu = $.widget( "ui.selectmenu", { } if ( key === "width" ) { - if ( !value ) { - value = this.element.outerWidth(); - } - this.button.outerWidth( value ); + this._resizeButton(); } }, @@ -12356,6 +12729,17 @@ var selectmenu = $.widget( "ui.selectmenu", { this.menu.attr( "aria-hidden", !this.isOpen ); }, + _resizeButton: function() { + var width = this.options.width; + + if ( !width ) { + width = this.element.show().outerWidth(); + this.element.hide(); + } + + this.button.outerWidth( width ); + }, + _resizeMenu: function() { this.menu.outerWidth( Math.max( this.button.outerWidth(), @@ -12379,7 +12763,7 @@ var selectmenu = $.widget( "ui.selectmenu", { data.push({ element: option, index: index, - value: option.attr( "value" ), + value: option.val(), label: option.text(), optgroup: optgroup.attr( "label" ) || "", disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" ) @@ -12399,10 +12783,10 @@ var selectmenu = $.widget( "ui.selectmenu", { /*! - * jQuery UI Slider 1.11.0 + * jQuery UI Slider 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -12411,7 +12795,7 @@ var selectmenu = $.widget( "ui.selectmenu", { var slider = $.widget( "ui.slider", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "slide", options: { @@ -12443,6 +12827,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { this._handleIndex = null; this._detectOrientation(); this._mouseInit(); + this._calculateNewMax(); this.element .addClass( "ui-slider" + @@ -12839,6 +13224,9 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { .removeClass( "ui-slider-horizontal ui-slider-vertical" ) .addClass( "ui-slider-" + this.orientation ); this._refreshValue(); + + // Reset positioning from previous orientation + this.handles.css( value === "horizontal" ? "bottom" : "left", "" ); break; case "value": this._animateOff = true; @@ -12854,9 +13242,11 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { } this._animateOff = false; break; + case "step": case "min": case "max": this._animateOff = true; + this._calculateNewMax(); this._refreshValue(); this._animateOff = false; break; @@ -12894,7 +13284,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { // .slice() creates a copy of the array // this copy gets trimmed by min and max and then returned vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { + for ( i = 0; i < vals.length; i += 1) { vals[ i ] = this._trimAlignValue( vals[ i ] ); } @@ -12925,12 +13315,35 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { return parseFloat( alignValue.toFixed(5) ); }, + _calculateNewMax: function() { + var max = this.options.max, + min = this._valueMin(), + step = this.options.step, + aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step; + max = aboveMin + min; + this.max = parseFloat( max.toFixed( this._precision() ) ); + }, + + _precision: function() { + var precision = this._precisionOf( this.options.step ); + if ( this.options.min !== null ) { + precision = Math.max( precision, this._precisionOf( this.options.min ) ); + } + return precision; + }, + + _precisionOf: function( num ) { + var str = num.toString(), + decimal = str.indexOf( "." ); + return decimal === -1 ? 0 : str.length - decimal - 1; + }, + _valueMin: function() { return this.options.min; }, _valueMax: function() { - return this.options.max; + return this.max; }, _refreshValue: function() { @@ -13072,10 +13485,10 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { /*! - * jQuery UI Sortable 1.11.0 + * jQuery UI Sortable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -13084,7 +13497,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { var sortable = $.widget("ui.sortable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "sort", ready: false, options: { @@ -13135,17 +13548,12 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { }, _create: function() { - - var o = this.options; this.containerCache = {}; this.element.addClass("ui-sortable"); //Get the items this.refresh(); - //Let's determine if the items are being displayed horizontally - this.floating = this.items.length ? o.axis === "x" || this._isFloating(this.items[0].item) : false; - //Let's determine the parent's offset this.offset = this.element.offset(); @@ -13334,7 +13742,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } //Prepare scrolling - if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { + if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { this.overflowOffset = this.scrollParent.offset(); } @@ -13386,7 +13794,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { //Do scrolling if(this.options.scroll) { - if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { + if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; @@ -13402,16 +13810,16 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } else { - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) { + scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed); + } else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) { + scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed); } - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) { + scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed); + } else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) { + scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed); } } @@ -13510,10 +13918,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { animation = {}; if ( !axis || axis === "x" ) { - animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft); + animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft); } if ( !axis || axis === "y" ) { - animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop); + animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop); } this.reverting = true; $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() { @@ -13706,7 +14114,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { if(connectWith && connected) { for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i]); + cur = $(connectWith[i], this.document[0]); for ( j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { @@ -13756,7 +14164,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i]); + cur = $(connectWith[i], this.document[0]); for (j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { @@ -13789,6 +14197,11 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { refreshPositions: function(fast) { + // Determine whether items are being displayed horizontally + this.floating = this.items.length ? + this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) : + false; + //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change if(this.offsetParent && this.helper) { this.offset.parent = this._getParentOffset(); @@ -13846,12 +14259,13 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") .removeClass("ui-sortable-helper"); - if ( nodeName === "tr" ) { - that.currentItem.children().each(function() { - $( "<td> </td>", that.document[0] ) - .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) - .appendTo( element ); - }); + if ( nodeName === "tbody" ) { + that._createTrPlaceholder( + that.currentItem.find( "tr" ).eq( 0 ), + $( "<tr>", that.document[ 0 ] ).appendTo( element ) + ); + } else if ( nodeName === "tr" ) { + that._createTrPlaceholder( that.currentItem, element ); } else if ( nodeName === "img" ) { element.attr( "src", that.currentItem.attr( "src" ) ); } @@ -13888,6 +14302,16 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { }, + _createTrPlaceholder: function( sourceTr, targetTr ) { + var that = this; + + sourceTr.children().each(function() { + $( "<td> </td>", that.document[ 0 ] ) + .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) + .appendTo( targetTr ); + }); + }, + _contactContainers: function(event) { var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis, innermostContainer = null, @@ -13969,6 +14393,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } if(this.currentContainer === this.containers[innermostIndex]) { + if ( !this.currentContainer.containerCache.over ) { + this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() ); + this.currentContainer.containerCache.over = 1; + } return; } @@ -14044,14 +14472,14 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { + if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } // This needs to be actually done for all browsers, since pageX/pageY includes this information // with an ugly IE fix - if( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { + if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } @@ -14101,8 +14529,8 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { this.containment = [ 0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, - $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, - ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, + (o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } @@ -14127,7 +14555,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { pos = this.position; } var mod = d === "absolute" ? 1 : -1, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, + scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { @@ -14153,13 +14581,13 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { o = this.options, pageX = event.pageX, pageY = event.pageY, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); // This is another very weird special case that only happens for relative elements: // 1. If the css position is relative // 2. and the scroll parent is the document or similar to the offset parent // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition === "relative" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) { + if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset(); } @@ -14307,18 +14735,6 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (i=0; i < delayedTriggers.length; i++) { - delayedTriggers[i].call(this, event); - } //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return false; - } if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); @@ -14327,10 +14743,12 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.helper[0] !== this.currentItem[0]) { - this.helper.remove(); + if ( !this.cancelHelperRemoval ) { + if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { + this.helper.remove(); + } + this.helper = null; } - this.helper = null; if(!noPropagation) { for (i=0; i < delayedTriggers.length; i++) { @@ -14340,7 +14758,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } this.fromOutside = false; - return true; + return !this.cancelHelperRemoval; }, @@ -14367,10 +14785,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { /*! - * jQuery UI Spinner 1.11.0 + * jQuery UI Spinner 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -14390,7 +14808,7 @@ function spinner_modifier( fn ) { } var spinner = $.widget( "ui.spinner", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<input>", widgetEventPrefix: "spin", options: { @@ -14866,10 +15284,10 @@ var spinner = $.widget( "ui.spinner", { /*! - * jQuery UI Tabs 1.11.0 + * jQuery UI Tabs 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -14878,7 +15296,7 @@ var spinner = $.widget( "ui.spinner", { var tabs = $.widget( "ui.tabs", { - version: "1.11.0", + version: "1.11.4", delay: 300, options: { active: null, @@ -14928,24 +15346,7 @@ var tabs = $.widget( "ui.tabs", { this.element .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) - .toggleClass( "ui-tabs-collapsible", options.collapsible ) - // Prevent users from focusing disabled tabs via click - .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) { - if ( $( this ).is( ".ui-state-disabled" ) ) { - event.preventDefault(); - } - }) - // support: IE <9 - // Preventing the default action in mousedown doesn't prevent IE - // from focusing the element, so if the anchor gets focused, blur. - // We don't have to worry about focusing the previously focused - // element since clicking on a non-focusable element should focus - // the body anyway. - .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { - if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { - this.blur(); - } - }); + .toggleClass( "ui-tabs-collapsible", options.collapsible ); this._processTabs(); options.active = this._initialActive(); @@ -15071,8 +15472,9 @@ var tabs = $.widget( "ui.tabs", { clearTimeout( this.activating ); selectedIndex = this._focusNextTab( selectedIndex, goingForward ); - // Navigating with control key will prevent automatic activation - if ( !event.ctrlKey ) { + // Navigating with control/command key will prevent automatic activation + if ( !event.ctrlKey && !event.metaKey ) { + // Update aria-selected immediately so that AT think the tab is already selected. // Otherwise AT may confuse the user by stating that they need to activate the tab, // but the tab will already be activated by the time the announcement finishes. @@ -15242,11 +15644,33 @@ var tabs = $.widget( "ui.tabs", { }, _processTabs: function() { - var that = this; + var that = this, + prevTabs = this.tabs, + prevAnchors = this.anchors, + prevPanels = this.panels; this.tablist = this._getList() .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .attr( "role", "tablist" ); + .attr( "role", "tablist" ) + + // Prevent users from focusing disabled tabs via click + .delegate( "> li", "mousedown" + this.eventNamespace, function( event ) { + if ( $( this ).is( ".ui-state-disabled" ) ) { + event.preventDefault(); + } + }) + + // support: IE <9 + // Preventing the default action in mousedown doesn't prevent IE + // from focusing the element, so if the anchor gets focused, blur. + // We don't have to worry about focusing the previously focused + // element since clicking on a non-focusable element should focus + // the body anyway. + .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { + if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { + this.blur(); + } + }); this.tabs = this.tablist.find( "> li:has(a[href])" ) .addClass( "ui-state-default ui-corner-top" ) @@ -15307,6 +15731,13 @@ var tabs = $.widget( "ui.tabs", { this.panels .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .attr( "role", "tabpanel" ); + + // Avoid memory leaks (#10056) + if ( prevTabs ) { + this._off( prevTabs.not( this.tabs ) ); + this._off( prevAnchors.not( this.anchors ) ); + this._off( prevPanels.not( this.panels ) ); + } }, // allow overriding how to find the list for rare usage scenarios (#7715) @@ -15564,6 +15995,8 @@ var tabs = $.widget( "ui.tabs", { .removeAttr( "tabIndex" ) .removeUniqueId(); + this.tablist.unbind( this.eventNamespace ); + this.tabs.add( this.panels ).each(function() { if ( $.data( this, "ui-tabs-destroy" ) ) { $( this ).remove(); @@ -15655,6 +16088,18 @@ var tabs = $.widget( "ui.tabs", { eventData = { tab: tab, panel: panel + }, + complete = function( jqXHR, status ) { + if ( status === "abort" ) { + that.panels.stop( false, true ); + } + + tab.removeClass( "ui-tabs-loading" ); + panel.removeAttr( "aria-busy" ); + + if ( jqXHR === that.xhr ) { + delete that.xhr; + } }; // not remote @@ -15672,28 +16117,21 @@ var tabs = $.widget( "ui.tabs", { panel.attr( "aria-busy", "true" ); this.xhr - .success(function( response ) { + .done(function( response, status, jqXHR ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { panel.html( response ); that._trigger( "load", event, eventData ); + + complete( jqXHR, status ); }, 1 ); }) - .complete(function( jqXHR, status ) { + .fail(function( jqXHR, status ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { - if ( status === "abort" ) { - that.panels.stop( false, true ); - } - - tab.removeClass( "ui-tabs-loading" ); - panel.removeAttr( "aria-busy" ); - - if ( jqXHR === that.xhr ) { - delete that.xhr; - } + complete( jqXHR, status ); }, 1 ); }); } @@ -15718,10 +16156,10 @@ var tabs = $.widget( "ui.tabs", { /*! - * jQuery UI Tooltip 1.11.0 + * jQuery UI Tooltip 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -15730,7 +16168,7 @@ var tabs = $.widget( "ui.tabs", { var tooltip = $.widget( "ui.tooltip", { - version: "1.11.0", + version: "1.11.4", options: { content: function() { // support: IE<9, Opera in jQuery <1.7 @@ -15790,6 +16228,7 @@ var tooltip = $.widget( "ui.tooltip", { // IDs of generated tooltips, needed for destroy this.tooltips = {}; + // IDs of parent tooltips where we removed the title attribute this.parents = {}; @@ -15821,8 +16260,8 @@ var tooltip = $.widget( "ui.tooltip", { this._super( key, value ); if ( key === "content" ) { - $.each( this.tooltips, function( id, element ) { - that._updateContent( element ); + $.each( this.tooltips, function( id, tooltipData ) { + that._updateContent( tooltipData.element ); }); } }, @@ -15831,9 +16270,9 @@ var tooltip = $.widget( "ui.tooltip", { var that = this; // close open tooltips - $.each( this.tooltips, function( id, element ) { + $.each( this.tooltips, function( id, tooltipData ) { var event = $.Event( "blur" ); - event.target = event.currentTarget = element[0]; + event.target = event.currentTarget = tooltipData.element[ 0 ]; that.close( event, true ); }); @@ -15897,6 +16336,7 @@ var tooltip = $.widget( "ui.tooltip", { }); } + this._registerCloseHandlers( event, target ); this._updateContent( target, event ); }, @@ -15911,13 +16351,16 @@ var tooltip = $.widget( "ui.tooltip", { } content = contentOption.call( target[0], function( response ) { - // ignore async response if tooltip was closed already - if ( !target.data( "ui-tooltip-open" ) ) { - return; - } + // IE may instantly serve a cached response for ajax requests // delay this call to _open so the other call to _open runs first that._delay(function() { + + // Ignore async response if tooltip was closed already + if ( !target.data( "ui-tooltip-open" ) ) { + return; + } + // jQuery creates a special event for focusin when it doesn't // exist natively. To improve performance, the native event // object is reused and the type is changed. Therefore, we can't @@ -15935,7 +16378,7 @@ var tooltip = $.widget( "ui.tooltip", { }, _open: function( event, target, content ) { - var tooltip, events, delayedShow, a11yContent, + var tooltipData, tooltip, delayedShow, a11yContent, positionOption = $.extend( {}, this.options.position ); if ( !content ) { @@ -15944,9 +16387,9 @@ var tooltip = $.widget( "ui.tooltip", { // Content can be updated multiple times. If the tooltip already // exists, then just update the content and bail. - tooltip = this._find( target ); - if ( tooltip.length ) { - tooltip.find( ".ui-tooltip-content" ).html( content ); + tooltipData = this._find( target ); + if ( tooltipData ) { + tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content ); return; } @@ -15965,7 +16408,8 @@ var tooltip = $.widget( "ui.tooltip", { } } - tooltip = this._tooltip( target ); + tooltipData = this._tooltip( target ); + tooltip = tooltipData.tooltip; this._addDescribedBy( target, tooltip.attr( "id" ) ); tooltip.find( ".ui-tooltip-content" ).html( content ); @@ -16016,8 +16460,10 @@ var tooltip = $.widget( "ui.tooltip", { } this._trigger( "open", event, { tooltip: tooltip } ); + }, - events = { + _registerCloseHandlers: function( event, target ) { + var events = { keyup: function( event ) { if ( event.keyCode === $.ui.keyCode.ESCAPE ) { var fakeEvent = $.Event(event); @@ -16031,7 +16477,7 @@ var tooltip = $.widget( "ui.tooltip", { // tooltips will handle this in destroy. if ( target[ 0 ] !== this.element[ 0 ] ) { events.remove = function() { - this._removeTooltip( tooltip ); + this._removeTooltip( this._find( target ).tooltip ); }; } @@ -16045,13 +16491,27 @@ var tooltip = $.widget( "ui.tooltip", { }, close: function( event ) { - var that = this, + var tooltip, + that = this, target = $( event ? event.currentTarget : this.element ), - tooltip = this._find( target ); + tooltipData = this._find( target ); + + // The tooltip may already be closed + if ( !tooltipData ) { + + // We set ui-tooltip-open immediately upon open (in open()), but only set the + // additional data once there's actually content to show (in _open()). So even if the + // tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in + // the period between open() and _open(). + target.removeData( "ui-tooltip-open" ); + return; + } + + tooltip = tooltipData.tooltip; // disabling closes the tooltip, so we need to track when we're closing // to avoid an infinite loop in case the tooltip becomes disabled on close - if ( this.closing ) { + if ( tooltipData.closing ) { return; } @@ -16066,6 +16526,7 @@ var tooltip = $.widget( "ui.tooltip", { this._removeDescribedBy( target ); + tooltipData.hiding = true; tooltip.stop( true ); this._hide( tooltip, this.options.hide, function() { that._removeTooltip( $( this ) ); @@ -16087,9 +16548,11 @@ var tooltip = $.widget( "ui.tooltip", { }); } - this.closing = true; + tooltipData.closing = true; this._trigger( "close", event, { tooltip: tooltip } ); - this.closing = false; + if ( !tooltipData.hiding ) { + tooltipData.closing = false; + } }, _tooltip: function( element ) { @@ -16104,13 +16567,16 @@ var tooltip = $.widget( "ui.tooltip", { .appendTo( tooltip ); tooltip.appendTo( this.document[0].body ); - this.tooltips[ id ] = element; - return tooltip; + + return this.tooltips[ id ] = { + element: element, + tooltip: tooltip + }; }, _find: function( target ) { var id = target.data( "ui-tooltip-id" ); - return id ? $( "#" + id ) : $(); + return id ? this.tooltips[ id ] : null; }, _removeTooltip: function( tooltip ) { @@ -16122,10 +16588,11 @@ var tooltip = $.widget( "ui.tooltip", { var that = this; // close open tooltips - $.each( this.tooltips, function( id, element ) { + $.each( this.tooltips, function( id, tooltipData ) { // Delegate to close method to handle common cleanup - var event = $.Event( "blur" ); - event.target = event.currentTarget = element[0]; + var event = $.Event( "blur" ), + element = tooltipData.element; + event.target = event.currentTarget = element[ 0 ]; that.close( event, true ); // Remove immediately; destroying an open tooltip doesn't use the diff --git a/lib/scripts/jquery/jquery-ui.min.js b/lib/scripts/jquery/jquery-ui.min.js index b2fdf864a..5824d1292 100644 --- a/lib/scripts/jquery/jquery-ui.min.js +++ b/lib/scripts/jquery/jquery-ui.min.js @@ -1,13 +1,13 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap=#"+a+"]")[0],!!o&&i(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",function(){e.datepicker._isDisabledDatepicker(g.inline?t.parent()[0]:g.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))})}function o(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function r(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.0",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(){var t=this.css("position"),i="absolute"===t,s=this.parents().filter(function(){var t=e(this);return i&&"static"===t.css("position")?!1:/(auto|scroll)/.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==t&&s.length?s:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var h=0,l=Array.prototype.slice;e.cleanData=function(t){return function(i){for(var s,n=0;null!=(s=i[n]);n++)try{e(s).triggerHandler("remove")}catch(a){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=l.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=l.call(arguments,1),r=this;return n=!a&&o.length?e.widget.extend.apply(null,[n].concat(o)):n,a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))}),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var u=!1;e(document).mouseup(function(){u=!1}),e.widget("ui.mouse",{version:"1.11.0",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!u){this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),u=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):t.which?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),u=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),N=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=N[0],M.top+=N[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+N[0],p[1]+N[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,e.top+p+f+m>u&&(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,e.top+p+f+m>d&&(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.0",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.length&&(!t.length||e.index()<t.index()),l=this.options.animate||{},u=h&&l.down||l,d=function(){o._toggleComplete(i)};return"number"==typeof u&&(a=u),"string"==typeof u&&(n=u),n=n||u.easing||l.easing,a=a||u.duration||l.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:d,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?r+=i.now:"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,d):e.animate(this.showProps,a,n,d)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.0",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1 -}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function i(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,h=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:h=!1,n=this.previousFilter||"",a=String.fromCharCode(t.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.find(this.options.items).filter(function(){return r.test(e(this).text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(t.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.find(this.options.items).filter(function(){return r.test(e(this).text())})),s.length?(this.focus(t,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)}}),e.widget("ui.autocomplete",{version:"1.11.0",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&jQuery.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var d,c="ui-button ui-widget ui-state-default ui-corner-all",p="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",f=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},m=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.0",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,f),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(c).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===d&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];m(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),d=this,t.document.one("mouseup",function(){d=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(c+" ui-state-active "+p).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?m(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(p),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.0",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.0"}});var g;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return o(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var r,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),o(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,r,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),o(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target);return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s)) -}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,r,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(o(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,g=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t),t.dpDiv.find("."+this._dayOverClass+" a");var i,s=this._getNumberOfMonths(t),n=s[1],a=17;t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n=RegExp("^\\d{1,"+s+"}"),a=i.substring(h).match(n);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,N,C,A,I,P,z,H,F,E,j,O,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",N=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)C=(x+u)%7,N+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[C]+"'>"+p[C]+"</span></th>";for(M+=N+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),I=(this._getFirstDayOfMonth(et,Z)-u+7)%7,P=Math.ceil((I+A)/7),z=Q?this.maxRows>P?this.maxRows:P:P,this.maxRows=z,H=this._daylightSavingAdjust(new Date(et,Z,1-I)),F=0;z>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(H)+"</td>":"",x=0;7>x;x++)j=g?g.apply(e.input?e.input[0]:null,[H]):[!0,""],O=H.getMonth()!==Z,W=O&&!y||!j[0]||X&&X>H||$&&H>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(O?" ui-datepicker-other-month":"")+(H.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===H.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(O&&!v?"":" "+j[1]+(H.getTime()===G.getTime()?" "+this._currentClass:"")+(H.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(O&&!v||!j[2]?"":" title='"+j[2].replace(/'/g,"'")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+H.getMonth()+"' data-year='"+H.getFullYear()+"'")+">"+(O&&!v?" ":W?"<span class='ui-state-default'>"+H.getDate()+"</span>":"<a class='ui-state-default"+(H.getTime()===R.getTime()?" ui-state-highlight":"")+(H.getTime()===G.getTime()?" ui-state-active":"")+(O?" ui-priority-secondary":"")+"' href='#'>"+H.getDate()+"</a>")+"</td>",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.0",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.document[0],s=this.options;try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(n){}return this.helper||s.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(s.iframeFix===!0?"iframe":s.iframeFix).each(function(){e("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this._removeHandleClassName(),e(this.options.handle||this.element).addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.element.find(".ui-draggable-handle").addBack().removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relative_container=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i} -},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),"drag"===t&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=s.options,a=e.extend({},i,{item:s.element});s.sortables=[],e(n.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",t,a))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});e.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,n))})},drag:function(t,i,s){var n=this;e.each(s.sortables,function(){var a=!1,o=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(a=!0,e.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(o.instance.element[0],this.instance.element[0])&&(a=!1),a})),a?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",t),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",t),s.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParent[0]!==i.document[0]&&"HTML"!==i.scrollParent[0].tagName&&(i.overflowOffset=i.scrollParent.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.document[0];s.scrollParent[0]!==o&&"HTML"!==s.scrollParent[0].tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+s.scrollParent[0].offsetHeight-t.pageY<n.scrollSensitivity?s.scrollParent[0].scrollTop=a=s.scrollParent[0].scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(s.scrollParent[0].scrollTop=a=s.scrollParent[0].scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+s.scrollParent[0].offsetWidth-t.pageX<n.scrollSensitivity?s.scrollParent[0].scrollLeft=a=s.scrollParent[0].scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(s.scrollParent[0].scrollLeft=a=s.scrollParent[0].scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(o).scrollTop()<n.scrollSensitivity?a=e(o).scrollTop(e(o).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(o).scrollTop())<n.scrollSensitivity&&(a=e(o).scrollTop(e(o).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(o).scrollLeft()<n.scrollSensitivity?a=e(o).scrollLeft(e(o).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(o).scrollLeft())<n.scrollSensitivity&&(a=e(o).scrollLeft(e(o).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left,l=h+s.snapElements[c].width,u=s.snapElements[c].top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top-s.margins.top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top-s.margins.top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left-s.margins.left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left-s.margins.left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top-s.margins.top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top-s.margins.top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left-s.margins.left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left-s.margins.left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=this.element.children(this.handles[i]).first().show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.originalPosition={left:i,top:s},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s=this.helper,n={},a=this.originalMousePosition,o=this.axis,r=t.pageX-a.left||0,h=t.pageY-a.top||0,l=this._change[o];return this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height},l?(i=l.apply(this,[t,r,h]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),this.position.top!==this.prevPosition.top&&(n.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(n.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(n.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(n)||this._trigger("resize",t,this.ui()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var e,t,i,s,n,a=this.helper||this.element;for(e=0;this._proportionallyResizeElements.length>e;e++){if(n=this._proportionallyResizeElements[e],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],t=0;i.length>t;t++)this.borderDif[t]=(parseInt(i[t],10)||0)+(parseInt(s[t],10)||0);n.css({height:a.height()-this.borderDif[0]-this.borderDif[2]||0,width:a.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition,prevSize:this.prevSize,prevPosition:this.prevPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t,i){var s,n,a,o,r=e(this).resizable("instance"),h=r.options,l=r.containerOffset,u=r.position,d=r._aspectRatio||t.shiftKey,c={top:0,left:0},p=r.containerElement,f=!0;p[0]!==document&&/static/.test(p.css("position"))&&(c=l),u.left<(r._helper?l.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-l.left:r.position.left-c.left),d&&(r.size.height=r.size.width/r.aspectRatio,f=!1),r.position.left=h.helper?l.left:0),u.top<(r._helper?l.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-l.top:r.position.top),d&&(r.size.width=r.size.height*r.aspectRatio,f=!1),r.position.top=r._helper?l.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top,s=Math.abs((r._helper?r.offset.left-c.left:r.offset.left-l.left)+r.sizeDiff.width),n=Math.abs((r._helper?r.offset.top-c.top:r.offset.top-l.top)+r.sizeDiff.height),a=r.containerElement.get(0)===r.element.parent().get(0),o=/relative|absolute/.test(r.containerElement.css("position")),a&&o&&(s-=Math.abs(r.parentData.left)),s+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-s,d&&(r.size.height=r.size.width/r.aspectRatio,f=!1)),n+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-n,d&&(r.size.width=r.size.height*r.aspectRatio,f=!1)),f||(r.position.left=i.prevPosition.left,r.position.top=i.prevPosition.top,r.size.width=i.prevSize.width,r.size.height=i.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size,n=t.originalSize,a=t.originalPosition,o=t.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,u=Math.round((s.width-n.width)/h)*h,d=Math.round((s.height-n.height)/l)*l,c=n.width+u,p=n.height+d,f=i.maxWidth&&c>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>c,v=i.minHeight&&i.minHeight>p;i.grid=r,g&&(c+=h),v&&(p+=l),f&&(c-=h),m&&(p-=l),/^(se|s|e)$/.test(o)?(t.size.width=c,t.size.height=p):/^(ne)$/.test(o)?(t.size.width=c,t.size.height=p,t.position.top=a.top-d):/^(sw)$/.test(o)?(t.size.width=c,t.size.height=p,t.position.left=a.left-u):(p-l>0?(t.size.height=p,t.position.top=a.top-d):(t.size.height=l,t.position.top=a.top+n.height-l),c-h>0?(t.size.width=c,t.position.left=a.left-u):(t.size.width=h,t.position.left=a.left+n.width-h))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.0",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0;if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable() -}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._untrackInstance(),this._trackingInstances().unshift(this),this._focusedElement=e(t.target)}})},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.0",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=e(this).droppable("instance");return t.options.greedy&&!t.options.disabled&&t.options.scope===s.options.scope&&t.accept.call(t.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(t,{offset:t.element.offset()}),t.options.tolerance)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s){if(!i.offset)return!1;var n,a,o=(t.positionAbs||t.position.absolute).left,r=(t.positionAbs||t.position.absolute).top,h=o+t.helperProportions.width,l=r+t.helperProportions.height,u=i.offset.left,d=i.offset.top,c=u+i.proportions().width,p=d+i.proportions().height;switch(s){case"fit":return o>=u&&c>=h&&r>=d&&p>=l;case"intersect":return o+t.helperProportions.width/2>u&&c>h-t.helperProportions.width/2&&r+t.helperProportions.height/2>d&&p>l-t.helperProportions.height/2;case"pointer":return n=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,a=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,e(a,d,i.proportions().height)&&e(n,u,i.proportions().width);case"touch":return(r>=d&&p>=r||l>=d&&p>=l||d>r&&l>p)&&(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var v="ui-effects-";e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(jQuery.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.0",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(v+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(v+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; -f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.0",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.0",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this,i=this.element.attr("tabindex");this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:i||this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._setOption("width",this.options.width),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this._setOption("width",this.options.width)},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html(" ")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{click:"_toggle",keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&(t||(t=this.element.outerWidth()),this.button.outerWidth(t))},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.attr("value"),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||this._isFloating(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); -return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-e(document).scrollTop()<o.scrollSensitivity?r=e(document).scrollTop(e(document).scrollTop()-o.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<o.scrollSensitivity&&(r=e(document).scrollTop(e(document).scrollTop()+o.scrollSpeed)),t.pageX-e(document).scrollLeft()<o.scrollSensitivity?r=e(document).scrollLeft(e(document).scrollLeft()-o.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<o.scrollSensitivity&&(r=e(document).scrollLeft(e(document).scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?t.currentItem.children().each(function(){e("<td> </td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!1}if(t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.0",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:r(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:r(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:r(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:r(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(r(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.0",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0] -}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){o.html(e),s._trigger("load",i,r)},1)}).complete(function(e,t){setTimeout(function(){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.0",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){e.data("ui-tooltip-open")&&n._delay(function(){t&&(t.type=a),this._open(t,e,i)})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){l.of=e,a.is(":hidden")||a.position(l)}var a,o,r,h,l=e.extend({},this.options.position);if(s){if(a=this._find(i),a.length)return a.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(h=s.clone(),h.removeAttr("id").find("[id]").removeAttr("id")):h=s,e("<div>").html(h).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):a.position(e.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},e.fx.interval)),this._trigger("open",t,{tooltip:a}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}},i[0]!==this.element[0]&&(o.remove=function(){this._removeTooltip(a)}),t&&"mouseover"!==t.type||(o.mouseleave="close"),t&&"focusin"!==t.type||(o.focusout="close"),this._on(!0,i,o)}},close:function(t){var i=this,s=e(t?t.currentTarget:this.element),n=this._find(s);this.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.stop(!0),this._hide(n,this.options.hide,function(){i._removeTooltip(e(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,s){e(s.element).attr("title",s.title),delete i.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:n}),this.closing=!1)},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]=t,i},_find:function(t){var i=t.data("ui-tooltip-id");return i?e("#"+i):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s[0],t.close(n,!0),e("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title")||s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file +(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),C=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=C[0],M.top+=C[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+C[0],p[1]+C[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()<t.index()),u=this.options.animate||{},d=l&&u.down||u,c=function(){o._toggleComplete(i)};return"number"==typeof d&&(a=d),"string"==typeof d&&(n=d),n=n||d.easing||u.easing,a=a||d.duration||u.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:c,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,c):e.animate(this.showProps,a,n,c)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); +i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var c,p="ui-button ui-widget ui-state-default ui-corner-all",f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},g=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===c&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];g(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),c=this,t.document.one("mouseup",function(){c=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?g(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(f),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.4"}});var v;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return r(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var o,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),r(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),v===n&&(v=null))},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,o,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),r(l.settings,n),null!==o&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,o)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target); +return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,o,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(r(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),o=!1,e(t).parents().each(function(){return o|="fixed"===e(this).css("position"),!o}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,o),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":o?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,v=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),n=s[1],a=17,r=t.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n="y"===e?s:1,a=RegExp("^\\d{"+n+","+s+"}"),o=i.substring(h).match(a);if(!o)throw"Missing number at position "+h;return h+=o[0].length,parseInt(o[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,C,N,A,P,I,H,z,F,E,O,j,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",C=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)N=(x+u)%7,C+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[N]+"'>"+p[N]+"</span></th>";for(M+=C+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),H=Q?this.maxRows>I?this.maxRows:I:I,this.maxRows=H,z=this._daylightSavingAdjust(new Date(et,Z,1-P)),F=0;H>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(z)+"</td>":"",x=0;7>x;x++)O=g?g.apply(e.input?e.input[0]:null,[z]):[!0,""],j=z.getMonth()!==Z,W=j&&!y||!O[0]||X&&X>z||$&&z>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(j?" ui-datepicker-other-month":"")+(z.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===z.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(j&&!v?"":" "+O[1]+(z.getTime()===G.getTime()?" "+this._currentClass:"")+(z.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(j&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"'")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+z.getMonth()+"' data-year='"+z.getFullYear()+"'")+">"+(j&&!v?" ":W?"<span class='ui-state-default'>"+z.getDate()+"</span>":"<a class='ui-state-default"+(z.getTime()===R.getTime()?" ui-state-highlight":"")+(z.getTime()===G.getTime()?" ui-state-active":"")+(j?" ui-priority-secondary":"")+"' href='#'>"+z.getDate()+"</a>")+"</td>",z.setDate(z.getDate()+1),z=this._daylightSavingAdjust(z);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.4",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) +},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n})),n?(a.isOver||(a.isOver=1,s._parent=i.helper.parent(),a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY<n.scrollSensitivity?o.scrollTop=a=o.scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(o.scrollTop=a=o.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+o.offsetWidth-t.pageX<n.scrollSensitivity?o.scrollLeft=a=o.scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(o.scrollLeft=a=o.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(r).scrollTop()<n.scrollSensitivity?a=e(r).scrollTop(e(r).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(r).scrollTop())<n.scrollSensitivity&&(a=e(r).scrollTop(e(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(r).scrollLeft()<n.scrollSensitivity?a=e(r).scrollLeft(e(r).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(r).scrollLeft())<n.scrollSensitivity&&(a=e(r).scrollLeft(e(r).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=e(this.handles[i]),this._on(this.handles[i],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options;e(i.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0};e(n.alsoResize).each(function(){var t=e(this),s=e(this).data("ui-resizable-alsoresize"),n={},a=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(a,function(e,t){var i=(s[t]||0)+(r[t]||0);i&&i>=0&&(n[t]=i||null)}),t.css(n)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=l-t.width,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0; +if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var y="ui-effects-",b=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(b),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(b.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.4",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(y+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(y+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; +f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this;this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._setSelection(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html(" ")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?(e=window.getSelection(),e.removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection(),e.rangeCount&&(this.range=e.getRangeAt(0))):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&this._resizeButton()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;e||(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.val(),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),i=this.options.step,s=Math.floor(+(e-t).toFixed(this._precision())/i)*i;e=s+t,this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); +return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-this.document.scrollTop()<o.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<o.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),t.pageX-this.document.scrollLeft()<o.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s],this.document[0]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i],this.document[0]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===s?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("<tr>",t.document[0]).appendTo(n)):"tr"===s?t._createTrPlaceholder(t.currentItem,n):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var s=this;t.children().each(function(){e("<td> </td>",s.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:h(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:h(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:h(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:h(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:h(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(h(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||t.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,i=this.tabs,s=this.anchors,n=this.panels; +this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o},h=function(e,t){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(e,t,n){setTimeout(function(){o.html(e),s._trigger("load",i,r),h(n,t)},1)}).fail(function(e,t){setTimeout(function(){h(e,t)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t.element)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s.element[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(t,s),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){n._delay(function(){e.data("ui-tooltip-open")&&(t&&(t.type=a),this._open(t,e,i))})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){l.of=e,o.is(":hidden")||o.position(l)}var a,o,r,h,l=e.extend({},this.options.position);if(s){if(a=this._find(i))return a.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),o=a.tooltip,this._addDescribedBy(i,o.attr("id")),o.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(h=s.clone(),h.removeAttr("id").find("[id]").removeAttr("id")):h=s,e("<div>").html(h).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):o.position(e.extend({of:i},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){o.is(":visible")&&(n(l.of),clearInterval(r))},e.fx.interval)),this._trigger("open",t,{tooltip:o})}},_registerCloseHandlers:function(t,i){var s={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),t&&"mouseover"!==t.type||(s.mouseleave="close"),t&&"focusin"!==t.type||(s.focusout="close"),this._on(!0,i,s)},close:function(t){var i,s=this,n=e(t?t.currentTarget:this.element),a=this._find(n);return a?(i=a.tooltip,a.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),a.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(e(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),a.closing=!0,this._trigger("close",t,{tooltip:i}),a.hiding||(a.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur"),a=s.element;n.target=n.currentTarget=a[0],t.close(n,!0),e("#"+i).remove(),a.data("ui-tooltip-title")&&(a.attr("title")||a.attr("title",a.data("ui-tooltip-title")),a.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file diff --git a/lib/scripts/jquery/jquery.js b/lib/scripts/jquery/jquery.js index d4b67f7e6..6feb11086 100644 --- a/lib/scripts/jquery/jquery.js +++ b/lib/scripts/jquery/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.11.1 + * jQuery JavaScript Library v1.11.3 * http://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * http://jquery.org/license * - * Date: 2014-05-01T17:42Z + * Date: 2015-04-28T16:19Z */ (function( global, factory ) { @@ -64,7 +64,7 @@ var support = {}; var - version = "1.11.1", + version = "1.11.3", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -269,7 +269,8 @@ jQuery.extend({ // parseFloat NaNs numeric-cast false positives (null|true|false|"") // ...but misinterprets leading-number strings, particularly hex literals ("0x...") // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; }, isEmptyObject: function( obj ) { @@ -568,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli }); function isArraylike( obj ) { - var length = obj.length, + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { @@ -584,14 +590,14 @@ function isArraylike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v1.10.19 + * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * - * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2014-04-18 + * Date: 2014-12-16 */ (function( window ) { @@ -618,7 +624,7 @@ var i, contains, // Instance-specific data - expando = "sizzle" + -(new Date()), + expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, @@ -633,7 +639,6 @@ var i, }, // General-purpose constants - strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, // Instance methods @@ -643,12 +648,13 @@ var i, push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { var i = 0, - len = this.length; + len = list.length; for ( ; i < len; i++ ) { - if ( this[i] === elem ) { + if ( list[i] === elem ) { return i; } } @@ -688,6 +694,7 @@ var i, ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), @@ -739,6 +746,14 @@ var i, String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); }; // Optimize for push.apply( _, NodeList ) @@ -781,19 +796,18 @@ function Sizzle( selector, context, results, seed ) { context = context || document; results = results || []; + nodeType = context.nodeType; - if ( !selector || typeof selector !== "string" ) { - return results; - } + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; + return results; } - if ( documentIsHTML && !seed ) { + if ( !seed && documentIsHTML ) { - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // Speed-up: Sizzle("#ID") if ( (m = match[1]) ) { if ( nodeType === 9 ) { @@ -825,7 +839,7 @@ function Sizzle( selector, context, results, seed ) { return results; // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + } else if ( (m = match[3]) && support.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } @@ -835,7 +849,7 @@ function Sizzle( selector, context, results, seed ) { if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { nid = old = expando; newContext = context; - newSelector = nodeType === 9 && selector; + newSelector = nodeType !== 1 && selector; // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root @@ -1022,7 +1036,7 @@ function createPositionalPseudo( fn ) { * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; + return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience @@ -1046,9 +1060,8 @@ isXML = Sizzle.isXML = function( elem ) { * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; // If no document and documentElement is available, return if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { @@ -1058,9 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Set our document document = doc; docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); + parent = doc.defaultView; // Support: IE>8 // If iframe document is assigned to "document" variable and if iframe has been reloaded, @@ -1069,21 +1080,22 @@ setDocument = Sizzle.setDocument = function( node ) { if ( parent && parent !== parent.top ) { // IE11 does not have attachEvent, so all must suffer if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); + parent.addEventListener( "unload", unloadHandler, false ); } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); + parent.attachEvent( "onunload", unloadHandler ); } } + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) support.attributes = assert(function( div ) { div.className = "i"; return !div.getAttribute("className"); @@ -1098,17 +1110,8 @@ setDocument = Sizzle.setDocument = function( node ) { return !div.getElementsByTagName("*").length; }); - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "<div class='a'></div><div class='a i'></div>"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name @@ -1122,7 +1125,7 @@ setDocument = Sizzle.setDocument = function( node ) { // ID find and filter if ( support.getById ) { Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var m = context.getElementById( id ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 @@ -1143,7 +1146,7 @@ setDocument = Sizzle.setDocument = function( node ) { Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; @@ -1152,14 +1155,20 @@ setDocument = Sizzle.setDocument = function( node ) { // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); } } : + function( tag, context ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments @@ -1177,7 +1186,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + if ( documentIsHTML ) { return context.getElementsByClassName( className ); } }; @@ -1206,13 +1215,15 @@ setDocument = Sizzle.setDocument = function( node ) { // setting a boolean content attribute, // since its presence should be enough // http://bugs.jquery.com/ticket/12359 - div.innerHTML = "<select msallowclip=''><option selected=''></option></select>"; + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { + if ( div.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } @@ -1222,12 +1233,24 @@ setDocument = Sizzle.setDocument = function( node ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !div.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } }); assert(function( div ) { @@ -1344,7 +1367,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Maintain original order return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } @@ -1371,7 +1394,7 @@ setDocument = Sizzle.setDocument = function( node ) { aup ? -1 : bup ? 1 : sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check @@ -1434,7 +1457,7 @@ Sizzle.matchesSelector = function( elem, expr ) { elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch(e) {} + } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; @@ -1653,7 +1676,7 @@ Expr = Sizzle.selectors = { return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); }); }, @@ -1675,7 +1698,7 @@ Expr = Sizzle.selectors = { operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; @@ -1795,7 +1818,7 @@ Expr = Sizzle.selectors = { matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); + idx = indexOf( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : @@ -1834,6 +1857,8 @@ Expr = Sizzle.selectors = { function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; return !results.pop(); }; }), @@ -1845,6 +1870,7 @@ Expr = Sizzle.selectors = { }), "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; @@ -2266,7 +2292,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } @@ -2301,13 +2327,16 @@ function matcherFromTokens( tokens ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; + return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; } ]; for ( ; i < len; i++ ) { @@ -2557,7 +2586,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; -// Support: Chrome<14 +// Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; @@ -6115,7 +6144,14 @@ var getStyles, curCSS, if ( window.getComputedStyle ) { getStyles = function( elem ) { - return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); }; curCSS = function( elem, name, computed ) { @@ -6363,6 +6399,8 @@ function addGetHookIf( conditionFn, hookFn ) { reliableMarginRightVal = !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); + + div.removeChild( contents ); } // Support: IE8 @@ -9070,7 +9108,8 @@ jQuery.extend({ } // We can fire global events as of now if asked to - fireGlobals = s.global; + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { @@ -9329,13 +9368,6 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; }); -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -}); - jQuery._evalUrl = function( url ) { return jQuery.ajax({ @@ -9561,8 +9593,9 @@ var xhrId = 0, // Support: IE<10 // Open requests must be manually aborted on unload (#5280) -if ( window.ActiveXObject ) { - jQuery( window ).on( "unload", function() { +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( undefined, true ); } @@ -9996,6 +10029,16 @@ jQuery.fn.load = function( url, params, callback ) { +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; diff --git a/lib/scripts/jquery/jquery.min.js b/lib/scripts/jquery/jquery.min.js index ab28a2472..0f60b7bd0 100644 --- a/lib/scripts/jquery/jquery.min.js +++ b/lib/scripts/jquery/jquery.min.js @@ -1,4 +1,5 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px") -},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){ +return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m}); diff --git a/lib/scripts/jquery/update.sh b/lib/scripts/jquery/update.sh index 741fcff1c..ed9dcab7b 100755 --- a/lib/scripts/jquery/update.sh +++ b/lib/scripts/jquery/update.sh @@ -9,13 +9,17 @@ # @link http://code.jquery.com/ # Adjust version for jQuery-UI here - there's no good latest link -JQUI_VERSION='1.11.0' +JQUI_VERSION='1.11.4' JQUI_HOST="https://code.jquery.com/ui/$JQUI_VERSION" JQUI_GIT="https://raw.githubusercontent.com/jquery/jquery-ui/$JQUI_VERSION/ui" +# Adjust version for jQueryhere - latest updates slowly +JQ_VERSION='1.11.3' + + # load jQuery -wget -nv http://code.jquery.com/jquery-latest.min.js -O jquery.min.js -wget -nv http://code.jquery.com/jquery-latest.js -O jquery.js +wget -nv http://code.jquery.com/jquery-${JQ_VERSION}.min.js -O jquery.min.js +wget -nv http://code.jquery.com/jquery-${JQ_VERSION}.js -O jquery.js # load jQuery-UI wget -nv "$JQUI_HOST/jquery-ui.min.js" -O jquery-ui.min.js -- GitLab From 3dfe7d64760baa568018c1d6d311c26d1a2da098 Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 29 May 2015 16:52:05 +0100 Subject: [PATCH 193/440] add anchors when constructing pattern from a non-regex oldline --- _test/tests/inc/io_replaceinfile.test.php | 13 +++++++++++++ inc/io.php | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php index c2dbc0dd4..de7301fa1 100644 --- a/_test/tests/inc/io_replaceinfile.test.php +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -79,4 +79,17 @@ class io_replaceinfile_test extends DokuWikiTest { $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1)); $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line"); } + + /** + * + */ + function test_edgecase3() + { + $file = TMP_DIR . '/test.txt'; + $contents = "The\012Delete\01201Delete\01202Delete\012Test\012"; + // Replace all, no regex, oldline exactly matches one line; matches part of other lines - only the exact match should be replaced + io_saveFile($file, $contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Replace\012", false, -1)); + $this->assertEquals("The\012Replace\01201Delete\01202Delete\012Test\012", io_readFile($file), "Edge case: old line is a match for parts of other lines"); + } } diff --git a/inc/io.php b/inc/io.php index 51ca2ea14..c559feb17 100644 --- a/inc/io.php +++ b/inc/io.php @@ -312,7 +312,7 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) } // make non-regexes into regexes - $pattern = $regex ? $oldline : '/'.preg_quote($oldline,'/').'/'; + $pattern = $regex ? $oldline : '/^'.preg_quote($oldline,'/').'$/'; $replace = $regex ? $newline : addcslashes($newline, '\$'); // remove matching lines -- GitLab From e12c5ac781d560502d478775502df70cd80472de Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 29 May 2015 16:55:23 +0100 Subject: [PATCH 194/440] Minor Refactoring - put test comments in more appropriate spot - move appending replacement line alongside its search/delete code --- _test/tests/inc/io_replaceinfile.test.php | 12 +++++++----- inc/io.php | 14 +++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php index de7301fa1..597138a20 100644 --- a/_test/tests/inc/io_replaceinfile.test.php +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -59,35 +59,37 @@ class io_replaceinfile_test extends DokuWikiTest { } /** - * + * Test for a non-regex replacement where $newline contains a backreference like construct - it shouldn't affect the replacement */ function test_edgecase1() { $file = TMP_DIR . '/test.txt'; - // Replace all, no regex, backreference like construct in replacement line + io_saveFile($file, $this->contents); $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\\00\012", false, -1)); $this->assertEquals("The\012Delete\\00\012Delete\\00\012Delete01\012Delete02\012Delete\\00\012DeleteX\012Test\012", io_readFile($file), "Edge case: backreference like construct in replacement line"); } /** + * Test with replace all where replacement line == search line - must not timeout + * * @small */ function test_edgecase2() { $file = TMP_DIR.'/test.txt'; - // Replace all, no regex, replacement line == search line + io_saveFile($file, $this->contents); $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1)); $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line"); } /** - * + * Test where $oldline exactly matches one line and also matches part of other lines - only the exact match should be replaced */ function test_edgecase3() { $file = TMP_DIR . '/test.txt'; $contents = "The\012Delete\01201Delete\01202Delete\012Test\012"; - // Replace all, no regex, oldline exactly matches one line; matches part of other lines - only the exact match should be replaced + io_saveFile($file, $contents); $this->assertTrue(io_replaceInFile($file, "Delete\012", "Replace\012", false, -1)); $this->assertEquals("The\012Replace\01201Delete\01202Delete\012Test\012", io_readFile($file), "Edge case: old line is a match for parts of other lines"); diff --git a/inc/io.php b/inc/io.php index c559feb17..4c7fb094f 100644 --- a/inc/io.php +++ b/inc/io.php @@ -324,14 +324,14 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched); if ($matched) $count++; } - } else { - $lines = ($maxlines == 0) ? - preg_grep($pattern, $lines, PREG_GREP_INVERT) : - preg_replace($pattern, $replace, $lines); - } + } else if ($maxlines == 0) { + $lines = preg_grep($pattern, $lines, PREG_GREP_INVERT); - if($maxlines == 0 && ((string)$newline) !== '') { - $lines[] = $newline; + if ((string)$newline !== ''){ + $lines[] = $newline; + } + } else { + $lines = preg_replace($pattern, $replace, $lines); } if(count($lines)){ -- GitLab From dc4a4eb00d67d7d28fae137437900220920577d4 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 29 May 2015 15:38:43 -0400 Subject: [PATCH 195/440] Abort io_replaceInLine when the search parameter is empty --- _test/tests/inc/io_replaceinfile.test.php | 11 +++++++++++ inc/io.php | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php index 597138a20..452ed7401 100644 --- a/_test/tests/inc/io_replaceinfile.test.php +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -94,4 +94,15 @@ class io_replaceinfile_test extends DokuWikiTest { $this->assertTrue(io_replaceInFile($file, "Delete\012", "Replace\012", false, -1)); $this->assertEquals("The\012Replace\01201Delete\01202Delete\012Test\012", io_readFile($file), "Edge case: old line is a match for parts of other lines"); } + + /** + * Test passing an invalid parameter. + * + * @expectedException PHPUnit_Framework_Error_Warning + */ + function test_badparam() + { + /* The empty $oldline parameter should be caught before the file doesn't exist test. */ + $this->assertFalse(io_replaceInFile(TMP_DIR.'/not_existing_file.txt', '', '', false, 0)); + } } diff --git a/inc/io.php b/inc/io.php index 4c7fb094f..6d3c20047 100644 --- a/inc/io.php +++ b/inc/io.php @@ -298,6 +298,11 @@ function io_saveFile($file, $content, $append=false) { * @return bool true on success */ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) { + if ((string)$oldline === '') { + trigger_error('$oldline parameter cannot be empty in io_replaceInFile()', E_USER_WARNING); + return false; + } + if (!file_exists($file)) return true; io_lock($file); -- GitLab From d93ba631117932f06b44535a9d6256cc8e9c4b90 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Fri, 29 May 2015 15:46:19 -0400 Subject: [PATCH 196/440] Rephrase description of io_replaceInFiles to be clarify use of regex --- inc/io.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/inc/io.php b/inc/io.php index 6d3c20047..9be648824 100644 --- a/inc/io.php +++ b/inc/io.php @@ -276,12 +276,14 @@ function io_saveFile($file, $content, $append=false) { /** * Replace one or more occurrences of a line in a file. * - * The default, when $maxlines is 0 is to delete all matches then append a single line. - * If $maxlines is -1, then every $oldline will be replaced with $newline, and $regex is true - * then preg captures are used. If $maxlines is greater than 0 then the first $maxlines - * matches are replaced with $newline. + * The default, when $maxlines is 0 is to delete all matching lines then append a single line. + * A regex that matches any part of the line will remove the entire line in this mode. + * Captures in $newline are not available. * - * Be sure to include the trailing newline in $oldline + * Otherwise each line is matched and replaced individually, up to the first $maxlines lines + * or all lines if $maxlines is -1. If $regex is true then captures can be used in $newline. + * + * Be sure to include the trailing newline in $oldline when replacing entire lines. * * Uses gzip if extension is .gz * and bz2 if extension is .bz2 -- GitLab From 9725524bfea8db551f8627c74317d2d35bc8fd60 Mon Sep 17 00:00:00 2001 From: Pavel <pavelholovko@yandex.ru> Date: Sun, 31 May 2015 10:20:51 +0200 Subject: [PATCH 197/440] translation update --- inc/lang/uk/lang.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 173b844fc..52edaafda 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -11,6 +11,7 @@ * @author Kate Arzamastseva pshns@ukr.net * @author Egor Smkv <egorsmkv@gmail.com> * @author Max Lyashuk <m_lyashuk@ukr.net> + * @author Pavel <pavelholovko@yandex.ru> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,6 +56,7 @@ $lang['btn_apply'] = 'ЗаÑтоÑувати'; $lang['btn_media'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-файлами'; $lang['btn_deleteuser'] = 'Видалити мій аккаунт'; $lang['btn_img_backto'] = 'ПовернутиÑÑ Ð´Ð¾ %s'; +$lang['btn_mediaManager'] = 'Показати в медіа менеджері'; $lang['loggedinas'] = 'Ви:'; $lang['user'] = 'КориÑтувач'; $lang['pass'] = 'Пароль'; @@ -75,6 +77,7 @@ $lang['regmissing'] = 'Ðеобхідно заповнити вÑÑ– $lang['reguexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; $lang['regsuccess'] = 'КориÑтувача Ñтворено. Пароль відправлено на e-mail.'; $lang['regsuccess2'] = 'КориÑтувача Ñтворено.'; +$lang['regfail'] = 'КориÑтувач не Ñтворений'; $lang['regmailfail'] = 'При відправленні Ð¿Ð°Ñ€Ð¾Ð»Ñ ÑталаÑÑŒ помилка. Зв’ÑжітьÑÑ Ð· адмініÑтратором!'; $lang['regbadmail'] = 'Схоже, що адреÑа e-mail невірна - Ñкщо ви вважаєте, що це помилка, зв’ÑжітьÑÑ Ð· адмініÑтратором'; $lang['regbadpass'] = 'Ðадані паролі не Ñпівпадають, Ñпробуйте ще раз.'; @@ -298,3 +301,10 @@ $lang['hours'] = '%d годин тому'; $lang['minutes'] = '%d хвилин тому'; $lang['seconds'] = '%d Ñекунд тому'; $lang['wordblock'] = 'Ваші зміни не збережено, тому що вони розпізнані Ñк такі, що міÑÑ‚ÑÑ‚ÑŒ заблокований текÑÑ‚(Ñпам).'; +$lang['media_searchtab'] = 'Пошук'; +$lang['media_file'] = 'Файл'; +$lang['media_viewtab'] = 'ОглÑд'; +$lang['media_edittab'] = 'Редагувати'; +$lang['media_historytab'] = 'ІÑторіÑ'; +$lang['media_sort_name'] = 'Ім’Ñ'; +$lang['media_sort_date'] = 'Дата'; -- GitLab From 9b886e96727c001a7e749f0fc3509eaaeb1bc39d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20R=2E=20Kapa=C3=A7?= <irifat@gmail.com> Date: Thu, 4 Jun 2015 10:41:00 +0200 Subject: [PATCH 198/440] translation update --- inc/lang/tr/lang.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index ff7a73eea..6b4315c7c 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -73,11 +73,12 @@ $lang['badpassconfirm'] = 'Ãœzgünüz, parolanız yanlış'; $lang['minoredit'] = 'Küçük DeÄŸiÅŸiklikler'; $lang['draftdate'] = 'Taslak ÅŸu saatte otomatik kaydedildi:'; $lang['nosecedit'] = 'Sayfa yakın zamanda deÄŸiÅŸtirilmiÅŸtir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiÅŸtir.'; -$lang['searchcreatepage'] = "Aradığınız ÅŸeyi bulamadıysanız, ''Sayfayı deÄŸiÅŸtir'' tuÅŸuna tıklayarak girdiÄŸiniz sorgu adıyla yeni bir sayfa oluÅŸturabilirsiniz ."; +$lang['searchcreatepage'] = 'Aradığınız ÅŸeyi bulamadıysanız, \'\'Sayfayı deÄŸiÅŸtir\'\' tuÅŸuna tıklayarak girdiÄŸiniz sorgu adıyla yeni bir sayfa oluÅŸturabilirsiniz .'; $lang['regmissing'] = 'Ãœzgünüz, tüm alanları doldurmalısınız.'; $lang['reguexists'] = 'Ãœzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; $lang['regsuccess'] = 'Kullanıcı oluÅŸturuldu ve ÅŸifre e-posta adresine gönderildi.'; $lang['regsuccess2'] = 'Kullanıcı oluÅŸturuldu.'; +$lang['regfail'] = 'Kullanıcı oluÅŸturulamadı.'; $lang['regmailfail'] = 'Åžifrenizi e-posta ile gönderirken bir hata oluÅŸmuÅŸ gibi görünüyor. Lütfen yönetici ile temasa geçiniz!'; $lang['regbadmail'] = 'Verilen e-posta adresi geçersiz gibi görünüyor - bunun bir hata olduÄŸunu düşünüyorsanız yönetici ile temasa geçiniz.'; $lang['regbadpass'] = 'Girilen parolalar aynı deÄŸil. Lütfen tekrar deneyiniz.'; @@ -92,6 +93,7 @@ $lang['profdeleteuser'] = 'Hesabı Sil'; $lang['profdeleted'] = 'Bu wiki\'den hesabınız silindi'; $lang['profconfdelete'] = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu iÅŸlem geri alınamaz'; $lang['profconfdeletemissing'] = 'Onay kutusu iÅŸaretlenmedi'; +$lang['proffail'] = 'Kullanıcı bilgileri güncellenmedi.'; $lang['pwdforget'] = 'Parolanızı mı unuttunuz? Yeni bir parola alın'; $lang['resendna'] = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.'; $lang['resendpwd'] = 'İçin yeni ÅŸifre belirle'; @@ -184,6 +186,7 @@ $lang['diff'] = 'Kullanılan sürüm ile farkları göster'; $lang['diff2'] = 'Seçili sürümler arasındaki farkı göster'; $lang['difflink'] = 'KarşılaÅŸtırma görünümüne baÄŸlantı'; $lang['diff_type'] = 'farklı görünüş'; +$lang['diff_inline'] = 'Satır içi'; $lang['diff_side'] = 'Yan yana'; $lang['diffprevrev'] = 'Önceki sürüm'; $lang['diffnextrev'] = 'Sonraki sürüm'; @@ -257,6 +260,14 @@ $lang['img_camera'] = 'FotoÄŸraf Makinası:'; $lang['img_keywords'] = 'Anahtar Sözcükler:'; $lang['img_width'] = 'GeniÅŸlik:'; $lang['img_height'] = 'Yükseklik:'; +$lang['subscr_subscribe_success'] = '%s, %s için abonelik listesine eklendi.'; +$lang['subscr_subscribe_error'] = '%s, %s için abonelik listesine eklenirken hata ile karşılaşıldı.'; +$lang['subscr_subscribe_noaddress'] = 'Oturum bilginiz ile iliÅŸkilendirilmiÅŸ bir adres olmadığı için abonelik listesine dahil olamazsınız.'; +$lang['subscr_unsubscribe_success'] = '%s, %s için abonelik listesinden çıkarıldı.'; +$lang['subscr_unsubscribe_error'] = '%s, %s için abonelik listesinden çıkarılırken hata ile karşılaşıldı.'; +$lang['subscr_already_subscribed'] = '%s zaten %s listesine abone.'; +$lang['subscr_not_subscribed'] = '%s, %s listesine abone deÄŸil.'; +$lang['subscr_m_not_subscribed'] = 'Bu sayfa veya isim alanına (namespace) abone deÄŸilsiniz. '; $lang['subscr_m_new_header'] = 'Ãœyelik ekle'; $lang['subscr_m_current_header'] = 'ÃœyeliÄŸini onayla'; $lang['subscr_m_unsubscribe'] = 'Ãœyelik iptali'; @@ -273,6 +284,7 @@ $lang['i_problems'] = 'Kurulum sihirbazı aÅŸağıda gösterilen soru $lang['i_modified'] = 'Güzenlik sebebiyle bu script sadece yeni ve deÄŸiÅŸtirilmemiÅŸ bir Dokuwiki kurulumunda çalışır. Ya indirdiÄŸiniz paketi yeniden açmalı ya da <a href="http://dokuwiki.org/install"> adresindeki Dokuwiki kurulum kılavuzu</a>na bakmalısınız.'; $lang['i_funcna'] = '<code>%s</code> PHP fonksiyonu bulunmamaktadır. Barındırma(Hosting) hizmetinde bu özellik kapatılmış olabilir.'; $lang['i_phpver'] = '<code>%s</code> PHP sürümü, gereken <code>%s</code> sürümünden daha düşük. PHP kurulumunu yükseltmeniz gerekmektedir.'; +$lang['i_mbfuncoverload'] = 'DokuWiki\'nin çalışması için php.ini dosyasında mbstring.func_overload seçeneÄŸi kapalı (deÄŸeri 0) olarak ayarlanmalıdır.'; $lang['i_permfail'] = '<code>%s</code> Dokuwiki tarafından yazılabilir deÄŸil. Ä°zin ayarlarını bu klasör için düzeltmeniz gerekmektedir!'; $lang['i_confexists'] = '<code>%s</code> zaten var'; $lang['i_writeerr'] = '<code>%s</code> oluÅŸturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluÅŸturmalısınız.'; -- GitLab From 6a7af1ccf98fac8f5dd1097f5d4978df562a5d02 Mon Sep 17 00:00:00 2001 From: Hendrik Diel <diel.hendrik@gmail.com> Date: Sun, 7 Jun 2015 10:46:45 +0200 Subject: [PATCH 199/440] translation update --- inc/lang/de/lang.php | 3 +++ lib/plugins/authmysql/lang/de/lang.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index f435a31bf..d74f66149 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -28,6 +28,7 @@ * @author Hoisl <hoisl@gmx.at> * @author Marcel Eickhoff <eickhoff.marcel@gmail.com> * @author Pascal Schröder <Pascal1802@gmail.com> + * @author Hendrik Diel <diel.hendrik@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -93,6 +94,7 @@ $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden.'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; $lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.'; +$lang['regfail'] = 'Der Benutzer konnte nicht angelegt werden.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwort-E-Mail aufgetreten. Bitte wenden Sie sich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene E-Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wenden Sie sich bitte an den Wiki-Admin.'; $lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuchen Sie es noch einmal.'; @@ -107,6 +109,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen'; $lang['profdeleted'] = 'Ihr Benutzerprofil wurde im Wiki gelöscht.'; $lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.'; $lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.'; +$lang['proffail'] = 'Das Benutzerkonto konnte nicht aktualisiert werden.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort setzen für'; diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php index 6160f60ea..819b98458 100644 --- a/lib/plugins/authmysql/lang/de/lang.php +++ b/lib/plugins/authmysql/lang/de/lang.php @@ -4,5 +4,8 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Noel Tilliot <noeltilliot@byom.de> + * @author Hendrik Diel <diel.hendrik@gmail.com> */ +$lang['userexists'] = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.'; $lang['usernotexists'] = 'Sorry, dieser Nutzer existiert nicht.'; +$lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.'; -- GitLab From e596bf92c4429edfcae42012e2a3507be9e9bbe9 Mon Sep 17 00:00:00 2001 From: hyeonsoft <hyeonsoft@live.co.kr> Date: Thu, 11 Jun 2015 12:01:03 +0200 Subject: [PATCH 200/440] translation update --- inc/lang/ko/lang.php | 3 +++ lib/plugins/authmysql/lang/ko/lang.php | 11 +++++++++++ lib/plugins/extension/lang/ko/lang.php | 4 ++++ 3 files changed, 18 insertions(+) create mode 100644 lib/plugins/authmysql/lang/ko/lang.php diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index c9b72197b..b46abf5d1 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -13,6 +13,7 @@ * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Garam <rowain8@gmail.com> * @author Young gon Cha <garmede@gmail.com> + * @author hyeonsoft <hyeonsoft@live.co.kr> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -78,6 +79,7 @@ $lang['regmissing'] = '죄송하지만 ëª¨ë“ í•„ë“œë¥¼ 채워야 í•© $lang['reguexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; $lang['regsuccess'] = '사용ìžë¥¼ 만들었으며 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; $lang['regsuccess2'] = '사용ìžë¥¼ 만들었습니다.'; +$lang['regfail'] = 'ì‚¬ìš©ìž ê³„ì •ì´ ë§Œë“¤ì–´ì§€ì§€ 않았습니다.'; $lang['regmailfail'] = '비밀번호를 ì´ë©”ì¼ë¡œ 보내는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”!'; $lang['regbadmail'] = '주어진 ì´ë©”ì¼ ì£¼ì†Œê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ - 오류ë¼ê³ ìƒê°í•˜ë©´ 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”'; $lang['regbadpass'] = 'ë‘ ì£¼ì–´ì§„ 비밀번호가 같지 않습니다. 다시 ìž…ë ¥í•˜ì„¸ìš”.'; @@ -92,6 +94,7 @@ $lang['profdeleteuser'] = 'ê³„ì • ì‚ì œ'; $lang['profdeleted'] = 'ë‹¹ì‹ ì˜ ì‚¬ìš©ìž ê³„ì •ì´ ì´ ìœ„í‚¤ì—ì„œ ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['profconfdelete'] = 'ì´ ìœ„í‚¤ì—ì„œ ë‚´ ê³„ì •ì„ ì œê±°í•˜ê³ ì‹¶ìŠµë‹ˆë‹¤. <br/> ì´ í–‰ë™ì€ ë˜ëŒë¦´ 수 없습니다.'; $lang['profconfdeletemissing'] = 'ì„ íƒí•˜ì§€ ì•Šì€ í™•ì¸ ìƒìžë¥¼ 확ì¸'; +$lang['proffail'] = 'ì‚¬ìš©ìž ì„¤ì •ì´ ì—…ë°ì´íŠ¸ë˜ì§€ 않았습니다.'; $lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 ìž¬ì„¤ì •í•˜ì„¸ìš”'; $lang['resendna'] = 'ì´ ìœ„í‚¤ëŠ” 비밀번호 ìž¬ì„¤ì •ì„ ì§€ì›í•˜ì§€ 않습니다.'; $lang['resendpwd'] = '다ìŒìœ¼ë¡œ 새 비밀번호 보내기'; diff --git a/lib/plugins/authmysql/lang/ko/lang.php b/lib/plugins/authmysql/lang/ko/lang.php new file mode 100644 index 000000000..a2ad278c1 --- /dev/null +++ b/lib/plugins/authmysql/lang/ko/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author hyeonsoft <hyeonsoft@live.co.kr> + */ +$lang['connectfail'] = 'ë°ì´í„°ë² ì´ìŠ¤ì— 연결하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; +$lang['userexists'] = 'ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ ë¡œê·¸ì¸ ëœ ì‚¬ìš©ìžê°€ 있습니다.'; +$lang['usernotexists'] = 'ì´ ê³„ì •ì€ ì¡´ìž¬í•˜ì§€ 않습니다.'; +$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 관리ìžì—게 문ì˜í•˜ì‹ì‹œì˜¤.'; diff --git a/lib/plugins/extension/lang/ko/lang.php b/lib/plugins/extension/lang/ko/lang.php index 5dc5d8269..3de28c0c8 100644 --- a/lib/plugins/extension/lang/ko/lang.php +++ b/lib/plugins/extension/lang/ko/lang.php @@ -5,6 +5,7 @@ * * @author Young gon Cha <garmede@gmail.com> * @author Myeongjin <aranet100@gmail.com> + * @author hyeonsoft <hyeonsoft@live.co.kr> */ $lang['menu'] = '확장 기능 관리ìž'; $lang['tab_plugins'] = 'ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸'; @@ -26,6 +27,9 @@ $lang['btn_disable'] = '비활성화'; $lang['btn_install'] = '설치'; $lang['btn_reinstall'] = '다시 설치'; $lang['js']['reallydel'] = 'ì •ë§ ì´ í™•ìž¥ ê¸°ëŠ¥ì„ ì œê±°í•˜ê² ìŠµë‹ˆê¹Œ?'; +$lang['js']['display_viewoptions'] = '보기 옵션:'; +$lang['js']['display_enabled'] = '켜ì§'; +$lang['js']['display_disabled'] = '꺼ì§'; $lang['search_for'] = '확장 기능 검색:'; $lang['search'] = '검색'; $lang['extensionby'] = '<strong>%s</strong> (ì €ìž %s)'; -- GitLab From 98e550d66d125f8f445387a1b7f66446fb684421 Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sat, 13 Jun 2015 14:20:39 +0900 Subject: [PATCH 201/440] change two spaces to a space In line 5 and 6, Message have two spaces, so I change them to a space. --- lib/plugins/usermanager/lang/en/import.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/usermanager/lang/en/import.txt b/lib/plugins/usermanager/lang/en/import.txt index 360a0689b..3a1cf999e 100644 --- a/lib/plugins/usermanager/lang/en/import.txt +++ b/lib/plugins/usermanager/lang/en/import.txt @@ -2,8 +2,8 @@ Requires a CSV file of users with at least four columns. The columns must contain, in order: user-id, full name, email address and groups. -The CSV fields should be separated by commas (,) and strings delimited by quotation marks (%%""%%). Backslash (\) can be used for escaping. -For an example of a suitable file, try the "Export Users" function above. +The CSV fields should be separated by commas (,) and strings delimited by quotation marks (%%""%%). Backslash (\) can be used for escaping. +For an example of a suitable file, try the "Export Users" function above. Duplicate user-ids will be ignored. A password will be generated and emailed to each successfully imported user. -- GitLab From 11fcf0d8b9dbb221912cd2c4a487a31f0afb0395 Mon Sep 17 00:00:00 2001 From: Maurizio <mcannavo@katamail.com> Date: Sun, 14 Jun 2015 19:46:30 +0200 Subject: [PATCH 202/440] translation update --- inc/lang/it/lang.php | 1 + lib/plugins/authmysql/lang/it/settings.php | 2 ++ lib/plugins/authpgsql/lang/it/settings.php | 3 +++ .../extension/lang/it/intro_install.txt | 1 + .../extension/lang/it/intro_plugins.txt | 1 + lib/plugins/extension/lang/it/lang.php | 27 +++++++++++++++++++ 6 files changed, 35 insertions(+) create mode 100644 lib/plugins/extension/lang/it/intro_install.txt create mode 100644 lib/plugins/extension/lang/it/intro_plugins.txt diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index a7da52935..b84c4d7d8 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -21,6 +21,7 @@ * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 10c0de96f..9dc1a0157 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -6,6 +6,7 @@ * @author Claudio Lanconelli <lancos@libero.it> * @author Mirko <malisan.mirko@gmail.com> * @author Francesco <francesco.cavalli@hotmail.com> + * @author Maurizio <mcannavo@katamail.com> */ $lang['server'] = 'Il tuo server MySQL'; $lang['user'] = 'User name di MySQL'; @@ -17,6 +18,7 @@ $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; $lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti'; $lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"'; +$lang['FilterGroup'] = 'Clausola SQL per filtrare gli utenti in base all\'appartenenza al gruppo'; $lang['SortOrder'] = 'Istruzione SQL per ordinare gli utenti'; $lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; $lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo'; diff --git a/lib/plugins/authpgsql/lang/it/settings.php b/lib/plugins/authpgsql/lang/it/settings.php index e8a40dcb2..bc326b34f 100644 --- a/lib/plugins/authpgsql/lang/it/settings.php +++ b/lib/plugins/authpgsql/lang/it/settings.php @@ -5,9 +5,12 @@ * * @author Francesco <francesco.cavalli@hotmail.com> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ $lang['server'] = 'Il tuo server PostgreSQL '; $lang['port'] = 'La porta del tuo server PostgreSQL '; $lang['user'] = 'Lo username PostgreSQL'; +$lang['password'] = 'Password dell\'utente summenzionato'; $lang['database'] = 'Database da usare'; +$lang['debug'] = 'Visualizza informazioni addizionali di debug'; $lang['getUsers'] = 'Dichiarazione SQL per elencare tutti gli utenti'; diff --git a/lib/plugins/extension/lang/it/intro_install.txt b/lib/plugins/extension/lang/it/intro_install.txt new file mode 100644 index 000000000..5106500ba --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_install.txt @@ -0,0 +1 @@ +Qui potete installare manualmente plugin e template, sia caricandoli in upload sia fornendo una URL per scaricarli direttamente. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/intro_plugins.txt b/lib/plugins/extension/lang/it/intro_plugins.txt new file mode 100644 index 000000000..cd7825fb2 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_plugins.txt @@ -0,0 +1 @@ +Questi sono i plugin attualmente installati nel vostro DokuWiki. Qui potete abilitarli o disabilitarli o addirittura disinstallarli completamente. Qui sono mostrati anche gli aggiornamenti dei plugin, assicurativi di leggere la relativa documentazione prima di aggiornarli. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/lang.php b/lib/plugins/extension/lang/it/lang.php index 1aa658e0f..80ed0ddcf 100644 --- a/lib/plugins/extension/lang/it/lang.php +++ b/lib/plugins/extension/lang/it/lang.php @@ -6,7 +6,18 @@ * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ +$lang['menu'] = 'Manager delle Extension'; +$lang['tab_plugins'] = 'Plugin Installati'; +$lang['tab_templates'] = 'Template Installati'; +$lang['tab_search'] = 'Ricerca e Installazione'; +$lang['tab_install'] = 'Installazione Manuale'; +$lang['notimplemented'] = 'Questa funzionalità non è ancora stata implementata'; +$lang['notinstalled'] = 'Questa extension non è installata'; +$lang['alreadyenabled'] = 'Questa extension è già stata abilitata'; +$lang['alreadydisabled'] = 'Questa extension à già stata disabilitata'; +$lang['pluginlistsaveerror'] = 'Si è verificato un errore durante il salvataggio dell\'elenco dei plugin'; $lang['unknownauthor'] = 'Autore sconosciuto'; $lang['unknownversion'] = 'Revisione sconosciuta'; $lang['btn_info'] = 'Mostra maggiori informazioni'; @@ -17,7 +28,14 @@ $lang['btn_disable'] = 'Disabilita'; $lang['btn_install'] = 'Installa'; $lang['btn_reinstall'] = 'Reinstalla'; $lang['js']['reallydel'] = 'Sicuro di disinstallare questa estensione?'; +$lang['js']['display_viewoptions'] = 'Opzioni di Visualizzazione:'; +$lang['js']['display_enabled'] = 'abilitato'; +$lang['js']['display_disabled'] = 'disabilitato'; +$lang['js']['display_updatable'] = 'aggiornabile'; +$lang['search_for'] = 'Extension di Ricerca:'; $lang['search'] = 'Cerca'; +$lang['screenshot'] = 'Screenshot di %s'; +$lang['popularity'] = 'Popolarità : %s%%'; $lang['homepage_link'] = 'Documenti'; $lang['bugs_features'] = 'Bug'; $lang['tags'] = 'Tag:'; @@ -46,9 +64,13 @@ $lang['status_disabled'] = 'disabilitato'; $lang['status_unmodifiable'] = 'inmodificabile'; $lang['status_plugin'] = 'plugin'; $lang['status_template'] = 'modello'; +$lang['status_bundled'] = 'accoppiato'; $lang['msg_enabled'] = 'Plugin %s abilitato'; $lang['msg_disabled'] = 'Plugin %s disabilitato'; $lang['msg_delete_success'] = 'Estensione %s disinstallata'; +$lang['msg_delete_failed'] = 'Disinstallazione dell\'Extension %s fallita'; +$lang['msg_template_install_success'] = 'Il template %s è stato installato correttamente'; +$lang['msg_template_update_success'] = 'Il Template %s è stato aggiornato correttamente'; $lang['msg_plugin_install_success'] = 'Plugin %s installato con successo'; $lang['msg_plugin_update_success'] = 'Plugin %s aggiornato con successo'; $lang['msg_upload_failed'] = 'Caricamento del file fallito'; @@ -58,7 +80,12 @@ $lang['wrong_folder'] = '<strong>Plugin non installato correttamente:</ $lang['error_badurl'] = 'URLs deve iniziare con http o https'; $lang['error_dircreate'] = 'Impossibile creare una cartella temporanea per ricevere il download'; $lang['error_download'] = 'Impossibile scaricare il file: %s'; +$lang['error_decompress'] = 'Impossibile decomprimere il file scaricato. Ciò può dipendere da errori in fase di download, nel qual caso dovreste ripetere l\'operazione; oppure il formato di compressione è sconosciuto, e in questo caso dovrete scaricare e installare manualmente.'; +$lang['error_findfolder'] = 'Impossibile identificare la directory dell\'extension, dovrete scaricare e installare manualmente'; $lang['noperms'] = 'La directory Extension non è scrivibile'; $lang['notplperms'] = 'Il modello di cartella non è scrivibile'; $lang['nopluginperms'] = 'La cartella plugin non è scrivibile'; +$lang['git'] = 'Questa extension è stata installata da git, potreste non volerla aggiornare qui.'; $lang['install_url'] = 'Installa da URL:'; +$lang['install_upload'] = 'Caricamento Extension:'; +$lang['repo_error'] = 'Il repository dei plugin non può essere raggiunto. Assicuratevi che il vostro server sia abilitato a contattare l\'indirizzo www.dokuwiki.org e controllate le impostazioni del vostro proxy.'; -- GitLab From 0c43e7198c135083b88bdad3dd7876a8ff8a2870 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Mon, 15 Jun 2015 21:13:39 +0200 Subject: [PATCH 203/440] Replace old constructor call by __construct() in dokuwiki_xmlrpc_server --- lib/exe/xmlrpc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 61a68281f..6a0163106 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -20,7 +20,7 @@ class dokuwiki_xmlrpc_server extends IXR_Server { $this->remote = new RemoteAPI(); $this->remote->setDateTransformation(array($this, 'toDate')); $this->remote->setFileTransformation(array($this, 'toFile')); - $this->IXR_Server(); + parent::__construct(); } /** -- GitLab From 53a0b3d1d10308129a557367e22069517b33ec97 Mon Sep 17 00:00:00 2001 From: Nolf <m.kopachovets@gmail.com> Date: Thu, 18 Jun 2015 11:11:10 +0200 Subject: [PATCH 204/440] translation update --- inc/lang/ru/lang.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 7ca9fb8b3..3a1fb2c56 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -30,6 +30,7 @@ * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> * @author Alex P <alexander@lanos.co.uk> + * @author Nolf <m.kopachovets@gmail.com> */ $lang['encoding'] = ' utf-8'; $lang['direction'] = 'ltr'; @@ -95,6 +96,7 @@ $lang['regmissing'] = 'Извините, вам Ñледует зап $lang['reguexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; $lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан на Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; $lang['regsuccess2'] = 'Пользователь Ñоздан.'; +$lang['regfail'] = 'Пользователь не может быть Ñоздан.'; $lang['regmailfail'] = 'Похоже еÑÑ‚ÑŒ проблема Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¾Ð¹ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾ почте. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору.'; $lang['regbadmail'] = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.'; $lang['regbadpass'] = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ идентичны. ПожалуйÑта, попробуйте ещё раз.'; @@ -109,6 +111,7 @@ $lang['profdeleteuser'] = 'Удалить аккаунт'; $lang['profdeleted'] = 'Ваш аккаунт был удален из Ñтой вики'; $lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> Ðто дейÑтвие необратимо.'; $lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен'; +$lang['proffail'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ был обновлен.'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; $lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; $lang['resendpwd'] = 'УÑтановить новый пароль длÑ'; @@ -356,6 +359,7 @@ $lang['media_perm_read'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтато $lang['media_perm_upload'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов.'; $lang['media_update'] = 'Загрузить новую верÑию'; $lang['media_restore'] = 'ВоÑÑтановить Ñту верÑию'; +$lang['media_acl_warning'] = 'Ðтот ÑпиÑок может быть неполным из-за ACL ограничений и Ñкрытых Ñтраниц.'; $lang['currentns'] = 'Текущее проÑтранÑтво имён'; $lang['searchresult'] = 'Результаты поиÑка'; $lang['plainhtml'] = 'ПроÑтой HTML'; -- GitLab From 4bad992bd96f3715e50bb0fa39020badd708da8b Mon Sep 17 00:00:00 2001 From: Sri Saravana <saravanamuthaly@gmail.com> Date: Fri, 26 Jun 2015 03:30:12 +0200 Subject: [PATCH 205/440] translation update --- inc/lang/ta/admin.txt | 3 +++ inc/lang/ta/adminplugins.txt | 1 + inc/lang/ta/backlinks.txt | 3 +++ inc/lang/ta/conflict.txt | 3 +++ inc/lang/ta/diff.txt | 3 +++ inc/lang/ta/draft.txt | 1 + inc/lang/ta/edit.txt | 1 + inc/lang/ta/lang.php | 18 ++++++++++++++++++ 8 files changed, 33 insertions(+) create mode 100644 inc/lang/ta/admin.txt create mode 100644 inc/lang/ta/adminplugins.txt create mode 100644 inc/lang/ta/backlinks.txt create mode 100644 inc/lang/ta/conflict.txt create mode 100644 inc/lang/ta/diff.txt create mode 100644 inc/lang/ta/draft.txt create mode 100644 inc/lang/ta/edit.txt diff --git a/inc/lang/ta/admin.txt b/inc/lang/ta/admin.txt new file mode 100644 index 000000000..2538b4569 --- /dev/null +++ b/inc/lang/ta/admin.txt @@ -0,0 +1,3 @@ +====== நிரà¯à®µà®¾à®•à®®à¯ ====== + +கீழே டோகà¯à®µà®¿à®•à¯à®•à®¿à®¯à®¿à®©à¯ நிரà¯à®µà®¾à®•à®®à¯ தொடரà¯à®ªà®¾à®© à®®à¯à®±à¯ˆà®®à¯ˆà®•à®³à¯ˆà®ªà¯ பாரà¯à®•à¯à®•à®²à®¾à®®à¯. \ No newline at end of file diff --git a/inc/lang/ta/adminplugins.txt b/inc/lang/ta/adminplugins.txt new file mode 100644 index 000000000..54a363a8a --- /dev/null +++ b/inc/lang/ta/adminplugins.txt @@ -0,0 +1 @@ +===== மேலதிக சொரà¯à®•à®¿à®•à®³à¯ ===== \ No newline at end of file diff --git a/inc/lang/ta/backlinks.txt b/inc/lang/ta/backlinks.txt new file mode 100644 index 000000000..d8e618fc0 --- /dev/null +++ b/inc/lang/ta/backlinks.txt @@ -0,0 +1,3 @@ +====== பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•à®³à¯ ====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯ˆà®•à¯ கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯ அனைதà¯à®¤à¯à®ªà¯ பகà¯à®•à®™à¯à®•à®³à¯à®®à¯ \ No newline at end of file diff --git a/inc/lang/ta/conflict.txt b/inc/lang/ta/conflict.txt new file mode 100644 index 000000000..301c2f07a --- /dev/null +++ b/inc/lang/ta/conflict.txt @@ -0,0 +1,3 @@ +====== பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உணà¯à®Ÿà¯ ====== + +நீஙà¯à®•à®³à¯ திரà¯à®¤à¯à®¤à®¿à®¯ பகà¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à¯ பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உரà¯à®µà®¾à®•à®¿à®¯à¯à®³à¯à®³à®¤à¯. நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•à®¤à¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯à®®à¯ போதà¯, இனà¯à®©à¯à®®à¯Šà®°à¯ பயனர௠அதே பகà¯à®•à®¤à¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯ இபà¯à®ªà®Ÿà®¿ à®à®±à¯à®ªà®Ÿ வாயà¯à®ªà¯à®ªà¯à®£à¯à®Ÿà¯. \ No newline at end of file diff --git a/inc/lang/ta/diff.txt b/inc/lang/ta/diff.txt new file mode 100644 index 000000000..bbc287676 --- /dev/null +++ b/inc/lang/ta/diff.txt @@ -0,0 +1,3 @@ +====== வேறà¯à®ªà®¾à®Ÿà¯à®•à®³à¯ ====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© இரà¯à®µà¯‡à®±à¯à®ªà®Ÿà¯à®Ÿ மாறà¯à®¤à®²à¯à®•à®³à¯ˆà®•à¯ காடà¯à®Ÿà¯à®•à®¿à®©à¯à®±à®¤à¯. \ No newline at end of file diff --git a/inc/lang/ta/draft.txt b/inc/lang/ta/draft.txt new file mode 100644 index 000000000..2bb89219d --- /dev/null +++ b/inc/lang/ta/draft.txt @@ -0,0 +1 @@ +====== பூரணமாகத கோபà¯à®ªà¯ ====== \ No newline at end of file diff --git a/inc/lang/ta/edit.txt b/inc/lang/ta/edit.txt new file mode 100644 index 000000000..e2d61d781 --- /dev/null +++ b/inc/lang/ta/edit.txt @@ -0,0 +1 @@ +பகà¯à®•à®¤à¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®µà¯à®Ÿà®©à¯, "செமி" எனà¯à®± படà¯à®Ÿà®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯. விகà¯à®•à®¿à®¯à®¿à®©à¯ வாகà¯à®•à®¿à®¯ அமைபà¯à®ªà¯à®•à¯à®•à®³à¯ˆà®ªà¯ அறிநà¯à®¤à¯à®•à¯Šà®³à¯à®³ [[wiki:syntax]] ஠பாரà¯à®•à¯à®•à®µà¯à®®à¯. நீஙà¯à®•à®³à¯ விகà¯à®•à®¿à®¯à®¿à®²à¯ எழà¯à®¤à®¿à®ªà¯ பயிறà¯à®šà®¿à®ªà¯†à®± [playground:playground|விளையாடà¯à®Ÿà¯à®¤à¯à®¤à®¾à®Ÿà®²à¯ˆ]] பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯. \ No newline at end of file diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php index a5b89527a..41c4a94c3 100644 --- a/inc/lang/ta/lang.php +++ b/inc/lang/ta/lang.php @@ -4,21 +4,39 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Naveen Venugopal <naveen.venugopal.anu@gmail.com> + * @author Sri Saravana <saravanamuthaly@gmail.com> */ +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; +$lang['singlequoteopening'] = '\''; +$lang['singlequoteclosing'] = '\''; +$lang['apostrophe'] = '\''; $lang['btn_edit'] = 'இநà¯à®¤ பகà¯à®•à®¤à¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯ '; +$lang['btn_source'] = 'பகà¯à®• மூலதà¯à®¤à¯ˆà®•à¯ காடà¯à®Ÿà¯'; $lang['btn_show'] = 'பகà¯à®•à®¤à¯à®¤à¯ˆ காணà¯à®ªà®¿ '; $lang['btn_create'] = 'இநà¯à®¤ பகà¯à®•à®¤à¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯ '; $lang['btn_search'] = 'தேடà¯'; $lang['btn_save'] = 'சேமி '; +$lang['btn_preview'] = 'à®®à¯à®©à¯à®©à¯‹à®Ÿà¯à®Ÿà®®à¯'; +$lang['btn_top'] = 'மேலே செலà¯'; $lang['btn_revs'] = 'பழைய திரà¯à®¤à¯à®¤à®™à¯à®•à®³à¯'; $lang['btn_recent'] = 'சமீபதà¯à®¤à®¿à®¯ மாறà¯à®±à®™à¯à®•à®³à¯'; $lang['btn_upload'] = 'பதிவேறà¯à®±à¯'; $lang['btn_cancel'] = 'ரதà¯à®¤à¯'; $lang['btn_index'] = 'தள வரைபடமà¯'; +$lang['btn_secedit'] = 'தொகà¯'; +$lang['btn_login'] = 'பà¯à®•à¯à®ªà®¤à®¿à®•à¯ˆ'; +$lang['btn_logout'] = 'விடà¯à®ªà®¤à®¿à®•à¯ˆ'; $lang['btn_admin'] = 'நிரà¯à®µà®¾à®•à®®à¯'; $lang['btn_update'] = 'மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯ '; $lang['btn_delete'] = 'நீகà¯à®•à¯'; +$lang['btn_back'] = 'பினà¯'; +$lang['btn_backlink'] = 'பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•à®³à¯'; +$lang['btn_subscribe'] = 'சநà¯à®¤à®¾ நிரà¯à®µà®•à®¿à®ªà¯à®ªà¯'; +$lang['btn_profile'] = 'பயனர௠கணகà¯à®•à¯ மாறà¯à®±à®®à¯'; +$lang['btn_reset'] = 'மீடà¯à®Ÿà®®à¯ˆ'; $lang['btn_resendpwd'] = 'பà¯à®¤à®¿à®¯ அடையாளசà¯à®šà¯Šà®²à¯à®²à¯ˆ நியமி'; +$lang['btn_draft'] = 'திரà¯à®¤à¯à®¤ வரைவà¯'; $lang['btn_apply'] = 'உபயோகி'; $lang['user'] = 'பயனரà¯à®ªà¯†à®¯à®°à¯'; $lang['pass'] = 'அடையாளசà¯à®šà¯Šà®²à¯'; -- GitLab From 86c97e91e4aa9ed17ed75df279181e4b61353c7c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 26 Jun 2015 12:22:43 +0200 Subject: [PATCH 206/440] fixes various probelms mentioned in #1163 however I think I will convert the dialog to a real popup instead. --- lib/plugins/styling/lang/en/lang.php | 1 + lib/plugins/styling/script.js | 79 +++++++++++----------------- lib/plugins/styling/style.less | 8 +++ 3 files changed, 40 insertions(+), 48 deletions(-) create mode 100644 lib/plugins/styling/style.less diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index e50c6b912..d100d4324 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -7,6 +7,7 @@ // menu entry for admin plugins $lang['js']['menu'] = 'Template Style Settings'; +$lang['js']['popup'] = 'Open as Popup'; // custom language strings for the plugin $lang['error'] = 'Sorry, this template does not support this functionality.'; diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 7c8ffae91..6dc4c84ed 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -1,10 +1,17 @@ /* DOKUWIKI:include_once iris.js */ jQuery(function () { - // user openend the admin page, set cookie and redirect - if (jQuery('#plugin__styling').length) { - DokuCookie.setValue('styling_plugin', 1); - document.location.href = document.location.href.replace(/&?do=admin/, ''); + // add popup option to admin page + var $styling_plugin = jQuery('#plugin__styling'); + if ($styling_plugin.length) { + var $hl = $styling_plugin.find('h1').first(); + var $btn = jQuery('<button class="btn">' + LANG.plugins.styling.popup + '</button>'); + $hl.append($btn); + + $btn.click(function (e) { + DokuCookie.setValue('styling_plugin', 1); + document.location.href = document.location.href.replace(/&?do=admin/, ''); + }); } // continue only if the styling Dialog is currently enabled @@ -16,7 +23,6 @@ jQuery(function () { var $dialog = jQuery(document.createElement('div')); jQuery('body').append($dialog); - /** * updates the current CSS with a new preview one */ @@ -26,29 +32,28 @@ jQuery(function () { $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); } - /** - * save current values and reload preview (debounced) - */ - function styling_saveAndUpdate() { - if (styling_timeout) window.clearTimeout(styling_timeout); - styling_timeout = window.setTimeout(function () { - styling_timeout = null; + // prepare the dialog + $dialog.dialog({ + 'autoOpen': false, + 'title': LANG.plugins.styling.menu, + 'width': 500, + 'height': 500, + 'position': {'my': 'left bottom', 'at': 'left bottom-40', 'of': window}, + 'closeOnEscape': true, + + // bring everything back to normal on close + 'close': function (event, ui) { + // disable the styling plugin again + DokuCookie.setValue('styling_plugin', 0); + // reload + document.location.reload() + } + }); - var params = $dialog.find('input[type=text]').serializeArray(); - params[params.length] = { name: 'call', value: 'plugin_styling'}; - params[params.length] = {name: 'run', value: 'preview'}; - - jQuery.post( - DOKU_BASE + 'lib/exe/ajax.php', - params, - styling_updateCSS - ); - }, 500); - } // load the dialog content and apply listeners $dialog.load( - DOKU_BASE + 'lib/exe/ajax.php', + DOKU_BASE + 'lib/exe/ajax.php', { 'call': 'plugin_styling', 'run': 'html', @@ -59,32 +64,10 @@ jQuery(function () { styling_updateCSS(); // open the dialog - $dialog.dialog({ - 'title': LANG.plugins.styling.menu, - 'width': 500, - 'height': 500, - 'top': 50, - 'position': { 'my': 'left bottom', 'at': 'left bottom', 'of': window }, - // bring everything back to normal - 'close': function (event, ui) { - // disable the styling plugin again - DokuCookie.setValue('styling_plugin', 0); - // reload - document.location.reload() - } - }); - - // we don't need the manual preview in JS mode - $dialog.find('.btn_preview').hide(); + $dialog.dialog('open'); // add the color picker FIXME add saveAndUpdate to correct event - $dialog.find('.color').iris({ }); - - // listen to keyup events - $dialog.find('input[type=text]').keyup(function () { - styling_saveAndUpdate(); - }); - + $dialog.find('.color').iris({}); } ); diff --git a/lib/plugins/styling/style.less b/lib/plugins/styling/style.less new file mode 100644 index 000000000..8920cb183 --- /dev/null +++ b/lib/plugins/styling/style.less @@ -0,0 +1,8 @@ +#plugin__styling { + + h1 button { + font-size: 12px; + line-height: 16px; + margin-left: 1em; + } +} -- GitLab From 6667cd8743e57a4492cfbcbe1066ea48d444f7a2 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 26 Jun 2015 12:57:58 +0200 Subject: [PATCH 207/440] changed the whole thing to a real popup --- lib/plugins/styling/admin.php | 27 +++++----- lib/plugins/styling/lang/en/lang.php | 4 +- lib/plugins/styling/popup.php | 28 +++++++++++ lib/plugins/styling/script.js | 73 ++++++---------------------- 4 files changed, 56 insertions(+), 76 deletions(-) create mode 100644 lib/plugins/styling/popup.php diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index 3c2ab577c..627efbd15 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -11,6 +11,8 @@ if(!defined('DOKU_INC')) die(); class admin_plugin_styling extends DokuWiki_Admin_Plugin { + public $ispopup = false; + /** * @return int sort number in admin menu */ @@ -25,15 +27,6 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { return true; } - /** - * @param string $language - * @return string - */ - public function getMenuText($language) { - $js = $this->getLang('js'); - return $js['menu']; - } - /** * handle the different actions (also called from ajax) */ @@ -49,17 +42,19 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { * Render HTML output, e.g. helpful text and a form */ public function html() { - echo '<div id="plugin__styling">'; - ptln('<h1>'.$this->getMenuText('').'</h1>'); - $this->form(false); + $class = 'nopopup'; + if($this->ispopup) $class = 'ispopup'; + + echo '<div id="plugin__styling" class="'.$class.'">'; + ptln('<h1>'.$this->getLang('menu').'</h1>'); + $this->form(); echo '</div>'; } /** * Create the actual editing form - * @param boolean $isajax */ - public function form($isajax) { + public function form() { global $conf; global $ID; define('SIMPLE_TEST', 1); // hack, ideally certain functions should be moved out of css.php @@ -67,8 +62,8 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { $styleini = css_styleini($conf['template'], true); $replacements = $styleini['replacements']; - if($isajax) { - $target = wl($ID, array('do' => 'styling_plugin')); + if($this->ispopup) { + $target = DOKU_BASE.'lib/plugins/styling/popup.php'; } else { $target = wl($ID, array('do' => 'admin', 'page' => 'styling')); } diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index d100d4324..85ac0ec29 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -6,7 +6,9 @@ */ // menu entry for admin plugins -$lang['js']['menu'] = 'Template Style Settings'; +$lang['menu'] = 'Template Style Settings'; + + $lang['js']['popup'] = 'Open as Popup'; // custom language strings for the plugin diff --git a/lib/plugins/styling/popup.php b/lib/plugins/styling/popup.php new file mode 100644 index 000000000..eea4f3bfd --- /dev/null +++ b/lib/plugins/styling/popup.php @@ -0,0 +1,28 @@ +<?php +if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../../'); +require_once(DOKU_INC . 'inc/init.php'); +//close session +session_write_close(); +header('Content-Type: text/html; charset=utf-8'); + +/** @var admin_plugin_styling $plugin */ +$plugin = plugin_load('admin', 'styling'); +if(!auth_isadmin()) die('only admins allowed'); +$plugin->ispopup = true; + +// handle posts +$plugin->handle(); + +// output plugin in a very minimal template: +?> +<html> +<head> + <title><?php echo $plugin->getLang('menu') ?></title> + <?php tpl_metaheaders(false) ?> +</head> +<body> + <div class="dokuwiki page"> + <?php $plugin->html() ?> + </div> +</body> +</html> diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 6dc4c84ed..8b4563986 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -1,74 +1,29 @@ /* DOKUWIKI:include_once iris.js */ jQuery(function () { - // add popup option to admin page + var $styling_plugin = jQuery('#plugin__styling'); - if ($styling_plugin.length) { + if(!$styling_plugin.length) return; + + + if (!$styling_plugin.hasClass('ispopup')) { var $hl = $styling_plugin.find('h1').first(); var $btn = jQuery('<button class="btn">' + LANG.plugins.styling.popup + '</button>'); $hl.append($btn); $btn.click(function (e) { - DokuCookie.setValue('styling_plugin', 1); - document.location.href = document.location.href.replace(/&?do=admin/, ''); + var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; + window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling', windowFeatures) }); + return; } - // continue only if the styling Dialog is currently enabled - if (DokuCookie.getValue('styling_plugin') != 1) return; - - var styling_timeout = null; - - // create dialog element - var $dialog = jQuery(document.createElement('div')); - jQuery('body').append($dialog); - - /** - * updates the current CSS with a new preview one - */ - function styling_updateCSS() { - var now = new Date().getTime(); - var $style = jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); - } - - // prepare the dialog - $dialog.dialog({ - 'autoOpen': false, - 'title': LANG.plugins.styling.menu, - 'width': 500, - 'height': 500, - 'position': {'my': 'left bottom', 'at': 'left bottom-40', 'of': window}, - 'closeOnEscape': true, - - // bring everything back to normal on close - 'close': function (event, ui) { - // disable the styling plugin again - DokuCookie.setValue('styling_plugin', 0); - // reload - document.location.reload() - } - }); - - - // load the dialog content and apply listeners - $dialog.load( - DOKU_BASE + 'lib/exe/ajax.php', - { - 'call': 'plugin_styling', - 'run': 'html', - 'id': JSINFO.id - }, - function () { - // load the preview template - styling_updateCSS(); - - // open the dialog - $dialog.dialog('open'); + // add the color picker + $styling_plugin.find('.color').iris({}); - // add the color picker FIXME add saveAndUpdate to correct event - $dialog.find('.color').iris({}); - } - ); + // load preview in main window + var now = new Date().getTime(); + var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); }); -- GitLab From 3e2beab52631135f77d0ad5b6ed297458bfff2f2 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 26 Jun 2015 13:31:46 +0200 Subject: [PATCH 208/440] added a simple loading screen for the JavaScript preview --- lib/plugins/styling/lang/en/lang.php | 2 +- lib/plugins/styling/script.js | 25 ++++++++++++++++++++++++- lib/plugins/styling/style.less | 4 ++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index 85ac0ec29..a076065cb 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -8,7 +8,7 @@ // menu entry for admin plugins $lang['menu'] = 'Template Style Settings'; - +$lang['js']['loader'] = 'Preview is loading...<br>if this does not goes away, your values may be faulty'; $lang['js']['popup'] = 'Open as Popup'; // custom language strings for the plugin diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 8b4563986..f732c0524 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -3,7 +3,7 @@ jQuery(function () { var $styling_plugin = jQuery('#plugin__styling'); - if(!$styling_plugin.length) return; + if (!$styling_plugin.length) return; if (!$styling_plugin.hasClass('ispopup')) { @@ -21,9 +21,32 @@ jQuery(function () { // add the color picker $styling_plugin.find('.color').iris({}); + // append the loader screen + $loader = window.opener.jQuery('#plugin__styling_loader'); + if (!$loader.length) { + $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); + $loader.css({ + 'position': 'absolute', + 'width': '100%', + 'height': '100%', + 'top': 0, + 'left': 0, + 'z-index': 5000, + 'background-color': '#fff', + 'opacity': '0.7', + 'color': '#000', + 'font-size': '40px', + 'text-align': 'center', + 'line-height': '90px' + }); + window.opener.jQuery('body').append($loader); + } + // load preview in main window var now = new Date().getTime(); var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', ''); $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + }); diff --git a/lib/plugins/styling/style.less b/lib/plugins/styling/style.less index 8920cb183..3cb563fdb 100644 --- a/lib/plugins/styling/style.less +++ b/lib/plugins/styling/style.less @@ -6,3 +6,7 @@ margin-left: 1em; } } + +#plugin__styling_loader { + display: none; +} -- GitLab From bcea9d64ebf4b0cc2c80209b7669e3e7e954c4c8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 26 Jun 2015 13:35:15 +0200 Subject: [PATCH 209/440] removed no longer needed ajax action components --- lib/plugins/styling/action.php | 48 ---------------------------------- lib/plugins/styling/script.js | 8 ++---- 2 files changed, 2 insertions(+), 54 deletions(-) diff --git a/lib/plugins/styling/action.php b/lib/plugins/styling/action.php index 622c634d6..896e14bef 100644 --- a/lib/plugins/styling/action.php +++ b/lib/plugins/styling/action.php @@ -26,8 +26,6 @@ class action_plugin_styling extends DokuWiki_Action_Plugin { * @return void */ public function register(Doku_Event_Handler $controller) { - $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax'); - $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_action'); $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_header'); } @@ -57,52 +55,6 @@ class action_plugin_styling extends DokuWiki_Action_Plugin { } } - /** - * Updates the style.ini settings by passing it on to handle() of the admin component - * - * @param Doku_Event $event event object by reference - * @param mixed $param [the parameters passed as fifth argument to register_hook() when this - * handler was registered] - * @return void - */ - public function handle_action(Doku_Event &$event, $param) { - if($event->data != 'styling_plugin') return; - if(!auth_isadmin()) return; - $event->data = 'show'; - - /** @var admin_plugin_styling $hlp */ - $hlp = plugin_load('admin', 'styling'); - $hlp->handle(); - } - - /** - * Create the style form in the floating Dialog - * - * @param Doku_Event $event event object by reference - * @param mixed $param [the parameters passed as fifth argument to register_hook() when this - * handler was registered] - * @return void - */ - - public function handle_ajax(Doku_Event &$event, $param) { - if($event->data != 'plugin_styling') return; - if(!auth_isadmin()) return; - $event->preventDefault(); - $event->stopPropagation(); - - global $ID; - global $INPUT; - $ID = getID(); - - /** @var admin_plugin_styling $hlp */ - $hlp = plugin_load('admin', 'styling'); - if($INPUT->str('run') == 'preview') { - $hlp->run_preview(); - } else { - $hlp->form(true); - } - } - } // vim:ts=4:sw=4:et: diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index f732c0524..409148471 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -5,6 +5,8 @@ jQuery(function () { var $styling_plugin = jQuery('#plugin__styling'); if (!$styling_plugin.length) return; + // add the color picker + $styling_plugin.find('.color').iris({}); if (!$styling_plugin.hasClass('ispopup')) { var $hl = $styling_plugin.find('h1').first(); @@ -18,9 +20,6 @@ jQuery(function () { return; } - // add the color picker - $styling_plugin.find('.color').iris({}); - // append the loader screen $loader = window.opener.jQuery('#plugin__styling_loader'); if (!$loader.length) { @@ -45,8 +44,5 @@ jQuery(function () { // load preview in main window var now = new Date().getTime(); var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', ''); $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); - - }); -- GitLab From c2f2dedb56cd3872aa50d58de0cb3083b36b7872 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 26 Jun 2015 14:04:20 +0200 Subject: [PATCH 210/440] reset page back to normal on closing dialog --- lib/plugins/styling/script.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 409148471..6fc2b9043 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -2,12 +2,15 @@ jQuery(function () { + var doreload = 1; + var $styling_plugin = jQuery('#plugin__styling'); if (!$styling_plugin.length) return; // add the color picker $styling_plugin.find('.color').iris({}); + // add button on main page if (!$styling_plugin.hasClass('ispopup')) { var $hl = $styling_plugin.find('h1').first(); var $btn = jQuery('<button class="btn">' + LANG.plugins.styling.popup + '</button>'); @@ -20,6 +23,23 @@ jQuery(function () { return; } + // reload the main page on close + window.onunload = function(e) { + if(doreload) { + window.opener.document.location.reload(); + } + return null; + }; + + // don't reload on our own buttons + jQuery('input[type=submit]').click(function(e){ + doreload = false; + }); + + // remove style + var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', ''); + // append the loader screen $loader = window.opener.jQuery('#plugin__styling_loader'); if (!$loader.length) { @@ -41,8 +61,11 @@ jQuery(function () { window.opener.jQuery('body').append($loader); } - // load preview in main window - var now = new Date().getTime(); - var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + // load preview in main window (timeout works around chrome updating CSS weirdness) + window.setTimeout(function() { + var now = new Date().getTime(); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + }, 500); + + }); -- GitLab From f4b12de73d07db2a5a0549309329486d7a9e0fdf Mon Sep 17 00:00:00 2001 From: Takumo <9206984@mail.ru> Date: Mon, 29 Jun 2015 12:46:05 +0200 Subject: [PATCH 211/440] translation update --- inc/lang/ru/lang.php | 1 + lib/plugins/authad/lang/ru/lang.php | 3 +++ lib/plugins/authldap/lang/ru/lang.php | 9 +++++++++ lib/plugins/authmysql/lang/ru/lang.php | 11 +++++++++++ lib/plugins/extension/lang/ru/lang.php | 5 +++++ 5 files changed, 29 insertions(+) create mode 100644 lib/plugins/authldap/lang/ru/lang.php create mode 100644 lib/plugins/authmysql/lang/ru/lang.php diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 3a1fb2c56..7aa7c5b09 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -31,6 +31,7 @@ * @author Vitaly Filatenko <kot@hacktest.net> * @author Alex P <alexander@lanos.co.uk> * @author Nolf <m.kopachovets@gmail.com> + * @author Takumo <9206984@mail.ru> */ $lang['encoding'] = ' utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php index 6a3f6e995..fe56be2bf 100644 --- a/lib/plugins/authad/lang/ru/lang.php +++ b/lib/plugins/authad/lang/ru/lang.php @@ -4,6 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + * @author Takumo <9206984@mail.ru> */ $lang['domain'] = 'Домен'; $lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; +$lang['passchangefail'] = 'Ðе удалоÑÑŒ изменить пароль. Возможно, он не ÑоответÑтвует требованиÑм к паролю.'; +$lang['connectfail'] = 'Ðевозможно ÑоединитьÑÑ Ñ Ñервером AD.'; diff --git a/lib/plugins/authldap/lang/ru/lang.php b/lib/plugins/authldap/lang/ru/lang.php new file mode 100644 index 000000000..c05ed3b15 --- /dev/null +++ b/lib/plugins/authldap/lang/ru/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Takumo <9206984@mail.ru> + */ +$lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ LDAP Ñ %s'; +$lang['domainfail'] = 'Ðе найдено Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ LDAP (dn)'; diff --git a/lib/plugins/authmysql/lang/ru/lang.php b/lib/plugins/authmysql/lang/ru/lang.php new file mode 100644 index 000000000..75b5613f5 --- /dev/null +++ b/lib/plugins/authmysql/lang/ru/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Takumo <9206984@mail.ru> + */ +$lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.'; +$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; +$lang['usernotexists'] = 'Извините, такой пользователь не ÑущеÑтвует.'; +$lang['writefail'] = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору Вики.'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 4b2542420..c7ef52b42 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -8,6 +8,7 @@ * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> * @author Alex P <alexander@lanos.co.uk> + * @author Takumo <9206984@mail.ru> */ $lang['menu'] = 'Управление дополнениÑми'; $lang['tab_plugins'] = 'УÑтановленные плагины'; @@ -29,6 +30,10 @@ $lang['btn_disable'] = 'Отключить'; $lang['btn_install'] = 'УÑтановить'; $lang['btn_reinstall'] = 'ПереуÑтановить'; $lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; +$lang['js']['display_viewoptions'] = 'Показать как:'; +$lang['js']['display_enabled'] = 'включено'; +$lang['js']['display_disabled'] = 'отключено'; +$lang['js']['display_updatable'] = 'обновление'; $lang['search_for'] = 'ПоиÑк дополнениÑ:'; $lang['search'] = 'Ðайти'; $lang['extensionby'] = '<strong>%s</strong> — %s'; -- GitLab From 0f7eafd90ce5e944b2de67b3dccd8933fd60851c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 30 Jun 2015 20:42:56 +0200 Subject: [PATCH 212/440] geshi update via composer --- composer.lock | 12 ++++++------ vendor/composer/ClassLoader.php | 8 ++++---- vendor/composer/installed.json | 12 ++++++------ vendor/easybook/geshi/geshi/cpp-qt.php | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index 8b6424244..5cfa22a72 100644 --- a/composer.lock +++ b/composer.lock @@ -1,23 +1,23 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], "hash": "23ee0dd06136e2301c930e75055300d5", "packages": [ { "name": "easybook/geshi", - "version": "v1.0.8.14", + "version": "v1.0.8.15", "source": { "type": "git", "url": "https://github.com/easybook/geshi.git", - "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8" + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8", - "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8", + "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f", "shasum": "" }, "require": { @@ -50,7 +50,7 @@ "highlighter", "syntax" ], - "time": "2015-04-15 13:21:45" + "time": "2015-06-18 14:56:28" }, { "name": "splitbrain/php-archive", diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 5e1469e83..4e05d3b15 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -351,7 +351,7 @@ class ClassLoader foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { if (0 === strpos($class, $prefix)) { foreach ($this->prefixDirsPsr4[$prefix] as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (is_file($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { return $file; } } @@ -361,7 +361,7 @@ class ClassLoader // PSR-4 fallback dirs foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { return $file; } } @@ -380,7 +380,7 @@ class ClassLoader foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { if (0 === strpos($class, $prefix)) { foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } @@ -390,7 +390,7 @@ class ClassLoader // PSR-0 fallback dirs foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index a9eb3f9ee..347a31713 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -50,23 +50,23 @@ }, { "name": "easybook/geshi", - "version": "v1.0.8.14", - "version_normalized": "1.0.8.14", + "version": "v1.0.8.15", + "version_normalized": "1.0.8.15", "source": { "type": "git", "url": "https://github.com/easybook/geshi.git", - "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8" + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8", - "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8", + "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f", "shasum": "" }, "require": { "php": ">4.3.0" }, - "time": "2015-04-15 13:21:45", + "time": "2015-06-18 14:56:28", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/easybook/geshi/geshi/cpp-qt.php b/vendor/easybook/geshi/geshi/cpp-qt.php index 5a23f5854..44f2d215f 100755 --- a/vendor/easybook/geshi/geshi/cpp-qt.php +++ b/vendor/easybook/geshi/geshi/cpp-qt.php @@ -540,7 +540,7 @@ $language_data = array ( 2 => '', 3 => '', 4 => '', - 5 => 'http://doc.trolltech.com/latest/{FNAMEL}.html' + 5 => 'http://doc.qt.io/qt-5/{FNAMEL}.html' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( -- GitLab From 2b6c681901bfed9efc7d09dca27aee308d48341d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 30 Jun 2015 21:17:23 +0200 Subject: [PATCH 213/440] updated archive library via composer --- composer.lock | 10 +- vendor/composer/installed.json | 98 +++++----- vendor/splitbrain/php-archive/README.md | 23 ++- vendor/splitbrain/php-archive/src/Zip.php | 217 ++++++++++++++++------ 4 files changed, 224 insertions(+), 124 deletions(-) diff --git a/composer.lock b/composer.lock index 5cfa22a72..32ea37109 100644 --- a/composer.lock +++ b/composer.lock @@ -54,16 +54,16 @@ }, { "name": "splitbrain/php-archive", - "version": "1.0.0", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/splitbrain/php-archive.git", - "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549" + "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", - "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/89b4cba038e8cf01af3a8180572f19b8e4afaa31", + "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31", "shasum": "" }, "require": { @@ -97,7 +97,7 @@ "unzip", "zip" ], - "time": "2015-02-25 20:15:02" + "time": "2015-06-30 19:12:21" } ], "packages-dev": [], diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 347a31713..28e3fb6e2 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,53 +1,4 @@ [ - { - "name": "splitbrain/php-archive", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/splitbrain/php-archive.git", - "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", - "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.5.*" - }, - "time": "2015-02-25 20:15:02", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "splitbrain\\PHPArchive\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Gohr", - "email": "andi@splitbrain.org" - } - ], - "description": "Pure-PHP implementation to read and write TAR and ZIP archives", - "keywords": [ - "archive", - "extract", - "tar", - "unpack", - "unzip", - "zip" - ] - }, { "name": "easybook/geshi", "version": "v1.0.8.15", @@ -95,5 +46,54 @@ "highlighter", "syntax" ] + }, + { + "name": "splitbrain/php-archive", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/splitbrain/php-archive.git", + "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/89b4cba038e8cf01af3a8180572f19b8e4afaa31", + "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "time": "2015-06-30 19:12:21", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": [ + "archive", + "extract", + "tar", + "unpack", + "unzip", + "zip" + ] } ] diff --git a/vendor/splitbrain/php-archive/README.md b/vendor/splitbrain/php-archive/README.md index 4fb673259..6c5780a7a 100644 --- a/vendor/splitbrain/php-archive/README.md +++ b/vendor/splitbrain/php-archive/README.md @@ -18,24 +18,29 @@ Use composer: Usage ----- -The usage for the Zip and Tar classes are basically the same. Here are some examples for working with TARs to get -you started. Check the source code comments for more info +The usage for the Zip and Tar classes are basically the same. Here are some +examples for working with TARs to get you started. Check the source code +comments for more info ```php +require_once 'vendor/autoload.php'; use splitbrain\PHPArchive\Tar; -// To list the contents of an existing TAR archive, open() it and use contents() on it: +// To list the contents of an existing TAR archive, open() it and use +// contents() on it: $tar = new Tar(); $tar->open('myfile.tgz'); $toc = $tar->contents(); print_r($toc); // array of FileInfo objects -// To extract the contents of an existing TAR archive, open() it and use extract() on it: +// To extract the contents of an existing TAR archive, open() it and use +// extract() on it: $tar = new Tar(); $tar->open('myfile.tgz'); $tar->extract('/tmp'); -// To create a new TAR archive directly on the filesystem (low memory requirements), create() it, +// To create a new TAR archive directly on the filesystem (low memory +// requirements), create() it: $tar = new Tar(); $tar->create('myfile.tgz'); $tar->addFile(...); @@ -43,8 +48,8 @@ $tar->addData(...); ... $tar->close(); -// To create a TAR archive directly in memory, create() it, add*() files and then either save() -// or getData() it: +// To create a TAR archive directly in memory, create() it, add*() +// files and then either save() or getArchive() it: $tar = new Tar(); $tar->create(); $tar->addFile(...); @@ -54,8 +59,8 @@ $tar->save('myfile.tgz'); // compresses and saves it echo $tar->getArchive(Archive::COMPRESS_GZIP); // compresses and returns it ``` -Differences between Tar and Zip: Tars are compressed as a whole while Zips compress each file individually. Therefore -you can call ```setCompression``` before each ```addFile()``` and ```addData()``` functions. +Differences between Tar and Zip: Tars are compressed as a whole, while Zips compress each file individually. Therefore +you can call ```setCompression``` before each ```addFile()``` and ```addData()``` function call. The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to an archive. \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php index c2ff36575..324eb4f59 100644 --- a/vendor/splitbrain/php-archive/src/Zip.php +++ b/vendor/splitbrain/php-archive/src/Zip.php @@ -7,6 +7,8 @@ namespace splitbrain\PHPArchive; * * Creates or extracts Zip archives * + * for specs see http://www.pkware.com/appnote + * * @author Andreas Gohr <andi@splitbrain.org> * @package splitbrain\PHPArchive * @license MIT @@ -308,45 +310,45 @@ class Zip extends Archive throw new ArchiveIOException('Archive has been closed, files can no longer be added'); } - // prepare the various header infos - $dtime = dechex($this->makeDosTime($fileinfo->getMtime())); - $hexdtime = pack( - 'H*', - $dtime[6].$dtime[7]. - $dtime[4].$dtime[5]. - $dtime[2].$dtime[3]. - $dtime[0].$dtime[1] - ); + // prepare info and compress data $size = strlen($data); $crc = crc32($data); if ($this->complevel) { - $fmagic = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00"; - $cmagic = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; - $data = gzcompress($data, $this->complevel); - $data = substr($data, 2, -4); // strip compression headers - } else { - $fmagic = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00"; - $cmagic = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; + $data = gzcompress($data, $this->complevel); + $data = substr($data, 2, -4); // strip compression headers } $csize = strlen($data); $offset = $this->dataOffset(); $name = $fileinfo->getPath(); + $time = $fileinfo->getMtime(); + + // write local file header + $this->writebytes($this->makeLocalFileHeader( + $time, + $crc, + $size, + $csize, + $name, + (bool) $this->complevel + )); + + // we store no encryption header // write data - $this->writebytes($fmagic); - $this->writebytes($hexdtime); - $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //pre header - $this->writebytes(pack('v', strlen($name)).pack('v', 0).$name.$data); //file data - $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //post header + $this->writebytes($data); + + // we store no data descriptor // add info to central file directory - $cdrec = $cmagic; - $cdrec .= $hexdtime.pack('V', $crc).pack('V', $csize).pack('V', $size); - $cdrec .= pack('v', strlen($name)).pack('v', 0).pack('v', 0); - $cdrec .= pack('v', 0).pack('v', 0).pack('V', 32); - $cdrec .= pack('V', $offset); - $cdrec .= $name; - $this->ctrl_dir[] = $cdrec; + $this->ctrl_dir[] = $this->makeCentralFileRecord( + $offset, + $time, + $crc, + $size, + $csize, + $name, + (bool) $this->complevel + ); } /** @@ -361,14 +363,24 @@ class Zip extends Archive return; } // we did this already - // write footer if ($this->writeaccess) { - $offset = $this->dataOffset(); + // write central directory + $offset = $this->dataOffset(); $ctrldir = join('', $this->ctrl_dir); $this->writebytes($ctrldir); - $this->writebytes("\x50\x4b\x05\x06\x00\x00\x00\x00"); // EOF CTRL DIR - $this->writebytes(pack('v', count($this->ctrl_dir)).pack('v', count($this->ctrl_dir))); - $this->writebytes(pack('V', strlen($ctrldir)).pack('V', strlen($offset))."\x00\x00"); + + // write end of central directory record + $this->writebytes("\x50\x4b\x05\x06"); // end of central dir signature + $this->writebytes(pack('v', 0)); // number of this disk + $this->writebytes(pack('v', 0)); // number of the disk with the start of the central directory + $this->writebytes(pack('v', + count($this->ctrl_dir))); // total number of entries in the central directory on this disk + $this->writebytes(pack('v', count($this->ctrl_dir))); // total number of entries in the central directory + $this->writebytes(pack('V', strlen($ctrldir))); // size of the central directory + $this->writebytes(pack('V', + $offset)); // offset of start of central directory with respect to the starting disk number + $this->writebytes(pack('v', 0)); // .ZIP file comment length + $this->ctrl_dir = array(); } @@ -492,18 +504,7 @@ class Zip extends Archive $header['comment'] = ''; } - if ($header['mdate'] && $header['mtime']) { - $hour = ($header['mtime'] & 0xF800) >> 11; - $minute = ($header['mtime'] & 0x07E0) >> 5; - $seconde = ($header['mtime'] & 0x001F) * 2; - $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; - $month = ($header['mdate'] & 0x01E0) >> 5; - $day = $header['mdate'] & 0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - } else { - $header['mtime'] = time(); - } - + $header['mtime'] = $this->makeUnixTime($header['mdate'], $header['mtime']); $header['stored_filename'] = $header['filename']; $header['status'] = 'ok'; if (substr($header['filename'], -1) == '/') { @@ -518,12 +519,12 @@ class Zip extends Archive * Reads the local file header * * This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at - * the right position already. Enhances this given central header with the data found at the local header. + * the right position already. Enhances the given central header with the data found at the local header. * * @param array $header the central file header read previously (see above) * @return array */ - function readFileHeader($header) + protected function readFileHeader($header) { $binary_data = fread($this->fh, 30); $data = unpack( @@ -549,20 +550,7 @@ class Zip extends Archive } } $header['flag'] = $data['flag']; - $header['mdate'] = $data['mdate']; - $header['mtime'] = $data['mtime']; - - if ($header['mdate'] && $header['mtime']) { - $hour = ($header['mtime'] & 0xF800) >> 11; - $minute = ($header['mtime'] & 0x07E0) >> 5; - $seconde = ($header['mtime'] & 0x001F) * 2; - $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; - $month = ($header['mdate'] & 0x01E0) >> 5; - $day = $header['mdate'] & 0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - } else { - $header['mtime'] = time(); - } + $header['mtime'] = $this->makeUnixTime($data['mdate'], $data['mtime']); $header['stored_filename'] = $header['filename']; $header['status'] = "ok"; @@ -651,4 +639,111 @@ class Zip extends Archive ($timearray['seconds'] >> 1); } + /** + * Create a UNIX timestamp from a DOS timestamp + * + * @param $mdate + * @param $mtime + * @return int + */ + protected function makeUnixTime($mdate = null, $mtime = null) + { + if ($mdate && $mtime) { + $year = (($mdate & 0xFE00) >> 9) + 1980; + $month = ($mdate & 0x01E0) >> 5; + $day = $mdate & 0x001F; + + $hour = ($mtime & 0xF800) >> 11; + $minute = ($mtime & 0x07E0) >> 5; + $seconde = ($mtime & 0x001F) << 1; + + $mtime = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $mtime = time(); + } + + return $mtime; + } + + /** + * Returns a local file header for the given data + * + * @param int $offset location of the local header + * @param int $ts unix timestamp + * @param int $crc CRC32 checksum of the uncompressed data + * @param int $len length of the uncompressed data + * @param int $clen length of the compressed data + * @param string $name file name + * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen + * @return string + */ + protected function makeCentralFileRecord($offset, $ts, $crc, $len, $clen, $name, $comp = null) + { + if(is_null($comp)) $comp = $len != $clen; + $comp = $comp ? 8 : 0; + $dtime = dechex($this->makeDosTime($ts)); + + $header = "\x50\x4b\x01\x02"; // central file header signature + $header .= pack('v', 14); // version made by - VFAT + $header .= pack('v', 20); // version needed to extract - 2.0 + $header .= pack('v', 0); // general purpose flag - no flags set + $header .= pack('v', $comp); // compression method - deflate|none + $header .= pack( + 'H*', + $dtime[6] . $dtime[7] . + $dtime[4] . $dtime[5] . + $dtime[2] . $dtime[3] . + $dtime[0] . $dtime[1] + ); // last mod file time and date + $header .= pack('V', $crc); // crc-32 + $header .= pack('V', $clen); // compressed size + $header .= pack('V', $len); // uncompressed size + $header .= pack('v', strlen($name)); // file name length + $header .= pack('v', 0); // extra field length + $header .= pack('v', 0); // file comment length + $header .= pack('v', 0); // disk number start + $header .= pack('v', 0); // internal file attributes + $header .= pack('V', 0); // external file attributes @todo was 0x32!? + $header .= pack('V', $offset); // relative offset of local header + $header .= $name; // file name + + return $header; + } + + /** + * Returns a local file header for the given data + * + * @param int $ts unix timestamp + * @param int $crc CRC32 checksum of the uncompressed data + * @param int $len length of the uncompressed data + * @param int $clen length of the compressed data + * @param string $name file name + * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen + * @return string + */ + protected function makeLocalFileHeader($ts, $crc, $len, $clen, $name, $comp = null) + { + if(is_null($comp)) $comp = $len != $clen; + $comp = $comp ? 8 : 0; + $dtime = dechex($this->makeDosTime($ts)); + + $header = "\x50\x4b\x03\x04"; // local file header signature + $header .= pack('v', 20); // version needed to extract - 2.0 + $header .= pack('v', 0); // general purpose flag - no flags set + $header .= pack('v', $comp); // compression method - deflate|none + $header .= pack( + 'H*', + $dtime[6] . $dtime[7] . + $dtime[4] . $dtime[5] . + $dtime[2] . $dtime[3] . + $dtime[0] . $dtime[1] + ); // last mod file time and date + $header .= pack('V', $crc); // crc-32 + $header .= pack('V', $clen); // compressed size + $header .= pack('V', $len); // uncompressed size + $header .= pack('v', strlen($name)); // file name length + $header .= pack('v', 0); // extra field length + $header .= $name; + return $header; + } } -- GitLab From 67b479b256ae7436b507860d32ee7e0b29b1657a Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 22:41:51 +0200 Subject: [PATCH 214/440] PHPDocs for remote and action --- lib/plugins/acl/remote.php | 2 +- lib/plugins/action.php | 2 ++ lib/plugins/remote.php | 13 ++++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php index 42449428f..031686f95 100644 --- a/lib/plugins/acl/remote.php +++ b/lib/plugins/acl/remote.php @@ -8,7 +8,7 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin { /** * Returns details about the remote plugin methods * - * @return array + * @return array Information about all provided methods. {@see RemoteAPI} */ public function _getMethods() { return array( diff --git a/lib/plugins/action.php b/lib/plugins/action.php index 4b5eef60a..23d94a509 100644 --- a/lib/plugins/action.php +++ b/lib/plugins/action.php @@ -16,6 +16,8 @@ class DokuWiki_Action_Plugin extends DokuWiki_Plugin { /** * Registers a callback function for a given event + * + * @param Doku_Event_Handler $controller */ public function register(Doku_Event_Handler $controller) { trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING); diff --git a/lib/plugins/remote.php b/lib/plugins/remote.php index a51f701fb..47f954ee6 100644 --- a/lib/plugins/remote.php +++ b/lib/plugins/remote.php @@ -1,19 +1,30 @@ <?php +/** + * Class DokuWiki_Remote_Plugin + */ abstract class DokuWiki_Remote_Plugin extends DokuWiki_Plugin { private $api; + /** + * Constructor + */ public function __construct() { $this->api = new RemoteAPI(); } /** + * Get all available methods with remote access. + * * @abstract - * @return array Information to all provided methods. {@see RemoteAPI}. + * @return array Information about all provided methods. {@see RemoteAPI}. */ public abstract function _getMethods(); + /** + * @return RemoteAPI + */ protected function getApi() { return $this->api; } -- GitLab From 848e5d3474b85be02ae6b28429211e4386e3b956 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:00:03 +0200 Subject: [PATCH 215/440] spaces were not stored due to automatically tools --- data/pages/wiki/syntax.txt | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 7b453efa2..d56e5a24c 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -261,17 +261,19 @@ There are three exceptions which do not come from that pattern file: multiplicat Some times you want to mark some text to show it's a reply or comment. You can use the following syntax: - I think we should do it - - > No we shouldn't - - >> Well, I say we should - - > Really? - - >> Yes! - - >>> Then lets do it! +<code> +I think we should do it + +> No we shouldn't + +>> Well, I say we should + +> Really? + +>> Yes! + +>>> Then lets do it! +</code> I think we should do it -- GitLab From aff13b5a791d8a0b0812d4c013e85b42df37863a Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:00:39 +0200 Subject: [PATCH 216/440] emphasis syntax has similar syntax, prevent conflicts --- data/pages/wiki/syntax.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index d56e5a24c..8e10b1906 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -319,7 +319,7 @@ As you can see, it's the cell separator before a cell which decides about the fo ^ Heading 4 | no colspan this time | | ^ Heading 5 | Row 2 Col 2 | Row 2 Col 3 | -You can have rowspans (vertically connected cells) by adding '':::'' into the cells below the one to which they should connect. +You can have rowspans (vertically connected cells) by adding ''%%:::%%'' into the cells below the one to which they should connect. ^ Heading 1 ^ Heading 2 ^ Heading 3 ^ | Row 1 Col 1 | this cell spans vertically | Row 1 Col 3 | -- GitLab From 7de86af9758e71d251fad91063035a459d83d2eb Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:07:10 +0200 Subject: [PATCH 217/440] phpdocs, reformatting --- inc/changelog.php | 13 +++++++++---- inc/pageutils.php | 26 +++++++++++++++----------- inc/parserutils.php | 19 +++++++++++++------ 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/inc/changelog.php b/inc/changelog.php index d1ef7973e..f4731021c 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -849,18 +849,17 @@ abstract class ChangeLog { public function isCurrentRevision($rev) { return $rev == @filemtime($this->getFilename()); } - + /** - * Return an existing revision for a specific date which is + * Return an existing revision for a specific date which is * the current one or younger or equal then the date * - * @param string $id * @param number $date_at timestamp * @return string revision ('' for current) */ function getLastRevisionAt($date_at){ //requested date_at(timestamp) younger or equal then modified_time($this->id) => load current - if($date_at >= @filemtime($this->getFilename())) { + if($date_at >= @filemtime($this->getFilename())) { return ''; } else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision return $rev; @@ -1049,6 +1048,12 @@ class MediaChangelog extends ChangeLog { * * @author Ben Coburn <btcoburn@silicodon.net> * @author Kate Arzamastseva <pshns@ukr.net> + * + * @param string $id + * @param int $rev + * @param int $chunk_size + * @param bool $media + * @return array|bool */ function getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false) { dbg_deprecated('class PageChangeLog or class MediaChangelog'); diff --git a/inc/pageutils.php b/inc/pageutils.php index 375712661..a5bf039d5 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -243,7 +243,6 @@ function sectionID($title,&$check) { return $title; } - /** * Wiki page existence check * @@ -251,9 +250,10 @@ function sectionID($title,&$check) { * * @author Chris Smith <chris@jalakai.co.uk> * - * @param string $id page id - * @param string|int $rev empty or revision timestamp - * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well) + * @param string $id page id + * @param string|int $rev empty or revision timestamp + * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well) + * @param bool $date_at * @return bool exists? */ function page_exists($id,$rev='',$clean=true, $date_at=false) { @@ -489,9 +489,11 @@ function resolve_id($ns,$id,$clean=true){ * * @author Andreas Gohr <andi@splitbrain.org> * - * @param string $ns namespace which is context of id - * @param string &$page (reference) relative media id, updated to resolved id - * @param bool &$exists (reference) updated with existance of media + * @param string $ns namespace which is context of id + * @param string &$page (reference) relative media id, updated to resolved id + * @param bool &$exists (reference) updated with existance of media + * @param int|string $rev + * @param bool $date_at */ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ $page = resolve_id($ns,$page); @@ -502,7 +504,7 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ $rev = $medialog_rev; } } - + $file = mediaFN($page,$rev); $exists = file_exists($file); } @@ -512,9 +514,11 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ * * @author Andreas Gohr <andi@splitbrain.org> * - * @param string $ns namespace which is context of id - * @param string &$page (reference) relative page id, updated to resolved id - * @param bool &$exists (reference) updated with existance of media + * @param string $ns namespace which is context of id + * @param string &$page (reference) relative page id, updated to resolved id + * @param bool &$exists (reference) updated with existance of media + * @param string $rev + * @param bool $date_at */ function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){ global $conf; diff --git a/inc/parserutils.php b/inc/parserutils.php index 8650f974f..5b96d39fe 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -121,15 +121,21 @@ function p_cached_output($file, $format='xhtml', $id='') { $cache = new cache_renderer($id, $file, $format); if ($cache->useCache()) { $parsed = $cache->retrieveCache(false); - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n"; + } } else { $parsed = p_render($format, p_cached_instructions($file,false,$id), $info); if ($info['cache'] && $cache->storeCache($parsed)) { // storeCache() attempts to save cachefile - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n"; + } }else{ $cache->removeCache(); //try to delete cachefile - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n"; + } } } @@ -616,8 +622,9 @@ function p_sort_modes($a, $b){ * @author Andreas Gohr <andi@splitbrain.org> * * @param string $mode - * @param array|null|false $instructions - * @param array $info returns render info like enabled toc and cache + * @param array|null|false $instructions + * @param array $info returns render info like enabled toc and cache + * @param string $date_at * @return null|string rendered output */ function p_render($mode,$instructions,&$info,$date_at=''){ @@ -632,7 +639,7 @@ function p_render($mode,$instructions,&$info,$date_at=''){ if($date_at) { $Renderer->date_at = $date_at; } - + $Renderer->smileys = getSmileys(); $Renderer->entities = getEntities(); $Renderer->acronyms = getAcronyms(); -- GitLab From 19cd38771326eea15b458a160845dfa200c5f9e6 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:17:27 +0200 Subject: [PATCH 218/440] Add description of ?linkonly below the embedded media list at syntax page --- data/pages/wiki/syntax.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 8e10b1906..613c04ace 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -170,6 +170,12 @@ DokuWiki can embed the following media formats directly. If you specify a filename that is not a supported media format, then it will be displayed as a link instead. +By adding ''?linkonly'' you provide a link to the media without displaying it inline + + {{wiki:dokuwiki-128.png?linkonly}} + +{{wiki:dokuwiki-128.png?linkonly}} This is just a link to the image. + ==== Fallback Formats ==== Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility. -- GitLab From 4d1366e45cecd27c337b0a8d606cfcde58f9ac8c Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:55:08 +0200 Subject: [PATCH 219/440] Use a DateTime object in the IXR_Date --- _test/tests/inc/ixr_library_date.test.php | 6 +++ inc/IXR_Library.php | 56 +++++++++++------------ 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/_test/tests/inc/ixr_library_date.test.php b/_test/tests/inc/ixr_library_date.test.php index f38486925..fd5711212 100644 --- a/_test/tests/inc/ixr_library_date.test.php +++ b/_test/tests/inc/ixr_library_date.test.php @@ -16,12 +16,18 @@ class ixr_library_date_test extends DokuWikiTest { array('2010-08-17T09:23:14Z', 1282036994), array('20100817T09:23:14Z', 1282036994), + // with timezone + array('2010-08-17 09:23:14+0000', 1282036994), + array('2010-08-17 09:23:14+00:00', 1282036994), + array('2010-08-17 09:23:14+03:00', 1282036994), + // no seconds array('2010-08-17T09:23', 1282036980), array('20100817T09:23', 1282036980), // no time array('2010-08-17', 1282003200), + array(1282036980, 1282036980), //array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp ); diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 301a8d9e1..4bd57aa26 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -818,18 +818,14 @@ EOD; * @since 1.5 */ class IXR_Date { - var $year; - var $month; - var $day; - var $hour; - var $minute; - var $second; - var $timezone; + + /** @var DateTime */ + protected $date; /** * @param int|string $time */ - function __construct($time) { + public function __construct($time) { // $time can be a PHP timestamp or an ISO one if(is_numeric($time)) { $this->parseTimestamp($time); @@ -839,51 +835,48 @@ class IXR_Date { } /** + * Parse unix timestamp + * * @param int $timestamp */ - function parseTimestamp($timestamp) { - $this->year = gmdate('Y', $timestamp); - $this->month = gmdate('m', $timestamp); - $this->day = gmdate('d', $timestamp); - $this->hour = gmdate('H', $timestamp); - $this->minute = gmdate('i', $timestamp); - $this->second = gmdate('s', $timestamp); - $this->timezone = ''; + protected function parseTimestamp($timestamp) { + $this->date = new DateTime('@' . $timestamp); } /** + * Parses less or more complete iso dates and much more, if no timezone given assumes UTC + * * @param string $iso */ - function parseIso($iso) { - if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/', $iso, $match)) { - $this->year = (int) $match[1]; - $this->month = (int) $match[2]; - $this->day = (int) $match[3]; - $this->hour = (int) $match[5]; - $this->minute = (int) $match[6]; - $this->second = (int) $match[8]; - } + protected function parseIso($iso) { + $this->date = new DateTime($iso, new DateTimeZone("UTC")); } /** + * Returns date in ISO 8601 format + * * @return string */ - function getIso() { - return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second . $this->timezone; + public function getIso() { + return $this->date->format(DateTime::ISO8601); } /** + * Returns date in valid xml + * * @return string */ - function getXml() { + public function getXml() { return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>'; } /** + * Returns Unix timestamp + * * @return int */ function getTimestamp() { - return gmmktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year); + return $this->date->getTimestamp(); } } @@ -923,6 +916,9 @@ class IXR_IntrospectionServer extends IXR_Server { /** @var string[] */ var $help; + /** + * Constructor + */ function __construct() { $this->setCallbacks(); $this->setCapabilities(); @@ -1107,7 +1103,7 @@ class IXR_ClientMulticall extends IXR_Client { * @param int $port */ function __construct($server, $path = false, $port = 80) { - parent::IXR_Client($server, $path, $port); + parent::__construct($server, $path, $port); //$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)'; } -- GitLab From 47ab76cc8e7efb398f80a778639267a3e33c3f7d Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Tue, 30 Jun 2015 23:55:22 +0200 Subject: [PATCH 220/440] undefined var --- inc/IXR_Library.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 4bd57aa26..5ae1402b9 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -297,6 +297,7 @@ class IXR_Message { * @param $tag */ function tag_close($parser, $tag) { + $value = null; $valueFlag = false; switch($tag) { case 'int': -- GitLab From ec3b241dc4541d05f30c9ee696bc5117fbe88007 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Wed, 1 Jul 2015 00:04:34 +0200 Subject: [PATCH 221/440] improve IXR_Date unittests --- _test/tests/inc/ixr_library_date.test.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_test/tests/inc/ixr_library_date.test.php b/_test/tests/inc/ixr_library_date.test.php index fd5711212..0c81e6741 100644 --- a/_test/tests/inc/ixr_library_date.test.php +++ b/_test/tests/inc/ixr_library_date.test.php @@ -2,6 +2,9 @@ require_once DOKU_INC.'inc/IXR_Library.php'; +/** + * Class ixr_library_date_test + */ class ixr_library_date_test extends DokuWikiTest { @@ -19,7 +22,7 @@ class ixr_library_date_test extends DokuWikiTest { // with timezone array('2010-08-17 09:23:14+0000', 1282036994), array('2010-08-17 09:23:14+00:00', 1282036994), - array('2010-08-17 09:23:14+03:00', 1282036994), + array('2010-08-17 12:23:14+03:00', 1282036994), // no seconds array('2010-08-17T09:23', 1282036980), @@ -28,12 +31,12 @@ class ixr_library_date_test extends DokuWikiTest { // no time array('2010-08-17', 1282003200), array(1282036980, 1282036980), - //array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp +// array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp ); foreach($tests as $test){ $dt = new IXR_Date($test[0]); - $this->assertEquals($dt->getTimeStamp(),$test[1]); + $this->assertEquals($test[1], $dt->getTimeStamp()); } } -- GitLab From f30ba39860122e7c5061989c09786dd2febe29eb Mon Sep 17 00:00:00 2001 From: rnck <dokuwiki@rnck.de> Date: Thu, 2 Jul 2015 15:55:57 +0200 Subject: [PATCH 222/440] translation update --- inc/lang/de-informal/lang.php | 20 ++++++++++++++++---- lib/plugins/authad/lang/de-informal/lang.php | 3 +++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 6545621d7..42fb9a265 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -22,6 +22,7 @@ * @author Frank Loizzi <contact@software.bacal.de> * @author Volker Bödker <volker@boedker.de> * @author Janosch <janosch@moinzen.de> + * @author rnck <dokuwiki@rnck.de> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -65,6 +66,8 @@ $lang['btn_register'] = 'Registrieren'; $lang['btn_apply'] = 'Ãœbernehmen'; $lang['btn_media'] = 'Medien-Manager'; $lang['btn_deleteuser'] = 'Benutzerprofil löschen'; +$lang['btn_img_backto'] = 'Zurück zu %s'; +$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen'; $lang['loggedinas'] = 'Angemeldet als:'; $lang['user'] = 'Benutzername'; $lang['pass'] = 'Passwort'; @@ -80,11 +83,12 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.'; $lang['minoredit'] = 'Kleine Änderung'; $lang['draftdate'] = 'Entwurf gespeichert am'; $lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.'; -$lang['searchcreatepage'] = "Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **''[Seite anlegen]''** drückst."; +$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **\'\'[Seite anlegen]\'\'** drückst.'; $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; $lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.'; +$lang['regfail'] = 'Der Benutzer konnte nicht erstellt werden.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.'; $lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; @@ -99,6 +103,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen'; $lang['profdeleted'] = 'Dein Benutzerprofil wurde im Wiki gelöscht.'; $lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.'; $lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.'; +$lang['proffail'] = 'Das Benutzerprofil wurde nicht aktualisiert.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort setzen für'; @@ -194,6 +199,11 @@ $lang['difflink'] = 'Link zu der Vergleichsansicht'; $lang['diff_type'] = 'Unterschiede anzeigen:'; $lang['diff_inline'] = 'Inline'; $lang['diff_side'] = 'Side by Side'; +$lang['diffprevrev'] = 'Vorherige Ãœberarbeitung'; +$lang['diffnextrev'] = 'Nächste Ãœberarbeitung'; +$lang['difflastrev'] = 'Letzte Ãœberarbeitung'; +$lang['diffbothprevrev'] = 'Beide Seiten, vorherige Ãœberarbeitung'; +$lang['diffbothnextrev'] = 'Beide Seiten, nächste Ãœberarbeitung'; $lang['line'] = 'Zeile'; $lang['breadcrumb'] = 'Zuletzt angesehen:'; $lang['youarehere'] = 'Du befindest dich hier:'; @@ -249,7 +259,6 @@ $lang['upperns'] = 'Gehe zum übergeordneten Namensraum'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; -$lang['btn_img_backto'] = 'Zurück zu %s'; $lang['img_title'] = 'Titel:'; $lang['img_caption'] = 'Bildunterschrift:'; $lang['img_date'] = 'Datum:'; @@ -262,7 +271,6 @@ $lang['img_camera'] = 'Kamera:'; $lang['img_keywords'] = 'Schlagwörter:'; $lang['img_width'] = 'Breite:'; $lang['img_height'] = 'Höhe:'; -$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen'; $lang['subscr_subscribe_success'] = 'Die Seite %s wurde zur Abonnementliste von %s hinzugefügt'; $lang['subscr_subscribe_error'] = 'Fehler beim Hinzufügen von %s zur Abonnementliste von %s'; $lang['subscr_subscribe_noaddress'] = 'In deinem Account ist keine E-Mail-Adresse hinterlegt. Dadurch kann die Seite nicht abonniert werden'; @@ -289,6 +297,7 @@ $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführ $lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.'; $lang['i_funcna'] = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?'; $lang['i_phpver'] = 'Deine PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisiere deine PHP-Installation.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.'; $lang['i_permfail'] = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!'; $lang['i_confexists'] = '<code>%s</code> existiert bereits'; $lang['i_writeerr'] = '<code>%s</code> konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.'; @@ -338,6 +347,9 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge $lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.'; $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnis'; -$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; +$lang['plainhtml'] = 'Reines HTML'; +$lang['wikimarkup'] = 'Wiki Markup'; +$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.'; diff --git a/lib/plugins/authad/lang/de-informal/lang.php b/lib/plugins/authad/lang/de-informal/lang.php index e9361d5fe..973c992d2 100644 --- a/lib/plugins/authad/lang/de-informal/lang.php +++ b/lib/plugins/authad/lang/de-informal/lang.php @@ -4,5 +4,8 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Andreas Gohr <gohr@cosmocode.de> + * @author rnck <dokuwiki@rnck.de> */ $lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.'; +$lang['passchangefail'] = 'Das Passwort konnte nicht geändert werden. Eventuell wurde die Passwort-Richtlinie nicht eingehalten.'; +$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.'; -- GitLab From 2ee76f4a8d89135027e4a492d2d000b04252e0eb Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 5 Jul 2015 13:19:40 +0100 Subject: [PATCH 223/440] fixed installed extensions in extension manager not displaying without JS --- lib/plugins/extension/script.js | 9 +++++---- lib/plugins/extension/style.less | 25 ++++++++++++++----------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index bc1bf8b12..7d78d2a03 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -114,16 +114,17 @@ jQuery(function(){ Create section for enabling/disabling viewing options */ if ( $extmgr.find('.plugins, .templates').hasClass('active') ) { + var $extlist = jQuery('#extension__list'); + $extlist.addClass('hasDisplayOptions'); var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); $displayOpts.append(LANG.plugins.extension.display_viewoptions); - + var displayOptionsHandler = function(){ - jQuery('#extension__list').toggleClass( this.name ); + $extlist.toggleClass( this.name ); }; - + jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ - var $label = jQuery( '<label></label>' ).appendTo($displayOpts); jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index 38b2d65d0..f35878009 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -281,18 +281,21 @@ * Enabled/Disabled overrides */ #extension__list { - - .enabled, .disabled, - .updatable { - display: none; - } - - &.enabled .enabled, - &.disabled .disabled, - &.updatable .updatable { - display: block; + + &.hasDisplayOptions { + .enabled, + .disabled, + .updatable { + display: none; + } + + &.enabled .enabled, + &.disabled .disabled, + &.updatable .updatable { + display: block; + } } - + .enabled div.screenshot span { background: transparent url(images/enabled.png) no-repeat 2px 2px; } -- GitLab From 1539b4dd6b40c7af97092763889cab5ee76c1187 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 5 Jul 2015 13:20:26 +0100 Subject: [PATCH 224/440] fixed small spacing/alignment issues in display options of extension manager --- lib/plugins/extension/script.js | 2 +- lib/plugins/extension/style.less | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index 7d78d2a03..c74c44ad1 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -127,7 +127,7 @@ jQuery(function(){ jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ var $label = jQuery( '<label></label>' ).appendTo($displayOpts); jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); - jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label); + jQuery( '<span/>' ).append(' '+LANG.plugins.extension['display_'+chkName]).appendTo($label); }); } }); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index f35878009..86e540b0f 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -379,4 +379,5 @@ #extension__viewoptions label { margin-left: 1em; + vertical-align: baseline; } -- GitLab From 9f4b197e717f979e2a6a5130ca0dff814d026be5 Mon Sep 17 00:00:00 2001 From: Rainbow Spike <Dr-Yukon@users.noreply.github.com> Date: Tue, 7 Jul 2015 19:09:20 +1000 Subject: [PATCH 225/440] Update lang.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Выравнивание и разбиение по образцу en/lang.php, ÑƒÐ½Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ "директорий" и "папок", "раÑширений" и "дополнений" --- lib/plugins/extension/lang/ru/lang.php | 186 +++++++++++++------------ 1 file changed, 99 insertions(+), 87 deletions(-) diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index c7ef52b42..a16f0ca95 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -10,91 +10,103 @@ * @author Alex P <alexander@lanos.co.uk> * @author Takumo <9206984@mail.ru> */ -$lang['menu'] = 'Управление дополнениÑми'; -$lang['tab_plugins'] = 'УÑтановленные плагины'; -$lang['tab_templates'] = 'УÑтановленные шаблоны'; -$lang['tab_search'] = 'ПоиÑк и уÑтановка'; -$lang['tab_install'] = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка'; -$lang['notimplemented'] = 'Ðта возможноÑÑ‚ÑŒ ещё не реализована'; -$lang['notinstalled'] = 'Ðто дополнение не уÑтановлено'; -$lang['alreadyenabled'] = 'Ðто раÑширение уже включено'; -$lang['alreadydisabled'] = 'Ðто раÑширение уже выключено'; -$lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; -$lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; -$lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; -$lang['btn_info'] = 'Отобразить доп. информацию'; -$lang['btn_update'] = 'Обновить'; -$lang['btn_uninstall'] = 'Удалить'; -$lang['btn_enable'] = 'Включить'; -$lang['btn_disable'] = 'Отключить'; -$lang['btn_install'] = 'УÑтановить'; -$lang['btn_reinstall'] = 'ПереуÑтановить'; -$lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; -$lang['js']['display_viewoptions'] = 'Показать как:'; -$lang['js']['display_enabled'] = 'включено'; -$lang['js']['display_disabled'] = 'отключено'; -$lang['js']['display_updatable'] = 'обновление'; -$lang['search_for'] = 'ПоиÑк дополнениÑ:'; -$lang['search'] = 'Ðайти'; -$lang['extensionby'] = '<strong>%s</strong> — %s'; -$lang['screenshot'] = 'Скриншот: %s'; -$lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; -$lang['homepage_link'] = 'ОпиÑание'; -$lang['bugs_features'] = 'Баг-трекер'; -$lang['tags'] = 'Метки:'; -$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°'; -$lang['installed'] = 'УÑтановлено:'; -$lang['downloadurl'] = 'Скачать:'; -$lang['repository'] = 'Репозиторий:'; -$lang['unknown'] = '<em>неизвеÑтно</em>'; -$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; -$lang['install_date'] = 'ПоÑл. обновление:'; -$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['compatible'] = 'СовмеÑтим Ñ'; -$lang['depends'] = 'ЗавиÑит от'; -$lang['similar'] = 'Похож на'; -$lang['conflicts'] = 'Конфликтует Ñ'; -$lang['donate'] = 'ÐравитÑÑ?'; -$lang['donate_action'] = 'Купить автору кофе!'; -$lang['repo_retry'] = 'Повторить'; -$lang['provides'] = 'ПредоÑтавлÑет:'; -$lang['status'] = 'СтатуÑ:'; -$lang['status_installed'] = 'уÑтановлено'; -$lang['status_not_installed'] = 'не уÑтановлено'; -$lang['status_protected'] = 'защищено'; -$lang['status_enabled'] = 'включён'; -$lang['status_disabled'] = 'отключено'; -$lang['status_unmodifiable'] = 'неизменÑемо'; -$lang['status_plugin'] = 'плагин'; -$lang['status_template'] = 'шаблон'; -$lang['status_bundled'] = 'в комплекте'; -$lang['msg_enabled'] = 'Плагин %s включён'; -$lang['msg_disabled'] = 'Плагин %s отключён'; -$lang['msg_delete_success'] = 'Дополнение %s удалено'; -$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить раÑширение %s'; +$lang['menu'] = 'Управление дополнениÑми'; + +$lang['tab_plugins'] = 'УÑтановленные плагины'; +$lang['tab_templates'] = 'УÑтановленные шаблоны'; +$lang['tab_search'] = 'ПоиÑк и уÑтановка'; +$lang['tab_install'] = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка'; + +$lang['notimplemented'] = 'Ðта возможноÑÑ‚ÑŒ ещё не реализована'; +$lang['notinstalled'] = 'Ðто дополнение не уÑтановлено'; +$lang['alreadyenabled'] = 'Ðто дополнение уже включено'; +$lang['alreadydisabled'] = 'Ðто дополнение уже отключено'; +$lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; +$lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; +$lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; + +$lang['btn_info'] = 'Отобразить доп. информацию'; +$lang['btn_update'] = 'Обновить'; +$lang['btn_uninstall'] = 'Удалить'; +$lang['btn_enable'] = 'Включить'; +$lang['btn_disable'] = 'Отключить'; +$lang['btn_install'] = 'УÑтановить'; +$lang['btn_reinstall'] = 'ПереуÑтановить'; + +$lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; +$lang['js']['display_viewoptions'] = 'Показать как:'; +$lang['js']['display_enabled'] = 'включено'; +$lang['js']['display_disabled'] = 'отключено'; +$lang['js']['display_updatable'] = 'обновление'; + +$lang['search_for'] = 'ПоиÑк дополнениÑ:'; +$lang['search'] = 'Ðайти'; + +$lang['extensionby'] = '<strong>%s</strong> — %s'; +$lang['screenshot'] = 'Скриншот: %s'; +$lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; +$lang['homepage_link'] = 'ОпиÑание'; +$lang['bugs_features'] = 'Баг-трекер'; +$lang['tags'] = 'Метки:'; +$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; +$lang['installed'] = 'УÑтановлено:'; +$lang['downloadurl'] = 'Скачать:'; +$lang['repository'] = 'Репозиторий:'; +$lang['unknown'] = '<em>неизвеÑтно</em>'; +$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; +$lang['install_date'] = 'ПоÑл. обновление:'; +$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; +$lang['compatible'] = 'СовмеÑтим Ñ:'; +$lang['depends'] = 'ЗавиÑит от:'; +$lang['similar'] = 'Похож на:'; +$lang['conflicts'] = 'Конфликтует Ñ:'; +$lang['donate'] = 'ÐравитÑÑ?'; +$lang['donate_action'] = 'Купить автору кофе!'; +$lang['repo_retry'] = 'Повторить'; +$lang['provides'] = 'ПредоÑтавлÑет:'; +$lang['status'] = 'СоÑтоÑние:'; +$lang['status_installed'] = 'уÑтановлено'; +$lang['status_not_installed'] = 'не уÑтановлено'; +$lang['status_protected'] = 'защищено'; +$lang['status_enabled'] = 'включено'; +$lang['status_disabled'] = 'отключено'; +$lang['status_unmodifiable'] = 'неизменÑемо'; +$lang['status_plugin'] = 'плагин'; +$lang['status_template'] = 'шаблон'; +$lang['status_bundled'] = 'в комплекте'; + +$lang['msg_enabled'] = 'Плагин %s включён'; +$lang['msg_disabled'] = 'Плагин %s отключён'; +$lang['msg_delete_success'] = 'Дополнение удалено'; +$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить дополнение %s'; $lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен'; -$lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; -$lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен'; -$lang['msg_plugin_update_success'] = 'Плагин %s уÑпешно обновлён'; -$lang['msg_upload_failed'] = 'Ðе удалоÑÑŒ загрузить файл'; -$lang['missing_dependency'] = '<strong>ОтÑутÑтвует или отключена завиÑимоÑÑ‚ÑŒ:</strong> %s'; -$lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; -$lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; -$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s.'; -$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте папку плагина из %s в %s.'; -$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ раÑширение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; -$lang['error_badurl'] = 'СÑылки должны начинатьÑÑ Ñ http или https'; -$lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; -$lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; -$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ñ€Ð°ÑширениÑ, загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; -$lang['noperms'] = 'Папка Ð´Ð»Ñ Ñ€Ð°Ñширений недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['notplperms'] = 'Папка Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['nopluginperms'] = 'Папка плагинов недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['git'] = 'Ðто раÑширение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; -$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; -$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа URL'; -$lang['install_upload'] = 'Скачать раÑширение'; -$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼.'; -$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и раÑширений.'; +$lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; +$lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен'; +$lang['msg_plugin_update_success'] = 'Плагин %s уÑпешно обновлён'; +$lang['msg_upload_failed'] = 'Ðе удалоÑÑŒ загрузить файл'; + +$lang['missing_dependency'] = '<strong>ОтÑутÑтвует или отключена завиÑимоÑÑ‚ÑŒ:</strong> %s'; +$lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; +$lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; +$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s'; +$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s'; +$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; + +$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; +$lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; +$lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; +$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; +$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; +$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; + +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['git'] = 'Ðто дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; +$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; + +$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа:'; +$lang['install_upload'] = 'Скачать дополнение:'; + +$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org и также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; +$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и дополнений.'; -- GitLab From d634152e42ef1c75d899f021132ce0c2632257ac Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Tue, 7 Jul 2015 12:39:55 +0100 Subject: [PATCH 226/440] improved various minor frontend issues in styling plugin * improved spacing of popup * made primary buttons clearer * xhtml and validity fixes * improved some lang strings * moved 'open as popup' after intro * fixed page reload after clicking 'open as popup' button --- lib/plugins/styling/admin.php | 16 ++++++++-------- lib/plugins/styling/lang/en/lang.php | 10 +++++----- lib/plugins/styling/popup.php | 14 ++++++++------ lib/plugins/styling/script.js | 14 ++++++++------ lib/plugins/styling/style.less | 7 ++----- 5 files changed, 31 insertions(+), 30 deletions(-) diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index 627efbd15..f241e3fed 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -43,7 +43,7 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { */ public function html() { $class = 'nopopup'; - if($this->ispopup) $class = 'ispopup'; + if($this->ispopup) $class = 'ispopup page'; echo '<div id="plugin__styling" class="'.$class.'">'; ptln('<h1>'.$this->getLang('menu').'</h1>'); @@ -75,7 +75,7 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { echo '<form class="styling" method="post" action="'.$target.'">'; - echo '<table>'; + echo '<table><tbody>'; foreach($replacements as $key => $value) { $name = tpl_getLang($key); if(empty($name)) $name = $this->getLang($key); @@ -83,22 +83,22 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { echo '<tr>'; echo '<td>'.$name.'</td>'; - echo '<td><input type="text" name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' />'; + echo '<td><input type="text" name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' /></td>'; echo '</tr>'; } - echo '</table>'; + echo '</tbody></table>'; echo '<p>'; - echo '<input type="submit" name="run[preview]" class="btn_preview" value="'.$this->getLang('btn_preview').'">'; - echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'">'; #FIXME only if preview.ini exists + echo '<input type="submit" name="run[preview]" class="btn_preview primary" value="'.$this->getLang('btn_preview').'" /> '; + echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'" />'; #FIXME only if preview.ini exists echo '</p>'; echo '<p>'; - echo '<input type="submit" name="run[save]" value="'.$this->getLang('btn_save').'">'; + echo '<input type="submit" name="run[save]" class="primary" value="'.$this->getLang('btn_save').'" />'; echo '</p>'; echo '<p>'; - echo '<input type="submit" name="run[revert]" value="'.$this->getLang('btn_revert').'">'; #FIXME only if local.ini exists + echo '<input type="submit" name="run[revert]" value="'.$this->getLang('btn_revert').'" />'; #FIXME only if local.ini exists echo '</p>'; echo '</form>'; diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index a076065cb..010743956 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -8,15 +8,15 @@ // menu entry for admin plugins $lang['menu'] = 'Template Style Settings'; -$lang['js']['loader'] = 'Preview is loading...<br>if this does not goes away, your values may be faulty'; -$lang['js']['popup'] = 'Open as Popup'; +$lang['js']['loader'] = 'Preview is loading...<br />if this does not goes away, your values may be faulty'; +$lang['js']['popup'] = 'Open as a popup'; // custom language strings for the plugin $lang['error'] = 'Sorry, this template does not support this functionality.'; -$lang['btn_preview'] = 'Preview your changes'; -$lang['btn_save'] = 'Save your changes'; -$lang['btn_reset'] = 'Reset your current changes'; +$lang['btn_preview'] = 'Preview changes'; +$lang['btn_save'] = 'Save changes'; +$lang['btn_reset'] = 'Reset current changes'; $lang['btn_revert'] = 'Revert all styles back to the template\'s default'; // default guaranteed placeholders diff --git a/lib/plugins/styling/popup.php b/lib/plugins/styling/popup.php index eea4f3bfd..964b19e29 100644 --- a/lib/plugins/styling/popup.php +++ b/lib/plugins/styling/popup.php @@ -4,6 +4,7 @@ require_once(DOKU_INC . 'inc/init.php'); //close session session_write_close(); header('Content-Type: text/html; charset=utf-8'); +header('X-UA-Compatible: IE=edge,chrome=1'); /** @var admin_plugin_styling $plugin */ $plugin = plugin_load('admin', 'styling'); @@ -14,15 +15,16 @@ $plugin->ispopup = true; $plugin->handle(); // output plugin in a very minimal template: -?> -<html> +?><!DOCTYPE html> +<html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>"> <head> + <meta charset="utf-8" /> <title><?php echo $plugin->getLang('menu') ?></title> <?php tpl_metaheaders(false) ?> + <meta name="viewport" content="width=device-width,initial-scale=1" /> + <?php echo tpl_favicon(array('favicon')) ?> </head> -<body> - <div class="dokuwiki page"> - <?php $plugin->html() ?> - </div> +<body class="dokuwiki"> + <?php $plugin->html() ?> </body> </html> diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 6fc2b9043..84b251eab 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -12,14 +12,15 @@ jQuery(function () { // add button on main page if (!$styling_plugin.hasClass('ispopup')) { - var $hl = $styling_plugin.find('h1').first(); - var $btn = jQuery('<button class="btn">' + LANG.plugins.styling.popup + '</button>'); - $hl.append($btn); + var $form = $styling_plugin.find('form.styling').first(); + var $btn = jQuery('<button>' + LANG.plugins.styling.popup + '</button>'); + $form.prepend($btn); $btn.click(function (e) { var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling', windowFeatures) - }); + e.preventDefault(); + }).wrap('<p></p>'); return; } @@ -54,9 +55,10 @@ jQuery(function () { 'background-color': '#fff', 'opacity': '0.7', 'color': '#000', - 'font-size': '40px', + 'font-size': '2.5em', 'text-align': 'center', - 'line-height': '90px' + 'line-height': 1.5, + 'padding-top': '2em' }); window.opener.jQuery('body').append($loader); } diff --git a/lib/plugins/styling/style.less b/lib/plugins/styling/style.less index 3cb563fdb..120768289 100644 --- a/lib/plugins/styling/style.less +++ b/lib/plugins/styling/style.less @@ -1,9 +1,6 @@ #plugin__styling { - - h1 button { - font-size: 12px; - line-height: 16px; - margin-left: 1em; + input.primary { + font-weight: bold; } } -- GitLab From 147d8f481419c685b5408b7b793fd32a8923f35e Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Tue, 7 Jul 2015 13:04:52 +0100 Subject: [PATCH 227/440] added labels to form entries --- lib/plugins/styling/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index f241e3fed..c6c04bb52 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -82,8 +82,8 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { if(empty($name)) $name = $key; echo '<tr>'; - echo '<td>'.$name.'</td>'; - echo '<td><input type="text" name="tpl['.hsc($key).']" value="'.hsc($value).'" '.$this->colorClass($key).' /></td>'; + echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>'; + echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' /></td>'; echo '</tr>'; } echo '</tbody></table>'; -- GitLab From d750427ebf95dc91ec90b5c812180739317cd094 Mon Sep 17 00:00:00 2001 From: Errol <errol@hotmail.com> Date: Wed, 8 Jul 2015 11:56:08 +0200 Subject: [PATCH 228/440] translation update --- inc/lang/zh/lang.php | 4 ++++ lib/plugins/authad/lang/zh/lang.php | 3 +++ lib/plugins/authldap/lang/zh/lang.php | 9 +++++++++ lib/plugins/authldap/lang/zh/settings.php | 2 ++ lib/plugins/authmysql/lang/zh/lang.php | 11 +++++++++++ lib/plugins/extension/lang/zh/lang.php | 5 +++++ 6 files changed, 34 insertions(+) create mode 100644 lib/plugins/authldap/lang/zh/lang.php create mode 100644 lib/plugins/authmysql/lang/zh/lang.php diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index 8f3a7bbf4..d179ad634 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -24,6 +24,7 @@ * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> * @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de> + * @author Errol <errol@hotmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -89,6 +90,7 @@ $lang['regmissing'] = '对ä¸èµ·ï¼Œæ‚¨å¿…须填写所有的å—段。' $lang['reguexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; $lang['regsuccess'] = '新用户已建立,密ç 将通过电å邮件å‘é€ç»™æ‚¨ã€‚'; $lang['regsuccess2'] = '新用户已建立'; +$lang['regfail'] = '用户ä¸èƒ½è¢«åˆ›å»ºã€‚'; $lang['regmailfail'] = 'å‘é€å¯†ç 邮件时产生错误。请è”系管ç†å‘˜ï¼'; $lang['regbadmail'] = '您输入的邮件地å€æœ‰é—®é¢˜â€”—如果您认为这是系统错误,请è”系管ç†å‘˜ã€‚'; $lang['regbadpass'] = '您输入的密ç 与系统产生的ä¸ç¬¦ï¼Œè¯·é‡è¯•ã€‚'; @@ -103,6 +105,7 @@ $lang['profdeleteuser'] = 'åˆ é™¤è´¦å·'; $lang['profdeleted'] = 'ä½ çš„ç”¨æˆ·å·²ç»ä»Žè¿™ä¸ª wiki ä¸åˆ 除'; $lang['profconfdelete'] = 'æˆ‘å¸Œæœ›åˆ é™¤æˆ‘çš„è´¦æˆ·ã€‚<br/>这项æ“ä½œæ— æ³•æ’¤é”€ã€‚'; $lang['profconfdeletemissing'] = '确认框未勾选'; +$lang['proffail'] = '用户设置没有更新。'; $lang['pwdforget'] = '忘记密ç ?立å³èŽ·å–新密ç '; $lang['resendna'] = '本维基ä¸æ”¯æŒäºŒæ¬¡å‘é€å¯†ç 。'; $lang['resendpwd'] = '设置新密ç 用于'; @@ -352,6 +355,7 @@ $lang['media_perm_read'] = '抱æ‰ï¼Œæ‚¨æ²¡æœ‰è¶³å¤Ÿæƒé™è¯»å–这些文 $lang['media_perm_upload'] = '抱æ‰ï¼Œæ‚¨æ²¡æœ‰è¶³å¤Ÿæƒé™æ¥ä¸Šä¼ 文件。'; $lang['media_update'] = 'ä¸Šä¼ æ–°ç‰ˆæœ¬'; $lang['media_restore'] = 'æ¢å¤è¿™ä¸ªç‰ˆæœ¬'; +$lang['media_acl_warning'] = 'æ¤åˆ—表å¯èƒ½ä¸å®Œå…¨æ˜¯ç”±ACLé™åˆ¶å’Œéšè—的页é¢ã€‚'; $lang['currentns'] = '当å‰å‘½å空间'; $lang['searchresult'] = 'æœç´¢ç»“æžœ'; $lang['plainhtml'] = '纯HTML'; diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php index 4f3794999..df1a7a7f7 100644 --- a/lib/plugins/authad/lang/zh/lang.php +++ b/lib/plugins/authad/lang/zh/lang.php @@ -4,6 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author lainme <lainme993@gmail.com> + * @author Errol <errol@hotmail.com> */ $lang['domain'] = '登录域'; $lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; +$lang['passchangefail'] = '密ç 更改失败。是ä¸æ˜¯å¯†ç 规则ä¸ç¬¦åˆï¼Ÿ'; +$lang['connectfail'] = 'æ— æ³•è¿žæŽ¥åˆ°Active DirectoryæœåŠ¡å™¨ã€‚'; diff --git a/lib/plugins/authldap/lang/zh/lang.php b/lib/plugins/authldap/lang/zh/lang.php new file mode 100644 index 000000000..ef727497e --- /dev/null +++ b/lib/plugins/authldap/lang/zh/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Errol <errol@hotmail.com> + */ +$lang['connectfail'] = 'LDAP æ— æ³•è¿žæŽ¥: %s'; +$lang['domainfail'] = 'LDAP æ— æ³•æ‰¾åˆ°ä½ çš„ç”¨æˆ· dn'; diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index d4ea5c615..4f4a0a8b8 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -5,6 +5,7 @@ * * @author lainme <lainme993@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> + * @author Errol <errol@hotmail.com> */ $lang['server'] = '您的 LDAP æœåŠ¡å™¨ã€‚填写主机å (<code>localhost</code>) 或者完整的 URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP æœåŠ¡å™¨ç«¯å£ (如果上é¢æ²¡æœ‰ç»™å‡ºå®Œæ•´çš„ URL)'; @@ -21,6 +22,7 @@ $lang['bindpw'] = '上述用户的密ç '; $lang['userscope'] = 'é™åˆ¶ç”¨æˆ·æœç´¢çš„范围'; $lang['groupscope'] = 'é™åˆ¶ç»„æœç´¢çš„范围'; $lang['groupkey'] = 'æ ¹æ®ä»»ä½•ç”¨æˆ·å±žæ€§å¾—æ¥çš„组æˆå‘˜(而ä¸æ˜¯æ ‡å‡†çš„ AD 组)ï¼Œä¾‹å¦‚æ ¹æ®éƒ¨é—¨æˆ–者电è¯å·ç 得到的组。'; +$lang['modPass'] = ' LDAP密ç å¯ä»¥ç”±dokuwiki修改å—?'; $lang['debug'] = '有错误时显示é¢å¤–的调试信æ¯'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; diff --git a/lib/plugins/authmysql/lang/zh/lang.php b/lib/plugins/authmysql/lang/zh/lang.php new file mode 100644 index 000000000..044fe6d60 --- /dev/null +++ b/lib/plugins/authmysql/lang/zh/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Errol <errol@hotmail.com> + */ +$lang['connectfail'] = '连接数æ®åº“失败'; +$lang['userexists'] = '抱æ‰ï¼Œç”¨æˆ·å已被使用。'; +$lang['usernotexists'] = '抱æ‰ï¼Œç”¨æˆ·ä¸å˜åœ¨ã€‚'; +$lang['writefail'] = 'æ— æ³•ä¿®æ”¹ç”¨æˆ·æ•°æ®ã€‚请通知管ç†å‘˜'; diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php index 5ab3d77ba..62d54c160 100644 --- a/lib/plugins/extension/lang/zh/lang.php +++ b/lib/plugins/extension/lang/zh/lang.php @@ -7,6 +7,7 @@ * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> * @author lainme <lainme993@gmail.com> + * @author Errol <errol@hotmail.com> */ $lang['menu'] = '扩展管ç†å™¨'; $lang['tab_plugins'] = '安装æ’件'; @@ -28,6 +29,10 @@ $lang['btn_disable'] = 'å…³é—'; $lang['btn_install'] = '安装'; $lang['btn_reinstall'] = 'é‡æ–°å®‰è£…'; $lang['js']['reallydel'] = '确定å¸è½½è¿™ä¸ªæ‰©å±•ä¹ˆï¼Ÿ'; +$lang['js']['display_viewoptions'] = '查看选项:'; +$lang['js']['display_enabled'] = 'å¯ç”¨'; +$lang['js']['display_disabled'] = 'ç¦ç”¨'; +$lang['js']['display_updatable'] = 'å¯æ›´æ–°'; $lang['search_for'] = 'æœç´¢æ‰©å±•'; $lang['search'] = 'æœç´¢'; $lang['extensionby'] = '<strong>%s</strong> by %s'; -- GitLab From 10da589230c0fe57b58ed23095fadd8d1951f1fe Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sat, 11 Jul 2015 09:51:04 +0200 Subject: [PATCH 229/440] translation update --- inc/lang/ko/edit.txt | 2 +- inc/lang/ko/lang.php | 17 +++++++++-------- lib/plugins/authad/lang/ko/lang.php | 2 ++ lib/plugins/authldap/lang/ko/lang.php | 9 +++++++++ lib/plugins/authmysql/lang/ko/lang.php | 7 ++++--- lib/plugins/extension/lang/ko/lang.php | 5 +++-- lib/plugins/popularity/lang/ko/intro.txt | 2 +- 7 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 lib/plugins/authldap/lang/ko/lang.php diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt index 8da90266c..70b24ac7b 100644 --- a/inc/lang/ko/edit.txt +++ b/inc/lang/ko/edit.txt @@ -1 +1 @@ -문서를 íŽ¸ì§‘í•˜ê³ ''ì €ìž¥''ì„ ëˆ„ë¥´ì„¸ìš”. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]]를 ì°¸ê³ í•˜ì„¸ìš”. 문서를 **ë” ì¢‹ê²Œ 만들 ìžì‹ ì´ ìžˆì„ ë•Œ**ì—만 편집하세요. ì—°ìŠµì„ í•˜ê³ ì‹¶ë‹¤ë©´ ë¨¼ì € [[playground:playground|연습장]]ì— ê°€ì„œ 연습하세요. \ No newline at end of file +문서를 íŽ¸ì§‘í•˜ê³ ''ì €ìž¥''ì„ ëˆ„ë¥´ì„¸ìš”. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]]를 참조하세요. 문서를 **ë” ì¢‹ê²Œ 만들 ìžì‹ ì´ ìžˆì„ ë•Œ**ì—만 편집하세요. ì—°ìŠµì„ í•˜ê³ ì‹¶ë‹¤ë©´ ë¨¼ì € [[playground:playground|연습장]]ì— ê°€ì„œ 연습하세요. \ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index b46abf5d1..48ebfb1d6 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -77,9 +77,9 @@ $lang['nosecedit'] = 'í•œ ë™ì•ˆ 문서가 바뀌었으며, 문단 $lang['searchcreatepage'] = '만약 ì›í•˜ëŠ” 문서를 찾지 못했다면, \'\'문서 만들기\'\'나 \'\'문서 편집\'\'ì„ ì‚¬ìš©í•´ 검색어와 ê°™ì€ ì´ë¦„ì˜ ë¬¸ì„œë¥¼ 만들거나 íŽ¸ì§‘í• ìˆ˜ 있습니다.'; $lang['regmissing'] = '죄송하지만 ëª¨ë“ í•„ë“œë¥¼ 채워야 합니다.'; $lang['reguexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; -$lang['regsuccess'] = '사용ìžë¥¼ 만들었으며 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; -$lang['regsuccess2'] = '사용ìžë¥¼ 만들었습니다.'; -$lang['regfail'] = 'ì‚¬ìš©ìž ê³„ì •ì´ ë§Œë“¤ì–´ì§€ì§€ 않았습니다.'; +$lang['regsuccess'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìœ¼ë©° 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; +$lang['regsuccess2'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìŠµë‹ˆë‹¤.'; +$lang['regfail'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ 수 없었습니다.'; $lang['regmailfail'] = '비밀번호를 ì´ë©”ì¼ë¡œ 보내는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”!'; $lang['regbadmail'] = '주어진 ì´ë©”ì¼ ì£¼ì†Œê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ - 오류ë¼ê³ ìƒê°í•˜ë©´ 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”'; $lang['regbadpass'] = 'ë‘ ì£¼ì–´ì§„ 비밀번호가 같지 않습니다. 다시 ìž…ë ¥í•˜ì„¸ìš”.'; @@ -89,12 +89,12 @@ $lang['profna'] = 'ì´ ìœ„í‚¤ëŠ” 프로필 ìˆ˜ì •ì„ í• ìˆ˜ ì—† $lang['profnochange'] = 'ë°”ë€ ë‚´ìš©ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['profnoempty'] = '빈 ì´ë¦„ì´ë‚˜ ì´ë©”ì¼ ì£¼ì†ŒëŠ” 허용하지 않습니다.'; $lang['profchanged'] = 'í”„ë¡œí•„ì´ ì„±ê³µì 으로 바뀌었습니다.'; -$lang['profnodelete'] = 'ì´ ìœ„í‚¤ëŠ” ì‚¬ìš©ìž ì‚ì œë¥¼ 지ì›í•˜ì§€ 않습니다'; +$lang['profnodelete'] = 'ì´ ìœ„í‚¤ëŠ” ì‚¬ìš©ìž ê³„ì • ì‚ì œë¥¼ 지ì›í•˜ì§€ 않습니다'; $lang['profdeleteuser'] = 'ê³„ì • ì‚ì œ'; $lang['profdeleted'] = 'ë‹¹ì‹ ì˜ ì‚¬ìš©ìž ê³„ì •ì´ ì´ ìœ„í‚¤ì—ì„œ ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['profconfdelete'] = 'ì´ ìœ„í‚¤ì—ì„œ ë‚´ ê³„ì •ì„ ì œê±°í•˜ê³ ì‹¶ìŠµë‹ˆë‹¤. <br/> ì´ í–‰ë™ì€ ë˜ëŒë¦´ 수 없습니다.'; $lang['profconfdeletemissing'] = 'ì„ íƒí•˜ì§€ ì•Šì€ í™•ì¸ ìƒìžë¥¼ 확ì¸'; -$lang['proffail'] = 'ì‚¬ìš©ìž ì„¤ì •ì´ ì—…ë°ì´íŠ¸ë˜ì§€ 않았습니다.'; +$lang['proffail'] = 'ì‚¬ìš©ìž í”„ë¡œí•„ì´ ì—…ë°ì´íŠ¸ë˜ì§€ 않았습니다.'; $lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 ìž¬ì„¤ì •í•˜ì„¸ìš”'; $lang['resendna'] = 'ì´ ìœ„í‚¤ëŠ” 비밀번호 ìž¬ì„¤ì •ì„ ì§€ì›í•˜ì§€ 않습니다.'; $lang['resendpwd'] = '다ìŒìœ¼ë¡œ 새 비밀번호 보내기'; @@ -171,14 +171,14 @@ $lang['mediainuse'] = '"%s" 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다 - $lang['namespaces'] = 'ì´ë¦„공간'; $lang['mediafiles'] = 'ì‚¬ìš©í• ìˆ˜ 있는 íŒŒì¼ ëª©ë¡'; $lang['accessdenied'] = 'ì´ ë¬¸ì„œë¥¼ ë³¼ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.'; -$lang['mediausage'] = 'ì´ íŒŒì¼ì„ ì°¸ê³ í•˜ë ¤ë©´ ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ì„¸ìš”:'; +$lang['mediausage'] = 'ì´ íŒŒì¼ì„ ì°¸ì¡°í•˜ë ¤ë©´ ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ì„¸ìš”:'; $lang['mediaview'] = 'ì›ë³¸ íŒŒì¼ ë³´ê¸°'; $lang['mediaroot'] = '루트'; $lang['mediaupload'] = '파ì¼ì„ 현재 ì´ë¦„공간으로 올립니다. 하위 ì´ë¦„공간으로 ë§Œë“¤ë ¤ë©´ ì„ íƒí•œ íŒŒì¼ ì´ë¦„ ì•žì— ìŒì (:)으로 구분ë˜ëŠ” ì´ë¦„ì„ ë¶™ì´ë©´ ë©ë‹ˆë‹¤. 파ì¼ì„ 드래그 앤 ë“œë¡í•´ ì„ íƒí• 수 있습니다.'; $lang['mediaextchange'] = 'íŒŒì¼ í™•ìž¥ìžê°€ .%sì—ì„œ .%s(으)ë¡œ 바뀌었습니다!'; $lang['reference'] = '다ìŒì„ 참조'; $lang['ref_inuse'] = 'ë‹¤ìŒ ë¬¸ì„œì—ì„œ ì•„ì§ ì‚¬ìš© 중ì´ë¯€ë¡œ 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다:'; -$lang['ref_hidden'] = 'ë¬¸ì„œì˜ ì¼ë¶€ ì°¸ê³ ëŠ” ì½ì„ 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤'; +$lang['ref_hidden'] = 'ë¬¸ì„œì˜ ì¼ë¶€ 참조는 ì½ì„ 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤'; $lang['hits'] = '조회 수'; $lang['quickhits'] = 'ì¼ì¹˜í•˜ëŠ” 문서 ì´ë¦„'; $lang['toc'] = '목차'; @@ -286,7 +286,7 @@ $lang['i_enableacl'] = 'ACL 활성화 (권장)'; $lang['i_superuser'] = 'ìŠˆí¼ ì‚¬ìš©ìž'; $lang['i_problems'] = '설치 관리ìžê°€ ì•„ëž˜ì— ë‚˜ì™€ 있는 몇 가지 ë¬¸ì œë¥¼ 찾았습니다. ë¬¸ì œë¥¼ 해결하지 ì „ê¹Œì§€ 설치를 계ì†í• 수 없습니다.'; $lang['i_modified'] = '보안 ìƒì˜ ì´ìœ ë¡œ ì´ ìŠ¤í¬ë¦½íŠ¸ëŠ” ìˆ˜ì •ë˜ì§€ ì•Šì€ ìƒˆ ë„ì¿ ìœ„í‚¤ 설치ì—서만 ë™ìž‘ë©ë‹ˆë‹¤. -다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ê³ í•´ì„œ 설치하세요.'; +다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ì¡°í•´ì„œ 설치하세요.'; $lang['i_funcna'] = '<code>%s</code> PHP 함수를 ì‚¬ìš©í• ìˆ˜ 없습니다. 호스트 ì œê³µìžê°€ ì–´ë–¤ ì´ìœ ì—ì„œì¸ì§€ 막아 놓았ì„지 모릅니다.'; $lang['i_phpver'] = 'PHP <code>%s</code> ë²„ì „ì€ í•„ìš”í•œ <code>%s</code> ë²„ì „ë³´ë‹¤ 오래ë˜ì—ˆìŠµë‹ˆë‹¤. PHP를 ì—…ê·¸ë ˆì´ë“œí• 필요가 있습니다.'; $lang['i_mbfuncoverload'] = 'ë„ì¿ ìœ„í‚¤ë¥¼ ì‹¤í–‰í•˜ë ¤ë©´ mbstring.func_overload를 php.iniì—ì„œ 비활성화해야 합니다.'; @@ -341,6 +341,7 @@ $lang['media_perm_read'] = '죄송하지만 파ì¼ì„ ì½ì„ ê¶Œí•œì´ ì—† $lang['media_perm_upload'] = '죄송하지만 파ì¼ì„ 올릴 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['media_update'] = '새 íŒ ì˜¬ë¦¬ê¸°'; $lang['media_restore'] = 'ì´ íŒìœ¼ë¡œ ë˜ëŒë¦¬ê¸°'; +$lang['media_acl_warning'] = 'ì´ ëª©ë¡ì€ ACLë¡œ ì œí•œë˜ì–´ ìžˆê³ ìˆ¨ê²¨ì§„ 문서ì´ê¸° ë•Œë¬¸ì— ì™„ì „í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다.'; $lang['currentns'] = '현재 ì´ë¦„공간'; $lang['searchresult'] = '검색 ê²°ê³¼'; $lang['plainhtml'] = 'ì¼ë°˜ HTML'; diff --git a/lib/plugins/authad/lang/ko/lang.php b/lib/plugins/authad/lang/ko/lang.php index c119fabc5..7e9b22f40 100644 --- a/lib/plugins/authad/lang/ko/lang.php +++ b/lib/plugins/authad/lang/ko/lang.php @@ -7,3 +7,5 @@ */ $lang['domain'] = '로그온 ë„ë©”ì¸'; $lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 곧 바꿔야 합니다.'; +$lang['passchangefail'] = '비밀번호를 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 비밀번호 ì •ì±…ì„ ë”°ë¥´ì§€ 않았나요?'; +$lang['connectfail'] = 'Active Directory ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; diff --git a/lib/plugins/authldap/lang/ko/lang.php b/lib/plugins/authldap/lang/ko/lang.php new file mode 100644 index 000000000..3c6722a81 --- /dev/null +++ b/lib/plugins/authldap/lang/ko/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['connectfail'] = 'LDAPê°€ ì—°ê²°í• ìˆ˜ 없습니다: %s'; +$lang['domainfail'] = 'LDAPê°€ ì‚¬ìš©ìž DNì„ ì°¾ì„ ìˆ˜ 없습니다'; diff --git a/lib/plugins/authmysql/lang/ko/lang.php b/lib/plugins/authmysql/lang/ko/lang.php index a2ad278c1..d07d58388 100644 --- a/lib/plugins/authmysql/lang/ko/lang.php +++ b/lib/plugins/authmysql/lang/ko/lang.php @@ -4,8 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author hyeonsoft <hyeonsoft@live.co.kr> + * @author Myeongjin <aranet100@gmail.com> */ $lang['connectfail'] = 'ë°ì´í„°ë² ì´ìŠ¤ì— 연결하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; -$lang['userexists'] = 'ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ ë¡œê·¸ì¸ ëœ ì‚¬ìš©ìžê°€ 있습니다.'; -$lang['usernotexists'] = 'ì´ ê³„ì •ì€ ì¡´ìž¬í•˜ì§€ 않습니다.'; -$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 관리ìžì—게 문ì˜í•˜ì‹ì‹œì˜¤.'; +$lang['userexists'] = '죄송하지만 ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ 로그ì¸í•œ 사용ìžê°€ 있습니다.'; +$lang['usernotexists'] = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.'; +$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤'; diff --git a/lib/plugins/extension/lang/ko/lang.php b/lib/plugins/extension/lang/ko/lang.php index 3de28c0c8..31b230b53 100644 --- a/lib/plugins/extension/lang/ko/lang.php +++ b/lib/plugins/extension/lang/ko/lang.php @@ -28,8 +28,9 @@ $lang['btn_install'] = '설치'; $lang['btn_reinstall'] = '다시 설치'; $lang['js']['reallydel'] = 'ì •ë§ ì´ í™•ìž¥ ê¸°ëŠ¥ì„ ì œê±°í•˜ê² ìŠµë‹ˆê¹Œ?'; $lang['js']['display_viewoptions'] = '보기 옵션:'; -$lang['js']['display_enabled'] = '켜ì§'; -$lang['js']['display_disabled'] = '꺼ì§'; +$lang['js']['display_enabled'] = '활성화ë¨'; +$lang['js']['display_disabled'] = '비활성화ë¨'; +$lang['js']['display_updatable'] = 'ì—…ë°ì´íŠ¸í• 수 있ìŒ'; $lang['search_for'] = '확장 기능 검색:'; $lang['search'] = '검색'; $lang['extensionby'] = '<strong>%s</strong> (ì €ìž %s)'; diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt index bc9bb9dd0..edc0f8733 100644 --- a/lib/plugins/popularity/lang/ko/intro.txt +++ b/lib/plugins/popularity/lang/ko/intro.txt @@ -1,6 +1,6 @@ ====== ì¸ê¸°ë„ 조사 ====== -ì„¤ì¹˜ëœ ìœ„í‚¤ì˜ ìµëª… ì •ë³´ë¥¼ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 보냅니다. ì´ [[doku>ko:popularity|ë„구]]는 ë„ì¿ ìœ„í‚¤ê°€ ì‹¤ì œ 사용ìžì—게 어떻게 사용ë˜ëŠ”지 ë„ì¿ ìœ„í‚¤ 개발ìžì—게 ì•Œë ¤ì¤Œìœ¼ë¡œì¨ ì´ í›„ 개발 ì‹œ ì°¸ê³ ê°€ ë©ë‹ˆë‹¤. +ì„¤ì¹˜ëœ ìœ„í‚¤ì˜ ìµëª… ì •ë³´ë¥¼ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 보냅니다. ì´ [[doku>ko:popularity|ë„구]]는 ë„ì¿ ìœ„í‚¤ê°€ ì‹¤ì œ 사용ìžì—게 어떻게 사용ë˜ëŠ”지 ë„ì¿ ìœ„í‚¤ 개발ìžì—게 ì•Œë ¤ì¤Œìœ¼ë¡œì¨ ì´ í›„ 개발 ì‹œ 참조가 ë©ë‹ˆë‹¤. ì„¤ì¹˜ëœ ìœ„í‚¤ê°€ 커ì§ì— ë”°ë¼ì„œ ì´ ê³¼ì •ì„ ë°˜ë³µí• í•„ìš”ê°€ 있습니다. ë°˜ë³µëœ ë°ì´í„°ëŠ” ìµëª… IDë¡œ 구별ë˜ì–´ì§‘니다. -- GitLab From d2293a6b3bad9d6d5b80632c327eda8d1390366e Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sat, 11 Jul 2015 18:25:55 +0900 Subject: [PATCH 230/440] adjust newline --- lib/plugins/config/lang/ar/intro.txt | 2 +- lib/plugins/config/lang/ca-valencia/intro.txt | 2 +- lib/plugins/config/lang/cs/intro.txt | 1 - lib/plugins/config/lang/da/intro.txt | 1 - lib/plugins/config/lang/de-informal/intro.txt | 2 +- lib/plugins/config/lang/de/intro.txt | 3 --- lib/plugins/config/lang/en/intro.txt | 2 -- lib/plugins/config/lang/fa/intro.txt | 2 +- lib/plugins/config/lang/fi/intro.txt | 2 +- lib/plugins/config/lang/fr/intro.txt | 2 -- lib/plugins/config/lang/he/intro.txt | 2 -- lib/plugins/config/lang/ia/intro.txt | 2 +- lib/plugins/config/lang/it/intro.txt | 2 -- lib/plugins/config/lang/ja/intro.txt | 2 -- lib/plugins/config/lang/ko/intro.txt | 1 - lib/plugins/config/lang/la/intro.txt | 2 +- lib/plugins/config/lang/mr/intro.txt | 2 +- lib/plugins/config/lang/nl/intro.txt | 2 -- lib/plugins/config/lang/pl/intro.txt | 2 -- lib/plugins/config/lang/pt-br/intro.txt | 2 +- lib/plugins/config/lang/pt/intro.txt | 2 +- lib/plugins/config/lang/ru/intro.txt | 2 -- lib/plugins/config/lang/sk/intro.txt | 2 +- lib/plugins/config/lang/sq/intro.txt | 2 +- lib/plugins/config/lang/sv/intro.txt | 2 -- lib/plugins/config/lang/tr/intro.txt | 2 +- lib/plugins/config/lang/zh-tw/intro.txt | 2 +- lib/plugins/config/lang/zh/intro.txt | 2 -- 28 files changed, 14 insertions(+), 40 deletions(-) diff --git a/lib/plugins/config/lang/ar/intro.txt b/lib/plugins/config/lang/ar/intro.txt index d447ec315..15905189f 100644 --- a/lib/plugins/config/lang/ar/intro.txt +++ b/lib/plugins/config/lang/ar/intro.txt @@ -4,4 +4,4 @@ الاعدادات الظاهرة بخلÙية Øمراء ÙاتØØ© اعدادات Ù…Øمية ولا يمكن تغييرها بهذه الاضاÙØ©. الاعدادات الظاهرة بخلÙية زرقاء هي القيم الاÙتراضية والاعدادات الظاهرة بخلÙية بيضاء خصصت لهذا التثبيت Ù…Øليا. الاعدادات الزرقاء والبيضاء يمكن تغييرها. -تأكد من ضغط زر **SAVE** قبل ترك الصÙØØ© وإلا ستضيع تعديلاتك. \ No newline at end of file +تأكد من ضغط زر **SAVE** قبل ترك الصÙØØ© وإلا ستضيع تعديلاتك. diff --git a/lib/plugins/config/lang/ca-valencia/intro.txt b/lib/plugins/config/lang/ca-valencia/intro.txt index 40729e5fe..6dd461db3 100644 --- a/lib/plugins/config/lang/ca-valencia/intro.txt +++ b/lib/plugins/config/lang/ca-valencia/intro.txt @@ -7,4 +7,4 @@ Per a més informació al voltant d'este plúgin vaja a [[doku>config]]. Els ajusts mostrats en un fondo roig claret estan protegits i no els pot modificar en este plúgin. Els ajusts mostrats en un fondo blau tenen els valors predeterminats i els ajusts mostrats en un fondo blanc han segut modificats localment per ad esta instalació. Abdós ajusts, blaus i blancs, es poden modificar. -Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pà gina o perdrà els canvis que haja fet. \ No newline at end of file +Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pà gina o perdrà els canvis que haja fet. diff --git a/lib/plugins/config/lang/cs/intro.txt b/lib/plugins/config/lang/cs/intro.txt index 63381b84e..f98a62a6e 100644 --- a/lib/plugins/config/lang/cs/intro.txt +++ b/lib/plugins/config/lang/cs/intro.txt @@ -5,4 +5,3 @@ Tuto stránku můžete použÃvat ke správÄ› nastavenà vaÅ¡Ã instalace DokuWi Položky se svÄ›tle Äerveným pozadÃm jsou chránÄ›né a nelze je upravovat tÃmto pluginem. Položky s modrým pozadÃm jsou výchozà hodnoty a položky s bÃlým pozadÃm byly nastaveny lokálnÄ› v této konkrétnà instalaci. Modré i bÃlé položky je možné upravovat. Než opustÃte tuto stránku, nezapomeňte stisknout tlaÄÃtko **Uložit**, jinak budou zmÄ›ny ztraceny. - diff --git a/lib/plugins/config/lang/da/intro.txt b/lib/plugins/config/lang/da/intro.txt index f20961b98..14cd3d601 100644 --- a/lib/plugins/config/lang/da/intro.txt +++ b/lib/plugins/config/lang/da/intro.txt @@ -5,4 +5,3 @@ Brug denne side til at kontrollere indstillingerne for din Dokuwiki-opsætning. Indstillinger vist med lys rød baggrund er beskyttede og kan ikke ændres med denne udvidelse. Indstillinger vist med blÃ¥ baggrund er standardindstillinger og indstillinger vist med hvid baggrund er blevet sat lokalt denne konkrete opsætning. BÃ¥de blÃ¥ og hvide indstillinger kan ændres. Husk at trykke pÃ¥ **Gem**-knappen før du forlader siden, for at du ikke mister dine ændringer. - diff --git a/lib/plugins/config/lang/de-informal/intro.txt b/lib/plugins/config/lang/de-informal/intro.txt index df9845ebc..ce4625cff 100644 --- a/lib/plugins/config/lang/de-informal/intro.txt +++ b/lib/plugins/config/lang/de-informal/intro.txt @@ -4,4 +4,4 @@ Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation Einstellungen die mit einem hellroten Hintergrund angezeigt werden, können mit dieser Erweiterung nicht verändert werden. Einstellungen mit einem blauen Hintergrund sind Standardwerte und Einstellungen mit einem weißen Hintergrund wurden lokal gesetzt für diese Installation. Sowohl blaue als auch weiße Einstellungen können angepasst werden. -Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen. \ No newline at end of file +Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen. diff --git a/lib/plugins/config/lang/de/intro.txt b/lib/plugins/config/lang/de/intro.txt index b79b5f871..e743379ff 100644 --- a/lib/plugins/config/lang/de/intro.txt +++ b/lib/plugins/config/lang/de/intro.txt @@ -5,6 +5,3 @@ Dieses Plugin hilft Ihnen bei der Konfiguration von DokuWiki. Hilfe zu den einze Einstellungen mit einem hellroten Hintergrund sind gesichert und können nicht mit diesem Plugin verändert werden, Einstellungen mit hellblauem Hintergrund sind Voreinstellungen, weiß hinterlegte Felder zeigen lokal veränderte Werte an. Sowohl die blauen als auch die weißen Felder können verändert werden. Bitte vergessen Sie nicht **Speichern** zu drücken bevor Sie die Seite verlassen, andernfalls gehen Ihre Änderungen verloren. - - - diff --git a/lib/plugins/config/lang/en/intro.txt b/lib/plugins/config/lang/en/intro.txt index 7cf46cee3..01089871c 100644 --- a/lib/plugins/config/lang/en/intro.txt +++ b/lib/plugins/config/lang/en/intro.txt @@ -5,5 +5,3 @@ Use this page to control the settings of your DokuWiki installation. For help o Settings shown with a light red background are protected and can not be altered with this plugin. Settings shown with a blue background are the default values and settings shown with a white background have been set locally for this particular installation. Both blue and white settings can be altered. Remember to press the **Save** button before leaving this page otherwise your changes will be lost. - - diff --git a/lib/plugins/config/lang/fa/intro.txt b/lib/plugins/config/lang/fa/intro.txt index f5b6ba235..31bbaea98 100644 --- a/lib/plugins/config/lang/fa/intro.txt +++ b/lib/plugins/config/lang/fa/intro.txt @@ -5,4 +5,4 @@ تنظیماتی Ú©Ù‡ با پیش‌زمینه‌ی قرمز مشخص شده‌اند، غیرقابل تغییر می‌باشند. تنظیماتی Ú©Ù‡ به پیش‌زمینه‌ی آبی مشخص شده‌اند نیز Øامل مقادیر پیش‌Ùرض می‌باشند Ùˆ تنظیماتی Ú©Ù‡ پیش‌زمینه‌ی سÙید دارند به طور Ù…ØÙ„ÛŒ برای این سیستم تنظیم شده‌اند. تمامی مقادیر آبی Ùˆ سÙید قابلیت تغییر دارند. -به یاد داشته باشید Ú©Ù‡ قبل از ترک صÙØه، دکمه‌ی **ذخیره** را بÙشارید، در غیر این صورت تنظیمات شما از بین خواهد رÙت. \ No newline at end of file +به یاد داشته باشید Ú©Ù‡ قبل از ترک صÙØه، دکمه‌ی **ذخیره** را بÙشارید، در غیر این صورت تنظیمات شما از بین خواهد رÙت. diff --git a/lib/plugins/config/lang/fi/intro.txt b/lib/plugins/config/lang/fi/intro.txt index f6eedb50c..2765a18af 100644 --- a/lib/plugins/config/lang/fi/intro.txt +++ b/lib/plugins/config/lang/fi/intro.txt @@ -4,4 +4,4 @@ Käytä tätä sivua hallitaksesi DokuWikisi asetuksia. Apua yksittäisiin asetu Asetukset, jotka näkyvät vaaleanpunaisella taustalla ovat suojattuja, eikä niitä voi muutta tämän liitännäisen avulla. Asetukset, jotka näkyvät sinisellä taustalla ovat oletusasetuksia. Asetukset valkoisella taustalla ovat asetettu paikallisesti tätä asennusta varten. Sekä sinisiä että valkoisia asetuksia voi muokata. -Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät. \ No newline at end of file +Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät. diff --git a/lib/plugins/config/lang/fr/intro.txt b/lib/plugins/config/lang/fr/intro.txt index 3d71f6184..afc5805d8 100644 --- a/lib/plugins/config/lang/fr/intro.txt +++ b/lib/plugins/config/lang/fr/intro.txt @@ -5,5 +5,3 @@ Utilisez cette page pour contrôler les paramètres de votre installation de Dok Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec cette extension. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs spécifiquement définies pour votre installation sont affichées sur un fond blanc. Seuls les paramètres sur fond bleu ou blanc peuvent être modifiés. N'oubliez pas d'utiliser le bouton **ENREGISTRER** avant de quitter cette page, sinon vos modifications ne seront pas prises en compte ! - - diff --git a/lib/plugins/config/lang/he/intro.txt b/lib/plugins/config/lang/he/intro.txt index 010c69018..d61a93861 100644 --- a/lib/plugins/config/lang/he/intro.txt +++ b/lib/plugins/config/lang/he/intro.txt @@ -5,5 +5,3 @@ הגדרות ×¢× ×¨×§×¢ ×דו×-בהיר ×ž×•×’× ×•×ª ו×ין ×פשרות ×œ×©× ×•×ª×Ÿ ×¢× ×ª×•×¡×£ ×–×”. הגדרות ×¢× ×¨×§×¢ כחול הן בעלות ערך ברירת המחדל והגדרות ×¢× ×¨×§×¢ לבן הוגדרו ב×ופן מקומי עבור ×”×ª×§× ×” זו. ההגדרות בעלות ×”×¨×§×¢×™× ×”×›×—×•×œ והלבן הן ברות ×©×™× ×•×™. יש לזכור ללחוץ על כפתור ×”**שמירה** ×˜×¨× ×¢×–×™×‘×ª דף ×–×” פן ×™×בדו ×”×©×™× ×•×™×™×. - - diff --git a/lib/plugins/config/lang/ia/intro.txt b/lib/plugins/config/lang/ia/intro.txt index 37b970c4f..eb2e10591 100644 --- a/lib/plugins/config/lang/ia/intro.txt +++ b/lib/plugins/config/lang/ia/intro.txt @@ -4,4 +4,4 @@ Usa iste pagina pro controlar le configurationes de tu installation de DokuWiki. Le configurationes monstrate super un fundo rubie clar es protegite e non pote esser alterate con iste plug-in. Le configurationes monstrate super un fundo blau es le valores predefinite e le configurationes monstrate super un fundo blanc ha essite definite localmente pro iste particular installation. Le configurationes blau e blanc pote esser alterate. -Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite. \ No newline at end of file +Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite. diff --git a/lib/plugins/config/lang/it/intro.txt b/lib/plugins/config/lang/it/intro.txt index 617e8c7b5..02984baa7 100644 --- a/lib/plugins/config/lang/it/intro.txt +++ b/lib/plugins/config/lang/it/intro.txt @@ -5,5 +5,3 @@ Usa questa pagina per gestire la configurazione della tua installazione DokuWiki Le impostazioni con lo sfondo rosso chiaro sono protette e non possono essere modificate con questo plugin. Le impostazioni con lo sfondo blu contengono i valori predefiniti, e le impostazioni con lo sfondo bianco sono relative solo a questa particolare installazione. Sia le impostazioni su sfondo blu che quelle su sfondo bianco possono essere modificate. Ricordati di premere il pulsante **SALVA** prima di lasciare questa pagina altrimenti le modifiche andranno perse. - - diff --git a/lib/plugins/config/lang/ja/intro.txt b/lib/plugins/config/lang/ja/intro.txt index 0c45471c6..6a1f956cb 100644 --- a/lib/plugins/config/lang/ja/intro.txt +++ b/lib/plugins/config/lang/ja/intro.txt @@ -5,5 +5,3 @@ 背景ãŒè–„ã„赤ã«ãªã£ã¦ã„ã‚‹å ´åˆã€ãã®è¨å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。 背景ãŒé’ã®å€¤ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã€èƒŒæ™¯ãŒç™½ã®å€¤ã¯ç¾åœ¨ã®è¨å®šã¨ãªã£ã¦ãŠã‚Šã€ ã©ã¡ã‚‰ã®å€¤ã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚ è¨å®šã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。 ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚ - - diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt index 979bbcb14..42240e3d7 100644 --- a/lib/plugins/config/lang/ko/intro.txt +++ b/lib/plugins/config/lang/ko/intro.txt @@ -5,4 +5,3 @@ ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ì—ì„œ 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ìˆ˜í•œ 설치를 위해 로컬로 ì„¤ì •ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다. ì´ íŽ˜ì´ì§€ë¥¼ ë– ë‚˜ê¸° ì „ì— **ì €ìž¥** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”. - diff --git a/lib/plugins/config/lang/la/intro.txt b/lib/plugins/config/lang/la/intro.txt index 573d34ac1..51d8c3d71 100644 --- a/lib/plugins/config/lang/la/intro.txt +++ b/lib/plugins/config/lang/la/intro.txt @@ -4,4 +4,4 @@ In hac pagina administratoris optiones mutare et inspicere potes. Auxilia in pag Optiones ostensae rubro colore tutae et non nunc mutabiles sunt. Optiones ostensae caeruleo colore praecipuae sunt et optiones ostensae in area alba singulares huic uici sunt. Et caerulae et albae optiones mutabiles sunt. -Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt. \ No newline at end of file +Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt. diff --git a/lib/plugins/config/lang/mr/intro.txt b/lib/plugins/config/lang/mr/intro.txt index 12ada73a1..e068295e5 100644 --- a/lib/plugins/config/lang/mr/intro.txt +++ b/lib/plugins/config/lang/mr/intro.txt @@ -7,4 +7,4 @@ निळà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤à¥‚मीमधे दाखवलेले सेटिंग आपोआप सेट होणारà¥à¤¯à¤¾ किमती आहेत आणि पांढरà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤à¥‚मीमधे दाखवलेले सेटिंग या इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨à¤¸à¤¾à¤ ी ख़ास सेट केलेले आहेत. निळे आणि पांढरे दोनà¥à¤¹à¥€ सेटिंग बदलता येतील. -हà¥à¤¯à¤¾ पानावरून बाहर जाणà¥à¤¯à¤¾à¤†à¤§à¥€ "Save" चे बटन कà¥à¤²à¤¿à¤• करायला विसरू नका नाहीतर सरà¥à¤µ बदल नाहीसे होतील. \ No newline at end of file +हà¥à¤¯à¤¾ पानावरून बाहर जाणà¥à¤¯à¤¾à¤†à¤§à¥€ "Save" चे बटन कà¥à¤²à¤¿à¤• करायला विसरू नका नाहीतर सरà¥à¤µ बदल नाहीसे होतील. diff --git a/lib/plugins/config/lang/nl/intro.txt b/lib/plugins/config/lang/nl/intro.txt index 3814b70bd..4d72b695d 100644 --- a/lib/plugins/config/lang/nl/intro.txt +++ b/lib/plugins/config/lang/nl/intro.txt @@ -5,5 +5,3 @@ Gebruik deze pagina om de instellingen van je DokuWiki te bekijken en/of te wijz Instellingen met een rode achtergond kunnen niet worden gewijzigd met deze plugin. Instellingen met een blauwe achtergrond hebben de default waarde, en instellingen met een witte achtergrond zijn lokaal gewijzigd voor deze specifieke installatie. Zowel blauwe als witte instellingen kunnen worden gewijzigd. Vergeet niet op **Opslaan** te drukken alvorens de pagina te verlaten, anders gaan je wijzigingen verloren. - - diff --git a/lib/plugins/config/lang/pl/intro.txt b/lib/plugins/config/lang/pl/intro.txt index 72c0e1c13..9d85c7a7c 100644 --- a/lib/plugins/config/lang/pl/intro.txt +++ b/lib/plugins/config/lang/pl/intro.txt @@ -5,5 +5,3 @@ Na tej stronie można zmienić ustawienia tej instalacji DokuWiki. W celu uzyska Ustawienia w kolorze jasnoczerwonym sÄ… chronione i nie mogÄ… być zmienionÄ… z użyciem tej wtyczki. Ustawienia w kolorze niebieskim majÄ… domyÅ›lne wartoÅ›ci. Ustawienia w kolorze biaÅ‚ym sÄ… specyficzne dla tej instalacji. Ustawienia w kolorach niebieskim i biaÅ‚ym mogÄ… być zmienione. W celu zapisania nowej konfiguracji naciÅ›nij **zapisz** przed opuszczeniem tej strony. - - diff --git a/lib/plugins/config/lang/pt-br/intro.txt b/lib/plugins/config/lang/pt-br/intro.txt index 850ba25cb..db31de4cf 100644 --- a/lib/plugins/config/lang/pt-br/intro.txt +++ b/lib/plugins/config/lang/pt-br/intro.txt @@ -4,4 +4,4 @@ Use essa página para controlar as configurações da instalação do seu DokuWi Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com esse plug-in. As definições com um fundo azul são o padrão e as com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul quanto as em branco podem ser alteradas. -Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas. \ No newline at end of file +Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas. diff --git a/lib/plugins/config/lang/pt/intro.txt b/lib/plugins/config/lang/pt/intro.txt index 2010dadaf..06a68c475 100644 --- a/lib/plugins/config/lang/pt/intro.txt +++ b/lib/plugins/config/lang/pt/intro.txt @@ -4,4 +4,4 @@ Use esta página para controlar as definições da instalação do seu DokuWiki. Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com este plugin. Definições com um fundo azul são padrão e definições com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul como em branco podem ser alteradas. -Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas. \ No newline at end of file +Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas. diff --git a/lib/plugins/config/lang/ru/intro.txt b/lib/plugins/config/lang/ru/intro.txt index a629d9332..f30d4c791 100644 --- a/lib/plugins/config/lang/ru/intro.txt +++ b/lib/plugins/config/lang/ru/intro.txt @@ -5,5 +5,3 @@ ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина. Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «ДокуВики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. Ðе забудьте нажать кнопку «**Сохранить**» перед тем, как покинуть Ñту Ñтраницу, иначе вÑе ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. - - diff --git a/lib/plugins/config/lang/sk/intro.txt b/lib/plugins/config/lang/sk/intro.txt index 5de62a315..a3d15bf93 100644 --- a/lib/plugins/config/lang/sk/intro.txt +++ b/lib/plugins/config/lang/sk/intro.txt @@ -4,4 +4,4 @@ Túto stránku môžete použÃvaÅ¥ na zmenu nastavenà VaÅ¡ej DokuWiki inÅ¡tal Nastavenia zobrazené na Äervenom pozadà sú neprÃstupné a nemôžu byÅ¥ týmto pluginom zmenené. Nastavenia s modrým pozadÃm obsahujú prednastavené hodnoty a nastavenia s bielym pozadÃm boli nastavené lokálne pre túto konkrétnu inÅ¡taláciu. Nastavenia s modrým a bielym pozadÃm môžu byÅ¥ zmenené. -Nezabudnite stlaÄiÅ¥ tlaÄidlo **UložiÅ¥** pred opustenÃm stránky, inak budú vaÅ¡e zmeny stratené. \ No newline at end of file +Nezabudnite stlaÄiÅ¥ tlaÄidlo **UložiÅ¥** pred opustenÃm stránky, inak budú vaÅ¡e zmeny stratené. diff --git a/lib/plugins/config/lang/sq/intro.txt b/lib/plugins/config/lang/sq/intro.txt index 687b497c9..d2bab0fd5 100644 --- a/lib/plugins/config/lang/sq/intro.txt +++ b/lib/plugins/config/lang/sq/intro.txt @@ -4,4 +4,4 @@ Përdoreni këtë faqe për të kontrolluar kuadrot e instalimit të DokuWiki-t Kuadrot e treguara me një backgroudn me një ngjyrë të kuqe të lehtë janë të mbrojtura dhe nuk mund të ndryshohen me këtë plugin. Kuadrot e treguara me një background blu janë vlerat default dhe kuadrot e treguara me një background të bardhë janë vendosur lokalisht për këtë instalim të caktuar. Si kuadrot blu, ashtu edhe ato të bardhë mund të ndryshohen. -Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin. \ No newline at end of file +Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin. diff --git a/lib/plugins/config/lang/sv/intro.txt b/lib/plugins/config/lang/sv/intro.txt index 8887d4a7b..fd77634c2 100644 --- a/lib/plugins/config/lang/sv/intro.txt +++ b/lib/plugins/config/lang/sv/intro.txt @@ -5,5 +5,3 @@ Använd den här sidan för att göra inställningar i din Dokuwiki. För hjälp Inställningar med en rosa bakgrund är skyddade och kan inte ändras med den här insticksmodulen. Inställningar med en blÃ¥ bakgrund är standardvärden, och inställningar som visas med en vit bakgrund har ändrats i den här installationen. BÃ¥de blÃ¥a och vita inställningar kan ändras. Kom i hÃ¥g att trycka pÃ¥ knappen **Spara** innan du lämnar den här sidan, annars kommer ändringarna att gÃ¥ förlorade. - - diff --git a/lib/plugins/config/lang/tr/intro.txt b/lib/plugins/config/lang/tr/intro.txt index 4a9654222..2602fb3ed 100644 --- a/lib/plugins/config/lang/tr/intro.txt +++ b/lib/plugins/config/lang/tr/intro.txt @@ -4,4 +4,4 @@ Bu sayfayı DokuWiki kurulumunun ayarlarını deÄŸiÅŸtirmek için kullanabilirsi Açık kırmızı renkle gösterilenler bu eklenti ile deÄŸiÅŸtirilemez. Mavi ile gösterilenler varsayılan deÄŸerlerdir. Beyaz altyazı ile gösterilenler is bu kuruluma özel deÄŸiÅŸtirilmiÅŸ ayarlardır. Mavi ve beyaz ayarlar deÄŸiÅŸtirilebilir. -DeÄŸiÅŸiklik yapmanız durumunda **Kaydet** tuÅŸuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir. \ No newline at end of file +DeÄŸiÅŸiklik yapmanız durumunda **Kaydet** tuÅŸuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir. diff --git a/lib/plugins/config/lang/zh-tw/intro.txt b/lib/plugins/config/lang/zh-tw/intro.txt index 228c12e0a..e131ec342 100644 --- a/lib/plugins/config/lang/zh-tw/intro.txt +++ b/lib/plugins/config/lang/zh-tw/intro.txt @@ -4,4 +4,4 @@ æ·¡ç´…è‰²èƒŒæ™¯çš„é …ç›®æ˜¯å—到ä¿è·çš„,ä¸èƒ½é€šéŽé€™ç®¡ç†å™¨æ›´æ”¹ã€‚è—è‰²èƒŒæ™¯çš„é …ç›®æ˜¯ç³»çµ±çš„é è¨å€¼ï¼Œç™½è‰²èƒŒæ™¯çš„é …ç›®æ˜¯æ‚¨æ›´æ”¹éŽçš„。è—色和白色的è¨å®šé …目都å¯ä»¥æ›´æ”¹ã€‚ -離開本é 之å‰ï¼Œä¸è¦å¿˜è¨˜é»žæ“Šæœ€ä¸‹é¢çš„ **儲å˜** 按鈕,å¦å‰‡æ‚¨çš„修改ä¸æœƒç”Ÿæ•ˆã€‚ \ No newline at end of file +離開本é 之å‰ï¼Œä¸è¦å¿˜è¨˜é»žæ“Šæœ€ä¸‹é¢çš„ **儲å˜** 按鈕,å¦å‰‡æ‚¨çš„修改ä¸æœƒç”Ÿæ•ˆã€‚ diff --git a/lib/plugins/config/lang/zh/intro.txt b/lib/plugins/config/lang/zh/intro.txt index a7db4eda0..30cb65004 100644 --- a/lib/plugins/config/lang/zh/intro.txt +++ b/lib/plugins/config/lang/zh/intro.txt @@ -5,5 +5,3 @@ 淡红色背景的项目被ä¿æŠ¤ï¼Œä¸èƒ½é€šè¿‡è¿™ä¸ªç®¡ç†å™¨æ›´æ”¹ã€‚ è“色背景的项目是系统的默认值,白色背景的项目是您作出更改的项目。è“色和白色的设置项目都å¯ä»¥æ›´æ”¹ã€‚ 离开本页之å‰ä¸è¦å¿˜è®°ç‚¹å‡»æœ€åŽçš„ **ä¿å˜** 按钮,å¦åˆ™æ‚¨åšçš„修改ä¸ä¼šç”Ÿæ•ˆã€‚ - - -- GitLab From 771519d083ca31621d631a8d8393ad776341cd58 Mon Sep 17 00:00:00 2001 From: Mauricio Segura <maose38@yahoo.es> Date: Sun, 12 Jul 2015 12:01:00 +0200 Subject: [PATCH 231/440] translation update --- inc/lang/es/lang.php | 4 ++++ lib/plugins/authad/lang/es/lang.php | 3 +++ lib/plugins/authldap/lang/es/lang.php | 8 ++++++++ lib/plugins/extension/lang/es/lang.php | 5 +++++ 4 files changed, 20 insertions(+) create mode 100644 lib/plugins/authldap/lang/es/lang.php diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index e10a29a0f..65978f558 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -39,6 +39,7 @@ * @author pokesakura <pokesakura@gmail.com> * @author Ãlvaro Iradier <airadier@gmail.com> * @author Alejandro Nunez <nunez.alejandro@gmail.com> + * @author Mauricio Segura <maose38@yahoo.es> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -104,6 +105,7 @@ $lang['regmissing'] = 'Lo siento, tienes que completar todos los camp $lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.'; $lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.'; $lang['regsuccess2'] = 'El usuario ha sido creado.'; +$lang['regfail'] = 'No se pudo crear el usuario.'; $lang['regmailfail'] = 'Parece que ha habido un error al enviar el correo con la contraseña. ¡Por favor, contacta al administrador!'; $lang['regbadmail'] = 'La dirección de correo no parece válida. Si piensas que esto es un error, contacta al administrador'; $lang['regbadpass'] = 'Las dos contraseñas no son iguales, por favor inténtalo de nuevo.'; @@ -118,6 +120,7 @@ $lang['profdeleteuser'] = 'Eliminar Cuenta'; $lang['profdeleted'] = 'Tu cuenta de usuario ha sido eliminada de este wiki'; $lang['profconfdelete'] = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.'; $lang['profconfdeletemissing'] = 'Casilla de verificación no activada.'; +$lang['proffail'] = 'No se ha actualizado el perfil del usuario.'; $lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva'; $lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvÃo de contraseña.'; $lang['resendpwd'] = 'Establecer nueva contraseña para'; @@ -363,6 +366,7 @@ $lang['media_perm_read'] = 'Disculpa, no tienes los permisos necesarios pa $lang['media_perm_upload'] = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.'; $lang['media_update'] = 'Actualizar nueva versión'; $lang['media_restore'] = 'Restaurar esta versión'; +$lang['media_acl_warning'] = 'Puede que esta lista no esté completa debido a restricciones de la ACL y a las páginas ocultas.'; $lang['currentns'] = 'Espacio de nombres actual'; $lang['searchresult'] = 'Resultado de la búsqueda'; $lang['plainhtml'] = 'HTML sencillo'; diff --git a/lib/plugins/authad/lang/es/lang.php b/lib/plugins/authad/lang/es/lang.php index ffbff49a1..0ad262c21 100644 --- a/lib/plugins/authad/lang/es/lang.php +++ b/lib/plugins/authad/lang/es/lang.php @@ -5,6 +5,9 @@ * * @author Juan De La Cruz <juann.dlc@gmail.com> * @author Gerardo Zamudio <gerardo@gerardozamudio.net> + * @author Mauricio Segura <maose38@yahoo.es> */ $lang['domain'] = 'Dominio de inicio'; $lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; +$lang['passchangefail'] = 'Error al cambiar la contraseña. ¿Tal vez no se cumplió la directiva de contraseñas?'; +$lang['connectfail'] = 'Error al conectar con el servidor de Active Directory.'; diff --git a/lib/plugins/authldap/lang/es/lang.php b/lib/plugins/authldap/lang/es/lang.php new file mode 100644 index 000000000..e68a42603 --- /dev/null +++ b/lib/plugins/authldap/lang/es/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mauricio Segura <maose38@yahoo.es> + */ +$lang['connectfail'] = 'LDAP no se puede conectar: %5'; diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php index a835cb630..b99f3b294 100644 --- a/lib/plugins/extension/lang/es/lang.php +++ b/lib/plugins/extension/lang/es/lang.php @@ -7,6 +7,7 @@ * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> * @author Ãlvaro Iradier <airadier@gmail.com> + * @author Mauricio Segura <maose38@yahoo.es> */ $lang['menu'] = 'Administrador de Extensiones '; $lang['tab_plugins'] = 'Plugins instalados'; @@ -28,6 +29,10 @@ $lang['btn_disable'] = 'Desactivar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Reinstalar'; $lang['js']['reallydel'] = '¿Realmente quiere desinstalar esta extensión?'; +$lang['js']['display_viewoptions'] = 'Ver opciones:'; +$lang['js']['display_enabled'] = 'habilitado'; +$lang['js']['display_disabled'] = 'deshabilitado'; +$lang['js']['display_updatable'] = 'actualizable'; $lang['search_for'] = 'Extensión de búsqueda :'; $lang['search'] = 'Buscar'; $lang['extensionby'] = '<strong>%s</strong> por %s'; -- GitLab From ae614416a5d7f5cab6c5b82a0c45f587d7fa9c01 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 19:05:43 +0100 Subject: [PATCH 232/440] changed all input type=submit buttons to button type=submit button for better stylability --- _test/tests/inc/form_form.test.php | 4 ++-- inc/form.php | 6 ++++-- inc/html.php | 18 +++++++++++------- inc/template.php | 4 ++-- install.php | 6 +++--- lib/plugins/acl/admin.php | 10 +++++----- lib/plugins/acl/script.js | 2 +- lib/plugins/config/admin.php | 4 ++-- lib/plugins/extension/helper/list.php | 2 +- lib/plugins/extension/script.js | 4 ++-- lib/plugins/extension/style.less | 4 ++-- lib/plugins/popularity/admin.php | 2 +- lib/plugins/revert/admin.php | 8 ++++---- lib/plugins/usermanager/admin.php | 22 +++++++++++----------- lib/plugins/usermanager/style.css | 2 +- lib/scripts/behaviour.js | 6 +++--- lib/scripts/editor.js | 2 +- lib/scripts/fileuploaderextended.js | 4 ++-- lib/scripts/hotkeys.js | 6 +++--- lib/scripts/media.js | 4 ++-- lib/tpl/dokuwiki/css/_edit.css | 4 ++-- lib/tpl/dokuwiki/css/_forms.css | 3 +-- lib/tpl/dokuwiki/css/_media_fullscreen.css | 2 +- lib/tpl/dokuwiki/css/_media_popup.css | 2 +- lib/tpl/dokuwiki/css/_modal.css | 2 +- lib/tpl/dokuwiki/css/design.less | 8 ++++---- lib/tpl/dokuwiki/css/mobile.less | 4 ++-- 27 files changed, 75 insertions(+), 70 deletions(-) diff --git a/_test/tests/inc/form_form.test.php b/_test/tests/inc/form_form.test.php index 02242a807..7f168b895 100644 --- a/_test/tests/inc/form_form.test.php +++ b/_test/tests/inc/form_form.test.php @@ -30,9 +30,9 @@ class form_test extends DokuWikiTest { $realoutput .= '<input type="checkbox" id="check__id" name="r" value="1" /> '; $realoutput .= '<span>Check</span></label>'; $realoutput .= "\n"; - $realoutput .= '<input name="do[save]" type="submit" value="Save" class="button" accesskey="s" title="Save [S]" />'; + $realoutput .= '<button name="do[save]" type="submit" accesskey="s" title="Save [S]">Save</button>'; $realoutput .= "\n"; - $realoutput .= '<input name="do[cancel]" type="submit" value="Cancel" class="button" />'; + $realoutput .= '<button name="do[cancel]" type="submit">Cancel</button>'; $realoutput .= "\n"; $realoutput .= "</fieldset>\n</div></form>\n"; return $realoutput; diff --git a/inc/form.php b/inc/form.php index 748983281..91a171555 100644 --- a/inc/form.php +++ b/inc/form.php @@ -400,7 +400,7 @@ function form_makeWikiText($text, $attrs=array()) { function form_makeButton($type, $act, $value='', $attrs=array()) { if ($value == '') $value = $act; $elem = array('_elem'=>'button', 'type'=>$type, '_action'=>$act, - 'value'=>$value, 'class'=>'button'); + 'value'=>$value); if (!empty($attrs['accesskey']) && empty($attrs['title'])) { $attrs['title'] = $value . ' ['.strtoupper($attrs['accesskey']).']'; } @@ -761,7 +761,9 @@ function form_wikitext($attrs) { */ function form_button($attrs) { $p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : ''; - return '<input '.$p.buildAttributes($attrs,true).' />'; + $value = $attrs['value']; + unset($attrs['value']); + return '<button '.$p.buildAttributes($attrs,true).'>'.$value.'</button>'; } /** diff --git a/inc/html.php b/inc/html.php index 2f10e3c08..1ccc056de 100644 --- a/inc/html.php +++ b/inc/html.php @@ -183,7 +183,7 @@ function html_topbtn(){ * @param bool|string $label label text, false: lookup btn_$name in localization * @return string */ -function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false){ +function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false){ global $conf; global $lang; @@ -221,13 +221,15 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false $tip = htmlspecialchars($label); } - $ret .= '<input type="submit" value="'.hsc($label).'" class="button" '; + $ret .= '<button type="submit" '; if($akey){ $tip .= ' ['.strtoupper($akey).']'; $ret .= 'accesskey="'.$akey.'" '; } $ret .= 'title="'.$tip.'" '; $ret .= '/>'; + $ret .= hsc($label); + $ret .= '</button>'; $ret .= '</div></form>'; return $ret; @@ -856,26 +858,28 @@ function html_recent($first=0, $show_changes='both'){ $first -= $conf['recent']; if ($first < 0) $first = 0; $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev'))); - $form->addElement(form_makeTag('input', array( + $form->addElement(form_makeOpenTag('button', array( 'type' => 'submit', 'name' => 'first['.$first.']', - 'value' => $lang['btn_newer'], 'accesskey' => 'n', 'title' => $lang['btn_newer'].' [N]', 'class' => 'button show' ))); + $form->addElement($lang['btn_newer']); + $form->addElement(form_makeCloseTag('button')); $form->addElement(form_makeCloseTag('div')); } if ($hasNext) { $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next'))); - $form->addElement(form_makeTag('input', array( + $form->addElement(form_makeOpenTag('button', array( 'type' => 'submit', 'name' => 'first['.$last.']', - 'value' => $lang['btn_older'], 'accesskey' => 'p', 'title' => $lang['btn_older'].' [P]', 'class' => 'button show' ))); + $form->addElement($lang['btn_older']); + $form->addElement(form_makeCloseTag('button')); $form->addElement(form_makeCloseTag('div')); } $form->addElement(form_makeCloseTag('div')); @@ -1005,7 +1009,7 @@ function html_li_default($item){ * @param callable $func callback to print an list item * @param callable $lifunc callback to the opening li tag * @param bool $forcewrapper Trigger building a wrapper ul if the first level is - 0 (we have a root object) or 1 (just the root content) + * 0 (we have a root object) or 1 (just the root content) * @return string html of an unordered list */ function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){ diff --git a/inc/template.php b/inc/template.php index 95dc52deb..86f41d0ad 100644 --- a/inc/template.php +++ b/inc/template.php @@ -834,7 +834,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) { print 'placeholder="'.$lang['btn_search'].'" '; if(!$autocomplete) print 'autocomplete="off" '; print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />'; - print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />'; + print '<button type="submit" title="'.$lang['btn_search'].'">'.$lang['btn_search'].'</button>'; if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>'; print '</div></form>'; return true; @@ -1667,7 +1667,7 @@ function tpl_actiondropdown($empty = '', $button = '>') { echo '</optgroup>'; echo '</select>'; - echo '<input type="submit" value="'.$button.'" />'; + echo '<button type="submit">'.$button.'</button>'; echo '</div>'; echo '</form>'; } diff --git a/install.php b/install.php index 1a2d03dff..4de8093d6 100644 --- a/install.php +++ b/install.php @@ -243,7 +243,7 @@ function print_form($d){ </fieldset> <fieldset id="process"> - <input class="button" type="submit" name="submit" value="<?php echo $lang['btn_save']?>" /> + <button type="submit" name="submit"><?php echo $lang['btn_save']?></button> </fieldset> </form> <?php @@ -256,7 +256,7 @@ function print_retry() { <form action="" method="get"> <fieldset> <input type="hidden" name="l" value="<?php echo $LC ?>" /> - <input class="button" type="submit" value="<?php echo $lang['i_retry'];?>" /> + <button type="submit"><?php echo $lang['i_retry'];?></button> </fieldset> </form> <?php @@ -619,7 +619,7 @@ function langsel(){ echo '<option value="'.$l.'" '.$sel.'>'.$l.'</option>'; } echo '</select> '; - echo '<input type="submit" value="'.$lang['btn_update'].'" />'; + echo '<button type="submit">'.$lang['btn_update'].'</button>'; echo '</form>'; } diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 814bbfe9c..374205769 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -332,7 +332,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo $this->getLang('acl_perms').' '; $inl = $this->_html_select(); echo '<input type="text" name="acl_w" class="edit" value="'.(($inl)?'':hsc(ltrim($this->who,'@'))).'" />'.NL; - echo '<input type="submit" value="'.$this->getLang('btn_select').'" class="button" />'.NL; + echo '<button type="submit">'.$this->getLang('btn_select').'</button>'.NL; echo '</div>'.NL; echo '<div id="acl__info">'; @@ -391,10 +391,10 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo $this->_html_checkboxes($current,empty($this->ns),'acl'); if(is_null($current)){ - echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_save'].'" />'.NL; + echo '<button type="submit" name="cmd[save]">'.$lang['btn_save'].'</button>'.NL; }else{ - echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_update'].'" />'.NL; - echo '<input type="submit" name="cmd[del]" class="button" value="'.$lang['btn_delete'].'" />'.NL; + echo '<button type="submit" name="cmd[save]">'.$lang['btn_update'].'</button>'.NL; + echo '<button type="submit" name="cmd[del]">'.$lang['btn_delete'].'</button>'.NL; } echo '</fieldset>'; @@ -641,7 +641,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo '<tr>'; echo '<th class="action" colspan="4">'; - echo '<input type="submit" value="'.$lang['btn_update'].'" name="cmd[update]" class="button" />'; + echo '<button type="submit" name="cmd[update]">'.$lang['btn_update'].'</button>'; echo '</th>'; echo '</tr>'; echo '</table>'; diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 58598b1e0..86badffdd 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -16,7 +16,7 @@ var dw_acl = { } jQuery('#acl__user select').change(dw_acl.userselhandler); - jQuery('#acl__user input[type=submit]').click(dw_acl.loadinfo); + jQuery('#acl__user button').click(dw_acl.loadinfo); $tree = jQuery('#acl__tree'); $tree.dw_tree({toggle_selector: 'img', diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php index 2ef570b68..ec8ee0b84 100644 --- a/lib/plugins/config/admin.php +++ b/lib/plugins/config/admin.php @@ -212,8 +212,8 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { if (!$this->_config->locked) { ptln(' <input type="hidden" name="save" value="1" />'); - ptln(' <input type="submit" name="submit" class="button" value="'.$lang['btn_save'].'" accesskey="s" />'); - ptln(' <input type="reset" class="button" value="'.$lang['btn_reset'].'" />'); + ptln(' <button type="submit" name="submit" accesskey="s">'.$lang['btn_save'].'</button>'); + ptln(' <button type="reset">'.$lang['btn_reset'].'</button>'); } ptln('</p>'); diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 11aea1d0e..bf099d308 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -535,7 +535,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $classes = 'button '.$action; $name = 'fn['.$action.']['.hsc($extension->getID()).']'; - return '<input class="'.$classes.'" name="'.$name.'" type="submit" value="'.$this->getLang('btn_'.$action).'" '.$title.' />'; + return '<button class="'.$classes.'" name="'.$name.'" type="submit" '.$title.'>'.$this->getLang('btn_'.$action).'</button> '; } /** diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index c74c44ad1..0c43de6ae 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -5,7 +5,7 @@ jQuery(function(){ /** * Confirm uninstalling */ - $extmgr.find('input.uninstall').click(function(e){ + $extmgr.find('button.uninstall').click(function(e){ if(!window.confirm(LANG.plugins.extension.reallydel)){ e.preventDefault(); return false; @@ -46,7 +46,7 @@ jQuery(function(){ /** * Enable/Disable extension via AJAX */ - $extmgr.find('input.disable, input.enable').click(function (e) { + $extmgr.find('button.disable, button.enable').click(function (e) { e.preventDefault(); var $btn = jQuery(this); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index 86e540b0f..c400d649a 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -80,8 +80,8 @@ overflow: hidden; } - input.button { - margin: 0 .3em .3em 0; + button { + margin-bottom: .3em; } } diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php index a2c3c6c8b..0cf174e0d 100644 --- a/lib/plugins/popularity/admin.php +++ b/lib/plugins/popularity/admin.php @@ -144,7 +144,7 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin { .'<input type="hidden" name="do" value="admin" />' .'<input type="hidden" name="page" value="popularity" />'; } - $form .= '<input type="submit" class="button" value="'.$this->getLang('submit').'"/>' + $form .= '<button type="submit">'.$this->getLang('submit').'</button>' .'</fieldset>' .'</form>'; return $form; diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index b61615d00..1a0300585 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -64,9 +64,9 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { global $lang, $INPUT; echo '<form action="" method="post"><div class="no">'; echo '<label>'.$this->getLang('filter').': </label>'; - echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" />'; - echo ' <input type="submit" class="button" value="'.$lang['btn_search'].'" />'; - echo ' <span>'.$this->getLang('note1').'</span>'; + echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" /> '; + echo '<button type="submit">'.$lang['btn_search'].'</button> '; + echo '<span>'.$this->getLang('note1').'</span>'; echo '</div></form><br /><br />'; } @@ -173,7 +173,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { echo '</ul>'; echo '<p>'; - echo '<input type="submit" class="button" value="'.$this->getLang('revert').'" /> '; + echo '<button type="submit">'.$this->getLang('revert').'</button> '; printf($this->getLang('note2'),hsc($filter)); echo '</p>'; diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 0d92e5cc1..86823ee2f 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -241,18 +241,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <tbody>"); ptln(" <tr><td colspan=\"5\" class=\"centeralign\">"); ptln(" <span class=\"medialeft\">"); - ptln(" <input type=\"submit\" name=\"fn[delete]\" ".$delete_disable." class=\"button\" value=\"".$this->lang['delete_selected']."\" id=\"usrmgr__del\" />"); - ptln(" </span>"); + ptln(" <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>"); + ptln(" "); ptln(" <span class=\"mediaright\">"); - ptln(" <input type=\"submit\" name=\"fn[start]\" ".$page_buttons['start']." class=\"button\" value=\"".$this->lang['start']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev']." class=\"button\" value=\"".$this->lang['prev']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[next]\" ".$page_buttons['next']." class=\"button\" value=\"".$this->lang['next']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[last]\" ".$page_buttons['last']." class=\"button\" value=\"".$this->lang['last']."\" />"); + ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); ptln(" </span>"); if (!empty($this->_filter)) { - ptln(" <input type=\"submit\" name=\"fn[search][clear]\" class=\"button\" value=\"".$this->lang['clear']."\" />"); + ptln(" <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>"); } - ptln(" <input type=\"submit\" name=\"fn[export]\" class=\"button\" value=\"".$export_label."\" />"); + ptln(" <button type=\"submit\" name=\"fn[export]\">".$export_label."</button>"); ptln(" <input type=\"hidden\" name=\"do\" value=\"admin\" />"); ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />"); @@ -360,7 +360,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlFilterSettings($indent+10); - ptln(" <input type=\"submit\" name=\"fn[".$cmd."]\" class=\"button\" value=\"".$this->lang[$cmd]."\" />",$indent); + ptln(" <button type=\"submit\" name=\"fn[".$cmd."]\">".$this->lang[$cmd]."</button>",$indent); ptln(" </td>",$indent); ptln(" </tr>",$indent); ptln(" </tbody>",$indent); @@ -369,7 +369,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($notes) { ptln(" <ul class=\"notes\">"); foreach ($notes as $note) { - ptln(" <li><span class=\"li\">".$note."</span></li>",$indent); + ptln(" <li><span class=\"li\">".$note."</li>",$indent); } ptln(" </ul>"); } @@ -456,7 +456,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(' <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent); formSecurityToken(); ptln(' <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent); - ptln(' <input type="submit" name="fn[import]" value="'.$this->lang['import'].'" />',$indent); + ptln(' <button type="submit" name="fn[import]">'.$this->lang['import'].'</button>',$indent); ptln(' <input type="hidden" name="do" value="admin" />',$indent); ptln(' <input type="hidden" name="page" value="usermanager" />',$indent); diff --git a/lib/plugins/usermanager/style.css b/lib/plugins/usermanager/style.css index d119b195a..9028fed5e 100644 --- a/lib/plugins/usermanager/style.css +++ b/lib/plugins/usermanager/style.css @@ -17,7 +17,7 @@ padding-left: 0; padding-right: 1.4em; } -#user__manager input.button[disabled] { +#user__manager button[disabled] { color: #ccc!important; border-color: #ccc!important; } diff --git a/lib/scripts/behaviour.js b/lib/scripts/behaviour.js index fb61f6e48..97955dad9 100644 --- a/lib/scripts/behaviour.js +++ b/lib/scripts/behaviour.js @@ -107,7 +107,7 @@ var dw_behaviour = { quickSelect: function(){ jQuery('select.quickselect') .change(function(e){ e.target.form.submit(); }) - .closest('form').find('input[type=submit]').not('.show').hide(); + .closest('form').find(':button').not('.show').hide(); }, /** @@ -171,10 +171,10 @@ var dw_behaviour = { if($checked.length < 2){ $all.attr('disabled',false); - jQuery('#page__revisions input[type=submit]').attr('disabled',true); + jQuery('#page__revisions button').attr('disabled',true); }else{ $all.attr('disabled',true); - jQuery('#page__revisions input[type=submit]').attr('disabled',false); + jQuery('#page__revisions button').attr('disabled',false); for(var i=0; i<$checked.length; i++){ $checked[i].disabled = false; if(i>1){ diff --git a/lib/scripts/editor.js b/lib/scripts/editor.js index f4143f0bc..fac084489 100644 --- a/lib/scripts/editor.js +++ b/lib/scripts/editor.js @@ -146,7 +146,7 @@ var dw_editor = { if((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) { // Ctrl-Enter (With Chrome workaround) // Submit current edit - jQuery('input#edbtn__save').click(); + jQuery('#edbtn__save').click(); e.preventDefault(); // prevent enter key return false; }else if(e.keyCode == 13){ // Enter diff --git a/lib/scripts/fileuploaderextended.js b/lib/scripts/fileuploaderextended.js index f5786c387..d6a82397d 100644 --- a/lib/scripts/fileuploaderextended.js +++ b/lib/scripts/fileuploaderextended.js @@ -82,7 +82,7 @@ qq.FileUploaderExtended = function(o){ '<div class="qq-upload-button">' + LANG.media_select + '</div>' + '<ul class="qq-upload-list"></ul>' + '<div class="qq-action-container">' + - ' <input class="qq-upload-action button" type="submit" value="' + LANG.media_upload_btn + '" id="mediamanager__upload_button">' + + ' <button class="qq-upload-action" type="submit" id="mediamanager__upload_button">' + LANG.media_upload_btn + '</button>' + ' <label class="qq-overwrite-check"><input type="checkbox" value="1" name="ow" class="dw__ow"> <span>' + LANG.media_overwrt + '</span></label>' + '</div>' + '</div>', @@ -189,7 +189,7 @@ qq.extend(qq.FileUploaderExtended.prototype, { var button = '<form method="post" action="' + action + '" id="mediamanager__done_form"><div>'; button += '<input type="hidden" value="' + result.ns + '" name="ns">'; button += '<input type="hidden" value="1" name="recent">'; - button += '<input class="button" type="submit" value="' + LANG.media_done_btn + '"></div></form>'; + button += '<button type="submit">' + LANG.media_done_btn + '</button></div></form>'; jQuery('#mediamanager__uploader').append(button); } } diff --git a/lib/scripts/hotkeys.js b/lib/scripts/hotkeys.js index bff28530d..76a277aea 100644 --- a/lib/scripts/hotkeys.js +++ b/lib/scripts/hotkeys.js @@ -26,7 +26,7 @@ function Hotkeys() { * Initialization * * This function looks up all the accesskeys used in the current page - * (at anchor elements and input elements [type="submit"]) and registers + * (at anchor elements and button elements [type="submit"]) and registers * appropriate shortcuts. * * Secondly, initialization registers listeners on document to catch all @@ -59,10 +59,10 @@ function Hotkeys() { }); /** - * Lookup all input [type="submit"] with accesskey and register event - + * Lookup all button [type="submit"] with accesskey and register event - * perform "click" on a button. */ - var inputs = document.getElementsByTagName("input"); + var inputs = document.getElementsByTagName("button"); t.each(inputs, function(i) { if (i.type == "submit" && i.accessKey != "") { t.addShortcut(t.modifier + '+' + i.accessKey, function() { diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8ca21ecab..2995addfd 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -119,7 +119,7 @@ var dw_mediamanager = { $both = $listType.add($sortBy); // Remove the submit button - $options.find('input[type=submit]').parent().hide(); + $options.find('button[type=submit]').parent().hide(); // Prepare HTML for jQuery UI buttonset $both.find('label').each(function () { @@ -435,7 +435,7 @@ var dw_mediamanager = { dw_mediamanager.$resizables().resizable('destroy'); if (update_list) { - dw_mediamanager.list.call(jQuery('#mediamanager__page form.options input[type="submit"]')[0]); + dw_mediamanager.list.call(jQuery('#mediamanager__page form.options button[type="submit"]')[0]); } $content.html(data); diff --git a/lib/tpl/dokuwiki/css/_edit.css b/lib/tpl/dokuwiki/css/_edit.css index f40aaa891..d6dcb93ab 100644 --- a/lib/tpl/dokuwiki/css/_edit.css +++ b/lib/tpl/dokuwiki/css/_edit.css @@ -88,7 +88,7 @@ div.picker button.toolbutton { margin-right: 0; margin-left: 1em; } -.dokuwiki .editBar .editButtons input { +.dokuwiki .editBar .editButtons button { } /* summary input and minor changes checkbox */ @@ -130,7 +130,7 @@ div.picker button.toolbutton { [dir=rtl] .dokuwiki .secedit { float: left; } -.dokuwiki .secedit input.button { +.dokuwiki .secedit button { font-size: 75%; } diff --git a/lib/tpl/dokuwiki/css/_forms.css b/lib/tpl/dokuwiki/css/_forms.css index 522f9ed4d..bf70fa24b 100644 --- a/lib/tpl/dokuwiki/css/_forms.css +++ b/lib/tpl/dokuwiki/css/_forms.css @@ -62,8 +62,7 @@ } -.dokuwiki input.button, -.dokuwiki button.button { +.dokuwiki button { vertical-align: middle; } /** diff --git a/lib/tpl/dokuwiki/css/_media_fullscreen.css b/lib/tpl/dokuwiki/css/_media_fullscreen.css index 31b71897b..71308ec85 100644 --- a/lib/tpl/dokuwiki/css/_media_fullscreen.css +++ b/lib/tpl/dokuwiki/css/_media_fullscreen.css @@ -394,7 +394,7 @@ width: 50%; } -#mediamanager__page form.meta input.button { +#mediamanager__page form.meta button { width: auto; } diff --git a/lib/tpl/dokuwiki/css/_media_popup.css b/lib/tpl/dokuwiki/css/_media_popup.css index 20d669c14..af536489c 100644 --- a/lib/tpl/dokuwiki/css/_media_popup.css +++ b/lib/tpl/dokuwiki/css/_media_popup.css @@ -204,7 +204,7 @@ html.popup { } #dw__mediasearch input.edit { } -#dw__mediasearch input.button { +#dw__mediasearch button { } diff --git a/lib/tpl/dokuwiki/css/_modal.css b/lib/tpl/dokuwiki/css/_modal.css index a46dff30e..37f64830f 100644 --- a/lib/tpl/dokuwiki/css/_modal.css +++ b/lib/tpl/dokuwiki/css/_modal.css @@ -88,7 +88,7 @@ cursor: default; } -#media__popup_content .button { +#media__popup_content button { margin-right: 1px; cursor: pointer; } diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less index 548ba7228..ed643fb25 100644 --- a/lib/tpl/dokuwiki/css/design.less +++ b/lib/tpl/dokuwiki/css/design.less @@ -207,12 +207,12 @@ form.search { position: relative; margin-bottom: 0.5em; - input.edit { + input { width: 18em; padding: .35em 22px .35em .1em; } - input.button { + button { background: transparent url(images/search.png) no-repeat 0 0; border-width: 0; width: 19px; @@ -225,11 +225,11 @@ form.search { } [dir=rtl] form.search { - input.edit { + input { padding: .35em .1em .35em 22px; } - input.button { + button { background-position: 5px 0; margin-left: 0; margin-right: -20px; diff --git a/lib/tpl/dokuwiki/css/mobile.less b/lib/tpl/dokuwiki/css/mobile.less index e5e13e221..a52c723ca 100644 --- a/lib/tpl/dokuwiki/css/mobile.less +++ b/lib/tpl/dokuwiki/css/mobile.less @@ -237,7 +237,7 @@ body { margin: 0 0 .2em .2em; } -#dokuwiki__sitetools form.search input.edit { +#dokuwiki__sitetools form.search input { width: 100% !important; } .dokuwiki form.search div.ajax_qsearch { @@ -261,7 +261,7 @@ body { } /* force same height on search input and tools select */ -#dokuwiki__sitetools form.search input.edit, +#dokuwiki__sitetools form.search input, #dokuwiki__header .mobileTools select { height: 2.1em; line-height: 2.1em; -- GitLab From 768d185262d4b53b1717808417c33fdd1ab64797 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 19:44:14 +0100 Subject: [PATCH 233/440] refactored tpl_actiondropdown() to avoid duplication --- inc/template.php | 55 ++++++++++++------------------------------------ 1 file changed, 14 insertions(+), 41 deletions(-) diff --git a/inc/template.php b/inc/template.php index 86f41d0ad..c7dea6b46 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1613,6 +1613,12 @@ function tpl_actiondropdown($empty = '', $button = '>') { /** @var Input $INPUT */ global $INPUT; + $action_structure = array( + 'page_tools' => array('edit', 'revert', 'revisions', 'backlink', 'subscribe'), + 'site_tools' => array('recent', 'media', 'index'), + 'user_tools' => array('login', 'register', 'profile', 'admin'), + ); + echo '<form action="'.script().'" method="get" accept-charset="utf-8">'; echo '<div class="no">'; echo '<input type="hidden" name="id" value="'.$ID.'" />'; @@ -1624,47 +1630,14 @@ function tpl_actiondropdown($empty = '', $button = '>') { echo '<select name="do" class="edit quickselect" title="'.$lang['tools'].'">'; echo '<option value="">'.$empty.'</option>'; - echo '<optgroup label="'.$lang['page_tools'].'">'; - $act = tpl_get_action('edit'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('revert'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('revisions'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('backlink'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('subscribe'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '</optgroup>'; - - echo '<optgroup label="'.$lang['site_tools'].'">'; - $act = tpl_get_action('recent'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('media'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('index'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '</optgroup>'; - - echo '<optgroup label="'.$lang['user_tools'].'">'; - $act = tpl_get_action('login'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('register'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('profile'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('admin'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '</optgroup>'; + foreach($action_structure as $tools => $actions) { + echo '<optgroup label="'.$lang[$tools].'">'; + foreach($actions as $action) { + $act = tpl_get_action($action); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; + } + echo '</optgroup>'; + } echo '</select>'; echo '<button type="submit">'.$button.'</button>'; -- GitLab From ea993669dce58ff6060821c2c83312cf5c05356d Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 20:05:36 +0100 Subject: [PATCH 234/440] fixed lots of missing format strings in language files --- inc/lang/he/lang.php | 8 ++++---- inc/lang/id/lang.php | 4 ++-- inc/lang/ka/lang.php | 20 ++++++++++---------- inc/lang/nl/lang.php | 4 ++-- inc/lang/no/lang.php | 4 ++-- inc/lang/pt/lang.php | 4 ++-- lib/plugins/authad/lang/et/lang.php | 4 ++-- lib/plugins/authad/lang/he/lang.php | 4 ++-- lib/plugins/extension/lang/cs/lang.php | 4 ++-- lib/plugins/extension/lang/de/lang.php | 4 ++-- lib/plugins/extension/lang/eo/lang.php | 4 ++-- lib/plugins/extension/lang/es/lang.php | 4 ++-- lib/plugins/extension/lang/hu/lang.php | 4 ++-- lib/plugins/extension/lang/lv/lang.php | 4 ++-- lib/plugins/extension/lang/pl/lang.php | 4 ++-- lib/plugins/extension/lang/pt-br/lang.php | 6 +++--- lib/plugins/extension/lang/ru/lang.php | 4 ++-- lib/plugins/extension/lang/zh/lang.php | 2 +- 18 files changed, 46 insertions(+), 46 deletions(-) diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 37ea704da..1859d3c3e 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ×’×™× ×©×¤×¨ <guysoft@ort.org.il> * @author Denis Simakov <akinoame1@gmail.com> * @author Dotan Kamber <kamberd@yahoo.com> @@ -110,7 +110,7 @@ $lang['searchmedia_in'] = 'חיפוש תחת %s'; $lang['txt_upload'] = 'בחירת קובץ להעלות:'; $lang['txt_filename'] = 'העל××” ×‘×©× (× ×ª×•×Ÿ לבחירה):'; $lang['txt_overwrt'] = 'שכתוב על קובץ קיי×'; -$lang['maxuploadsize'] = 'העלה מקסימו×. s% לכל קובץ.'; +$lang['maxuploadsize'] = 'העלה מקסימו×. %s לכל קובץ.'; $lang['lockedby'] = '× ×¢×•×œ על ידי:'; $lang['lockexpire'] = '×”× ×¢×™×œ×” פגה:'; $lang['js']['willexpire'] = '×”× ×¢×™×œ×” תחלוף עוד זמן קצר. \n×œ×ž× ×™×¢×ª ×”×ª× ×’×©×•×™×•×ª יש להשתמש בכפתור ×”×¨×¢× ×•×Ÿ מטה כדי ל×פס ×ת מד משך ×”× ×¢×™×œ×”.'; @@ -329,8 +329,8 @@ $lang['media_list_rows'] = 'שורות'; $lang['media_sort_name'] = 'ש×'; $lang['media_sort_date'] = 'ת×ריך'; $lang['media_namespaces'] = 'בחר מרחב שמות'; -$lang['media_files'] = '×§×‘×¦×™× ×‘ s%'; -$lang['media_upload'] = 'להעלות s%'; +$lang['media_files'] = '×§×‘×¦×™× ×‘ %s'; +$lang['media_upload'] = 'להעלות %s'; $lang['media_search'] = 'חיפוש ב%s'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s ב %s'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 514c63871..aecab741a 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author mubaidillah <mubaidillah@gmail.com> * @author Irwan Butar Butar <irwansah.putra@gmail.com> * @author Yustinus Waruwu <juswaruwu@gmail.com> @@ -157,7 +157,7 @@ $lang['uploadexist'] = 'File telah ada. Tidak mengerjakan apa-apa.'; $lang['uploadbadcontent'] = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.'; $lang['uploadspam'] = 'File yang diupload diblok oleh spam blacklist.'; $lang['uploadxss'] = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.'; -$lang['uploadsize'] = 'File yang diupload terlalu besar. (max.%)'; +$lang['uploadsize'] = 'File yang diupload terlalu besar. (max. %s)'; $lang['deletesucc'] = 'File "%s" telah dihapus.'; $lang['deletefail'] = '"%s" tidak dapat dihapus - cek hak aksesnya.'; $lang['mediainuse'] = 'File "%s" belum dihapus - file ini sedang digunakan.'; diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php index 0b2d60e4e..047509c4e 100644 --- a/inc/lang/ka/lang.php +++ b/inc/lang/ka/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Luka Lejava <luka.lejava@gmail.com> */ $lang['encoding'] = 'utf-8'; @@ -47,7 +47,7 @@ $lang['btn_register'] = 'რეგისტრáƒáƒªáƒ˜áƒ'; $lang['btn_apply'] = 'ცáƒáƒ“ე'; $lang['btn_media'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის მáƒáƒ თვáƒ'; $lang['btn_deleteuser'] = 'ჩემი ექáƒáƒ£áƒœáƒ—ის წáƒáƒ¨áƒšáƒ'; -$lang['btn_img_backto'] = 'უკáƒáƒœ %'; +$lang['btn_img_backto'] = 'უკáƒáƒœ %s'; $lang['btn_mediaManager'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის მმáƒáƒ თველში გáƒáƒ®áƒ¡áƒœáƒ'; $lang['loggedinas'] = 'შესული ხáƒáƒ თ რáƒáƒ’áƒáƒ ც:'; $lang['user'] = 'ლáƒáƒ’ინი'; @@ -93,11 +93,11 @@ $lang['resendpwdsuccess'] = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜ გáƒáƒ› $lang['license'] = 'ვიკი ლიცენზირებულიáƒ: '; $lang['licenseok'] = 'áƒáƒ› გვერდის რედáƒáƒ¥áƒ¢áƒ˜áƒ ებით თვენ ეთáƒáƒœáƒ®áƒ›áƒ”ბით ლიცენზიáƒáƒ¡:'; $lang['searchmedia'] = 'სáƒáƒ«áƒ”ბრსáƒáƒ®áƒ”ლი:'; -$lang['searchmedia_in'] = 'ძებნრ%-ში'; +$lang['searchmedia_in'] = 'ძებნრ%s-ში'; $lang['txt_upload'] = 'áƒáƒ˜áƒ ჩიეთ áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ თი ფáƒáƒ˜áƒšáƒ˜:'; $lang['txt_filename'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრრáƒáƒ’áƒáƒ ც (áƒáƒ ჩევითი):'; $lang['txt_overwrt'] = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ'; -$lang['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ ი ზáƒáƒ›áƒ %'; +$lang['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ ი ზáƒáƒ›áƒ %s'; $lang['lockedby'] = 'დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ:'; $lang['lockexpire'] = 'გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბáƒ:'; $lang['js']['willexpire'] = 'გვერდი გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბრ1 წუთში'; @@ -149,13 +149,13 @@ $lang['uploadsucc'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრდáƒáƒ¡áƒ ულე $lang['uploadfail'] = 'შეფერხებრáƒáƒ¢áƒ•áƒ˜áƒ თვისáƒáƒ¡'; $lang['uploadwrong'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრშეუძლებელიáƒ'; $lang['uploadexist'] = 'ფáƒáƒ˜áƒšáƒ˜ უკვე áƒáƒ სებáƒáƒ‘ს'; -$lang['uploadbadcontent'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თული ფáƒáƒ˜áƒšáƒ”ბი áƒáƒ ემთხვევრ'; +$lang['uploadbadcontent'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თული ფáƒáƒ˜áƒšáƒ”ბი áƒáƒ ემთხვევრ%s'; $lang['uploadspam'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ სპáƒáƒ›áƒ‘ლáƒáƒ™áƒ”რის მიერ'; $lang['uploadxss'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ'; -$lang['uploadsize'] = 'áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ თი ფáƒáƒ˜áƒšáƒ˜ ზედმეტáƒáƒ“ დიდიáƒ'; -$lang['deletesucc'] = '% ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ'; -$lang['deletefail'] = '% ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ'; -$lang['mediainuse'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ % ვერწáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ'; +$lang['uploadsize'] = 'áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ თი ფáƒáƒ˜áƒšáƒ˜ ზედმეტáƒáƒ“ დიდირ%s'; +$lang['deletesucc'] = '%s ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ'; +$lang['deletefail'] = '%s ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ'; +$lang['mediainuse'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ %s ვერწáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'áƒáƒ სებული ფáƒáƒ˜áƒšáƒ”ბი'; $lang['accessdenied'] = 'თქვენ áƒáƒ შეგიძლიáƒáƒ— გვერდის ნáƒáƒ®áƒ•áƒ'; @@ -189,7 +189,7 @@ $lang['youarehere'] = 'თვენ ხáƒáƒ თ áƒáƒ¥:'; $lang['lastmod'] = 'ბáƒáƒšáƒáƒ¡ მáƒáƒ“იფიცირებული:'; $lang['deleted'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜áƒ'; $lang['created'] = 'შექმნილიáƒ'; -$lang['restored'] = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ%'; +$lang['restored'] = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ(%s)'; $lang['external_edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ'; $lang['summary'] = 'Edit summary'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">სáƒáƒáƒ˜áƒ áƒáƒ Adobe Flash Plugin</a>'; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index e7d82af19..496144a27 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author François Kooman <fkooman.tuxed.net> * @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl> * @author Riny Heijdendael <riny@heijdendael.nl> @@ -355,4 +355,4 @@ $lang['searchresult'] = 'Zoekresultaat'; $lang['plainhtml'] = 'Alleen HTML'; $lang['wikimarkup'] = 'Wiki Opmaak'; $lang['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.'; -$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "% s".'; +$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "%s".'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index fddbf1419..51854f80d 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Reidar Mosvold <Reidar.Mosvold@hit.no> * @author Jorge Barrera Grandon <jorge@digitalwolves.org> * @author Rune Rasmussen [http://www.syntaxerror.no/] @@ -347,7 +347,7 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s pÃ¥ %s'; $lang['media_edit'] = 'Rediger %s'; -$lang['media_history'] = '%vis historikk'; +$lang['media_history'] = '%s vis historikk'; $lang['media_meta_edited'] = 'metadata er endra'; $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til Ã¥ lese filer.'; $lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til Ã¥ laste opp filer.'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 7c6395b4b..1603e7cec 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt> * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com> * @author Enrico Nicoletto <liverig@gmail.com> @@ -340,5 +340,5 @@ $lang['currentns'] = 'Namespace actual'; $lang['searchresult'] = 'Resultado da pesquisa'; $lang['plainhtml'] = 'HTML simples'; $lang['wikimarkup'] = 'Markup de Wiki'; -$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">% s </a>.'; +$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">%s</a>.'; $lang['unable_to_parse_date'] = 'Não é possÃvel analisar o parâmetro "%s".'; diff --git a/lib/plugins/authad/lang/et/lang.php b/lib/plugins/authad/lang/et/lang.php index 6dda19360..94fe9ed8e 100644 --- a/lib/plugins/authad/lang/et/lang.php +++ b/lib/plugins/authad/lang/et/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Janar Leas <janar.leas@eesti.ee> */ -$lang['authpwdexpire'] = 'Sinu salasõna aegub %päeva pärast, võiksid seda peatselt muuta.'; +$lang['authpwdexpire'] = 'Sinu salasõna aegub %d päeva pärast, võiksid seda peatselt muuta.'; diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php index 616d1ab4b..ac8fbcb5c 100644 --- a/lib/plugins/authad/lang/he/lang.php +++ b/lib/plugins/authad/lang/he/lang.php @@ -2,9 +2,9 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author tomer <tomercarolldergicz@gmail.com> * @author Menashe Tomer <menashesite@gmail.com> */ -$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; +$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב %d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; $lang['passchangefail'] = 'שגי××” ×‘×©×™× ×•×™ סיסמה. ×”×× ×”×¡×™×¡×ž×” תו×מת ×œ×ž×“×™× ×™×•×ª המערכת?'; diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php index dc38afd52..d48c517cf 100644 --- a/lib/plugins/extension/lang/cs/lang.php +++ b/lib/plugins/extension/lang/cs/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> */ @@ -62,7 +62,7 @@ $lang['status_template'] = 'Å¡ablona'; $lang['status_bundled'] = 'svázaný'; $lang['msg_enabled'] = 'Zásuvný modul %s povolen'; $lang['msg_disabled'] = 'Zásuvný modul %s zakázán'; -$lang['msg_delete_success'] = 'RozÅ¡ÃÅ™enà odinstalováno'; +$lang['msg_delete_success'] = 'RozÅ¡ÃÅ™enà %s odinstalováno'; $lang['msg_delete_failed'] = 'Odinstalovánà rozÅ¡ÃÅ™enà %s selhalo'; $lang['msg_template_install_success'] = 'Å ablona %s úspěšnÄ› nainstalována'; $lang['msg_template_update_success'] = 'Å ablona %s úspěšnÄ› aktualizována'; diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php index ef3197513..55a317309 100644 --- a/lib/plugins/extension/lang/de/lang.php +++ b/lib/plugins/extension/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author H. Richard <wanderer379@t-online.de> * @author Joerg <scooter22@gmx.de> * @author Simon <st103267@stud.uni-stuttgart.de> @@ -69,7 +69,7 @@ $lang['status_template'] = 'Template'; $lang['status_bundled'] = 'gebündelt'; $lang['msg_enabled'] = 'Plugin %s ist aktiviert'; $lang['msg_disabled'] = 'Erweiterung %s ist deaktiviert'; -$lang['msg_delete_success'] = 'Erweiterung wurde entfernt'; +$lang['msg_delete_success'] = 'Erweiterung %s wurde entfernt'; $lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert'; $lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich '; $lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert'; diff --git a/lib/plugins/extension/lang/eo/lang.php b/lib/plugins/extension/lang/eo/lang.php index 6ce840be8..e0488cb46 100644 --- a/lib/plugins/extension/lang/eo/lang.php +++ b/lib/plugins/extension/lang/eo/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Robert Bogenschneider <bogi@uea.org> */ $lang['menu'] = 'Aldonaĵa administrado'; @@ -61,7 +61,7 @@ $lang['status_template'] = 'Åablono'; $lang['status_bundled'] = 'kunliverita'; $lang['msg_enabled'] = 'Kromaĵo %s ebligita'; $lang['msg_disabled'] = 'Kromaĵo %s malebligita'; -$lang['msg_delete_success'] = 'Aldonaĵo malinstaliÄis'; +$lang['msg_delete_success'] = 'Aldonaĵo %s malinstaliÄis'; $lang['msg_template_install_success'] = 'Åœablono %s sukcese instaliÄis'; $lang['msg_template_update_success'] = 'Åœablono %s sukcese aktualiÄis'; $lang['msg_plugin_install_success'] = 'Kromaĵo %s sukcese instaliÄis'; diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php index b99f3b294..9e3d24318 100644 --- a/lib/plugins/extension/lang/es/lang.php +++ b/lib/plugins/extension/lang/es/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> @@ -69,7 +69,7 @@ $lang['status_template'] = 'plantilla'; $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Plugin %s activado'; $lang['msg_disabled'] = 'Plugin %s desactivado'; -$lang['msg_delete_success'] = 'Extensión desinstalada'; +$lang['msg_delete_success'] = 'Extensión %s desinstalada'; $lang['msg_delete_failed'] = 'La desinstalación de la extensión %s ha fallado'; $lang['msg_template_install_success'] = 'Plantilla %s instalada con éxito'; $lang['msg_template_update_success'] = 'Plantilla %s actualizada con éxito'; diff --git a/lib/plugins/extension/lang/hu/lang.php b/lib/plugins/extension/lang/hu/lang.php index a27b5a307..28194ad9d 100644 --- a/lib/plugins/extension/lang/hu/lang.php +++ b/lib/plugins/extension/lang/hu/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['menu'] = 'BÅ‘vÃtménykezelÅ‘'; @@ -61,7 +61,7 @@ $lang['status_template'] = 'sablon'; $lang['status_bundled'] = 'beépÃtett'; $lang['msg_enabled'] = 'A(z) %s modul engedélyezve'; $lang['msg_disabled'] = 'A(z) %s modul letiltva'; -$lang['msg_delete_success'] = 'A bÅ‘vÃtmény törölve'; +$lang['msg_delete_success'] = 'A bÅ‘vÃtmény %s törölve'; $lang['msg_template_install_success'] = 'A(z) %s sablon sikeresen telepÃtve'; $lang['msg_template_update_success'] = 'A(z) %s sablon sikeresen frissÃtve'; $lang['msg_plugin_install_success'] = 'A(z) %s modul sikeresen telepÃtve'; diff --git a/lib/plugins/extension/lang/lv/lang.php b/lib/plugins/extension/lang/lv/lang.php index e7e9bdfd9..b3e5ce0d2 100644 --- a/lib/plugins/extension/lang/lv/lang.php +++ b/lib/plugins/extension/lang/lv/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aivars MiÅ¡ka <allefm@gmail.com> */ -$lang['msg_delete_success'] = 'PapildinÄjums atinstalÄ“ts'; +$lang['msg_delete_success'] = 'PapildinÄjums %s atinstalÄ“ts'; diff --git a/lib/plugins/extension/lang/pl/lang.php b/lib/plugins/extension/lang/pl/lang.php index 4fdca79c9..ab9a818b6 100644 --- a/lib/plugins/extension/lang/pl/lang.php +++ b/lib/plugins/extension/lang/pl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mati <mackosa@wp.pl> */ $lang['menu'] = 'Menedżer rozszerzeÅ„'; @@ -36,4 +36,4 @@ $lang['status_not_installed'] = 'nie zainstalowano'; $lang['status_enabled'] = 'uruchomione'; $lang['status_disabled'] = 'wyÅ‚Ä…czone'; $lang['status_plugin'] = 'dodatek'; -$lang['msg_delete_success'] = 'Rozszerzenie odinstalowane'; +$lang['msg_delete_success'] = 'Rozszerzenie %s odinstalowane'; diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php index 47286389f..f7b7a0d2b 100644 --- a/lib/plugins/extension/lang/pt-br/lang.php +++ b/lib/plugins/extension/lang/pt-br/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Felipe Castro <fefcas@gmail.com> * @author Hudson FAS <hudsonfas@gmail.com> */ @@ -62,8 +62,8 @@ $lang['status_template'] = 'modelo'; $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Extensão %s habilitada'; $lang['msg_disabled'] = 'Extensão %s desabilitada'; -$lang['msg_delete_success'] = 'Extensão desinstalada'; -$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão'; +$lang['msg_delete_success'] = 'Extensão %s desinstalada'; +$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão %s'; $lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso'; $lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso'; $lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index a16f0ca95..71d949606 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> @@ -77,7 +77,7 @@ $lang['status_bundled'] = 'в комплекте'; $lang['msg_enabled'] = 'Плагин %s включён'; $lang['msg_disabled'] = 'Плагин %s отключён'; -$lang['msg_delete_success'] = 'Дополнение удалено'; +$lang['msg_delete_success'] = 'Дополнение %s удалено'; $lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить дополнение %s'; $lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен'; $lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php index 62d54c160..f07bee0ac 100644 --- a/lib/plugins/extension/lang/zh/lang.php +++ b/lib/plugins/extension/lang/zh/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Cupen <Cupenoruler@foxmail.com> * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> -- GitLab From 25957e773bfab367ebe639f75e6413f30b60dfff Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 21:10:05 +0100 Subject: [PATCH 235/440] removed English translation strings from non-English translation files --- inc/lang/ar/lang.php | 6 +-- inc/lang/bn/lang.php | 3 +- inc/lang/id/lang.php | 15 ------- inc/lang/ka/lang.php | 66 --------------------------- inc/lang/km/lang.php | 3 -- inc/lang/ku/admin.txt | 4 -- inc/lang/ku/denied.txt | 4 -- inc/lang/ku/editrev.txt | 2 - inc/lang/ku/lang.php | 93 --------------------------------------- inc/lang/ku/locked.txt | 3 -- inc/lang/ku/login.txt | 4 -- inc/lang/ku/mailtext.txt | 17 ------- inc/lang/ku/norev.txt | 4 -- inc/lang/ku/password.txt | 10 ----- inc/lang/ku/read.txt | 2 - inc/lang/ku/register.txt | 4 -- inc/lang/ku/revisions.txt | 4 -- inc/lang/ku/showrev.txt | 2 - inc/lang/ku/stopwords.txt | 29 ------------ 19 files changed, 3 insertions(+), 272 deletions(-) delete mode 100644 inc/lang/ku/admin.txt delete mode 100644 inc/lang/ku/denied.txt delete mode 100644 inc/lang/ku/editrev.txt delete mode 100644 inc/lang/ku/locked.txt delete mode 100644 inc/lang/ku/login.txt delete mode 100644 inc/lang/ku/mailtext.txt delete mode 100644 inc/lang/ku/norev.txt delete mode 100644 inc/lang/ku/password.txt delete mode 100644 inc/lang/ku/read.txt delete mode 100644 inc/lang/ku/register.txt delete mode 100644 inc/lang/ku/revisions.txt delete mode 100644 inc/lang/ku/showrev.txt delete mode 100644 inc/lang/ku/stopwords.txt diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 2d21fc8f0..a3c56c969 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mostafa Hussein <mostafa@gmail.com> * @author Yaman Hokan <always.smile.yh@hotmail.com> * @author Usama Akkad <uahello@gmail.com> @@ -87,7 +87,7 @@ $lang['profchanged'] = 'ØÙدث المل٠الشخصي للمستخ $lang['profnodelete'] = 'هذه الموسوعه لا ندعم Øذ٠الأشخاص'; $lang['profdeleteuser'] = 'اØØ°Ù Øساب'; $lang['profdeleted'] = 'Øسابك الخاص تم ØØ°ÙÙ‡ من هذه الموسوعة'; -$lang['profconfdelete'] = 'أنا أرغب ÙÙŠ ØØ°Ù Øسابي من هذه الموسوعة.<br/> +$lang['profconfdelete'] = 'أنا أرغب ÙÙŠ ØØ°Ù Øسابي من هذه الموسوعة.<br/> هذا الØدث غير ممكن.'; $lang['profconfdeletemissing'] = 'لم تقم بوضع علامة ÙÙŠ مربع التأكيد'; $lang['pwdforget'] = 'أنسيت كلمة السر؟ اØصل على واØدة جديدة'; @@ -142,8 +142,6 @@ $lang['js']['del_confirm'] = 'هل Øقاً تريد Øذ٠البنود ا $lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟'; $lang['js']['media_diff'] = 'عرض الÙروق:'; $lang['js']['media_diff_both'] = 'جنبا إلى جنب'; -$lang['js']['media_diff_opacity'] = 'Shine-through'; -$lang['js']['media_diff_portions'] = 'Swipe'; $lang['js']['media_select'] = 'اختر ملÙا...'; $lang['js']['media_upload_btn'] = 'ارÙع'; $lang['js']['media_done_btn'] = 'تم'; diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index 8443228e3..db7baa0f2 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Foysol <ragebot1125@gmail.com> * @author ninetailz <ninetailz1125@gmail.com> * @author Khan M. B. Asad <muhammad2017@gmail.com> @@ -20,7 +20,6 @@ $lang['btn_source'] = 'দেখান পাতা উৎস'; $lang['btn_show'] = 'দেখান পৃষà§à¦ া'; $lang['btn_create'] = 'à¦à¦‡ পৃষà§à¦ া তৈরি করà§à¦¨'; $lang['btn_search'] = 'অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨'; -$lang['btn_save'] = 'Save'; $lang['btn_preview'] = 'পূরà§à¦¬à¦°à§‚প'; $lang['btn_top'] = 'উপরে ফিরে যান '; $lang['btn_newer'] = '<< আরো সামà§à¦ªà§à¦°à¦¤à¦¿à¦•'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index aecab741a..3fc1506e4 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -23,7 +23,6 @@ $lang['btn_show'] = 'Tampilkan halaman'; $lang['btn_create'] = 'Buat halaman baru'; $lang['btn_search'] = 'Cari'; $lang['btn_save'] = 'Simpan'; -$lang['btn_preview'] = 'Preview'; $lang['btn_top'] = 'kembali ke atas'; $lang['btn_newer'] = '<< lebih lanjut'; $lang['btn_older'] = 'sebelumnya >>'; @@ -32,7 +31,6 @@ $lang['btn_recent'] = 'Perubahan terbaru'; $lang['btn_upload'] = 'Upload'; $lang['btn_cancel'] = 'Batal'; $lang['btn_index'] = 'Indeks'; -$lang['btn_secedit'] = 'Edit'; $lang['btn_login'] = 'Login'; $lang['btn_logout'] = 'Keluar'; $lang['btn_admin'] = 'Admin'; @@ -42,9 +40,7 @@ $lang['btn_back'] = 'Kembali'; $lang['btn_backlink'] = 'Backlinks'; $lang['btn_subscribe'] = 'Ikuti Perubahan'; $lang['btn_profile'] = 'Ubah Profil'; -$lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Atur password baru'; -$lang['btn_draft'] = 'Edit draft'; $lang['btn_recover'] = 'Cadangkan draf'; $lang['btn_draftdel'] = 'Hapus draft'; $lang['btn_revert'] = 'Kembalikan'; @@ -172,7 +168,6 @@ $lang['mediaextchange'] = 'Ektensi file berubah dari .%s ke .%s'; $lang['reference'] = 'Referensi untuk'; $lang['ref_inuse'] = 'File tidak dapat dihapus karena sedang digunakan oleh halaman:'; $lang['ref_hidden'] = 'Beberapa referensi ada didalam halaman yang tidak diijinkan untuk Anda baca.'; -$lang['hits'] = 'Hits'; $lang['quickhits'] = 'Matching pagenames'; $lang['toc'] = 'Daftar isi'; $lang['current'] = 'sekarang'; @@ -195,7 +190,6 @@ $lang['deleted'] = 'terhapus'; $lang['created'] = 'dibuat'; $lang['restored'] = 'revisi lama ditampilkan kembali (%s)'; $lang['external_edit'] = 'Perubahan eksternal'; -$lang['summary'] = 'Edit summary'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> diperlukan untuk menampilkan konten ini.'; $lang['download'] = 'Unduh Cuplikan'; $lang['tools'] = 'Alat'; @@ -218,26 +212,17 @@ $lang['qb_italic'] = 'Miring'; $lang['qb_underl'] = 'Garis Bawah'; $lang['qb_code'] = 'Kode'; $lang['qb_strike'] = 'Text Tercoret'; -$lang['qb_h1'] = 'Level 1 Headline'; -$lang['qb_h2'] = 'Level 2 Headline'; -$lang['qb_h3'] = 'Level 3 Headline'; -$lang['qb_h4'] = 'Level 4 Headline'; -$lang['qb_h5'] = 'Level 5 Headline'; $lang['qb_hs'] = 'Pilih Judul'; $lang['qb_hplus'] = 'Judul Lebih Atas'; $lang['qb_hminus'] = 'Judul Lebih Bawah'; $lang['qb_hequal'] = 'Tingkat Judul yang Sama'; -$lang['qb_link'] = 'Link Internal'; -$lang['qb_extlink'] = 'Link External'; $lang['qb_hr'] = 'Garis Horisontal'; $lang['qb_ol'] = 'Item Berurutan'; $lang['qb_ul'] = 'Item Tidak Berurutan'; $lang['qb_media'] = 'Tambahkan gambar atau file lain'; $lang['qb_sig'] = 'Sisipkan tanda tangan'; -$lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Karakter Khusus'; $lang['upperns'] = 'lompat ke namespace induk'; -$lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Gagal menulis metadata'; $lang['metasaveok'] = 'Metadata tersimpan'; $lang['img_title'] = 'Judul:'; diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php index 047509c4e..72594efe3 100644 --- a/inc/lang/ka/lang.php +++ b/inc/lang/ka/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_delete'] = 'წáƒáƒ¨áƒšáƒ'; $lang['btn_back'] = 'უკáƒáƒœ'; $lang['btn_backlink'] = 'გáƒáƒ“მáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ თებული ბმულები'; -$lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_reset'] = 'წáƒáƒ¨áƒšáƒ'; $lang['btn_resendpwd'] = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜áƒ¡ დáƒáƒ§áƒ”ნებáƒ'; @@ -107,7 +106,6 @@ $lang['js']['keepopen'] = 'დáƒáƒ¢áƒáƒ•áƒ”თ ღიáƒ'; $lang['js']['hidedetails'] = 'დეტáƒáƒšáƒ”ბის დáƒáƒ›áƒáƒšáƒ•áƒ'; $lang['js']['mediatitle'] = 'ინსტრუმენტები'; $lang['js']['mediadisplay'] = 'ბმულის ტიპი'; -$lang['js']['mediaalign'] = 'Alignment'; $lang['js']['mediasize'] = 'სურáƒáƒ—ის ზáƒáƒ›áƒ'; $lang['js']['mediatarget'] = 'მიზნის ბმული'; $lang['js']['mediaclose'] = 'დáƒáƒ®áƒ£áƒ ვáƒ'; @@ -125,7 +123,6 @@ $lang['js']['medianolink'] = 'áƒáƒ დáƒáƒšáƒ˜áƒœáƒ™áƒáƒ— სურრ$lang['js']['medialeft'] = 'მáƒáƒ ცხვნივ გáƒáƒœáƒáƒ—áƒáƒ•áƒ¡áƒ”თ სურáƒáƒ—ი'; $lang['js']['mediaright'] = 'მáƒáƒ ჯვნივ გáƒáƒœáƒáƒ—áƒáƒ•áƒ¡áƒ”თ სურáƒáƒ—ი'; $lang['js']['mediacenter'] = 'შუáƒáƒ¨áƒ˜ გáƒáƒœáƒáƒ—áƒáƒ•áƒ¡áƒ”თ სურáƒáƒ—ი'; -$lang['js']['medianoalign'] = 'Use no align.'; $lang['js']['nosmblinks'] = 'ეს ფუქნცირმუშáƒáƒáƒ‘ს მხáƒáƒšáƒáƒ“ Internet Explorer-ზე'; $lang['js']['linkwiz'] = 'ბმული'; $lang['js']['linkto'] = 'ბმული'; @@ -133,9 +130,6 @@ $lang['js']['del_confirm'] = 'დáƒáƒ წმუნებული ხáƒáƒ $lang['js']['restore_confirm'] = 'დáƒáƒ წმუნებული ხáƒáƒ თ რáƒáƒ› áƒáƒ¦áƒ“გენრგინდáƒáƒ—?'; $lang['js']['media_diff'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ”ბების ჩვენებáƒ'; $lang['js']['media_diff_both'] = 'გვერდიგვერდ'; -$lang['js']['media_diff_opacity'] = 'Shine-through'; -$lang['js']['media_diff_portions'] = 'Swipe -'; $lang['js']['media_select'] = 'áƒáƒ ჩეული ფáƒáƒ˜áƒšáƒ”ბი'; $lang['js']['media_upload_btn'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვáƒ'; $lang['js']['media_done_btn'] = 'მზáƒáƒ“áƒáƒ'; @@ -156,42 +150,29 @@ $lang['uploadsize'] = 'áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ თი ფáƒáƒ˜áƒšáƒ˜ $lang['deletesucc'] = '%s ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ'; $lang['deletefail'] = '%s ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ'; $lang['mediainuse'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ %s ვერწáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ'; -$lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'áƒáƒ სებული ფáƒáƒ˜áƒšáƒ”ბი'; $lang['accessdenied'] = 'თქვენ áƒáƒ შეგიძლიáƒáƒ— გვერდის ნáƒáƒ®áƒ•áƒ'; -$lang['mediausage'] = 'Use the following syntax to reference this file:'; $lang['mediaview'] = 'áƒáƒ იგინáƒáƒšáƒ˜ ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩვენებáƒ'; $lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.'; -$lang['mediaextchange'] = 'Filextension changed from .%s to .%s!'; -$lang['reference'] = 'References for'; $lang['ref_inuse'] = 'ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებრáƒáƒ¥:'; $lang['ref_hidden'] = 'ზáƒáƒ’იერთი ბლáƒáƒ™áƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის უფლებრáƒáƒ გáƒáƒ¥áƒ•áƒ—'; -$lang['hits'] = 'Hits'; $lang['quickhits'] = 'მსგáƒáƒ•áƒ¡áƒ˜ სáƒáƒ®áƒ”ლები'; -$lang['toc'] = 'Table of Contents'; $lang['current'] = 'áƒáƒ®áƒšáƒáƒœáƒ“ელი'; $lang['yours'] = 'თვენი ვერსიáƒ'; $lang['diff'] = 'ვერსიების გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ”ბáƒ'; $lang['diff2'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ”ბები'; -$lang['difflink'] = 'Link to this comparison view'; $lang['diff_type'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ”ბების ჩვენებáƒ'; -$lang['diff_inline'] = 'Inline'; $lang['diff_side'] = 'გვერდიგვერდ'; $lang['diffprevrev'] = 'წინრვერსიáƒ'; $lang['diffnextrev'] = 'შემდეგი ვერსიáƒ'; $lang['difflastrev'] = 'ბáƒáƒšáƒ ვერსიáƒ'; -$lang['diffbothprevrev'] = 'Both sides previous revision'; -$lang['diffbothnextrev'] = 'Both sides next revision'; $lang['line'] = 'ზáƒáƒšáƒ˜'; -$lang['breadcrumb'] = 'Trace:'; $lang['youarehere'] = 'თვენ ხáƒáƒ თ áƒáƒ¥:'; $lang['lastmod'] = 'ბáƒáƒšáƒáƒ¡ მáƒáƒ“იფიცირებული:'; $lang['deleted'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜áƒ'; $lang['created'] = 'შექმნილიáƒ'; $lang['restored'] = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ(%s)'; $lang['external_edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ'; -$lang['summary'] = 'Edit summary'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">სáƒáƒáƒ˜áƒ áƒáƒ Adobe Flash Plugin</a>'; $lang['download'] = 'Snippet-ის გáƒáƒ“მáƒáƒ¬áƒ”რáƒ'; $lang['tools'] = 'ინსტრუმენტები'; @@ -209,11 +190,6 @@ $lang['changes_type'] = 'ცვლილებები'; $lang['pages_changes'] = 'გვერდები'; $lang['media_changes'] = 'მედირფáƒáƒ˜áƒšáƒ”ბი'; $lang['both_changes'] = 'გვერდები დრმედირფáƒáƒ˜áƒšáƒ”ბი'; -$lang['qb_bold'] = 'Bold Text'; -$lang['qb_italic'] = 'Italic Text'; -$lang['qb_underl'] = 'Underlined Text'; -$lang['qb_code'] = 'Monospaced Text'; -$lang['qb_strike'] = 'Strike-through Text'; $lang['qb_h1'] = 'Level 1 სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_h2'] = 'Level 2 სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_h3'] = 'Level 3 სáƒáƒ—áƒáƒ£áƒ ი'; @@ -224,64 +200,28 @@ $lang['qb_hs'] = 'სáƒáƒ—áƒáƒ£áƒ ის áƒáƒ ჩევáƒ'; $lang['qb_hplus'] = 'Higher სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_hminus'] = 'Lower სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_hequal'] = 'Same Level სáƒáƒ—áƒáƒ£áƒ ი'; -$lang['qb_link'] = 'Internal Link'; -$lang['qb_extlink'] = 'External Link'; -$lang['qb_hr'] = 'Horizontal Rule'; $lang['qb_ol'] = 'შეკვეთილი ბáƒáƒšáƒ მáƒáƒ¡áƒáƒšáƒ'; -$lang['qb_ul'] = 'Unordered List Item'; $lang['qb_media'] = 'ნáƒáƒ®áƒáƒ¢áƒ”ბის დრსხვრფáƒáƒ˜áƒ”ლბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ'; $lang['qb_sig'] = 'ხელმáƒáƒ¬áƒ”რáƒ'; $lang['qb_smileys'] = 'სმáƒáƒ˜áƒšáƒ”ბი'; -$lang['qb_chars'] = 'Special Chars'; -$lang['upperns'] = 'jump to parent namespace'; -$lang['metaedit'] = 'Edit Metadata'; -$lang['metasaveerr'] = 'Writing metadata failed'; -$lang['metasaveok'] = 'Metadata saved'; $lang['img_title'] = 'სáƒáƒ—áƒáƒ£áƒ ი:'; -$lang['img_caption'] = 'Caption:'; $lang['img_date'] = 'თáƒáƒ იღი:'; $lang['img_fname'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი:'; $lang['img_fsize'] = 'ზáƒáƒ›áƒ:'; $lang['img_artist'] = 'ფáƒáƒ¢áƒáƒ’რáƒáƒ¤áƒ˜:'; -$lang['img_copyr'] = 'Copyright:'; $lang['img_format'] = 'ფáƒáƒ მáƒáƒ¢áƒ˜:'; $lang['img_camera'] = 'კáƒáƒ›áƒ”რáƒ:'; -$lang['img_keywords'] = 'Keywords:'; $lang['img_width'] = 'სიგáƒáƒœáƒ”:'; $lang['img_height'] = 'სიმáƒáƒ¦áƒšáƒ”:'; -$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s'; -$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s'; -$lang['subscr_subscribe_noaddress'] = 'There is no address associated with your login, you cannot be added to the subscription list'; -$lang['subscr_unsubscribe_success'] = 'Removed %s from subscription list for %s'; -$lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s'; -$lang['subscr_already_subscribed'] = '%s is already subscribed to %s'; -$lang['subscr_not_subscribed'] = '%s is not subscribed to %s'; -$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to the current page or namespace.'; -$lang['subscr_m_new_header'] = 'Add subscription'; -$lang['subscr_m_current_header'] = 'Current subscriptions'; -$lang['subscr_m_unsubscribe'] = 'Unsubscribe'; -$lang['subscr_m_subscribe'] = 'Subscribe'; $lang['subscr_m_receive'] = 'მიღებáƒ'; $lang['subscr_style_every'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლ ცვლილებáƒáƒ–ე'; $lang['subscr_style_digest'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლი გვერდის შეცვლáƒáƒ–ე '; $lang['subscr_style_list'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•áƒ”ლი გვერდის შეცვლáƒáƒ–ე '; -$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.'; $lang['i_chooselang'] = 'ენსი áƒáƒ ჩევáƒ'; $lang['i_installer'] = 'DokuWiki დáƒáƒ›áƒ§áƒ”ნებელი'; $lang['i_wikiname'] = 'Wiki სáƒáƒ®áƒ”ლი'; -$lang['i_enableacl'] = 'Enable ACL (recommended)'; $lang['i_superuser'] = 'áƒáƒ“მინი'; $lang['i_problems'] = 'შეáƒáƒ¡áƒ¬áƒáƒ ეთ შეცდáƒáƒ›áƒ”ბი'; -$lang['i_modified'] = 'For security reasons this script will only work with a new and unmodified Dokuwiki installation. You should either re-extract the files from the downloaded package or consult the complete <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; -$lang['i_funcna'] = 'PHP function <code>%s</code> is not available. Maybe your hosting provider disabled it for some reason?'; -$lang['i_phpver'] = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.'; -$lang['i_permfail'] = '<code>%s</code> is not writable by DokuWiki. You need to fix the permission settings of this directory!'; -$lang['i_confexists'] = '<code>%s</code> already exists'; -$lang['i_writeerr'] = 'Unable to create <code>%s</code>. You will need to check directory/file permissions and create the file manually.'; -$lang['i_badhash'] = 'unrecognised or modified dokuwiki.php (hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code> - illegal or empty value'; -$lang['i_failure'] = 'Some errors occurred while writing the configuration files. You may need to fix them manually before you can use <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.'; -$lang['i_policy'] = 'Initial ACL policy'; $lang['i_pol0'] = 'ღირვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•áƒ˜áƒ თვრშეუძლირნებისმიერს)'; $lang['i_pol1'] = 'თáƒáƒ•áƒ˜áƒ¡áƒ£áƒ¤áƒáƒšáƒ˜ ვიკი (წáƒáƒ™áƒ˜áƒ—ხვრშეუძლირყველáƒáƒ¡, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•áƒ˜áƒ თვრ- რეგისტრირებულს)'; $lang['i_pol2'] = 'დáƒáƒ®áƒ£áƒ ული ვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•áƒ˜áƒ თვრშეუძლიáƒáƒ— მხáƒáƒšáƒáƒ“ რეგისტრირებულებს)'; @@ -291,7 +231,6 @@ $lang['i_license'] = 'áƒáƒ˜áƒ ჩიეთ ლიცენზირ$lang['i_license_none'] = 'áƒáƒ áƒáƒ©áƒ•áƒ”ნáƒáƒ— ლიცენზიის ინფáƒáƒ მáƒáƒªáƒ˜áƒ'; $lang['i_pop_field'] = 'დáƒáƒ’ვეხმáƒáƒ ეთ DokuWiki-ს áƒáƒ’უმჯáƒáƒ‘ესებáƒáƒ¨áƒ˜'; $lang['i_pop_label'] = 'თვეში ერთელ ინფáƒáƒ მáƒáƒªáƒ˜áƒ˜áƒ¡ DokuWiki-ის áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ˜áƒ¡áƒ—ვის გáƒáƒ’ზáƒáƒ•áƒœáƒ'; -$lang['recent_global'] = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.'; $lang['years'] = '%d წლის უკáƒáƒœ'; $lang['months'] = '%d თვის უკáƒáƒœ'; $lang['weeks'] = '%d კვირის უკáƒáƒœ'; @@ -306,17 +245,12 @@ $lang['media_file'] = 'ფáƒáƒ˜áƒšáƒ˜'; $lang['media_viewtab'] = 'ჩვენებáƒ'; $lang['media_edittab'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ'; $lang['media_historytab'] = 'ისტáƒáƒ იáƒ'; -$lang['media_list_thumbs'] = 'Thumbnails'; -$lang['media_list_rows'] = 'Rows'; $lang['media_sort_name'] = 'სáƒáƒ®áƒ”ლი'; $lang['media_sort_date'] = 'თáƒáƒ იღი'; -$lang['media_namespaces'] = 'Choose namespace'; $lang['media_files'] = 'ფáƒáƒ˜áƒšáƒ”ბი %s'; $lang['media_upload'] = 'áƒáƒ¢áƒ•áƒ˜áƒ თვრ%s'; $lang['media_search'] = 'ძებნრ%s'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s at %s'; $lang['media_edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებრ%s'; $lang['media_history'] = 'ისტáƒáƒ ირ%s'; -$lang['media_meta_edited'] = 'metadata edited'; $lang['media_perm_read'] = 'თვენ áƒáƒ გáƒáƒ¥áƒ•áƒ— უფლებრწáƒáƒ˜áƒ™áƒ˜áƒ—ხáƒáƒ— ეს მáƒáƒ¡áƒáƒšáƒ'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index 87ac30936..4c2d7f688 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -185,12 +185,9 @@ $lang['i_enableacl'] = 'បើកប្រើ (អនុសាស)'; $lang['i_superuser'] = 'អ្នកកំពូល'; $lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្ážáž‘ៅទៀហដល់អ្នកជួសជុលវា។'; $lang['i_modified'] = ''; -$lang['i_funcna'] = '<code>%s</code> '; $lang['i_permfail'] = '<code>%s</code> មិនអាចសាស'; $lang['i_confexists'] = '<code>%s</code> មានហាយ'; $lang['i_writeerr'] = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកážáŸ’រវការពិនិážáŸ’យអធិក្រឹážáž·ážšáž”ស់ážážáž“ឹងឯកសារ។'; -$lang['i_badhash'] = '(hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code>—'; $lang['i_success'] = ''; $lang['i_failure'] = 'ពលសាសារ'; $lang['i_policy'] = 'បញ្ជីអនុញ្ញážáž•áŸ’ដើម'; diff --git a/inc/lang/ku/admin.txt b/inc/lang/ku/admin.txt deleted file mode 100644 index cfd21b217..000000000 --- a/inc/lang/ku/admin.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Administration ====== - -Below you can find a list of administrative tasks available in DokuWiki. - diff --git a/inc/lang/ku/denied.txt b/inc/lang/ku/denied.txt deleted file mode 100644 index 34cb8456a..000000000 --- a/inc/lang/ku/denied.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Permission Denied ====== - -Sorry, you don't have enough rights to continue. - diff --git a/inc/lang/ku/editrev.txt b/inc/lang/ku/editrev.txt deleted file mode 100644 index e6995713b..000000000 --- a/inc/lang/ku/editrev.txt +++ /dev/null @@ -1,2 +0,0 @@ -**You've loaded an old revision of the document!** If you save it, you will create a new version with this data. ----- \ No newline at end of file diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 7e21b5ba7..460b5e8a3 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -31,109 +31,16 @@ $lang['btn_update'] = 'Rojanekirin'; $lang['btn_delete'] = 'Jê bibe'; $lang['btn_back'] = 'PaÅŸ'; $lang['btn_backlink'] = 'Girêdanên paÅŸ'; -$lang['btn_subscribe'] = 'Subscribe Changes'; -$lang['btn_register'] = 'Register'; -$lang['loggedinas'] = 'Logged in as:'; -$lang['user'] = 'Username'; -$lang['pass'] = 'Password'; -$lang['passchk'] = 'once again'; -$lang['remember'] = 'Remember me'; -$lang['fullname'] = 'Full name'; -$lang['email'] = 'E-Mail'; -$lang['badlogin'] = 'Sorry, username or password was wrong.'; - -$lang['regmissing'] = 'Sorry, you must fill in all fields.'; -$lang['reguexists'] = 'Sorry, a user with this login already exists.'; -$lang['regsuccess'] = 'The user has been created and the password was sent by email.'; -$lang['regsuccess2']= 'The user has been created.'; -$lang['regmailfail']= 'Looks like there was an error on sending the password mail. Please contact the admin!'; -$lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin'; -$lang['regbadpass'] = 'The two given passwords are not identically, please try again.'; -$lang['regpwmail'] = 'Your DokuWiki password'; -$lang['reghere'] = 'You don\'t have an account yet? Just get one'; - -$lang['txt_upload'] = 'Select file to upload'; -$lang['txt_filename'] = 'Enter wikiname (optional)'; -$lang['txt_overwrt'] = 'Overwrite existing file'; -$lang['lockedby'] = 'Currently locked by'; -$lang['lockexpire'] = 'Lock expires at'; -$lang['js']['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; - -$lang['js']['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; - -$lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'TiÅŸtek nehat dîtin.'; - -$lang['mediaselect'] = 'Mediafile Selection'; -$lang['uploadsucc'] = 'Upload successful'; -$lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; -$lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; -$lang['uploadexist'] = 'File already exists. Nothing done.'; -$lang['deletesucc'] = 'The file "%s" has been deleted.'; -$lang['deletefail'] = '"%s" couldn\'t be deleted - check permissions.'; -$lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.'; -$lang['namespaces'] = 'Namespace'; -$lang['mediafiles'] = 'Available files in'; - $lang['reference'] = 'Referansa'; -$lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:'; -$lang['ref_hidden'] = 'Some references are on pages you don\'t have permission to read'; - -$lang['hits'] = 'Hits'; -$lang['quickhits'] = 'Matching pagenames'; $lang['toc'] = 'Tabloya Navêrokê'; -$lang['current'] = 'current'; -$lang['yours'] = 'Your Version'; -$lang['diff'] = 'show differences to current version'; $lang['line'] = 'Rêz'; $lang['breadcrumb'] = 'Åžop:'; $lang['lastmod'] = 'Guherandina dawî:'; -$lang['by'] = 'by'; $lang['deleted'] = 'hat jê birin'; $lang['created'] = 'hat afirandin'; -$lang['restored'] = 'old revision restored (%s)'; $lang['summary'] = 'Kurteya guhartinê'; - -$lang['mail_newpage'] = 'page added:'; -$lang['mail_changed'] = 'page changed:'; - -$lang['js']['nosmblinks'] = 'Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.'; - -$lang['qb_bold'] = 'Bold Text'; -$lang['qb_italic'] = 'Italic Text'; -$lang['qb_underl'] = 'Underlined Text'; -$lang['qb_code'] = 'Code Text'; -$lang['qb_strike'] = 'Strike-through Text'; -$lang['qb_h1'] = 'Level 1 Headline'; -$lang['qb_h2'] = 'Level 2 Headline'; -$lang['qb_h3'] = 'Level 3 Headline'; -$lang['qb_h4'] = 'Level 4 Headline'; -$lang['qb_h5'] = 'Level 5 Headline'; -$lang['qb_link'] = 'Internal Link'; -$lang['qb_extlink'] = 'External Link'; -$lang['qb_hr'] = 'Horizontal Rule'; -$lang['qb_ol'] = 'Ordered List Item'; -$lang['qb_ul'] = 'Unordered List Item'; -$lang['qb_media'] = 'Add Images and other files'; -$lang['qb_sig'] = 'Insert Signature'; - -$lang['js']['del_confirm']= 'Delete this entry?'; - -$lang['metaedit'] = 'Edit Metadata'; -$lang['metasaveerr'] = 'Writing metadata failed'; -$lang['metasaveok'] = 'Metadata saved'; -$lang['btn_img_backto'] = 'Back to %s'; -$lang['img_title'] = 'Title:'; -$lang['img_caption'] = 'Caption:'; -$lang['img_date'] = 'Date:'; -$lang['img_fname'] = 'Filename:'; -$lang['img_fsize'] = 'Size:'; -$lang['img_artist'] = 'Photographer:'; -$lang['img_copyr'] = 'Copyright:'; -$lang['img_format'] = 'Format:'; -$lang['img_camera'] = 'Camera:'; -$lang['img_keywords']= 'Keywords:'; $lang['searchcreatepage'] = "Heke tiÅŸtek nehatibe dîtin, tu dikarî dest bi nivîsandina rûpelekê nû bikî. Ji bo vê, ''Vê rûpelê biguherîne'' bitikîne."; //Setup VIM: ex: et ts=2 : diff --git a/inc/lang/ku/locked.txt b/inc/lang/ku/locked.txt deleted file mode 100644 index af6347a96..000000000 --- a/inc/lang/ku/locked.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Page locked ====== - -This page is currently locked for editing by another user. You have to wait until this user finishes editing or the lock expires. diff --git a/inc/lang/ku/login.txt b/inc/lang/ku/login.txt deleted file mode 100644 index 2004ea198..000000000 --- a/inc/lang/ku/login.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Login ====== - -You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in. - diff --git a/inc/lang/ku/mailtext.txt b/inc/lang/ku/mailtext.txt deleted file mode 100644 index 44a3f6553..000000000 --- a/inc/lang/ku/mailtext.txt +++ /dev/null @@ -1,17 +0,0 @@ -A page in your DokuWiki was added or changed. Here are the details: - -Date : @DATE@ -Browser : @BROWSER@ -IP-Address : @IPADDRESS@ -Hostname : @HOSTNAME@ -Old Revision: @OLDPAGE@ -New Revision: @NEWPAGE@ -Edit Summary: @SUMMARY@ -User : @USER@ - -@DIFF@ - - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/inc/lang/ku/norev.txt b/inc/lang/ku/norev.txt deleted file mode 100644 index 0b21bf3f0..000000000 --- a/inc/lang/ku/norev.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== No such revision ====== - -The specified revision doesn't exist. Use the ''Old revisions'' button for a list of old revisions of this document. - diff --git a/inc/lang/ku/password.txt b/inc/lang/ku/password.txt deleted file mode 100644 index 6d5cbe678..000000000 --- a/inc/lang/ku/password.txt +++ /dev/null @@ -1,10 +0,0 @@ -Hi @FULLNAME@! - -Here is your userdata for @TITLE@ at @DOKUWIKIURL@ - -Login : @LOGIN@ -Password : @PASSWORD@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/inc/lang/ku/read.txt b/inc/lang/ku/read.txt deleted file mode 100644 index 9f56d81ad..000000000 --- a/inc/lang/ku/read.txt +++ /dev/null @@ -1,2 +0,0 @@ -This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. - diff --git a/inc/lang/ku/register.txt b/inc/lang/ku/register.txt deleted file mode 100644 index b65683bc2..000000000 --- a/inc/lang/ku/register.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Register as new user ====== - -Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - your new password will be sent to it. The login name should be a valid [[doku>pagename|pagename]]. - diff --git a/inc/lang/ku/revisions.txt b/inc/lang/ku/revisions.txt deleted file mode 100644 index dd5f35b8e..000000000 --- a/inc/lang/ku/revisions.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Old Revisions ====== - -These are the older revisons of the current document. To revert to an old revision, select it from below, click ''Edit this page'' and save it. - diff --git a/inc/lang/ku/showrev.txt b/inc/lang/ku/showrev.txt deleted file mode 100644 index 3608de36b..000000000 --- a/inc/lang/ku/showrev.txt +++ /dev/null @@ -1,2 +0,0 @@ -**This is an old revision of the document!** ----- diff --git a/inc/lang/ku/stopwords.txt b/inc/lang/ku/stopwords.txt deleted file mode 100644 index bc6eb48ae..000000000 --- a/inc/lang/ku/stopwords.txt +++ /dev/null @@ -1,29 +0,0 @@ -# This is a list of words the indexer ignores, one word per line -# When you edit this file be sure to use UNIX line endings (single newline) -# No need to include words shorter than 3 chars - these are ignored anyway -# This list is based upon the ones found at http://www.ranks.nl/stopwords/ -about -are -and -you -your -them -their -com -for -from -into -how -that -the -this -was -what -when -where -who -will -with -und -the -www -- GitLab From 969c52e5724a4a380ac11df87059f5bc39631da0 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 21:49:21 +0100 Subject: [PATCH 236/440] fixed occurrences of html named entities in translation files to be xhtml-compatible --- inc/lang/fr/lang.php | 4 +-- inc/lang/he/lang.php | 2 +- inc/lang/he/mailtext.txt | 4 +-- inc/lang/he/registermail.txt | 4 +-- inc/lang/km/lang.php | 6 ++--- lib/plugins/authldap/lang/zh-tw/settings.php | 6 ++--- lib/plugins/authldap/lang/zh/settings.php | 6 ++--- lib/plugins/authmysql/lang/ja/settings.php | 4 +-- lib/plugins/authpgsql/lang/ja/settings.php | 4 +-- lib/plugins/config/lang/eo/lang.php | 2 +- lib/plugins/config/lang/zh-tw/lang.php | 2 +- lib/plugins/extension/lang/pt-br/lang.php | 26 +++++++++---------- .../extension/lang/pt/intro_templates.txt | 2 +- 13 files changed, 36 insertions(+), 36 deletions(-) diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 74b1edd19..f3077bf88 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sébastien Bauer <sebastien.bauer@advalvas.be> * @author Antoine Fixary <antoine.fixary@freesbee.fr> * @author cumulus <pta-n56@myamail.com> @@ -197,7 +197,7 @@ $lang['accessdenied'] = 'Vous n\'êtes pas autorisé à voir cette page $lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :'; $lang['mediaview'] = 'Afficher le fichier original'; $lang['mediaroot'] = 'racine'; -$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)'; +$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)'; $lang['mediaextchange'] = 'Extension du fichier modifiée de .%s en .%s !'; $lang['reference'] = 'Références pour'; $lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 1859d3c3e..a24ccace9 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -289,7 +289,7 @@ $lang['i_problems'] = '×ª×›× ×™×ª ×”×”×ª×§× ×” זיהתה מספר ב $lang['i_modified'] = 'משיקולי ×בטחה סקריפט ×–×” יעבוד ×ך ורק ×¢× ×”×ª×§× ×ª DokuWiki חדשה ×©×œ× ×¢×‘×¨×” כל ×©×™× ×•×™. עליך לחלץ ×©× ×™×ª ×ת ×”×§×‘×¦×™× ×ž×”×—×‘×™×œ×” שהורדה ×ו להיעזר בדף <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; -$lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; +$lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; $lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> × ×ž×•×›×” מ <code>%s</code> הצורך. ×תה צריך לשדרג PHP שלך להתקין.'; $lang['i_mbfuncoverload'] = 'יש לבטל ×ת mbstring.func_overload בphp.ini בכדי להריץ ×ת DokuWiki'; $lang['i_permfail'] = '<code>%s</code> ××™× ×” × ×™×ª× ×ª לכתיבה על ידי DokuWiki. עליך ×œ×©× ×•×ª הרש×ות תיקייה זו!'; diff --git a/inc/lang/he/mailtext.txt b/inc/lang/he/mailtext.txt index 222ee1b6d..5ef4ec7e2 100644 --- a/inc/lang/he/mailtext.txt +++ b/inc/lang/he/mailtext.txt @@ -2,7 +2,7 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת ×”Ö¾IP‏ : @IPADDRESS@ +כתובת ×”Ö¾IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ המהדורה ×”×™×©× ×”: @OLDPAGE@ המהדורה החדשה: @NEWPAGE@ @@ -11,7 +11,7 @@ @DIFF@ --- +-- דף ×–×” × ×•×¦×¨ ×¢×´×™ ×”Ö¾DokuWiki הזמין בכתובת @DOKUWIKIURL@ diff --git a/inc/lang/he/registermail.txt b/inc/lang/he/registermail.txt index 3edca3fa0..d478d1c20 100644 --- a/inc/lang/he/registermail.txt +++ b/inc/lang/he/registermail.txt @@ -6,9 +6,9 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת IP‏ : @IPADDRESS@ +כתובת IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ --- +-- הודעת דו×״ל זו × ×•×¦×¨×” על ידי ×”Ö¾DokuWiki הזמין בכתובת @DOKUWIKIURL@ diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index 4c2d7f688..52e0e6a3d 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -61,7 +61,7 @@ $lang['reguexists'] = 'សុំអាទោស​ នាមប្រើន០$lang['regsuccess'] = 'អ្នកប្រើបានបង្កើážáž ើយ និងពាក្សសម្ងាážáž€áŸáž”ានផ្ញើទៀážáŸ”'; $lang['regsuccess2']= 'អ្នកប្រើបានបង្កើážáž ើយ។'; $lang['regmailfail']= 'មើលទៅដុចជាមានកំហុសក្នុង....សុំទាកទងអ្នកក្របក្រង'; -$lang['regbadmail'] = 'អ៊ីមáŸáž›áž¢áŸ’នកសាសáŸáž˜áž·áž“ážáŸ’រូវបញ្ជរ—បើអ្នកកិážážáž¶áž“áŸáŸ‡áž‡áž¶áž€áŸ†áž ុសបដិបážáŸ’ážáž· សុំទាកទងអ្នកក្របគ្រោង។'; +$lang['regbadmail'] = 'អ៊ីមáŸáž›áž¢áŸ’នកសាសáŸáž˜áž·áž“ážáŸ’រូវបញ្ជរ—បើអ្នកកិážážáž¶áž“áŸáŸ‡áž‡áž¶áž€áŸ†áž ុសបដិបážáŸ’ážáž· សុំទាកទងអ្នកក្របគ្រោង។'; $lang['regbadpass'] = 'គូពាក្សសម្ងាážáž˜áž·áž“ដូចគ្នាទ០សមសាកទៀážáŸ”'; $lang['regpwmail'] = 'ពាក្សសម្ងាážáž¢áŸ’នក'; $lang['reghere'] = 'អ្នកឥážáž˜áž¶áž“បញ្ជីនាមបម្រើទáŸ? សុំចល់ចុះឈ្មោះធ្វើគណនីសម្របប្រើប្រស'; @@ -99,8 +99,8 @@ $lang['uploadbadcontent'] = 'ធាážáž»áž…ំរុញឡើងមិនážáŸ’ $lang['uploadspam'] = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„ ដៅយ '; $lang['uploadxss'] = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„ '; $lang['deletesucc'] = 'ឯកសារ «%s» បានលុបហើយ។'; -$lang['deletefail'] = '«%s» មិនអាចលុបទáŸ&mdashមើល'; -$lang['mediainuse'] = 'ឯកសារ «%s» ឥážáž‘ានលុបទáŸ&mdashមានគáŸáž€áŸ†áž—áž„áž‘áŸáž‡áž¶áž”់ប្រើ។'; +$lang['deletefail'] = '«%s» មិនអាចលុបទáŸâ€”មើល'; +$lang['mediainuse'] = 'ឯកសារ «%s» ឥážáž‘ានលុបទáŸâ€”មានគáŸáž€áŸ†áž—áž„áž‘áŸáž‡áž¶áž”់ប្រើ។'; $lang['namespaces'] = 'នាមដ្ឋាន'; $lang['mediafiles'] = 'ឯកសារទំនáŸáž“ៅក្នុង'; diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php index e3d85cb87..dcbbace8c 100644 --- a/lib/plugins/authldap/lang/zh-tw/settings.php +++ b/lib/plugins/authldap/lang/zh-tw/settings.php @@ -2,15 +2,15 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author syaoranhinata@gmail.com */ $lang['server'] = '您的 LDAP 伺æœå™¨ã€‚填寫主機å稱 (<code>localhost</code>) 或完整的 URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP 伺æœå™¨ç«¯å£ (若上方沒填寫完整的 URL)'; $lang['usertree'] = '到哪è£å°‹æ‰¾ä½¿ç”¨è€…帳號?如: <code>ou=People, dc=server, dc=tld</code>'; $lang['grouptree'] = '到哪è£å°‹æ‰¾ä½¿ç”¨è€…群組?如: <code>ou=Group, dc=server, dc=tld</code>'; -$lang['userfilter'] = '用於æœç´¢ä½¿ç”¨è€…賬號的 LDAP 篩é¸å™¨ã€‚如: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; -$lang['groupfilter'] = '用於æœç´¢ç¾¤çµ„çš„ LDAP 篩é¸å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['userfilter'] = '用於æœç´¢ä½¿ç”¨è€…賬號的 LDAP 篩é¸å™¨ã€‚如: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = '用於æœç´¢ç¾¤çµ„çš„ LDAP 篩é¸å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = '使用的通訊å”定版本。您å¯èƒ½è¦è¨ç½®ç‚º <code>3</code>'; $lang['starttls'] = '使用 TLS 連接嗎?'; $lang['referrals'] = '是å¦å…許引用 (referrals)?'; diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index 4f4a0a8b8..11cba4f55 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author lainme <lainme993@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> * @author Errol <errol@hotmail.com> @@ -11,8 +11,8 @@ $lang['server'] = '您的 LDAP æœåŠ¡å™¨ã€‚填写主机å (<code $lang['port'] = 'LDAP æœåŠ¡å™¨ç«¯å£ (如果上é¢æ²¡æœ‰ç»™å‡ºå®Œæ•´çš„ URL)'; $lang['usertree'] = '何处查找用户账户。例如 <code>ou=People, dc=server, dc=tld</code>'; $lang['grouptree'] = '何处查找用户组。例如 <code>ou=Group, dc=server, dc=tld</code>'; -$lang['userfilter'] = '用于æœç´¢ç”¨æˆ·è´¦æˆ·çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; -$lang['groupfilter'] = '用于æœç´¢ç»„çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['userfilter'] = '用于æœç´¢ç”¨æˆ·è´¦æˆ·çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = '用于æœç´¢ç»„çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = '使用的å议版本。您或许需è¦è®¾ç½®ä¸º <code>3</code>'; $lang['starttls'] = '使用 TLS 连接?'; $lang['referrals'] = '是å¦å…许引用 (referrals)?'; diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php index e5d5689df..cc0146b15 100644 --- a/lib/plugins/authmysql/lang/ja/settings.php +++ b/lib/plugins/authmysql/lang/ja/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Satoshi Sahara <sahara.satoshi@gmail.com> */ $lang['server'] = 'MySQL ã®ãƒ›ã‚¹ãƒˆå'; @@ -11,7 +11,7 @@ $lang['password'] = 'MySQL 接続用ユーザーã®ãƒ‘スワード' $lang['database'] = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å'; $lang['charset'] = 'データベースã®æ–‡å—コード'; $lang['debug'] = 'デãƒãƒƒã‚¯æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹'; -$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 %{pass} を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; +$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; $lang['TablesToLock'] = '書ãè¾¼ã¿æ™‚ã«ãƒãƒƒã‚¯ã™ã‚‹ãƒ†ãƒ¼ãƒ–ル(コンマ区切りã§åˆ—挙)'; $lang['checkPass'] = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getUserInfo'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php index d7a5f6cf2..001008c9f 100644 --- a/lib/plugins/authpgsql/lang/ja/settings.php +++ b/lib/plugins/authpgsql/lang/ja/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Satoshi Sahara <sahara.satoshi@gmail.com> */ $lang['server'] = 'PostgreSQL ã®ã‚µãƒ¼ãƒãƒ¼å'; @@ -11,7 +11,7 @@ $lang['user'] = 'PostgreSQL 接続用ユーザーå'; $lang['password'] = 'PostgreSQL 接続用ユーザーã®ãƒ‘スワード'; $lang['database'] = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å'; $lang['debug'] = 'デãƒãƒƒã‚¯æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹'; -$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 %{pass} を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; +$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; $lang['checkPass'] = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getUserInfo'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getGroups'] = 'ユーザーãŒæ‰€å±žã™ã‚‹å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; diff --git a/lib/plugins/config/lang/eo/lang.php b/lib/plugins/config/lang/eo/lang.php index 440d771dc..566da0d2d 100644 --- a/lib/plugins/config/lang/eo/lang.php +++ b/lib/plugins/config/lang/eo/lang.php @@ -137,7 +137,7 @@ $lang['compress'] = 'Kompaktigi CSS-ajn kaj ĵavaskriptajn elmetojn $lang['cssdatauri'] = 'Grandeco en bitokoj, Äis kiom en CSS-dosieroj referencitaj bildoj enmetiÄu rekte en la stilfolion por malgrandigi vanan HTTP-kapan trafikon. Tiu tekniko ne funkcias en IE 7 aÅ pli frua! <code>400</code> Äis <code>600</code> bitokoj estas bona grandeco. Indiku <code>0</code> por malebligi enmeton.'; $lang['send404'] = 'Sendi la mesaÄon "HTTP 404/PaÄo ne trovita" por ne ekzistantaj paÄoj'; -$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuÅaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&task_id=852&">Cimon 852</a> por pli da informoj.'; +$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuÅaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Cimon 852</a> por pli da informoj.'; $lang['xsendfile'] = 'Ĉu uzi la kaplinion X-Sendfile por ebligi al la retservilo liveri fiksajn dosierojn? Via retservilo subtenu tion.'; $lang['renderer_xhtml'] = 'Prezentilo por la ĉefa vikia rezulto (xhtml)'; $lang['renderer__core'] = '%s (DokuWiki-a kerno)'; diff --git a/lib/plugins/config/lang/zh-tw/lang.php b/lib/plugins/config/lang/zh-tw/lang.php index cc2c28c31..c586a0d51 100644 --- a/lib/plugins/config/lang/zh-tw/lang.php +++ b/lib/plugins/config/lang/zh-tw/lang.php @@ -137,7 +137,7 @@ $lang['gzip_output'] = 'å° xhtml 使用 gzip 內容編碼'; $lang['compress'] = '壓縮 CSS 與 JavaScript 的輸出'; $lang['cssdatauri'] = 'å‡å¦‚ CSS ä¸æ‰€å¼•ç”¨çš„圖片å°æ–¼è©²æ•¸å—大å°(bytes),圖片將被直接嵌入 CSS ä¸ï¼Œä»¥æ¸›å°‘ HTTP Request 的發é€ã€‚ IE 7 åŠä»¥ä¸‹çš„版本並ä¸æ”¯æ´æ¤åŠŸèƒ½ã€‚推薦把æ¤æ•¸å€¼è¨å®šæˆ <code>400</code> 至 <code>600</code> bytes 之間。若輸入 <code>0</code> 則åœç”¨æ¤åŠŸèƒ½ã€‚'; $lang['send404'] = 'å˜å–ä¸å˜åœ¨çš„é é¢æ™‚é€å‡º "HTTP 404/Page Not Found"'; -$lang['broken_iua'] = 'ignore_user_abort 功能失效了?這有å¯èƒ½å°Žè‡´æœç´¢ç´¢å¼•ä¸å¯ç”¨ã€‚IIS+PHP/CGI å·²æ壞。請åƒé–± <a href=\"http://bugs.splitbrain.org/?do=details&task_id=852\">Bug 852</a> ç²å–更多訊æ¯ã€‚'; +$lang['broken_iua'] = 'ignore_user_abort 功能失效了?這有å¯èƒ½å°Žè‡´æœç´¢ç´¢å¼•ä¸å¯ç”¨ã€‚IIS+PHP/CGI å·²æ壞。請åƒé–± <a href=\"http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> ç²å–更多訊æ¯ã€‚'; $lang['xsendfile'] = '使用 X-Sendfile é 讓網é 伺æœå™¨ç™¼é€ç‹€æ…‹æ–‡ä»¶ï¼Ÿæ‚¨çš„網é 伺æœå™¨éœ€è¦æ”¯æŒè©²åŠŸèƒ½ã€‚'; $lang['renderer_xhtml'] = 'ä¸»è¦ wiki 輸出 (xhtml) 的渲染器'; $lang['renderer__core'] = '%s (dokuwiki æ ¸å¿ƒ)'; diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php index f7b7a0d2b..823900acf 100644 --- a/lib/plugins/extension/lang/pt-br/lang.php +++ b/lib/plugins/extension/lang/pt-br/lang.php @@ -63,7 +63,7 @@ $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Extensão %s habilitada'; $lang['msg_disabled'] = 'Extensão %s desabilitada'; $lang['msg_delete_success'] = 'Extensão %s desinstalada'; -$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão %s'; +$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão %s'; $lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso'; $lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso'; $lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso'; @@ -75,18 +75,18 @@ $lang['security_warning'] = '<strong>Aviso sobre segurança:</strong> %s'; $lang['update_available'] = '<strong>Atualização:</strong> Nova versão %s está disponÃvel.'; $lang['wrong_folder'] = '<strong>Extensão instalada incorretamente:</strong> Renomeie o diretório de extensões "%s" para "%s".'; $lang['url_change'] = '<strong>URL mudou:</strong> A URL para baixar mudou desde a última baixada. Verifique se a nova URL é válida antes de atualizar a extensão.<br />Novo: %s<br />Velho: %s'; -$lang['error_badurl'] = 'O URL deve começar com http ou https'; -$lang['error_dircreate'] = 'Impossível criar pasta temporária para receber o download'; -$lang['error_download'] = 'Impossável baixar o arquivo: %s'; -$lang['error_decompress'] = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.'; -$lang['error_findfolder'] = 'Impossíl identificar a extensão do diretório, você deve baixar e instalar manualmente.'; -$lang['error_copy'] = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</ em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável'; -$lang['noperms'] = 'Diretório de extensão não é gravável'; -$lang['notplperms'] = 'Diretório de modelo (Template) não é gravável'; -$lang['nopluginperms'] = 'Diretório de plugin não é gravável'; -$lang['git'] = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.'; -$lang['auth'] = 'O plugin auth não está ativado na configuração, considere desativá-lo.'; +$lang['error_badurl'] = 'O URL deve começar com http ou https'; +$lang['error_dircreate'] = 'ImpossÃvel criar pasta temporária para receber o download'; +$lang['error_download'] = 'Impossável baixar o arquivo: %s'; +$lang['error_decompress'] = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.'; +$lang['error_findfolder'] = 'ImpossÃl identificar a extensão do diretório, você deve baixar e instalar manualmente.'; +$lang['error_copy'] = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável'; +$lang['noperms'] = 'Diretório de extensão não é gravável'; +$lang['notplperms'] = 'Diretório de modelo (Template) não é gravável'; +$lang['nopluginperms'] = 'Diretório de plugin não é gravável'; +$lang['git'] = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.'; +$lang['auth'] = 'O plugin auth não está ativado na configuração, considere desativá-lo.'; $lang['install_url'] = 'Instale a partir do URL:'; -$lang['install_upload'] = 'Publicar Extensão:'; +$lang['install_upload'] = 'Publicar Extensão:'; $lang['repo_error'] = 'O repositório de plugin não pode ser contactado. Certifique-se de que o servidor pode acessar www.dokuwiki.org e confira suas configurações de proxy.'; $lang['nossl'] = 'Sua instalação PHP parece que não suporta SSL. Algumas extensões DokuWiki não serão baixadas.'; diff --git a/lib/plugins/extension/lang/pt/intro_templates.txt b/lib/plugins/extension/lang/pt/intro_templates.txt index ecdf99f17..02bc33643 100644 --- a/lib/plugins/extension/lang/pt/intro_templates.txt +++ b/lib/plugins/extension/lang/pt/intro_templates.txt @@ -1 +1 @@ -Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[Do = admin & page = configuração |? Configuration Manager]]. \ No newline at end of file +Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[?do=admin&page=config|Configuration Manager]]. -- GitLab From 8aceb983f4d8ab414fda0598287fb876703d1de8 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 12 Jul 2015 23:47:02 +0100 Subject: [PATCH 237/440] fixed some wrong quotation marks in language files --- inc/lang/bg/lang.php | 6 +++--- inc/lang/bn/lang.php | 12 ++++++------ inc/lang/eo/lang.php | 4 ++-- inc/lang/et/lang.php | 2 +- inc/lang/fi/lang.php | 4 ++-- inc/lang/fo/lang.php | 10 +++++----- inc/lang/hr/lang.php | 4 ++-- inc/lang/id/lang.php | 8 ++++---- inc/lang/kk/lang.php | 4 ++-- inc/lang/la/lang.php | 8 ++++---- inc/lang/mk/lang.php | 4 +++- inc/lang/no/lang.php | 2 +- inc/lang/pl/lang.php | 4 ++-- inc/lang/ro/lang.php | 4 ++-- inc/lang/ru/lang.php | 4 ++-- inc/lang/sq/lang.php | 8 ++++---- inc/lang/ta/lang.php | 6 +++--- inc/lang/th/lang.php | 4 ++-- inc/lang/uk/lang.php | 3 +-- 19 files changed, 51 insertions(+), 50 deletions(-) diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 9176cee56..697f39ad3 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Nikolay Vladimirov <nikolay@vladimiroff.com> * @author Viktor Usunov <usun0v@mail.bg> * @author Kiril <neohidra@gmail.com> @@ -10,8 +10,8 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '„'; +$lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index db7baa0f2..512b94132 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -9,12 +9,12 @@ * @author Ninetailz <ninetailz1125@gmail.com> */ $lang['encoding'] = 'utf-8'; -$lang['direction'] = 'itr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; -$lang['apostrophe'] = '\''; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = 'â€'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'à¦à¦‡ পৃষà§à¦ া সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨'; $lang['btn_source'] = 'দেখান পাতা উৎস'; $lang['btn_show'] = 'দেখান পৃষà§à¦ া'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 24df39dc7..3e0b91059 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Antono Vasiljev <esperanto.minsk ĈE tut.by> * @author Felipe Castro <fefcas@yahoo.com.br> * @author Felipe Castro <fefcas@uol.com.br> @@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Redakti la paÄon'; $lang['btn_source'] = 'Montri fontan tekston'; $lang['btn_show'] = 'Montri paÄon'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 2372482c3..dbff49dfc 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oliver S6ro <seem.iges@mail.ee> * @author Aari Juhanson <aari@vmg.vil.ee> * @author Kaiko Kaur <kaiko@kultuur.edu.ee> diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 0f70efa5c..de2ca13da 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Petteri <petteri@gmail.com> * @author Matti Pöllä <mpo@iki.fi> * @author Otto Vainio <otto@valjakko.net> @@ -17,7 +17,7 @@ $lang['doublequoteopening'] = 'â€'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '’'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Muokkaa tätä sivua'; $lang['btn_source'] = 'Näytä sivun lähdekoodi'; $lang['btn_show'] = 'Näytä sivu'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index f3f462272..d1d7096c9 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -8,11 +8,11 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = 'Vanligt gásareygað byrjan'; -$lang['doublequoteclosing'] = 'Vanligt gásareygað endi'; -$lang['singlequoteopening'] = 'Einstakt gásareygað byrjan'; -$lang['singlequoteclosing'] = 'Einstakt gásareygað endi'; -$lang['apostrophe'] = 'Apostroff'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; +$lang['singlequoteopening'] = '\''; +$lang['singlequoteclosing'] = '\''; +$lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Rætta hetta skjal'; $lang['btn_source'] = 'VÃs keldu'; $lang['btn_show'] = 'VÃs skjal'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 39eaa18c0..40e0c59c3 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tomo Krajina <aaa@puzz.info> * @author Branko Rihtman <theney@gmail.com> * @author Dražen OdobaÅ¡ić <dodobasic@gmail.com> @@ -15,7 +15,7 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Izmijeni stranicu'; $lang['btn_source'] = 'Prikaži kod stranice'; $lang['btn_show'] = 'Prikaži dokument'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 3fc1506e4..4321e2cc9 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -12,10 +12,10 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = 'â€'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Edit halaman ini'; $lang['btn_source'] = 'Lihat sumber halaman'; diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php index 5536d48d3..cb224d9a0 100644 --- a/inc/lang/kk/lang.php +++ b/inc/lang/kk/lang.php @@ -6,8 +6,8 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '\''; diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php index 35f8308d0..d6b828525 100644 --- a/inc/lang/la/lang.php +++ b/inc/lang/la/lang.php @@ -12,11 +12,11 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; $lang['singlequoteopening'] = '`'; -$lang['singlequoteclosing'] = '\''; -$lang['apostrophe'] = '´'; +$lang['singlequoteclosing'] = '´'; +$lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Recensere hanc paginam'; $lang['btn_source'] = 'Fontem uidere'; $lang['btn_show'] = 'Ostendere paginam'; diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index 5621fe9c0..034d98b38 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -14,7 +14,9 @@ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; -$lang['apostrophe'] = '\''; +$lang['singlequoteopening'] = '’'; +$lang['singlequoteclosing'] = '‘'; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Уреди ја Ñтраницата'; $lang['btn_source'] = 'Прикажи ја изворната Ñтраница'; $lang['btn_show'] = 'Прикажи Ñтраница'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 51854f80d..9388a0a70 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -30,7 +30,7 @@ $lang['doublequoteopening'] = '«'; $lang['doublequoteclosing'] = '»'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Rediger denne siden'; $lang['btn_source'] = 'Vis kildekode'; $lang['btn_show'] = 'Vis siden'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 5c9acfa17..ae307b4fd 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Grzegorz Å»ur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> @@ -25,7 +25,7 @@ $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Edytuj stronÄ™'; $lang['btn_source'] = 'Pokaż źródÅ‚o strony'; $lang['btn_show'] = 'Pokaż stronÄ™'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 5953fccda..5dab68c69 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tiberiu Micu <tibimicu@gmx.net> * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author Emanuel-Emeric AndraÈ™i <n30@mandrivausers.ro> @@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Editează această pagină'; $lang['btn_source'] = 'Arată sursa paginii'; $lang['btn_show'] = 'Arată pagina'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 7aa7c5b09..40d3ffefe 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Yuri Pimenov <up@ftpsearch.lv> * @author Igor Tarasov <tigr@mail15.com> * @author Denis Simakov <akinoame1@gmail.com> @@ -33,7 +33,7 @@ * @author Nolf <m.kopachovets@gmail.com> * @author Takumo <9206984@mail.ru> */ -$lang['encoding'] = ' utf-8'; +$lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '«'; $lang['doublequoteclosing'] = '»'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index 3d2146394..331819a66 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -12,10 +12,10 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; +$lang['doublequoteopening'] = '„'; +$lang['doublequoteclosing'] = '“'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Redaktoni këtë faqe'; $lang['btn_source'] = 'Trego kodin burim të faqes'; diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php index 41c4a94c3..422613ec7 100644 --- a/inc/lang/ta/lang.php +++ b/inc/lang/ta/lang.php @@ -2,12 +2,12 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Naveen Venugopal <naveen.venugopal.anu@gmail.com> * @author Sri Saravana <saravanamuthaly@gmail.com> */ -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; $lang['singlequoteopening'] = '\''; $lang['singlequoteclosing'] = '\''; $lang['apostrophe'] = '\''; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index e40b69454..59332f70b 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Komgrit Niyomrath <n.komgrit@gmail.com> * @author Arthit Suriyawongkul <arthit@gmail.com> * @author Kittithat Arnontavilas <mrtomyum@gmail.com> @@ -11,7 +11,7 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '“ '; +$lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 52edaafda..74a717bfe 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oleksiy Voronin <ovoronin@gmail.com> * @author serg_stetsuk@ukr.net * @author Oleksandr Kunytsia <okunia@gmail.com> @@ -189,7 +189,6 @@ $lang['line'] = 'Ð Ñдок'; $lang['breadcrumb'] = 'Відвідано:'; $lang['youarehere'] = 'Ви тут:'; $lang['lastmod'] = 'Ð’ оÑтаннє змінено:'; -$lang['by'] = ' '; $lang['deleted'] = 'знищено'; $lang['created'] = 'Ñтворено'; $lang['restored'] = 'відновлено Ñтару ревізію (%s)'; -- GitLab From 70519db93fdd6d635397c1354a33f2b1071e2d13 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Mon, 13 Jul 2015 00:26:03 +0100 Subject: [PATCH 238/440] fixed a few links and html errors in language files --- inc/lang/ar/lang.php | 4 ++-- inc/lang/bn/lang.php | 2 +- inc/lang/ca/lang.php | 6 +++--- inc/lang/de/lang.php | 4 ++-- inc/lang/el/lang.php | 6 +++--- inc/lang/fr/lang.php | 2 +- inc/lang/gl/lang.php | 4 ++-- inc/lang/tr/lang.php | 6 +++--- inc/lang/zh-tw/lang.php | 6 +++--- lib/plugins/authad/lang/pt/settings.php | 4 ++-- lib/plugins/extension/lang/pt/lang.php | 4 ++-- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index a3c56c969..fb89bb0c7 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -297,8 +297,8 @@ $lang['i_badhash'] = 'المل٠dokuwiki.php غير مصن٠أو (hash=<code>%s</code>)'; $lang['i_badval'] = 'القيمة <code>%s</code> غير شرعية أو Ùارغة'; $lang['i_success'] = 'الإعدادات تمت بنجاØØŒ يرجى Øذ٠المل٠install.php الآن. -ثم تابع إلى <a href="doku.php"> دوكو ويكي الجديدة</a>'; -$lang['i_failure'] = 'بعض الأخطاء Øدثت أثنا كتابة ملÙات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php"> دوكو ويكي الجديدة</a>'; +ثم تابع إلى <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>'; +$lang['i_failure'] = 'بعض الأخطاء Øدثت أثنا كتابة ملÙات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>'; $lang['i_policy'] = 'ØªØµØ±ÙŠØ ACL مبدئي'; $lang['i_pol0'] = 'ويكي Ù…ÙتوØØ©Ø› أي القراءة والكتابة والتØميل مسموØØ© للجميع'; $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتØميل للمشتركين المسجلين Ùقط'; diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index 512b94132..5cb66a853 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -195,7 +195,7 @@ $lang['created'] = 'তৈরি করা'; $lang['restored'] = 'পà§à¦°à¦¾à¦¨à§‹ সংসà§à¦•à¦°à¦£à§‡à¦° পà§à¦¨à¦ƒà¦¸à§à¦¥à¦¾à¦ªà¦¨ (%s)'; $lang['external_edit'] = 'বাহà§à¦¯à¦¿à¦• সমà§à¦ªà¦¾à¦¦à¦¨à¦¾'; $lang['summary'] = 'সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সারাংশ'; -$lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </ a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; $lang['download'] = 'ডাউনলোড সà§à¦¨à¦¿à¦ªà§‡à¦Ÿ '; $lang['tools'] = 'সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; $lang['user_tools'] = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 220600dec..bb21f5c3c 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author daniel@6temes.cat @@ -271,8 +271,8 @@ $lang['i_confexists'] = '<code>%s</code> ja existeix'; $lang['i_writeerr'] = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.'; $lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - valor il·legal o buit'; -$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou <a href="doku.php">DokuWiki</a>.'; -$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el vostre nou <a href="doku.php">DokuWiki</a>.'; +$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.'; +$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.'; $lang['i_policy'] = 'PolÃtica ACL inicial'; $lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)'; $lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index d74f66149..b4ead79f2 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr <andi@splitbrain.org> * @author Christof <gagi@fin.de> * @author Anika Henke <anika@selfthinker.org> @@ -358,5 +358,5 @@ $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnisse'; $lang['plainhtml'] = 'HTML Klartext'; $lang['wikimarkup'] = 'Wiki Markup'; -$lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>'; +$lang['page_nonexist_rev'] = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>'; $lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 21a854b30..0e62dd37b 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Îταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> @@ -284,8 +284,8 @@ $lang['i_confexists'] = '<code>%s</code> υπάÏχει ήδη'; $lang['i_writeerr'] = 'Δεν είναι δυνατή η δημιουÏγία του <code>%s</code>. Î ÏÎπει να διοÏθώσετε τα δικαιώματα Ï€Ïόσβασης Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… φακÎλου/αÏχείου και να δημιουÏγήσετε το αÏχείο χειÏοκίνητα!'; $lang['i_badhash'] = 'Μη αναγνωÏίσιμο ή Ï„ÏοποποιημÎνο αÏχείο dokuwiki.php (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - λάθος ή ανÏπαÏκτη τιμή'; -$lang['i_success'] = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλÎον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο <a href="doku.php">νÎο σας DokuWiki</a>.'; -$lang['i_failure'] = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανÎωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το <a href="doku.php">νÎο σας DokuWiki</a>.'; +$lang['i_success'] = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλÎον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο <a href="doku.php?id=wiki:welcome">νÎο σας DokuWiki</a>.'; +$lang['i_failure'] = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανÎωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το <a href="doku.php?id=wiki:welcome">νÎο σας DokuWiki</a>.'; $lang['i_policy'] = 'ΑÏχική πολιτική Λίστας Δικαιωμάτων Î Ïόσβασης - ACL'; $lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μποÏοÏν να διαβάσουν ή να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μποÏοÏν να διαβάσουν σελίδες αλλά μόνο οι εγγεγÏαμμÎνοι χÏήστες μποÏοÏν να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index f3077bf88..4a25aab43 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -318,7 +318,7 @@ $lang['i_writeerr'] = 'Impossible de créer <code>%s</code>. Vous dev $lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - valeur interdite ou vide'; $lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.'; -$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php">votre nouveau DokuWiki</a>.'; +$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.'; $lang['i_policy'] = 'Politique de contrôle d\'accès initiale'; $lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)'; $lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 9cc460b58..9e3d4f2b2 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -274,9 +274,9 @@ $lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terás de $lang['i_badhash'] = 'dokuwiki.php irrecoñecÃbel ou modificado (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - ilegal ou valor baleiro'; $lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o - <a href="doku.php">teu novo DokuWiki</a>.'; + <a href="doku.php?id=wiki:welcome">teu novo DokuWiki</a>.'; $lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes - de poderes empregar <a href="doku.php">o teu novo DokuWiki</a>.'; + de poderes empregar <a href="doku.php?id=wiki:welcome">o teu novo DokuWiki</a>.'; $lang['i_policy'] = 'Regras iniciais da ACL'; $lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)'; $lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 6b4315c7c..2242b1792 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Selim FarsakoÄŸlu <farsakogluselim@yahoo.de> * @author Aydın CoÅŸkuner <aydinweb@gmail.com> * @author Cihan Kahveci <kahvecicihan@gmail.com> @@ -290,8 +290,8 @@ $lang['i_confexists'] = '<code>%s</code> zaten var'; $lang['i_writeerr'] = '<code>%s</code> oluÅŸturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluÅŸturmalısınız.'; $lang['i_badhash'] = 'dokuwiki.php tanınamadı ya da deÄŸiÅŸtirilmiÅŸ (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - Yanlış veya boÅŸ deÄŸer'; -$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. <a href="doku.php">Yeni DokuWikiniz</a>i kullanabilirsiniz.'; -$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. <a href="doku.php">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.'; +$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanabilirsiniz.'; +$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.'; $lang['i_policy'] = 'Ä°lk ACL ayarı'; $lang['i_pol0'] = 'Tamamen Açık Wiki (herkes okuyabilir, yazabilir ve dosya yükleyebilir)'; $lang['i_pol1'] = 'Açık Wiki (herkes okuyabilir, ancak sadece üye olanlar yazabilir ve dosya yükleyebilir)'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index bfe38b920..b69456ee7 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author chinsan <chinsan@mail2000.com.tw> * @author Li-Jiun Huang <ljhuang.tw@gmail.com> * @author http://www.chinese-tools.com/tools/converter-simptrad.html @@ -296,8 +296,8 @@ $lang['i_writeerr'] = '無法建立 <code>%s</code>ã€‚æ‚¨å¿…é ˆæª¢æŸ¥ $lang['i_badhash'] = '無法辨è˜æˆ–å·²é修改的 dokuwiki.php (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> —— éžæ³•æˆ–空白的值'; $lang['i_success'] = 'è¨å®šå·²å®Œæˆã€‚您ç¾åœ¨å¯ä»¥åˆªé™¤ install.php 檔案。繼續到 -<a href="doku.php">您的新 DokuWiki</a>.'; -$lang['i_failure'] = '寫入è¨å®šæª”æ™‚ç™¼ç”Ÿäº†ä¸€äº›éŒ¯èª¤ã€‚æ‚¨å¿…é ˆåœ¨ä½¿ç”¨<a href="doku.php">您的新 Dokuwiki</a> 之å‰æ‰‹å‹•ä¿®æ£å®ƒå€‘。'; +<a href="doku.php?id=wiki:welcome">您的新 DokuWiki</a>.'; +$lang['i_failure'] = '寫入è¨å®šæª”æ™‚ç™¼ç”Ÿäº†ä¸€äº›éŒ¯èª¤ã€‚æ‚¨å¿…é ˆåœ¨ä½¿ç”¨<a href="doku.php?id=wiki:welcome">您的新 Dokuwiki</a> 之å‰æ‰‹å‹•ä¿®æ£å®ƒå€‘。'; $lang['i_policy'] = 'åˆæ¥çš„ ACL 政ç–'; $lang['i_pol0'] = '開放的 wiki (任何人å¯è®€å–ã€å¯«å…¥ã€ä¸Šå‚³)'; $lang['i_pol1'] = '公開的 wiki (任何人å¯è®€å–,註冊使用者å¯å¯«å…¥èˆ‡ä¸Šå‚³)'; diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php index 6256eb597..c5756890d 100644 --- a/lib/plugins/authad/lang/pt/settings.php +++ b/lib/plugins/authad/lang/pt/settings.php @@ -2,14 +2,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author André Neves <drakferion@gmail.com> * @author Murilo <muriloricci@hotmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> * @author Guido Salatino <guidorafael23@gmail.com> */ $lang['account_suffix'] = 'O sufixo da sua conta. Por exemplo, <code>@my.domain.org</code>'; -$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </ code>'; +$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </code>'; $lang['domain_controllers'] = 'Uma lista separada por vÃrgulas de Controladores de DomÃnio (AD DC). Ex.: <code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = 'Um utilizador com privilégios na Active Directory que tenha acesso aos dados de todos os outros utilizadores. Opcional, mas necessário para certas ações como enviar emails de subscrição.'; $lang['admin_password'] = 'A senha para o utilizador acima.'; diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php index c9ca8d976..e8c8a7d55 100644 --- a/lib/plugins/extension/lang/pt/lang.php +++ b/lib/plugins/extension/lang/pt/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> */ @@ -41,7 +41,7 @@ $lang['downloadurl'] = 'Baixar URL: '; $lang['repository'] = 'Repositório: '; -$lang['unknown'] = '<em> desconhecido </ em> +$lang['unknown'] = '<em> desconhecido </em> '; $lang['installed_version'] = 'Versão instalada:'; $lang['install_date'] = 'Sua última atualização:'; -- GitLab From cf6939cdfbd42d9ba56562c606587915b84a20c6 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Mon, 13 Jul 2015 23:36:24 +0200 Subject: [PATCH 239/440] Better suggestion for changing warning for nosmblink in browsers Improves syntax page due to feedback at #1233 --- data/pages/wiki/syntax.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 613c04ace..750f7e4f5 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -83,9 +83,14 @@ Windows shares like [[\\server\share|this]] are recognized, too. Please note tha Notes: * For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone"). - * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/userscript.js'': - - LANG.nosmblinks = ''; + * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code php conf/lang/en/lang.php> +<?php +/** + * Customization of the english language file + * Copy only the strings that needs to be modified + */ +$lang['js']['nosmblinks'] = ''; +</code> ==== Image Links ==== -- GitLab From d1427af7333593a01c5f917583f9dd03757dabd1 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Mon, 13 Jul 2015 23:42:58 +0200 Subject: [PATCH 240/440] no syntax highlighting, it attracts too much readers attention --- data/pages/wiki/syntax.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 750f7e4f5..bdfda9c46 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -83,7 +83,7 @@ Windows shares like [[\\server\share|this]] are recognized, too. Please note tha Notes: * For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone"). - * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code php conf/lang/en/lang.php> + * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code - conf/lang/en/lang.php> <?php /** * Customization of the english language file -- GitLab From 8cce24b8aea630d7791ca2b67ad6dc4bf89c19a9 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 15 Jul 2015 14:56:08 +0200 Subject: [PATCH 241/440] translation update --- lib/plugins/authldap/lang/ja/lang.php | 9 +++++++++ lib/plugins/authldap/lang/ja/settings.php | 5 +++++ lib/plugins/authmysql/lang/ja/lang.php | 11 +++++++++++ lib/plugins/authmysql/lang/ja/settings.php | 2 +- lib/plugins/authpgsql/lang/ja/settings.php | 2 +- lib/plugins/extension/lang/ja/lang.php | 1 + 6 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 lib/plugins/authldap/lang/ja/lang.php create mode 100644 lib/plugins/authmysql/lang/ja/lang.php diff --git a/lib/plugins/authldap/lang/ja/lang.php b/lib/plugins/authldap/lang/ja/lang.php new file mode 100644 index 000000000..aeeb6c75e --- /dev/null +++ b/lib/plugins/authldap/lang/ja/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['connectfail'] = 'LDAP ã«æŽ¥ç¶šã§ãã¾ã›ã‚“: %s'; +$lang['domainfail'] = 'LDAP 㧠user dn を発見ã§ãã¾ã›ã‚“。'; diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index 717b5a6d9..99a70de79 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -23,10 +23,15 @@ $lang['binddn'] = '匿åãƒã‚¤ãƒ³ãƒ‰ã§ã¯ä¸å分ãªå ´åˆã€ $lang['bindpw'] = '上記ユーザーã®ãƒ‘スワード'; $lang['userscope'] = 'ユーザー検索ã®ç¯„囲をé™å®šã•ã›ã‚‹'; $lang['groupscope'] = 'グループ検索ã®ç¯„囲をé™å®šã•ã›ã‚‹'; +$lang['userkey'] = 'ユーザーåを示ã™å±žæ€§ã€‚userfilter ã¨ä¸€è‡´ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚'; $lang['groupkey'] = 'ユーザー属性をグループã®ãƒ¡ãƒ³ãƒãƒ¼ã‚·ãƒƒãƒ—ã‹ã‚‰è¨å®šã—ã¾ã™(代ã‚ã‚Šã«æ¨™æº–ã®ADグループ)。 例ãˆã°ã€éƒ¨ç½²ã‚„電話番å·ãªã©ã§ã™ã€‚'; +$lang['modPass'] = 'DokuWiki ã‹ã‚‰ LDAP パスワードã®å¤‰æ›´ãŒå¯èƒ½ï¼Ÿ'; $lang['debug'] = 'エラーã«é–¢ã—ã¦è¿½åŠ ã®ãƒ‡ãƒãƒƒã‚°æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ã€‚'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'デフォルトを使用ã™ã‚‹'; +$lang['referrals_o_0'] = 'referral ã«å¾“ã‚ãªã„'; +$lang['referrals_o_1'] = 'referral ã«å¾“ã†'; diff --git a/lib/plugins/authmysql/lang/ja/lang.php b/lib/plugins/authmysql/lang/ja/lang.php new file mode 100644 index 000000000..a2348f2f3 --- /dev/null +++ b/lib/plugins/authmysql/lang/ja/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['connectfail'] = 'データベースã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚'; +$lang['userexists'] = 'ã“ã®ãƒã‚°ã‚¤ãƒ³åã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; +$lang['usernotexists'] = 'ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å˜åœ¨ã—ã¾ã›ã‚“。'; +$lang['writefail'] = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。Wiki ã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。'; diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php index cc0146b15..6bc3f9a14 100644 --- a/lib/plugins/authmysql/lang/ja/settings.php +++ b/lib/plugins/authmysql/lang/ja/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Satoshi Sahara <sahara.satoshi@gmail.com> */ $lang['server'] = 'MySQL ã®ãƒ›ã‚¹ãƒˆå'; diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php index 001008c9f..c4a82a179 100644 --- a/lib/plugins/authpgsql/lang/ja/settings.php +++ b/lib/plugins/authpgsql/lang/ja/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Satoshi Sahara <sahara.satoshi@gmail.com> */ $lang['server'] = 'PostgreSQL ã®ã‚µãƒ¼ãƒãƒ¼å'; diff --git a/lib/plugins/extension/lang/ja/lang.php b/lib/plugins/extension/lang/ja/lang.php index 42334c767..689a9877e 100644 --- a/lib/plugins/extension/lang/ja/lang.php +++ b/lib/plugins/extension/lang/ja/lang.php @@ -28,6 +28,7 @@ $lang['btn_disable'] = '無効化'; $lang['btn_install'] = 'インストール'; $lang['btn_reinstall'] = 'å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«'; $lang['js']['reallydel'] = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã‚’本当ã«ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã‹ï¼Ÿ'; +$lang['js']['display_viewoptions'] = '表示オプション: '; $lang['js']['display_enabled'] = '有効'; $lang['js']['display_disabled'] = '無効'; $lang['js']['display_updatable'] = 'æ›´æ–°å¯èƒ½'; -- GitLab From 70eb84aa3a9aff0dcd8bc888e98f34f9e24f4af2 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 15 Jul 2015 16:16:31 +0200 Subject: [PATCH 242/440] translation update --- inc/lang/ja/index.txt | 2 +- lib/plugins/acl/lang/ja/help.txt | 15 ++++++--------- lib/plugins/popularity/lang/ja/intro.txt | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/inc/lang/ja/index.txt b/inc/lang/ja/index.txt index b0447899d..b3dbb95f3 100644 --- a/inc/lang/ja/index.txt +++ b/inc/lang/ja/index.txt @@ -1,4 +1,4 @@ ====== サイトマップ ====== -[[doku>namespaces|åå‰ç©ºé–“]] ã«åŸºã¥ãã€å…¨ã¦ã®æ–‡æ›¸ã®ç´¢å¼•ã§ã™ã€‚ +[[doku>ja:namespaces|åå‰ç©ºé–“]] ã«åŸºã¥ãã€å…¨ã¦ã®æ–‡æ›¸ã®ç´¢å¼•ã§ã™ã€‚ diff --git a/lib/plugins/acl/lang/ja/help.txt b/lib/plugins/acl/lang/ja/help.txt index f7867f8e2..a1f03a3af 100644 --- a/lib/plugins/acl/lang/ja/help.txt +++ b/lib/plugins/acl/lang/ja/help.txt @@ -1,11 +1,8 @@ -=== クイックヘルプ: === +=== æ“作案内 === -ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€Wiki内ã®åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æ¨©é™ã‚’è¿½åŠ ãƒ»å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€Wiki 内ã®åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æ¨©é™ã‚’è¿½åŠ ãƒ»å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + * å·¦å´ã®ãƒœãƒƒã‚¯ã‚¹ã«ã¯å˜åœ¨ã™ã‚‹åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚ + * 上部ã®ãƒ•ã‚©ãƒ¼ãƒ を使ã£ã¦ã€é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©é™ã‚’閲覧・変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + * 下部ã®ä¸€è¦§ã¯ã€ç¾åœ¨è¨å®šã•ã‚Œã¦ã„るアクセス制御ã®ãƒ«ãƒ¼ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã“ã®ä¸€è¦§ã‚’使ã£ã¦ã€è¤‡æ•°ã®ãƒ«ãƒ¼ãƒ«ã‚’ç´ æ—©ã変更・削除ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ -å·¦å´ã®ãƒœãƒƒã‚¯ã‚¹ã«ã¯å˜åœ¨ã™ã‚‹åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚ - -上記ã®ãƒ•ã‚©ãƒ¼ãƒ を使ã£ã¦ã€é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©é™ã‚’閲覧・変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ - -以下ã®ãƒ†ãƒ¼ãƒ—ルã«ã¯ã€ç¾åœ¨è¨å®šã•ã‚Œã¦ã„るアクセスコントãƒãƒ¼ãƒ«ã®ãƒ«ãƒ¼ãƒ«ãŒè¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚ã“ã®ãƒ†ãƒ¼ãƒ–ルを使ã£ã¦ã€è¤‡æ•°ã®ãƒ«ãƒ¼ãƒ«ã‚’ç´ æ—©ã変更・削除ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ - -DokuWikiã®ã‚¢ã‚¯ã‚»ã‚¹ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã«ã¤ã„ã¦ã¯ã€[[doku>acl|official documentation on ACL]] ã‚’ãŠèªã¿ä¸‹ã•ã„。 \ No newline at end of file +DokuWiki ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã¤ã„ã¦ã¯ã€[[doku>ja:acl|アクセス制御リスト (ACL)ã®å…¬å¼è§£èª¬]]ã‚’ãŠèªã¿ä¸‹ã•ã„。 \ No newline at end of file diff --git a/lib/plugins/popularity/lang/ja/intro.txt b/lib/plugins/popularity/lang/ja/intro.txt index 09886f418..db9a34284 100644 --- a/lib/plugins/popularity/lang/ja/intro.txt +++ b/lib/plugins/popularity/lang/ja/intro.txt @@ -1,6 +1,6 @@ ====== 利用状æ³èª¿æŸ» ====== -ã“ã®ãƒ„ールã¯ã€ã”利用ä¸ã®wikiã®æƒ…å ±ã‚’åŽé›†ã—ã€ãれをDokuWikiã®é–‹ç™ºè€…ã¸åŒ¿åã§é€ä¿¡ã™ã‚‹ã‚‚ã®ã§ã™ã€‚開発者ã¯ã“ã®ãƒ„ールã«ã‚ˆã‚Šã€DokuWikiãŒå®Ÿéš›ã«ã©ã®æ§˜ã«åˆ©ç”¨ã•ã‚Œã¦ã„ã‚‹ã‹ã‚’ç†è§£ã—ã€ãã—ã¦å®Ÿéš›ã®åˆ©ç”¨çŠ¶æ³ã«åŸºã¥ã„ã¦ä»Šå¾Œã®é–‹ç™ºæ–¹é‡ã®æ±ºå®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +ã“ã®[[doku>ja:popularity|ツール]]ã¯ã€ã”利用ä¸ã®wikiã®æƒ…å ±ã‚’åŽé›†ã—ã€ãれをDokuWikiã®é–‹ç™ºè€…ã¸åŒ¿åã§é€ä¿¡ã™ã‚‹ã‚‚ã®ã§ã™ã€‚開発者ã¯ã“ã®ãƒ„ールã«ã‚ˆã‚Šã€DokuWikiãŒå®Ÿéš›ã«ã©ã®æ§˜ã«åˆ©ç”¨ã•ã‚Œã¦ã„ã‚‹ã‹ã‚’ç†è§£ã—ã€ãã—ã¦å®Ÿéš›ã®åˆ©ç”¨çŠ¶æ³ã«åŸºã¥ã„ã¦ä»Šå¾Œã®é–‹ç™ºæ–¹é‡ã®æ±ºå®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ãŠä½¿ã„ã®wikiã®è¦æ¨¡ãŒå¤§ãããªã£ã¦ããŸã¨ãã¯ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—を定期的ã«ç¹°ã‚Šè¿”ã™ã“ã¨ã‚’推奨ã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€é€ä¿¡ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã¯åŒ¿åã®IDã§è˜åˆ¥ã•ã‚Œã¾ã™ã€‚ -- GitLab From 122f2d46c0d01af7762ed909f7905e5e807b2d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20B=C3=B6hler?= <dev@aboehler.at> Date: Wed, 15 Jul 2015 18:21:13 +0200 Subject: [PATCH 243/440] Add a 'returnonly' option to all xhtml link types --- inc/parser/xhtml.php | 87 ++++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index d1bf91a02..c544d9e32 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -761,27 +761,40 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Render a CamelCase link * - * @param string $link The link name + * @param string $link The link name + * @param bool $returnonly whether to return html or write to doc attribute * @see http://en.wikipedia.org/wiki/CamelCase */ - function camelcaselink($link) { - $this->internallink($link, $link); + function camelcaselink($link, $returnonly = false) { + if($returnonly) { + return $this->internallink($link, $link, null, true); + } else { + $this->internallink($link, $link); + } } /** * Render a page local link * - * @param string $hash hash link identifier - * @param string $name name for the link + * @param string $hash hash link identifier + * @param string $name name for the link + * @param bool $returnonly whether to return html or write to doc attribute */ - function locallink($hash, $name = null) { + function locallink($hash, $name = null, $returnonly = false) { global $ID; $name = $this->_getLinkTitle($name, $hash, $isImage); $hash = $this->_headerToLink($hash); $title = $ID.' ↵'; - $this->doc .= '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">'; - $this->doc .= $name; - $this->doc .= '</a>'; + + $doc = '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">'; + $doc .= $name; + $doc .= '</a>'; + + if($returnonly) { + return $doc; + } else { + $this->doc .= $doc; + } } /** @@ -884,10 +897,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Render an external link * - * @param string $url full URL with scheme - * @param string|array $name name for the link, array for media file + * @param string $url full URL with scheme + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function externallink($url, $name = null) { + function externallink($url, $name = null, $returnonly = false) { global $conf; $name = $this->_getLinkTitle($name, $url, $isImage); @@ -926,7 +940,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"'; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -934,12 +952,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * You may want to use $this->_resolveInterWiki() here * - * @param string $match original link - probably not much use - * @param string|array $name name for the link, array for media file - * @param string $wikiName indentifier (shortcut) for the remote wiki - * @param string $wikiUri the fragment parsed from the original link + * @param string $match original link - probably not much use + * @param string|array $name name for the link, array for media file + * @param string $wikiName indentifier (shortcut) for the remote wiki + * @param string $wikiUri the fragment parsed from the original link + * @param bool $returnonly whether to return html or write to doc attribute */ - function interwikilink($match, $name = null, $wikiName, $wikiUri) { + function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) { global $conf; $link = array(); @@ -977,16 +996,21 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = htmlspecialchars($link['url']); //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** * Link to windows share * - * @param string $url the link - * @param string|array $name name for the link, array for media file + * @param string $url the link + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function windowssharelink($url, $name = null) { + function windowssharelink($url, $name = null, $returnonly = false) { global $conf; //simple setup @@ -1010,7 +1034,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['url'] = $url; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -1018,10 +1046,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * Honors $conf['mailguard'] setting * - * @param string $address Email-Address - * @param string|array $name name for the link, array for media file + * @param string $address Email-Address + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function emaillink($address, $name = null) { + function emaillink($address, $name = null, $returnonly = false) { global $conf; //simple setup $link = array(); @@ -1053,7 +1082,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = $title; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** -- GitLab From 0c24c9242169cfbb3e5dd68f8b094624a2c971f3 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 15 Jul 2015 20:49:07 +0200 Subject: [PATCH 244/440] remove pragma:no-cache header. closes #1201 The pragma header is only defined for requests not for responses. The Cache-Control header should be used in responses. --- inc/fetch.functions.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/inc/fetch.functions.php b/inc/fetch.functions.php index c99fbf20a..b8e75eaec 100644 --- a/inc/fetch.functions.php +++ b/inc/fetch.functions.php @@ -1,4 +1,4 @@ -<?php +<?php /** * Functions used by lib/exe/fetch.php * (not included by other parts of dokuwiki) @@ -47,18 +47,15 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) { // cache publically header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT'); header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.$maxage); - header('Pragma: public'); } else { // cache in browser header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT'); header('Cache-Control: private, no-transform, max-age='.$maxage); - header('Pragma: no-cache'); } } else { // no cache at all header('Expires: Thu, 01 Jan 1970 00:00:00 GMT'); header('Cache-Control: no-cache, no-transform'); - header('Pragma: no-cache'); } //send important headers first, script stops here if '304 Not Modified' response -- GitLab From 82246f10eb9ae3debeadf5913232105aa2694cec Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Wed, 15 Jul 2015 21:44:22 +0200 Subject: [PATCH 245/440] improve aria attribute handling. closes #1142 adds aria handling to makeToggle and allows to supress it in dw_toggle --- lib/scripts/behaviour.js | 26 +++++++++++++++----------- lib/scripts/page.js | 13 ++++++++++--- lib/tpl/dokuwiki/main.php | 4 ++-- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/lib/scripts/behaviour.js b/lib/scripts/behaviour.js index 97955dad9..b05949a90 100644 --- a/lib/scripts/behaviour.js +++ b/lib/scripts/behaviour.js @@ -1,37 +1,41 @@ /** * Hides elements with a slide animation * - * @param fn optional callback to run after hiding + * @param {function} fn optional callback to run after hiding + * @param {bool} noaria supress aria-expanded state setting * @author Adrian Lang <mail@adrianlang.de> */ -jQuery.fn.dw_hide = function(fn) { - this.attr('aria-expanded', 'false'); +jQuery.fn.dw_hide = function(fn, noaria) { + if(!noaria) this.attr('aria-expanded', 'false'); return this.slideUp('fast', fn); }; /** * Unhides elements with a slide animation * - * @param fn optional callback to run after hiding + * @param {function} fn optional callback to run after hiding + * @param {bool} noaria supress aria-expanded state setting * @author Adrian Lang <mail@adrianlang.de> */ -jQuery.fn.dw_show = function(fn) { - this.attr('aria-expanded', 'true'); +jQuery.fn.dw_show = function(fn, noaria) { + if(!noaria) this.attr('aria-expanded', 'true'); return this.slideDown('fast', fn); }; /** * Toggles visibility of an element using a slide element * - * @param bool the current state of the element (optional) + * @param {bool} state the current state of the element (optional) + * @param {function} fn callback after the state has been toggled + * @param {bool} noaria supress aria-expanded state setting */ -jQuery.fn.dw_toggle = function(bool, fn) { +jQuery.fn.dw_toggle = function(state, fn, noaria) { return this.each(function() { var $this = jQuery(this); - if (typeof bool === 'undefined') { - bool = $this.is(':hidden'); + if (typeof state === 'undefined') { + state = $this.is(':hidden'); } - $this[bool ? "dw_show" : "dw_hide" ](fn); + $this[state ? "dw_show" : "dw_hide" ](fn, noaria); }); }; diff --git a/lib/scripts/page.js b/lib/scripts/page.js index 7b4958d82..a179ae2a8 100644 --- a/lib/scripts/page.js +++ b/lib/scripts/page.js @@ -109,8 +109,14 @@ dw_page = { * as well. A state indicator is inserted into the handle and can be styled * by CSS. * - * @param selector handle What should be clicked to toggle - * @param selector content This element will be toggled + * To properly reserve space for the expanded element, the sliding animation is + * done on the children of the content. To make that look good and to make sure aria + * attributes are assigned correctly, it's recommended to make sure that the content + * element contains a single child element only. + * + * @param {selector} handle What should be clicked to toggle + * @param {selector} content This element will be toggled + * @param {int} state initial state (-1 = open, 1 = closed) */ makeToggle: function(handle, content, state){ var $handle, $content, $clicky, $child, setClicky; @@ -160,8 +166,9 @@ dw_page = { // Start animation and assure that $toc is hidden/visible $child.dw_toggle(hidden, function () { $content.toggle(hidden); + $content.attr('aria-expanded', hidden); $content.css('min-height',''); // remove min-height again - }); + }, true); }; // the state indicator diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 165230e8a..eea1df71a 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -38,12 +38,12 @@ $showSidebar = $hasSidebar && ($ACT=='show'); <!-- ********** ASIDE ********** --> <div id="dokuwiki__aside"><div class="pad aside include group"> <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3> - <div class="content"> + <div class="content"><div class="group"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar'], true, true) ?> <?php tpl_includeFile('sidebarfooter.html') ?> - </div> + </div></div> </div></div><!-- /aside --> <?php endif; ?> -- GitLab From 282d636f25b71ecb3c37012033d25fd10ba9c83e Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 16 Jul 2015 02:29:53 -0400 Subject: [PATCH 246/440] Change interwiki links to HTTPS --- conf/interwiki.conf | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 4857e27f3..3bfc2ac73 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -8,28 +8,29 @@ # To prevent losing your added InterWiki shortcuts after an upgrade, # you should add new ones to interwiki.local.conf -wp http://en.wikipedia.org/wiki/{NAME} -wpfr http://fr.wikipedia.org/wiki/{NAME} -wpde http://de.wikipedia.org/wiki/{NAME} -wpes http://es.wikipedia.org/wiki/{NAME} -wppl http://pl.wikipedia.org/wiki/{NAME} -wpjp http://ja.wikipedia.org/wiki/{NAME} -wpmeta http://meta.wikipedia.org/wiki/{NAME} -doku http://www.dokuwiki.org/ -dokubug http://bugs.dokuwiki.org/index.php?do=details&task_id= -rfc http://tools.ietf.org/html/rfc +wp https://en.wikipedia.org/wiki/{NAME} +wpfr https://fr.wikipedia.org/wiki/{NAME} +wpde https://de.wikipedia.org/wiki/{NAME} +wpes https://es.wikipedia.org/wiki/{NAME} +wppl https://pl.wikipedia.org/wiki/{NAME} +wpjp https://ja.wikipedia.org/wiki/{NAME} +wpmeta https://meta.wikipedia.org/wiki/{NAME} +doku https://www.dokuwiki.org/ +dokubug https://bugs.dokuwiki.org/index.php?do=details&task_id= +dokugit https://github.com/splitbrain/dokuwiki/issues/ +rfc https://tools.ietf.org/html/rfc man http://man.cx/ amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ -amazon.de http://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ -amazon.uk http://www.amazon.co.uk/exec/obidos/ASIN/ +amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ +amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= -phpfn http://www.php.net/{NAME} +phpfn https://www.php.net/{NAME} coral http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY} freecache http://freecache.org/{NAME} sb http://www.splitbrain.org/go/ skype skype:{NAME} -google.de http://www.google.de/search?q= -go http://www.google.com/search?q={URL}&btnI=lucky +google.de https://www.google.de/search?q= +go https://www.google.com/search?q={URL}&btnI=lucky user :user:{NAME} # To support VoIP/SIP/TEL links -- GitLab From ccee93d9d1aa20ccc91f9277983d7fa2ee34f7f9 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 16 Jul 2015 02:50:41 -0400 Subject: [PATCH 247/440] Unit test for interwiki URL encoding bug --- .../parser/renderer_resolveinterwiki.test.php | 20 +++++++++---------- conf/interwiki.conf | 2 +- inc/parser/renderer.php | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index dd1ed1d3f..9cc3443eb 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -17,18 +17,18 @@ class Test_resolveInterwiki extends DokuWikiTest { $tests = array( // shortcut, reference and expected - array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'), - array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'), - array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'), - array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%2F'), + array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25%3F/#txt'), + array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F/splitbrain-20/#txt'), + array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), + array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%3F%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%3F%2F'), array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url - array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), - array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'), + array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), + array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25?/#txt'), //dokuwiki id's - array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), - array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), - array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') + array('onlytext', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), + array('user', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), + array('withquery', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') ); foreach($tests as $test) { @@ -45,7 +45,7 @@ class Test_resolveInterwiki extends DokuWikiTest { $shortcut = 'nonexisting'; $reference = 'foo @+%/'; $url = $Renderer->_resolveInterWiki($shortcut, $reference); - $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; + $expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; $this->assertEquals($expected, $url); } diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 3bfc2ac73..18de535f0 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -20,7 +20,7 @@ dokubug https://bugs.dokuwiki.org/index.php?do=details&task_id= dokugit https://github.com/splitbrain/dokuwiki/issues/ rfc https://tools.ietf.org/html/rfc man http://man.cx/ -amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ +amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 35bdd0e3f..d5cc68367 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -806,7 +806,7 @@ class Doku_Renderer extends DokuWiki_Plugin { $url = $this->interwiki[$shortcut]; } else { // Default to Google I'm feeling lucky - $url = 'http://www.google.com/search?q={URL}&btnI=lucky'; + $url = 'https://www.google.com/search?q={URL}&btnI=lucky'; $shortcut = 'go'; } -- GitLab From 17e17ae257649aef67c693d01e8992ece86eabd2 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 16 Jul 2015 12:35:56 -0400 Subject: [PATCH 248/440] Encode unsafe characters in interwiki links. closes #1220 --- .../parser/renderer_resolveinterwiki.test.php | 16 ++++++++-------- inc/parser/renderer.php | 12 ++++++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index 9cc3443eb..8379bc065 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -17,18 +17,18 @@ class Test_resolveInterwiki extends DokuWikiTest { $tests = array( // shortcut, reference and expected - array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25%3F/#txt'), - array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F/splitbrain-20/#txt'), - array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), + array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'), + array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F/splitbrain-20/#txt'), + array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'), array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%3F%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%3F%2F'), array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url - array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), - array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25?/#txt'), + array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'), + array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'), //dokuwiki id's - array('onlytext', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), - array('user', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), - array('withquery', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') + array('onlytext', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), + array('user', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), + array('withquery', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') ); foreach($tests as $test) { diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index d5cc68367..d7a3faef8 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -811,13 +811,21 @@ class Doku_Renderer extends DokuWiki_Plugin { } //split into hash and url part - @list($reference, $hash) = explode('#', $reference, 2); + $hash = strrchr($reference, '#'); + if($hash) { + $reference = substr($reference, 0, -strlen($hash)); + $hash = substr($hash, 1); + } //replace placeholder if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#', $url)) { //use placeholders $url = str_replace('{URL}', rawurlencode($reference), $url); - $url = str_replace('{NAME}', $reference, $url); + //wiki names will be cleaned next, otherwise urlencode unsafe chars + $url = str_replace('{NAME}', ($url{0} === ':') ? $reference : + preg_replace_callback('/[[\\\\\]^`{|}#%]/', function($match) { + return rawurlencode($match[0]); + }, $reference), $url); $parsed = parse_url($reference); if(!$parsed['port']) $parsed['port'] = 80; $url = str_replace('{SCHEME}', $parsed['scheme'], $url); -- GitLab From 1afa9ba84a2a44f66944dfc754dd8b8662c987fb Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Thu, 16 Jul 2015 22:14:13 +0200 Subject: [PATCH 249/440] remove deleted files on update of extension Resolves #1192 `/lib/plugins/<plugin>/deleted.files` which list files that can be removed e.g. ``` # This is a list of files that were present in previous plugin releases # but were removed later. An up to date plugin should not have any of # the files installed action.php folder/file.txt ``` --- lib/plugins/extension/helper/extension.php | 41 +++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php index 719249fbe..7d723490e 100644 --- a/lib/plugins/extension/helper/extension.php +++ b/lib/plugins/extension/helper/extension.php @@ -578,6 +578,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { try { $installed = $this->installArchive("$tmp/upload.archive", true, $basename); $this->updateManagerData('', $installed); + $this->removeDeletedfiles($installed); // purge cache $this->purgeCache(); }catch (Exception $e){ @@ -598,6 +599,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { $path = $this->download($url); $installed = $this->installArchive($path, true); $this->updateManagerData($url, $installed); + $this->removeDeletedfiles($installed); // purge cache $this->purgeCache(); @@ -623,6 +625,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { if (!isset($installed[$this->getID()])) { throw new Exception('Error, the requested extension hasn\'t been installed or updated'); } + $this->removeDeletedfiles($installed); $this->setExtension($this->getID()); $this->purgeCache(); return $installed; @@ -918,7 +921,9 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { if($this->dircopy($item['tmp'], $target)) { // return info $id = $item['base']; - if($item['type'] == 'template') $id = 'template:'.$id; + if($item['type'] == 'template') { + $id = 'template:'.$id; + } $installed_extensions[$id] = array( 'base' => $item['base'], 'type' => $item['type'], @@ -1117,6 +1122,40 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { return true; } + + /** + * Delete outdated files from updated plugins + * + * @param array $installed + */ + private function removeDeletedfiles($installed) { + foreach($installed as $id => $extension) { + // only on update + if($extension['action'] == 'install') continue; + + // get definition file + if($extension['type'] == 'template') { + $extensiondir = DOKU_TPLLIB; + }else{ + $extensiondir = DOKU_PLUGIN; + } + $extensiondir = $extensiondir . $extension['base'] .'/'; + $definitionfile = $extensiondir . 'deleted.files'; + if(!file_exists($definitionfile)) continue; + + // delete the old files + $list = file($definitionfile); + + foreach($list as $line) { + $line = trim(preg_replace('/#.*$/', '', $line)); + if(!$line) continue; + $file = $extensiondir . $line; + if(!file_exists($file)) continue; + + io_rmdir($file, true); + } + } + } } // vim:ts=4:sw=4:et: -- GitLab From 75c8c6faaeefed18f12a4ce652c4161567219910 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 18 Jul 2015 12:23:26 +0200 Subject: [PATCH 250/440] readded cookie to styling plugin --- lib/plugins/styling/script.js | 95 ++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 84b251eab..f2d550b21 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -2,10 +2,58 @@ jQuery(function () { - var doreload = 1; + /** + * Function to reload the preview styles in the main window + * + * @param {window} target the main window + */ + function applyPreview(target) { + // remove style + var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', ''); + + // append the loader screen + $loader = target.jQuery('#plugin__styling_loader'); + if (!$loader.length) { + $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); + $loader.css({ + 'position': 'absolute', + 'width': '100%', + 'height': '100%', + 'top': 0, + 'left': 0, + 'z-index': 5000, + 'background-color': '#fff', + 'opacity': '0.7', + 'color': '#000', + 'font-size': '2.5em', + 'text-align': 'center', + 'line-height': 1.5, + 'padding-top': '2em' + }); + target.jQuery('body').append($loader); + } + + // load preview in main window (timeout works around chrome updating CSS weirdness) + target.setTimeout(function () { + var now = new Date().getTime(); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + }, 500); + } + var doreload = 1; var $styling_plugin = jQuery('#plugin__styling'); - if (!$styling_plugin.length) return; + + // if we are not on the plugin page (either main or popup) + if (!$styling_plugin.length) { + // handle the preview cookie + if(DokuCookie.getValue('styling_plugin') == 1) { + applyPreview(window); + } + return; // nothing more to do here + } + + /* ---- from here on we're in the popup or admin page ---- */ // add the color picker $styling_plugin.find('.color').iris({}); @@ -18,15 +66,18 @@ jQuery(function () { $btn.click(function (e) { var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; - window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling', windowFeatures) + window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures); e.preventDefault(); }).wrap('<p></p>'); - return; + return; // we exit here if this is not the popup } + /* ---- from here on we're in the popup only ---- */ + // reload the main page on close window.onunload = function(e) { if(doreload) { + window.opener.DokuCookie.setValue('styling_plugin', 0); window.opener.document.location.reload(); } return null; @@ -37,37 +88,9 @@ jQuery(function () { doreload = false; }); - // remove style - var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', ''); - - // append the loader screen - $loader = window.opener.jQuery('#plugin__styling_loader'); - if (!$loader.length) { - $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); - $loader.css({ - 'position': 'absolute', - 'width': '100%', - 'height': '100%', - 'top': 0, - 'left': 0, - 'z-index': 5000, - 'background-color': '#fff', - 'opacity': '0.7', - 'color': '#000', - 'font-size': '2.5em', - 'text-align': 'center', - 'line-height': 1.5, - 'padding-top': '2em' - }); - window.opener.jQuery('body').append($loader); - } - - // load preview in main window (timeout works around chrome updating CSS weirdness) - window.setTimeout(function() { - var now = new Date().getTime(); - $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); - }, 500); - + // on first load apply preview + applyPreview(window.opener); + // enable the preview cookie + window.opener.DokuCookie.setValue('styling_plugin', 1); }); -- GitLab From 8d4151ded3d683f2ef8524b9bb48460a767e334f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 18 Jul 2015 12:46:50 +0200 Subject: [PATCH 251/440] added styler into default plugin section The icon does not match the others because the NuvolaX icon theme seems to have vanished from the Internet. Ideally all those admin icons could use a replacement. But that should be a different PR I guess. --- inc/html.php | 7 +++++++ lib/images/admin/README | 2 ++ lib/images/admin/styling.png | Bin 0 -> 970 bytes lib/tpl/dokuwiki/css/_admin.css | 3 +++ 4 files changed, 12 insertions(+) create mode 100644 lib/images/admin/styling.png diff --git a/inc/html.php b/inc/html.php index 2f10e3c08..36083a57e 100644 --- a/inc/html.php +++ b/inc/html.php @@ -2076,6 +2076,13 @@ function html_admin(){ $menu['config']['prompt'].'</a></div></li>'); } unset($menu['config']); + + if($menu['styling']){ + ptln(' <li class="admin_styling"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'styling')).'">'. + $menu['styling']['prompt'].'</a></div></li>'); + } + unset($menu['styling']); } ptln('</ul>'); diff --git a/lib/images/admin/README b/lib/images/admin/README index 90bab9578..53e7d839a 100644 --- a/lib/images/admin/README +++ b/lib/images/admin/README @@ -1,2 +1,4 @@ These icons were taken from the nuvoX KDE icon theme and are GPL licensed See http://www.kde-look.org/content/show.php/nuvoX?content=38467 + +styling.png from https://openclipart.org/detail/25595/brush Public Domain diff --git a/lib/images/admin/styling.png b/lib/images/admin/styling.png new file mode 100644 index 0000000000000000000000000000000000000000..859c8c9ef4f465333cae13ea7a33c50af4ee3d8a GIT binary patch literal 970 zcmV;*12z1KP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00004b3#c}2nYxW zd<bNS00009a7bBm000Vm000Vm0q(4k0{{R38FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H109bTISad^gaCvfRXJ~W)LqjkiP<3K#X=5NnZ*5^|ZXiTuWNBkz zbZKvHAZT=Sa5^t9V{&C-bZK^FV{dJ3Z*FrgZ*pfZaCKsAX=7w>ZDDC{FM4HiZ!a+} zFfYdAz4-tD0^><UK~y-6t&&?zl3^If{~w}8Ivk34KoCW&87os;b`{o|bERw3&vLe+ zla&|Qs(IB#SKZc?7tYEH(aqUb(^YCT*Xbr}TG&UFf<r{mPXWskgtv>(p(5hp-Jb1z zPQU&4>`!5vo?5Ni5z9@u!;6i%#@cOD-0gtYRFw(^@rf^l!o&iDUI$RnQCo#xIDITN zMJjtQ5~awPp#iwv^MoQqwI#(hRi#2<ny4>1IZdW#2H|$kg8*%hT6^AbHVdt;F5wGP zMOv{~rubpd;m_P}0I)~+7H$H-rWDgO&66a>bW1bjd%rVZ@oUxv0EB>CY--cm0ARz4 zX_}6bh$1^>nc0Ou4d38&OfR+?9&38K7LyHwlLQNmS=l*9jl%{^vy%V-3K-zVMAZk* zZRixWmrmZ=owNVknAwO)yLGW_^?6Cz!^Y0Jz}c|vcJ=)6;v8kc^GW*z$1-MGEYETX zDQar%`LuFAEX7Zsw4HLh|28wa{y^v)hoZ`wG~KJ9VSzh3Gzv+&yhWTQ<?>?U;B?Kx z!P@3Qk&334?!LA5B0@pi+uNg(L?R|5QxQ8dGJ?@jGY%X)4Cl<u<@*hqj!?THT_K3u z`7(Rgo&=-O2)$kpnM_88hCbi8d+$MWs68OWDSCUmZY!1fMJAI848uSwmH6~SU(VLm z)oa#+0&BQpaIilwK3??EVj1T!3<Gg$%DidVaH6L6`m1oD%fK{EM>(C&Gm(*z#p&tN z((>{Op4n_hN^;Vqb;5Q?tyT|*3ta-2l$0dO<?`2jK3~bQEXK#j;qiEoo4ao&FE2l< zva)h|J<uw!N~Pi|6pFXe(b0ugs}&B1Be4HYtJNOy3!ngy5V7oW1p>hpm&;W+H8r)e z=VMv+8GtMR9sq8CcmVhU!W$$fT$jsL2*3g$4nQm+#NqXNbu7!a>U6pf_-{!nNCcj9 sWln;*g7U*60-#F^epMvMf7v<y0dcS?5e7alN&o-=07*qoM6N<$f}swx+W-In literal 0 HcmV?d00001 diff --git a/lib/tpl/dokuwiki/css/_admin.css b/lib/tpl/dokuwiki/css/_admin.css index a9518d0ed..bdde006e0 100644 --- a/lib/tpl/dokuwiki/css/_admin.css +++ b/lib/tpl/dokuwiki/css/_admin.css @@ -39,6 +39,9 @@ .dokuwiki ul.admin_tasks li.admin_config { background-image: url(../../images/admin/config.png); } +.dokuwiki ul.admin_tasks li.admin_styling { + background-image: url(../../images/admin/styling.png); +} .dokuwiki ul.admin_tasks li.admin_revert { background-image: url(../../images/admin/revert.png); } -- GitLab From b28801bc7f36b024f1051c1e7afd9be8a4c5171e Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 18 Jul 2015 12:51:25 +0200 Subject: [PATCH 252/440] added plugin to list of bundled extensions --- lib/plugins/extension/helper/extension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php index 719249fbe..c23840805 100644 --- a/lib/plugins/extension/helper/extension.php +++ b/lib/plugins/extension/helper/extension.php @@ -108,7 +108,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { return in_array($this->id, array( 'authad', 'authldap', 'authmysql', 'authpgsql', 'authplain', 'acl', 'info', 'extension', - 'revert', 'popularity', 'config', 'safefnrecode', 'testing', 'template:dokuwiki' + 'revert', 'popularity', 'config', 'safefnrecode', 'styling', 'testing', 'template:dokuwiki' ) ); } -- GitLab From 37ff2261e7a45a16a844d538a64b1fee54d2eb05 Mon Sep 17 00:00:00 2001 From: Sascha Klopp <klopp@rrzn.uni-hannover.de> Date: Fri, 12 Jun 2015 12:30:57 +0200 Subject: [PATCH 253/440] correctly handle usergroups array --- inc/auth.php | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/inc/auth.php b/inc/auth.php index 60b8c7c78..e04a6ca1a 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -739,28 +739,23 @@ function auth_aclcheck_cb($data) { $user = utf8_strtolower($user); $groups = array_map('utf8_strtolower', $groups); } - $user = $auth->cleanUser($user); + $user = auth_nameencode($auth->cleanUser($user)); $groups = array_map(array($auth, 'cleanGroup'), (array) $groups); - $user = auth_nameencode($user); //prepend groups with @ and nameencode - $cnt = count($groups); - for($i = 0; $i < $cnt; $i++) { - $groups[$i] = '@'.auth_nameencode($groups[$i]); + foreach($groups as &$group) { + $group = '@'.auth_nameencode($group); } $ns = getNS($id); $perm = -1; - if($user || count($groups)) { - //add ALL group - $groups[] = '@ALL'; - //add User - if($user) $groups[] = $user; - } else { - $groups[] = '@ALL'; - } - + //add ALL group + $groups[] = '@ALL'; + + //add User + if($user) $groups[] = $user; + //check exact match first $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL); if(count($matches)) { -- GitLab From 39f70cbdcb1c625e9fe9346132d24ec08862fca1 Mon Sep 17 00:00:00 2001 From: iamchenxin <iamchenxin@gmail.com> Date: Fri, 29 May 2015 15:32:12 +0800 Subject: [PATCH 254/440] add a Exception in hasAccess() --- inc/remote.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/remote.php b/inc/remote.php index 861353a19..3e032049d 100644 --- a/inc/remote.php +++ b/inc/remote.php @@ -234,7 +234,7 @@ class RemoteAPI { global $INPUT; if (!$conf['remote']) { - return false; + throw new RemoteAccessDeniedException('server error. RPC server not enabled.',-32604); //should not be here,just throw } if(!$conf['useacl']) { return true; -- GitLab From b86bc28af9b961266a2caeeb86c8f6f125adc412 Mon Sep 17 00:00:00 2001 From: iamchenxin <iamchenxin@gmail.com> Date: Mon, 1 Jun 2015 20:02:52 +0800 Subject: [PATCH 255/440] remote.test --- _test/tests/inc/remote.test.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_test/tests/inc/remote.test.php b/_test/tests/inc/remote.test.php index d0d4eb7ce..037b1dc0b 100644 --- a/_test/tests/inc/remote.test.php +++ b/_test/tests/inc/remote.test.php @@ -160,10 +160,16 @@ class remote_test extends DokuWikiTest { $this->assertTrue($this->remote->hasAccess()); } + /** + * @expectedException RemoteAccessDeniedException + */ function test_hasAccessFail() { global $conf; $conf['remote'] = 0; - $this->assertFalse($this->remote->hasAccess()); + // the hasAccess() should throw a Exception to keep the same semantics with xmlrpc.php. + // because the user(xmlrpc) check remote before .--> (!$conf['remote']) die('XML-RPC server not enabled.'); + // so it must be a Exception when get here. + $this->remote->hasAccess(); } function test_hasAccessFailAcl() { -- GitLab From 4c19c0bad21142b05872bf71c4a9599aeb7e15cc Mon Sep 17 00:00:00 2001 From: Philip Knack <p.knack@stollfuss.de> Date: Mon, 20 Jul 2015 10:21:22 +0200 Subject: [PATCH 256/440] translation update --- inc/lang/de/lang.php | 2 +- lib/plugins/authad/lang/de/lang.php | 3 +++ lib/plugins/authldap/lang/de/lang.php | 9 +++++++++ lib/plugins/authldap/lang/de/settings.php | 2 ++ lib/plugins/authmysql/lang/de/lang.php | 2 ++ lib/plugins/extension/lang/de/lang.php | 5 ++++- 6 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 lib/plugins/authldap/lang/de/lang.php diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index b4ead79f2..c452042b6 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr <andi@splitbrain.org> * @author Christof <gagi@fin.de> * @author Anika Henke <anika@selfthinker.org> diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php index 11f52a414..93a65667e 100644 --- a/lib/plugins/authad/lang/de/lang.php +++ b/lib/plugins/authad/lang/de/lang.php @@ -4,6 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Andreas Gohr <gohr@cosmocode.de> + * @author Philip Knack <p.knack@stollfuss.de> */ $lang['domain'] = 'Anmelde-Domäne'; $lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; +$lang['passchangefail'] = 'Kennwortänderung fehlgeschlagen. Entspricht das Kennwort der Richtlinie?'; +$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.'; diff --git a/lib/plugins/authldap/lang/de/lang.php b/lib/plugins/authldap/lang/de/lang.php new file mode 100644 index 000000000..74197f918 --- /dev/null +++ b/lib/plugins/authldap/lang/de/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Philip Knack <p.knack@stollfuss.de> + */ +$lang['connectfail'] = 'LDAP-Verbindung scheitert: %s'; +$lang['domainfail'] = 'LDAP kann nicht dein Benutzer finden dn'; diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index 933189c40..df1974867 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -5,6 +5,7 @@ * * @author Matthias Schulte <dokuwiki@lupo49.de> * @author christian studer <cstuder@existenz.ch> + * @author Philip Knack <p.knack@stollfuss.de> */ $lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).'; $lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.'; @@ -28,3 +29,4 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'Standard verwenden'; diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php index 819b98458..c5c3c657a 100644 --- a/lib/plugins/authmysql/lang/de/lang.php +++ b/lib/plugins/authmysql/lang/de/lang.php @@ -5,7 +5,9 @@ * * @author Noel Tilliot <noeltilliot@byom.de> * @author Hendrik Diel <diel.hendrik@gmail.com> + * @author Philip Knack <p.knack@stollfuss.de> */ +$lang['connectfail'] = 'Verbindung zur Datenbank fehlgeschlagen.'; $lang['userexists'] = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.'; $lang['usernotexists'] = 'Sorry, dieser Nutzer existiert nicht.'; $lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.'; diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php index 55a317309..53fbf25d5 100644 --- a/lib/plugins/extension/lang/de/lang.php +++ b/lib/plugins/extension/lang/de/lang.php @@ -2,13 +2,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author H. Richard <wanderer379@t-online.de> * @author Joerg <scooter22@gmx.de> * @author Simon <st103267@stud.uni-stuttgart.de> * @author Hoisl <hoisl@gmx.at> * @author Dominik Mahr <drache.mahr@gmx.de> * @author Noel Tilliot <noeltilliot@byom.de> + * @author Philip Knack <p.knack@stollfuss.de> */ $lang['menu'] = 'Erweiterungen verwalten'; $lang['tab_plugins'] = 'Installierte Plugins'; @@ -33,6 +34,7 @@ $lang['js']['reallydel'] = 'Wollen Sie diese Erweiterung wirklich löschen $lang['js']['display_viewoptions'] = 'Optionen anzeigen'; $lang['js']['display_enabled'] = 'aktiviert'; $lang['js']['display_disabled'] = 'deaktiviert'; +$lang['js']['display_updatable'] = 'aktualisierbar'; $lang['search_for'] = 'Erweiterung suchen:'; $lang['search'] = 'Suchen'; $lang['extensionby'] = '<strong>%s</strong> von %s'; @@ -70,6 +72,7 @@ $lang['status_bundled'] = 'gebündelt'; $lang['msg_enabled'] = 'Plugin %s ist aktiviert'; $lang['msg_disabled'] = 'Erweiterung %s ist deaktiviert'; $lang['msg_delete_success'] = 'Erweiterung %s wurde entfernt'; +$lang['msg_delete_failed'] = 'Deinstallation der Erweiterung %s fehlgeschlagen'; $lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert'; $lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich '; $lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert'; -- GitLab From 519c232c1701947a305d8bec09812c77d8e2aad4 Mon Sep 17 00:00:00 2001 From: Philip Knack <p.knack@stollfuss.de> Date: Wed, 22 Jul 2015 15:01:38 +0200 Subject: [PATCH 257/440] translation update --- lib/plugins/extension/lang/de/lang.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php index 53fbf25d5..a47c9360f 100644 --- a/lib/plugins/extension/lang/de/lang.php +++ b/lib/plugins/extension/lang/de/lang.php @@ -94,6 +94,8 @@ $lang['noperms'] = 'Das Erweiterungs-Verzeichnis ist schreibgesch $lang['notplperms'] = 'Das Template-Verzeichnis ist schreibgeschützt'; $lang['nopluginperms'] = 'Das Plugin-Verzeichnis ist schreibgeschützt'; $lang['git'] = 'Diese Erweiterung wurde über git installiert und sollte daher nicht hier aktualisiert werden.'; +$lang['auth'] = 'Dieses Auth Plugin ist in der Konfiguration nicht aktiviert, Sie sollten es deaktivieren.'; $lang['install_url'] = 'Von Webadresse (URL) installieren'; $lang['install_upload'] = 'Erweiterung hochladen:'; $lang['repo_error'] = 'Es konnte keine Verbindung zum Plugin-Verzeichnis hergestellt werden. Stellen sie sicher das der Server Verbindung mit www.dokuwiki.org aufnehmen darf und überprüfen sie ihre Proxy Einstellungen.'; +$lang['nossl'] = 'Ihr PHP scheint SSL nicht zu unterstützen. Das Herunterladen vieler DokuWiki Erweiterungen wird scheitern.'; -- GitLab From 0cfb5a3076f8591bdbe10f9915199b3b3863dec8 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 22 Jul 2015 22:04:09 -0400 Subject: [PATCH 258/440] Remove non-functioning interwiki links --- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 2 ++ conf/interwiki.conf | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index 8379bc065..772001b99 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -14,6 +14,8 @@ class Test_resolveInterwiki extends DokuWikiTest { $Renderer->interwiki['withslash'] = '/test'; $Renderer->interwiki['onlytext'] = ':onlytext{NAME}'; //with {URL} double urlencoded $Renderer->interwiki['withquery'] = ':anyns:{NAME}?do=edit'; + //this was the only link with host/port/path/query. Keep it here for regression + $Renderer->interwiki['coral'] = 'http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY}'; $tests = array( // shortcut, reference and expected diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 18de535f0..9305c038a 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -16,8 +16,6 @@ wppl https://pl.wikipedia.org/wiki/{NAME} wpjp https://ja.wikipedia.org/wiki/{NAME} wpmeta https://meta.wikipedia.org/wiki/{NAME} doku https://www.dokuwiki.org/ -dokubug https://bugs.dokuwiki.org/index.php?do=details&task_id= -dokugit https://github.com/splitbrain/dokuwiki/issues/ rfc https://tools.ietf.org/html/rfc man http://man.cx/ amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ @@ -25,8 +23,6 @@ amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= phpfn https://www.php.net/{NAME} -coral http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY} -freecache http://freecache.org/{NAME} sb http://www.splitbrain.org/go/ skype skype:{NAME} google.de https://www.google.de/search?q= -- GitLab From b43568ad387384d9ae09bf4d7c0835ecbdc6b5b1 Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Wed, 22 Jul 2015 22:28:09 -0400 Subject: [PATCH 259/440] Document all options in the interwiki config --- conf/interwiki.conf | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 9305c038a..3ddcfd810 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -1,8 +1,16 @@ -# Each URL may contain one of the placeholders {URL} or {NAME} +# Each URL may contain one of these placeholders # {URL} is replaced by the URL encoded representation of the wikiname # this is the right thing to do in most cases # {NAME} this is replaced by the wikiname as given in the document -# no further encoding is done +# only mandatory encoded is done, urlencoding if the link +# is an external URL, or encoding as a wikiname if it is an +# internal link (begins with a colon) +# {SCHEME} +# {HOST} +# {PORT} +# {PATH} +# {QUERY} these placeholders will be replaced with the appropriate part +# of the link when parsed as a URL # If no placeholder is defined the urlencoded name is appended to the URL # To prevent losing your added InterWiki shortcuts after an upgrade, -- GitLab From ac1654273a44452a833628e254ee3e172386a55e Mon Sep 17 00:00:00 2001 From: Patrick Brown <ptbrown@whoopdedo.org> Date: Thu, 23 Jul 2015 13:04:45 -0400 Subject: [PATCH 260/440] Remove splitbrain.org interwiki link --- conf/interwiki.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 3ddcfd810..4dc3c80ee 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -31,7 +31,6 @@ amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= phpfn https://www.php.net/{NAME} -sb http://www.splitbrain.org/go/ skype skype:{NAME} google.de https://www.google.de/search?q= go https://www.google.com/search?q={URL}&btnI=lucky -- GitLab From 1dd04f9774f268918c142128043ff8696ea41b42 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 09:46:42 +0200 Subject: [PATCH 261/440] fixed styling preview in IE IE doesn't like it when you create a DOM element in one window and try to insert it in another window. --- lib/plugins/styling/script.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index f2d550b21..2f4285269 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -5,7 +5,7 @@ jQuery(function () { /** * Function to reload the preview styles in the main window * - * @param {window} target the main window + * @param {Window} target the main window */ function applyPreview(target) { // remove style @@ -13,9 +13,9 @@ jQuery(function () { $style.attr('href', ''); // append the loader screen - $loader = target.jQuery('#plugin__styling_loader'); + var $loader = target.jQuery('#plugin__styling_loader'); if (!$loader.length) { - $loader = jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); + $loader = target.jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); $loader.css({ 'position': 'absolute', 'width': '100%', @@ -68,6 +68,7 @@ jQuery(function () { var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures); e.preventDefault(); + e.stopPropagation(); }).wrap('<p></p>'); return; // we exit here if this is not the popup } -- GitLab From 84e76a7e9cfdd3dd7beb341445af056cdd642606 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 09:53:17 +0200 Subject: [PATCH 262/440] make personal style ini to cause cache reloads --- inc/template.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/template.php b/inc/template.php index 95dc52deb..7a25e12c8 100644 --- a/inc/template.php +++ b/inc/template.php @@ -297,6 +297,7 @@ function tpl_metaheaders($alt = true) { // prepare seed for js and css $tseed = $updateVersion; $depends = getConfigFiles('main'); + $depends[] = DOKU_CONF."tpl/".$conf['template']."/style.ini"; foreach($depends as $f) $tseed .= @filemtime($f); $tseed = md5($tseed); -- GitLab From 20a2375a6cfe911180fca2c58673b4554528a372 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 12:23:37 +0200 Subject: [PATCH 263/440] Revert "Additionally allow more media types" #982 This reverts commit de4634ec87b1a277c1686990d993dafc43db05ed. --- lib/exe/css.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/exe/css.php b/lib/exe/css.php index 701cebaed..e0bc68312 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -32,25 +32,24 @@ function css_out(){ global $config_cascade; global $INPUT; - // decide from where to get the template - $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); - if(!$tpl) $tpl = $conf['template']; - - // load style.ini - $styleini = css_styleini($tpl); - - // find mediatypes if ($INPUT->str('s') == 'feed') { $mediatypes = array('feed'); $type = 'feed'; } else { - $mediatypes = array_unique(array_merge(array('screen', 'all', 'print'), array_keys($styleini['stylesheets']))); + $mediatypes = array('screen', 'all', 'print'); $type = ''; } + // decide from where to get the template + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); + if(!$tpl) $tpl = $conf['template']; + // The generated script depends on some dynamic options $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl.$type,'.css'); + // load styl.ini + $styleini = css_styleini($tpl); + // if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility if (isset($config_cascade['userstyle']['default'])) { $config_cascade['userstyle']['screen'] = array($config_cascade['userstyle']['default']); -- GitLab From 4a690352a4dc4dff668c4189c41d982f838bc8b9 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 13:40:07 +0200 Subject: [PATCH 264/440] fixed #1249 by upgrading php-archive to 1.0.4 --- composer.lock | 10 +++++----- vendor/composer/installed.json | 12 ++++++------ vendor/splitbrain/php-archive/src/Zip.php | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/composer.lock b/composer.lock index 32ea37109..9aa165902 100644 --- a/composer.lock +++ b/composer.lock @@ -54,16 +54,16 @@ }, { "name": "splitbrain/php-archive", - "version": "1.0.2", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/splitbrain/php-archive.git", - "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31" + "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/89b4cba038e8cf01af3a8180572f19b8e4afaa31", - "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68", + "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68", "shasum": "" }, "require": { @@ -97,7 +97,7 @@ "unzip", "zip" ], - "time": "2015-06-30 19:12:21" + "time": "2015-07-24 11:36:49" } ], "packages-dev": [], diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 28e3fb6e2..9b20b8a09 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -49,17 +49,17 @@ }, { "name": "splitbrain/php-archive", - "version": "1.0.2", - "version_normalized": "1.0.2.0", + "version": "1.0.4", + "version_normalized": "1.0.4.0", "source": { "type": "git", "url": "https://github.com/splitbrain/php-archive.git", - "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31" + "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/89b4cba038e8cf01af3a8180572f19b8e4afaa31", - "reference": "89b4cba038e8cf01af3a8180572f19b8e4afaa31", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68", + "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68", "shasum": "" }, "require": { @@ -68,7 +68,7 @@ "require-dev": { "phpunit/phpunit": "4.5.*" }, - "time": "2015-06-30 19:12:21", + "time": "2015-07-24 11:36:49", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php index 324eb4f59..1bc1ac1b7 100644 --- a/vendor/splitbrain/php-archive/src/Zip.php +++ b/vendor/splitbrain/php-archive/src/Zip.php @@ -223,6 +223,7 @@ class Zip extends Archive } fclose($fp); gzclose($gzp); + unlink($extractto); // remove temporary gz file } touch($output, $fileinfo->getMtime()); -- GitLab From 2ad45addfac44b12c095303cf7abe488576b0802 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 15:18:19 +0200 Subject: [PATCH 265/440] avoid errors on trying to read corrupt gzip files --- inc/io.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/inc/io.php b/inc/io.php index 9be648824..704c5b1a6 100644 --- a/inc/io.php +++ b/inc/io.php @@ -107,13 +107,15 @@ function io_readFile($file,$clean=true){ $ret = ''; if(file_exists($file)){ if(substr($file,-3) == '.gz'){ - $ret = join('',gzfile($file)); + $ret = gzfile($file); + if(is_array($ret)) $ret = join('', $ret); }else if(substr($file,-4) == '.bz2'){ $ret = bzfile($file); }else{ $ret = file_get_contents($file); } } + if($ret === null) return false; if($ret !== false && $clean){ return cleanText($ret); }else{ -- GitLab From 32c7ba22db35fd22aed87fb31984069873cefc4f Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 15:18:42 +0200 Subject: [PATCH 266/440] skip sha512 tests when it's not available This makes the entire testsuite run through on HHVM 3.8.0 on phpunit beta-2015-06-18 :-) Note: this does not mean that DokuWiki is fully compatible with HHVM, but it's a good step! --- _test/tests/inc/auth_password.test.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/_test/tests/inc/auth_password.test.php b/_test/tests/inc/auth_password.test.php index 07b9f5bb2..5067e2ca1 100644 --- a/_test/tests/inc/auth_password.test.php +++ b/_test/tests/inc/auth_password.test.php @@ -16,9 +16,16 @@ class auth_password_test extends DokuWikiTest { 'kmd5' => 'a579299436d7969791189acadd86fcb716', 'djangomd5' => 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158', 'djangosha1' => 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678', - 'sha512' => '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1' + ); + function __construct() { + if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) { + // Check SHA512 only if available in this PHP + $this->passes['sha512'] = '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1'; + } + } + function test_cryptPassword(){ foreach($this->passes as $method => $hash){ -- GitLab From ae725da53659cc2733e9315cc4d3214cea561205 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 24 Jul 2015 15:24:00 +0200 Subject: [PATCH 267/440] use new container infrastructure on Travis See http://docs.travis-ci.com/user/migrating-from-legacy --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index edca80e0b..61e47522d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: php +sudo: false php: - "5.6" - "5.5" -- GitLab From 345e401d3852cc9c7382a5f2aa888233b9fe0d10 Mon Sep 17 00:00:00 2001 From: trebmuh <trebmuh@users.noreply.github.com> Date: Sat, 25 Jul 2015 01:16:25 +0200 Subject: [PATCH 268/440] Update lang.php Please someone who know the code, double check this one. It does look that translation for 2 options were missing. --- lib/plugins/config/lang/fr/lang.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index e92144b22..75dc4f177 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -94,7 +94,9 @@ $lang['disableactions'] = 'Actions à désactiver dans DokuWiki'; $lang['disableactions_check'] = 'Vérifier'; $lang['disableactions_subscription'] = 'Abonnement aux pages'; $lang['disableactions_wikicode'] = 'Afficher le texte source'; +$lang['disableactions_profile_delete'] = 'Supprimer votre propre compte'; $lang['disableactions_other'] = 'Autres actions (séparées par des virgules)'; +$lang['disableactions_rss'] = 'Syndication XML (RSS)'; $lang['auth_security_timeout'] = 'Délai d\'expiration de sécurité (secondes)'; $lang['securecookie'] = 'Les cookies définis via HTTPS doivent-ils n\'être envoyé par le navigateur que via HTTPS ? Désactivez cette option lorsque seule la connexion à votre wiki est sécurisée avec SSL et que la navigation sur le wiki est effectuée de manière non sécurisée.'; $lang['remote'] = 'Active l\'API système distante. Ceci permet à d\'autres applications d\'accéder au wiki via XML-RPC ou d\'autres mécanismes.'; -- GitLab From 99d6dd40cd3ecabd484c6a53970e7f65bfae487f Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sat, 25 Jul 2015 22:04:59 +0100 Subject: [PATCH 269/440] updated .editorconfig --- .editorconfig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 9088a1657..d88e75a28 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,15 +1,19 @@ ; http://editorconfig.org/ +root = true + [*] indent_style = space indent_size = 4 +end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[inc/{geshi,phpseclib}/**] +[{vendor,inc/phpseclib}/**] ; Use editor default (possible autodetection). indent_style = indent_size = -trim_trailing_whitespace = false -insert_final_newline = false +end_of_line = +trim_trailing_whitespace = +insert_final_newline = -- GitLab From 17a19868b701d17ba03918eb7f8a2eacc603a84f Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sat, 25 Jul 2015 22:32:15 +0100 Subject: [PATCH 270/440] remove IE7 support --- lib/plugins/acl/style.css | 4 ---- lib/tpl/dokuwiki/css/_links.css | 1 - lib/tpl/dokuwiki/css/basic.less | 6 ------ lib/tpl/dokuwiki/css/content.less | 3 +-- lib/tpl/dokuwiki/css/design.less | 10 ---------- lib/tpl/dokuwiki/css/pagetools.less | 19 ------------------- lib/tpl/dokuwiki/detail.php | 4 ++-- lib/tpl/dokuwiki/main.php | 4 ++-- lib/tpl/dokuwiki/mediamanager.php | 4 ++-- 9 files changed, 7 insertions(+), 48 deletions(-) diff --git a/lib/plugins/acl/style.css b/lib/plugins/acl/style.css index a53a03450..4233cd30b 100644 --- a/lib/plugins/acl/style.css +++ b/lib/plugins/acl/style.css @@ -81,7 +81,6 @@ [dir=rtl] #acl_manager .aclgroup { background: transparent url(pix/group.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .acluser { @@ -91,7 +90,6 @@ [dir=rtl] #acl_manager .acluser { background: transparent url(pix/user.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .aclpage { @@ -101,7 +99,6 @@ [dir=rtl] #acl_manager .aclpage { background: transparent url(pix/page.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .aclns { @@ -111,7 +108,6 @@ [dir=rtl] #acl_manager .aclns { background: transparent url(pix/ns.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager label.disabled { diff --git a/lib/tpl/dokuwiki/css/_links.css b/lib/tpl/dokuwiki/css/_links.css index 7e5fb02cd..695f4b825 100644 --- a/lib/tpl/dokuwiki/css/_links.css +++ b/lib/tpl/dokuwiki/css/_links.css @@ -66,5 +66,4 @@ [dir=rtl] .dokuwiki a.mediafile { background-position: right center; padding: 0 18px 0 0; - display: inline-block; /* needed for IE7 */ } diff --git a/lib/tpl/dokuwiki/css/basic.less b/lib/tpl/dokuwiki/css/basic.less index ac9f6803a..d10cac670 100644 --- a/lib/tpl/dokuwiki/css/basic.less +++ b/lib/tpl/dokuwiki/css/basic.less @@ -228,7 +228,6 @@ video, audio { max-width: 100%; } -#IE7 img, #IE8 img, button img { max-width: none; @@ -414,11 +413,6 @@ button, padding: .1em .5em; cursor: pointer; } -#IE7 input.button, -#IE7 button { - line-height: 1.4; - overflow: visible; -} input[type=submit]:hover, input[type=submit]:active, diff --git a/lib/tpl/dokuwiki/css/content.less b/lib/tpl/dokuwiki/css/content.less index a2e343a33..23db33cfb 100644 --- a/lib/tpl/dokuwiki/css/content.less +++ b/lib/tpl/dokuwiki/css/content.less @@ -140,7 +140,6 @@ dd { margin: 0; clear: left; - min-height: 1px; /* for IE7 */ } pre { @@ -391,4 +390,4 @@ margin-left: 0; margin-right: 9.5em; } -} \ No newline at end of file +} diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less index ed643fb25..e314bb5b3 100644 --- a/lib/tpl/dokuwiki/css/design.less +++ b/lib/tpl/dokuwiki/css/design.less @@ -117,10 +117,6 @@ padding-right: 20px; } -[dir=rtl] #IE7 #dokuwiki__usertools a.action { - display: inline-block; -} - #dokuwiki__header .mobileTools { display: none; /* hide mobile tools dropdown to only show in mobile view */ } @@ -237,11 +233,6 @@ form.search { } } -#IE7 form.search { - min-height: 1px; - z-index: 21; -} - /*____________ breadcrumbs ____________*/ .dokuwiki div.breadcrumbs { @@ -273,7 +264,6 @@ form.search { } } -#IE7 .dokuwiki div.breadcrumbs div, #IE8 .dokuwiki div.breadcrumbs div { border-bottom: 1px solid @ini_border; } diff --git a/lib/tpl/dokuwiki/css/pagetools.less b/lib/tpl/dokuwiki/css/pagetools.less index 77d2670a6..f441a1363 100644 --- a/lib/tpl/dokuwiki/css/pagetools.less +++ b/lib/tpl/dokuwiki/css/pagetools.less @@ -133,25 +133,6 @@ padding: 5px 5px 5px 40px; } -/* IE7 fixes, doesn't work without images */ - -#IE7 #dokuwiki__pagetools ul li a { - background-image: url(images/pagetools-sprite.png?v=2); -} - -#IE7 #dokuwiki__pagetools:hover ul li a span, -#IE7 #dokuwiki__pagetools ul li a:focus span, -#IE7 #dokuwiki__pagetools ul li a:active span { - clip: auto; - display: inline; - position: static; -} - -#IE7 #dokuwiki__pagetools ul li a span { - clip: rect(0 0 0 0); - position: absolute; -} - #dokuwiki__pagetools ul li a:hover, #dokuwiki__pagetools ul li a:active, #dokuwiki__pagetools ul li a:focus { diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index 6755bdce5..4d798e3af 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -27,7 +27,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>"> <?php include('tpl_header.php') ?> @@ -120,6 +120,6 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <?php include('tpl_footer.php') ?> </div></div><!-- /site --> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index eea1df71a..9fea1b133 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -26,7 +26,7 @@ $showSidebar = $hasSidebar && ($ACT=='show'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>"> @@ -106,6 +106,6 @@ $showSidebar = $hasSidebar && ($ACT=='show'); <div class="no"><?php tpl_indexerWebBug() /* provide DokuWiki housekeeping, required in all templates */ ?></div> <div id="screen__mode" class="no"></div><?php /* helper to detect CSS media query in script.js */ ?> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> diff --git a/lib/tpl/dokuwiki/mediamanager.php b/lib/tpl/dokuwiki/mediamanager.php index dadf2b10f..b31271766 100644 --- a/lib/tpl/dokuwiki/mediamanager.php +++ b/lib/tpl/dokuwiki/mediamanager.php @@ -25,7 +25,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="media__manager" class="dokuwiki"> <?php html_msgarea() ?> <div id="mediamgr__aside"><div class="pad"> @@ -41,6 +41,6 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <?php tpl_mediaContent() ?> </div></div> </div> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> -- GitLab From cf2c8e759bf06596f9492d090f4dd8dbb76a178c Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sat, 25 Jul 2015 22:58:51 +0100 Subject: [PATCH 271/440] changed input submits to buttons, fixed small RTL issue --- lib/plugins/styling/admin.php | 10 +++++----- lib/plugins/styling/lang/en/lang.php | 2 +- lib/plugins/styling/script.js | 2 +- lib/plugins/styling/style.less | 6 +++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php index c6c04bb52..c747c3130 100644 --- a/lib/plugins/styling/admin.php +++ b/lib/plugins/styling/admin.php @@ -83,22 +83,22 @@ class admin_plugin_styling extends DokuWiki_Admin_Plugin { echo '<tr>'; echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>'; - echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' /></td>'; + echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' dir="ltr" /></td>'; echo '</tr>'; } echo '</tbody></table>'; echo '<p>'; - echo '<input type="submit" name="run[preview]" class="btn_preview primary" value="'.$this->getLang('btn_preview').'" /> '; - echo '<input type="submit" name="run[reset]" value="'.$this->getLang('btn_reset').'" />'; #FIXME only if preview.ini exists + echo '<button type="submit" name="run[preview]" class="btn_preview primary">'.$this->getLang('btn_preview').'</button> '; + echo '<button type="submit" name="run[reset]">'.$this->getLang('btn_reset').'</button>'; #FIXME only if preview.ini exists echo '</p>'; echo '<p>'; - echo '<input type="submit" name="run[save]" class="primary" value="'.$this->getLang('btn_save').'" />'; + echo '<button type="submit" name="run[save]" class="primary">'.$this->getLang('btn_save').'</button>'; echo '</p>'; echo '<p>'; - echo '<input type="submit" name="run[revert]" value="'.$this->getLang('btn_revert').'" />'; #FIXME only if local.ini exists + echo '<button type="submit" name="run[revert]">'.$this->getLang('btn_revert').'</button>'; #FIXME only if local.ini exists echo '</p>'; echo '</form>'; diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php index 010743956..e0011eb83 100644 --- a/lib/plugins/styling/lang/en/lang.php +++ b/lib/plugins/styling/lang/en/lang.php @@ -17,7 +17,7 @@ $lang['error'] = 'Sorry, this template does not support this functionality.'; $lang['btn_preview'] = 'Preview changes'; $lang['btn_save'] = 'Save changes'; $lang['btn_reset'] = 'Reset current changes'; -$lang['btn_revert'] = 'Revert all styles back to the template\'s default'; +$lang['btn_revert'] = 'Revert styles back to template\'s default'; // default guaranteed placeholders $lang['__text__'] = 'Main text color'; diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 2f4285269..aa343fd71 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -85,7 +85,7 @@ jQuery(function () { }; // don't reload on our own buttons - jQuery('input[type=submit]').click(function(e){ + jQuery(':button').click(function(e){ doreload = false; }); diff --git a/lib/plugins/styling/style.less b/lib/plugins/styling/style.less index 120768289..be0e16a5b 100644 --- a/lib/plugins/styling/style.less +++ b/lib/plugins/styling/style.less @@ -1,7 +1,11 @@ #plugin__styling { - input.primary { + button.primary { font-weight: bold; } + + [dir=rtl] & table input { + text-align: right; + } } #plugin__styling_loader { -- GitLab From ec2b4bab83a5eb6ddcdb41853d311b99b71c6f86 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sun, 26 Jul 2015 11:43:02 +0200 Subject: [PATCH 272/440] fix problem with IE11 hopefully doesn't break in the other browsers --- lib/plugins/styling/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index aa343fd71..074c8dc40 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -35,7 +35,7 @@ jQuery(function () { } // load preview in main window (timeout works around chrome updating CSS weirdness) - target.setTimeout(function () { + setTimeout(function () { var now = new Date().getTime(); $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); }, 500); -- GitLab From 2e206e75efe39d8e8d038606d2f4998d7a5e440a Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 26 Jul 2015 16:29:31 +0100 Subject: [PATCH 273/440] updated dates in various info.txt files --- lib/plugins/acl/plugin.info.txt | 2 +- lib/plugins/authad/plugin.info.txt | 2 +- lib/plugins/authldap/plugin.info.txt | 2 +- lib/plugins/authmysql/plugin.info.txt | 2 +- lib/plugins/authpgsql/plugin.info.txt | 2 +- lib/plugins/authplain/plugin.info.txt | 2 +- lib/plugins/config/plugin.info.txt | 2 +- lib/plugins/extension/plugin.info.txt | 2 +- lib/plugins/info/plugin.info.txt | 2 +- lib/plugins/popularity/plugin.info.txt | 2 +- lib/plugins/revert/plugin.info.txt | 2 +- lib/plugins/styling/plugin.info.txt | 2 +- lib/plugins/usermanager/plugin.info.txt | 2 +- lib/tpl/dokuwiki/template.info.txt | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/plugins/acl/plugin.info.txt b/lib/plugins/acl/plugin.info.txt index cb8fe7e8e..1b2c82cb3 100644 --- a/lib/plugins/acl/plugin.info.txt +++ b/lib/plugins/acl/plugin.info.txt @@ -1,7 +1,7 @@ base acl author Andreas Gohr email andi@splitbrain.org -date 2014-06-04 +date 2015-07-25 name ACL Manager desc Manage Page Access Control Lists url http://dokuwiki.org/plugin:acl diff --git a/lib/plugins/authad/plugin.info.txt b/lib/plugins/authad/plugin.info.txt index dc0629189..57e1387e9 100644 --- a/lib/plugins/authad/plugin.info.txt +++ b/lib/plugins/authad/plugin.info.txt @@ -1,7 +1,7 @@ base authad author Andreas Gohr email andi@splitbrain.org -date 2014-04-03 +date 2015-07-13 name Active Directory Auth Plugin desc Provides user authentication against a Microsoft Active Directory url http://www.dokuwiki.org/plugin:authad diff --git a/lib/plugins/authldap/plugin.info.txt b/lib/plugins/authldap/plugin.info.txt index 964fbb994..e0c6144c3 100644 --- a/lib/plugins/authldap/plugin.info.txt +++ b/lib/plugins/authldap/plugin.info.txt @@ -1,7 +1,7 @@ base authldap author Andreas Gohr email andi@splitbrain.org -date 2014-05-18 +date 2015-07-13 name LDAP Auth Plugin desc Provides user authentication against an LDAP server url http://www.dokuwiki.org/plugin:authldap diff --git a/lib/plugins/authmysql/plugin.info.txt b/lib/plugins/authmysql/plugin.info.txt index fa00fccf4..1658d7aac 100644 --- a/lib/plugins/authmysql/plugin.info.txt +++ b/lib/plugins/authmysql/plugin.info.txt @@ -1,7 +1,7 @@ base authmysql author Andreas Gohr email andi@splitbrain.org -date 2014-02-15 +date 2015-07-13 name MYSQL Auth Plugin desc Provides user authentication against a MySQL database url http://www.dokuwiki.org/plugin:authmysql diff --git a/lib/plugins/authpgsql/plugin.info.txt b/lib/plugins/authpgsql/plugin.info.txt index 59b7d89a9..1d53ca0b1 100644 --- a/lib/plugins/authpgsql/plugin.info.txt +++ b/lib/plugins/authpgsql/plugin.info.txt @@ -1,7 +1,7 @@ base authpgsql author Andreas Gohr email andi@splitbrain.org -date 2014-02-15 +date 2015-07-13 name PostgreSQL Auth Plugin desc Provides user authentication against a PostgreSQL database url http://www.dokuwiki.org/plugin:authpgsql diff --git a/lib/plugins/authplain/plugin.info.txt b/lib/plugins/authplain/plugin.info.txt index 2659ac7ad..c09dbcb34 100644 --- a/lib/plugins/authplain/plugin.info.txt +++ b/lib/plugins/authplain/plugin.info.txt @@ -1,7 +1,7 @@ base authplain author Andreas Gohr email andi@splitbrain.org -date 2014-07-01 +date 2015-07-18 name Plain Auth Plugin desc Provides user authentication against DokuWiki's local password storage url http://www.dokuwiki.org/plugin:authplain diff --git a/lib/plugins/config/plugin.info.txt b/lib/plugins/config/plugin.info.txt index 9472346b9..ddd72657d 100644 --- a/lib/plugins/config/plugin.info.txt +++ b/lib/plugins/config/plugin.info.txt @@ -1,7 +1,7 @@ base config author Christopher Smith email chris@jalakai.co.uk -date 2014-03-18 +date 2015-07-18 name Configuration Manager desc Manage Dokuwiki's Configuration Settings url http://dokuwiki.org/plugin:config diff --git a/lib/plugins/extension/plugin.info.txt b/lib/plugins/extension/plugin.info.txt index ee9830628..7ee84dcc0 100644 --- a/lib/plugins/extension/plugin.info.txt +++ b/lib/plugins/extension/plugin.info.txt @@ -1,7 +1,7 @@ base extension author Michael Hamann email michael@content-space.de -date 2014-06-15 +date 2015-07-26 name Extension Manager desc Allows managing and installing plugins and templates url https://www.dokuwiki.org/plugin:extension diff --git a/lib/plugins/info/plugin.info.txt b/lib/plugins/info/plugin.info.txt index 7773a419d..3f05391f7 100644 --- a/lib/plugins/info/plugin.info.txt +++ b/lib/plugins/info/plugin.info.txt @@ -1,7 +1,7 @@ base info author Andreas Gohr email andi@splitbrain.org -date 2014-03-05 +date 2014-10-01 name Info Plugin desc Displays information about various DokuWiki internals url http://dokuwiki.org/plugin:info diff --git a/lib/plugins/popularity/plugin.info.txt b/lib/plugins/popularity/plugin.info.txt index eadfffaa0..8ffc136a1 100644 --- a/lib/plugins/popularity/plugin.info.txt +++ b/lib/plugins/popularity/plugin.info.txt @@ -1,7 +1,7 @@ base popularity author Andreas Gohr email andi@splitbrain.org -date 2013-10-14 +date 2015-07-15 name Popularity Feedback Plugin desc Send anonymous data about your wiki to the DokuWiki developers url http://www.dokuwiki.org/plugin:popularity diff --git a/lib/plugins/revert/plugin.info.txt b/lib/plugins/revert/plugin.info.txt index 8d107dc32..bba939d37 100644 --- a/lib/plugins/revert/plugin.info.txt +++ b/lib/plugins/revert/plugin.info.txt @@ -1,7 +1,7 @@ base revert author Andreas Gohr email andi@splitbrain.org -date 2013-11-21 +date 2015-07-15 name Revert Manager desc Allows you to mass revert recent edits to remove Spam or vandalism url http://dokuwiki.org/plugin:revert diff --git a/lib/plugins/styling/plugin.info.txt b/lib/plugins/styling/plugin.info.txt index cdf01ee6f..9f002e282 100644 --- a/lib/plugins/styling/plugin.info.txt +++ b/lib/plugins/styling/plugin.info.txt @@ -1,7 +1,7 @@ base styling author Andreas Gohr email andi@splitbrain.org -date 2015-05-16 +date 2015-07-26 name styling plugin desc Allows to edit style.ini replacements url https://www.dokuwiki.org/plugin:styling diff --git a/lib/plugins/usermanager/plugin.info.txt b/lib/plugins/usermanager/plugin.info.txt index ae4f9b9cc..607eca75f 100644 --- a/lib/plugins/usermanager/plugin.info.txt +++ b/lib/plugins/usermanager/plugin.info.txt @@ -1,7 +1,7 @@ base usermanager author Chris Smith email chris@jalakai.co.uk -date 2014-03-05 +date 2015-07-15 name User Manager desc Manage DokuWiki user accounts url http://dokuwiki.org/plugin:usermanager diff --git a/lib/tpl/dokuwiki/template.info.txt b/lib/tpl/dokuwiki/template.info.txt index 804d595ae..73ad93927 100644 --- a/lib/tpl/dokuwiki/template.info.txt +++ b/lib/tpl/dokuwiki/template.info.txt @@ -1,7 +1,7 @@ base dokuwiki author Anika Henke email anika@selfthinker.org -date 2014-06-04 +date 2015-07-26 name DokuWiki Template desc DokuWiki's default template since 2012 url http://www.dokuwiki.org/template:dokuwiki -- GitLab From b4150bdc2c461def4ea3a0e9a3ed38bbcf631084 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 26 Jul 2015 16:34:28 +0100 Subject: [PATCH 274/440] fixed wrong format string in authldap translation --- lib/plugins/authldap/lang/es/lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/authldap/lang/es/lang.php b/lib/plugins/authldap/lang/es/lang.php index e68a42603..64ea7b964 100644 --- a/lib/plugins/authldap/lang/es/lang.php +++ b/lib/plugins/authldap/lang/es/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mauricio Segura <maose38@yahoo.es> */ -$lang['connectfail'] = 'LDAP no se puede conectar: %5'; +$lang['connectfail'] = 'LDAP no se puede conectar: %s'; -- GitLab From 68a234e7114a81dae4fc2712d94f836e55f381ae Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 26 Jul 2015 17:02:36 +0100 Subject: [PATCH 275/440] removed unused interwiki icons (obsolete since #1247) --- lib/images/interwiki/coral.gif | Bin 85 -> 0 bytes lib/images/interwiki/dokubug.gif | Bin 194 -> 0 bytes lib/images/interwiki/sb.gif | Bin 195 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/images/interwiki/coral.gif delete mode 100644 lib/images/interwiki/dokubug.gif delete mode 100644 lib/images/interwiki/sb.gif diff --git a/lib/images/interwiki/coral.gif b/lib/images/interwiki/coral.gif deleted file mode 100644 index 0f9f67587d8ab56fa861a503543e69a9a6dcb80d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmZ?wbhEHb6krfwSjfz<LEMnLgZuq+uK)l4EB<6*<YHiE&|v@qkURsE+MNECr{D5N n&M-NV8hk9OVymPR+muudK2cU3IRyn>WBIR1(=MJ9VXy`O9UvK- diff --git a/lib/images/interwiki/dokubug.gif b/lib/images/interwiki/dokubug.gif deleted file mode 100644 index 08c1ca1f106e8d8d3e7b703590d8adbe53e6b373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmV;z06qUlNk%w1VGsZi0P_z3k&%&$i;JV9qgh#5w6wI0jEre%X-`j2g@uK3a&muv ze@910zP`T5$jI2(*Z=?kA^8La000jFEC2ui01yBW000DU@X7hWEHq1iAJWwn1WBS8 z8ekOxf)LK9u|U%hiNKVGB_RQZV5mp{7Lt(*AmlI!hQq|AXb3n30sxAdD7Jt=HVhq@ wC11km8n_NJMM0Y-FuXO10YOl3AEX)vJpcoM2S^%bg@7O#e~lmuh!YV2JJIt*K>z>% diff --git a/lib/images/interwiki/sb.gif b/lib/images/interwiki/sb.gif deleted file mode 100644 index 710e4945b404d2fdf2e2fca6c45e36d399abc87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmZ?wbhEHb6krfw_{_jimC6$B%VMCx(pADWr(I>m6q6}UBAe&A>{=OmVtf9XLp7I= z_ujd-<jL*LZ=Rg|^Y4%1PZkCc&;b!3GZ<J3KAiN-j$M)QWmc%Wqkxp4+Po<pQH6Wn z9JJ|PE$cCFYCH3DZXPCeCC$7QEQt&ZA_Cr*&zW)bu!TA<I3Tch!!jo0LJkSJKDOpY u32inOo`k^6HBD>|Oa=uJa@pL>QH)&mLOj~~b?q5koV}u%6Q>9=SOWlA%0!C* -- GitLab From fcf2eb0eee7dc56b5ef5ef429b54a504ca229f41 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sun, 26 Jul 2015 17:03:51 +0100 Subject: [PATCH 276/440] fixed missing bug icon in extension manager (since #1247) --- lib/plugins/extension/helper/list.php | 2 +- lib/plugins/extension/images/bug.gif | Bin 0 -> 194 bytes lib/plugins/extension/style.less | 5 +++++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/extension/images/bug.gif diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index bf099d308..6ca72f7ce 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -266,7 +266,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return = '<div class="linkbar">'; $return .= $this->make_homepagelink($extension); if ($extension->getBugtrackerURL()) { - $return .= ' <a href="'.hsc($extension->getBugtrackerURL()).'" title="'.hsc($extension->getBugtrackerURL()).'" class ="interwiki iw_dokubug">'.$this->getLang('bugs_features').'</a> '; + $return .= ' <a href="'.hsc($extension->getBugtrackerURL()).'" title="'.hsc($extension->getBugtrackerURL()).'" class ="bugs">'.$this->getLang('bugs_features').'</a> '; } if ($extension->getTags()){ $first = true; diff --git a/lib/plugins/extension/images/bug.gif b/lib/plugins/extension/images/bug.gif new file mode 100644 index 0000000000000000000000000000000000000000..08c1ca1f106e8d8d3e7b703590d8adbe53e6b373 GIT binary patch literal 194 zcmV;z06qUlNk%w1VGsZi0P_z3k&%&$i;JV9qgh#5w6wI0jEre%X-`j2g@uK3a&muv ze@910zP`T5$jI2(*Z=?kA^8La000jFEC2ui01yBW000DU@X7hWEHq1iAJWwn1WBS8 z8ekOxf)LK9u|U%hiNKVGB_RQZV5mp{7Lt(*AmlI!hQq|AXb3n30sxAdD7Jt=HVhq@ wC11km8n_NJMM0Y-FuXO10YOl3AEX)vJpcoM2S^%bg@7O#e~lmuh!YV2JJIt*K>z>% literal 0 HcmV?d00001 diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index c400d649a..38e632055 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -171,6 +171,11 @@ padding-left: 18px; background: transparent url(images/tag.png) no-repeat 0 0; } + + a.bugs { + padding-left: 18px; + background: transparent url(images/bug.gif) no-repeat 0 0; + } } // more info button -- GitLab From bc8a3531ce749ec8e8c126fb04d84a30a091dd73 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 29 Jul 2015 08:31:11 +0200 Subject: [PATCH 277/440] translation update --- lib/plugins/authplain/lang/ja/lang.php | 8 ++++++-- lib/plugins/config/lang/ja/lang.php | 7 +++++-- lib/plugins/styling/lang/ja/intro.txt | 2 ++ lib/plugins/styling/lang/ja/lang.php | 23 +++++++++++++++++++++++ lib/tpl/dokuwiki/lang/ja/lang.php | 14 ++++++++++++++ lib/tpl/dokuwiki/lang/ja/style.txt | 5 +++++ 6 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/styling/lang/ja/intro.txt create mode 100644 lib/plugins/styling/lang/ja/lang.php create mode 100644 lib/tpl/dokuwiki/lang/ja/lang.php create mode 100644 lib/tpl/dokuwiki/lang/ja/style.txt diff --git a/lib/plugins/authplain/lang/ja/lang.php b/lib/plugins/authplain/lang/ja/lang.php index aad08a8bd..6aa0be79c 100644 --- a/lib/plugins/authplain/lang/ja/lang.php +++ b/lib/plugins/authplain/lang/ja/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Hideaki SAWADA <chuno@live.jp> */ -$lang['userexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; +$lang['userexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; +$lang['usernotexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æœªç™»éŒ²ã§ã™ã€‚'; +$lang['writefail'] = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。管ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。'; diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index e8cf8227b..41ad1c8d9 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -1,8 +1,8 @@ <?php + /** - * japanese language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Yuji Takenaka <webmaster@davilin.com> * @author Christopher Smith <chris@jalakai.co.uk> * @author Ikuo Obataya <i.obataya@gmail.com> @@ -10,6 +10,7 @@ * @author Kazutaka Miyasaka <kazmiya@gmail.com> * @author Taisuke Shimamoto <dentostar@gmail.com> * @author Satoshi Sahara <sahara.satoshi@gmail.com> + * @author Hideaki SAWADA <chuno@live.jp> */ $lang['menu'] = 'サイトè¨å®š'; $lang['error'] = 'ä¸æ£ãªå€¤ãŒå˜åœ¨ã™ã‚‹ãŸã‚ã€è¨å®šã¯æ›´æ–°ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚入力値を確èªã—ã¦ã‹ã‚‰ã€å†åº¦æ›´æ–°ã—ã¦ãã ã•ã„。 @@ -85,7 +86,9 @@ $lang['disableactions'] = 'DokuWiki ã®å‹•ä½œã‚’無効ã«ã™ã‚‹'; $lang['disableactions_check'] = 'ãƒã‚§ãƒƒã‚¯'; $lang['disableactions_subscription'] = '登録 / 解除'; $lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力'; +$lang['disableactions_profile_delete'] = 'ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’削除ã—ã¾ã™ã€‚'; $lang['disableactions_other'] = 'ãã®ä»–ã®å‹•ä½œï¼ˆã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šï¼‰'; +$lang['disableactions_rss'] = 'XML é…信(RSS)'; $lang['auth_security_timeout'] = 'èªè¨¼ã‚¿ã‚¤ãƒ アウトè¨å®šï¼ˆç§’)'; $lang['securecookie'] = 'クッã‚ーをHTTPSã«ã¦ã‚»ãƒƒãƒˆã™ã‚‹å ´åˆã¯ã€ãƒ–ラウザよりHTTPS経由ã§é€ä¿¡ã•ã‚ŒãŸå ´åˆã«ã¿ã«åˆ¶é™ã—ã¾ã™ã‹ï¼Ÿãƒã‚°ã‚¤ãƒ³ã®ã¿ã‚’SSLã§è¡Œã†å ´åˆã¯ã€ã“ã®æ©Ÿèƒ½ã‚’無効ã«ã—ã¦ãã ã•ã„。'; $lang['remote'] = 'リモートAPIを有効化ã—ã¾ã™ã€‚有効化ã™ã‚‹ã¨XML-RPCã¾ãŸã¯ä»–ã®æ‰‹æ®µã§wikiã«ã‚¢ãƒ—リケーションãŒã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã‚’許å¯ã—ã¾ã™ã€‚'; diff --git a/lib/plugins/styling/lang/ja/intro.txt b/lib/plugins/styling/lang/ja/intro.txt new file mode 100644 index 000000000..1feb4e033 --- /dev/null +++ b/lib/plugins/styling/lang/ja/intro.txt @@ -0,0 +1,2 @@ +ã“ã®ç”»é¢ä¸Šã§ã€é¸æŠžä¸ã®ãƒ†ãƒ³ãƒ—レート固有ã®ã‚¹ã‚¿ã‚¤ãƒ«è¨å®šã‚’変更ã§ãã¾ã™ã€‚ +変更内容ã¯ã™ã¹ã¦ãƒãƒ¼ã‚«ãƒ«ã®è¨å®šãƒ•ã‚¡ã‚¤ãƒ«å†…ã«ä¿å˜ã•ã‚Œã€ãƒ†ãƒ³ãƒ—レートを更新ã—ã¦ã‚‚åˆæœŸåŒ–ã•ã‚Œã¾ã›ã‚“。 \ No newline at end of file diff --git a/lib/plugins/styling/lang/ja/lang.php b/lib/plugins/styling/lang/ja/lang.php new file mode 100644 index 000000000..da18829b2 --- /dev/null +++ b/lib/plugins/styling/lang/ja/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['menu'] = 'テンプレートã®ã‚¹ã‚¿ã‚¤ãƒ«è¨å®š'; +$lang['js']['loader'] = 'プレビューをèªè¾¼ã¿ä¸ã§ã™ãƒ»ãƒ»ãƒ»<br/>ã“ã®è¡¨ç¤ºãŒæ¶ˆãˆãªã„å ´åˆã€å¤‰æ›´ã—ãŸè¨å®šå€¤ã«å•é¡ŒãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。'; +$lang['js']['popup'] = 'ãƒãƒƒãƒ—アップã¨ã—ã¦è¡¨ç¤º'; +$lang['error'] = 'ã“ã®ãƒ†ãƒ³ãƒ—レートã¯ã€ã“ã®æ©Ÿèƒ½ã«å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。'; +$lang['btn_preview'] = '変更内容ã®ãƒ—レビュー'; +$lang['btn_save'] = '変更内容ã®ä¿å˜'; +$lang['btn_reset'] = '変更内容ã®åˆæœŸåŒ–'; +$lang['btn_revert'] = 'テンプレートã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã«æˆ»ã™'; +$lang['__text__'] = 'メイン文å—色'; +$lang['__background__'] = 'メイン背景色'; +$lang['__text_alt__'] = '代替文å—色'; +$lang['__background_alt__'] = '代替背景色'; +$lang['__text_neu__'] = '無彩色ã®æ–‡å—色'; +$lang['__background_neu__'] = '無彩色ã®èƒŒæ™¯è‰²'; +$lang['__border__'] = 'æž ç·šã®è‰²'; +$lang['__highlight__'] = '強調色(主ã«æ¤œç´¢çµæžœç”¨ï¼‰'; diff --git a/lib/tpl/dokuwiki/lang/ja/lang.php b/lib/tpl/dokuwiki/lang/ja/lang.php new file mode 100644 index 000000000..98de60320 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ja/lang.php @@ -0,0 +1,14 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['__link__'] = '通常ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__existing__'] = 'æ—¢å˜ãƒšãƒ¼ã‚¸ã¸ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__missing__'] = 'å˜åœ¨ã—ãªã„ページã¸ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__site_width__'] = 'サイトã®å…¨ä½“幅(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)'; +$lang['__sidebar_width__'] = 'サイドãƒãƒ¼ãŒã‚ã‚‹å ´åˆã€ã‚µã‚¤ãƒ‰ãƒãƒ¼ã®å¹…(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)'; +$lang['__tablet_width__'] = 'タブレットモードã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…'; +$lang['__phone_width__'] = 'æºå¸¯é›»è©±ãƒ¢ãƒ¼ãƒ‰ã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…'; diff --git a/lib/tpl/dokuwiki/lang/ja/style.txt b/lib/tpl/dokuwiki/lang/ja/style.txt new file mode 100644 index 000000000..ab032e7ec --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ja/style.txt @@ -0,0 +1,5 @@ +ãƒã‚´ã‚’変更ã—ãŸã„å ´åˆã€ãƒ¡ãƒ‡ã‚£ã‚¢ç®¡ç†ã‚’利用ã—ã¦ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“ã«ã€Œlogo.pngã€ã‚’アップãƒãƒ¼ãƒ‰ã—ã¦ä¸‹ã•ã„。 +自動的ã«ãã®ç”»åƒã‚’使用ã—ã¾ã™ã€‚ +åŒã˜å ´æ‰€ã«ã€Œfavicon.icoã€ã‚’アップãƒãƒ¼ãƒ‰ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ +アクセス制é™ã®ã‚ã‚‹ wiki を使用ã—ã¦ã„ã‚‹å ´åˆã€ã‚¢ã‚¯ã‚»ã‚¹ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ç®¡ç†ã§ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“を全員èªå–å¯ã«è¨å®šã—ã¦ä¸‹ã•ã„。 +ãã†ã§ãªã„ã¨ãƒã‚°ã‚¤ãƒ³ã—ã¦ã„ãªã„ユーザーã«ãƒã‚´ãŒè¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。 \ No newline at end of file -- GitLab From 43fe93f060609a616bc348cd2cf2e88ba3ab909e Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 29 Jul 2015 13:16:12 +0200 Subject: [PATCH 278/440] translation update --- lib/plugins/config/lang/ja/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index 41ad1c8d9..21e2ca112 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -86,7 +86,7 @@ $lang['disableactions'] = 'DokuWiki ã®å‹•ä½œã‚’無効ã«ã™ã‚‹'; $lang['disableactions_check'] = 'ãƒã‚§ãƒƒã‚¯'; $lang['disableactions_subscription'] = '登録 / 解除'; $lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力'; -$lang['disableactions_profile_delete'] = 'ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’削除ã—ã¾ã™ã€‚'; +$lang['disableactions_profile_delete'] = '自分ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æŠ¹æ¶ˆ'; $lang['disableactions_other'] = 'ãã®ä»–ã®å‹•ä½œï¼ˆã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šï¼‰'; $lang['disableactions_rss'] = 'XML é…信(RSS)'; $lang['auth_security_timeout'] = 'èªè¨¼ã‚¿ã‚¤ãƒ アウトè¨å®šï¼ˆç§’)'; -- GitLab From 00735b39660960c65922e77368290898d1fcaaff Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 29 Jul 2015 13:31:11 +0200 Subject: [PATCH 279/440] translation update --- lib/tpl/dokuwiki/lang/ja/lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tpl/dokuwiki/lang/ja/lang.php b/lib/tpl/dokuwiki/lang/ja/lang.php index 98de60320..1800e2aaa 100644 --- a/lib/tpl/dokuwiki/lang/ja/lang.php +++ b/lib/tpl/dokuwiki/lang/ja/lang.php @@ -5,6 +5,7 @@ * * @author Hideaki SAWADA <chuno@live.jp> */ +$lang['__background_site__'] = 'サイト全体ã®èƒŒæ™¯è‰²ï¼ˆcontent box ã®èƒŒå¾Œï¼‰'; $lang['__link__'] = '通常ã®ãƒªãƒ³ã‚¯è‰²'; $lang['__existing__'] = 'æ—¢å˜ãƒšãƒ¼ã‚¸ã¸ã®ãƒªãƒ³ã‚¯è‰²'; $lang['__missing__'] = 'å˜åœ¨ã—ãªã„ページã¸ã®ãƒªãƒ³ã‚¯è‰²'; -- GitLab From a0d2e3e98fe4e16dc1fa3ddaa4622a3373eb75ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carbain=20Fr=C3=A9d=C3=A9ric?= <fcarbain@yahoo.fr> Date: Wed, 29 Jul 2015 17:01:36 +0200 Subject: [PATCH 280/440] translation update --- inc/lang/fr/lang.php | 2 +- lib/plugins/authplain/lang/fr/lang.php | 7 +++++-- lib/plugins/config/lang/fr/lang.php | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 4a25aab43..8663c035f 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sébastien Bauer <sebastien.bauer@advalvas.be> * @author Antoine Fixary <antoine.fixary@freesbee.fr> * @author cumulus <pta-n56@myamail.com> diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php index 9316836e4..9df04bba6 100644 --- a/lib/plugins/authplain/lang/fr/lang.php +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -1,6 +1,9 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Carbain Frédéric <fcarbain@yahoo.fr> */ -$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; +$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; +$lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 75dc4f177..7a53d573c 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -1,8 +1,8 @@ <?php + /** - * french language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> @@ -21,6 +21,7 @@ * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> + * @author Carbain Frédéric <fcarbain@yahoo.fr> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; -- GitLab From ceaabc3e35e64f7d37f68b82086f3cc5034fca8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carbain=20Fr=C3=A9d=C3=A9ric?= <fcarbain@yahoo.fr> Date: Wed, 29 Jul 2015 17:06:37 +0200 Subject: [PATCH 281/440] translation update --- inc/lang/fr/lang.php | 2 +- lib/plugins/authplain/lang/fr/lang.php | 7 +++++-- lib/plugins/config/lang/fr/lang.php | 5 +++-- lib/plugins/extension/lang/fr/lang.php | 3 +++ lib/plugins/styling/lang/fr/intro.txt | 2 ++ lib/plugins/styling/lang/fr/lang.php | 18 ++++++++++++++++++ 6 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 lib/plugins/styling/lang/fr/intro.txt create mode 100644 lib/plugins/styling/lang/fr/lang.php diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 4a25aab43..8663c035f 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sébastien Bauer <sebastien.bauer@advalvas.be> * @author Antoine Fixary <antoine.fixary@freesbee.fr> * @author cumulus <pta-n56@myamail.com> diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php index 9316836e4..9df04bba6 100644 --- a/lib/plugins/authplain/lang/fr/lang.php +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -1,6 +1,9 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Carbain Frédéric <fcarbain@yahoo.fr> */ -$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; +$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; +$lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 75dc4f177..7a53d573c 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -1,8 +1,8 @@ <?php + /** - * french language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> @@ -21,6 +21,7 @@ * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> + * @author Carbain Frédéric <fcarbain@yahoo.fr> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; diff --git a/lib/plugins/extension/lang/fr/lang.php b/lib/plugins/extension/lang/fr/lang.php index 1a5e469f8..2d990d519 100644 --- a/lib/plugins/extension/lang/fr/lang.php +++ b/lib/plugins/extension/lang/fr/lang.php @@ -5,6 +5,7 @@ * * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author Yves Grandvalet <Yves.Grandvalet@laposte.net> + * @author Carbain Frédéric <fcarbain@yahoo.fr> */ $lang['menu'] = 'Gestionnaire d\'extensions'; $lang['tab_plugins'] = 'Greffons installés'; @@ -26,6 +27,8 @@ $lang['btn_disable'] = 'Désactiver'; $lang['btn_install'] = 'Installer'; $lang['btn_reinstall'] = 'Réinstaller'; $lang['js']['reallydel'] = 'Vraiment désinstaller cette extension'; +$lang['js']['display_viewoptions'] = 'Voir les options:'; +$lang['js']['display_updatable'] = 'Mise à jour possible'; $lang['search_for'] = 'Rechercher l\'extension :'; $lang['search'] = 'Chercher'; $lang['extensionby'] = '<strong>%s</strong> de %s'; diff --git a/lib/plugins/styling/lang/fr/intro.txt b/lib/plugins/styling/lang/fr/intro.txt new file mode 100644 index 000000000..14a615c8d --- /dev/null +++ b/lib/plugins/styling/lang/fr/intro.txt @@ -0,0 +1,2 @@ +Cet outil vous permet de changer les paramètres de certains style de votre thème actuel. +Tous les changement sont enregistrés dans un fichier de configuration local qui sera inchangé en cas de mise à jour. \ No newline at end of file diff --git a/lib/plugins/styling/lang/fr/lang.php b/lib/plugins/styling/lang/fr/lang.php new file mode 100644 index 000000000..e25839c82 --- /dev/null +++ b/lib/plugins/styling/lang/fr/lang.php @@ -0,0 +1,18 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Carbain Frédéric <fcarbain@yahoo.fr> + */ +$lang['js']['popup'] = 'Ouvrir dans une nouvelle fenêtre'; +$lang['error'] = 'Désolé, ce thème ne supporte pas cette fonctionnalité.'; +$lang['btn_preview'] = 'Aperçu des changements'; +$lang['btn_save'] = 'sauvegarder les changements.'; +$lang['__text__'] = 'Couleur de texte principale'; +$lang['__background__'] = 'Couleur de fond principale'; +$lang['__text_alt__'] = 'Couleur de texte alternative'; +$lang['__background_alt__'] = 'Couleur de fond alternative'; +$lang['__text_neu__'] = 'Couleur de texte neutre'; +$lang['__background_neu__'] = 'Couleur de fond neutre'; +$lang['__border__'] = 'Couleur des contours'; -- GitLab From 3e564747a558f7a27703373b9b2e7e966eaa35b2 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 29 Jul 2015 18:01:40 +0200 Subject: [PATCH 282/440] translation update --- lib/plugins/config/lang/ja/lang.php | 1 + lib/plugins/usermanager/lang/ja/import.txt | 2 +- lib/plugins/usermanager/lang/ja/lang.php | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index 21e2ca112..587b2b4ee 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -193,6 +193,7 @@ $lang['xsendfile_o_2'] = '標準 X-Sendfile ヘッダー'; $lang['xsendfile_o_3'] = 'Nginx X-Accel-Redirect ヘッダー'; $lang['showuseras_o_loginname'] = 'ãƒã‚°ã‚¤ãƒ³å'; $lang['showuseras_o_username'] = 'ユーザーã®ãƒ•ãƒ«ãƒãƒ¼ãƒ '; +$lang['showuseras_o_username_link'] = 'user ã¨ã„ㆠInterWiki リンクã«ãªã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ãƒ«ãƒãƒ¼ãƒ '; $lang['showuseras_o_email'] = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ï¼ˆãƒ¡ãƒ¼ãƒ«ã‚¬ãƒ¼ãƒ‰è¨å®šã«ã‚ˆã‚‹é›£èªåŒ–)'; $lang['showuseras_o_email_link'] = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’リンクã«ã™ã‚‹'; $lang['useheading_o_0'] = '使用ã—ãªã„'; diff --git a/lib/plugins/usermanager/lang/ja/import.txt b/lib/plugins/usermanager/lang/ja/import.txt index 6af87c263..4987df0e3 100644 --- a/lib/plugins/usermanager/lang/ja/import.txt +++ b/lib/plugins/usermanager/lang/ja/import.txt @@ -1,7 +1,7 @@ ===== 一括ユーザーインãƒãƒ¼ãƒˆ ===== å°‘ãªãã¨ã‚‚4列ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼CSVファイルãŒå¿…è¦ã§ã™ã€‚ -列ã®é †åºï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼IDã€æ°åã€é›»åメールアドレスã€ã‚°ãƒ«ãƒ¼ãƒ—。 +列ã®é †åºï¼š ユーザーIDã€ãƒ•ãƒ«ãƒãƒ¼ãƒ ã€é›»åメールアドレスã€ã‚°ãƒ«ãƒ¼ãƒ—。 CSVフィールドã¯ã‚«ãƒ³ãƒžï¼ˆ,)区切りã€æ–‡å—列ã¯å¼•ç”¨ç¬¦ï¼ˆ%%""%%)区切りã§ã™ã€‚ エスケープã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ï¼ˆ\)を使用ã§ãã¾ã™ã€‚ é©åˆ‡ãªãƒ•ã‚¡ã‚¤ãƒ«ä¾‹ã¯ã€ä¸Šè¨˜ã®"エクスãƒãƒ¼ãƒˆãƒ¦ãƒ¼ã‚¶ãƒ¼"機能ã§è©¦ã—ã¦ä¸‹ã•ã„。 diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 23109f2a2..c7952d8f0 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -19,7 +19,7 @@ $lang['nosupport'] = '(ユーザー管ç†ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ $lang['badauth'] = 'èªè¨¼ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ãŒç„¡åŠ¹ã§ã™'; $lang['user_id'] = 'ユーザー'; $lang['user_pass'] = 'パスワード'; -$lang['user_name'] = 'æ°å'; +$lang['user_name'] = 'フルãƒãƒ¼ãƒ '; $lang['user_mail'] = 'メールアドレス'; $lang['user_groups'] = 'グループ'; $lang['field'] = 'é …ç›®'; @@ -65,7 +65,7 @@ $lang['import_success_count'] = 'ユーザーインãƒãƒ¼ãƒˆï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ% $lang['import_failure_count'] = 'ユーザーインãƒãƒ¼ãƒˆï¼š%d件ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚失敗ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚'; $lang['import_error_fields'] = '列ã®ä¸è¶³ï¼ˆï¼”列必è¦ï¼‰ãŒ%d件ã‚ã‚Šã¾ã—ãŸã€‚'; $lang['import_error_baduserid'] = 'æ¬ è½ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ID'; -$lang['import_error_badname'] = 'ä¸æ£ãªæ°å'; +$lang['import_error_badname'] = 'ä¸æ£ãªãƒ•ãƒ«ãƒãƒ¼ãƒ '; $lang['import_error_badmail'] = 'ä¸æ£ãªé›»åメールアドレス'; $lang['import_error_upload'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚CSVファイルをアップãƒãƒ¼ãƒ‰ã§ããªã‹ã£ãŸã‹ã€ãƒ•ã‚¡ã‚¤ãƒ«ãŒç©ºã§ã™ã€‚'; $lang['import_error_readfail'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚アップãƒãƒ¼ãƒ‰ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒèªè¾¼ã§ãã¾ã›ã‚“。'; -- GitLab From dbfd2a2c7bb8cab263b1e64c75a85ea93d6e0b60 Mon Sep 17 00:00:00 2001 From: Kiril <neohidra@gmail.com> Date: Wed, 29 Jul 2015 18:31:07 +0200 Subject: [PATCH 283/440] translation update --- inc/lang/bg/lang.php | 12 +- lib/plugins/authmysql/lang/bg/lang.php | 10 + lib/plugins/authplain/lang/bg/lang.php | 7 +- lib/plugins/config/lang/bg/lang.php | 408 +++++++++++-------------- lib/plugins/extension/lang/bg/lang.php | 26 ++ lib/plugins/styling/lang/bg/lang.php | 17 ++ 6 files changed, 239 insertions(+), 241 deletions(-) create mode 100644 lib/plugins/authmysql/lang/bg/lang.php create mode 100644 lib/plugins/extension/lang/bg/lang.php create mode 100644 lib/plugins/styling/lang/bg/lang.php diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 697f39ad3..daeaf9bd6 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Nikolay Vladimirov <nikolay@vladimiroff.com> * @author Viktor Usunov <usun0v@mail.bg> * @author Kiril <neohidra@gmail.com> @@ -50,6 +50,8 @@ $lang['btn_register'] = 'РегиÑтриране'; $lang['btn_apply'] = 'Прилагане'; $lang['btn_media'] = 'ДиÑпечер на файлове'; $lang['btn_deleteuser'] = 'Изтриване на профила'; +$lang['btn_img_backto'] = 'Ðазад към %s'; +$lang['btn_mediaManager'] = 'Преглед в диÑпечера на файлове'; $lang['loggedinas'] = 'ВпиÑани Ñте като:'; $lang['user'] = 'Потребител'; $lang['pass'] = 'Парола'; @@ -70,6 +72,7 @@ $lang['regmissing'] = 'МолÑ, попълнете вÑички по $lang['reguexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; $lang['regsuccess'] = 'ПотребителÑÑ‚ е Ñъздаден, а паролата е пратена по електронната поща.'; $lang['regsuccess2'] = 'ПотребителÑÑ‚ е Ñъздаден.'; +$lang['regfail'] = 'ПотребителÑÑ‚ не може да бъде Ñъздаден.'; $lang['regmailfail'] = 'Изглежда, че има проблем Ñ Ð¿Ñ€Ð°Ñ‰Ð°Ð½ÐµÑ‚Ð¾ на пиÑмото Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°. МолÑ, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора!'; $lang['regbadmail'] = 'ВъведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð° невалиден - ако миÑлите, че това е грешка, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора.'; $lang['regbadpass'] = 'Двете въведени пароли не Ñъвпадат, Ð¼Ð¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново.'; @@ -84,6 +87,7 @@ $lang['profdeleteuser'] = 'Изтриване на профила'; $lang['profdeleted'] = 'ВашиÑÑ‚ профил е премахнат от това wiki '; $lang['profconfdelete'] = 'ИÑкам да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° Ñи от това wiki. <br/> Веднъж изтрит, профилът не може да бъде възÑтановен!'; $lang['profconfdeletemissing'] = 'Ðе Ñте поÑтавили отметка в кутиÑта потвърждение'; +$lang['proffail'] = 'ПотребителÑкиÑÑ‚ профил не може да бъде актуализиран.'; $lang['pwdforget'] = 'Забравили Ñте паролата Ñи? Получете нова'; $lang['resendna'] = 'Wiki-то не поддържа повторно пращане на паролата.'; $lang['resendpwd'] = 'Задаване на нова парола за'; @@ -179,6 +183,9 @@ $lang['difflink'] = 'Препратка към Ñравнениет $lang['diff_type'] = 'Преглед на разликите:'; $lang['diff_inline'] = 'Вграден'; $lang['diff_side'] = 'Един до друг'; +$lang['diffprevrev'] = 'Предходна верÑиÑ'; +$lang['diffnextrev'] = 'Следваща верÑиÑ'; +$lang['difflastrev'] = 'ПоÑледна верÑиÑ'; $lang['line'] = 'Ред'; $lang['breadcrumb'] = 'Следа:'; $lang['youarehere'] = 'Ðамирате Ñе в:'; @@ -234,7 +241,6 @@ $lang['upperns'] = 'към майчиното именно про $lang['metaedit'] = 'Редактиране на метаданни'; $lang['metasaveerr'] = 'ЗапиÑването на метаданните Ñе провали'; $lang['metasaveok'] = 'Метаданните Ñа запазени уÑпешно'; -$lang['btn_img_backto'] = 'Ðазад към %s'; $lang['img_title'] = 'Заглавие:'; $lang['img_caption'] = 'ÐадпиÑ:'; $lang['img_date'] = 'Дата:'; @@ -247,7 +253,6 @@ $lang['img_camera'] = 'Фотоапарат:'; $lang['img_keywords'] = 'Ключови думи:'; $lang['img_width'] = 'Ширина:'; $lang['img_height'] = 'ВиÑочина:'; -$lang['btn_mediaManager'] = 'Преглед в диÑпечера на файлове'; $lang['subscr_subscribe_success'] = '%s е добавен към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s'; $lang['subscr_subscribe_error'] = 'Грешка при добавÑнето на %s към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s'; $lang['subscr_subscribe_noaddress'] = 'ДобавÑнето ви към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð°Ñ‚Ð¸ не е възможно поради липÑата на Ñвързан Ð°Ð´Ñ€ÐµÑ (имейл) Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° ви.'; @@ -275,6 +280,7 @@ $lang['i_modified'] = 'Поради мерки за ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾Ñ Ð¢Ñ€Ñбва да разархивирате отново файловете от ÑÐ²Ð°Ð»ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð² или да Ñе поÑъветвате Ñ <a href="http://dokuwiki.org/install">ИнÑтрукциите за инÑталиране на Dokuwiki</a>.'; $lang['i_funcna'] = 'PHP функциÑта <code>%s</code> не е доÑтъпна. Може би е забранена от доÑтавчика на хоÑтинг.'; $lang['i_phpver'] = 'ИнÑталираната верÑÐ¸Ñ <code>%s</code> на PHP е по-Ñтара от необходимата <code>%s</code>. Ðктуализирайте PHP инÑталациÑта.'; +$lang['i_mbfuncoverload'] = 'Ðеобходимо е да изключите mbstring.func_overload в php.ini за да може DokuWiki да Ñтартира.'; $lang['i_permfail'] = '<code>%s</code> не е доÑтъпна за пиÑане от DokuWiki. ТрÑбва да промените правата за доÑтъп до директориÑта!'; $lang['i_confexists'] = '<code>%s</code> вече ÑъщеÑтвува'; $lang['i_writeerr'] = '<code>%s</code> не можа да бъде Ñъздаден. ТрÑбва да проверите правата за доÑтъп до директориÑта/файла и да Ñъздадете файла ръчно.'; diff --git a/lib/plugins/authmysql/lang/bg/lang.php b/lib/plugins/authmysql/lang/bg/lang.php new file mode 100644 index 000000000..d5837c726 --- /dev/null +++ b/lib/plugins/authmysql/lang/bg/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['connectfail'] = 'Свързването Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни Ñе провали.'; +$lang['userexists'] = 'За Ñъжаление вече ÑъщеÑтвува потребител Ñ Ñ‚Ð¾Ð²Ð° име.'; +$lang['usernotexists'] = 'За Ñъжаление не ÑъщеÑтвува такъв потребител.'; diff --git a/lib/plugins/authplain/lang/bg/lang.php b/lib/plugins/authplain/lang/bg/lang.php index 5b8e6bc37..62e62dc13 100644 --- a/lib/plugins/authplain/lang/bg/lang.php +++ b/lib/plugins/authplain/lang/bg/lang.php @@ -1,6 +1,9 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Kiril <neohidra@gmail.com> */ -$lang['userexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; +$lang['userexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; +$lang['usernotexists'] = 'За Ñъжаление потребителÑÑ‚ не ÑъщеÑтвува.'; diff --git a/lib/plugins/config/lang/bg/lang.php b/lib/plugins/config/lang/bg/lang.php index 64ddb1eae..0426df060 100644 --- a/lib/plugins/config/lang/bg/lang.php +++ b/lib/plugins/config/lang/bg/lang.php @@ -1,259 +1,195 @@ <?php + /** - * bulgarian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Nikolay Vladimirov <nikolay@vladimiroff.com> * @author Viktor Usunov <usun0v@mail.bg> * @author Kiril <neohidra@gmail.com> */ - -// for admin plugins, the menu prompt to be displayed in the admin menu -// if set here, the plugin doesn't need to override the getMenuText() method -$lang['menu'] = 'ÐаÑтройки'; - -$lang['error'] = 'ОбновÑването на наÑтройките не е възможно, поради невалидна ÑтойноÑÑ‚, молÑ, прегледайте промените Ñи и пробвайте отново. +$lang['menu'] = 'ÐаÑтройки'; +$lang['error'] = 'ОбновÑването на наÑтройките не е възможно, поради невалидна ÑтойноÑÑ‚, молÑ, прегледайте промените Ñи и пробвайте отново. <br />Ðеверните ÑтойноÑти ще бъдат обградени Ñ Ñ‡ÐµÑ€Ð²ÐµÐ½Ð° рамка.'; -$lang['updated'] = 'ОбновÑването на наÑтройките е уÑпешно.'; -$lang['nochoice'] = '(нÑма друг възможен избор)'; -$lang['locked'] = 'ОбновÑването на файла Ñ Ð½Ð°Ñтройките не е възможно, ако това не е нарочно, проверете,<br /> +$lang['updated'] = 'ОбновÑването на наÑтройките е уÑпешно.'; +$lang['nochoice'] = '(нÑма друг възможен избор)'; +$lang['locked'] = 'ОбновÑването на файла Ñ Ð½Ð°Ñтройките не е възможно, ако това не е нарочно, проверете,<br /> дали името на Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ Ð½Ð°Ñтройки и правата Ñа верни.'; - -$lang['danger'] = 'Внимание: промÑна на опциÑта може да направи Wiki-то и менюто за наÑтройване недоÑтъпни.'; -$lang['warning'] = 'Предупреждение: промÑна на опциÑта може предизвика нежелани поÑледици.'; -$lang['security'] = 'Предупреждение: промÑна на опциÑта може да предÑтавлÑва риÑк за ÑигурноÑтта.'; - -/* --- Config Setting Headers --- */ -$lang['_configuration_manager'] = 'ДиÑпечер на наÑтройките'; //same as heading in intro.txt -$lang['_header_dokuwiki'] = 'ÐаÑтройки на DokuWiki'; -$lang['_header_plugin'] = 'ÐаÑтройки на приÑтавки'; -$lang['_header_template'] = 'ÐаÑтройки на шаблона'; -$lang['_header_undefined'] = 'Ðеопределени наÑтройки'; - -/* --- Config Setting Groups --- */ -$lang['_basic'] = 'ОÑновни наÑтройки'; -$lang['_display'] = 'ÐаÑтройки за изобразÑване'; -$lang['_authentication'] = 'ÐаÑтройки за удоÑтоверÑване'; -$lang['_anti_spam'] = 'ÐаÑтройки за борба ÑÑŠÑ SPAM-ма'; -$lang['_editing'] = 'ÐаÑтройки за редактиране'; -$lang['_links'] = 'ÐаÑтройки на препратките'; -$lang['_media'] = 'ÐаÑтройки на медиÑта'; -$lang['_notifications'] = 'ÐаÑтройки за извеÑÑ‚Ñване'; -$lang['_syndication'] = 'ÐаÑтройки на RSS емиÑиите'; -$lang['_advanced'] = 'Допълнителни наÑтройки'; -$lang['_network'] = 'Мрежови наÑтройки'; - -/* --- Undefined Setting Messages --- */ +$lang['danger'] = 'Внимание: промÑна на опциÑта може да направи Wiki-то и менюто за наÑтройване недоÑтъпни.'; +$lang['warning'] = 'Предупреждение: промÑна на опциÑта може предизвика нежелани поÑледици.'; +$lang['security'] = 'Предупреждение: промÑна на опциÑта може да предÑтавлÑва риÑк за ÑигурноÑтта.'; +$lang['_configuration_manager'] = 'ДиÑпечер на наÑтройките'; +$lang['_header_dokuwiki'] = 'ÐаÑтройки на DokuWiki'; +$lang['_header_plugin'] = 'ÐаÑтройки на приÑтавки'; +$lang['_header_template'] = 'ÐаÑтройки на шаблона'; +$lang['_header_undefined'] = 'Ðеопределени наÑтройки'; +$lang['_basic'] = 'ОÑновни наÑтройки'; +$lang['_display'] = 'ÐаÑтройки за изобразÑване'; +$lang['_authentication'] = 'ÐаÑтройки за удоÑтоверÑване'; +$lang['_anti_spam'] = 'ÐаÑтройки за борба ÑÑŠÑ SPAM-ма'; +$lang['_editing'] = 'ÐаÑтройки за редактиране'; +$lang['_links'] = 'ÐаÑтройки на препратките'; +$lang['_media'] = 'ÐаÑтройки на медиÑта'; +$lang['_notifications'] = 'ÐаÑтройки за извеÑÑ‚Ñване'; +$lang['_syndication'] = 'ÐаÑтройки на RSS емиÑиите'; +$lang['_advanced'] = 'Допълнителни наÑтройки'; +$lang['_network'] = 'Мрежови наÑтройки'; $lang['_msg_setting_undefined'] = 'ÐÑма метаданни за наÑтройките.'; $lang['_msg_setting_no_class'] = 'ÐÑма ÐºÐ»Ð°Ñ Ð½Ð°Ñтройки.'; $lang['_msg_setting_no_default'] = 'ÐÑма Ñтандартна ÑтойноÑÑ‚.'; - -/* -------------------- Config Options --------------------------- */ - -/* Basic Settings */ -$lang['title'] = 'Заглавие за Wiki-то, тоеÑÑ‚ името'; -$lang['start'] = 'Име на началната Ñтраница'; -$lang['lang'] = 'Език на интерфейÑа'; -$lang['template'] = 'Шаблон (Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð²Ð¸Ð´Ð° на Ñтраниците)'; -$lang['tagline'] = 'Подзаглавие - изобразÑва Ñе под името на Wiki-то (ако Ñе поддържа от шаблона)'; -$lang['sidebar'] = 'Име на Ñтраницата за Ñтраничната лента (ако Ñе поддържа от шаблона). ОÑтавите ли полето празно лентата ще бъде изключена'; -$lang['license'] = 'Под какъв лиценз да бъде публикувано Ñъдържанието?'; -$lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° запиÑване на данните'; -$lang['basedir'] = 'Главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (напр. <code>/dokuwiki/</code>). ОÑтавете празно, за да бъде заÑечена автоматично.'; -$lang['baseurl'] = 'URL Ð°Ð´Ñ€ÐµÑ (напр. <code>http://www.yourserver.com</code>). ОÑтавете празно, за да бъде заÑечен автоматично.'; -$lang['cookiedir'] = 'Път за биÑквитките. ОÑтавите ли полето празно ще Ñе ползва Ð³Ð¾Ñ€Ð½Ð¸Ñ URL адреÑ.'; -$lang['dmode'] = 'Режим (права) за Ñъздаване на директории'; -$lang['fmode'] = 'Режим (права) за Ñъздаване на файлове'; -$lang['allowdebug'] = 'Включване на режи debug - <b>изключете, ако не е нужен!</b>'; - -/* Display Settings */ -$lang['recent'] = 'Скорошни промени - брой елементи на Ñтраница'; -$lang['recent_days'] = 'Колко от Ñкорошните промени да Ñе пазÑÑ‚ (дни)'; -$lang['breadcrumbs'] = 'Брой на Ñледите. За изключване на функциÑта задайте 0.'; -$lang['youarehere'] = 'Йерархични Ñледи (в този Ñлучай можете да изключите горната опциÑ)'; -$lang['fullpath'] = 'Показване на Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ до Ñтраниците в Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ñ‚Ð¸Ñ‚ÑƒÐ».'; -$lang['typography'] = 'ЗамÑна на поÑледователноÑÑ‚ от Ñимволи Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„Ñки еквивалент'; -$lang['dformat'] = 'Формат на датата (виж. <a href="http://www.php.net/strftime">strftime</a> функциÑта на PHP)'; -$lang['signature'] = 'ÐŸÐ¾Ð´Ð¿Ð¸Ñ - какво да внаÑÑ Ð±ÑƒÑ‚Ð¾Ð½Ð° "Вмъкване на подпиÑ" от редактора'; -$lang['showuseras'] = 'Какво да Ñе показва за потребителÑ, който поÑледно е променил дадена Ñтраницата'; -$lang['toptoclevel'] = 'Главно ниво (заглавие) за Ñъдържанието'; -$lang['tocminheads'] = 'Минимален брой заглавиÑ, определÑщ дали да бъде Ñъздадено Ñъдържание'; -$lang['maxtoclevel'] = 'МакÑимален брой нива (заглавиÑ) за включване в Ñъдържанието'; -$lang['maxseclevel'] = 'МакÑимален брой нива предоÑтавÑни за ÑамоÑтоÑтелно редактиране'; -$lang['camelcase'] = 'Ползване на CamelCase за линкове'; -$lang['deaccent'] = 'ПочиÑтване имената на Ñтраниците (на файловете)'; -$lang['useheading'] = 'Ползване на първото заглавие за име на Ñтраница'; -$lang['sneaky_index'] = 'Стандартно DokuWiki ще показва вÑички именни проÑтранÑтва в индекÑа. ОпциÑта Ñкрива тези, за които потребителÑÑ‚ нÑма права за четене. Това може да доведе и до Ñкриване на иначе доÑтъпни подименни проÑтранÑтва. С определени наÑтройки на ÑпиÑъците за контрол на доÑтъпа (ACL) може да направи индекÑа неизползваем. '; -$lang['hidepages'] = 'Скриване на Ñтраниците Ñъвпадащи Ñ Ñ‚Ð¾Ð·Ð¸ регулÑрен израз(regular expressions)'; - -/* Authentication Settings */ -$lang['useacl'] = 'Ползване на ÑпиÑъци за доÑтъп'; -$lang['autopasswd'] = 'Ðвтоматично генериране на пароли, на нови потребители и пращане по пощата'; -$lang['authtype'] = 'Метод за удоÑтоверÑване'; -$lang['passcrypt'] = 'Метод за криптиране на паролите'; -$lang['defaultgroup']= 'Стандартна група'; -$lang['superuser'] = 'Супер потребител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð¿ÑŠÐ»ÐµÐ½ доÑтъп до вÑички Ñтраници и функции без значение от наÑтройките на ÑпиÑъците за доÑтъп (ACL)'; -$lang['manager'] = 'Управител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð´Ð¾Ñтъп до определени управленÑки функции '; -$lang['profileconfirm'] = 'Потвърждаване на промени в профила Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°'; -$lang['rememberme'] = 'Ползване на поÑтоÑнни биÑквитки за впиÑване (за функциÑта "Запомни ме")'; -$lang['disableactions'] = 'Изключване функции на DokuWiki'; -$lang['disableactions_check'] = 'Проверка'; +$lang['title'] = 'Заглавие за Wiki-то, тоеÑÑ‚ името'; +$lang['start'] = 'Име на началната Ñтраница'; +$lang['lang'] = 'Език на интерфейÑа'; +$lang['template'] = 'Шаблон (Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð²Ð¸Ð´Ð° на Ñтраниците)'; +$lang['tagline'] = 'Подзаглавие - изобразÑва Ñе под името на Wiki-то (ако Ñе поддържа от шаблона)'; +$lang['sidebar'] = 'Име на Ñтраницата за Ñтраничната лента (ако Ñе поддържа от шаблона). ОÑтавите ли полето празно лентата ще бъде изключена'; +$lang['license'] = 'Под какъв лиценз да бъде публикувано Ñъдържанието?'; +$lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° запиÑване на данните'; +$lang['basedir'] = 'Главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (напр. <code>/dokuwiki/</code>). ОÑтавете празно, за да бъде заÑечена автоматично.'; +$lang['baseurl'] = 'URL Ð°Ð´Ñ€ÐµÑ (напр. <code>http://www.yourserver.com</code>). ОÑтавете празно, за да бъде заÑечен автоматично.'; +$lang['cookiedir'] = 'Път за биÑквитките. ОÑтавите ли полето празно ще Ñе ползва Ð³Ð¾Ñ€Ð½Ð¸Ñ URL адреÑ.'; +$lang['dmode'] = 'Режим (права) за Ñъздаване на директории'; +$lang['fmode'] = 'Режим (права) за Ñъздаване на файлове'; +$lang['allowdebug'] = 'Включване на режи debug - <b>изключете, ако не е нужен!</b>'; +$lang['recent'] = 'Скорошни промени - брой елементи на Ñтраница'; +$lang['recent_days'] = 'Колко от Ñкорошните промени да Ñе пазÑÑ‚ (дни)'; +$lang['breadcrumbs'] = 'Брой на Ñледите. За изключване на функциÑта задайте 0.'; +$lang['youarehere'] = 'Йерархични Ñледи (в този Ñлучай можете да изключите горната опциÑ)'; +$lang['fullpath'] = 'Показване на Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ до Ñтраниците в Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ñ‚Ð¸Ñ‚ÑƒÐ».'; +$lang['typography'] = 'ЗамÑна на поÑледователноÑÑ‚ от Ñимволи Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„Ñки еквивалент'; +$lang['dformat'] = 'Формат на датата (виж. <a href="http://www.php.net/strftime">strftime</a> функциÑта на PHP)'; +$lang['signature'] = 'ÐŸÐ¾Ð´Ð¿Ð¸Ñ - какво да внаÑÑ Ð±ÑƒÑ‚Ð¾Ð½Ð° "Вмъкване на подпиÑ" от редактора'; +$lang['showuseras'] = 'Какво да Ñе показва за потребителÑ, който поÑледно е променил дадена Ñтраницата'; +$lang['toptoclevel'] = 'Главно ниво (заглавие) за Ñъдържанието'; +$lang['tocminheads'] = 'Минимален брой заглавиÑ, определÑщ дали да бъде Ñъздадено Ñъдържание'; +$lang['maxtoclevel'] = 'МакÑимален брой нива (заглавиÑ) за включване в Ñъдържанието'; +$lang['maxseclevel'] = 'МакÑимален брой нива предоÑтавÑни за ÑамоÑтоÑтелно редактиране'; +$lang['camelcase'] = 'Ползване на CamelCase за линкове'; +$lang['deaccent'] = 'ПочиÑтване имената на Ñтраниците (на файловете)'; +$lang['useheading'] = 'Ползване на първото заглавие за име на Ñтраница'; +$lang['sneaky_index'] = 'Стандартно DokuWiki ще показва вÑички именни проÑтранÑтва в индекÑа. ОпциÑта Ñкрива тези, за които потребителÑÑ‚ нÑма права за четене. Това може да доведе и до Ñкриване на иначе доÑтъпни подименни проÑтранÑтва. С определени наÑтройки на ÑпиÑъците за контрол на доÑтъпа (ACL) може да направи индекÑа неизползваем. '; +$lang['hidepages'] = 'Скриване на Ñтраниците Ñъвпадащи Ñ Ñ‚Ð¾Ð·Ð¸ регулÑрен израз(regular expressions)'; +$lang['useacl'] = 'Ползване на ÑпиÑъци за доÑтъп'; +$lang['autopasswd'] = 'Ðвтоматично генериране на пароли, на нови потребители и пращане по пощата'; +$lang['authtype'] = 'Метод за удоÑтоверÑване'; +$lang['passcrypt'] = 'Метод за криптиране на паролите'; +$lang['defaultgroup'] = 'Стандартна група'; +$lang['superuser'] = 'Супер потребител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð¿ÑŠÐ»ÐµÐ½ доÑтъп до вÑички Ñтраници и функции без значение от наÑтройките на ÑпиÑъците за доÑтъп (ACL)'; +$lang['manager'] = 'Управител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð´Ð¾Ñтъп до определени управленÑки функции '; +$lang['profileconfirm'] = 'Потвърждаване на промени в профила Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°'; +$lang['rememberme'] = 'Ползване на поÑтоÑнни биÑквитки за впиÑване (за функциÑта "Запомни ме")'; +$lang['disableactions'] = 'Изключване функции на DokuWiki'; +$lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'Ðбониране/ОтпиÑване'; $lang['disableactions_wikicode'] = 'Преглед на кода/ЕкÑпортиране на оригинална верÑиÑ'; -$lang['disableactions_other'] = 'Други дейÑÑ‚Ð²Ð¸Ñ (разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ)'; +$lang['disableactions_other'] = 'Други дейÑÑ‚Ð²Ð¸Ñ (разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ)'; $lang['auth_security_timeout'] = 'Ðвтоматично проверÑване на удоÑтоверÑването вÑеки (Ñек)'; -$lang['securecookie'] = 'Да Ñе изпращат ли биÑквитките зададени чрез HTTPS, Ñамо чрез HTTPS от браузъра? Изключете опциÑта, когато SSL Ñе ползва Ñамо за впиÑване, а четенето е без SSL.'; -$lang['remote'] = 'Включване на ÑиÑтемата за отдалечен API доÑтъп. Това ще позволи на Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ñе Ñвързват Ñ DokuWiki чрез XML-RPC или друг механизъм.'; -$lang['remoteuser'] = 'Ограничаване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ API доÑтъп - активиране Ñамо за Ñледните групи и потребители (отделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ðко оÑтавите полето празно вÑеки ще има доÑтъп доÑтъп.'; - -/* Anti-Spam Settings */ -$lang['usewordblock'] = 'Блокиране на SPAM въз оÑнова на на ÑпиÑък от думи'; -$lang['relnofollow'] = 'Ползване на rel="nofollow" за външни препратки'; -$lang['indexdelay'] = 'ЗабавÑне преди индекÑиране (Ñек)'; -$lang['mailguard'] = 'ПромÑна на адреÑите на ел. поща (във форма непозволÑваща пращането на SPAM)'; -$lang['iexssprotect'] = 'ПроверÑване на качените файлове за вероÑтен зловреден JavaScript и HTML код'; - -/* Editing Settings */ -$lang['usedraft'] = 'Ðвтоматично запазване на чернова по време на редактиране'; -$lang['htmlok'] = 'Разрешаване вграждането на HTML код'; -$lang['phpok'] = 'Разрешаване вграждането на PHP код'; -$lang['locktime'] = 'МакÑ. период за ÑъхранÑване на заключените файлове (Ñек)'; -$lang['cachetime'] = 'МакÑ. период за ÑъхранÑване на кеша (Ñек)'; - -/* Link settings */ -$lang['target____wiki'] = 'Прозорец за вътрешни препратки'; -$lang['target____interwiki'] = 'Прозорец за препратки към други Wiki Ñайтове'; -$lang['target____extern'] = 'Прозорец за външни препратки'; -$lang['target____media'] = 'Прозорец за медийни препратки'; -$lang['target____windows'] = 'Прозорец за препратки към Windows'; - -/* Media Settings */ -$lang['mediarevisions'] = 'Да Ñе пазÑÑ‚ ли Ñтари верÑии на качените файлове (Mediarevisions)?'; -$lang['refcheck'] = 'Проверка за препратка към медиÑ, преди да бъде изтрита'; -$lang['gdlib'] = 'ВерÑÐ¸Ñ Ð½Ð° GD Lib'; -$lang['im_convert'] = 'Път до инÑтрумента за транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° ImageMagick'; -$lang['jpg_quality'] = 'КачеÑтво на JPG компреÑиÑта (0-100)'; -$lang['fetchsize'] = 'МакÑимален размер (байтове), който fetch.php може да ÑвалÑ'; - -/* Notification Settings */ -$lang['subscribers'] = 'Включване на поддръжката за абониране към Ñтраници'; -$lang['subscribe_time'] = 'Време Ñлед което абонаментните ÑпиÑъци и Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñе изпращат (Ñек); ТрÑбва да е по-малко от времето определено в recent_days.'; -$lang['notify'] = 'Пращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° промени по Ñтраниците на Ñледната eл. поща'; -$lang['registernotify'] = 'Пращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° нови потребители на Ñледната ел. поща'; -$lang['mailfrom'] = 'Ел. поща, коÑто да Ñе ползва за автоматично изпращане на ел. пиÑма'; -$lang['mailprefix'] = 'ПредÑтавка за темите (поле subject) на автоматично изпращаните ел. пиÑма'; -$lang['htmlmail'] = 'Изпращане на по-добре изглеждащи, но по-големи по-размер HTML ел. пиÑма. Изключете ако желаете пиÑмата да Ñе изпращат като чиÑÑ‚ текÑÑ‚.'; - -/* Syndication Settings */ -$lang['sitemap'] = 'Генериране на Google sitemap (дни)'; -$lang['rss_type'] = 'Тип на XML емиÑиÑта'; -$lang['rss_linkto'] = 'XML емиÑиÑта препраща към'; -$lang['rss_content'] = 'Какво да показват елементите на XML емиÑиÑта?'; -$lang['rss_update'] = 'Интервал на актуализиране на XML емиÑиÑта (Ñек)'; -$lang['rss_show_summary'] = 'Показване на обобщение в заглавието на XML емиÑиÑта'; -$lang['rss_media'] = 'Кой тип промени да Ñе включват в XML миÑиÑта?'; - -/* Advanced Options */ -$lang['updatecheck'] = 'ПроверÑване за за нови верÑии и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑтта? Ðеобходимо е Dokiwiki да може да Ñе Ñвързва ÑÑŠÑ update.dokuwiki.org за тази функционалноÑÑ‚.'; -$lang['userewrite'] = 'Ползване на nice URL адреÑи'; -$lang['useslash'] = 'Ползване на наклонена черта за разделител на именните проÑтранÑтва в URL'; -$lang['sepchar'] = 'Разделител между думите в имената на Ñтраници'; -$lang['canonical'] = 'Ползване на напълно уеднаквени URL адреÑи (абÑолютни адреÑи - http://server/path)'; -$lang['fnencode'] = 'Метод за кодиране на не-ASCII именуваните файлове.'; -$lang['autoplural'] = 'ПроверÑване за множеÑтвено чиÑло в препратките'; -$lang['compression'] = 'Метод за компреÑÐ¸Ñ Ð½Ð° attic файлове'; -$lang['gzip_output'] = 'Кодиране на Ñъдържанието Ñ gzip за xhtml'; -$lang['compress'] = 'Компактен CSS и javascript изглед'; -$lang['cssdatauri'] = 'МакÑимален размер, в байтове, до който изображениÑта поÑочени в .CSS файл ще бъдат вграждани в Ñтила (stylesheet), за да Ñе намали Ð±Ñ€Ð¾Ñ Ð½Ð° HTTP заÑвките. Техниката не работи за верÑиите на IE преди 8! Препоръчителни ÑтойноÑти: <code>400</code> до <code>600</code> байта. Въведете <code>0</code> за изключване.'; -$lang['send404'] = 'Пращане на "HTTP 404/Page Not Found" за неÑъщеÑтвуващи Ñтраници'; -$lang['broken_iua'] = 'Отметнете, ако ignore_user_abort функциÑта не работи. Може да попречи на Ñ‚ÑŠÑ€Ñенето в Ñтраниците. Знае Ñе, че комбинациÑта IIS+PHP/CGI е лоша. Вижте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Грешка 852</a> за повече информациÑ.'; -$lang['xsendfile'] = 'Ползване на Ð¥-Sendfile header, за да може уебÑървъра да дава Ñтатични файлове? ВашиÑÑ‚ уеб Ñървър Ñ‚Ñ€Ñбва да го поддържа.'; -$lang['renderer_xhtml'] = 'ПредÑтавÑне на оÑновните изходни данни (xhtml) от Wiki-то Ñ'; -$lang['renderer__core'] = '%s (Ñдрото на DokuWiki)'; -$lang['renderer__plugin'] = '%s (приÑтавка)'; - -/* Network Options */ -$lang['dnslookups'] = 'DokuWiki ще Ñ‚ÑŠÑ€Ñи имената на хоÑтовете, на отдалечени IP адреÑи, от които потребители редактират Ñтраници. ÐЕ е желателно да ползвате опциÑта ако имате бавен или неработещ DNS Ñървър.'; - -/* Proxy Options */ -$lang['proxy____host'] = 'Име на прокÑи Ñървър'; -$lang['proxy____port'] = 'Порт за прокÑито'; -$lang['proxy____user'] = 'Потребител за прокÑито'; -$lang['proxy____pass'] = 'Парола за прокÑито'; -$lang['proxy____ssl'] = 'Ползване на SSL при Ñвързване Ñ Ð¿Ñ€Ð¾ÐºÑито'; -$lang['proxy____except'] = 'РегулÑрен израз определÑщ за кои URL адреÑи да не Ñе ползва прокÑи Ñървър.'; - -/* Safemode Hack */ -$lang['safemodehack'] = 'Ползване на хака safemode'; -$lang['ftp____host'] = 'FTP Ñървър за хака safemode'; -$lang['ftp____port'] = 'FTP порт за хака safemode'; -$lang['ftp____user'] = 'FTP потребител за хака safemode'; -$lang['ftp____pass'] = 'FTP парола за хака safemode'; -$lang['ftp____root'] = 'FTP главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° хака safemode'; - -/* License Options */ -$lang['license_o_'] = 'Ðищо не е избрано'; - -/* typography options */ -$lang['typography_o_0'] = 'без'; -$lang['typography_o_1'] = 'Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на единични кавички'; -$lang['typography_o_2'] = 'включително единични кавички (не винаги работи)'; - -/* userewrite options */ -$lang['userewrite_o_0'] = 'без'; -$lang['userewrite_o_1'] = 'файлът .htaccess'; -$lang['userewrite_o_2'] = 'вътрешно от DokuWiki '; - -/* deaccent options */ -$lang['deaccent_o_0'] = 'изключено'; -$lang['deaccent_o_1'] = 'премахване на акценти'; -$lang['deaccent_o_2'] = 'транÑлитерациÑ'; - -/* gdlib options */ -$lang['gdlib_o_0'] = 'GD Lib не е доÑтъпна'; -$lang['gdlib_o_1'] = 'ВерÑÐ¸Ñ 1.x'; -$lang['gdlib_o_2'] = 'Ðвтоматично разпознаване'; - -/* rss_type options */ -$lang['rss_type_o_rss'] = 'RSS верÑÐ¸Ñ 0.91'; -$lang['rss_type_o_rss1'] = 'RSS верÑÐ¸Ñ 1.0'; -$lang['rss_type_o_rss2'] = 'RSS верÑÐ¸Ñ 2.0'; -$lang['rss_type_o_atom'] = 'Atom верÑÐ¸Ñ 0.3'; -$lang['rss_type_o_atom1'] = 'Atom верÑÐ¸Ñ 1.0'; - -/* rss_content options */ +$lang['securecookie'] = 'Да Ñе изпращат ли биÑквитките зададени чрез HTTPS, Ñамо чрез HTTPS от браузъра? Изключете опциÑта, когато SSL Ñе ползва Ñамо за впиÑване, а четенето е без SSL.'; +$lang['remote'] = 'Включване на ÑиÑтемата за отдалечен API доÑтъп. Това ще позволи на Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ñе Ñвързват Ñ DokuWiki чрез XML-RPC или друг механизъм.'; +$lang['remoteuser'] = 'Ограничаване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ API доÑтъп - активиране Ñамо за Ñледните групи и потребители (отделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ðко оÑтавите полето празно вÑеки ще има доÑтъп доÑтъп.'; +$lang['usewordblock'] = 'Блокиране на SPAM въз оÑнова на на ÑпиÑък от думи'; +$lang['relnofollow'] = 'Ползване на rel="nofollow" за външни препратки'; +$lang['indexdelay'] = 'ЗабавÑне преди индекÑиране (Ñек)'; +$lang['mailguard'] = 'ПромÑна на адреÑите на ел. поща (във форма непозволÑваща пращането на SPAM)'; +$lang['iexssprotect'] = 'ПроверÑване на качените файлове за вероÑтен зловреден JavaScript и HTML код'; +$lang['usedraft'] = 'Ðвтоматично запазване на чернова по време на редактиране'; +$lang['htmlok'] = 'Разрешаване вграждането на HTML код'; +$lang['phpok'] = 'Разрешаване вграждането на PHP код'; +$lang['locktime'] = 'МакÑ. период за ÑъхранÑване на заключените файлове (Ñек)'; +$lang['cachetime'] = 'МакÑ. период за ÑъхранÑване на кеша (Ñек)'; +$lang['target____wiki'] = 'Прозорец за вътрешни препратки'; +$lang['target____interwiki'] = 'Прозорец за препратки към други Wiki Ñайтове'; +$lang['target____extern'] = 'Прозорец за външни препратки'; +$lang['target____media'] = 'Прозорец за медийни препратки'; +$lang['target____windows'] = 'Прозорец за препратки към Windows'; +$lang['mediarevisions'] = 'Да Ñе пазÑÑ‚ ли Ñтари верÑии на качените файлове (Mediarevisions)?'; +$lang['refcheck'] = 'Проверка за препратка към медиÑ, преди да бъде изтрита'; +$lang['gdlib'] = 'ВерÑÐ¸Ñ Ð½Ð° GD Lib'; +$lang['im_convert'] = 'Път до инÑтрумента за транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° ImageMagick'; +$lang['jpg_quality'] = 'КачеÑтво на JPG компреÑиÑта (0-100)'; +$lang['fetchsize'] = 'МакÑимален размер (байтове), който fetch.php може да ÑвалÑ'; +$lang['subscribers'] = 'Включване на поддръжката за абониране към Ñтраници'; +$lang['subscribe_time'] = 'Време Ñлед което абонаментните ÑпиÑъци и Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñе изпращат (Ñек); ТрÑбва да е по-малко от времето определено в recent_days.'; +$lang['notify'] = 'Пращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° промени по Ñтраниците на Ñледната eл. поща'; +$lang['registernotify'] = 'Пращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° нови потребители на Ñледната ел. поща'; +$lang['mailfrom'] = 'Ел. поща, коÑто да Ñе ползва за автоматично изпращане на ел. пиÑма'; +$lang['mailprefix'] = 'ПредÑтавка за темите (поле subject) на автоматично изпращаните ел. пиÑма'; +$lang['htmlmail'] = 'Изпращане на по-добре изглеждащи, но по-големи по-размер HTML ел. пиÑма. Изключете ако желаете пиÑмата да Ñе изпращат като чиÑÑ‚ текÑÑ‚.'; +$lang['sitemap'] = 'Генериране на Google sitemap (дни)'; +$lang['rss_type'] = 'Тип на XML емиÑиÑта'; +$lang['rss_linkto'] = 'XML емиÑиÑта препраща към'; +$lang['rss_content'] = 'Какво да показват елементите на XML емиÑиÑта?'; +$lang['rss_update'] = 'Интервал на актуализиране на XML емиÑиÑта (Ñек)'; +$lang['rss_show_summary'] = 'Показване на обобщение в заглавието на XML емиÑиÑта'; +$lang['rss_media'] = 'Кой тип промени да Ñе включват в XML миÑиÑта?'; +$lang['updatecheck'] = 'ПроверÑване за за нови верÑии и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑтта? Ðеобходимо е Dokiwiki да може да Ñе Ñвързва ÑÑŠÑ update.dokuwiki.org за тази функционалноÑÑ‚.'; +$lang['userewrite'] = 'Ползване на nice URL адреÑи'; +$lang['useslash'] = 'Ползване на наклонена черта за разделител на именните проÑтранÑтва в URL'; +$lang['sepchar'] = 'Разделител между думите в имената на Ñтраници'; +$lang['canonical'] = 'Ползване на напълно уеднаквени URL адреÑи (абÑолютни адреÑи - http://server/path)'; +$lang['fnencode'] = 'Метод за кодиране на не-ASCII именуваните файлове.'; +$lang['autoplural'] = 'ПроверÑване за множеÑтвено чиÑло в препратките'; +$lang['compression'] = 'Метод за компреÑÐ¸Ñ Ð½Ð° attic файлове'; +$lang['gzip_output'] = 'Кодиране на Ñъдържанието Ñ gzip за xhtml'; +$lang['compress'] = 'Компактен CSS и javascript изглед'; +$lang['cssdatauri'] = 'МакÑимален размер, в байтове, до който изображениÑта поÑочени в .CSS файл ще бъдат вграждани в Ñтила (stylesheet), за да Ñе намали Ð±Ñ€Ð¾Ñ Ð½Ð° HTTP заÑвките. Техниката не работи за верÑиите на IE преди 8! Препоръчителни ÑтойноÑти: <code>400</code> до <code>600</code> байта. Въведете <code>0</code> за изключване.'; +$lang['send404'] = 'Пращане на "HTTP 404/Page Not Found" за неÑъщеÑтвуващи Ñтраници'; +$lang['broken_iua'] = 'Отметнете, ако ignore_user_abort функциÑта не работи. Може да попречи на Ñ‚ÑŠÑ€Ñенето в Ñтраниците. Знае Ñе, че комбинациÑта IIS+PHP/CGI е лоша. Вижте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Грешка 852</a> за повече информациÑ.'; +$lang['xsendfile'] = 'Ползване на Ð¥-Sendfile header, за да може уебÑървъра да дава Ñтатични файлове? ВашиÑÑ‚ уеб Ñървър Ñ‚Ñ€Ñбва да го поддържа.'; +$lang['renderer_xhtml'] = 'ПредÑтавÑне на оÑновните изходни данни (xhtml) от Wiki-то Ñ'; +$lang['renderer__core'] = '%s (Ñдрото на DokuWiki)'; +$lang['renderer__plugin'] = '%s (приÑтавка)'; +$lang['dnslookups'] = 'DokuWiki ще Ñ‚ÑŠÑ€Ñи имената на хоÑтовете, на отдалечени IP адреÑи, от които потребители редактират Ñтраници. ÐЕ е желателно да ползвате опциÑта ако имате бавен или неработещ DNS Ñървър.'; +$lang['proxy____host'] = 'Име на прокÑи Ñървър'; +$lang['proxy____port'] = 'Порт за прокÑито'; +$lang['proxy____user'] = 'Потребител за прокÑито'; +$lang['proxy____pass'] = 'Парола за прокÑито'; +$lang['proxy____ssl'] = 'Ползване на SSL при Ñвързване Ñ Ð¿Ñ€Ð¾ÐºÑито'; +$lang['proxy____except'] = 'РегулÑрен израз определÑщ за кои URL адреÑи да не Ñе ползва прокÑи Ñървър.'; +$lang['safemodehack'] = 'Ползване на хака safemode'; +$lang['ftp____host'] = 'FTP Ñървър за хака safemode'; +$lang['ftp____port'] = 'FTP порт за хака safemode'; +$lang['ftp____user'] = 'FTP потребител за хака safemode'; +$lang['ftp____pass'] = 'FTP парола за хака safemode'; +$lang['ftp____root'] = 'FTP главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° хака safemode'; +$lang['license_o_'] = 'Ðищо не е избрано'; +$lang['typography_o_0'] = 'без'; +$lang['typography_o_1'] = 'Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на единични кавички'; +$lang['typography_o_2'] = 'включително единични кавички (не винаги работи)'; +$lang['userewrite_o_0'] = 'без'; +$lang['userewrite_o_1'] = 'файлът .htaccess'; +$lang['userewrite_o_2'] = 'вътрешно от DokuWiki '; +$lang['deaccent_o_0'] = 'изключено'; +$lang['deaccent_o_1'] = 'премахване на акценти'; +$lang['deaccent_o_2'] = 'транÑлитерациÑ'; +$lang['gdlib_o_0'] = 'GD Lib не е доÑтъпна'; +$lang['gdlib_o_1'] = 'ВерÑÐ¸Ñ 1.x'; +$lang['gdlib_o_2'] = 'Ðвтоматично разпознаване'; +$lang['rss_type_o_rss'] = 'RSS верÑÐ¸Ñ 0.91'; +$lang['rss_type_o_rss1'] = 'RSS верÑÐ¸Ñ 1.0'; +$lang['rss_type_o_rss2'] = 'RSS верÑÐ¸Ñ 2.0'; +$lang['rss_type_o_atom'] = 'Atom верÑÐ¸Ñ 0.3'; +$lang['rss_type_o_atom1'] = 'Atom верÑÐ¸Ñ 1.0'; $lang['rss_content_o_abstract'] = 'Извлечение'; -$lang['rss_content_o_diff'] = 'Обединени разлики'; +$lang['rss_content_o_diff'] = 'Обединени разлики'; $lang['rss_content_o_htmldiff'] = 'Таблица Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸Ñ‚Ðµ в HTML формат'; -$lang['rss_content_o_html'] = 'ЦÑлото Ñъдържание на HTML Ñтраницата'; - -/* rss_linkto options */ +$lang['rss_content_o_html'] = 'ЦÑлото Ñъдържание на HTML Ñтраницата'; $lang['rss_linkto_o_diff'] = 'изглед на разликите'; $lang['rss_linkto_o_page'] = 'променената Ñтраница'; $lang['rss_linkto_o_rev'] = 'ÑпиÑък на верÑиите'; $lang['rss_linkto_o_current'] = 'текущата Ñтраница'; - -/* compression options */ -$lang['compression_o_0'] = 'без'; -$lang['compression_o_gz'] = 'gzip'; -$lang['compression_o_bz2'] = 'bz2'; - -/* xsendfile header */ -$lang['xsendfile_o_0'] = 'без'; -$lang['xsendfile_o_1'] = 'Специфичен lighttpd header (преди верÑÐ¸Ñ 1.5)'; -$lang['xsendfile_o_2'] = 'Стандартен X-Sendfile header'; -$lang['xsendfile_o_3'] = 'Специфичен Nginx X-Accel-Redirect header за пренаÑочване'; - -/* Display user info */ -$lang['showuseras_o_loginname'] = 'Име за впиÑване'; -$lang['showuseras_o_username'] = 'Пълно потребителÑко име'; -$lang['showuseras_o_email'] = 'Ел, поща (променени Ñпоред наÑтройките на mailguard)'; +$lang['compression_o_0'] = 'без'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = 'без'; +$lang['xsendfile_o_1'] = 'Специфичен lighttpd header (преди верÑÐ¸Ñ 1.5)'; +$lang['xsendfile_o_2'] = 'Стандартен X-Sendfile header'; +$lang['xsendfile_o_3'] = 'Специфичен Nginx X-Accel-Redirect header за пренаÑочване'; +$lang['showuseras_o_loginname'] = 'Име за впиÑване'; +$lang['showuseras_o_username'] = 'Пълно потребителÑко име'; +$lang['showuseras_o_email'] = 'Ел, поща (променени Ñпоред наÑтройките на mailguard)'; $lang['showuseras_o_email_link'] = 'Ел. поща под формата на връзка тип mailto:'; - -/* useheading options */ -$lang['useheading_o_0'] = 'Ðикога'; +$lang['useheading_o_0'] = 'Ðикога'; $lang['useheading_o_navigation'] = 'Само за навигациÑ'; -$lang['useheading_o_content'] = 'Само за Ñъдържанието на Wiki-то'; -$lang['useheading_o_1'] = 'Винаги'; - -$lang['readdircache'] = 'МакÑимален период за ÑъхранÑване кеша на readdir (Ñек)'; +$lang['useheading_o_content'] = 'Само за Ñъдържанието на Wiki-то'; +$lang['useheading_o_1'] = 'Винаги'; +$lang['readdircache'] = 'МакÑимален период за ÑъхранÑване кеша на readdir (Ñек)'; diff --git a/lib/plugins/extension/lang/bg/lang.php b/lib/plugins/extension/lang/bg/lang.php new file mode 100644 index 000000000..430516dd1 --- /dev/null +++ b/lib/plugins/extension/lang/bg/lang.php @@ -0,0 +1,26 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['tab_search'] = 'ТърÑене и инÑталиране'; +$lang['tab_install'] = 'Ръчно инÑталиране'; +$lang['notimplemented'] = 'ФункционалноÑтта вÑе още не реализирана'; +$lang['unknownauthor'] = 'ÐеизвеÑтен автор'; +$lang['unknownversion'] = 'ÐеизвеÑтна верÑиÑ'; +$lang['btn_info'] = 'Повече информациÑ'; +$lang['btn_update'] = 'Ðктуализиране'; +$lang['btn_uninstall'] = 'ДеинÑталиране'; +$lang['btn_install'] = 'ИнÑталиране'; +$lang['btn_reinstall'] = 'ПреинÑталиране'; +$lang['popularity'] = 'ПопулÑрноÑÑ‚: %s%%'; +$lang['repository'] = 'Хранилище:'; +$lang['installed_version'] = 'ИнÑталирана верÑиÑ:'; +$lang['available_version'] = 'Ðалична верÑиÑ:'; +$lang['compatible'] = 'СъвмеÑтимоÑÑ‚ Ñ:'; +$lang['provides'] = 'ОÑигурÑва:'; +$lang['error_badurl'] = 'URL адреÑите Ñ‚Ñ€Ñбва да започват Ñ http или https'; +$lang['error_download'] = 'ÐевъзможноÑÑ‚ за ÑвалÑне на файл: %s'; +$lang['install_url'] = 'ИнÑталиране от URL:'; diff --git a/lib/plugins/styling/lang/bg/lang.php b/lib/plugins/styling/lang/bg/lang.php new file mode 100644 index 000000000..5e457380c --- /dev/null +++ b/lib/plugins/styling/lang/bg/lang.php @@ -0,0 +1,17 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['btn_preview'] = 'Преглед на промените'; +$lang['btn_save'] = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° промените'; +$lang['btn_reset'] = 'Ðнулиране на промените'; +$lang['__text__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚'; +$lang['__background__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ„Ð¾Ð½'; +$lang['__text_alt__'] = 'Ðлтернативен цвÑÑ‚ за текÑта'; +$lang['__background_alt__'] = 'Ðлтернативен цвÑÑ‚ за фона'; +$lang['__text_neu__'] = 'Ðеутрален цвÑÑ‚ за текÑта'; +$lang['__background_neu__'] = 'Ðеутрален цвÑÑ‚ за фона'; +$lang['__border__'] = 'ЦвÑÑ‚ на рамката'; -- GitLab From a5a157e21b77c7076e7efb400dfb11fda13104bc Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Wed, 29 Jul 2015 21:56:38 +0200 Subject: [PATCH 284/440] translation update --- inc/lang/ja/index.txt | 2 +- inc/lang/ja/register.txt | 2 +- lib/plugins/config/lang/ja/intro.txt | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/inc/lang/ja/index.txt b/inc/lang/ja/index.txt index b3dbb95f3..eb168d146 100644 --- a/inc/lang/ja/index.txt +++ b/inc/lang/ja/index.txt @@ -1,4 +1,4 @@ ====== サイトマップ ====== -[[doku>ja:namespaces|åå‰ç©ºé–“]] ã«åŸºã¥ãã€å…¨ã¦ã®æ–‡æ›¸ã®ç´¢å¼•ã§ã™ã€‚ +å…¨ã¦ã®é–²è¦§å¯èƒ½ãƒšãƒ¼ã‚¸ã‚’[[doku>ja:namespaces|åå‰ç©ºé–“]]é †ã«ä¸¦ã¹ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã§ã™ã€‚ diff --git a/inc/lang/ja/register.txt b/inc/lang/ja/register.txt index b242d1e88..0cd278699 100644 --- a/inc/lang/ja/register.txt +++ b/inc/lang/ja/register.txt @@ -1,4 +1,4 @@ ====== æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ² ====== -ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’è¡Œã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…å ±ã‚’å…¨ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•ã‚Œã¾ã™ã®ã§ã€ å¿…ãš**有効ãª**メールアドレスを入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒã‚°ã‚¤ãƒ³å㯠[[doku>pagename|pagename]] ã«æº–æ‹ ã—ã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 +ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’è¡Œã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…å ±ã‚’å…¨ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•ã‚Œã¾ã™ã®ã§ã€ å¿…ãš**有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹**を入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒã‚°ã‚¤ãƒ³åã¯[[doku>ja:pagename|ページå]]ã«æº–æ‹ ã—ã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 diff --git a/lib/plugins/config/lang/ja/intro.txt b/lib/plugins/config/lang/ja/intro.txt index 6a1f956cb..4d98dd3ed 100644 --- a/lib/plugins/config/lang/ja/intro.txt +++ b/lib/plugins/config/lang/ja/intro.txt @@ -1,7 +1,11 @@ ====== è¨å®šç®¡ç† ====== -ã“ã®ç”»é¢ã§ã€Dokuwikiã®è¨å®šã‚’管ç†ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚ 個々ã®è¨å®šã«é–¢ã—ã¦ã¯ [[doku>config]] ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 ã“ã®ãƒ—ラグインã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã¯ [[doku>plugin:config]] ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +ã“ã®ç”»é¢ã§ã€Dokuwikiã®è¨å®šã‚’管ç†ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚ +個々ã®è¨å®šã«é–¢ã—ã¦ã¯[[doku>ja:config|DokuWiki ã®è¨å®š]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +ã“ã®ãƒ—ラグインã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã¯[[doku>ja:plugin:config|è¨å®šç®¡ç†ãƒ—ラグイン]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 -背景ãŒè–„ã„赤ã«ãªã£ã¦ã„ã‚‹å ´åˆã€ãã®è¨å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。 背景ãŒé’ã®å€¤ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã€èƒŒæ™¯ãŒç™½ã®å€¤ã¯ç¾åœ¨ã®è¨å®šã¨ãªã£ã¦ãŠã‚Šã€ ã©ã¡ã‚‰ã®å€¤ã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚ +背景ãŒè–„ã„赤ã®å ´åˆã€ãã®è¨å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。 +背景ãŒé’ã®å ´åˆã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆè¨å®šã€èƒŒæ™¯ãŒç™½ã®å ´åˆã¯ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨å®šã«ãªã£ã¦ãŠã‚Šã€ã©ã¡ã‚‰è¨å®šã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚ -è¨å®šã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。 ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚ +è¨å®šã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。 +ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•ã‚Œã¾ã™ã€‚ -- GitLab From a4fb25f78eda9f7ef1442a800ed0956a9a4e4101 Mon Sep 17 00:00:00 2001 From: hung nguyen <bancuamoinguoi999@gmail.com> Date: Thu, 30 Jul 2015 03:05:29 +0200 Subject: [PATCH 285/440] translation update --- inc/lang/vi/lang.php | 6 +++--- lib/plugins/authplain/lang/vi/lang.php | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 944a9e5d6..f135da9e9 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -45,6 +45,8 @@ $lang['btn_revert'] = 'Phục hồi'; $lang['btn_register'] = 'Äăng ký'; $lang['btn_apply'] = 'Chấp nháºn'; $lang['btn_media'] = 'Quản lý tệp tin'; +$lang['btn_img_backto'] = 'Quay lại %s'; +$lang['btn_mediaManager'] = 'Xem trong trình quản lý tệp media'; $lang['loggedinas'] = 'Username Ä‘ang dùng:'; $lang['user'] = 'Username'; $lang['pass'] = 'Máºt khẩu'; @@ -59,7 +61,7 @@ $lang['badlogin'] = 'Username hoặc password không đúng.'; $lang['minoredit'] = 'Minor Changes'; $lang['draftdate'] = 'Bản nháp được tá»± Ä‘á»™ng lÆ°u lúc'; $lang['nosecedit'] = 'Các trang web đã được thay đổi trong khi chỠđợi, phần thông tin quá hạn đã được thay thế bằng trang đầy đủ.'; -$lang['searchcreatepage'] = "Nếu bạn không thấy được những gì bạn Ä‘ang tìm, bạn có thể tạo má»™t trang má»›i bằng cách bấm và o nút ''Biên soạn trang nà y'', khi đó bạn sẽ có 1 trang má»›i vá»›i tên trang chÃnh là tuwfw khóa bạn đã tìm kiếm."; +$lang['searchcreatepage'] = 'Nếu bạn không thấy được những gì bạn Ä‘ang tìm, bạn có thể tạo má»™t trang má»›i bằng cách bấm và o nút \'\'Biên soạn trang nà y\'\', khi đó bạn sẽ có 1 trang má»›i vá»›i tên trang chÃnh là tuwfw khóa bạn đã tìm kiếm.'; $lang['regmissing'] = 'Bạn cần Ä‘iá»n và o tất cả các trÆ°á»ng'; $lang['reguexists'] = 'Bạn khác đã dùng username nà y rồi.'; $lang['regsuccess'] = 'Äã tạo username, và đã gởi password.'; @@ -192,7 +194,6 @@ $lang['qb_sig'] = 'Äặt chữ ký'; $lang['metaedit'] = 'Sá»a Metadata'; $lang['metasaveerr'] = 'Thất bại khi viết metadata'; $lang['metasaveok'] = 'Metadata đã được lÆ°u'; -$lang['btn_img_backto'] = 'Quay lại %s'; $lang['img_title'] = 'Tiêu Ä‘á»:'; $lang['img_caption'] = 'Ghi chú:'; $lang['img_date'] = 'Ngà y:'; @@ -205,7 +206,6 @@ $lang['img_camera'] = 'Camera:'; $lang['img_keywords'] = 'Từ khóa:'; $lang['img_width'] = 'Rá»™ng:'; $lang['img_height'] = 'Cao:'; -$lang['btn_mediaManager'] = 'Xem trong trình quản lý tệp media'; $lang['i_chooselang'] = 'Chá»n ngôn ngữ'; $lang['i_retry'] = 'Thá» lại'; $lang['years'] = 'cách đây %d năm'; diff --git a/lib/plugins/authplain/lang/vi/lang.php b/lib/plugins/authplain/lang/vi/lang.php index 7ecb0a27c..f384949b7 100644 --- a/lib/plugins/authplain/lang/vi/lang.php +++ b/lib/plugins/authplain/lang/vi/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; +$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; -- GitLab From 919911b2413fcaaf52e457fce20b44c0d5869730 Mon Sep 17 00:00:00 2001 From: Hugo Smet <hugo.smet@scarlet.be> Date: Thu, 30 Jul 2015 10:11:08 +0200 Subject: [PATCH 286/440] translation update --- inc/lang/nl/lang.php | 6 +++++- lib/plugins/authad/lang/nl/lang.php | 3 +++ lib/plugins/authldap/lang/nl/lang.php | 9 +++++++++ lib/plugins/authmysql/lang/nl/lang.php | 11 +++++++++++ lib/plugins/authplain/lang/nl/lang.php | 8 ++++++-- lib/plugins/config/lang/nl/lang.php | 7 +++++-- 6 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 lib/plugins/authldap/lang/nl/lang.php create mode 100644 lib/plugins/authmysql/lang/nl/lang.php diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 496144a27..dd390d219 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author François Kooman <fkooman.tuxed.net> * @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl> * @author Riny Heijdendael <riny@heijdendael.nl> @@ -26,6 +26,7 @@ * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> * @author Johan Wijnker <johan@wijnker.eu> + * @author Hugo Smet <hugo.smet@scarlet.be> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -91,6 +92,7 @@ $lang['regmissing'] = 'Vul alle velden in'; $lang['reguexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; $lang['regsuccess'] = 'De gebruiker is aangemaakt. Het wachtwoord is per e-mail verzonden.'; $lang['regsuccess2'] = 'De gebruiker is aangemaakt.'; +$lang['regfail'] = 'Gebruiker kon niet aangemaakt worden.'; $lang['regmailfail'] = 'Het lijkt erop dat het sturen van de wachtwoordmail mislukt is. Neem contact op met de beheerder!'; $lang['regbadmail'] = 'Het opgegeven e-mailadres lijkt ongeldig - als je denkt dat dit niet klopt neem dan contact op met de beheerder.'; $lang['regbadpass'] = 'De twee ingevoerde wachtwoorden zijn niet identiek. Probeer het nog eens.'; @@ -105,6 +107,7 @@ $lang['profdeleteuser'] = 'Verwijder gebruiker'; $lang['profdeleted'] = 'Uw gebruikersaccount is verwijderd van deze wiki'; $lang['profconfdelete'] = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.'; $lang['profconfdeletemissing'] = 'Bevestigingsvinkje niet gezet'; +$lang['proffail'] = 'Gebruikersprofiel werd niet bijgewerkt.'; $lang['pwdforget'] = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan'; $lang['resendna'] = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet'; $lang['resendpwd'] = 'Nieuw wachtwoord bepalen voor'; @@ -350,6 +353,7 @@ $lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om besta $lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.'; $lang['media_update'] = 'Upload nieuwe versie'; $lang['media_restore'] = 'Deze versie terugzetten'; +$lang['media_acl_warning'] = 'De lijst is mogelijk niet compleet door ACL beperkingen en verborgen pagina\'s.'; $lang['currentns'] = 'Huidige namespace'; $lang['searchresult'] = 'Zoekresultaat'; $lang['plainhtml'] = 'Alleen HTML'; diff --git a/lib/plugins/authad/lang/nl/lang.php b/lib/plugins/authad/lang/nl/lang.php index bd241a0a9..341a4036e 100644 --- a/lib/plugins/authad/lang/nl/lang.php +++ b/lib/plugins/authad/lang/nl/lang.php @@ -5,6 +5,9 @@ * * @author Rene <wllywlnt@yahoo.com> * @author Dion Nicolaas <dion@nicolaas.net> + * @author Hugo Smet <hugo.smet@scarlet.be> */ $lang['domain'] = 'Inlog Domein'; $lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; +$lang['passchangefail'] = 'Wijziging van het paswoord is mislukt. Wellicht beantwoord het paswoord niet aan de voorwaarden. '; +$lang['connectfail'] = 'Connectie met Active Directory server mislukt.'; diff --git a/lib/plugins/authldap/lang/nl/lang.php b/lib/plugins/authldap/lang/nl/lang.php new file mode 100644 index 000000000..7cbec9baa --- /dev/null +++ b/lib/plugins/authldap/lang/nl/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hugo Smet <hugo.smet@scarlet.be> + */ +$lang['connectfail'] = 'LDAP kan niet connecteren: %s'; +$lang['domainfail'] = 'LDAP kan je gebruikers dn niet vinden'; diff --git a/lib/plugins/authmysql/lang/nl/lang.php b/lib/plugins/authmysql/lang/nl/lang.php new file mode 100644 index 000000000..9a8cf3114 --- /dev/null +++ b/lib/plugins/authmysql/lang/nl/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hugo Smet <hugo.smet@scarlet.be> + */ +$lang['connectfail'] = 'Connectie met de database mislukt.'; +$lang['userexists'] = 'Sorry, een gebruiker met deze login bestaat reeds.'; +$lang['usernotexists'] = 'Sorry, deze gebruiker bestaat niet.'; +$lang['writefail'] = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.'; diff --git a/lib/plugins/authplain/lang/nl/lang.php b/lib/plugins/authplain/lang/nl/lang.php index 1a5397234..56ba2ab90 100644 --- a/lib/plugins/authplain/lang/nl/lang.php +++ b/lib/plugins/authplain/lang/nl/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Hugo Smet <hugo.smet@scarlet.be> */ -$lang['userexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; +$lang['userexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; +$lang['usernotexists'] = 'Sorry, deze gebruiker bestaat niet.'; +$lang['writefail'] = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.'; diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php index 14c8f9b1e..3761ce839 100644 --- a/lib/plugins/config/lang/nl/lang.php +++ b/lib/plugins/config/lang/nl/lang.php @@ -1,8 +1,8 @@ <?php + /** - * dutch language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Pieter van der Meulen <pieter@vdmeulen.net> * @author Wouter Schoot <wouter@schoot.org> * @author John de Graaff <john@de-graaff.net> @@ -16,6 +16,7 @@ * @author Jeroen * @author Ricardo Guijt <ricardoguijt@gmail.com> * @author Gerrit <klapinklapin@gmail.com> + * @author Hugo Smet <hugo.smet@scarlet.be> */ $lang['menu'] = 'Configuratie-instellingen'; $lang['error'] = 'De instellingen zijn niet gewijzigd wegens een incorrecte waarde, kijk je wijzigingen na en sla dan opnieuw op.<br />Je kunt de incorrecte waarde(s) herkennen aan de rode rand.'; @@ -89,6 +90,7 @@ $lang['disableactions'] = 'Aangevinkte DokuWiki-akties uitschakelen'; $lang['disableactions_check'] = 'Controleer'; $lang['disableactions_subscription'] = 'Inschrijven/opzeggen'; $lang['disableactions_wikicode'] = 'Bron bekijken/exporteer rauw'; +$lang['disableactions_profile_delete'] = 'Schrap eigen account'; $lang['disableactions_other'] = 'Andere akties (gescheiden door komma\'s)'; $lang['auth_security_timeout'] = 'Authenticatiebeveiligings-timeout (seconden)'; $lang['securecookie'] = 'Moeten cookies die via HTTPS gezet zijn alleen via HTTPS verzonden worden door de browser? Zet deze optie uit als alleen het inloggen op de wiki beveiligd is, maar het gebruik verder niet.'; @@ -194,6 +196,7 @@ $lang['xsendfile_o_2'] = 'Standaard X-Sendfile header'; $lang['xsendfile_o_3'] = 'Merkgebonden Nginx X-Accel-Redirect header'; $lang['showuseras_o_loginname'] = 'Loginnaam'; $lang['showuseras_o_username'] = 'Volledige naam'; +$lang['showuseras_o_username_link'] = 'Gebruikers volledige naam als interwiki gebruikers link'; $lang['showuseras_o_email'] = 'E-mailadres (onherkenbaar gemaakt volgens mailguard-instelling)'; $lang['showuseras_o_email_link'] = 'E-mailadres als mailto: link'; $lang['useheading_o_0'] = 'Nooit'; -- GitLab From 6d47ad6be813e87dc731b9eb0348508dd9cab941 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Thu, 30 Jul 2015 13:45:23 +0200 Subject: [PATCH 287/440] Revert "Translation update (vi)" --- inc/lang/vi/lang.php | 6 +++--- lib/plugins/authplain/lang/vi/lang.php | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index f135da9e9..944a9e5d6 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -45,8 +45,6 @@ $lang['btn_revert'] = 'Phục hồi'; $lang['btn_register'] = 'Äăng ký'; $lang['btn_apply'] = 'Chấp nháºn'; $lang['btn_media'] = 'Quản lý tệp tin'; -$lang['btn_img_backto'] = 'Quay lại %s'; -$lang['btn_mediaManager'] = 'Xem trong trình quản lý tệp media'; $lang['loggedinas'] = 'Username Ä‘ang dùng:'; $lang['user'] = 'Username'; $lang['pass'] = 'Máºt khẩu'; @@ -61,7 +59,7 @@ $lang['badlogin'] = 'Username hoặc password không đúng.'; $lang['minoredit'] = 'Minor Changes'; $lang['draftdate'] = 'Bản nháp được tá»± Ä‘á»™ng lÆ°u lúc'; $lang['nosecedit'] = 'Các trang web đã được thay đổi trong khi chỠđợi, phần thông tin quá hạn đã được thay thế bằng trang đầy đủ.'; -$lang['searchcreatepage'] = 'Nếu bạn không thấy được những gì bạn Ä‘ang tìm, bạn có thể tạo má»™t trang má»›i bằng cách bấm và o nút \'\'Biên soạn trang nà y\'\', khi đó bạn sẽ có 1 trang má»›i vá»›i tên trang chÃnh là tuwfw khóa bạn đã tìm kiếm.'; +$lang['searchcreatepage'] = "Nếu bạn không thấy được những gì bạn Ä‘ang tìm, bạn có thể tạo má»™t trang má»›i bằng cách bấm và o nút ''Biên soạn trang nà y'', khi đó bạn sẽ có 1 trang má»›i vá»›i tên trang chÃnh là tuwfw khóa bạn đã tìm kiếm."; $lang['regmissing'] = 'Bạn cần Ä‘iá»n và o tất cả các trÆ°á»ng'; $lang['reguexists'] = 'Bạn khác đã dùng username nà y rồi.'; $lang['regsuccess'] = 'Äã tạo username, và đã gởi password.'; @@ -194,6 +192,7 @@ $lang['qb_sig'] = 'Äặt chữ ký'; $lang['metaedit'] = 'Sá»a Metadata'; $lang['metasaveerr'] = 'Thất bại khi viết metadata'; $lang['metasaveok'] = 'Metadata đã được lÆ°u'; +$lang['btn_img_backto'] = 'Quay lại %s'; $lang['img_title'] = 'Tiêu Ä‘á»:'; $lang['img_caption'] = 'Ghi chú:'; $lang['img_date'] = 'Ngà y:'; @@ -206,6 +205,7 @@ $lang['img_camera'] = 'Camera:'; $lang['img_keywords'] = 'Từ khóa:'; $lang['img_width'] = 'Rá»™ng:'; $lang['img_height'] = 'Cao:'; +$lang['btn_mediaManager'] = 'Xem trong trình quản lý tệp media'; $lang['i_chooselang'] = 'Chá»n ngôn ngữ'; $lang['i_retry'] = 'Thá» lại'; $lang['years'] = 'cách đây %d năm'; diff --git a/lib/plugins/authplain/lang/vi/lang.php b/lib/plugins/authplain/lang/vi/lang.php index f384949b7..7ecb0a27c 100644 --- a/lib/plugins/authplain/lang/vi/lang.php +++ b/lib/plugins/authplain/lang/vi/lang.php @@ -1,7 +1,6 @@ <?php - /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; +$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; -- GitLab From 8ab6e08b627efa216ca668750b34e45faf88cf25 Mon Sep 17 00:00:00 2001 From: Paulo Carmino <contato@paulocarmino.com> Date: Thu, 30 Jul 2015 14:51:33 +0200 Subject: [PATCH 288/440] translation update --- inc/lang/pt/lang.php | 5 +- lib/plugins/authad/lang/pt/lang.php | 3 + lib/plugins/authad/lang/pt/settings.php | 2 +- lib/plugins/authldap/lang/pt/lang.php | 9 ++ lib/plugins/authldap/lang/pt/settings.php | 2 + lib/plugins/authmysql/lang/pt/lang.php | 10 +++ lib/plugins/authplain/lang/pt/lang.php | 7 +- lib/plugins/config/lang/pt/lang.php | 100 +++++++++++----------- lib/plugins/extension/lang/pt/lang.php | 4 +- lib/plugins/usermanager/lang/pt/lang.php | 1 + 10 files changed, 90 insertions(+), 53 deletions(-) create mode 100644 lib/plugins/authldap/lang/pt/lang.php create mode 100644 lib/plugins/authmysql/lang/pt/lang.php diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 1603e7cec..c45d52295 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt> * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com> * @author Enrico Nicoletto <liverig@gmail.com> @@ -13,6 +13,7 @@ * @author Paulo Silva <paulotsilva@yahoo.com> * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -78,6 +79,7 @@ $lang['regmissing'] = 'Por favor, preencha todos os campos.'; $lang['reguexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; $lang['regsuccess'] = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.'; $lang['regsuccess2'] = 'O utilizador foi criado.'; +$lang['regfail'] = 'O usuário não pode ser criado.'; $lang['regmailfail'] = 'Houve um erro no envio da senha por e-mail. Por favor, contacte o administrador!'; $lang['regbadmail'] = 'O endereço de correio electrónico é inválido. Se o endereço está correcto, e isto é um erro, por favor, contacte o administrador!'; $lang['regbadpass'] = 'As duas senhas não são idênticas, por favor tente de novo.'; @@ -92,6 +94,7 @@ $lang['profdeleteuser'] = 'Apagar Conta'; $lang['profdeleted'] = 'A sua conta de utilizador foi removida desta wiki'; $lang['profconfdelete'] = 'Quero remover a minha conta desta wiki. <br/> Esta acção não pode ser anulada.'; $lang['profconfdeletemissing'] = 'A caixa de confirmação não foi marcada'; +$lang['proffail'] = 'O perfil do usuário não foi atualizado.'; $lang['pwdforget'] = 'Esqueceu a sua senha? Pedir nova senha'; $lang['resendna'] = 'Este wiki não suporta reenvio de senhas.'; $lang['resendpwd'] = 'Definir nova senha para'; diff --git a/lib/plugins/authad/lang/pt/lang.php b/lib/plugins/authad/lang/pt/lang.php index 919534231..450e3a137 100644 --- a/lib/plugins/authad/lang/pt/lang.php +++ b/lib/plugins/authad/lang/pt/lang.php @@ -5,6 +5,9 @@ * * @author Paulo Silva <paulotsilva@yahoo.com> * @author André Neves <drakferion@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['domain'] = 'DomÃnio de InÃcio de Sessão'; $lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; +$lang['passchangefail'] = 'Falha ao alterar a senha. Tente prosseguir com uma senha mais segura.'; +$lang['connectfail'] = 'Falha ao conectar com o servidor Active Directory.'; diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php index c5756890d..dc6741b2a 100644 --- a/lib/plugins/authad/lang/pt/settings.php +++ b/lib/plugins/authad/lang/pt/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author André Neves <drakferion@gmail.com> * @author Murilo <muriloricci@hotmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> diff --git a/lib/plugins/authldap/lang/pt/lang.php b/lib/plugins/authldap/lang/pt/lang.php new file mode 100644 index 000000000..cd782f4b4 --- /dev/null +++ b/lib/plugins/authldap/lang/pt/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Paulo Carmino <contato@paulocarmino.com> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar o LDAP: %s'; +$lang['domainfail'] = 'O LDAP não encontrou seu usuário'; diff --git a/lib/plugins/authldap/lang/pt/settings.php b/lib/plugins/authldap/lang/pt/settings.php index d9d1b7f11..4d4ed2d85 100644 --- a/lib/plugins/authldap/lang/pt/settings.php +++ b/lib/plugins/authldap/lang/pt/settings.php @@ -6,6 +6,7 @@ * @author André Neves <drakferion@gmail.com> * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['server'] = 'O seu servidor de LDAP. Ou hostname (<code>localhost</code>) ou URL qualificado completo (<code>ldap://servidor.tld:389</code>)'; $lang['port'] = 'Porta de servidor de LDAP se o URL completo não foi fornecido acima'; @@ -22,6 +23,7 @@ $lang['bindpw'] = 'Senha do utilizador acima'; $lang['userscope'] = 'Escopo de pesquisa Limite para pesquisa de usuário'; $lang['groupscope'] = 'Escopo de pesquisa Limite para pesquisa de grupo'; $lang['groupkey'] = 'A participação no grupo a partir de qualquer atributo de usuário (em vez de AD padrão de grupos) exemplo: grupo de departamento ou número de telefone'; +$lang['modPass'] = 'Sua senha LDAP pode ser alterada via dokuwiki?'; $lang['debug'] = 'Mostrar informação adicional de debug aquando de erros'; $lang['deref_o_0'] = 'LDAP_DEREF_NUNCA'; $lang['deref_o_1'] = 'LDAP_DEREF_PESQUISANDO'; diff --git a/lib/plugins/authmysql/lang/pt/lang.php b/lib/plugins/authmysql/lang/pt/lang.php new file mode 100644 index 000000000..754a552f8 --- /dev/null +++ b/lib/plugins/authmysql/lang/pt/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Paulo Carmino <contato@paulocarmino.com> + */ +$lang['connectfail'] = 'Falha ao conectar com o banco de dados.'; +$lang['userexists'] = 'Desculpe, esse login já está sendo usado.'; +$lang['usernotexists'] = 'Desculpe, esse login não existe.'; diff --git a/lib/plugins/authplain/lang/pt/lang.php b/lib/plugins/authplain/lang/pt/lang.php index c49649d4e..26d4180c5 100644 --- a/lib/plugins/authplain/lang/pt/lang.php +++ b/lib/plugins/authplain/lang/pt/lang.php @@ -1,6 +1,9 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Paulo Carmino <contato@paulocarmino.com> */ -$lang['userexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; +$lang['userexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; +$lang['usernotexists'] = 'Desculpe, esse login não existe.'; diff --git a/lib/plugins/config/lang/pt/lang.php b/lib/plugins/config/lang/pt/lang.php index 7a9111c62..c95349265 100644 --- a/lib/plugins/config/lang/pt/lang.php +++ b/lib/plugins/config/lang/pt/lang.php @@ -1,12 +1,14 @@ <?php + /** - * Portugueselanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com> * @author Enrico Nicoletto <liverig@gmail.com> * @author Fil <fil@meteopt.com> * @author André Neves <drakferion@gmail.com> * @author José Campos zecarlosdecampos@gmail.com + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['menu'] = 'Configuração'; $lang['error'] = 'Parâmetros de Configuração não actualizados devido a valores inválidos. Por favor, reveja as modificações que pretende efectuar antes de re-submetê-las.<br /> Os valores incorrectos serão mostrados dentro de uma "moldura" vermelha.'; @@ -29,30 +31,32 @@ $lang['_anti_spam'] = 'Configuração Anti-Spam'; $lang['_editing'] = 'Configuração de Edição'; $lang['_links'] = 'Configuração de Ligações'; $lang['_media'] = 'Configuração de Media'; +$lang['_notifications'] = 'Notificação'; $lang['_advanced'] = 'Configurações Avançadas'; $lang['_network'] = 'Configuração de Rede'; $lang['_msg_setting_undefined'] = 'Nenhum metadado configurado.'; $lang['_msg_setting_no_class'] = 'Nenhuma classe definida.'; $lang['_msg_setting_no_default'] = 'Sem valor por omissão.'; -$lang['fmode'] = 'Modo de criação de ficheiros.'; -$lang['dmode'] = 'Modo de criação de pastas.'; -$lang['lang'] = 'Idioma'; -$lang['basedir'] = 'Pasta Base'; -$lang['baseurl'] = 'URL Base'; -$lang['savedir'] = 'Pasta para guardar dados'; -$lang['start'] = 'Nome da Página Inicial'; $lang['title'] = 'TÃtulo deste Wiki'; +$lang['start'] = 'Nome da Página Inicial'; +$lang['lang'] = 'Idioma'; $lang['template'] = 'Template'; $lang['license'] = 'Sob que licença o seu conteúdo deverá ser disponibilizado?'; -$lang['fullpath'] = 'Revelar caminho completo no rodapé'; +$lang['savedir'] = 'Pasta para guardar dados'; +$lang['basedir'] = 'Pasta Base'; +$lang['baseurl'] = 'URL Base'; +$lang['dmode'] = 'Modo de criação de pastas.'; +$lang['fmode'] = 'Modo de criação de ficheiros.'; +$lang['allowdebug'] = 'Permitir depuração <b>desabilite se não for necessário!</b>'; $lang['recent'] = 'Alterações recentes'; +$lang['recent_days'] = 'Quantas mudanças recentes devem ser mantidas? (dias)'; $lang['breadcrumbs'] = 'Número máximo de breadcrumbs'; $lang['youarehere'] = 'Breadcrumbs hierárquicas'; +$lang['fullpath'] = 'Revelar caminho completo no rodapé'; $lang['typography'] = 'Executar substituições tipográficas'; -$lang['htmlok'] = 'Permitir embeber HTML'; -$lang['phpok'] = 'Permitir embeber PHP'; $lang['dformat'] = 'Formato de Data (ver função PHP\'s <a href="http://www.php.net/strftime">strftime</a>)'; $lang['signature'] = 'Assinatura'; +$lang['showuseras'] = 'O que exibir quando mostrar o utilizador que editou a página pela última vez'; $lang['toptoclevel'] = 'NÃvel de topo para a tabela de conteúdo'; $lang['tocminheads'] = 'Quantidade mÃnima de cabeçalhos para a construção da tabela de conteúdos.'; $lang['maxtoclevel'] = 'Máximo nÃvel para a tabela de conteúdo'; @@ -60,14 +64,8 @@ $lang['maxseclevel'] = 'Máximo nÃvel para editar secção'; $lang['camelcase'] = 'Usar CamelCase'; $lang['deaccent'] = 'Nomes das páginas sem acentos'; $lang['useheading'] = 'Usar o primeiro cabeçalho para o nome da página'; -$lang['refcheck'] = 'Verificação de referência da media'; -$lang['allowdebug'] = 'Permitir depuração <b>desabilite se não for necessário!</b>'; -$lang['usewordblock'] = 'Bloquear spam baseado em lista de palavras (wordlist)'; -$lang['indexdelay'] = 'Tempo de espera antes da indexação (seg)'; -$lang['relnofollow'] = 'Usar rel="nofollow" em links externos'; -$lang['mailguard'] = 'Obscurecer endereços de email'; -$lang['iexssprotect'] = 'Verificar os arquivos enviados contra possÃveis códigos maliciosos em HTML ou JavaScript'; -$lang['showuseras'] = 'O que exibir quando mostrar o utilizador que editou a página pela última vez'; +$lang['sneaky_index'] = 'Por norma, o DokuWiki irá exibir todos os espaços de nomes na visualização do Ãndice. Ao habilitar essa opção, serão escondidos aqueles em que o utilizador não tenha permissão de leitura. Isto pode resultar na omissão de sub-ramos acessÃveis, que poderá tornar o Ãndice inútil para certas configurações de ACL.'; +$lang['hidepages'] = 'Esconder páginas correspondentes (expressões regulares)'; $lang['useacl'] = 'Usar ACL - Listas de Controlo de Acessos'; $lang['autopasswd'] = 'Auto-gerar senhas'; $lang['authtype'] = 'Método de autenticação'; @@ -76,58 +74,64 @@ $lang['defaultgroup'] = 'Grupo por omissão'; $lang['superuser'] = 'Superutilizador - um grupo, utilizador ou uma lista separada por vÃrgulas usuário1,@grupo1,usuário2 que tem acesso completo a todas as páginas e funções, independente das definições da ACL'; $lang['manager'] = 'Gestor - um grupo, utilizador ou uma lista separada por vÃrgulas usuário1,@grupo1,usuário2 que tem acesso a certas funções de gestão'; $lang['profileconfirm'] = 'Confirmar mudanças no perfil com a senha'; +$lang['rememberme'] = 'Permitir cookies de autenticação permanentes (Memorizar?)'; $lang['disableactions'] = 'Desactivar acções DokuWiki'; $lang['disableactions_check'] = 'Checar'; $lang['disableactions_subscription'] = 'Subscrever/Não Subscrver'; $lang['disableactions_wikicode'] = 'Ver fonte/Exportar em bruto'; +$lang['disableactions_profile_delete'] = 'Deletar Sua Conta.'; $lang['disableactions_other'] = 'Outras acções (separadas por vÃrgula)'; -$lang['sneaky_index'] = 'Por norma, o DokuWiki irá exibir todos os espaços de nomes na visualização do Ãndice. Ao habilitar essa opção, serão escondidos aqueles em que o utilizador não tenha permissão de leitura. Isto pode resultar na omissão de sub-ramos acessÃveis, que poderá tornar o Ãndice inútil para certas configurações de ACL.'; $lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)'; $lang['securecookie'] = 'Os cookies definidos via HTTPS deverão ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação de maneira insegura.'; +$lang['usewordblock'] = 'Bloquear spam baseado em lista de palavras (wordlist)'; +$lang['relnofollow'] = 'Usar rel="nofollow" em links externos'; +$lang['indexdelay'] = 'Tempo de espera antes da indexação (seg)'; +$lang['mailguard'] = 'Obscurecer endereços de email'; +$lang['iexssprotect'] = 'Verificar os arquivos enviados contra possÃveis códigos maliciosos em HTML ou JavaScript'; +$lang['usedraft'] = 'Guardar o rascunho automaticamente durante a edição'; +$lang['htmlok'] = 'Permitir embeber HTML'; +$lang['phpok'] = 'Permitir embeber PHP'; +$lang['locktime'] = 'Idade máxima para locks (seg.)'; +$lang['cachetime'] = 'Idade máxima para cache (seg.)'; +$lang['target____wiki'] = 'Parâmetro "target" para links internos'; +$lang['target____interwiki'] = 'Parâmetro "target" para links entre wikis'; +$lang['target____extern'] = 'Parâmetro "target" para links externos'; +$lang['target____media'] = 'Parâmetro "target" para links de media'; +$lang['target____windows'] = 'Parâmetro "target" para links do Windows'; +$lang['refcheck'] = 'Verificação de referência da media'; +$lang['gdlib'] = 'Versão GD Lib'; +$lang['im_convert'] = 'Caminho para a ferramenta "convert" do ImageMagick'; +$lang['jpg_quality'] = 'Compressão/Qualidade JPG (0-100)'; +$lang['fetchsize'] = 'Tamanho máximo (bytes) que o fetch.php pode transferir do exterior'; +$lang['subscribers'] = 'Habilitar o suporte a subscrição de páginas '; +$lang['subscribe_time'] = 'Tempo após o qual as listas de subscrição e "digests" são enviados (seg.); Isto deve ser inferior ao tempo especificado em recent_days.'; +$lang['notify'] = 'Enviar notificações de mudanças para este endereço de email'; +$lang['registernotify'] = 'Enviar informações de utilizadores registados para este endereço de email'; +$lang['mailfrom'] = 'Endereço de email a ser utilizado para mensagens automáticas'; +$lang['mailprefix'] = 'Prefixo de email a ser utilizado para mensagens automáticas'; +$lang['sitemap'] = 'Gerar Sitemap Google (dias)'; +$lang['rss_type'] = 'Tipo de feed XML'; +$lang['rss_linkto'] = 'Links de feed XML ara'; +$lang['rss_content'] = 'O que deve ser exibido nos itens do alimentador XML?'; +$lang['rss_update'] = 'Intervalo de actualização do alimentador XML (seg)'; +$lang['rss_show_summary'] = 'Resumo de exibição do alimentador XML no tÃtulo'; $lang['updatecheck'] = 'Verificar por actualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efectuar esta verificação.'; $lang['userewrite'] = 'Usar URLs SEO'; $lang['useslash'] = 'Usar a barra como separador de espaços de nomes nas URLs'; -$lang['usedraft'] = 'Guardar o rascunho automaticamente durante a edição'; $lang['sepchar'] = 'Separador de palavras no nome da página'; $lang['canonical'] = 'Usar URLs absolutas (http://servidor/caminho)'; $lang['fnencode'] = 'Método de codificar nomes de ficheiro não-ASCII.'; $lang['autoplural'] = 'Verificar formas plurais nos links'; $lang['compression'] = 'Método de compressão para histórico'; -$lang['cachetime'] = 'Idade máxima para cache (seg.)'; -$lang['locktime'] = 'Idade máxima para locks (seg.)'; -$lang['fetchsize'] = 'Tamanho máximo (bytes) que o fetch.php pode transferir do exterior'; -$lang['notify'] = 'Enviar notificações de mudanças para este endereço de email'; -$lang['registernotify'] = 'Enviar informações de utilizadores registados para este endereço de email'; -$lang['mailfrom'] = 'Endereço de email a ser utilizado para mensagens automáticas'; -$lang['mailprefix'] = 'Prefixo de email a ser utilizado para mensagens automáticas'; $lang['gzip_output'] = 'Usar "Content-Encoding" do gzip para o código xhtml'; -$lang['gdlib'] = 'Versão GD Lib'; -$lang['im_convert'] = 'Caminho para a ferramenta "convert" do ImageMagick'; -$lang['jpg_quality'] = 'Compressão/Qualidade JPG (0-100)'; -$lang['subscribers'] = 'Habilitar o suporte a subscrição de páginas '; -$lang['subscribe_time'] = 'Tempo após o qual as listas de subscrição e "digests" são enviados (seg.); Isto deve ser inferior ao tempo especificado em recent_days.'; $lang['compress'] = 'Compactar as saÃdas de CSS e JavaScript'; $lang['cssdatauri'] = 'Tamanho em bytes até ao qual as imagens referenciadas em ficheiros CSS devem ser embutidas diretamente no CSS para reduzir a carga de pedidos HTTP extra. Esta técnica não funciona em IE 7 e abaixo! <code>400</code> a <code>600</code> bytes é um bom valor. Escolher <code>0</code> para desativar.'; -$lang['hidepages'] = 'Esconder páginas correspondentes (expressões regulares)'; $lang['send404'] = 'Enviar "HTTP 404/Página não encontrada" para páginas não existentes'; -$lang['sitemap'] = 'Gerar Sitemap Google (dias)'; $lang['broken_iua'] = 'A função "ignore_user_abort" não está a funcionar no seu sistema? Isso pode causar um Ãndice de busca defeituoso. Sistemas com IIS+PHP/CGI são conhecidos por possuÃrem este problema. Veja o <a href="http://bugs.splitbrain.org/?do=details&task_id=852">bug 852</a> para mais informações.'; $lang['xsendfile'] = 'Usar o cabeçalho "X-Sendfile" para permitir o servidor de internet encaminhar ficheiros estáticos? O seu servidor de internet precisa ter suporte a isso.'; $lang['renderer_xhtml'] = 'Renderizador a ser utilizado para a saÃda principal do wiki (xhtml)'; $lang['renderer__core'] = '%s (núcleo dokuwiki)'; $lang['renderer__plugin'] = '%s (plugin)'; -$lang['rememberme'] = 'Permitir cookies de autenticação permanentes (Memorizar?)'; -$lang['rss_type'] = 'Tipo de feed XML'; -$lang['rss_linkto'] = 'Links de feed XML ara'; -$lang['rss_content'] = 'O que deve ser exibido nos itens do alimentador XML?'; -$lang['rss_update'] = 'Intervalo de actualização do alimentador XML (seg)'; -$lang['recent_days'] = 'Quantas mudanças recentes devem ser mantidas? (dias)'; -$lang['rss_show_summary'] = 'Resumo de exibição do alimentador XML no tÃtulo'; -$lang['target____wiki'] = 'Parâmetro "target" para links internos'; -$lang['target____interwiki'] = 'Parâmetro "target" para links entre wikis'; -$lang['target____extern'] = 'Parâmetro "target" para links externos'; -$lang['target____media'] = 'Parâmetro "target" para links de media'; -$lang['target____windows'] = 'Parâmetro "target" para links do Windows'; $lang['proxy____host'] = 'Nome do servidor proxy'; $lang['proxy____port'] = 'Porta de Proxy'; $lang['proxy____user'] = 'Nome de utilizador Proxy'; diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php index e8c8a7d55..1a36b4ede 100644 --- a/lib/plugins/extension/lang/pt/lang.php +++ b/lib/plugins/extension/lang/pt/lang.php @@ -2,9 +2,10 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['menu'] = 'Gerenciador de Extensões'; $lang['tab_plugins'] = 'Plugins Instalados'; @@ -26,6 +27,7 @@ $lang['btn_disable'] = 'Desabilitar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Reinstalar'; $lang['js']['reallydel'] = 'Confirma a desinstalação desta extensão?'; +$lang['js']['display_viewoptions'] = 'Ver Opções:'; $lang['search_for'] = 'Pesquisar Extensão:'; $lang['search'] = 'Pesquisar'; $lang['extensionby'] = '<strong>%s</strong> by %s'; diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php index ee6eaf4f5..a0b70d2d9 100644 --- a/lib/plugins/usermanager/lang/pt/lang.php +++ b/lib/plugins/usermanager/lang/pt/lang.php @@ -10,6 +10,7 @@ * @author José Campos zecarlosdecampos@gmail.com * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['menu'] = 'Gestor de Perfis'; $lang['noauth'] = '(autenticação indisponÃvel)'; -- GitLab From 7e9637146fa03b75eb1e5fc1e7d34d9c3d10ba4e Mon Sep 17 00:00:00 2001 From: "controlonline.net" <controlonline.net@gmail.com> Date: Thu, 30 Jul 2015 15:45:54 +0200 Subject: [PATCH 289/440] translation update --- inc/lang/ca/lang.php | 25 ++++++++++++++++++++++++- lib/plugins/authplain/lang/ca/lang.php | 5 +++-- lib/plugins/config/lang/ca/lang.php | 6 ++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index bb21f5c3c..d27ce56f9 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -2,11 +2,12 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author daniel@6temes.cat * @author Eduard DÃaz <edudiaz@scopia.es> + * @author controlonline.net <controlonline.net@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -48,7 +49,10 @@ $lang['btn_draftdel'] = 'Suprimeix esborrany'; $lang['btn_revert'] = 'Restaura'; $lang['btn_register'] = 'Registra\'m'; $lang['btn_apply'] = 'Aplica'; +$lang['btn_media'] = 'Mà nager Multimèdia'; +$lang['btn_deleteuser'] = 'Esborrar compte'; $lang['btn_img_backto'] = 'Torna a %s'; +$lang['btn_mediaManager'] = 'Veure a multimèdia mà nager '; $lang['loggedinas'] = 'Heu entrat com:'; $lang['user'] = 'Nom d\'usuari'; $lang['pass'] = 'Contrasenya'; @@ -60,6 +64,7 @@ $lang['fullname'] = 'Nom complet'; $lang['email'] = 'Correu electrònic'; $lang['profile'] = 'Perfil d\'usuari'; $lang['badlogin'] = 'Nom d\'usuari o contrasenya incorrectes.'; +$lang['badpassconfirm'] = 'Contrasenya incorrecta'; $lang['minoredit'] = 'Canvis menors'; $lang['draftdate'] = 'L\'esborrany s\'ha desat automà ticament'; $lang['nosecedit'] = 'Mentrestant la pà gina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pà gina sencera.'; @@ -68,6 +73,7 @@ $lang['regmissing'] = 'Heu d\'omplir tots els camps.'; $lang['reguexists'] = 'Ja existeix un altre usuari amb aquest nom.'; $lang['regsuccess'] = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.'; $lang['regsuccess2'] = 'S\'ha creat l\'usuari.'; +$lang['regfail'] = 'L\'usuari no pot ser creat'; $lang['regmailfail'] = 'Sembla que un error ha impedit enviar la contrasenya per correu. Contacteu amb l\'administrador.'; $lang['regbadmail'] = 'L\'adreça de correu que heu donat no sembla và lida. Si creieu que això és un error, contacu amb l\'administrador.'; $lang['regbadpass'] = 'Les dues contrasenyes no són iguals. Torneu a intentar-ho.'; @@ -77,6 +83,12 @@ $lang['profna'] = 'Aquest wiki no permet modificar el perfil'; $lang['profnochange'] = 'No heu introduït cap canvi.'; $lang['profnoempty'] = 'No es pot deixar en blanc el nom o l\'adreça de correu.'; $lang['profchanged'] = 'El perfil d\'usuari s\'ha actualitzat correctament.'; +$lang['profnodelete'] = 'Aquesta wiki no permet esborrar usuaris'; +$lang['profdeleteuser'] = 'Esborrar compte'; +$lang['profdeleted'] = 'El vostre compte ha sigut esborrat d\'aquest compte'; +$lang['profconfdelete'] = 'Vull esmorrar el meu compte d\'aquesta wiki. </br> Aquesta acció no pot desfer-se.'; +$lang['profconfdeletemissing'] = 'Confirmació no acceptada'; +$lang['proffail'] = 'Perfil d\'usuari no actialitzat'; $lang['pwdforget'] = 'Heu oblidat la contrasenya? Podeu obtenir-ne una de nova.'; $lang['resendna'] = 'Aquest wiki no permet tornar a enviar la contrasenya.'; $lang['resendpwd'] = 'Estableix una nova contrasenya per'; @@ -174,6 +186,9 @@ $lang['difflink'] = 'Enllaç a la visualització de la comparació' $lang['diff_type'] = 'Veieu les diferències:'; $lang['diff_inline'] = 'En lÃnia'; $lang['diff_side'] = 'Un al costat de l\'altre'; +$lang['diffprevrev'] = 'Revisió prèvia'; +$lang['diffnextrev'] = 'Següent revisió'; +$lang['difflastrev'] = 'Ultima revisió'; $lang['line'] = 'LÃnia'; $lang['breadcrumb'] = 'CamÃ:'; $lang['youarehere'] = 'Sou aquÃ:'; @@ -194,6 +209,7 @@ $lang['skip_to_content'] = 'salta al contingut'; $lang['sidebar'] = 'Barra lateral'; $lang['mail_newpage'] = 'pà gina afegida:'; $lang['mail_changed'] = 'pà gina modificada:'; +$lang['mail_subscribe_list'] = 'pagines canviades a l0espai de noms:'; $lang['mail_new_user'] = 'nou usuari:'; $lang['mail_upload'] = 'fitxer penjat:'; $lang['changes_type'] = 'Veure els canvis de'; @@ -277,8 +293,12 @@ $lang['i_policy'] = 'PolÃtica ACL inicial'; $lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)'; $lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)'; $lang['i_pol2'] = 'Wiki tancat (només els usuaris registrats poden llegir, escriure i penjar fitxers)'; +$lang['i_allowreg'] = 'Permet d\'autoinscripció d\'usuaris'; $lang['i_retry'] = 'Reintenta'; $lang['i_license'] = 'Escolliu el tipus de llicència que voleu fer servir per al vostre contingut:'; +$lang['i_license_none'] = 'No mostrar cap informació sobre llicencies'; +$lang['i_pop_field'] = 'Si us plau, ajuda\'ns a millorar la DokuWiki'; +$lang['i_pop_label'] = 'Una vegada al mes, enviar anònimament dades als programadors de la DokuWiki'; $lang['recent_global'] = 'Esteu veient els canvis recents de l\'espai <strong>%s</strong>. També podeu veure els <a href="%s">canvis recents de tot el wiki</a>.'; $lang['years'] = 'fa %d anys'; $lang['months'] = 'fa %d mesos'; @@ -311,3 +331,6 @@ $lang['media_perm_read'] = 'No teniu permisos suficients per a llegir arxi $lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxius'; $lang['media_update'] = 'Puja la nova versió'; $lang['media_restore'] = 'Restaura aquesta versió'; +$lang['currentns'] = 'Espai de noms actual'; +$lang['searchresult'] = 'Resultats cerca'; +$lang['plainhtml'] = 'HTML pla'; diff --git a/lib/plugins/authplain/lang/ca/lang.php b/lib/plugins/authplain/lang/ca/lang.php index 5a675639d..8cbada1b9 100644 --- a/lib/plugins/authplain/lang/ca/lang.php +++ b/lib/plugins/authplain/lang/ca/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.'; +$lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.'; diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php index a53a859a0..404d3ea70 100644 --- a/lib/plugins/config/lang/ca/lang.php +++ b/lib/plugins/config/lang/ca/lang.php @@ -1,12 +1,14 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es * @author Carles Bellver <carles.bellver@cent.uji.es> * @author daniel@6temes.cat + * @author controlonline.net <controlonline.net@gmail.com> */ $lang['menu'] = 'Parà metres de configuració'; $lang['error'] = 'Els parà metres no s\'han pogut actualitzar per causa d\'un valor incorrecte Reviseu els canvis i torneu a enviar-los.<br />Els valors incorrectes es ressaltaran amb un marc vermell.'; -- GitLab From 6c40559b16012d64a0e3453c2c21f03572e78930 Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Thu, 30 Jul 2015 15:47:11 +0200 Subject: [PATCH 290/440] translation update --- inc/lang/ko/denied.txt | 3 +- inc/lang/ko/lang.php | 18 +- inc/lang/ko/searchpage.txt | 2 +- inc/lang/ko/updateprofile.txt | 2 +- lib/plugins/authplain/lang/ko/lang.php | 8 +- lib/plugins/config/lang/ko/intro.txt | 6 +- lib/plugins/config/lang/ko/lang.php | 234 ++++++++++++----------- lib/plugins/revert/lang/ko/lang.php | 4 +- lib/plugins/styling/lang/ko/intro.txt | 2 + lib/plugins/styling/lang/ko/lang.php | 23 +++ lib/plugins/usermanager/lang/ko/lang.php | 2 +- lib/tpl/dokuwiki/lang/ko/lang.php | 15 ++ lib/tpl/dokuwiki/lang/ko/style.txt | 4 + 13 files changed, 187 insertions(+), 136 deletions(-) create mode 100644 lib/plugins/styling/lang/ko/intro.txt create mode 100644 lib/plugins/styling/lang/ko/lang.php create mode 100644 lib/tpl/dokuwiki/lang/ko/lang.php create mode 100644 lib/tpl/dokuwiki/lang/ko/style.txt diff --git a/inc/lang/ko/denied.txt b/inc/lang/ko/denied.txt index a4b94be65..bf82fbd31 100644 --- a/inc/lang/ko/denied.txt +++ b/inc/lang/ko/denied.txt @@ -1,4 +1,3 @@ ====== 권한 ê±°ì ˆ ====== -죄송하지만 계ì†í• 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. - +죄송하지만 계ì†í• 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. \ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 48ebfb1d6..beec62aa9 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -30,8 +30,8 @@ $lang['btn_search'] = '검색'; $lang['btn_save'] = 'ì €ìž¥'; $lang['btn_preview'] = '미리 보기'; $lang['btn_top'] = '맨 위로'; -$lang['btn_newer'] = '<< 최근'; -$lang['btn_older'] = 'ì´ì „ >>'; +$lang['btn_newer'] = '<< 최근 바뀜 ë” ë³´ê¸°'; +$lang['btn_older'] = '최근 바뀜 ëœ ë³´ê¸° >>'; $lang['btn_revs'] = 'ì´ì „ íŒ'; $lang['btn_recent'] = '최근 바뀜'; $lang['btn_upload'] = '올리기'; @@ -46,7 +46,7 @@ $lang['btn_delete'] = 'ì‚ì œ'; $lang['btn_back'] = '뒤로'; $lang['btn_backlink'] = 'ë°±ë§í¬'; $lang['btn_subscribe'] = 'êµ¬ë… ê´€ë¦¬'; -$lang['btn_profile'] = '프로필 바꾸기'; +$lang['btn_profile'] = '프로필 ì—…ë°ì´íŠ¸'; $lang['btn_reset'] = 'ìž¬ì„¤ì •'; $lang['btn_resendpwd'] = '새 비밀번호 ì„¤ì •'; $lang['btn_draft'] = '초안 편집'; @@ -110,7 +110,7 @@ $lang['searchmedia_in'] = '%sì—ì„œ 검색'; $lang['txt_upload'] = '올릴 íŒŒì¼ ì„ íƒ:'; $lang['txt_filename'] = '올릴 íŒŒì¼ ì´ë¦„ (ì„ íƒ ì‚¬í•):'; $lang['txt_overwrt'] = '기존 파ì¼ì— ë®ì–´ì“°ê¸°'; -$lang['maxuploadsize'] = '최대 올리기 용량. 파ì¼ë‹¹ %s입니다.'; +$lang['maxuploadsize'] = '최대 올리기 용량. 파ì¼ë‹¹ %s.'; $lang['lockedby'] = '현재 ìž ê²¨ì§„ 사용ìž:'; $lang['lockexpire'] = 'ìž ê¸ˆ í•´ì œ 시간:'; $lang['js']['willexpire'] = 'ìž ì‹œ 후 편집 ìž ê¸ˆì´ í•´ì œë©ë‹ˆë‹¤.\n편집 충ëŒì„ í”¼í•˜ë ¤ë©´ 미리 보기를 눌러 ìž ê¸ˆ ì‹œê°„ì„ ë‹¤ì‹œ ì„¤ì •í•˜ì„¸ìš”.'; @@ -205,7 +205,7 @@ $lang['created'] = '만듦'; $lang['restored'] = 'ì´ì „ íŒìœ¼ë¡œ ë˜ëŒë¦¼ (%s)'; $lang['external_edit'] = '바깥 편집'; $lang['summary'] = '편집 요약'; -$lang['noflash'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe 플래시 플러그ì¸</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.'; +$lang['noflash'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 플러그ì¸</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.'; $lang['download'] = 'ì¡°ê° ë‹¤ìš´ë¡œë“œ'; $lang['tools'] = 'ë„구'; $lang['user_tools'] = 'ì‚¬ìš©ìž ë„구'; @@ -286,7 +286,7 @@ $lang['i_enableacl'] = 'ACL 활성화 (권장)'; $lang['i_superuser'] = 'ìŠˆí¼ ì‚¬ìš©ìž'; $lang['i_problems'] = '설치 관리ìžê°€ ì•„ëž˜ì— ë‚˜ì™€ 있는 몇 가지 ë¬¸ì œë¥¼ 찾았습니다. ë¬¸ì œë¥¼ 해결하지 ì „ê¹Œì§€ 설치를 계ì†í• 수 없습니다.'; $lang['i_modified'] = '보안 ìƒì˜ ì´ìœ ë¡œ ì´ ìŠ¤í¬ë¦½íŠ¸ëŠ” ìˆ˜ì •ë˜ì§€ ì•Šì€ ìƒˆ ë„ì¿ ìœ„í‚¤ 설치ì—서만 ë™ìž‘ë©ë‹ˆë‹¤. -다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ì¡°í•´ì„œ 설치하세요.'; + 다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ì¡°í•´ì„œ 설치하세요.'; $lang['i_funcna'] = '<code>%s</code> PHP 함수를 ì‚¬ìš©í• ìˆ˜ 없습니다. 호스트 ì œê³µìžê°€ ì–´ë–¤ ì´ìœ ì—ì„œì¸ì§€ 막아 놓았ì„지 모릅니다.'; $lang['i_phpver'] = 'PHP <code>%s</code> ë²„ì „ì€ í•„ìš”í•œ <code>%s</code> ë²„ì „ë³´ë‹¤ 오래ë˜ì—ˆìŠµë‹ˆë‹¤. PHP를 ì—…ê·¸ë ˆì´ë“œí• 필요가 있습니다.'; $lang['i_mbfuncoverload'] = 'ë„ì¿ ìœ„í‚¤ë¥¼ ì‹¤í–‰í•˜ë ¤ë©´ mbstring.func_overload를 php.iniì—ì„œ 비활성화해야 합니다.'; @@ -296,9 +296,9 @@ $lang['i_writeerr'] = '<code>%s</code>(ì„)를 만들 수 없습니 $lang['i_badhash'] = 'dokuwiki.php를 ì¸ì‹í• 수 없거나 ì›ë³¸ 파ì¼ì´ 아닙니다 (í•´ì‹œ=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - 잘못ë˜ì—ˆê±°ë‚˜ 빈 값입니다'; $lang['i_success'] = '환경 ì„¤ì •ì´ ì„±ê³µì 으로 ë났습니다. 지금 install.php를 ì§€ì›Œë„ ìƒê´€ì—†ìŠµë‹ˆë‹¤. -<a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>ë¡œ 들어가세요.'; + <a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>ë¡œ 들어가세요.'; $lang['i_failure'] = '환경 ì„¤ì • 파ì¼ì— 쓰는 ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. -<a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ ë¬¸ì œë¥¼ 해결해야 합니다.'; + <a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ ë¬¸ì œë¥¼ 해결해야 합니다.'; $lang['i_policy'] = '초기 ACL ì •ì±…'; $lang['i_pol0'] = '열린 위키 (누구나 ì½ê¸°, 쓰기, 올리기가 가능합니다)'; $lang['i_pol1'] = '공개 위키 (누구나 ì½ì„ 수 있지만, 등ë¡ëœ 사용ìžë§Œ 쓰기와 올리기가 가능합니다)'; @@ -333,7 +333,7 @@ $lang['media_files'] = '%sì— ìžˆëŠ” 파ì¼'; $lang['media_upload'] = '%sì— ì˜¬ë¦¬ê¸°'; $lang['media_search'] = '%sì—ì„œ 검색'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s (%sì— ìžˆìŒ)'; +$lang['media_viewold'] = '%2$sì— ìžˆëŠ” %1$s'; $lang['media_edit'] = '%s 편집'; $lang['media_history'] = '%sì˜ ì—사'; $lang['media_meta_edited'] = '메타ë°ì´í„° 편집ë¨'; diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt index 6aa1c89af..bb834277f 100644 --- a/inc/lang/ko/searchpage.txt +++ b/inc/lang/ko/searchpage.txt @@ -2,4 +2,4 @@ 아래ì—ì„œ 검색 결과를 ì°¾ì„ ìˆ˜ 있습니다. @CREATEPAGEINFO@ -===== ê²°ê³¼ ===== +===== ê²°ê³¼ ===== \ No newline at end of file diff --git a/inc/lang/ko/updateprofile.txt b/inc/lang/ko/updateprofile.txt index 055272e9d..0ddea30b0 100644 --- a/inc/lang/ko/updateprofile.txt +++ b/inc/lang/ko/updateprofile.txt @@ -1,3 +1,3 @@ -====== ê³„ì • 프로필 바꾸기 ====== +====== ê³„ì • 프로필 ì—…ë°ì´íŠ¸ ====== ë°”ê¾¸ê³ ì‹¶ì€ í•ëª©ì„ ìž…ë ¥í•˜ì„¸ìš”. ì‚¬ìš©ìž ì´ë¦„ì€ ë°”ê¿€ 수 없습니다. \ No newline at end of file diff --git a/lib/plugins/authplain/lang/ko/lang.php b/lib/plugins/authplain/lang/ko/lang.php index de5a7c02f..50669822e 100644 --- a/lib/plugins/authplain/lang/ko/lang.php +++ b/lib/plugins/authplain/lang/ko/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Myeongjin <aranet100@gmail.com> */ -$lang['userexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; +$lang['userexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; +$lang['usernotexists'] = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.'; +$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤'; diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt index 42240e3d7..b05264a64 100644 --- a/lib/plugins/config/lang/ko/intro.txt +++ b/lib/plugins/config/lang/ko/intro.txt @@ -1,7 +1,7 @@ ====== 환경 ì„¤ì • ê´€ë¦¬ìž ====== -ë„ì¿ ìœ„í‚¤ë¥¼ ì„¤ì¹˜í• ë•Œ ì„¤ì •ì„ ë°”ê¾¸ë ¤ë©´ ì´ íŽ˜ì´ì§€ë¥¼ 사용하세요. 개별 ì„¤ì •ì— ëŒ€í•œ ë„움ë§ì€ [[doku>ko:config]]를 ì°¸ê³ í•˜ì„¸ìš”. ì´ í”ŒëŸ¬ê·¸ì¸ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ [[doku>ko:plugin:config]]를 ì°¸ê³ í•˜ì„¸ìš”. +ì„¤ì¹˜ëœ ë„ì¿ ìœ„í‚¤ì˜ ì„¤ì •ì„ ì œì–´í•˜ë ¤ë©´ ì´ íŽ˜ì´ì§€ë¥¼ 사용하세요. 개별 ì„¤ì •ì— ëŒ€í•œ ë„움ë§ì€ [[doku>ko:config]]를 참조하세요. ì´ í”ŒëŸ¬ê·¸ì¸ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ [[doku>ko:plugin:config]]를 참조하세요. -ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ì—ì„œ 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ìˆ˜í•œ 설치를 위해 로컬로 ì„¤ì •ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다. +ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ìœ¼ë¡œ 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ì • ì„¤ì¹˜ì— ëŒ€í•´ 로컬로 ì„¤ì •ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다. -ì´ íŽ˜ì´ì§€ë¥¼ ë– ë‚˜ê¸° ì „ì— **ì €ìž¥** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”. +ì´ íŽ˜ì´ì§€ë¥¼ ë– ë‚˜ê¸° ì „ì— **ì €ìž¥** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”. \ No newline at end of file diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 0cdaca90d..85326241b 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Korean language file - * - * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author jk Lee * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> @@ -11,163 +11,164 @@ * @author Myeongjin <aranet100@gmail.com> */ $lang['menu'] = '환경 ì„¤ì •'; -$lang['error'] = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다. ë°”ë€œì„ ê²€í† í•˜ê³ í™•ì¸ì„ 누르세요. -<br />ìž˜ëª»ëœ ê°’ì€ ë¹¨ê°„ ì„ ìœ¼ë¡œ 둘러싸여 있습니다.'; +$lang['error'] = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다, ë°”ë€œì„ ê²€í† í•˜ê³ ë‹¤ì‹œ ì œì¶œí•˜ì„¸ìš”. + <br />ìž˜ëª»ëœ ê°’ì€ ë¹¨ê°„ ì„ ìœ¼ë¡œ 둘러싸여 보여집니다.'; $lang['updated'] = 'ì„¤ì •ì´ ì„±ê³µì 으로 바뀌었습니다.'; -$lang['nochoice'] = '(다른 ì„ íƒì´ 불가능합니다)'; -$lang['locked'] = '환경 ì„¤ì • 파ì¼ì„ 바꿀 수 없습니다. ì˜ë„í•œ í–‰ë™ì´ 아니ë¼ë©´,<br /> -íŒŒì¼ ì´ë¦„ê³¼ ê¶Œí•œì´ ë§žëŠ”ì§€ 확ì¸í•˜ì„¸ìš”.'; -$lang['danger'] = '위험: ì´ ì˜µì…˜ì„ ìž˜ëª» 바꾸면 환경 ì„¤ì • 메뉴를 ì‚¬ìš©í• ìˆ˜ ì—†ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; -$lang['warning'] = 'ê²½ê³ : ì´ ì˜µì…˜ì„ ìž˜ëª» 바꾸면 잘못 ë™ìž‘í• ìˆ˜ 있습니다.'; -$lang['security'] = '보안 ê²½ê³ : ì´ ì˜µì…˜ì€ ë³´ì•ˆì— ìœ„í—˜ì´ ìžˆì„ ìˆ˜ 있습니다.'; +$lang['nochoice'] = '(다른 ì„ íƒì€ í• ìˆ˜ 없습니다)'; +$lang['locked'] = 'ì„¤ì • 파ì¼ì„ 바꿀 수 없습니다, ì˜ë„하지 않았다면, <br /> + 로컬 ì„¤ì • íŒŒì¼ ì´ë¦„ê³¼ ê¶Œí•œì´ ë§žëŠ”ì§€ 확ì¸í•˜ì„¸ìš”.'; +$lang['danger'] = '위험: ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ 위키와 환경 ì„¤ì • ë©”ë‰´ì— ì ‘ê·¼í• ìˆ˜ ì—†ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; +$lang['warning'] = 'ê²½ê³ : ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ ì˜ë„하지 않는 ë™ìž‘ì„ ì¼ìœ¼í‚¬ 수 있습니다.'; +$lang['security'] = '보안 ê²½ê³ : ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ 보안 ìœ„í—˜ì´ ìžˆì„ ìˆ˜ 있습니다.'; $lang['_configuration_manager'] = '환경 ì„¤ì • 관리ìž'; -$lang['_header_dokuwiki'] = 'ë„ì¿ ìœ„í‚¤ ì„¤ì •'; -$lang['_header_plugin'] = 'í”ŒëŸ¬ê·¸ì¸ ì„¤ì •'; -$lang['_header_template'] = '템플릿 ì„¤ì •'; +$lang['_header_dokuwiki'] = 'ë„ì¿ ìœ„í‚¤'; +$lang['_header_plugin'] = '플러그ì¸'; +$lang['_header_template'] = '템플릿'; $lang['_header_undefined'] = 'ì •ì˜ë˜ì§€ ì•Šì€ ì„¤ì •'; -$lang['_basic'] = '기본 ì„¤ì •'; -$lang['_display'] = '화면 표시 ì„¤ì •'; -$lang['_authentication'] = 'ì¸ì¦ ì„¤ì •'; -$lang['_anti_spam'] = '스팸 방지 ì„¤ì •'; -$lang['_editing'] = '편집 ì„¤ì •'; -$lang['_links'] = 'ë§í¬ ì„¤ì •'; -$lang['_media'] = '미디어 ì„¤ì •'; -$lang['_notifications'] = '알림 ì„¤ì •'; -$lang['_syndication'] = 'ì‹ ë””ì¼€ì´ì…˜ ì„¤ì •'; -$lang['_advanced'] = 'ê³ ê¸‰ ì„¤ì •'; -$lang['_network'] = 'ë„¤íŠ¸ì›Œí¬ ì„¤ì •'; -$lang['_msg_setting_undefined'] = 'ì„¤ì •ëœ ë©”íƒ€ë°ì´í„°ê°€ 없습니다.'; -$lang['_msg_setting_no_class'] = 'ì„¤ì •ëœ í´ëž˜ìŠ¤ê°€ 없습니다.'; +$lang['_basic'] = '기본'; +$lang['_display'] = 'ë³´ì´ê¸°'; +$lang['_authentication'] = 'ì¸ì¦'; +$lang['_anti_spam'] = '스팸 방지'; +$lang['_editing'] = '편집'; +$lang['_links'] = 'ë§í¬'; +$lang['_media'] = '미디어'; +$lang['_notifications'] = '알림'; +$lang['_syndication'] = 'ì‹ ë””ì¼€ì´ì…˜ (RSS)'; +$lang['_advanced'] = 'ê³ ê¸‰'; +$lang['_network'] = '네트워í¬'; +$lang['_msg_setting_undefined'] = 'ì„¤ì •ì— ë©”íƒ€ë°ì´í„°ê°€ 없습니다.'; +$lang['_msg_setting_no_class'] = 'ì„¤ì •ì— í´ëž˜ìŠ¤ê°€ 없습니다.'; $lang['_msg_setting_no_default'] = 'ê¸°ë³¸ê°’ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['title'] = '위키 ì œëª© (위키 ì´ë¦„)'; -$lang['start'] = 'ê° ì´ë¦„공간ì—ì„œ ì‚¬ìš©í• ì‹œìž‘ 문서 ì´ë¦„'; +$lang['start'] = 'ê° ì´ë¦„ê³µê°„ì— ì‹œìž‘ì 으로 ì‚¬ìš©í• ë¬¸ì„œ ì´ë¦„'; $lang['lang'] = 'ì¸í„°íŽ˜ì´ìŠ¤ 언어'; $lang['template'] = '템플릿 (위키 ë””ìžì¸)'; -$lang['tagline'] = '태그 ë¼ì¸ (í…œí”Œë¦¿ì´ ì§€ì›í• ë•Œì— í•œí•¨)'; -$lang['sidebar'] = '사ì´ë“œë°” 문서 ì´ë¦„ (í…œí”Œë¦¿ì´ ì§€ì›í• ë•Œì— í•œí•¨), 비워ë‘ë©´ 사ì´ë“œë°”를 비활성화'; -$lang['license'] = 'ë‚´ìš©ì— ì–´ë–¤ ë¼ì´ì„ 스를 ì ìš©í•˜ê² ìŠµë‹ˆê¹Œ?'; -$lang['savedir'] = 'ë°ì´í„° ì €ìž¥ ë””ë ‰í„°ë¦¬'; -$lang['basedir'] = '서버 경로 (예를 들어 <code>/dokuwiki/</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비우세요.'; -$lang['baseurl'] = '서버 URL (예를 들어 <code>http://www.yourserver.com</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비우세요.'; -$lang['cookiedir'] = 'ì¿ í‚¤ 위치. 비워ë‘ë©´ 기본 URL 위치로 ì§€ì •ë©ë‹ˆë‹¤.'; +$lang['tagline'] = '태그ë¼ì¸ (í…œí”Œë¦¿ì´ ì§€ì›í• 경우)'; +$lang['sidebar'] = '사ì´ë“œë°” 문서 ì´ë¦„ (í…œí”Œë¦¿ì´ ì§€ì›í• 경우), 필드를 비우면 사ì´ë“œë°”를 비활성화'; +$lang['license'] = 'ë‚´ìš©ì„ ë°°í¬í• ë•Œ ì–´ë–¤ ë¼ì´ì„ ìŠ¤ì— ë”°ë¼ì•¼ 합니까?'; +$lang['savedir'] = 'ë°ì´í„°ë¥¼ ì €ìž¥í• ë””ë ‰í„°ë¦¬'; +$lang['basedir'] = '서버 경로 (예 <code>/dokuwiki/</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비워 ë‘세요.'; +$lang['baseurl'] = '서버 URL (예 <code>http://www.yourserver.com</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비워 ë‘세요.'; +$lang['cookiedir'] = 'ì¿ í‚¤ 경로. 기본 URL 위치로 ì§€ì •í•˜ë ¤ë©´ 비워 ë‘세요.'; $lang['dmode'] = 'ë””ë ‰í„°ë¦¬ 만들기 모드'; $lang['fmode'] = 'íŒŒì¼ ë§Œë“¤ê¸° 모드'; -$lang['allowdebug'] = '디버그 허용 <b>필요하지 않으면 비활성화하세요!</b>'; -$lang['recent'] = '최근 ë°”ë€ ë¬¸ì„œë‹¹ í•ëª© 수'; -$lang['recent_days'] = '최근 ë°”ë€ ë¬¸ì„œ 기준 시간 (ì¼)'; -$lang['breadcrumbs'] = '위치 "추ì " 수. 0으로 ì„¤ì •í•˜ë©´ 비활성화합니다.'; -$lang['youarehere'] = '계층형 위치 추ì (ë‹¤ìŒ ìœ„ì˜ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ê²Œ ë©ë‹ˆë‹¤)'; -$lang['fullpath'] = '문서 í•˜ë‹¨ì— ì „ì²´ 경로 보여주기'; -$lang['typography'] = '기호 대체'; -$lang['dformat'] = 'ë‚ ì§œ í˜•ì‹ (PHP <a href="http://www.php.net/strftime">strftime</a> 기능 ì°¸ê³ )'; +$lang['allowdebug'] = '디버그 허용. <b>필요하지 않으면 비활성화하세요!</b>'; +$lang['recent'] = '최근 바뀜ì—ì„œ 문서당 í•ëª© 수'; +$lang['recent_days'] = '최근 ë°”ë€œì„ ìœ ì§€í• ê¸°í•œ (ì¼)'; +$lang['breadcrumbs'] = 'ì´ë™ 경로 "추ì " 수. ë¹„í™œì„±í™”í•˜ë ¤ë©´ 0으로 ì„¤ì •í•˜ì„¸ìš”.'; +$lang['youarehere'] = '계층ì ì´ë™ 경로 사용 (다ìŒì— 위 ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ê¸°ë¥¼ ì›í• ê²ë‹ˆë‹¤)'; +$lang['fullpath'] = 'ë°”ë‹¥ê¸€ì— ë¬¸ì„œì˜ ì „ì²´ 경로 ë°ížˆê¸°'; +$lang['typography'] = '타ì´í¬ê·¸ëž˜í”¼ 대체'; +$lang['dformat'] = 'ë‚ ì§œ í˜•ì‹ (PHPì˜ <a href="http://www.php.net/strftime">strftime</a> 함수 ì°¸ê³ )'; $lang['signature'] = '편집기ì—ì„œ 서명 ë²„íŠ¼ì„ ëˆ„ë¥¼ ë•Œ ë„£ì„ ë‚´ìš©'; -$lang['showuseras'] = 'ë§ˆì§€ë§‰ì— ë¬¸ì„œë¥¼ 편집한 사용ìžë¥¼ 보여줄지 여부'; -$lang['toptoclevel'] = '목차 최ìƒìœ„ í•ëª©'; -$lang['tocminheads'] = '목차 표시 여부를 ê²°ì •í• ìµœì†Œí•œì˜ ë¬¸ë‹¨ ì œëª© í•ëª©ì˜ 수'; -$lang['maxtoclevel'] = '목차 최대 단계'; -$lang['maxseclevel'] = '문단 최대 편집 단계'; +$lang['showuseras'] = '문서를 마지막으로 편집한 사용ìžë¥¼ 보여줄지 여부'; +$lang['toptoclevel'] = 'ëª©ì°¨ì˜ ìµœìƒìœ„ 단계'; +$lang['tocminheads'] = '목차를 ë„£ì„ ì—¬ë¶€ë¥¼ ê²°ì •í• ìµœì†Œ 문단 수'; +$lang['maxtoclevel'] = 'ëª©ì°¨ì˜ ìµœëŒ€ 단계'; +$lang['maxseclevel'] = 'ë¬¸ë‹¨ì˜ ìµœëŒ€ 편집 단계'; $lang['camelcase'] = 'ë§í¬ì— CamelCase 사용'; $lang['deaccent'] = '문서 ì´ë¦„ì„ ì§€ìš°ëŠ” 방법'; -$lang['useheading'] = '문서 ì´ë¦„으로 첫 문단 ì œëª© 사용'; -$lang['sneaky_index'] = '기본ì 으로 ë„ì¿ ìœ„í‚¤ëŠ” ìƒ‰ì¸ ëª©ë¡ì— ëª¨ë“ ì´ë¦„ê³µê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. -ì´ ì˜µì…˜ì„ ì„¤ì •í•˜ë©´ 사용ìžê°€ ì½ê¸° ê¶Œí•œì„ ê°€ì§€ê³ ìžˆì§€ ì•Šì€ ì´ë¦„ê³µê°„ì€ ë³´ì—¬ì£¼ì§€ 않습니다. ì ‘ê·¼ 가능한 하위 ì´ë¦„ê³µê°„ì„ ë³´ì´ì§€ 않게 ì„¤ì •í•˜ë©´ ìžë™ìœ¼ë¡œ ì„¤ì •ë©ë‹ˆë‹¤. íŠ¹ì • ACL ì„¤ì •ì€ ìƒ‰ì¸ ì‚¬ìš©ì´ ë¶ˆê°€ëŠ¥í•˜ê²Œ í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; -$lang['hidepages'] = '검색, 사ì´íŠ¸ë§µê³¼ 기타 ìžë™ 색ì¸ì—ì„œ ì •ê·œ 표현ì‹ê³¼ ì¼ì¹˜í•˜ëŠ” 문서 숨기기'; +$lang['useheading'] = '문서 ì´ë¦„ì„ ì²« 문단 ì œëª©ìœ¼ë¡œ 사용'; +$lang['sneaky_index'] = '기본ì 으로, ë„ì¿ ìœ„í‚¤ëŠ” 사ì´íŠ¸ë§µì— ëª¨ë“ ì´ë¦„ê³µê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ 사용ìžê°€ ì½ê¸° ê¶Œí•œì´ ì—†ëŠ” ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ê²Œ ë©ë‹ˆë‹¤. íŠ¹ì • ACL ì„¤ì •ìœ¼ë¡œ 색ì¸ì„ ì‚¬ìš©í• ìˆ˜ 없게 í• ìˆ˜ 있는 ì ‘ê·¼í• ìˆ˜ 있는 하위 ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ë©´ ì„¤ì •ë©ë‹ˆë‹¤.'; +$lang['hidepages'] = '검색, 사ì´íŠ¸ë§µ ë° ë‹¤ë¥¸ ìžë™ 색ì¸ì—ì„œ ì´ ì •ê·œ 표현ì‹ê³¼ ì¼ì¹˜í•˜ëŠ” 문서 숨기기'; $lang['useacl'] = 'ì ‘ê·¼ ì œì–´ ëª©ë¡ (ACL) 사용'; -$lang['autopasswd'] = 'ìžë™ìœ¼ë¡œ 만들어진 비밀번호'; -$lang['authtype'] = 'ì¸ì¦ ë°±-엔드'; +$lang['autopasswd'] = 'ìžë™ ìƒì„± 비밀번호'; +$lang['authtype'] = 'ì¸ì¦ 백엔드'; $lang['passcrypt'] = '비밀번호 암호화 방법'; -$lang['defaultgroup'] = '기본 그룹, ëª¨ë“ ìƒˆ 사용ìžëŠ” ì´ ê·¸ë£¹ì— ì†í•©ë‹ˆë‹¤'; -$lang['superuser'] = 'ìŠˆí¼ ìœ ì € - ACL ì„¤ì •ê³¼ ìƒê´€ì—†ì´ ëª¨ë“ ë¬¸ì„œì™€ ê¸°ëŠ¥ì— ëŒ€í•œ ì „ì²´ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ 그룹ì´ë‚˜ ì‚¬ìš©ìž ë˜ëŠ” 사용ìž1,@그룹1,사용ìž2 쉼표로 구분한 목ë¡'; -$lang['manager'] = 'ê´€ë¦¬ìž - 관리 ê¸°ëŠ¥ì„ ì‚¬ìš©í• ìˆ˜ 있는 그룹ì´ë‚˜ ì‚¬ìš©ìž ë˜ëŠ” 사용ìž1,@그룹1,사용ìž2 쉼표로 구분한 목ë¡'; -$lang['profileconfirm'] = 'ê°œì¸ ì •ë³´ë¥¼ 바꿀 ë•Œ 비밀번호 다시 확ì¸'; -$lang['rememberme'] = 'í•ìƒ ë¡œê·¸ì¸ ì •ë³´ ì €ìž¥ 허용 (기억하기)'; -$lang['disableactions'] = 'ë„ì¿ ìœ„í‚¤ í™œë™ ë¹„í™œì„±í™”'; +$lang['defaultgroup'] = '기본 그룹, ëª¨ë“ ìƒˆ 사용ìžëŠ” ì´ ê·¸ë£¹ì— ì†í•˜ê²Œ ë©ë‹ˆë‹¤'; +$lang['superuser'] = '슈í¼ìœ ì € - ACL ì„¤ì •ê³¼ ìƒê´€ì—†ì´ ëª¨ë“ ë¬¸ì„œì™€ ê¸°ëŠ¥ì— ì™„ì „ížˆ ì ‘ê·¼í• ìˆ˜ 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2'; +$lang['manager'] = 'ê´€ë¦¬ìž - íŠ¹ì • 관리 ê¸°ëŠ¥ì— ì ‘ê·¼í• ìˆ˜ 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2'; +$lang['profileconfirm'] = 'í”„ë¡œí•„ì„ ë°”ê¿€ ë•Œ 비밀번호로 확ì¸'; +$lang['rememberme'] = 'ì˜êµ¬ì 으로 ë¡œê·¸ì¸ ì¿ í‚¤ 허용 (기억하기)'; +$lang['disableactions'] = 'ë„ì¿ ìœ„í‚¤ ë™ìž‘ 비활성화'; $lang['disableactions_check'] = '검사'; -$lang['disableactions_subscription'] = 'êµ¬ë… ì‹ ì²/êµ¬ë… ì·¨ì†Œ'; +$lang['disableactions_subscription'] = '구ë…/êµ¬ë… ì·¨ì†Œ'; $lang['disableactions_wikicode'] = 'ì›ë³¸ 보기/ì›ë³¸ 내보내기'; -$lang['disableactions_other'] = '다른 í™œë™ (쉼표로 구분)'; -$lang['auth_security_timeout'] = 'ì¸ì¦ 보안 초과 시간 (ì´ˆ)'; -$lang['securecookie'] = 'HTTPSë¡œ 보내진 ì¿ í‚¤ëŠ” HTTPSì—만 ì ìš© í• ê¹Œìš”? ìœ„í‚¤ì˜ ë¡œê·¸ì¸ íŽ˜ì´ì§€ë§Œ SSLë¡œ ì•”í˜¸í™”í•˜ê³ ìœ„í‚¤ 문서는 ê·¸ë ‡ì§€ ì•Šì€ ê²½ìš° 비활성화 합니다.'; -$lang['remote'] = 'ì›ê²© API를 활성화 합니다. ì´ í•ëª©ì„ 허용하면 XML-RPC ë° ê¸°íƒ€ ë©”ì»¤ë‹ˆì¦˜ì„ í†µí•´ 다른 어플리케ì´ì…˜ìœ¼ë¡œ ì ‘ê·¼ 가능합니다.'; -$lang['remoteuser'] = 'ì´ í•ëª©ì— ìž…ë ¥ëœ ì‰¼í‘œë¡œ ë‚˜ëˆ ì§„ 그룹ì´ë‚˜ 사용ìžì—게 ì›ê²© API ì ‘ê·¼ì„ ì œí•œí•©ë‹ˆë‹¤. 빈칸으로 ë‘ë©´ 모ë‘ì—게 허용합니다.'; -$lang['usewordblock'] = '금지 단어를 사용해 스팸 막기'; +$lang['disableactions_profile_delete'] = 'ìžì‹ ì˜ ê³„ì • ì‚ì œ'; +$lang['disableactions_other'] = '다른 ë™ìž‘ (쉼표로 구분)'; +$lang['disableactions_rss'] = 'XML ì‹ ë””ì¼€ì´ì…˜ (RSS)'; +$lang['auth_security_timeout'] = 'ì¸ì¦ 보안 시간 초과 (ì´ˆ)'; +$lang['securecookie'] = 'HTTPS를 통해 ì„¤ì •ëœ ì¿ í‚¤ëŠ” HTTPS를 통해서만 ë³´ë‚´ì ¸ì•¼ 합니까? 위키 로그ì¸ì—만 SSLë¡œ ë³´í˜¸í•˜ê³ ìœ„í‚¤ë¥¼ 둘러보는 것ì—는 보호하지 않게 í•˜ë ¤ë©´ ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”.'; +$lang['remote'] = 'ì›ê²© API 시스템 활성화. 다른 어플리케ì´ì…˜ì´ XML-RPC ë˜ëŠ” 다른 ë©”ì»¤ë‹ˆì¦˜ì„ í†µí•´ ìœ„í‚¤ì— ì ‘ê·¼í• ìˆ˜ 있습니다.'; +$lang['remoteuser'] = 'ì—¬ê¸°ì— ìž…ë ¥í•œ 쉼표로 êµ¬ë¶„ëœ ê·¸ë£¹ ë˜ëŠ” 사용ìžì—게 ì›ê²© API ì ‘ê·¼ì„ ì œí•œí•©ë‹ˆë‹¤. 모ë‘ì—게 ì ‘ê·¼ ê¶Œí•œì„ ì£¼ë ¤ë©´ 비워 ë‘세요.'; +$lang['usewordblock'] = 'ë‚±ë§ ëª©ë¡ì„ 바탕으로 스팸 막기'; $lang['relnofollow'] = '바깥 ë§í¬ì— rel="nofollow" 사용'; -$lang['indexdelay'] = 'ìƒ‰ì¸ ì—°ê¸° 시간 (ì´ˆ)'; +$lang['indexdelay'] = 'ìƒ‰ì¸ ì „ 지연 시간 (ì´ˆ)'; $lang['mailguard'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 알아볼 수 없게 하기'; $lang['iexssprotect'] = '올린 파ì¼ì˜ 악성 ìžë°”스í¬ë¦½íŠ¸, HTML 코드 가능성 여부를 검사'; -$lang['usedraft'] = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 문서 초안 ì €ìž¥'; -$lang['htmlok'] = 'HTML 내장 허용'; -$lang['phpok'] = 'PHP 내장 허용'; -$lang['locktime'] = '최대 íŒŒì¼ ìž ê¸ˆ 시간(ì´ˆ)'; -$lang['cachetime'] = '최대 ìºì‹œ ìƒì¡´ 시간 (ì´ˆ)'; +$lang['usedraft'] = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 초안 ì €ìž¥'; +$lang['htmlok'] = 'HTML í¬í•¨ 허용'; +$lang['phpok'] = 'PHP í¬í•¨ 허용'; +$lang['locktime'] = 'íŒŒì¼ ìž ê·¸ê¸°ì— ëŒ€í•œ 최대 시간 (ì´ˆ)'; +$lang['cachetime'] = 'ìºì‹œì— 대한 최대 시간 (ì´ˆ)'; $lang['target____wiki'] = '안쪽 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____interwiki'] = 'ì¸í„°ìœ„키 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____extern'] = '바깥 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____media'] = '미디어 ë§í¬ì— 대한 타겟 ì°½'; -$lang['target____windows'] = 'ì°½ ë§í¬ì— 대한 타겟 ì°½'; -$lang['mediarevisions'] = '미디어 íŒ ê´€ë¦¬ë¥¼ ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ?'; -$lang['refcheck'] = '미디어 파ì¼ì„ ì‚ì œí•˜ê¸° ì „ì— ì‚¬ìš©í•˜ê³ ìžˆëŠ”ì§€ 검사'; +$lang['target____windows'] = 'Windows ë§í¬ì— 대한 타겟 ì°½'; +$lang['mediarevisions'] = '미디어 íŒì„ í™œì„±í™”í•˜ê² ìŠµë‹ˆê¹Œ?'; +$lang['refcheck'] = '미디어 파ì¼ì„ ì‚ì œí•˜ê¸° ì „ì— ì•„ì§ ì‚¬ìš©í•˜ê³ ìžˆëŠ”ì§€ 검사'; $lang['gdlib'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ ë²„ì „'; -$lang['im_convert'] = 'ImageMagick 변환 ë„구 위치'; +$lang['im_convert'] = 'ImageMagickì˜ ë³€í™˜ ë„êµ¬ì˜ ê²½ë¡œ'; $lang['jpg_quality'] = 'JPG 압축 품질 (0-100)'; -$lang['fetchsize'] = 'fetch.phpê°€ 바깥ì—ì„œ ë‹¤ìš´ë¡œë“œí• ìˆ˜ë„ ìžˆëŠ” 최대 í¬ê¸° (ë°”ì´íŠ¸)'; -$lang['subscribers'] = '사용ìžê°€ ì´ë©”ì¼ë¡œ 문서 ë°”ë€œì— êµ¬ë…하ë„ë¡ í—ˆìš©'; -$lang['subscribe_time'] = 'êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); recent_daysì—ì„œ ì„¤ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.'; +$lang['fetchsize'] = 'fetch.phpê°€ 바깥 URLì—ì„œ ë‹¤ìš´ë¡œë“œí• ìˆ˜ 있는 최대 í¬ê¸° (ë°”ì´íŠ¸), 예를 들어 바깥 ê·¸ë¦¼ì„ ìºì‹œí•˜ê³ í¬ê¸° ì¡°ì ˆí• ë•Œ.'; +$lang['subscribers'] = '사용ìžê°€ ì´ë©”ì¼ë¡œ 문서 ë°”ë€œì„ êµ¬ë…하는 ê²ƒì„ í—ˆìš©'; +$lang['subscribe_time'] = 'êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); recent_daysì— ì§€ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.'; $lang['notify'] = 'í•ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 바뀜 ì•Œë¦¼ì„ ë³´ëƒ„'; -$lang['registernotify'] = 'í•ìƒ 새 사용ìží•œí…Œ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ ì •ë³´ë¥¼ 보냄'; -$lang['mailfrom'] = 'ìžë™ìœ¼ë¡œ 보내지는 ë©”ì¼ ë°œì‹ ìž'; -$lang['mailprefix'] = 'ìžë™ìœ¼ë¡œ 보내지는 ë©”ì¼ì˜ ì œëª© ë§ë¨¸ë¦¬ ë‚´ìš©. ë¹„ì› ì„ ê²½ìš° 위키 ì œëª© 사용'; -$lang['htmlmail'] = 'ìš©ëŸ‰ì€ ì¡°ê¸ˆ ë” í¬ì§€ë§Œ 보기 ì¢‹ì€ HTML 태그가 í¬í•¨ëœ ë©”ì¼ì„ 보냅니다. í…ìŠ¤íŠ¸ë§Œì˜ ë©”ì¼ì„ ë³´ë‚´ë ¤ë©´ 비활성화하세요.'; -$lang['sitemap'] = '구글 사ì´íŠ¸ë§µ ìƒì„± ë‚ ì§œ 빈ë„. 0ì¼ ê²½ìš° 비활성화합니다'; -$lang['rss_type'] = 'XML 피드 타입'; +$lang['registernotify'] = 'í•ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 새로 등ë¡í•œ 사용ìžì˜ ì •ë³´ë¥¼ 보냄'; +$lang['mailfrom'] = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— ì‚¬ìš©í• ë³´ë‚´ëŠ” 사람 ì´ë©”ì¼ ì£¼ì†Œ'; +$lang['mailprefix'] = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— ì‚¬ìš©í• ì´ë©”ì¼ ì œëª© ì ‘ë‘ì–´. 위키 ì œëª©ì„ ì‚¬ìš©í•˜ë ¤ë©´ 비워 ë‘세요'; +$lang['htmlmail'] = '보기ì—는 ë” ì¢‹ì§€ë§Œ í¬í‚¤ê°€ 조금 ë” í° HTML 태그가 í¬í•¨ëœ ì´ë©”ì¼ì„ 보내기. ì¼ë°˜ í…스트만으로 ëœ ë©”ì¼ì„ ë³´ë‚´ë ¤ë©´ 비활성화하세요.'; +$lang['sitemap'] = 'Google 사ì´íŠ¸ë§µ ìƒì„± ë‚ ì§œ ë¹ˆë„ (ì¼). ë¹„í™œì„±í™”í•˜ë ¤ë©´ 0'; +$lang['rss_type'] = 'XML 피드 형ì‹'; $lang['rss_linkto'] = 'XML 피드 ë§í¬ ì •ë³´'; -$lang['rss_content'] = 'XML 피드 í•ëª©ì— 표시ë˜ëŠ” ë‚´ìš©ì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?'; -$lang['rss_update'] = 'XML 피드 ì—…ë°ì´íŠ¸ 주기 (ì´ˆ)'; -$lang['rss_show_summary'] = 'XML 피드 ì œëª©ì—ì„œ 요약 보여주기'; -$lang['rss_media'] = 'ì–´ë–¤ 규격으로 XML 피드를 ë°›ì•„ë³´ì‹œê² ìŠµë‹ˆê¹Œ?'; -$lang['updatecheck'] = 'ì—…ë°ì´íŠ¸ì™€ 보안 ë¬¸ì œë¥¼ ê²€ì‚¬í• ê¹Œìš”? ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ ë„ì¿ ìœ„í‚¤ë¥¼ update.dokuwiki.orgì— ì—°ê²°í•´ì•¼ 합니다.'; +$lang['rss_content'] = 'XML 피드 í•ëª©ì— 보여주는 ë‚´ìš©ì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?'; +$lang['rss_update'] = 'XML 피드 ì—…ë°ì´íŠ¸ 간격 (ì´ˆ)'; +$lang['rss_show_summary'] = 'XML í”¼ë“œì˜ ì œëª©ì—ì„œ 요악 보여주기'; +$lang['rss_media'] = 'ì–´ë–¤ 규격으로 XML í”¼ë“œì— ë°”ë€œì„ ë‚˜ì—´í•´ì•¼ 합니까?'; +$lang['updatecheck'] = 'ë°ì´íŠ¸ì™€ 보안 ê²½ê³ ë¥¼ ê²€ì‚¬í• ê¹Œìš”? ë„ì¿ ìœ„í‚¤ëŠ” ì´ ê¸°ëŠ¥ì„ ìœ„í•´ update.dokuwiki.orgì— ì—°ê²°ì´ í•„ìš”í•©ë‹ˆë‹¤.'; $lang['userewrite'] = '멋진 URL 사용'; -$lang['useslash'] = 'URLì—ì„œ ì´ë¦„ 구분ìžë¡œ 슬래시 ë¬¸ìž ì‚¬ìš©'; -$lang['sepchar'] = '문서 ì´ë¦„ 단어 구분ìž'; +$lang['useslash'] = 'URLì—ì„œ ì´ë¦„공간 구분ìžë¡œ 슬래시 사용'; +$lang['sepchar'] = '문서 ì´ë¦„ ë‚±ë§ êµ¬ë¶„ìž'; $lang['canonical'] = 'ì™„ì „í•œ canonical URL 사용'; -$lang['fnencode'] = 'ASCIIê°€ ì•„ë‹Œ íŒŒì¼ ì´ë¦„ì„ ì¸ì½”딩 하는 방법.'; -$lang['autoplural'] = 'ë§í¬ ì—°ê²°ì‹œ 복수 ì–‘ì‹ ê²€ì‚¬'; -$lang['compression'] = '첨부 íŒŒì¼ ì••ì¶• 방법 ì„ íƒ'; -$lang['gzip_output'] = 'xhml ë‚´ìš© gzip 압축 사용'; -$lang['compress'] = '최ì í™”ëœ CSS, ìžë°”스í¬ë¦½íŠ¸ ì¶œë ¥'; +$lang['fnencode'] = 'ASCIIê°€ ì•„ë‹Œ íŒŒì¼ ì´ë¦„ì„ ì¸ì½”딩하는 방법.'; +$lang['autoplural'] = 'ë§í¬ì—ì„œ 복수형 검사'; +$lang['compression'] = '첨부 파ì¼ì˜ 압축 방법'; +$lang['gzip_output'] = 'xhtmlì— ëŒ€í•´ gzip ë‚´ìš© ì¸ì½”딩 사용'; +$lang['compress'] = 'CSS ë° ìžë°”스í¬ë¦½íŠ¸ë¥¼ 압축하여 ì¶œë ¥'; $lang['cssdatauri'] = 'ê·¸ë¦¼ì´ ë Œë”ë§ë 최대 용량 í¬ê¸°ë¥¼ CSSì— ê·œì •í•´ì•¼ HTTP ìš”ì² í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ê°ì†Œì‹œí‚¬ 수 있습니다. ì´ ê¸°ìˆ ì€ IE 7 ì´í•˜ì—서는 ìž‘ë™í•˜ì§€ 않습니다! <code>400</code>ì—ì„œ <code>600</code> ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. <code>0</code>ë¡œ ì§€ì •í• ê²½ìš° 비활성화 ë©ë‹ˆë‹¤.'; -$lang['send404'] = '존재하지 않는 페ì´ì§€ì— 대해 "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" ì‘답'; +$lang['send404'] = '존재하지 않는 ë¬¸ì„œì— "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" 보내기'; $lang['broken_iua'] = 'ì„¤ì¹˜ëœ ì‹œìŠ¤í…œì—ì„œ ignore_user_abort ê¸°ëŠ¥ì— ë¬¸ì œê°€ 있습니까? ë¬¸ì œê°€ 있다면 검색 색ì¸ì´ ì •ìƒì 으로 ë™ìž‘하지 않습니다. ì´ ê¸°ëŠ¥ì´ IIS+PHP/CGIì—ì„œ ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì¡ŒìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">버그 852</a>를 ì°¸ê³ í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; $lang['xsendfile'] = '웹 서버가 ì •ì 파ì¼ì„ ì œê³µí•˜ë„ë¡ X-Sendfile í—¤ë”를 ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; -$lang['renderer_xhtml'] = '주 (xhtml) 위키 ì¶œë ¥ 처리기'; -$lang['renderer__core'] = '%s (ë„ì¿ ìœ„í‚¤ 내부)'; +$lang['renderer_xhtml'] = '주요 (xhtml) 위키 ì¶œë ¥ì— ì‚¬ìš©í• ë Œë”러'; +$lang['renderer__core'] = '%s (ë„ì¿ ìœ„í‚¤ 코어)'; $lang['renderer__plugin'] = '%s (플러그ì¸)'; $lang['dnslookups'] = 'ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ ë„ì¿ ìœ„í‚¤ê°€ 문서를 편집하는 사용ìžì˜ 호스트 네임과 ì›ê²© IP 주소를 확ì¸í•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜, DNS를 ìš´ì˜í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›ì¹˜ 않으면 비활성화하세요'; $lang['proxy____host'] = '프ë¡ì‹œ 서버 ì´ë¦„'; -$lang['proxy____port'] = '프ë¡ì‹œ 서버 í¬íŠ¸'; +$lang['proxy____port'] = '프ë¡ì‹œ í¬íŠ¸'; $lang['proxy____user'] = '프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„'; $lang['proxy____pass'] = '프ë¡ì‹œ 비밀번호'; -$lang['proxy____ssl'] = '프ë¡ì‹œ ì—°ê²°ì‹œ SSL 사용'; +$lang['proxy____ssl'] = '프ë¡ì‹œë¡œ 연결하는 ë° SSL 사용'; $lang['proxy____except'] = '프ë¡ì‹œ ì„¤ì •ì´ ë¬´ì‹œë URLì£¼ì†Œì˜ ì •ê·œ 표현ì‹'; -$lang['safemodehack'] = 'safemode hack기능 사용'; +$lang['safemodehack'] = 'safemode hack 활성화'; $lang['ftp____host'] = 'safemode hackì˜ FTP 서버'; $lang['ftp____port'] = 'safemode hackì˜ FTP í¬íŠ¸'; $lang['ftp____user'] = 'safemode hackì˜ FTP ì‚¬ìš©ìž ì´ë¦„'; $lang['ftp____pass'] = 'safemode hackì˜ FTP 비밀번호'; $lang['ftp____root'] = 'safemode hackì˜ FTP 루트 ë””ë ‰í„°ë¦¬'; $lang['license_o_'] = 'ì„ íƒí•˜ì§€ ì•ŠìŒ'; -$lang['typography_o_0'] = '사용 안함'; +$lang['typography_o_0'] = 'ì—†ìŒ'; $lang['typography_o_1'] = 'ì´ì¤‘ ì¸ìš©ë¶€í˜¸("")만 지ì›'; $lang['typography_o_2'] = 'ëª¨ë“ ê°€ëŠ¥í•œ ì¸ìš© 부호 (ë™ìž‘ 안ë ìˆ˜ë„ ìžˆìŒ)'; -$lang['userewrite_o_0'] = '사용 안함'; +$lang['userewrite_o_0'] = 'ì—†ìŒ'; $lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'ë„ì¿ ìœ„í‚¤ 내부 기능'; +$lang['userewrite_o_2'] = 'ë„ì¿ ìœ„í‚¤ 내부'; $lang['deaccent_o_0'] = 'ë„기'; $lang['deaccent_o_1'] = '악센트 ì œê±°'; -$lang['deaccent_o_2'] = 'ë¼í‹´ë¬¸ìží™”'; -$lang['gdlib_o_0'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ 사용 불가'; +$lang['deaccent_o_2'] = '로마ìží™”'; +$lang['gdlib_o_0'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì‚¬ìš©í• ìˆ˜ ì—†ìŒ'; $lang['gdlib_o_1'] = 'ë²„ì „ 1.x'; -$lang['gdlib_o_2'] = 'ìžë™ ì¸ì‹'; +$lang['gdlib_o_2'] = 'ìžë™ ê°ì§€'; $lang['rss_type_o_rss'] = 'RSS 0.91'; $lang['rss_type_o_rss1'] = 'RSS 1.0'; $lang['rss_type_o_rss2'] = 'RSS 2.0'; @@ -179,20 +180,21 @@ $lang['rss_content_o_htmldiff'] = 'HTML ì°¨ì´ ëª©ë¡ í˜•ì‹'; $lang['rss_content_o_html'] = '최대 HTML 페ì´ì§€ ë‚´ìš©'; $lang['rss_linkto_o_diff'] = 'ì°¨ì´ ë³´ê¸°'; $lang['rss_linkto_o_page'] = 'ë°”ë€ ë¬¸ì„œ 보기'; -$lang['rss_linkto_o_rev'] = 'ë°”ë€ ëª©ë¡ ë³´ê¸°'; -$lang['rss_linkto_o_current'] = '현재 문서 보기'; +$lang['rss_linkto_o_rev'] = 'íŒì˜ 목ë¡'; +$lang['rss_linkto_o_current'] = '현재 문서'; $lang['compression_o_0'] = 'ì—†ìŒ'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; -$lang['xsendfile_o_0'] = '사용 불가'; +$lang['xsendfile_o_0'] = '사용하지 ì•ŠìŒ'; $lang['xsendfile_o_1'] = '비공개 lighttpd í—¤ë” (1.5 ì´ì „ ë²„ì „)'; $lang['xsendfile_o_2'] = '표준 X-Sendfile í—¤ë”'; $lang['xsendfile_o_3'] = '비공개 Nginx X-Accel-Redirect í—¤ë”'; $lang['showuseras_o_loginname'] = 'ë¡œê·¸ì¸ ì´ë¦„'; -$lang['showuseras_o_username'] = '사용ìžì˜ ì „ì²´ ì´ë¦„'; +$lang['showuseras_o_username'] = '사용ìžì˜ 실명'; +$lang['showuseras_o_username_link'] = 'ì¸í„°ìœ„키 ì‚¬ìš©ìž ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ 실명'; $lang['showuseras_o_email'] = '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ (ë©”ì¼ ì£¼ì†Œ ì„¤ì •ì— ë”°ë¼ ì•ˆë³´ì¼ ìˆ˜ 있ìŒ)'; -$lang['showuseras_o_email_link'] = 'mailto: linkë¡œ 표현ë ì‚¬ìš©ìž ì´ë©”ì¼ ì£¼ì†Œ'; -$lang['useheading_o_0'] = '아니오'; +$lang['showuseras_o_email_link'] = 'mailto: ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ'; +$lang['useheading_o_0'] = 'ì „í˜€ ì—†ìŒ'; $lang['useheading_o_navigation'] = '둘러보기ì—만'; $lang['useheading_o_content'] = '위키 ë‚´ìš©ì—만'; $lang['useheading_o_1'] = 'í•ìƒ'; diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index df4b271b1..f99b0ab23 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -15,7 +15,9 @@ $lang['filter'] = '스팸 문서 검색'; $lang['revert'] = 'ì„ íƒí•œ 문서 ë˜ëŒë¦¬ê¸°'; $lang['reverted'] = '%s íŒì„ %s íŒìœ¼ë¡œ ë˜ëŒë¦¼'; $lang['removed'] = '%s ì œê±°ë¨'; -$lang['revstart'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì„ ì‹œìž‘í•©ë‹ˆë‹¤. 오랜 ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. 완료ë˜ê¸° ì „ì— ìŠ¤í¬ë¦½íŠ¸ 시간 초과가 ë°œìƒí•œë‹¤ë©´ ë” ìž‘ì€ ìž‘ì—…ìœ¼ë¡œ 나누어서 ë˜ëŒë¦¬ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; +$lang['revstart'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì„ ì‹œìž‘í•©ë‹ˆë‹¤. 오랜 ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. 완료ë˜ê¸° ì „ì— + 스í¬ë¦½íŠ¸ 시간 초과가 ë°œìƒí•œë‹¤ë©´ ë” ìž‘ì€ ìž‘ì—…ìœ¼ë¡œ 나누어서 + ë˜ëŒë¦¬ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; $lang['revstop'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì´ ì„±ê³µì 으로 ë났습니다.'; $lang['note1'] = 'ì°¸ê³ : 대소문ìžë¥¼ 구별해 찾습니다'; $lang['note2'] = 'ì°¸ê³ : 문서는 <i>%s</i> 스팸 단어를 í¬í•¨í•˜ì§€ ì•Šì€ ìµœì‹ íŒìœ¼ë¡œ ë˜ëŒë¦½ë‹ˆë‹¤.'; diff --git a/lib/plugins/styling/lang/ko/intro.txt b/lib/plugins/styling/lang/ko/intro.txt new file mode 100644 index 000000000..c460801b1 --- /dev/null +++ b/lib/plugins/styling/lang/ko/intro.txt @@ -0,0 +1,2 @@ +ì´ ë„구는 현재 ì„ íƒí•œ í…œí”Œë¦¿ì˜ íŠ¹ì • ìŠ¤íƒ€ì¼ ì„¤ì •ì„ ë°”ê¿€ 수 있습니다. +ëª¨ë“ ë°”ë€œì€ ë¡œì»¬ 환경 ì„¤ì • 파ì¼ì— ì €ìž¥ë˜ë©° ì•ˆì „í•˜ê²Œ ì—…ê·¸ë ˆì´ë“œë©ë‹ˆë‹¤. \ No newline at end of file diff --git a/lib/plugins/styling/lang/ko/lang.php b/lib/plugins/styling/lang/ko/lang.php new file mode 100644 index 000000000..96da76d48 --- /dev/null +++ b/lib/plugins/styling/lang/ko/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['menu'] = '템플릿 ìŠ¤íƒ€ì¼ ì„¤ì •'; +$lang['js']['loader'] = '미리 보기를 불러오는 중...<br />만약 ì´ê²ƒì´ 사ë¼ì§€ì§€ 않는다면, ë‹¹ì‹ ì€ ì‹¤ë§í•˜ê² ì£ '; +$lang['js']['popup'] = 'íŒì—…으로 열기'; +$lang['error'] = '죄송하지만 ì´ í…œí”Œë¦¿ì€ ì´ ê¸°ëŠ¥ìœ¼ë¡œ 지ì›í•˜ì§€ 않습니다.'; +$lang['btn_preview'] = '바뀜 미리 보기'; +$lang['btn_save'] = '바뀜 ì €ìž¥'; +$lang['btn_reset'] = '현재 바뀜 ìž¬ì„¤ì •'; +$lang['btn_revert'] = 'í‹€ì˜ ê¸°ë³¸ê°’ìœ¼ë¡œ 스타ì¼ì„ ë˜ëŒë¦¬ê¸°'; +$lang['__text__'] = '주요 í…스트 색'; +$lang['__background__'] = '주요 ë°°ê²½ 색'; +$lang['__text_alt__'] = '대체 í…스트 색'; +$lang['__background_alt__'] = '대체 ë°°ê²½ 색'; +$lang['__text_neu__'] = '중립 í…스트 색'; +$lang['__background_neu__'] = '중립 ë°°ê²½ 색'; +$lang['__border__'] = 'ìœ¤ê³½ì„ ìƒ‰'; +$lang['__highlight__'] = '(주로 검색 결과를 위한) ê°•ì¡° 색'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index bc76470e8..e8f846ce6 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -43,7 +43,7 @@ $lang['nonefound'] = 'ì°¾ì€ ì‚¬ìš©ìžê°€ 없습니다. ì „ì²´ 사 $lang['delete_ok'] = 'ì‚¬ìš©ìž %dëª…ì´ ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['delete_fail'] = 'ì‚¬ìš©ìž %dëª…ì„ ì‚ì œí•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; $lang['update_ok'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 성공ì 으로 바꾸었습니다'; -$lang['update_fail'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤'; +$lang['update_fail'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ ì—…ë°ì´íŠ¸í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤'; $lang['update_exists'] = 'ì‚¬ìš©ìž ì´ë¦„ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì‚¬ìš©ìž ì´ë¦„(%s)ì´ ì´ë¯¸ 존재합니다. (다른 í•ëª©ì˜ ë°”ë€œì€ ì ìš©ë©ë‹ˆë‹¤)'; $lang['start'] = '시작'; $lang['prev'] = 'ì´ì „'; diff --git a/lib/tpl/dokuwiki/lang/ko/lang.php b/lib/tpl/dokuwiki/lang/ko/lang.php new file mode 100644 index 000000000..efcb44a7f --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ko/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['__background_site__'] = '(ë‚´ìš© ìƒìž ë’¤ì˜) 매우 ë°°ê²½ 색'; +$lang['__link__'] = 'ì¼ë°˜ ë§í¬ 색'; +$lang['__existing__'] = '문서가 존재하는 ë§í¬ì˜ 색'; +$lang['__missing__'] = '문서가 존재하지 않는 ë§í¬ì˜ 색'; +$lang['__site_width__'] = 'ì „ì²´ 사ì´íŠ¸ì˜ 너비 (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë 수 있ìŒ: %, px, em, ...)'; +$lang['__sidebar_width__'] = '사ì´ë“œë°”ê°€ 있다면, ê·¸ê²ƒì˜ ë„ˆë¹„ (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë 수 있ìŒ: %, px, em, ...)'; +$lang['__tablet_width__'] = '사ì´íŠ¸ë¥¼ 태블릿 모드로 ì „í™˜í• í™”ë©´ 너비'; +$lang['__phone_width__'] = '사ì´íŠ¸ë¥¼ í° ëª¨ë“œë¡œ ì „í™˜í• í™”ë©´ 너비'; diff --git a/lib/tpl/dokuwiki/lang/ko/style.txt b/lib/tpl/dokuwiki/lang/ko/style.txt new file mode 100644 index 000000000..306f40edb --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ko/style.txt @@ -0,0 +1,4 @@ +ë¡œê³ ë¥¼ ì¡°ì •í•˜ë ¤ë©´, 간단히 미디어 관리ìžë¥¼ 사용하여 ''wiki''나 루트 ì´ë¦„공간 ì•ˆì— ''logo.png''를 올리면 +ìžë™ìœ¼ë¡œ 사용ë©ë‹ˆë‹¤. ë˜í•œ ì—¬ê¸°ì— ''favicon.ico''를 올릴 수 있습니다. 만약 닫힌 위키를 사용한다면 +ACL ì„¤ì •ì—ì„œ ''wiki'' (ë˜ëŠ” 루트) ì´ë¦„ê³µê°„ì„ ì „ì—으로 ì½ì„ 수 있ë„ë¡ ì„¤ì •í•˜ê±°ë‚˜ ë¡œê³ ë¥¼ 사용ìžê°€ +로그ì¸í•˜ì§€ 않으면 보여주지 ì•Šë„ë¡ ì„¤ì •í•˜ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤. \ No newline at end of file -- GitLab From eba74aed310c86e7714ef36a4e31c20476b7f5e6 Mon Sep 17 00:00:00 2001 From: Nicolas Friedli <nicolas@theologique.ch> Date: Thu, 30 Jul 2015 17:21:11 +0200 Subject: [PATCH 291/440] translation update --- lib/plugins/authplain/lang/fr/lang.php | 2 ++ lib/plugins/config/lang/fr/lang.php | 2 ++ lib/plugins/extension/lang/fr/lang.php | 3 +++ lib/plugins/styling/lang/fr/lang.php | 6 ++++++ lib/tpl/dokuwiki/lang/fr/lang.php | 15 +++++++++++++++ lib/tpl/dokuwiki/lang/fr/style.txt | 1 + 6 files changed, 29 insertions(+) create mode 100644 lib/tpl/dokuwiki/lang/fr/lang.php create mode 100644 lib/tpl/dokuwiki/lang/fr/style.txt diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php index 9df04bba6..362e03bff 100644 --- a/lib/plugins/authplain/lang/fr/lang.php +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -4,6 +4,8 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> */ $lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; $lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; +$lang['writefail'] = 'Impossible de modifier les données utilisateur. Merci d\'en informer l\'administrateur du wiki.'; diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 7a53d573c..8a51c2b34 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -22,6 +22,7 @@ * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; @@ -203,6 +204,7 @@ $lang['xsendfile_o_2'] = 'Entête standard X-Sendfile'; $lang['xsendfile_o_3'] = 'En-tête propriétaire Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Identifiant de l\'utilisateur'; $lang['showuseras_o_username'] = 'Nom de l\'utilisateur'; +$lang['showuseras_o_username_link'] = 'Nom complet de l\'utilisateur en tant que lien interwiki'; $lang['showuseras_o_email'] = 'Courriel de l\'utilisateur (brouillé suivant les paramètres de brouillage sélectionnés)'; $lang['showuseras_o_email_link'] = 'Courriel de l\'utilisateur en tant que lien mailto:'; $lang['useheading_o_0'] = 'Jamais'; diff --git a/lib/plugins/extension/lang/fr/lang.php b/lib/plugins/extension/lang/fr/lang.php index 2d990d519..4cb6f0d25 100644 --- a/lib/plugins/extension/lang/fr/lang.php +++ b/lib/plugins/extension/lang/fr/lang.php @@ -6,6 +6,7 @@ * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author Yves Grandvalet <Yves.Grandvalet@laposte.net> * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> */ $lang['menu'] = 'Gestionnaire d\'extensions'; $lang['tab_plugins'] = 'Greffons installés'; @@ -28,6 +29,8 @@ $lang['btn_install'] = 'Installer'; $lang['btn_reinstall'] = 'Réinstaller'; $lang['js']['reallydel'] = 'Vraiment désinstaller cette extension'; $lang['js']['display_viewoptions'] = 'Voir les options:'; +$lang['js']['display_enabled'] = 'activé'; +$lang['js']['display_disabled'] = 'désactivé'; $lang['js']['display_updatable'] = 'Mise à jour possible'; $lang['search_for'] = 'Rechercher l\'extension :'; $lang['search'] = 'Chercher'; diff --git a/lib/plugins/styling/lang/fr/lang.php b/lib/plugins/styling/lang/fr/lang.php index e25839c82..92b8c3d74 100644 --- a/lib/plugins/styling/lang/fr/lang.php +++ b/lib/plugins/styling/lang/fr/lang.php @@ -4,11 +4,16 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> */ +$lang['menu'] = 'Paramètres de style du thème (template)'; +$lang['js']['loader'] = 'La prévisualisation est en chargement... <br />Si rien ne se passe, les données sont peut-être erronées'; $lang['js']['popup'] = 'Ouvrir dans une nouvelle fenêtre'; $lang['error'] = 'Désolé, ce thème ne supporte pas cette fonctionnalité.'; $lang['btn_preview'] = 'Aperçu des changements'; $lang['btn_save'] = 'sauvegarder les changements.'; +$lang['btn_reset'] = 'Remettre les changements courants à zéro'; +$lang['btn_revert'] = 'Remettre les styles du thème aux valeurs par défaut'; $lang['__text__'] = 'Couleur de texte principale'; $lang['__background__'] = 'Couleur de fond principale'; $lang['__text_alt__'] = 'Couleur de texte alternative'; @@ -16,3 +21,4 @@ $lang['__background_alt__'] = 'Couleur de fond alternative'; $lang['__text_neu__'] = 'Couleur de texte neutre'; $lang['__background_neu__'] = 'Couleur de fond neutre'; $lang['__border__'] = 'Couleur des contours'; +$lang['__highlight__'] = 'Couleur de surbrillance (utilisée pincipalement pour les résultats de recherche)'; diff --git a/lib/tpl/dokuwiki/lang/fr/lang.php b/lib/tpl/dokuwiki/lang/fr/lang.php new file mode 100644 index 000000000..ae74ca83e --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fr/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Nicolas Friedli <nicolas@theologique.ch> + */ +$lang['__background_site__'] = 'Couleur du fond (derrière la boîte de contenu)'; +$lang['__link__'] = 'Couleur générale des liens'; +$lang['__existing__'] = 'Couleur des liens pour les pages existantes'; +$lang['__missing__'] = 'Couleur des liens pour les pages inexistantes'; +$lang['__site_width__'] = 'Largeur du site complet (dans une unité de longueur valide: %, px, em,...)'; +$lang['__sidebar_width__'] = 'Largeur de la barre latérale, si existante (dans une unité de longueur valide: %, px, em,...)'; +$lang['__tablet_width__'] = 'En dessous de cette largeur, le site passe en mode tablette.'; +$lang['__phone_width__'] = 'En dessous de cette largeur, le site passe en mode smartphone.'; diff --git a/lib/tpl/dokuwiki/lang/fr/style.txt b/lib/tpl/dokuwiki/lang/fr/style.txt new file mode 100644 index 000000000..876f116c9 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fr/style.txt @@ -0,0 +1 @@ +Si vous souhaitez modifier le logo, utilisez simplement le gestionnaire de médias et envoyez un fichier nommé "logo.png" dans l'espace de nom "wiki" ou à la racine. Il sera automatiquement utilisé. Il en est de même pour le "favicon.ico". Si vous utilisez un wiki fermé, il est recommandé de régler les ACL de la racine ou de l'espace de nom "wiki" pour rendre ces images visibles aux utilisateurs non connectés. \ No newline at end of file -- GitLab From 3d928be941032419c36c1fef4e7a408c4fc2cfc3 Mon Sep 17 00:00:00 2001 From: "Mark C. Prins" <mprins@users.sf.net> Date: Thu, 30 Jul 2015 19:11:37 +0200 Subject: [PATCH 292/440] translation update --- inc/lang/nl/lang.php | 1 + lib/plugins/extension/lang/nl/lang.php | 3 +++ lib/plugins/styling/lang/nl/lang.php | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 lib/plugins/styling/lang/nl/lang.php diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index dd390d219..4c6694e49 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -27,6 +27,7 @@ * @author Mijndert <mijndert@mijndertstuij.nl> * @author Johan Wijnker <johan@wijnker.eu> * @author Hugo Smet <hugo.smet@scarlet.be> + * @author Mark C. Prins <mprins@users.sf.net> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/extension/lang/nl/lang.php b/lib/plugins/extension/lang/nl/lang.php index 3fed9f4a3..71aec75f3 100644 --- a/lib/plugins/extension/lang/nl/lang.php +++ b/lib/plugins/extension/lang/nl/lang.php @@ -8,6 +8,7 @@ * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> * @author Johan Wijnker <johan@wijnker.eu> + * @author Mark C. Prins <mprins@users.sf.net> */ $lang['menu'] = 'Uitbreidingen'; $lang['tab_plugins'] = 'Geïnstalleerde Plugins'; @@ -29,6 +30,8 @@ $lang['btn_disable'] = 'Schakel uit'; $lang['btn_install'] = 'Installeer'; $lang['btn_reinstall'] = 'Her-installeer'; $lang['js']['reallydel'] = 'Wilt u deze uitbreiding deinstalleren?'; +$lang['js']['display_enabled'] = 'ingeschakeld'; +$lang['js']['display_disabled'] = 'uitgeschakeld'; $lang['search_for'] = 'Zoek Uitbreiding:'; $lang['search'] = 'Zoek'; $lang['extensionby'] = '<strong>%s</strong> by %s'; diff --git a/lib/plugins/styling/lang/nl/lang.php b/lib/plugins/styling/lang/nl/lang.php new file mode 100644 index 000000000..c712f75ff --- /dev/null +++ b/lib/plugins/styling/lang/nl/lang.php @@ -0,0 +1,17 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mark C. Prins <mprins@users.sf.net> + */ +$lang['btn_preview'] = 'Bekijk aanpassingen'; +$lang['btn_save'] = 'Sla aanpassingen op'; +$lang['btn_reset'] = 'Huidige aanpassingen verwerpen'; +$lang['btn_revert'] = 'Stijlen terugzetten naar de template default'; +$lang['__text__'] = 'Hoofd tekstkleur'; +$lang['__background__'] = 'Hoofd achtergrondkleur'; +$lang['__text_alt__'] = 'Alternatieve tekstkleur'; +$lang['__background_alt__'] = 'Alternatieve achtergrondkleur'; +$lang['__text_neu__'] = 'Neutrale tekstkleur'; +$lang['__background_neu__'] = 'Neutrale achtergrondkleur'; -- GitLab From 7b68a313ff0e92802cd196d03c5ebed2728f2691 Mon Sep 17 00:00:00 2001 From: Mete Cuma <mcumax@gmail.com> Date: Thu, 30 Jul 2015 22:30:56 +0200 Subject: [PATCH 293/440] translation update --- inc/lang/tr/lang.php | 4 +++- lib/plugins/authmysql/lang/tr/lang.php | 9 +++++++++ lib/plugins/authplain/lang/tr/lang.php | 5 +++-- lib/plugins/config/lang/tr/lang.php | 6 ++++-- lib/plugins/extension/lang/tr/lang.php | 3 ++- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 lib/plugins/authmysql/lang/tr/lang.php diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 2242b1792..12d7f7490 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Selim FarsakoÄŸlu <farsakogluselim@yahoo.de> * @author Aydın CoÅŸkuner <aydinweb@gmail.com> * @author Cihan Kahveci <kahvecicihan@gmail.com> @@ -13,6 +13,7 @@ * @author huseyin can <huseyincan73@gmail.com> * @author ilker rifat kapaç <irifat@gmail.com> * @author Ä°lker R. Kapaç <irifat@gmail.com> + * @author Mete Cuma <mcumax@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -274,6 +275,7 @@ $lang['subscr_m_unsubscribe'] = 'Ãœyelik iptali'; $lang['subscr_m_subscribe'] = 'Kayıt ol'; $lang['subscr_m_receive'] = 'Al'; $lang['subscr_style_every'] = 'her deÄŸiÅŸiklikte e-posta gönder'; +$lang['subscr_style_list'] = 'Son e-postadan bu yana deÄŸiÅŸtirilen sayfaların listesi (her %.2f gün)'; $lang['authtempfail'] = 'Kullanıcı doÄŸrulama geçici olarak yapılamıyor. EÄŸer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.'; $lang['i_chooselang'] = 'Dili seçiniz'; $lang['i_installer'] = 'Dokuwiki Kurulum Sihirbazı'; diff --git a/lib/plugins/authmysql/lang/tr/lang.php b/lib/plugins/authmysql/lang/tr/lang.php new file mode 100644 index 000000000..b5c7b2fe1 --- /dev/null +++ b/lib/plugins/authmysql/lang/tr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mete Cuma <mcumax@gmail.com> + */ +$lang['connectfail'] = 'Veritabanına baÄŸlantı kurulamadı.'; +$lang['usernotexists'] = 'Ãœzgünüz, kullanıcı mevcut deÄŸil.'; diff --git a/lib/plugins/authplain/lang/tr/lang.php b/lib/plugins/authplain/lang/tr/lang.php index d7064e8bf..6111085c2 100644 --- a/lib/plugins/authplain/lang/tr/lang.php +++ b/lib/plugins/authplain/lang/tr/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Ãœzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; +$lang['userexists'] = 'Ãœzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; diff --git a/lib/plugins/config/lang/tr/lang.php b/lib/plugins/config/lang/tr/lang.php index cb610f4ff..344f22de1 100644 --- a/lib/plugins/config/lang/tr/lang.php +++ b/lib/plugins/config/lang/tr/lang.php @@ -1,12 +1,14 @@ <?php + /** - * Turkish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Aydın CoÅŸkuner <aydinweb@gmail.com> * @author Cihan Kahveci <kahvecicihan@gmail.com> * @author Yavuz Selim <yavuzselim@gmail.com> * @author Caleb Maclennan <caleb@alerque.com> * @author farukerdemoncel@gmail.com + * @author Mete Cuma <mcumax@gmail.com> */ $lang['menu'] = 'Site Ayarları'; $lang['error'] = 'Ayarlar yanlış bir deÄŸer girildiÄŸi için güncellenemedi. Lütfen deÄŸiÅŸikliklerinizi gözden geçirin ve tekrar gönderin. diff --git a/lib/plugins/extension/lang/tr/lang.php b/lib/plugins/extension/lang/tr/lang.php index dfabfa715..c90b7b1c5 100644 --- a/lib/plugins/extension/lang/tr/lang.php +++ b/lib/plugins/extension/lang/tr/lang.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Ä°lker R. Kapaç <irifat@gmail.com> + * @author Mete Cuma <mcumax@gmail.com> */ $lang['menu'] = 'GeniÅŸletme Yöneticisi'; $lang['tab_plugins'] = 'KurulmuÅŸ Eklentiler'; @@ -44,7 +45,7 @@ $lang['available_version'] = 'Müsait sürüm:'; $lang['compatible'] = 'Åžununla uyumlu:'; $lang['depends'] = 'Åžuna bağımlı'; $lang['similar'] = 'Åžununla benzer'; -$lang['conflicts'] = 'Åžununla çeliÅŸir'; +$lang['conflicts'] = 'Åžununla çeliÅŸir:'; $lang['donate'] = 'BeÄŸendiniz mi?'; $lang['donate_action'] = 'Yazara bir kahve ısmarlayın!'; $lang['repo_retry'] = 'Yeniden dene'; -- GitLab From 49cef4fdcf4c8c1eba59bc3a00aff004599f4a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20B=C3=B6hler?= <dev@aboehler.at> Date: Fri, 31 Jul 2015 08:24:51 +0200 Subject: [PATCH 294/440] Add 'returnonly' option even if no valid url is given --- inc/parser/xhtml.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index c544d9e32..c92892a35 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -914,7 +914,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // is there still an URL? if(!$url) { - $this->doc .= $name; + if($returnonly) { + return $name; + } else { + $this->doc .= $name; + } return; } -- GitLab From 767d16693c9df38a2f496d4ca2ba8559db5eba5d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 31 Jul 2015 10:00:09 +0200 Subject: [PATCH 295/440] removed deprecated JavaScript --- lib/exe/js.php | 4 +- lib/scripts/compatibility.js | 395 ----------------------------------- lib/scripts/drag.js | 87 -------- lib/scripts/tw-sack.js | 140 ------------- 4 files changed, 1 insertion(+), 625 deletions(-) delete mode 100644 lib/scripts/drag.js delete mode 100644 lib/scripts/tw-sack.js diff --git a/lib/exe/js.php b/lib/exe/js.php index 2df2d0ba6..16d22daf2 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -56,11 +56,9 @@ function js_out(){ DOKU_INC.'lib/scripts/delay.js', DOKU_INC.'lib/scripts/cookie.js', DOKU_INC.'lib/scripts/script.js', - DOKU_INC.'lib/scripts/tw-sack.js', DOKU_INC.'lib/scripts/qsearch.js', DOKU_INC.'lib/scripts/tree.js', DOKU_INC.'lib/scripts/index.js', - DOKU_INC.'lib/scripts/drag.js', DOKU_INC.'lib/scripts/textselection.js', DOKU_INC.'lib/scripts/toolbar.js', DOKU_INC.'lib/scripts/edit.js', @@ -68,7 +66,7 @@ function js_out(){ DOKU_INC.'lib/scripts/locktimer.js', DOKU_INC.'lib/scripts/linkwiz.js', DOKU_INC.'lib/scripts/media.js', -# deprecated DOKU_INC.'lib/scripts/compatibility.js', + DOKU_INC.'lib/scripts/compatibility.js', # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', diff --git a/lib/scripts/compatibility.js b/lib/scripts/compatibility.js index fc020cce8..154aeadf7 100644 --- a/lib/scripts/compatibility.js +++ b/lib/scripts/compatibility.js @@ -40,398 +40,3 @@ function DEPRECATED_WRAP(func, context) { return func.apply(context || this, arguments); }; } - -/** - * Handy shortcut to document.getElementById - * - * This function was taken from the prototype library - * - * @link http://prototype.conio.net/ - */ -function $() { - DEPRECATED('Please use the jQuery() function instead.'); - - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} - - - - -var index = { - throbber_delay: dw_index.throbber_delay, - toggle: DEPRECATED_WRAP(dw_index.toggle, dw_index), - treeattach: DEPRECATED_WRAP(dw_index.treeattach, dw_index) -}; - -var ajax_quicksearch = { - init: function() { - DEPRECATED('Use jQuery().dw_qsearch() instead'); - jQuery('#qsearch__in').dw_qsearch({ - output: '#qsearch__out' - }); - }, - clear_results: function() { - DEPRECATED('ajax_quicksearch.clear_results is removed'); - }, - onCompletion: function() { - DEPRECATED('ajax_quicksearch.onCompletion is removed'); - } -}; -var dw_qsearch = { - init: function(input, output) { - DEPRECATED('Use jQuery().dw_qsearch() instead'); - jQuery(input).dw_qsearch({ - output: output - }); - }, - clear_results: function() { - DEPRECATED('dw_qsearch.clear_results is removed'); - }, - onCompletion: function() { - DEPRECATED('dw_qsearch.onCompletion is removed'); - } -}; - -var linkwiz = { - init: DEPRECATED_WRAP(dw_linkwiz.init, dw_linkwiz), - onEntry: DEPRECATED_WRAP(dw_linkwiz.onEntry, dw_linkwiz), - getResult: DEPRECATED_WRAP(dw_linkwiz.getResult, dw_linkwiz), - select: DEPRECATED_WRAP(dw_linkwiz.select, dw_linkwiz), - deselect: DEPRECATED_WRAP(dw_linkwiz.deselect, dw_linkwiz), - onResultClick: DEPRECATED_WRAP(dw_linkwiz.onResultClick, dw_linkwiz), - resultClick: DEPRECATED_WRAP(dw_linkwiz.resultClick, dw_linkwiz), - insertLink: DEPRECATED_WRAP(dw_linkwiz.insertLink, dw_linkwiz), - autocomplete: DEPRECATED_WRAP(dw_linkwiz.autocomplete, dw_linkwiz), - autocomplete_exec: DEPRECATED_WRAP(dw_linkwiz.autocomplete_exec, dw_linkwiz), - show: DEPRECATED_WRAP(dw_linkwiz.show, dw_linkwiz), - hide: DEPRECATED_WRAP(dw_linkwiz.hide, dw_linkwiz), - toggle: DEPRECATED_WRAP(dw_linkwiz.toggle, dw_linkwiz) -}; - -var locktimer = { - init: DEPRECATED_WRAP(dw_locktimer.init, dw_locktimer), - reset: DEPRECATED_WRAP(dw_locktimer.reset, dw_locktimer), - warning: DEPRECATED_WRAP(dw_locktimer.warning, dw_locktimer), - clear: DEPRECATED_WRAP(dw_locktimer.clear, dw_locktimer), - refresh: DEPRECATED_WRAP(dw_locktimer.refresh, dw_locktimer), - refreshed: DEPRECATED_WRAP(dw_locktimer.refreshed, dw_locktimer) -}; - -var media_manager = { - // treeattach, selectorattach, confirmattach are munched together into - // dw_mediamanager.init - attachoptions: DEPRECATED_WRAP(dw_mediamanager.attachoptions, dw_mediamanager), - togglekeepopen: function (event, cb) { - DEPRECATED('Use dw_mediamanager.toggleOption instead'); - return dw_mediamanager.toggleOption.call(cb, 'keepopen'); - }, - togglehide: function (event, cb) { - DEPRECATED('Use dw_mediamanager.toggleOption instead'); - return dw_mediamanager.toggleOption.call(cb, 'hide'); - }, - updatehide: DEPRECATED_WRAP(dw_mediamanager.updatehide, dw_mediamanager), - select: function (event, link) { - DEPRECATED('Use dw_mediamanager.select instead'); - return dw_mediamanager.select.call(link, event); - }, - initpopup: DEPRECATED_WRAP(dw_mediamanager.initpopup, dw_mediamanager), - insert: DEPRECATED_WRAP(dw_mediamanager.insert, dw_mediamanager), - list: function (event, link) { - DEPRECATED('Use dw_mediamanager.list instead'); - return dw_mediamanager.list.call(link, event); - }, - // toggle is handled by dw_tree - suggest: DEPRECATED_WRAP(dw_mediamanager.suggest, dw_mediamanager), - initFlashUpload: DEPRECATED_WRAP(dw_mediamanager.initFlashUpload, dw_mediamanager), - closePopup: function () { - DEPRECATED(); - dw_mediamanager.$popup.dialog('close'); - }, - setalign: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'align', event); - }, - setlink: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'link', event); - }, - setsize: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'size', event); - }, - outSet: function (id) { - DEPRECATED(); - return jQuery(id).removeClass('selected'); - }, - inSet: function (id) { - DEPRECATED(); - return jQuery(id).addClass('selected'); - } -}; - -initSizeCtl = DEPRECATED_WRAP(dw_editor.initSizeCtl); -sizeCtl = DEPRECATED_WRAP(dw_editor.sizeCtl); -toggleWrap = DEPRECATED_WRAP(dw_editor.toggleWrap); -setWrap = DEPRECATED_WRAP(dw_editor.setWrap); - -function findPosX(object){ - DEPRECATED('Use jQuery.offset() instead'); - return jQuery(object).offset().left; -} - -function findPosY(object){ - DEPRECATED('Use jQuery.offset() instead'); - return jQuery(object).offset().top; -} - -function getElementsByClass(searchClass,node,tag){ - DEPRECATED('Use jQuery() instead'); - if(node == null) node = document; - if(typeof tag === 'undefined') tag = ''; - return jQuery(node).find(tag+'.'+searchClass).toArray(); -} - -function prependChild(parent,element) { - DEPRECATED('Use jQuery.prepend() instead'); - jQuery(parent).prepend(element); -} - -function addEvent(element, type, handler) { - DEPRECATED('Use jQuery.bind() instead. Note that jQuery’s behaviour' + - ' when a handler returns false differs from addEvent’s'); - jQuery(element).bind(type,{},function (e) { - // returning false in an addEvent event handler did not prevent - // bubbling but just canceled handlers on this node and prevented - // default behavior, so wrap the handler call and mimic that behavior. - // - // Refer to jQuery.event.handle(). - var ret = handler.apply(this, Array.prototype.slice.call(arguments, 0)); - if (typeof ret !== 'undefined') { - if ( ret !== false ) { - return ret; - } - // What jQuery does. - e.result = ret; - e.preventDefault(); - // Not what jQuery does. This would be: event.stopPropagation(); - // Hack it so that immediate propagation (other event handlers on - // this element) appears stopped without stopping the actual - // propagation (bubbling) - e.isImmediatePropagationStopped = function () { return true; }; - } - }); -} - -function removeEvent(element, type, handler) { - DEPRECATED('Use jQuery.unbind() instead.'); - jQuery(element).unbind(type,handler); -} - -function addInitEvent(func) { - DEPRECATED('Use jQuery(<function>) instead'); - jQuery(func); -} - - -function jsEscape(text){ - DEPRECATED('Insert text through jQuery.text() instead of escaping on your own'); - var re=new RegExp("\\\\","g"); - text=text.replace(re,"\\\\"); - re=new RegExp("'","g"); - text=text.replace(re,"\\'"); - re=new RegExp('"',"g"); - text=text.replace(re,'"'); - re=new RegExp("\\\\\\\\n","g"); - text=text.replace(re,"\\n"); - return text; -} - -/** - * Simple function to check if a global var is defined - * - * @author Kae Verens - * @link http://verens.com/archives/2005/07/25/isset-for-javascript/#comment-2835 - */ -function isset(varname){ - DEPRECATED("Use `typeof var !== 'undefined'` instead"); - return(typeof(window[varname])!='undefined'); -} - -/** - * Checks if property is undefined - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isUndefined (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'undefined'` instead"); - return (typeof prop == 'undefined'); -} - -/** - * Checks if property is function - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isFunction (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'function'` instead"); - return (typeof prop == 'function'); -} -/** - * Checks if property is string - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isString (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'string'` instead"); - return (typeof prop == 'string'); -} - -/** - * Checks if property is number - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isNumber (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'number'` instead"); - return (typeof prop == 'number'); -} - -/** - * Checks if property is the calculable number - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isNumeric (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'number' && !isNaN(var) && isFinite(var)` instead"); - return isNumber(prop)&&!isNaN(prop)&&isFinite(prop); -} - -/** - * Checks if property is array - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isArray (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `var instanceof Array` instead"); - return (prop instanceof Array); -} - -/** - * Checks if property is regexp - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isRegExp (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `var instanceof RegExp` instead"); - return (prop instanceof RegExp); -} - -/** - * Checks if property is a boolean value - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isBoolean (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'boolean'` instead"); - return ('boolean' == typeof prop); -} - -/** - * Checks if property is a scalar value (value that could be used as the hash key) - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isScalar (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'string' || (typeof var === 'number' &&" + - " !isNaN(var) && isFinite(var))` instead"); - return isNumeric(prop)||isString(prop); -} - -/** - * Checks if property is empty - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isEmpty (prop /* :Object */) /* :Boolean */ { - DEPRECATED(); - var i; - if (isBoolean(prop)) { - return false; - } else if (isRegExp(prop) && new RegExp("").toString() == prop.toString()) { - return true; - } else if (isString(prop) || isNumber(prop)) { - return !prop; - } else if (Boolean(prop) && false != prop) { - for (i in prop) { - if(prop.hasOwnProperty(i)) { - return false; - } - } - } - return true; -} - -/** - * Get the computed style of a node. - * - * @link https://acidmartin.wordpress.com/2008/08/26/style-get-any-css-property-value-of-an-object/ - * @link http://svn.dojotoolkit.org/src/dojo/trunk/_base/html.js - */ -function gcs(node){ - DEPRECATED('Use jQuery(node).style() instead'); - if(node.currentStyle){ - return node.currentStyle; - }else{ - return node.ownerDocument.defaultView.getComputedStyle(node, null); - } -} - -/** - * Until 2011-05-25 "Rincewind", a code intended to fix some Safari issue - * always declared the global _timer. plugin:sortablejs relies on _timer - * being declared. - */ -var _timer; diff --git a/lib/scripts/drag.js b/lib/scripts/drag.js deleted file mode 100644 index dd252d95d..000000000 --- a/lib/scripts/drag.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Makes a DOM object draggable - * - * If you just want to move objects around, use drag.attach. For full - * customization, drag can be used as a javascript prototype, it is - * inheritance-aware. - * - * @deprecated - * @link http://nofunc.org/Drag_Drop/ - */ -var drag = { - obj: null, - handle: null, - oX: 0, // object X position - oY: 0, // object Y position - eX: 0, // event X delta - eY: 0, // event Y delta - - /** - * Attaches the needed handlers to the given object - * - * This can be called for multiple objects, the right one is later - * determined from the event itself. The handle is optional - * - * @param DOMObject obj The object that should be draggable - * @param DOMObject handle A handle on which the obj can be dragged - */ - attach: function (obj,handle) { - DEPRECATED('Use jQuery.draggable() instead.'); - if(handle){ - handle.dragobject = obj; - }else{ - handle = obj; - } - var _this = this; - addEvent($(handle),'mousedown',function (e) {return _this.start(e); }); - }, - - /** - * Starts the dragging operation - */ - start: function (e){ - this.handle = e.target; - if(this.handle.dragobject){ - this.obj = this.handle.dragobject; - }else{ - this.obj = this.handle; - } - - this.handle.className += ' ondrag'; - this.obj.className += ' ondrag'; - - this.oX = parseInt(this.obj.style.left); - this.oY = parseInt(this.obj.style.top); - this.eX = e.pageX; - this.eY = e.pageY; - - var _this = this; - this.mousehandlers = [function (e) {return _this.drag(e);}, function (e) {return _this.stop(e);}]; - addEvent(document,'mousemove', this.mousehandlers[0]); - addEvent(document,'mouseup', this.mousehandlers[1]); - - return false; - }, - - /** - * Ends the dragging operation - */ - stop: function(){ - this.handle.className = this.handle.className.replace(/ ?ondrag/,''); - this.obj.className = this.obj.className.replace(/ ?ondrag/,''); - removeEvent(document,'mousemove', this.mousehandlers[0]); - removeEvent(document,'mouseup', this.mousehandlers[1]); - this.obj = null; - this.handle = null; - }, - - /** - * Moves the object during the dragging operation - */ - drag: function(e) { - if(this.obj) { - this.obj.style.top = (e.pageY+this.oY-this.eY+'px'); - this.obj.style.left = (e.pageX+this.oX-this.eX+'px'); - } - } -}; diff --git a/lib/scripts/tw-sack.js b/lib/scripts/tw-sack.js deleted file mode 100644 index b0e570151..000000000 --- a/lib/scripts/tw-sack.js +++ /dev/null @@ -1,140 +0,0 @@ -/* Simple AJAX Code-Kit (SACK) */ -/* ©2005 Gregory Wild-Smith */ -/* www.twilightuniverse.com */ -/* Software licenced under a modified X11 licence, see documentation or authors website for more details */ -/* @deprecated */ - -function sack(file){ - this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n"; - this.requestFile = file; - this.method = "POST"; - this.URLString = ""; - this.encodeURIString = true; - this.execute = false; - this.asynchronous = true; - - this.onLoading = function() { }; - this.onLoaded = function() { }; - this.onInteractive = function() { }; - this.onCompletion = function() { }; - this.afterCompletion = function() { }; - - this.createAJAX = function() { - try { - this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e) { - try { - this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (err) { - this.xmlhttp = null; - } - } - if(!this.xmlhttp && typeof XMLHttpRequest != "undefined"){ - this.xmlhttp = new XMLHttpRequest(); - } - if (!this.xmlhttp){ - this.failed = true; - } - }; - - this.setVar = function(name, value){ - if (this.URLString.length < 3){ - this.URLString = name + "=" + value; - } else { - this.URLString += "&" + name + "=" + value; - } - }; - - this.encVar = function(name, value){ - var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value); - return varString; - }; - - this.encodeURLString = function(string){ - varArray = string.split('&'); - for (i = 0; i < varArray.length; i++){ - urlVars = varArray[i].split('='); - if (urlVars[0].indexOf('amp;') != -1){ - urlVars[0] = urlVars[0].substring(4); - } - varArray[i] = this.encVar(urlVars[0],urlVars[1]); - } - return varArray.join('&'); - }; - - this.runResponse = function(){ - eval(this.response); - }; - - this.runAJAX = function(urlstring){ - DEPRECATED('Please use jQuery.post() or any other of jQuery\'s AJAX methods.'); - - this.responseStatus = new Array(2); - if(this.failed && this.AjaxFailedAlert){ - alert(this.AjaxFailedAlert); - } else { - if (urlstring){ - if (this.URLString.length){ - this.URLString = this.URLString + "&" + urlstring; - } else { - this.URLString = urlstring; - } - } - if (this.encodeURIString){ - var timeval = new Date().getTime(); - this.URLString = this.encodeURLString(this.URLString); - this.setVar("rndval", timeval); - } - if (this.element) { this.elementObj = document.getElementById(this.element); } - if (this.xmlhttp) { - var self = this; - if (this.method == "GET") { - var totalurlstring = this.requestFile + "?" + this.URLString; - this.xmlhttp.open(this.method, totalurlstring, this.asynchronous); - } else { - this.xmlhttp.open(this.method, this.requestFile, this.asynchronous); - } - if (this.method == "POST"){ - try { - this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); - } catch (e) {} - } - - this.xmlhttp.onreadystatechange = function() { - switch (self.xmlhttp.readyState){ - case 1: - self.onLoading(); - break; - case 2: - self.onLoaded(); - break; - case 3: - self.onInteractive(); - break; - case 4: - self.response = self.xmlhttp.responseText; - self.responseXML = self.xmlhttp.responseXML; - self.responseStatus[0] = self.xmlhttp.status; - self.responseStatus[1] = self.xmlhttp.statusText; - self.onCompletion(); - if(self.execute){ self.runResponse(); } - if (self.elementObj) { - var elemNodeName = self.elementObj.nodeName; - elemNodeName.toLowerCase(); - if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){ - self.elementObj.value = self.response; - } else { - self.elementObj.innerHTML = self.response; - } - } - self.afterCompletion(); - self.URLString = ""; - break; - } - }; - this.xmlhttp.send(this.URLString); - } - } - }; -this.createAJAX(); -} -- GitLab From 656e58456ff0e79ba9cdcbffc1e23c89d43c123c Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Fri, 31 Jul 2015 10:35:23 +0100 Subject: [PATCH 296/440] removed deprecated support for style.local.ini use conf/tpl/<template-folder-name>/style.ini instead --- lib/exe/css.php | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/lib/exe/css.php b/lib/exe/css.php index 3b8a524bc..925b78a76 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -59,7 +59,6 @@ function css_out(){ $tplinc = tpl_incdir($tpl); $cache_files = getConfigFiles('main'); $cache_files[] = $tplinc.'style.ini'; - $cache_files[] = $tplinc.'style.local.ini'; // @deprecated $cache_files[] = DOKU_CONF."tpl/$tpl/style.ini"; $cache_files[] = __FILE__; if($INPUT->bool('preview')) $cache_files[] = $conf['cachedir'].'/preview.ini'; @@ -289,23 +288,6 @@ function css_styleini($tpl, $preview=false) { } } - // load template's style.local.ini - // @deprecated 2013-08-03 - $ini = $incbase.'style.local.ini'; - if(file_exists($ini)){ - $data = parse_ini_file($ini, true); - - // stylesheets - if(is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ - $stylesheets[$mode][$incbase.$file] = $webbase; - } - - // replacements - if(is_array($data['replacements'])){ - $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); - } - } - // load configs's style.ini $webbase = DOKU_BASE; $ini = DOKU_CONF."tpl/$tpl/style.ini"; -- GitLab From 3b5e1a0ea28a4d5252a8b013997d8a3837dd5e28 Mon Sep 17 00:00:00 2001 From: hugo smet <hugo.smet@scarlet.be> Date: Fri, 31 Jul 2015 13:01:27 +0200 Subject: [PATCH 297/440] translation update --- inc/lang/nl/lang.php | 1 + lib/plugins/config/lang/nl/lang.php | 2 ++ lib/plugins/extension/lang/nl/lang.php | 3 +++ lib/plugins/styling/lang/nl/intro.txt | 2 ++ lib/plugins/styling/lang/nl/lang.php | 7 +++++++ lib/tpl/dokuwiki/lang/nl/lang.php | 15 +++++++++++++++ lib/tpl/dokuwiki/lang/nl/style.txt | 1 + 7 files changed, 31 insertions(+) create mode 100644 lib/plugins/styling/lang/nl/intro.txt create mode 100644 lib/tpl/dokuwiki/lang/nl/lang.php create mode 100644 lib/tpl/dokuwiki/lang/nl/style.txt diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 4c6694e49..a2f2a64ce 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -28,6 +28,7 @@ * @author Johan Wijnker <johan@wijnker.eu> * @author Hugo Smet <hugo.smet@scarlet.be> * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php index 3761ce839..c157b64a0 100644 --- a/lib/plugins/config/lang/nl/lang.php +++ b/lib/plugins/config/lang/nl/lang.php @@ -17,6 +17,7 @@ * @author Ricardo Guijt <ricardoguijt@gmail.com> * @author Gerrit <klapinklapin@gmail.com> * @author Hugo Smet <hugo.smet@scarlet.be> + * @author hugo smet <hugo.smet@scarlet.be> */ $lang['menu'] = 'Configuratie-instellingen'; $lang['error'] = 'De instellingen zijn niet gewijzigd wegens een incorrecte waarde, kijk je wijzigingen na en sla dan opnieuw op.<br />Je kunt de incorrecte waarde(s) herkennen aan de rode rand.'; @@ -92,6 +93,7 @@ $lang['disableactions_subscription'] = 'Inschrijven/opzeggen'; $lang['disableactions_wikicode'] = 'Bron bekijken/exporteer rauw'; $lang['disableactions_profile_delete'] = 'Schrap eigen account'; $lang['disableactions_other'] = 'Andere akties (gescheiden door komma\'s)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; $lang['auth_security_timeout'] = 'Authenticatiebeveiligings-timeout (seconden)'; $lang['securecookie'] = 'Moeten cookies die via HTTPS gezet zijn alleen via HTTPS verzonden worden door de browser? Zet deze optie uit als alleen het inloggen op de wiki beveiligd is, maar het gebruik verder niet.'; $lang['remote'] = 'Activeer het remote API-systeem. Hiermee kunnen andere applicaties de wiki benaderen via XML-RPC of andere mechanismen.'; diff --git a/lib/plugins/extension/lang/nl/lang.php b/lib/plugins/extension/lang/nl/lang.php index 71aec75f3..b2bb46bae 100644 --- a/lib/plugins/extension/lang/nl/lang.php +++ b/lib/plugins/extension/lang/nl/lang.php @@ -9,6 +9,7 @@ * @author Mijndert <mijndert@mijndertstuij.nl> * @author Johan Wijnker <johan@wijnker.eu> * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> */ $lang['menu'] = 'Uitbreidingen'; $lang['tab_plugins'] = 'Geïnstalleerde Plugins'; @@ -30,8 +31,10 @@ $lang['btn_disable'] = 'Schakel uit'; $lang['btn_install'] = 'Installeer'; $lang['btn_reinstall'] = 'Her-installeer'; $lang['js']['reallydel'] = 'Wilt u deze uitbreiding deinstalleren?'; +$lang['js']['display_viewoptions'] = 'Weergave opties:'; $lang['js']['display_enabled'] = 'ingeschakeld'; $lang['js']['display_disabled'] = 'uitgeschakeld'; +$lang['js']['display_updatable'] = 'aanpasbaar'; $lang['search_for'] = 'Zoek Uitbreiding:'; $lang['search'] = 'Zoek'; $lang['extensionby'] = '<strong>%s</strong> by %s'; diff --git a/lib/plugins/styling/lang/nl/intro.txt b/lib/plugins/styling/lang/nl/intro.txt new file mode 100644 index 000000000..280ab3eed --- /dev/null +++ b/lib/plugins/styling/lang/nl/intro.txt @@ -0,0 +1,2 @@ +Deze tool laat u toe om bepaalde stijl instellingen van uw huidig geselecteerd sjabloon aan te passen. +Alle aanpassingen worden in een lokaal configuratie bestand bewaard en zijn upgrade veilig. \ No newline at end of file diff --git a/lib/plugins/styling/lang/nl/lang.php b/lib/plugins/styling/lang/nl/lang.php index c712f75ff..c5bbe77d3 100644 --- a/lib/plugins/styling/lang/nl/lang.php +++ b/lib/plugins/styling/lang/nl/lang.php @@ -4,7 +4,12 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> */ +$lang['menu'] = 'Sjabloon stijl instellingen'; +$lang['js']['loader'] = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijks foutief.'; +$lang['js']['popup'] = 'Open als popup'; +$lang['error'] = 'Sorry, dit sjabloon ondersteunt deze functionaliteit niet.'; $lang['btn_preview'] = 'Bekijk aanpassingen'; $lang['btn_save'] = 'Sla aanpassingen op'; $lang['btn_reset'] = 'Huidige aanpassingen verwerpen'; @@ -15,3 +20,5 @@ $lang['__text_alt__'] = 'Alternatieve tekstkleur'; $lang['__background_alt__'] = 'Alternatieve achtergrondkleur'; $lang['__text_neu__'] = 'Neutrale tekstkleur'; $lang['__background_neu__'] = 'Neutrale achtergrondkleur'; +$lang['__border__'] = 'Kader kleur'; +$lang['__highlight__'] = 'Accentkleur (hoofdzakelijk voor zoekresultaten)'; diff --git a/lib/tpl/dokuwiki/lang/nl/lang.php b/lib/tpl/dokuwiki/lang/nl/lang.php new file mode 100644 index 000000000..474ecb744 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/nl/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author hugo smet <hugo.smet@scarlet.be> + */ +$lang['__background_site__'] = 'Kleur voor de echter ondergrond (achter de inhoud kader)'; +$lang['__link__'] = 'Kleur voor algemene link'; +$lang['__existing__'] = 'Kleur voor link naar bestaande pagina\'s.'; +$lang['__missing__'] = 'Kleur voor link naar onbestaande pagina\'s'; +$lang['__site_width__'] = 'Breedte van de max site (in gelijk welke eenheid: %, px, em,...)'; +$lang['__sidebar_width__'] = 'Breedte van de zijbalk, indien aanwezig (in gelijk welke eenheid: %, px, em,...)'; +$lang['__tablet_width__'] = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar tablet modus.'; +$lang['__phone_width__'] = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar telefoon modus.'; diff --git a/lib/tpl/dokuwiki/lang/nl/style.txt b/lib/tpl/dokuwiki/lang/nl/style.txt new file mode 100644 index 000000000..5dbc61568 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/nl/style.txt @@ -0,0 +1 @@ +Wil je de logo aanpassen, gebruik dan de Media Manager en een "logo.png" in "wiki" of root naamruimte opladen, waarna het automatisch gebruikt wordt. Je kan ook een "favicon.ico" hiervoor gebruiken. Indien je een gesloten wiki gebruikt is het aangeraden om de "wiki" (of root) naamruimte leesbaar te maken voor iedereen in de ACL instellingen of je logo wordt niet getoond aan niet ingelogde gebruikers. \ No newline at end of file -- GitLab From 0b55591d7a88c7a2447c650dd998caf8103c8344 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 31 Jul 2015 13:00:01 +0200 Subject: [PATCH 298/440] deprecation of Archive libs --- inc/Tar.class.php | 1 + inc/TarLib.class.php | 89 -------------------------------------------- inc/ZipLib.class.php | 1 + inc/load.php | 1 - 4 files changed, 2 insertions(+), 90 deletions(-) delete mode 100644 inc/TarLib.class.php diff --git a/inc/Tar.class.php b/inc/Tar.class.php index 0dc7dace2..57c280d79 100644 --- a/inc/Tar.class.php +++ b/inc/Tar.class.php @@ -43,6 +43,7 @@ * @author Andreas Gohr <andi@splitbrain.org> * @author Bouchon <tarlib@bouchon.org> (Maxg) * @license GPL 2 + * @deprecated 2015-05-15 - use splitbrain\PHPArchive\Tar instead */ class Tar { diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php deleted file mode 100644 index dd319a79a..000000000 --- a/inc/TarLib.class.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * This is a compatibility wrapper around the new Tar class - * - * Use of this library is strongly discouraged. Only basic extraction is wrapped, - * everything else will fail. - * - * @deprecated 2012-11-06 - */ -class TarLib { - - const COMPRESS_GZIP = 1; - const COMPRESS_BZIP = 2; - const COMPRESS_AUTO = 3; - const COMPRESS_NONE = 0; - const TARLIB_VERSION = '1.2'; - const FULL_ARCHIVE = -1; - const ARCHIVE_DYNAMIC = 0; - const ARCHIVE_RENAMECOMP = 5; - const COMPRESS_DETECT = -1; - - private $file = ''; - private $tar; - - public $_result = true; - - function __construct($file, $comptype = TarLib::COMPRESS_AUTO, $complevel = 9) { - dbg_deprecated('class Tar'); - - if(!$file) $this->error('__construct', '$file'); - - $this->file = $file; - switch($comptype) { - case TarLib::COMPRESS_AUTO: - case TarLib::COMPRESS_DETECT: - $comptype = Tar::COMPRESS_AUTO; - break; - case TarLib::COMPRESS_GZIP: - $comptype = Tar::COMPRESS_GZIP; - break; - case TarLib::COMPRESS_BZIP: - $comptype = Tar::COMPRESS_BZIP; - break; - default: - $comptype = Tar::COMPRESS_NONE; - } - - $this->complevel = $complevel; - - try { - $this->tar = new Tar(); - $this->tar->open($file, $comptype); - } catch(Exception $e) { - $this->_result = false; - } - } - - function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir = '', $p_mode = 0755) { - if($p_what != TarLib::FULL_ARCHIVE) { - $this->error('Extract', 'Ep_what'); - return 0; - } - - try { - $this->tar->extract($p_to, $p_remdir); - } catch(Exception $e) { - return 0; - } - return 1; - } - - function error($func, $param = '') { - $error = 'TarLib is deprecated and should no longer be used.'; - - if($param) { - $error .= "In this compatibility wrapper, the function '$func' does not accept your value for". - "the parameter '$param' anymore."; - } else { - $error .= "The function '$func' no longer exists in this compatibility wrapper."; - } - - msg($error, -1); - } - - function __call($name, $arguments) { - $this->error($name); - } -} \ No newline at end of file diff --git a/inc/ZipLib.class.php b/inc/ZipLib.class.php index 5b524c4ab..1358ca45e 100644 --- a/inc/ZipLib.class.php +++ b/inc/ZipLib.class.php @@ -6,6 +6,7 @@ * @link http://forum.maxg.info * * Modified for Dokuwiki + * @deprecated 2015-05-15 - use splitbrain\PHPArchive\Zip instead * @author Christopher Smith <chris@jalakai.co.uk> */ class ZipLib { diff --git a/inc/load.php b/inc/load.php index daf856188..b78a9ee38 100644 --- a/inc/load.php +++ b/inc/load.php @@ -71,7 +71,6 @@ function load_autoload($name){ 'IXR_IntrospectionServer' => DOKU_INC.'inc/IXR_Library.php', 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', 'Tar' => DOKU_INC.'inc/Tar.class.php', - 'TarLib' => DOKU_INC.'inc/TarLib.class.php', 'ZipLib' => DOKU_INC.'inc/ZipLib.class.php', 'DokuWikiFeedCreator' => DOKU_INC.'inc/feedcreator.class.php', 'Doku_Parser_Mode' => DOKU_INC.'inc/parser/parser.php', -- GitLab From 34d1de72006386b5ac410123c9a9bd2deaa17677 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 31 Jul 2015 13:17:39 +0200 Subject: [PATCH 299/440] removed more deprecated code --- inc/subscription.php | 16 -------------- lib/plugins/config/settings/config.class.php | 23 -------------------- 2 files changed, 39 deletions(-) diff --git a/inc/subscription.php b/inc/subscription.php index 8b6dcb27e..74bec656d 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -691,19 +691,3 @@ class Subscription { $data['addresslist'] = trim($addresslist.','.implode(',', $result), ','); } } - -/** - * Compatibility wrapper around Subscription:notifyaddresses - * - * for plugins emitting COMMON_NOTIFY_ADDRESSLIST themselves and relying on on this to - * be the default handler - * - * @param array $data event data for - * - * @deprecated 2012-12-07 - */ -function subscription_addresslist(&$data) { - dbg_deprecated('class Subscription'); - $sub = new Subscription(); - $sub->notifyaddresses($data); -} diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index f2d43bff6..9d0ad2c4e 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -887,29 +887,6 @@ if (!class_exists('setting_email')) { } } -/** - * @deprecated 2013-02-16 - */ -if (!class_exists('setting_richemail')) { - /** - * Class setting_richemail - */ - class setting_richemail extends setting_email { - /** - * update changed setting with user provided value $input - * - if changed value fails error check, save it - * - * @param mixed $input the new value - * @return boolean true if changed, false otherwise (also on error) - */ - function update($input) { - $this->_placeholders = true; - return parent::update($input); - } - } -} - - if (!class_exists('setting_numeric')) { /** * Class setting_numeric -- GitLab From 3333cbc9dae2edb61051985a8b969412d8e425ff Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 31 Jul 2015 13:19:55 +0200 Subject: [PATCH 300/440] locktimer: removed deprecrated stuff and some cleanup --- lib/scripts/locktimer.js | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/lib/scripts/locktimer.js b/lib/scripts/locktimer.js index 96f963c08..f83b6334e 100644 --- a/lib/scripts/locktimer.js +++ b/lib/scripts/locktimer.js @@ -12,24 +12,13 @@ var dw_locktimer = { /** * Initialize the lock timer * - * @param int timeout Length of timeout in seconds - * @param string msg Deprecated; The expiry message - * @param bool draft Whether to save drafts - * @param string edid Optional; ID of an edit object which has to be present + * @param {int} timeout Length of timeout in seconds + * @param {bool} draft Whether to save drafts + * @param {string} edid Optional; ID of an edit object which has to be present */ - init: function(timeout,msg,draft,edid){ + init: function(timeout,draft,edid){ var $edit; - switch (arguments.length) { - case 4: - DEPRECATED('Setting the locktimer expiry message is deprecated'); - dw_locktimer.msg = msg; - break; - case 3: - edid = draft; - case 2: - draft = msg; - } edid = edid || 'wiki__text'; $edit = jQuery('#' + edid); @@ -42,7 +31,7 @@ var dw_locktimer = { dw_locktimer.draft = draft; dw_locktimer.lasttime = new Date(); - dw_locktimer.pageid = jQuery('#dw__editform input[name=id]').val(); + dw_locktimer.pageid = jQuery('#dw__editform').find('input[name=id]').val(); if(!dw_locktimer.pageid) { return; } @@ -94,7 +83,7 @@ var dw_locktimer = { } // POST everything necessary for draft saving - if(dw_locktimer.draft && jQuery('#dw__editform textarea[name=wikitext]').length > 0){ + if(dw_locktimer.draft && jQuery('#dw__editform').find('textarea[name=wikitext]').length > 0){ params += jQuery('#dw__editform').find('input[name=prefix], ' + 'textarea[name=wikitext], ' + 'input[name=suffix], ' + -- GitLab From 2c5a71999aee45dfc8ac55943c96b12614dc6179 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 13:35:58 +0200 Subject: [PATCH 301/440] Update intro.txt --- lib/plugins/styling/lang/nl/intro.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plugins/styling/lang/nl/intro.txt b/lib/plugins/styling/lang/nl/intro.txt index 280ab3eed..727593848 100644 --- a/lib/plugins/styling/lang/nl/intro.txt +++ b/lib/plugins/styling/lang/nl/intro.txt @@ -1,2 +1,2 @@ -Deze tool laat u toe om bepaalde stijl instellingen van uw huidig geselecteerd sjabloon aan te passen. -Alle aanpassingen worden in een lokaal configuratie bestand bewaard en zijn upgrade veilig. \ No newline at end of file +Deze tool laat u een aantal stijlinstellingen van uw huidig geselecteerde template aanpassen. +Alle aanpassingen worden in een lokaal configuratiebestand bewaard en zijn upgrade veilig. -- GitLab From 352564b7bd4247412139ce3cf33f8adac6cce7b3 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 13:45:19 +0200 Subject: [PATCH 302/440] Update lang.php --- lib/plugins/styling/lang/nl/lang.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/plugins/styling/lang/nl/lang.php b/lib/plugins/styling/lang/nl/lang.php index c5bbe77d3..dd258051e 100644 --- a/lib/plugins/styling/lang/nl/lang.php +++ b/lib/plugins/styling/lang/nl/lang.php @@ -6,14 +6,14 @@ * @author Mark C. Prins <mprins@users.sf.net> * @author hugo smet <hugo.smet@scarlet.be> */ -$lang['menu'] = 'Sjabloon stijl instellingen'; -$lang['js']['loader'] = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijks foutief.'; +$lang['menu'] = 'Template stijl-instellingen'; +$lang['js']['loader'] = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijk foutief.'; $lang['js']['popup'] = 'Open als popup'; -$lang['error'] = 'Sorry, dit sjabloon ondersteunt deze functionaliteit niet.'; +$lang['error'] = 'Sorry, deze template ondersteunt deze functionaliteit niet.'; $lang['btn_preview'] = 'Bekijk aanpassingen'; $lang['btn_save'] = 'Sla aanpassingen op'; $lang['btn_reset'] = 'Huidige aanpassingen verwerpen'; -$lang['btn_revert'] = 'Stijlen terugzetten naar de template default'; +$lang['btn_revert'] = 'Stijlen terugzetten naar de standaard waardes van de template'; $lang['__text__'] = 'Hoofd tekstkleur'; $lang['__background__'] = 'Hoofd achtergrondkleur'; $lang['__text_alt__'] = 'Alternatieve tekstkleur'; @@ -21,4 +21,4 @@ $lang['__background_alt__'] = 'Alternatieve achtergrondkleur'; $lang['__text_neu__'] = 'Neutrale tekstkleur'; $lang['__background_neu__'] = 'Neutrale achtergrondkleur'; $lang['__border__'] = 'Kader kleur'; -$lang['__highlight__'] = 'Accentkleur (hoofdzakelijk voor zoekresultaten)'; +$lang['__highlight__'] = 'Markeringskleur (hoofdzakelijk voor zoekresultaten)'; -- GitLab From 5c044c07690bcddc31bf834bb7e326798cddf389 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 13:48:09 +0200 Subject: [PATCH 303/440] Update lang.php --- lib/plugins/extension/lang/nl/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/extension/lang/nl/lang.php b/lib/plugins/extension/lang/nl/lang.php index b2bb46bae..ead2d9e8f 100644 --- a/lib/plugins/extension/lang/nl/lang.php +++ b/lib/plugins/extension/lang/nl/lang.php @@ -34,7 +34,7 @@ $lang['js']['reallydel'] = 'Wilt u deze uitbreiding deinstalleren?'; $lang['js']['display_viewoptions'] = 'Weergave opties:'; $lang['js']['display_enabled'] = 'ingeschakeld'; $lang['js']['display_disabled'] = 'uitgeschakeld'; -$lang['js']['display_updatable'] = 'aanpasbaar'; +$lang['js']['display_updatable'] = 'update beschikbaar'; $lang['search_for'] = 'Zoek Uitbreiding:'; $lang['search'] = 'Zoek'; $lang['extensionby'] = '<strong>%s</strong> by %s'; -- GitLab From 8a5ec0ae4ee1f6ad3e79b558700879e514542602 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 13:54:27 +0200 Subject: [PATCH 304/440] Update style.txt --- lib/tpl/dokuwiki/lang/nl/style.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/lang/nl/style.txt b/lib/tpl/dokuwiki/lang/nl/style.txt index 5dbc61568..55de5c7c0 100644 --- a/lib/tpl/dokuwiki/lang/nl/style.txt +++ b/lib/tpl/dokuwiki/lang/nl/style.txt @@ -1 +1 @@ -Wil je de logo aanpassen, gebruik dan de Media Manager en een "logo.png" in "wiki" of root naamruimte opladen, waarna het automatisch gebruikt wordt. Je kan ook een "favicon.ico" hiervoor gebruiken. Indien je een gesloten wiki gebruikt is het aangeraden om de "wiki" (of root) naamruimte leesbaar te maken voor iedereen in de ACL instellingen of je logo wordt niet getoond aan niet ingelogde gebruikers. \ No newline at end of file +Wil je het logo aanpassen, gebruik dan de Media Manager om een "logo.png" in "wiki" of root naamruimte te uploaden. Dit logo zal dan automatisch gebruikt worden. Je kunt zo ook een "favicon.ico" uploaden. Indien je een gesloten wiki gebruikt is het aan te raden om de "wiki" (of root) naamruimte leesbaar te maken voor iedereen via de ACL instellingen, want anders wordt je logo niet getoond aan niet-ingelogde gebruikers. -- GitLab From 62017a67fa8f78ee4d06aa2015ebd8c744299bd5 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 13:55:53 +0200 Subject: [PATCH 305/440] Update lang.php --- lib/tpl/dokuwiki/lang/nl/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/lang/nl/lang.php b/lib/tpl/dokuwiki/lang/nl/lang.php index 474ecb744..cb84fd82a 100644 --- a/lib/tpl/dokuwiki/lang/nl/lang.php +++ b/lib/tpl/dokuwiki/lang/nl/lang.php @@ -5,7 +5,7 @@ * * @author hugo smet <hugo.smet@scarlet.be> */ -$lang['__background_site__'] = 'Kleur voor de echter ondergrond (achter de inhoud kader)'; +$lang['__background_site__'] = 'Kleur voor de onderste ondergrond (achter de inhoud kader)'; $lang['__link__'] = 'Kleur voor algemene link'; $lang['__existing__'] = 'Kleur voor link naar bestaande pagina\'s.'; $lang['__missing__'] = 'Kleur voor link naar onbestaande pagina\'s'; -- GitLab From 66ff014ab579963895d7c103592a980c35b5845f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Fri, 31 Jul 2015 14:01:54 +0200 Subject: [PATCH 306/440] Update lang.php --- lib/plugins/config/lang/nl/lang.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php index c157b64a0..a9791b787 100644 --- a/lib/plugins/config/lang/nl/lang.php +++ b/lib/plugins/config/lang/nl/lang.php @@ -30,7 +30,7 @@ $lang['security'] = 'Beveiligingswaarschuwing: Het wijzigen van dez $lang['_configuration_manager'] = 'Configuratiemanager'; $lang['_header_dokuwiki'] = 'DokuWiki-instellingen'; $lang['_header_plugin'] = 'Plugin-instellingen'; -$lang['_header_template'] = 'Sjabloon-instellingen'; +$lang['_header_template'] = 'Template-instellingen'; $lang['_header_undefined'] = 'Ongedefinieerde instellingen'; $lang['_basic'] = 'Basisinstellingen'; $lang['_display'] = 'Beeldinstellingen'; @@ -49,9 +49,9 @@ $lang['_msg_setting_no_default'] = 'Geen standaard waarde.'; $lang['title'] = 'Titel van de wiki'; $lang['start'] = 'Naam startpagina'; $lang['lang'] = 'Taal'; -$lang['template'] = 'Sjabloon ofwel het design van de wiki.'; -$lang['tagline'] = 'Ondertitel (als het sjabloon dat ondersteunt)'; -$lang['sidebar'] = 'Zijbalk-paginanaam (als het sjabloon dat ondersteunt), leeg veld betekent geen zijbalk'; +$lang['template'] = 'Template ofwel het design van de wiki.'; +$lang['tagline'] = 'Ondertitel (als het template dat ondersteunt)'; +$lang['sidebar'] = 'Zijbalk-paginanaam (als het template dat ondersteunt), leeg veld betekent geen zijbalk'; $lang['license'] = 'Onder welke licentie zou je tekst moeten worden gepubliceerd?'; $lang['savedir'] = 'Directory om data op te slaan'; $lang['basedir'] = 'Basisdirectory'; -- GitLab From 7b4365a732a993fcabe66b9ff4b4c85afb5ae367 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 1 Aug 2015 02:20:13 +0200 Subject: [PATCH 307/440] TPL_ACTION_UNKNOWN event for building action/button links --- inc/template.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/inc/template.php b/inc/template.php index f918d1a04..5508233ae 100644 --- a/inc/template.php +++ b/inc/template.php @@ -647,6 +647,8 @@ function tpl_get_action($type) { $params = array('do' => $type); $nofollow = true; $replacement = ''; + + $unknown = false; switch($type) { case 'edit': // most complicated type - we need to decide on current action @@ -771,9 +773,23 @@ function tpl_get_action($type) { //$type = 'media'; break; default: - return '[unknown %s type]'; + //unknown type + $unknown = true; } - return compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement'); + + $data = compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement'); + + $evt = new Doku_Event('TPL_ACTION_UNKNOWN', $data); + if($evt->advise_before()) { + //handle unknown types + if($unknown) { + $data = '[unknown %s type]'.$type; + } + } + $evt->advise_after(); + unset($evt); + + return $data; } /** -- GitLab From 84dd2b1a576208ba24c01a2df14bdbed57a8ece8 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 1 Aug 2015 02:23:07 +0200 Subject: [PATCH 308/440] TEMPLATE_SITETOOLS_DISPLAY and TEMPLATE_USERTOOLS_DISPLAY re-add PR #470 again. --- inc/template.php | 22 ++++++++++++++++++++++ lib/tpl/dokuwiki/tpl_header.php | 18 +++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/inc/template.php b/inc/template.php index f918d1a04..70d93669d 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1982,5 +1982,27 @@ function tpl_classes() { return join(' ', $classes); } +/** + * Create event for tools menues + * + * @author Anika Henke <anika@selfthinker.org> + * @param string $toolsname name of menu + * @param array $items + * @param string $view e.g. 'main', 'detail', ... + */ +function tpl_toolsevent($toolsname, $items, $view = 'main') { + $data = array( + 'view' => $view, + 'items' => $items + ); + + $hook = 'TEMPLATE_' . strtoupper($toolsname) . '_DISPLAY'; + $evt = new Doku_Event($hook, $data); + if($evt->advise_before()) { + foreach($evt->data['items'] as $k => $html) echo $html; + } + $evt->advise_after(); +} + //Setup VIM: ex: et ts=4 : diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index ee51cbd01..ab56f1ef8 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -46,10 +46,12 @@ if (!defined('DOKU_INC')) die(); tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } - tpl_action('admin', true, 'li'); - tpl_action('profile', true, 'li'); - tpl_action('register', true, 'li'); - tpl_action('login', true, 'li'); + tpl_toolsevent('usertools', array( + tpl_action('admin', true, 'li', true), + tpl_action('profile', true, 'li', true), + tpl_action('register', true, 'li', true), + tpl_action('login', true, 'li', true) + )); ?> </ul> </div> @@ -64,9 +66,11 @@ if (!defined('DOKU_INC')) die(); </div> <ul> <?php - tpl_action('recent', true, 'li'); - tpl_action('media', true, 'li'); - tpl_action('index', true, 'li'); + tpl_toolsevent('sitetools', array( + tpl_action('recent', true, 'li', true), + tpl_action('media', true, 'li', true), + tpl_action('bds', true, 'li', true) + )); ?> </ul> </div> -- GitLab From 38d2ca460b25ec1ea86d513fa5eed27c362904d5 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sat, 1 Aug 2015 02:30:52 +0200 Subject: [PATCH 309/440] remove debug var --- inc/template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/template.php b/inc/template.php index 5508233ae..c5b2d566a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -783,7 +783,7 @@ function tpl_get_action($type) { if($evt->advise_before()) { //handle unknown types if($unknown) { - $data = '[unknown %s type]'.$type; + $data = '[unknown %s type]'; } } $evt->advise_after(); -- GitLab From 09ff5cd824189dcdf50c4bfd0c5f4a6cd9f50d34 Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sat, 1 Aug 2015 10:46:39 +0200 Subject: [PATCH 310/440] translation update --- inc/lang/ko/backlinks.txt | 2 +- inc/lang/ko/draft.txt | 2 +- inc/lang/ko/lang.php | 10 ++++----- lib/plugins/acl/lang/ko/lang.php | 8 +++---- lib/plugins/config/lang/ko/lang.php | 28 ++++++++++++------------ lib/plugins/usermanager/lang/ko/lang.php | 2 +- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/inc/lang/ko/backlinks.txt b/inc/lang/ko/backlinks.txt index 6a6ad48a4..457974d86 100644 --- a/inc/lang/ko/backlinks.txt +++ b/inc/lang/ko/backlinks.txt @@ -1,3 +1,3 @@ -====== ë°±ë§í¬ ====== +====== ì—ë§í¬ ====== 현재 문서를 가리키는 ë§í¬ê°€ 있는 문서 목ë¡ìž…니다. \ No newline at end of file diff --git a/inc/lang/ko/draft.txt b/inc/lang/ko/draft.txt index 7e700f725..bb6dc8c00 100644 --- a/inc/lang/ko/draft.txt +++ b/inc/lang/ko/draft.txt @@ -2,4 +2,4 @@ ì´ ë¬¸ì„œì˜ ë§ˆì§€ë§‰ 편집 ì„¸ì…˜ì€ ì˜¬ë°”ë¥´ê²Œ ë나지 않았습니다. ë„ì¿ ìœ„í‚¤ëŠ” ìž‘ì—… ë„중 ìžë™ìœ¼ë¡œ ì €ìž¥ëœ ì´ˆì•ˆì„ ì‚¬ìš©í•´ íŽ¸ì§‘ì„ ê³„ì† í• ìˆ˜ 있습니다. 마지막 세션 ë™ì•ˆ ì €ìž¥ëœ ì´ˆì•ˆì„ ì•„ëž˜ì—ì„œ ë³¼ 수 있습니다. -ë¹„ì •ìƒì 으로 ëë‚œ 편집 ì„¸ì…˜ì„ **ë˜ëŒë¦´**지 여부를 ê²°ì •í•˜ê³ , ìžë™ìœ¼ë¡œ ì €ìž¥ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file +ë¹„ì •ìƒì 으로 ëë‚œ 편집 ì„¸ì…˜ì„ **복구**í• ì§€ 여부를 ê²°ì •í•˜ê³ , ìžë™ìœ¼ë¡œ ì €ìž¥ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index beec62aa9..5ee0df829 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -30,8 +30,8 @@ $lang['btn_search'] = '검색'; $lang['btn_save'] = 'ì €ìž¥'; $lang['btn_preview'] = '미리 보기'; $lang['btn_top'] = '맨 위로'; -$lang['btn_newer'] = '<< 최근 바뀜 ë” ë³´ê¸°'; -$lang['btn_older'] = '최근 바뀜 ëœ ë³´ê¸° >>'; +$lang['btn_newer'] = '<< ë” ìµœê·¼'; +$lang['btn_older'] = 'ëœ ìµœê·¼ >>'; $lang['btn_revs'] = 'ì´ì „ íŒ'; $lang['btn_recent'] = '최근 바뀜'; $lang['btn_upload'] = '올리기'; @@ -41,16 +41,16 @@ $lang['btn_secedit'] = '편집'; $lang['btn_login'] = '로그ì¸'; $lang['btn_logout'] = '로그아웃'; $lang['btn_admin'] = '관리'; -$lang['btn_update'] = '바꾸기'; +$lang['btn_update'] = 'ì—…ë°ì´íŠ¸'; $lang['btn_delete'] = 'ì‚ì œ'; $lang['btn_back'] = '뒤로'; -$lang['btn_backlink'] = 'ë°±ë§í¬'; +$lang['btn_backlink'] = 'ì—ë§í¬'; $lang['btn_subscribe'] = 'êµ¬ë… ê´€ë¦¬'; $lang['btn_profile'] = '프로필 ì—…ë°ì´íŠ¸'; $lang['btn_reset'] = 'ìž¬ì„¤ì •'; $lang['btn_resendpwd'] = '새 비밀번호 ì„¤ì •'; $lang['btn_draft'] = '초안 편집'; -$lang['btn_recover'] = '초안 ë˜ëŒë¦¬ê¸°'; +$lang['btn_recover'] = '초안 복구'; $lang['btn_draftdel'] = '초안 ì‚ì œ'; $lang['btn_revert'] = 'ë˜ëŒë¦¬ê¸°'; $lang['btn_register'] = '등ë¡'; diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 35563ff6c..40b6ff351 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -21,10 +21,10 @@ $lang['acl_perms'] = '권한'; $lang['page'] = '문서'; $lang['namespace'] = 'ì´ë¦„공간'; $lang['btn_select'] = 'ì„ íƒ'; -$lang['p_user_id'] = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclpage">%s</b>: <i>%s</i> 문서 ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; -$lang['p_user_ns'] = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„공간 ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; -$lang['p_group_id'] = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclpage">%s</b>: <i>%s</i> 문서 ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; -$lang['p_group_ns'] = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„공간 ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; +$lang['p_user_id'] = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclpage">%s</b>: <i>%s</i> ë¬¸ì„œì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; +$lang['p_user_ns'] = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„ê³µê°„ì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; +$lang['p_group_id'] = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclpage">%s</b>: <i>%s</i> ë¬¸ì„œì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; +$lang['p_group_ns'] = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„ê³µê°„ì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.'; $lang['p_choose_id'] = '<b class="aclpage">%s</b> 문서 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ ë°”ê¾¸ë ¤ë©´ <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— ìž…ë ¥í•˜ì„¸ìš”.'; $lang['p_choose_ns'] = '<b class="aclns">%s</b> ì´ë¦„공간 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ ë°”ê¾¸ë ¤ë©´ <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— ìž…ë ¥í•˜ì„¸ìš”.'; $lang['p_inherited'] = 'ì°¸ê³ : ê¶Œí•œì´ ëª…ì‹œì 으로 ì„¤ì •ë˜ì§€ 않았으므로 다른 그룹ì´ë‚˜ ìƒìœ„ ì´ë¦„공간으로부터 ê°€ì ¸ì™”ìŠµë‹ˆë‹¤.'; diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 85326241b..420946f84 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -136,20 +136,20 @@ $lang['autoplural'] = 'ë§í¬ì—ì„œ 복수형 검사'; $lang['compression'] = '첨부 파ì¼ì˜ 압축 방법'; $lang['gzip_output'] = 'xhtmlì— ëŒ€í•´ gzip ë‚´ìš© ì¸ì½”딩 사용'; $lang['compress'] = 'CSS ë° ìžë°”스í¬ë¦½íŠ¸ë¥¼ 압축하여 ì¶œë ¥'; -$lang['cssdatauri'] = 'ê·¸ë¦¼ì´ ë Œë”ë§ë 최대 용량 í¬ê¸°ë¥¼ CSSì— ê·œì •í•´ì•¼ HTTP ìš”ì² í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ê°ì†Œì‹œí‚¬ 수 있습니다. ì´ ê¸°ìˆ ì€ IE 7 ì´í•˜ì—서는 ìž‘ë™í•˜ì§€ 않습니다! <code>400</code>ì—ì„œ <code>600</code> ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. <code>0</code>ë¡œ ì§€ì •í• ê²½ìš° 비활성화 ë©ë‹ˆë‹¤.'; +$lang['cssdatauri'] = 'CSS 파ì¼ì—ì„œ ê·¸ë¦¼ì´ ì°¸ì¡°ë˜ëŠ” 최대 ë°”ì´íŠ¸ í¬ê¸°ë¥¼ 스타ì¼ì‹œíŠ¸ì— ê·œì •í•´ì•¼ HTTP ìš”ì² í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ì¤„ì¼ ìˆ˜ 있습니다. ì´ ê¸°ìˆ ì€ IE 7 ì´í•˜ì—서는 ìž‘ë™í•˜ì§€ 않습니다! <code>400</code>ì—ì„œ <code>600</code> ë°”ì´íŠ¸ ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. ë¹„í™œì„±í™”í•˜ë ¤ë©´ <code>0</code>으로 ì„¤ì •í•˜ì„¸ìš”.'; $lang['send404'] = '존재하지 않는 ë¬¸ì„œì— "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" 보내기'; -$lang['broken_iua'] = 'ì„¤ì¹˜ëœ ì‹œìŠ¤í…œì—ì„œ ignore_user_abort ê¸°ëŠ¥ì— ë¬¸ì œê°€ 있습니까? ë¬¸ì œê°€ 있다면 검색 색ì¸ì´ ì •ìƒì 으로 ë™ìž‘하지 않습니다. ì´ ê¸°ëŠ¥ì´ IIS+PHP/CGIì—ì„œ ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì¡ŒìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">버그 852</a>를 ì°¸ê³ í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; -$lang['xsendfile'] = '웹 서버가 ì •ì 파ì¼ì„ ì œê³µí•˜ë„ë¡ X-Sendfile í—¤ë”를 ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; +$lang['broken_iua'] = '시스템ì—ì„œ ignore_user_abort í•¨ìˆ˜ì— ë¬¸ì œê°€ 있습니까? ë¬¸ì œê°€ 있다면 검색 색ì¸ì´ ë™ìž‘하지 않는 ì›ì¸ì´ ë©ë‹ˆë‹¤. ì´ í•¨ìˆ˜ê°€ IIS+PHP/CGIì—ì„œ ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì ¸ 있습니다. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">버그 852</a>를 참조하시기 ë°”ëžë‹ˆë‹¤.'; +$lang['xsendfile'] = '웹 서버가 ì •ì 파ì¼ì„ ì œê³µí• ìˆ˜ 있ë„ë¡ X-Sendfile í—¤ë”를 ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; $lang['renderer_xhtml'] = '주요 (xhtml) 위키 ì¶œë ¥ì— ì‚¬ìš©í• ë Œë”러'; $lang['renderer__core'] = '%s (ë„ì¿ ìœ„í‚¤ 코어)'; $lang['renderer__plugin'] = '%s (플러그ì¸)'; -$lang['dnslookups'] = 'ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ ë„ì¿ ìœ„í‚¤ê°€ 문서를 편집하는 사용ìžì˜ 호스트 네임과 ì›ê²© IP 주소를 확ì¸í•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜, DNS를 ìš´ì˜í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›ì¹˜ 않으면 비활성화하세요'; +$lang['dnslookups'] = 'ë„ì¿ ìœ„í‚¤ê°€ 문서를 편집하는 사용ìžì˜ ì›ê²© IP ì£¼ì†Œì— ëŒ€í•œ 호스트 ì´ë¦„ì„ ì¡°íšŒí•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜ DNS 서버를 ìž‘ë™í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›í•˜ì§€ 않으면, ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”'; $lang['proxy____host'] = '프ë¡ì‹œ 서버 ì´ë¦„'; $lang['proxy____port'] = '프ë¡ì‹œ í¬íŠ¸'; $lang['proxy____user'] = '프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„'; $lang['proxy____pass'] = '프ë¡ì‹œ 비밀번호'; $lang['proxy____ssl'] = '프ë¡ì‹œë¡œ 연결하는 ë° SSL 사용'; -$lang['proxy____except'] = '프ë¡ì‹œ ì„¤ì •ì´ ë¬´ì‹œë URLì£¼ì†Œì˜ ì •ê·œ 표현ì‹'; +$lang['proxy____except'] = '프ë¡ì‹œê°€ 건너뛰어야 í• ì¼ì¹˜í•˜ëŠ” URLì˜ ì •ê·œ 표현ì‹.'; $lang['safemodehack'] = 'safemode hack 활성화'; $lang['ftp____host'] = 'safemode hackì˜ FTP 서버'; $lang['ftp____port'] = 'safemode hackì˜ FTP í¬íŠ¸'; @@ -158,8 +158,8 @@ $lang['ftp____pass'] = 'safemode hackì˜ FTP 비밀번호'; $lang['ftp____root'] = 'safemode hackì˜ FTP 루트 ë””ë ‰í„°ë¦¬'; $lang['license_o_'] = 'ì„ íƒí•˜ì§€ ì•ŠìŒ'; $lang['typography_o_0'] = 'ì—†ìŒ'; -$lang['typography_o_1'] = 'ì´ì¤‘ ì¸ìš©ë¶€í˜¸("")만 지ì›'; -$lang['typography_o_2'] = 'ëª¨ë“ ê°€ëŠ¥í•œ ì¸ìš© 부호 (ë™ìž‘ 안ë ìˆ˜ë„ ìžˆìŒ)'; +$lang['typography_o_1'] = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ ì œì™¸'; +$lang['typography_o_2'] = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ í¬í•¨ (í•ìƒ ë™ìž‘하지 ì•Šì„ ìˆ˜ë„ ìžˆìŒ)'; $lang['userewrite_o_0'] = 'ì—†ìŒ'; $lang['userewrite_o_1'] = '.htaccess'; $lang['userewrite_o_2'] = 'ë„ì¿ ìœ„í‚¤ 내부'; @@ -175,20 +175,20 @@ $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; $lang['rss_content_o_abstract'] = '개요'; -$lang['rss_content_o_diff'] = '통합 ì°¨ì´ ëª©ë¡'; -$lang['rss_content_o_htmldiff'] = 'HTML ì°¨ì´ ëª©ë¡ í˜•ì‹'; -$lang['rss_content_o_html'] = '최대 HTML 페ì´ì§€ ë‚´ìš©'; +$lang['rss_content_o_diff'] = '통합 ì°¨ì´'; +$lang['rss_content_o_htmldiff'] = 'HTML 형ì‹ì˜ ì°¨ì´ í‘œ'; +$lang['rss_content_o_html'] = 'ì „ì²´ HTML 페ì´ì§€ ë‚´ìš©'; $lang['rss_linkto_o_diff'] = 'ì°¨ì´ ë³´ê¸°'; -$lang['rss_linkto_o_page'] = 'ë°”ë€ ë¬¸ì„œ 보기'; +$lang['rss_linkto_o_page'] = 'ê°œì •ëœ ë¬¸ì„œ'; $lang['rss_linkto_o_rev'] = 'íŒì˜ 목ë¡'; $lang['rss_linkto_o_current'] = '현재 문서'; $lang['compression_o_0'] = 'ì—†ìŒ'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; $lang['xsendfile_o_0'] = '사용하지 ì•ŠìŒ'; -$lang['xsendfile_o_1'] = '비공개 lighttpd í—¤ë” (1.5 ì´ì „ ë²„ì „)'; +$lang['xsendfile_o_1'] = 'ì‚¬ìœ lighttpd í—¤ë” (릴리스 1.5 ì´ì „)'; $lang['xsendfile_o_2'] = '표준 X-Sendfile í—¤ë”'; -$lang['xsendfile_o_3'] = '비공개 Nginx X-Accel-Redirect í—¤ë”'; +$lang['xsendfile_o_3'] = 'ì‚¬ìœ Nginx X-Accel-Redirect í—¤ë”'; $lang['showuseras_o_loginname'] = 'ë¡œê·¸ì¸ ì´ë¦„'; $lang['showuseras_o_username'] = '사용ìžì˜ 실명'; $lang['showuseras_o_username_link'] = 'ì¸í„°ìœ„키 ì‚¬ìš©ìž ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ 실명'; @@ -198,4 +198,4 @@ $lang['useheading_o_0'] = 'ì „í˜€ ì—†ìŒ'; $lang['useheading_o_navigation'] = '둘러보기ì—만'; $lang['useheading_o_content'] = '위키 ë‚´ìš©ì—만'; $lang['useheading_o_1'] = 'í•ìƒ'; -$lang['readdircache'] = 'readdir ìºì‹œë¥¼ 위한 최대 시간 (ì´ˆ)'; +$lang['readdircache'] = 'readdir ìºì‹œì˜ 최대 시간 (ì´ˆ)'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index e8f846ce6..ec55d5586 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -53,7 +53,7 @@ $lang['edit_usermissing'] = 'ì„ íƒëœ 사용ìžë¥¼ ì°¾ì„ ìˆ˜ 없습니다 $lang['user_notify'] = '사용ìžì—게 알림'; $lang['note_notify'] = '사용ìžì—게 새로운 비밀번호를 준 경우ì—만 알림 ì´ë©”ì¼ì´ 보내집니다.'; $lang['note_group'] = '새로운 사용ìžëŠ” ì–´ë–¤ ê·¸ë£¹ë„ ì„¤ì •í•˜ì§€ ì•Šì€ ê²½ìš°ì— ê¸°ë³¸ 그룹(%s)ì— ì¶”ê°€ë©ë‹ˆë‹¤.'; -$lang['note_pass'] = 'ì‚¬ìš©ìž ì•Œë¦¼ì´ ì§€ì •ë˜ì–´ ìžˆì„ ë•Œ í•„ë“œì— ì•„ë¬´ ê°’ë„ ìž…ë ¥í•˜ì§€ 않으면 비밀번호가 ìžë™ìœ¼ë¡œ 만들어집니다.'; +$lang['note_pass'] = 'ì‚¬ìš©ìž ì•Œë¦¼ì´ ì§€ì •ë˜ì–´ ìžˆì„ ë•Œ í•„ë“œì— ì•„ë¬´ ê°’ë„ ìž…ë ¥í•˜ì§€ 않으면 비밀번호가 ìžë™ìœ¼ë¡œ ìƒì„±ë©ë‹ˆë‹¤.'; $lang['add_ok'] = '사용ìžë¥¼ 성공ì 으로 추가했습니다'; $lang['add_fail'] = 'ì‚¬ìš©ìž ì¶”ê°€ë¥¼ 실패했습니다'; $lang['notify_ok'] = '알림 ì´ë©”ì¼ì„ 성공ì 으로 보냈습니다'; -- GitLab From a37d43dc292beee8ecfd46494e7e0e9dbcd107c7 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Sat, 1 Aug 2015 16:55:12 +0100 Subject: [PATCH 311/440] minor CSS adjustment in fullscreen media manager This is an odd one. I had made this change already in 0607bfee and (and dokufreaks/template-default@c7cf76d5 was part of that) for the default template and in selfthinker/dokuwiki_template_starter@cc172e9f for the starter template. The new 'dokuwiki' template was based on the starter template but before this change, so this never made it into the new default template. --- lib/tpl/dokuwiki/css/_media_fullscreen.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/tpl/dokuwiki/css/_media_fullscreen.css b/lib/tpl/dokuwiki/css/_media_fullscreen.css index 71308ec85..92a9d0730 100644 --- a/lib/tpl/dokuwiki/css/_media_fullscreen.css +++ b/lib/tpl/dokuwiki/css/_media_fullscreen.css @@ -407,19 +407,19 @@ /* file revisions form */ -#mediamanager__page #page__revisions ul { +#mediamanager__page form.changes ul { margin-left: 10px; padding: 0; list-style-type: none; } -#mediamanager__page #page__revisions ul li div.li div { +#mediamanager__page form.changes ul li div.li div { font-size: 90%; color: @ini_text_neu; padding-left: 18px; } -#mediamanager__page #page__revisions ul li div.li input { +#mediamanager__page form.changes ul li div.li input { position: relative; top: 1px; } -- GitLab From 80b13baa48275cef1ca6c6d3c715d21afd1138e7 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sun, 2 Aug 2015 00:16:05 +0200 Subject: [PATCH 312/440] typo --- inc/Form/Form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 2c893fbbc..625557fa1 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -316,7 +316,7 @@ class Form extends Element { $type = $this->elements[$pos]->getType(); if($type == 'fieldsetopen') { if($isopen) { - //close previous feldset + //close previous fieldset $this->addFieldsetClose($pos); $lastclose = $pos + 1; $pos++; -- GitLab From 3c8e094acdcf6d556f022bc224b81ef17e449281 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Sun, 2 Aug 2015 00:46:52 +0200 Subject: [PATCH 313/440] improve PHPDocs --- inc/Form/ValueElement.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Form/ValueElement.php b/inc/Form/ValueElement.php index 753704c70..9dc2fd0df 100644 --- a/inc/Form/ValueElement.php +++ b/inc/Form/ValueElement.php @@ -20,7 +20,7 @@ abstract class ValueElement extends Element { /** * @param string $type - * @param array $value + * @param array|string $value * @param array $attributes */ public function __construct($type, $value, $attributes = array()) { -- GitLab From a0b2c361babca045110eafa28de304202fde69b7 Mon Sep 17 00:00:00 2001 From: Myeongjin <aranet100@gmail.com> Date: Sun, 2 Aug 2015 11:47:00 +0900 Subject: [PATCH 314/440] translation update for media_viewold MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit edit translation of the user é’åå®ˆæŒ --- inc/lang/ja/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 290bb175b..38df66d1f 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -330,7 +330,7 @@ $lang['media_files'] = '%s 内ã®ãƒ•ã‚¡ã‚¤ãƒ«'; $lang['media_upload'] = '%s ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰'; $lang['media_search'] = '%s 内ã§æ¤œç´¢'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s at %s'; +$lang['media_viewold'] = '%2$s ã« %1$s'; $lang['media_edit'] = '%s を編集'; $lang['media_history'] = '%s ã®å±¥æ´'; $lang['media_meta_edited'] = 'メタデータãŒç·¨é›†ã•ã‚Œã¾ã—ãŸ'; -- GitLab From 84672e9cfa0f74c35c70c75d3b230e48ecd62212 Mon Sep 17 00:00:00 2001 From: Kiril <neohidra@gmail.com> Date: Sun, 2 Aug 2015 15:11:02 +0200 Subject: [PATCH 315/440] translation update --- inc/lang/bg/lang.php | 2 +- lib/plugins/extension/lang/bg/lang.php | 47 ++++++++++++++++++++++++ lib/plugins/usermanager/lang/bg/lang.php | 9 +++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index daeaf9bd6..f12b66a62 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -286,7 +286,7 @@ $lang['i_confexists'] = '<code>%s</code> вече ÑъщеÑтвува' $lang['i_writeerr'] = '<code>%s</code> не можа да бъде Ñъздаден. ТрÑбва да проверите правата за доÑтъп до директориÑта/файла и да Ñъздадете файла ръчно.'; $lang['i_badhash'] = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - непозволена или празна ÑтойноÑÑ‚'; -$lang['i_success'] = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php?id=wiki:welcome">Вашето ново DokuWiki</a>.'; +$lang['i_success'] = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php?id=wiki:welcome">Вашето новата инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° DokuWiki</a>.'; $lang['i_failure'] = 'Възникнаха грешки при запиÑването на файловете Ñ Ð½Ð°Ñтройки. ВероÑтно ще Ñе наложи да ги поправите ръчно, за да можете да ползвате <a href="doku.php?id=wiki:welcome">Вашето ново DokuWiki</a>.'; $lang['i_policy'] = 'Първоначална политика за доÑтъп'; diff --git a/lib/plugins/extension/lang/bg/lang.php b/lib/plugins/extension/lang/bg/lang.php index 430516dd1..b14442c55 100644 --- a/lib/plugins/extension/lang/bg/lang.php +++ b/lib/plugins/extension/lang/bg/lang.php @@ -5,22 +5,69 @@ * * @author Kiril <neohidra@gmail.com> */ +$lang['menu'] = 'ДиÑпечер на приÑтавки'; +$lang['tab_plugins'] = 'ИнÑталирани приÑтавки'; +$lang['tab_templates'] = 'ИнÑталирани шаблони'; $lang['tab_search'] = 'ТърÑене и инÑталиране'; $lang['tab_install'] = 'Ръчно инÑталиране'; $lang['notimplemented'] = 'ФункционалноÑтта вÑе още не реализирана'; +$lang['notinstalled'] = 'ПриÑтавката не е инÑталирана'; +$lang['alreadyenabled'] = 'ПриÑтавката е включена'; +$lang['alreadydisabled'] = 'ПриÑтавката е изключена'; +$lang['pluginlistsaveerror'] = 'Възникна грешка при запиÑването на ÑпиÑъка Ñ Ð¿Ñ€Ð¸Ñтавки'; $lang['unknownauthor'] = 'ÐеизвеÑтен автор'; $lang['unknownversion'] = 'ÐеизвеÑтна верÑиÑ'; $lang['btn_info'] = 'Повече информациÑ'; $lang['btn_update'] = 'Ðктуализиране'; $lang['btn_uninstall'] = 'ДеинÑталиране'; +$lang['btn_enable'] = 'Включване'; +$lang['btn_disable'] = 'Изключване'; $lang['btn_install'] = 'ИнÑталиране'; $lang['btn_reinstall'] = 'ПреинÑталиране'; +$lang['js']['reallydel'] = 'ÐаиÑтина ли желаете приÑтавката да бъде деинÑталирана?'; +$lang['js']['display_viewoptions'] = 'Филтриране:'; +$lang['js']['display_enabled'] = 'включени'; +$lang['js']['display_disabled'] = 'изключени'; +$lang['js']['display_updatable'] = 'Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸ актуализации'; +$lang['search_for'] = 'ТърÑене за приÑтавки:'; +$lang['search'] = 'ТърÑене'; +$lang['extensionby'] = '<strong>%s</strong> от %s'; $lang['popularity'] = 'ПопулÑрноÑÑ‚: %s%%'; +$lang['homepage_link'] = 'Документи'; +$lang['tags'] = 'Етикети:'; +$lang['author_hint'] = 'ТърÑене за други приÑтавки от този автор'; +$lang['downloadurl'] = 'СвалÑне от URL:'; $lang['repository'] = 'Хранилище:'; $lang['installed_version'] = 'ИнÑталирана верÑиÑ:'; +$lang['install_date'] = 'ПоÑледна актуализирана на:'; $lang['available_version'] = 'Ðалична верÑиÑ:'; $lang['compatible'] = 'СъвмеÑтимоÑÑ‚ Ñ:'; +$lang['depends'] = 'ИзиÑква:'; +$lang['similar'] = 'ÐаподобÑва:'; +$lang['conflicts'] = 'Ð’ кофликт Ñ:'; +$lang['repo_retry'] = 'Повторен опит'; $lang['provides'] = 'ОÑигурÑва:'; +$lang['status'] = 'СъÑтоÑние:'; +$lang['status_installed'] = 'инÑталирана'; +$lang['status_not_installed'] = 'неинÑталирана'; +$lang['status_protected'] = 'защитена'; +$lang['status_enabled'] = 'включена'; +$lang['status_disabled'] = 'изключена'; +$lang['status_plugin'] = 'приÑтавка'; +$lang['status_template'] = 'шаблон'; +$lang['msg_enabled'] = 'ПриÑтавката "%s" е включена'; +$lang['msg_disabled'] = 'ПриÑтавката "%s" е изключена'; +$lang['msg_delete_success'] = 'ПриÑтавката "%s" е деинÑталирана'; +$lang['msg_delete_failed'] = 'ДеинÑталирането на приÑтавката "%s" Ñе провали '; +$lang['msg_template_install_success'] = 'Шаблонът "%s" е инÑталиран уÑпешно'; +$lang['msg_template_update_success'] = 'Шаблонът "%s" е актуализиран уÑпешно'; +$lang['msg_plugin_install_success'] = 'ПриÑтавката "%s" е инÑталирана уÑпешно'; +$lang['msg_plugin_update_success'] = 'ПриÑтавката "%s" е актуализирана уÑпешно'; +$lang['msg_upload_failed'] = 'Качването на файлът Ñе провали'; +$lang['missing_dependency'] = '<strong>ИзиÑкван компонент липÑва или е изключен:</strong> %s'; +$lang['update_available'] = '<strong>ÐктуализациÑ:</strong> Ðалична е нова верÑÐ¸Ñ - %s'; +$lang['wrong_folder'] = '<strong>Ðекоректно инÑталирана приÑтавка:</strong> Преименувайте директориÑта "%s" на "%s".'; $lang['error_badurl'] = 'URL адреÑите Ñ‚Ñ€Ñбва да започват Ñ http или https'; +$lang['error_dircreate'] = 'Създаването на временна поапка за получаване на файла не е възможно'; $lang['error_download'] = 'ÐевъзможноÑÑ‚ за ÑвалÑне на файл: %s'; $lang['install_url'] = 'ИнÑталиране от URL:'; diff --git a/lib/plugins/usermanager/lang/bg/lang.php b/lib/plugins/usermanager/lang/bg/lang.php index aadf76512..f98cc8c40 100644 --- a/lib/plugins/usermanager/lang/bg/lang.php +++ b/lib/plugins/usermanager/lang/bg/lang.php @@ -28,6 +28,10 @@ $lang['search'] = 'ТърÑене'; $lang['search_prompt'] = 'ТърÑи'; $lang['clear'] = 'ОбновÑване на Ñ‚ÑŠÑ€Ñенето'; $lang['filter'] = 'Филтър'; +$lang['export_all'] = 'Ð˜Ð·Ð½Ð¾Ñ Ð½Ð° вÑички потребители (CSV)'; +$lang['import'] = 'Импорт на нови потребители'; +$lang['line'] = 'Ред â„–'; +$lang['error'] = 'Съобщение за грешка'; $lang['summary'] = 'Показване на потребители %1$d-%2$d от %3$d намерени. Общо %4$d потребителÑ.'; $lang['nonefound'] = 'Ðе Ñа намерени потребители. Общо %d потребителÑ.'; $lang['delete_ok'] = '%d изтрити потребителÑ'; @@ -48,3 +52,8 @@ $lang['add_ok'] = 'ДобавÑнето на потребител $lang['add_fail'] = 'ДобавÑнето на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñе провали'; $lang['notify_ok'] = 'Изпратено е оÑведомителен имейл'; $lang['notify_fail'] = 'Изпращането на оÑведомителен имейл не е възможно'; +$lang['import_error_badname'] = 'Грешно потребителÑко име'; +$lang['import_error_badmail'] = 'Грешен имейл адреÑ'; +$lang['import_error_upload'] = 'ВнаÑÑнето Ñе провали. CSV файлът не може да бъде качен или е празен.'; +$lang['import_error_readfail'] = 'ВнаÑÑнето Ñе провали. КачениÑÑ‚ файл не може да бъде прочетен.'; +$lang['import_error_create'] = 'ПотребителÑÑ‚ не може да бъде Ñъдаден'; -- GitLab From ac2f65aa15d785269723f1166fb17e223f93913d Mon Sep 17 00:00:00 2001 From: Sierra Bravo <sierra1bravo@gmail.com> Date: Mon, 3 Aug 2015 06:50:08 +0200 Subject: [PATCH 316/440] translation update --- inc/lang/ml/admin.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 inc/lang/ml/admin.txt diff --git a/inc/lang/ml/admin.txt b/inc/lang/ml/admin.txt new file mode 100644 index 000000000..0f9c81486 --- /dev/null +++ b/inc/lang/ml/admin.txt @@ -0,0 +1,3 @@ +====== പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ====== + +താഴെ കാണàµà´¨àµà´¨ പടàµà´Ÿà´¿à´• ഡോകàµà´•àµà´µà´¿à´•àµà´•à´¿à´¯à´¿àµ½ ഉളàµà´³ പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ആണൠ. \ No newline at end of file -- GitLab From 3131073da5a9b9c69c5b2b4509e985e9e27afe99 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Mon, 3 Aug 2015 13:42:10 +0200 Subject: [PATCH 317/440] rename to TPL_ACTION_GET This event handles both known core types and unknown types as default --- inc/template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/template.php b/inc/template.php index c5b2d566a..4433c508a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -779,7 +779,7 @@ function tpl_get_action($type) { $data = compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement'); - $evt = new Doku_Event('TPL_ACTION_UNKNOWN', $data); + $evt = new Doku_Event('TPL_ACTION_GET', $data); if($evt->advise_before()) { //handle unknown types if($unknown) { -- GitLab From b7f03851df576dfca3de8757d9b8a7a84e86c1a0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Mon, 3 Aug 2015 19:13:08 +0200 Subject: [PATCH 318/440] make sure pagetool sprite uilder is only run from command line --- lib/tpl/dokuwiki/images/pagetools-build.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/tpl/dokuwiki/images/pagetools-build.php b/lib/tpl/dokuwiki/images/pagetools-build.php index 3cf35b2ea..eaceeb257 100644 --- a/lib/tpl/dokuwiki/images/pagetools-build.php +++ b/lib/tpl/dokuwiki/images/pagetools-build.php @@ -15,6 +15,8 @@ $GAMMA = 0.8; $OPTIPNG = '/usr/bin/optipng'; +if('cli' != php_sapi_name()) die('please run from commandline'); + // load input images $input = glob('pagetools/*.png'); sort($input); -- GitLab From e27196a5a9f2248882de6e4b99e0239706a55770 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Mon, 3 Aug 2015 22:49:03 +0200 Subject: [PATCH 319/440] remove debug remainders --- lib/tpl/dokuwiki/tpl_header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index ab56f1ef8..5b092c564 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -69,7 +69,7 @@ if (!defined('DOKU_INC')) die(); tpl_toolsevent('sitetools', array( tpl_action('recent', true, 'li', true), tpl_action('media', true, 'li', true), - tpl_action('bds', true, 'li', true) + tpl_action('index', true, 'li', true) )); ?> </ul> -- GitLab From 122175ef72dbdbb1f8068bb5aff64abb374b81e6 Mon Sep 17 00:00:00 2001 From: Floriang <antispam@floriang.eu> Date: Tue, 4 Aug 2015 15:31:37 +0200 Subject: [PATCH 320/440] translation update --- inc/lang/fr/lang.php | 27 ++++++++++++++------------- inc/lang/fr/subscr_digest.txt | 2 +- inc/lang/fr/subscr_form.txt | 2 +- inc/lang/fr/subscr_list.txt | 2 +- inc/lang/fr/subscr_single.txt | 2 +- lib/plugins/config/lang/fr/lang.php | 1 + 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 8663c035f..c737862fc 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -37,6 +37,7 @@ * @author YoBoY <yoboy@ubuntu-fr.org> * @author james <j.mccann@celcat.com> * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + * @author Floriang <antispam@floriang.eu> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -68,7 +69,7 @@ $lang['btn_update'] = 'Mettre à jour'; $lang['btn_delete'] = 'Effacer'; $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens de retour'; -$lang['btn_subscribe'] = 'Gérer souscriptions'; +$lang['btn_subscribe'] = 'Gérer les abonnements'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; $lang['btn_resendpwd'] = 'Définir un nouveau mot de passe'; @@ -285,18 +286,18 @@ $lang['img_camera'] = 'Appareil photo:'; $lang['img_keywords'] = 'Mots-clés:'; $lang['img_width'] = 'Largeur:'; $lang['img_height'] = 'Hauteur:'; -$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste de souscription de %s'; -$lang['subscr_subscribe_error'] = 'Erreur à l\'ajout de %s à la liste de souscription de %s'; -$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre identifiant, vous ne pouvez pas être ajouté à la liste de souscription'; -$lang['subscr_unsubscribe_success'] = '%s a été supprimé de la liste de souscription de %s'; -$lang['subscr_unsubscribe_error'] = 'Erreur au retrait de %s de la liste de souscription de %s'; -$lang['subscr_already_subscribed'] = '%s est déjà souscrit à %s'; -$lang['subscr_not_subscribed'] = '%s n\'est pas souscrit à %s'; -$lang['subscr_m_not_subscribed'] = 'Vous n\'avez pas souscrit pour l\'instant à la page actuelle ou à la catégorie'; -$lang['subscr_m_new_header'] = 'Ajouter une souscription'; -$lang['subscr_m_current_header'] = 'Souscriptions actives'; -$lang['subscr_m_unsubscribe'] = 'Annuler la souscription'; -$lang['subscr_m_subscribe'] = 'Souscrire'; +$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste des abonnés de %s'; +$lang['subscr_subscribe_error'] = 'Erreur à l\'ajout de %s à la liste des abonnés de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre identifiant, vous ne pouvez pas être ajouté à la liste des abonnés.'; +$lang['subscr_unsubscribe_success'] = '%s a été supprimé de la liste des abonnés de %s'; +$lang['subscr_unsubscribe_error'] = 'Erreur au retrait de %s de la liste des abonnés de %s'; +$lang['subscr_already_subscribed'] = '%s est déjà abonné à %s'; +$lang['subscr_not_subscribed'] = '%s n\'est pas abonné à %s'; +$lang['subscr_m_not_subscribed'] = 'Vous n\'êtes pour l\'instant pas abonné à la page actuelle ou à la catégorie'; +$lang['subscr_m_new_header'] = 'Ajouter un abonnement'; +$lang['subscr_m_current_header'] = 'Abonnements actifs'; +$lang['subscr_m_unsubscribe'] = 'Annuler l\'abonnement'; +$lang['subscr_m_subscribe'] = 'S\'abonner'; $lang['subscr_m_receive'] = 'Recevoir'; $lang['subscr_style_every'] = 'Recevoir un courriel à chaque modification'; $lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page'; diff --git a/inc/lang/fr/subscr_digest.txt b/inc/lang/fr/subscr_digest.txt index 7ec75ca76..8c21e5787 100644 --- a/inc/lang/fr/subscr_digest.txt +++ b/inc/lang/fr/subscr_digest.txt @@ -14,6 +14,6 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. --- +-- Ce courriel a été généré par DokuWiki depuis @DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/fr/subscr_form.txt b/inc/lang/fr/subscr_form.txt index d68c05e6a..f14832e07 100644 --- a/inc/lang/fr/subscr_form.txt +++ b/inc/lang/fr/subscr_form.txt @@ -1,3 +1,3 @@ ====== Gestion des souscriptions ====== -Cette page vous permet de gérer vos souscriptions pour suivre les modifications sur la page et sur la catégorie courante. \ No newline at end of file +Cette page vous permet de gérer vos abonnements pour suivre les modifications sur la page et sur la catégorie courante. \ No newline at end of file diff --git a/inc/lang/fr/subscr_list.txt b/inc/lang/fr/subscr_list.txt index d8c6b68e4..38d76d8cc 100644 --- a/inc/lang/fr/subscr_list.txt +++ b/inc/lang/fr/subscr_list.txt @@ -11,6 +11,6 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. --- +-- Ce courriel a été généré par Dokuwiki : @DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/fr/subscr_single.txt b/inc/lang/fr/subscr_single.txt index 236d45e8f..13f2998d3 100644 --- a/inc/lang/fr/subscr_single.txt +++ b/inc/lang/fr/subscr_single.txt @@ -17,6 +17,6 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. --- +-- Ce courriel a été généré par Dokuwiki depuis @DOKUWIKIURL@ \ No newline at end of file diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 8a51c2b34..69e58f731 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -23,6 +23,7 @@ * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Carbain Frédéric <fcarbain@yahoo.fr> * @author Nicolas Friedli <nicolas@theologique.ch> + * @author Floriang <antispam@floriang.eu> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; -- GitLab From 32ba0f96c03b95b9edd0e633b77507db3e290182 Mon Sep 17 00:00:00 2001 From: lainme <lainme993@gmail.com> Date: Wed, 5 Aug 2015 14:01:17 +0200 Subject: [PATCH 321/440] translation update --- lib/plugins/authldap/lang/zh/settings.php | 3 ++- lib/plugins/authplain/lang/zh/lang.php | 8 ++++++-- lib/plugins/config/lang/zh/lang.php | 7 +++++-- lib/plugins/extension/lang/zh/lang.php | 2 +- lib/plugins/styling/lang/zh/intro.txt | 1 + lib/plugins/styling/lang/zh/lang.php | 23 +++++++++++++++++++++++ lib/tpl/dokuwiki/lang/zh/lang.php | 15 +++++++++++++++ lib/tpl/dokuwiki/lang/zh/style.txt | 1 + 8 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 lib/plugins/styling/lang/zh/intro.txt create mode 100644 lib/plugins/styling/lang/zh/lang.php create mode 100644 lib/tpl/dokuwiki/lang/zh/lang.php create mode 100644 lib/tpl/dokuwiki/lang/zh/style.txt diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index 11cba4f55..7bb63975f 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author lainme <lainme993@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> * @author Errol <errol@hotmail.com> @@ -21,6 +21,7 @@ $lang['binddn'] = '一个å¯é€‰çš„绑定用户的 DN (如果匿 $lang['bindpw'] = '上述用户的密ç '; $lang['userscope'] = 'é™åˆ¶ç”¨æˆ·æœç´¢çš„范围'; $lang['groupscope'] = 'é™åˆ¶ç»„æœç´¢çš„范围'; +$lang['userkey'] = '表示用户å的属性;必须和用户过滤器ä¿æŒä¸€è‡´ã€‚'; $lang['groupkey'] = 'æ ¹æ®ä»»ä½•ç”¨æˆ·å±žæ€§å¾—æ¥çš„组æˆå‘˜(而ä¸æ˜¯æ ‡å‡†çš„ AD 组)ï¼Œä¾‹å¦‚æ ¹æ®éƒ¨é—¨æˆ–者电è¯å·ç 得到的组。'; $lang['modPass'] = ' LDAP密ç å¯ä»¥ç”±dokuwiki修改å—?'; $lang['debug'] = '有错误时显示é¢å¤–的调试信æ¯'; diff --git a/lib/plugins/authplain/lang/zh/lang.php b/lib/plugins/authplain/lang/zh/lang.php index 03542fe72..3dcebd28d 100644 --- a/lib/plugins/authplain/lang/zh/lang.php +++ b/lib/plugins/authplain/lang/zh/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author lainme <lainme993@gmail.com> */ -$lang['userexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; +$lang['userexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; +$lang['usernotexists'] = '抱æ‰ï¼Œè¯¥ç”¨æˆ·ä¸å˜åœ¨'; +$lang['writefail'] = 'æ— æ³•ä¿®æ”¹ç”¨æˆ·æ•°æ®ã€‚请è”系维基管ç†å‘˜'; diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php index 364ad3fe6..5de24692e 100644 --- a/lib/plugins/config/lang/zh/lang.php +++ b/lib/plugins/config/lang/zh/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Chinese(Simplified) language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author ZDYX <zhangduyixiong@gmail.com> * @author http://www.chinese-tools.com/tools/converter-tradsimp.html * @author George Sheraton guxd@163.com @@ -90,7 +90,9 @@ $lang['disableactions'] = 'åœç”¨ DokuWiki 功能'; $lang['disableactions_check'] = '检查'; $lang['disableactions_subscription'] = '订阅/退订'; $lang['disableactions_wikicode'] = '查看æºæ–‡ä»¶/导出æºæ–‡ä»¶'; +$lang['disableactions_profile_delete'] = 'åˆ é™¤è‡ªå·±çš„è´¦æˆ·'; $lang['disableactions_other'] = '其他功能(用英文逗å·åˆ†éš”)'; +$lang['disableactions_rss'] = 'XML åŒæ¥ (RSS)'; $lang['auth_security_timeout'] = '认è¯å®‰å…¨è¶…时(秒)'; $lang['securecookie'] = 'è¦è®©æµè§ˆå™¨é¡»ä»¥HTTPSæ–¹å¼ä¼ é€åœ¨HTTPS会è¯ä¸è®¾ç½®çš„cookieså—?请åªåœ¨ç™»å½•è¿‡ç¨‹ä¸ºSSLåŠ å¯†è€Œæµè§ˆç»´åŸºä¸ºæ˜Žæ–‡çš„情况下打开æ¤é€‰é¡¹ã€‚'; $lang['remote'] = '激活远程 API 系统。这å…许其他程åºé€šè¿‡ XML-RPC 或其他机制æ¥è®¿é—®ç»´åŸºã€‚'; @@ -196,6 +198,7 @@ $lang['xsendfile_o_2'] = 'æ ‡å‡† X-Sendfile 头'; $lang['xsendfile_o_3'] = '专有 Nginx X-Accel-Redirect 头'; $lang['showuseras_o_loginname'] = '登录å'; $lang['showuseras_o_username'] = '用户全å'; +$lang['showuseras_o_username_link'] = '使用用户全å作为维基内的用户链接'; $lang['showuseras_o_email'] = '用户的电å邮箱(按邮箱ä¿æŠ¤è®¾ç½®åŠ 扰)'; $lang['showuseras_o_email_link'] = '以mailto:形å¼æ˜¾ç¤ºç”¨æˆ·çš„电å邮箱'; $lang['useheading_o_0'] = '从ä¸'; diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php index f07bee0ac..62d54c160 100644 --- a/lib/plugins/extension/lang/zh/lang.php +++ b/lib/plugins/extension/lang/zh/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Cupen <Cupenoruler@foxmail.com> * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> diff --git a/lib/plugins/styling/lang/zh/intro.txt b/lib/plugins/styling/lang/zh/intro.txt new file mode 100644 index 000000000..709171247 --- /dev/null +++ b/lib/plugins/styling/lang/zh/intro.txt @@ -0,0 +1 @@ +这个工具å¯ä»¥è®©æ‚¨å¯¹å½“å‰é€‰ä¸çš„模æ¿çš„æŸäº›æ ·å¼è®¾ç½®è¿›è¡Œæ”¹å˜ã€‚所有改动会ä¿å˜åœ¨ä¸€ä¸ªæœ¬åœ°é…置文件ä¸ï¼Œä¸ä¼šè¢«å‡çº§æ‰€å½±å“。 \ No newline at end of file diff --git a/lib/plugins/styling/lang/zh/lang.php b/lib/plugins/styling/lang/zh/lang.php new file mode 100644 index 000000000..805d070df --- /dev/null +++ b/lib/plugins/styling/lang/zh/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author lainme <lainme993@gmail.com> + */ +$lang['menu'] = '模æ¿æ ·å¼è®¾ç½®'; +$lang['js']['loader'] = 'æ£åœ¨è½½å…¥é¢„览...<br />如果本å¥ä¸€ç›´æ²¡æœ‰æ¶ˆå¤±ï¼Œæ‚¨çš„设置å¯èƒ½æœ‰é”™'; +$lang['js']['popup'] = '作为弹出窗å£æ‰“å¼€'; +$lang['error'] = '抱æ‰ï¼Œè¿™ä¸ªæ¨¡æ¿ä¸æ”¯æŒè¿™é¡¹åŠŸèƒ½ã€‚'; +$lang['btn_preview'] = '预览改动'; +$lang['btn_save'] = 'ä¿å˜æ”¹åŠ¨'; +$lang['btn_reset'] = 'é‡ç½®å½“å‰æ”¹åŠ¨'; +$lang['btn_revert'] = 'å›žé€€æ ·å¼åˆ°æ¨¡æ¿çš„默认值'; +$lang['__text__'] = '主è¦çš„å—体颜色'; +$lang['__background__'] = '主è¦çš„背景颜色'; +$lang['__text_alt__'] = '备选å—体的颜色'; +$lang['__background_alt__'] = '备选背景的颜色'; +$lang['__text_neu__'] = 'ä¸æ€§å—体的颜色'; +$lang['__background_neu__'] = 'ä¸æ€§èƒŒæ™¯çš„颜色'; +$lang['__border__'] = '边框颜色'; +$lang['__highlight__'] = '高亮颜色 (主è¦ç”¨äºŽæœç´¢ç»“æžœ)'; diff --git a/lib/tpl/dokuwiki/lang/zh/lang.php b/lib/tpl/dokuwiki/lang/zh/lang.php new file mode 100644 index 000000000..768114757 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/zh/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author lainme <lainme993@gmail.com> + */ +$lang['__background_site__'] = '特别背景的颜色 (内容框åŽé¢)'; +$lang['__link__'] = '一般链接的颜色'; +$lang['__existing__'] = '指å‘å˜åœ¨çš„页é¢çš„链接颜色'; +$lang['__missing__'] = '指å‘ä¸å˜åœ¨çš„页é¢çš„链接颜色'; +$lang['__site_width__'] = '全站的宽度 (å¯ä»¥æ˜¯ä»»ä½•é•¿åº¦å•ä½ï¼š%,px,em,...)'; +$lang['__sidebar_width__'] = '侧边æ 的宽度 (如有,å¯ä»¥æ˜¯ä»»ä½•é•¿åº¦å•ä½ï¼š%,px,em,...)'; +$lang['__tablet_width__'] = '当å±å¹•å°ºå¯¸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°å¹³æ¿æ¨¡å¼'; +$lang['__phone_width__'] = '当å±å¹•å°ºå¯¸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°æ‰‹æœºæ¨¡å¼'; diff --git a/lib/tpl/dokuwiki/lang/zh/style.txt b/lib/tpl/dokuwiki/lang/zh/style.txt new file mode 100644 index 000000000..3f6921201 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/zh/style.txt @@ -0,0 +1 @@ +如果您想调整logo,åªéœ€ä½¿ç”¨åª’体管ç†å™¨å°†â€œlogo.pngâ€ä¸Šä¼ 到“wikiâ€æˆ–è€…æ ¹å‘½å空间下。您也å¯ä»¥åŒæ ·ä¸Šä¼ 一个“favicon.icoâ€ã€‚如果您采用的是å°é—维基,建议在ACL设置ä¸å°†â€œwiki†(æˆ–è€…æ ¹) 命å空间设置为全局å¯è¯»ï¼Œå¦åˆ™æœªç™»å½•ç”¨æˆ·æ— 法看到您的logo。 \ No newline at end of file -- GitLab From dde14d5d482920ad26d3bb76876fd3842b85f687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederico=20Gon=C3=A7alves=20Guimar=C3=A3es?= <frederico@teia.bio.br> Date: Wed, 5 Aug 2015 22:31:11 +0200 Subject: [PATCH 322/440] translation update --- inc/lang/pt-br/lang.php | 3 +++ lib/plugins/authad/lang/pt-br/lang.php | 2 ++ lib/plugins/authldap/lang/pt-br/lang.php | 9 +++++++++ lib/plugins/authmysql/lang/pt-br/lang.php | 11 +++++++++++ lib/plugins/authplain/lang/pt-br/lang.php | 8 ++++++-- lib/plugins/config/lang/pt-br/lang.php | 8 ++++++-- lib/plugins/extension/lang/pt-br/lang.php | 7 ++++++- lib/plugins/styling/lang/pt-br/intro.txt | 2 ++ lib/plugins/styling/lang/pt-br/lang.php | 23 +++++++++++++++++++++++ lib/tpl/dokuwiki/lang/pt-br/lang.php | 15 +++++++++++++++ lib/tpl/dokuwiki/lang/pt-br/style.txt | 1 + 11 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 lib/plugins/authldap/lang/pt-br/lang.php create mode 100644 lib/plugins/authmysql/lang/pt-br/lang.php create mode 100644 lib/plugins/styling/lang/pt-br/intro.txt create mode 100644 lib/plugins/styling/lang/pt-br/lang.php create mode 100644 lib/tpl/dokuwiki/lang/pt-br/lang.php create mode 100644 lib/tpl/dokuwiki/lang/pt-br/style.txt diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 6c224483c..67b4651f2 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -90,6 +90,7 @@ $lang['regmissing'] = 'Desculpe, mas você precisa preencher todos os $lang['reguexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; $lang['regsuccess'] = 'O usuário foi criado e a senha enviada para seu e-mail.'; $lang['regsuccess2'] = 'O usuário foi criado.'; +$lang['regfail'] = 'Não foi possÃvel criar esse usuário.'; $lang['regmailfail'] = 'Aparentemente ocorreu um erro no envio da senha. Por favor, entre em contato com o administrador!'; $lang['regbadmail'] = 'O endereço de e-mail fornecido é, aparentemente, inválido - se você acha que isso é um erro, entre em contato com o administrador'; $lang['regbadpass'] = 'As senhas digitadas não são idênticas. Por favor, tente novamente.'; @@ -104,6 +105,7 @@ $lang['profdeleteuser'] = 'Excluir a conta'; $lang['profdeleted'] = 'Sua conta de usuário foi excluÃda desse wiki'; $lang['profconfdelete'] = 'Eu desejo remover minha conta dessa wiki. <br/> Essa ação não pode ser desfeita.'; $lang['profconfdeletemissing'] = 'Caixa de confirmação não marcada'; +$lang['proffail'] = 'O perfil do usuário não foi atualizado.'; $lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra'; $lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.'; $lang['resendpwd'] = 'Definir a nova senha para'; @@ -350,6 +352,7 @@ $lang['media_perm_read'] = 'Desculpe, mas você não tem privilégios sufi $lang['media_perm_upload'] = 'Desculpe, mas você não tem privilégios suficientes para enviar arquivos.'; $lang['media_update'] = 'Enviar uma nova versão'; $lang['media_restore'] = 'Restaurar esta versão'; +$lang['media_acl_warning'] = 'Essa lista pode não estar completa devido a restrições de ACL e páginas ocultas.'; $lang['currentns'] = 'DomÃnio atual'; $lang['searchresult'] = 'Resultado da Busca'; $lang['plainhtml'] = 'HTML simples'; diff --git a/lib/plugins/authad/lang/pt-br/lang.php b/lib/plugins/authad/lang/pt-br/lang.php index 9dc731b05..16fc39638 100644 --- a/lib/plugins/authad/lang/pt-br/lang.php +++ b/lib/plugins/authad/lang/pt-br/lang.php @@ -8,3 +8,5 @@ */ $lang['domain'] = 'DomÃnio de "Logon"'; $lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; +$lang['passchangefail'] = 'Não foi possÃvel alterar a senha. Pode ser algum conflito com a polÃtica de senhas.'; +$lang['connectfail'] = 'Não foi possÃvel conectar ao servidor Active Directory.'; diff --git a/lib/plugins/authldap/lang/pt-br/lang.php b/lib/plugins/authldap/lang/pt-br/lang.php new file mode 100644 index 000000000..20f5ec33b --- /dev/null +++ b/lib/plugins/authldap/lang/pt-br/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar ao LDAP: %s'; +$lang['domainfail'] = 'Não foi possÃvel encontrar o seu user dn no LDAP'; diff --git a/lib/plugins/authmysql/lang/pt-br/lang.php b/lib/plugins/authmysql/lang/pt-br/lang.php new file mode 100644 index 000000000..6b1a4c3ad --- /dev/null +++ b/lib/plugins/authmysql/lang/pt-br/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar ao banco de dados.'; +$lang['userexists'] = 'Desculpe, mas já existe esse nome de usuário.'; +$lang['usernotexists'] = 'Desculpe, mas esse usuário não existe.'; +$lang['writefail'] = 'Não foi possÃvel modificar os dados do usuário. Por favor, informe ao administrador do Wiki.'; diff --git a/lib/plugins/authplain/lang/pt-br/lang.php b/lib/plugins/authplain/lang/pt-br/lang.php index 3a9b67218..654ec2b80 100644 --- a/lib/plugins/authplain/lang/pt-br/lang.php +++ b/lib/plugins/authplain/lang/pt-br/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> */ -$lang['userexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; +$lang['userexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; +$lang['usernotexists'] = 'Desculpe, mas esse usuário não existe.'; +$lang['writefail'] = 'Não foi possÃvel modificar os dados do usuário. Por favor, informe ao administrador do Wiki.'; diff --git a/lib/plugins/config/lang/pt-br/lang.php b/lib/plugins/config/lang/pt-br/lang.php index 795ee81c0..625dc6a25 100644 --- a/lib/plugins/config/lang/pt-br/lang.php +++ b/lib/plugins/config/lang/pt-br/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Portuguese language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> * @author Felipe Castro <fefcas@gmail.com> * @author Lucien Raven <lucienraven@yahoo.com.br> @@ -92,7 +93,9 @@ $lang['disableactions'] = 'Desabilitar as ações do DokuWiki'; $lang['disableactions_check'] = 'Verificação'; $lang['disableactions_subscription'] = 'Monitoramento'; $lang['disableactions_wikicode'] = 'Ver a fonte/Exportar sem processamento'; +$lang['disableactions_profile_delete'] = 'Excluir a própria conta'; $lang['disableactions_other'] = 'Outras ações (separadas por vÃrgula)'; +$lang['disableactions_rss'] = 'Sindicância XML (RSS)'; $lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)'; $lang['securecookie'] = 'Os cookies definidos via HTTPS devem ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação, de maneira insegura.'; $lang['remote'] = 'Habilitar o sistema de API remota. Isso permite que outras aplicações acessem o wiki via XML-RPC ou outros mecanismos.'; @@ -197,6 +200,7 @@ $lang['xsendfile_o_2'] = 'cabeçalho "X-Sendfile" padrão'; $lang['xsendfile_o_3'] = 'cabeçalho proprietário "Nginx X-Accel-Redirect"'; $lang['showuseras_o_loginname'] = 'nome de usuário'; $lang['showuseras_o_username'] = 'nome completo do usuário'; +$lang['showuseras_o_username_link'] = 'Nome completo do usuário como um link de usuário interwiki'; $lang['showuseras_o_email'] = 'endereço de e-mail do usuário (obscurecido segundo a definição anterior)'; $lang['showuseras_o_email_link'] = 'endereço de e-mail de usuário como um link "mailto:"'; $lang['useheading_o_0'] = 'nunca'; diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php index 823900acf..73012f369 100644 --- a/lib/plugins/extension/lang/pt-br/lang.php +++ b/lib/plugins/extension/lang/pt-br/lang.php @@ -2,9 +2,10 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Felipe Castro <fefcas@gmail.com> * @author Hudson FAS <hudsonfas@gmail.com> + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> */ $lang['menu'] = 'Gerenciador de extensões'; $lang['tab_plugins'] = 'Extensões instaladas'; @@ -26,6 +27,10 @@ $lang['btn_disable'] = 'Desabilitar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Re-instalar'; $lang['js']['reallydel'] = 'Quer mesmo desinstalar esta extensão?'; +$lang['js']['display_viewoptions'] = 'Opções de visualização:'; +$lang['js']['display_enabled'] = 'habilitado'; +$lang['js']['display_disabled'] = 'desabilitado'; +$lang['js']['display_updatable'] = 'atualizável'; $lang['search_for'] = 'Procurar extensão:'; $lang['search'] = 'Procurar'; $lang['extensionby'] = '<strong>%s</strong> de %s'; diff --git a/lib/plugins/styling/lang/pt-br/intro.txt b/lib/plugins/styling/lang/pt-br/intro.txt new file mode 100644 index 000000000..3d0f47fd6 --- /dev/null +++ b/lib/plugins/styling/lang/pt-br/intro.txt @@ -0,0 +1,2 @@ +Essa ferramente permite a alteração de certas configurações do estilo do seu modelo atual. +Todas as modificações são armazenadas em um arquivo de configuração local e estão protegidas contra atualizações. \ No newline at end of file diff --git a/lib/plugins/styling/lang/pt-br/lang.php b/lib/plugins/styling/lang/pt-br/lang.php new file mode 100644 index 000000000..b7ac1fcd8 --- /dev/null +++ b/lib/plugins/styling/lang/pt-br/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['menu'] = 'Configurações de estilo do modelo'; +$lang['js']['loader'] = 'A visualização está carregando...<br />Caso essa mensagem não desapareça, pode ter algum problema com os seus valores.'; +$lang['js']['popup'] = 'Abrir como um popup'; +$lang['error'] = 'Desculpe, mas esse modelo não suporta essa funcionalidade.'; +$lang['btn_preview'] = 'Ver alterações'; +$lang['btn_save'] = 'Salvar alterações'; +$lang['btn_reset'] = 'Eliminar as alterações atuais'; +$lang['btn_revert'] = 'Reverter o estilo para os padrões do modelo'; +$lang['__text__'] = 'Cor principal do texto'; +$lang['__background__'] = 'Cor principal do fundo'; +$lang['__text_alt__'] = 'Cor alternativa do texto'; +$lang['__background_alt__'] = 'Cor alternativa do fundo'; +$lang['__text_neu__'] = 'Cor neutra do texto'; +$lang['__background_neu__'] = 'Cor neutra do fundo'; +$lang['__border__'] = 'Cor da borda'; +$lang['__highlight__'] = 'Cor do destaque (primariamente em resultados da pesquisa)'; diff --git a/lib/tpl/dokuwiki/lang/pt-br/lang.php b/lib/tpl/dokuwiki/lang/pt-br/lang.php new file mode 100644 index 000000000..039265274 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/pt-br/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['__background_site__'] = 'Cor para o fundo da tela (atrás da caixa de conteúdo)'; +$lang['__link__'] = 'Cor dos links gerais'; +$lang['__existing__'] = 'Cor dos links para páginas existentes'; +$lang['__missing__'] = 'Cor dos links para páginas não existentes'; +$lang['__site_width__'] = 'Largura do site inteiro (pode ser qualquer unidade: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Largura da barra lateral, caso exista (pode ser qualquer unidade: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Em larguras abaixo dessa medida, o site mudará para o modo tablet'; +$lang['__phone_width__'] = 'Em larguras abaixo dessa medida, o site mudará para o modo telefone'; diff --git a/lib/tpl/dokuwiki/lang/pt-br/style.txt b/lib/tpl/dokuwiki/lang/pt-br/style.txt new file mode 100644 index 000000000..52475d8cf --- /dev/null +++ b/lib/tpl/dokuwiki/lang/pt-br/style.txt @@ -0,0 +1 @@ +Caso queira ajustar a logo, use o Gerenciador de MÃdias para enviar um "logo.png" para o espaço de nomes "wiki" ou para a raiz e ele será automaticamente usado. Você também pode enviar um "favicon.ico". Caso o seu wiki seja fechado, é recomendável que o espaço de nomes "wiki" (ou a raiz) tenha permissão de leitura nas configurações de ACL, caso contrário a sua logo não será exibida para usuários não autenticados. \ No newline at end of file -- GitLab From 937959a1cc835709ee811f78c86d1fc28f07b74e Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Thu, 6 Aug 2015 10:51:11 +0200 Subject: [PATCH 323/440] translation update --- lib/plugins/authldap/lang/de/settings.php | 3 + lib/plugins/authplain/lang/de/lang.php | 8 +- lib/plugins/config/lang/de/lang.php | 107 +++++++++++----------- lib/plugins/styling/lang/de/intro.txt | 2 + lib/plugins/styling/lang/de/lang.php | 23 +++++ lib/tpl/dokuwiki/lang/de/lang.php | 15 +++ lib/tpl/dokuwiki/lang/de/style.txt | 1 + 7 files changed, 105 insertions(+), 54 deletions(-) create mode 100644 lib/plugins/styling/lang/de/intro.txt create mode 100644 lib/plugins/styling/lang/de/lang.php create mode 100644 lib/tpl/dokuwiki/lang/de/lang.php create mode 100644 lib/tpl/dokuwiki/lang/de/style.txt diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index df1974867..e986d0f80 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -6,6 +6,7 @@ * @author Matthias Schulte <dokuwiki@lupo49.de> * @author christian studer <cstuder@existenz.ch> * @author Philip Knack <p.knack@stollfuss.de> + * @author Anika Henke <anika@selfthinker.org> */ $lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).'; $lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.'; @@ -30,3 +31,5 @@ $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; $lang['referrals_o_-1'] = 'Standard verwenden'; +$lang['referrals_o_0'] = 'Nicht Referrals folgen'; +$lang['referrals_o_1'] = 'Referrals folgen'; diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php index f1d484947..b0cff0068 100644 --- a/lib/plugins/authplain/lang/de/lang.php +++ b/lib/plugins/authplain/lang/de/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Anika Henke <anika@selfthinker.org> */ -$lang['userexists'] = 'Der Benutzername existiert leider schon.'; +$lang['userexists'] = 'Der Benutzername existiert leider schon.'; +$lang['usernotexists'] = 'Dieser Benutzer existiert nicht.'; +$lang['writefail'] = 'Kann Benutzerdaten nicht ändern. Bitte informieren Sie den Wiki-Administratoren'; diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php index d398ebf84..f3ddefd9b 100644 --- a/lib/plugins/config/lang/de/lang.php +++ b/lib/plugins/config/lang/de/lang.php @@ -1,8 +1,8 @@ <?php + /** - * German language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Andreas Gohr <andi@splitbrain.org> * @author Michael Klier <chi@chimeric.de> * @author Leo Moll <leo@yeasoft.com> @@ -18,6 +18,7 @@ * @author Pierre Corell <info@joomla-praxis.de> * @author Matthias Schulte <dokuwiki@lupo49.de> * @author Mateng Schimmerlos <mateng@firemail.de> + * @author Anika Henke <anika@selfthinker.org> */ $lang['menu'] = 'Konfiguration'; $lang['error'] = 'Die Einstellungen wurden wegen einer fehlerhaften Eingabe nicht gespeichert.<br /> Bitte überprüfen sie die rot umrandeten Eingaben und speichern Sie erneut.'; @@ -46,28 +47,29 @@ $lang['_network'] = 'Netzwerk'; $lang['_msg_setting_undefined'] = 'Keine Konfigurationsmetadaten.'; $lang['_msg_setting_no_class'] = 'Keine Konfigurationsklasse.'; $lang['_msg_setting_no_default'] = 'Kein Standardwert.'; -$lang['fmode'] = 'Berechtigungen für neue Dateien'; -$lang['dmode'] = 'Berechtigungen für neue Verzeichnisse'; -$lang['lang'] = 'Sprache'; -$lang['basedir'] = 'Installationsverzeichnis'; -$lang['baseurl'] = 'Installationspfad (URL)'; -$lang['savedir'] = 'Speicherverzeichnis'; -$lang['cookiedir'] = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.'; -$lang['start'] = 'Startseitenname'; $lang['title'] = 'Titel des Wikis'; +$lang['start'] = 'Startseitenname'; +$lang['lang'] = 'Sprache'; $lang['template'] = 'Designvorlage (Template)'; $lang['tagline'] = 'Tag-Linie (nur, wenn vom Template unterstützt)'; $lang['sidebar'] = 'Name der Sidebar-Seite (nur, wenn vom Template unterstützt), ein leeres Feld deaktiviert die Sidebar'; $lang['license'] = 'Unter welcher Lizenz sollen Ihre Inhalte veröffentlicht werden?'; -$lang['fullpath'] = 'Den kompletten Dateipfad im Footer anzeigen'; +$lang['savedir'] = 'Speicherverzeichnis'; +$lang['basedir'] = 'Installationsverzeichnis'; +$lang['baseurl'] = 'Installationspfad (URL)'; +$lang['cookiedir'] = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.'; +$lang['dmode'] = 'Berechtigungen für neue Verzeichnisse'; +$lang['fmode'] = 'Berechtigungen für neue Dateien'; +$lang['allowdebug'] = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>'; $lang['recent'] = 'Anzahl der Einträge in der Änderungsliste'; +$lang['recent_days'] = 'Wie viele letzte Änderungen sollen einsehbar bleiben? (Tage)'; $lang['breadcrumbs'] = 'Anzahl der Einträge im "Krümelpfad"'; $lang['youarehere'] = 'Hierarchische Pfadnavigation verwenden'; +$lang['fullpath'] = 'Den kompletten Dateipfad im Footer anzeigen'; $lang['typography'] = 'Typographische Ersetzungen'; -$lang['htmlok'] = 'HTML erlauben'; -$lang['phpok'] = 'PHP erlauben'; $lang['dformat'] = 'Datumsformat (Siehe PHP <a href="http://www.php.net/strftime">strftime</a> Funktion)'; $lang['signature'] = 'Signatur'; +$lang['showuseras'] = 'Was angezeigt werden soll, wenn der Benutzer, der zuletzt eine Seite bearbeitet hat, angezeigt wird'; $lang['toptoclevel'] = 'Inhaltsverzeichnis bei dieser Ãœberschriftengröße beginnen'; $lang['tocminheads'] = 'Mindestanzahl der Ãœberschriften die entscheidet, ob ein Inhaltsverzeichnis erscheinen soll'; $lang['maxtoclevel'] = 'Maximale Ãœberschriftengröße für Inhaltsverzeichnis'; @@ -75,15 +77,8 @@ $lang['maxseclevel'] = 'Abschnitte bis zu dieser Stufe einzeln editier $lang['camelcase'] = 'CamelCase-Verlinkungen verwenden'; $lang['deaccent'] = 'Seitennamen bereinigen'; $lang['useheading'] = 'Erste Ãœberschrift als Seitennamen verwenden'; -$lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; -$lang['allowdebug'] = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>'; -$lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; -$lang['usewordblock'] = 'Spam-Blocking benutzen'; -$lang['indexdelay'] = 'Zeit bevor Suchmaschinenindexierung erlaubt ist'; -$lang['relnofollow'] = 'rel="nofollow" verwenden'; -$lang['mailguard'] = 'E-Mail-Adressen schützen'; -$lang['iexssprotect'] = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen'; -$lang['showuseras'] = 'Was angezeigt werden soll, wenn der Benutzer, der zuletzt eine Seite bearbeitet hat, angezeigt wird'; +$lang['sneaky_index'] = 'Standardmäßig zeigt DokuWiki alle Namensräume in der Ãœbersicht. Wenn diese Option aktiviert wird, werden alle Namensräume, für die der Benutzer keine Lese-Rechte hat, nicht angezeigt. Dies kann unter Umständen dazu führen, das lesbare Unter-Namensräume nicht angezeigt werden und macht die Ãœbersicht evtl. unbrauchbar in Kombination mit bestimmten ACL Einstellungen.'; +$lang['hidepages'] = 'Seiten verstecken (Regulärer Ausdruck)'; $lang['useacl'] = 'Zugangskontrolle verwenden'; $lang['autopasswd'] = 'Passwort automatisch generieren'; $lang['authtype'] = 'Authentifizierungsmechanismus'; @@ -92,63 +87,70 @@ $lang['defaultgroup'] = 'Standardgruppe'; $lang['superuser'] = 'Administrator - Eine Gruppe oder Benutzer mit vollem Zugriff auf alle Seiten und Administrationswerkzeuge.'; $lang['manager'] = 'Manager - Eine Gruppe oder Benutzer mit Zugriff auf einige Administrationswerkzeuge.'; $lang['profileconfirm'] = 'Profiländerung nur nach Passwortbestätigung'; +$lang['rememberme'] = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)'; $lang['disableactions'] = 'DokuWiki-Aktionen deaktivieren'; $lang['disableactions_check'] = 'Check'; $lang['disableactions_subscription'] = 'Seiten-Abonnements'; $lang['disableactions_wikicode'] = 'Quelltext betrachten/exportieren'; $lang['disableactions_profile_delete'] = 'Eigenes Benutzerprofil löschen'; $lang['disableactions_other'] = 'Andere Aktionen (durch Komma getrennt)'; -$lang['sneaky_index'] = 'Standardmäßig zeigt DokuWiki alle Namensräume in der Ãœbersicht. Wenn diese Option aktiviert wird, werden alle Namensräume, für die der Benutzer keine Lese-Rechte hat, nicht angezeigt. Dies kann unter Umständen dazu führen, das lesbare Unter-Namensräume nicht angezeigt werden und macht die Ãœbersicht evtl. unbrauchbar in Kombination mit bestimmten ACL Einstellungen.'; +$lang['disableactions_rss'] = 'XML-Syndikation (RSS)'; $lang['auth_security_timeout'] = 'Authentifikations-Timeout (Sekunden)'; $lang['securecookie'] = 'Sollen Cookies, die via HTTPS gesetzt wurden nur per HTTPS versendet werden? Deaktivieren Sie diese Option, wenn nur der Login Ihres Wikis mit SSL gesichert ist, aber das Betrachten des Wikis ungesichert geschieht.'; $lang['remote'] = 'Aktiviert den externen API-Zugang. Diese Option erlaubt es externen Anwendungen von außen auf die XML-RPC-Schnittstelle oder anderweitigen Schnittstellen zu zugreifen.'; $lang['remoteuser'] = 'Zugriff auf die externen Schnittstellen durch kommaseparierte Angabe von Benutzern oder Gruppen einschränken. Ein leeres Feld erlaubt Zugriff für jeden.'; -$lang['updatecheck'] = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.'; -$lang['userewrite'] = 'URL rewriting'; -$lang['useslash'] = 'Schrägstrich (/) als Namensraumtrenner in URLs verwenden'; +$lang['usewordblock'] = 'Spam-Blocking benutzen'; +$lang['relnofollow'] = 'rel="nofollow" verwenden'; +$lang['indexdelay'] = 'Zeit bevor Suchmaschinenindexierung erlaubt ist'; +$lang['mailguard'] = 'E-Mail-Adressen schützen'; +$lang['iexssprotect'] = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen'; $lang['usedraft'] = 'Während des Bearbeitens automatisch Zwischenentwürfe speichern'; -$lang['sepchar'] = 'Worttrenner für Seitennamen in URLs'; -$lang['canonical'] = 'Immer Links mit vollständigen URLs erzeugen'; -$lang['fnencode'] = 'Methode um nicht-ASCII Dateinamen zu kodieren.'; -$lang['autoplural'] = 'Bei Links automatisch nach vorhandenen Pluralformen suchen'; -$lang['compression'] = 'Komprimierungsmethode für alte Seitenrevisionen'; -$lang['cachetime'] = 'Maximale Cachespeicherung (Sekunden)'; +$lang['htmlok'] = 'HTML erlauben'; +$lang['phpok'] = 'PHP erlauben'; $lang['locktime'] = 'Maximales Alter für Seitensperren (Sekunden)'; +$lang['cachetime'] = 'Maximale Cachespeicherung (Sekunden)'; +$lang['target____wiki'] = 'Zielfenster für interne Links (target Attribut)'; +$lang['target____interwiki'] = 'Zielfenster für InterWiki-Links (target Attribut)'; +$lang['target____extern'] = 'Zielfenster für Externe Links (target Attribut)'; +$lang['target____media'] = 'Zielfenster für (Bild-)Dateien (target Attribut)'; +$lang['target____windows'] = 'Zielfenster für Windows Freigaben (target Attribut)'; +$lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; +$lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; +$lang['gdlib'] = 'GD Lib Version'; +$lang['im_convert'] = 'Pfad zum ImageMagicks-Konvertierwerkzeug'; +$lang['jpg_quality'] = 'JPEG Kompressionsqualität (0-100)'; $lang['fetchsize'] = 'Maximale Größe (in Bytes), die fetch.php von extern herunterladen darf'; +$lang['subscribers'] = 'E-Mail-Abos zulassen'; +$lang['subscribe_time'] = 'Zeit nach der Zusammenfassungs- und Änderungslisten-E-Mails verschickt werden; Dieser Wert sollte kleiner als die in recent_days konfigurierte Zeit sein.'; $lang['notify'] = 'Änderungsmitteilungen an diese E-Mail-Adresse versenden'; $lang['registernotify'] = 'Information über neu registrierte Benutzer an diese E-Mail-Adresse senden'; $lang['mailfrom'] = 'Absender-E-Mail-Adresse für automatische Mails'; $lang['mailprefix'] = 'Präfix für E-Mail-Betreff beim automatischen Versand von Benachrichtigungen'; $lang['htmlmail'] = 'Versendet optisch angenehmere, aber größere E-Mails im HTML-Format (multipart). Deaktivieren, um Text-Mails zu versenden.'; +$lang['sitemap'] = 'Google Sitemap erzeugen (Tage)'; +$lang['rss_type'] = 'XML-Feed-Format'; +$lang['rss_linkto'] = 'XML-Feed verlinken auf'; +$lang['rss_content'] = 'Welche Inhalte sollen im XML-Feed dargestellt werden?'; +$lang['rss_update'] = 'XML-Feed Aktualisierungsintervall (Sekunden)'; +$lang['rss_show_summary'] = 'Bearbeitungs-Zusammenfassung im XML-Feed anzeigen'; +$lang['rss_media'] = 'Welche Änderungen sollen im XML-Feed angezeigt werden?'; +$lang['updatecheck'] = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.'; +$lang['userewrite'] = 'URL rewriting'; +$lang['useslash'] = 'Schrägstrich (/) als Namensraumtrenner in URLs verwenden'; +$lang['sepchar'] = 'Worttrenner für Seitennamen in URLs'; +$lang['canonical'] = 'Immer Links mit vollständigen URLs erzeugen'; +$lang['fnencode'] = 'Methode um nicht-ASCII Dateinamen zu kodieren.'; +$lang['autoplural'] = 'Bei Links automatisch nach vorhandenen Pluralformen suchen'; +$lang['compression'] = 'Komprimierungsmethode für alte Seitenrevisionen'; $lang['gzip_output'] = 'Seiten mit gzip komprimiert ausliefern'; -$lang['gdlib'] = 'GD Lib Version'; -$lang['im_convert'] = 'Pfad zum ImageMagicks-Konvertierwerkzeug'; -$lang['jpg_quality'] = 'JPEG Kompressionsqualität (0-100)'; -$lang['subscribers'] = 'E-Mail-Abos zulassen'; -$lang['subscribe_time'] = 'Zeit nach der Zusammenfassungs- und Änderungslisten-E-Mails verschickt werden; Dieser Wert sollte kleiner als die in recent_days konfigurierte Zeit sein.'; $lang['compress'] = 'JavaScript und Stylesheets komprimieren'; $lang['cssdatauri'] = 'Größe in Bytes, bis zu der Bilder in CSS-Dateien referenziert werden können, um HTTP-Anfragen zu minimieren. Diese Technik funktioniert nicht im IE 7 und älter! Empfohlene Einstellung: <code>400</code> to <code>600</code> Bytes. Setzen Sie die Einstellung auf <code>0</code> um die Funktion zu deaktivieren.'; -$lang['hidepages'] = 'Seiten verstecken (Regulärer Ausdruck)'; $lang['send404'] = 'Bei nicht vorhandenen Seiten mit 404 Fehlercode antworten'; -$lang['sitemap'] = 'Google Sitemap erzeugen (Tage)'; $lang['broken_iua'] = 'Falls die Funktion ignore_user_abort auf Ihrem System nicht funktioniert, könnte der Such-Index nicht funktionieren. IIS+PHP/CGI ist bekannt dafür. Siehe auch <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a>.'; $lang['xsendfile'] = 'Den X-Sendfile-Header nutzen, um Dateien direkt vom Webserver ausliefern zu lassen? Ihr Webserver muss dies unterstützen!'; $lang['renderer_xhtml'] = 'Standard-Renderer für die normale (XHTML) Wiki-Ausgabe.'; $lang['renderer__core'] = '%s (DokuWiki Kern)'; $lang['renderer__plugin'] = '%s (Plugin)'; -$lang['rememberme'] = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)'; -$lang['rss_type'] = 'XML-Feed-Format'; -$lang['rss_linkto'] = 'XML-Feed verlinken auf'; -$lang['rss_content'] = 'Welche Inhalte sollen im XML-Feed dargestellt werden?'; -$lang['rss_update'] = 'XML-Feed Aktualisierungsintervall (Sekunden)'; -$lang['recent_days'] = 'Wie viele letzte Änderungen sollen einsehbar bleiben? (Tage)'; -$lang['rss_show_summary'] = 'Bearbeitungs-Zusammenfassung im XML-Feed anzeigen'; -$lang['rss_media'] = 'Welche Änderungen sollen im XML-Feed angezeigt werden?'; -$lang['target____wiki'] = 'Zielfenster für interne Links (target Attribut)'; -$lang['target____interwiki'] = 'Zielfenster für InterWiki-Links (target Attribut)'; -$lang['target____extern'] = 'Zielfenster für Externe Links (target Attribut)'; -$lang['target____media'] = 'Zielfenster für (Bild-)Dateien (target Attribut)'; -$lang['target____windows'] = 'Zielfenster für Windows Freigaben (target Attribut)'; $lang['dnslookups'] = 'DokuWiki löst die IP-Adressen von Benutzern zu deren Hostnamen auf. Wenn du einen langsamen, unbrauchbaren DNS-Server verwendest oder die Funktion nicht benötigst, dann sollte diese Option deaktiviert sein.'; $lang['proxy____host'] = 'Proxy-Server'; $lang['proxy____port'] = 'Proxy-Port'; @@ -197,6 +199,7 @@ $lang['xsendfile_o_2'] = 'Standard X-Sendfile-Header'; $lang['xsendfile_o_3'] = 'Proprietärer Nginx X-Accel-Redirect-Header'; $lang['showuseras_o_loginname'] = 'Login-Name'; $lang['showuseras_o_username'] = 'Vollständiger Name des Benutzers'; +$lang['showuseras_o_username_link'] = 'Kompletter Name des Benutzers als Interwiki-Link'; $lang['showuseras_o_email'] = 'E-Mail-Adresse des Benutzers (je nach Mailguard-Einstellung verschleiert)'; $lang['showuseras_o_email_link'] = 'E-Mail-Adresse des Benutzers als mailto:-Link'; $lang['useheading_o_0'] = 'Nie'; diff --git a/lib/plugins/styling/lang/de/intro.txt b/lib/plugins/styling/lang/de/intro.txt new file mode 100644 index 000000000..aa9577355 --- /dev/null +++ b/lib/plugins/styling/lang/de/intro.txt @@ -0,0 +1,2 @@ +Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern. +Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher. \ No newline at end of file diff --git a/lib/plugins/styling/lang/de/lang.php b/lib/plugins/styling/lang/de/lang.php new file mode 100644 index 000000000..8a46f818e --- /dev/null +++ b/lib/plugins/styling/lang/de/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Anika Henke <anika@selfthinker.org> + */ +$lang['menu'] = 'Einstellungen fürs Template-Design'; +$lang['js']['loader'] = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten Ihre Werte fehlerhaft sein'; +$lang['js']['popup'] = 'Öffne als Popup'; +$lang['error'] = 'Dieses Template unterstützt diese Funktion nicht.'; +$lang['btn_preview'] = 'Vorschau der Änderungen anzeigen'; +$lang['btn_save'] = 'Änderungen speichern'; +$lang['btn_reset'] = 'Jetzige Änderungen rückgängig machen'; +$lang['btn_revert'] = 'Auf Templates Voreinstellungen zurückfallen'; +$lang['__text__'] = 'Haupttextfarbe'; +$lang['__background__'] = 'Haupthintergrundfarbe'; +$lang['__text_alt__'] = 'Alternative Textfarbe'; +$lang['__background_alt__'] = 'Alternative Hintergrundfarbe'; +$lang['__text_neu__'] = 'Neutrale Textfarbe'; +$lang['__background_neu__'] = 'Neutrale Hintergrundfarbe'; +$lang['__border__'] = 'Rahmenfarbe'; +$lang['__highlight__'] = 'Hervorhebungsfarbe (hauptsächlich für Suchergebnisse)'; diff --git a/lib/tpl/dokuwiki/lang/de/lang.php b/lib/tpl/dokuwiki/lang/de/lang.php new file mode 100644 index 000000000..a17c945d9 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/de/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Anika Henke <anika@selfthinker.org> + */ +$lang['__background_site__'] = 'Farbe für den Seitenhintergrund (hinter dem Inhaltsbereich)'; +$lang['__link__'] = 'Allgemeine Linkfarbe'; +$lang['__existing__'] = 'Farbe für Links zu existierenden Seiten'; +$lang['__missing__'] = 'Farbe für Links zu nicht-existierenden Seiten'; +$lang['__site_width__'] = 'Breite der ganzen Seite (kann eine beliebige Längeneinheit sein: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Breite der Seitenleiste, falls vorhanden (kann eine beliebige Längeneinheit sein: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Tabletmodus'; +$lang['__phone_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Handymodus'; diff --git a/lib/tpl/dokuwiki/lang/de/style.txt b/lib/tpl/dokuwiki/lang/de/style.txt new file mode 100644 index 000000000..1fd2f332b --- /dev/null +++ b/lib/tpl/dokuwiki/lang/de/style.txt @@ -0,0 +1 @@ +Wenn Sie das Logo anpassen wollen, benutzen Sie einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder Wurzel-Namensraum hochzuladen. Es wird dann automatisch als Logo verwendet. Sie können dort auch ein 'favicon.ico'' hochladen. Falls Sie ein geschlossenes Wiki haben, ist es empfehlenswert, den ''wiki''- (oder Wurzel-)Namensraum für alle Nutzer in den ACL-Einstellungen zu öffnen. Ansonsten wird das Logo nur für eingeloggte Nutzer angezeigt. \ No newline at end of file -- GitLab From 5435cf9e106ef04804ac90ffcb2ed3d88e0229fb Mon Sep 17 00:00:00 2001 From: Domingo Redal <docxml@gmail.com> Date: Fri, 7 Aug 2015 18:41:44 +0200 Subject: [PATCH 324/440] translation update --- inc/lang/es/lang.php | 1 + lib/plugins/authldap/lang/es/lang.php | 2 +- lib/plugins/authmysql/lang/es/lang.php | 11 +++++++++ lib/plugins/authmysql/lang/es/settings.php | 2 ++ lib/plugins/authpgsql/lang/es/settings.php | 3 +++ lib/plugins/authplain/lang/es/lang.php | 8 +++++-- lib/plugins/config/lang/es/lang.php | 8 +++++-- .../extension/lang/es/intro_plugins.txt | 1 + .../extension/lang/es/intro_search.txt | 1 + lib/plugins/extension/lang/es/lang.php | 8 ++++++- lib/plugins/styling/lang/es/intro.txt | 2 ++ lib/plugins/styling/lang/es/lang.php | 23 +++++++++++++++++++ lib/plugins/usermanager/lang/es/import.txt | 9 ++++++++ lib/plugins/usermanager/lang/es/lang.php | 7 ++++++ lib/tpl/dokuwiki/lang/es/lang.php | 15 ++++++++++++ lib/tpl/dokuwiki/lang/es/style.txt | 1 + 16 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 lib/plugins/authmysql/lang/es/lang.php create mode 100644 lib/plugins/extension/lang/es/intro_plugins.txt create mode 100644 lib/plugins/extension/lang/es/intro_search.txt create mode 100644 lib/plugins/styling/lang/es/intro.txt create mode 100644 lib/plugins/styling/lang/es/lang.php create mode 100644 lib/plugins/usermanager/lang/es/import.txt create mode 100644 lib/tpl/dokuwiki/lang/es/lang.php create mode 100644 lib/tpl/dokuwiki/lang/es/style.txt diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 65978f558..26304902a 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -40,6 +40,7 @@ * @author Ãlvaro Iradier <airadier@gmail.com> * @author Alejandro Nunez <nunez.alejandro@gmail.com> * @author Mauricio Segura <maose38@yahoo.es> + * @author Domingo Redal <docxml@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authldap/lang/es/lang.php b/lib/plugins/authldap/lang/es/lang.php index 64ea7b964..20de155c1 100644 --- a/lib/plugins/authldap/lang/es/lang.php +++ b/lib/plugins/authldap/lang/es/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mauricio Segura <maose38@yahoo.es> */ $lang['connectfail'] = 'LDAP no se puede conectar: %s'; diff --git a/lib/plugins/authmysql/lang/es/lang.php b/lib/plugins/authmysql/lang/es/lang.php new file mode 100644 index 000000000..e25b801c3 --- /dev/null +++ b/lib/plugins/authmysql/lang/es/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['connectfail'] = 'Error al conectar con la base de datos.'; +$lang['userexists'] = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.'; +$lang['usernotexists'] = 'Lo sentimos, no existe ese usuario.'; +$lang['writefail'] = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki'; diff --git a/lib/plugins/authmysql/lang/es/settings.php b/lib/plugins/authmysql/lang/es/settings.php index cda3c23f8..8b5c79995 100644 --- a/lib/plugins/authmysql/lang/es/settings.php +++ b/lib/plugins/authmysql/lang/es/settings.php @@ -7,6 +7,7 @@ * @author Eloy <ej.perezgomez@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Alejandro Nunez <nunez.alejandro@gmail.com> + * @author Domingo Redal <docxml@gmail.com> */ $lang['server'] = 'Tu servidor MySQL'; $lang['user'] = 'Nombre de usuario MySQL'; @@ -37,6 +38,7 @@ $lang['UpdateLogin'] = 'Cláusula de actualización para actualizar el $lang['UpdatePass'] = 'Cláusula de actualización para actualizar la contraseña del usuario'; $lang['UpdateEmail'] = 'Cláusula de actualización para actualizar la dirección de correo del usuario'; $lang['UpdateName'] = 'Cláusula de actualización para actualizar el nomblre completo del usuario'; +$lang['UpdateTarget'] = 'Cláusula limite para identificar al usuario cuando se actualiza'; $lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo dado'; $lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado'; $lang['debug_o_0'] = 'ninguno'; diff --git a/lib/plugins/authpgsql/lang/es/settings.php b/lib/plugins/authpgsql/lang/es/settings.php index abfb00d38..0ca264bc2 100644 --- a/lib/plugins/authpgsql/lang/es/settings.php +++ b/lib/plugins/authpgsql/lang/es/settings.php @@ -6,6 +6,7 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author pokesakura <pokesakura@gmail.com> + * @author Domingo Redal <docxml@gmail.com> */ $lang['server'] = 'Su servidor PostgreSQL'; $lang['port'] = 'Puerto de su servidor PostgreSQL'; @@ -35,4 +36,6 @@ $lang['UpdateLogin'] = 'Sentencia de actualizacion para el login del u $lang['UpdatePass'] = 'Sentencia de actualizacion para el password del usuario'; $lang['UpdateEmail'] = 'Sentencia de actualizacion del correo electrónico del usuario'; $lang['UpdateName'] = 'Sentencia de actualizacion del nombre completo del usuario'; +$lang['UpdateTarget'] = 'Cláusula limite para identificar al usuario cuando se actualiza'; +$lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo determinado'; $lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado'; diff --git a/lib/plugins/authplain/lang/es/lang.php b/lib/plugins/authplain/lang/es/lang.php index 8f03e79cb..8ef567a16 100644 --- a/lib/plugins/authplain/lang/es/lang.php +++ b/lib/plugins/authplain/lang/es/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Domingo Redal <docxml@gmail.com> */ -$lang['userexists'] = 'Lo siento, ya existe un usuario con este nombre.'; +$lang['userexists'] = 'Lo siento, ya existe un usuario con este nombre.'; +$lang['usernotexists'] = 'Lo sentimos, no existe ese usuario.'; +$lang['writefail'] = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki'; diff --git a/lib/plugins/config/lang/es/lang.php b/lib/plugins/config/lang/es/lang.php index 847b326a8..74946bde8 100644 --- a/lib/plugins/config/lang/es/lang.php +++ b/lib/plugins/config/lang/es/lang.php @@ -1,8 +1,8 @@ <?php + /** - * spanish language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Miguel Pagano <miguel.pagano@gmail.com> * @author Oscar M. Lage <r0sk10@gmail.com> * @author Gabriel Castillo <gch@pumas.ii.unam.mx> @@ -24,6 +24,7 @@ * @author Ruben Figols <ruben.figols@gmail.com> * @author Gerardo Zamudio <gerardo@gerardozamudio.net> * @author Mercè López mercelz@gmail.com + * @author Domingo Redal <docxml@gmail.com> */ $lang['menu'] = 'Parámetros de configuración'; $lang['error'] = 'Los parámetros no han sido actualizados a causa de un valor inválido, por favor revise los cambios y re-envÃe el formulario. <br /> Los valores incorrectos se mostrarán con un marco rojo alrededor.'; @@ -97,7 +98,9 @@ $lang['disableactions'] = 'Deshabilitar acciones DokuWiki'; $lang['disableactions_check'] = 'Controlar'; $lang['disableactions_subscription'] = 'Suscribirse/Cancelar suscripción'; $lang['disableactions_wikicode'] = 'Ver la fuente/Exportar en formato raw'; +$lang['disableactions_profile_delete'] = 'Borrar tu propia cuenta'; $lang['disableactions_other'] = 'Otras acciones (separadas por coma)'; +$lang['disableactions_rss'] = 'Sindicación XML (RSS)'; $lang['auth_security_timeout'] = 'Tiempo de Autenticación (en segundos), por motivos de seguridad'; $lang['securecookie'] = 'Las cookies establecidas por HTTPS, ¿el naveagdor solo puede enviarlas por HTTPS? Inhabilite esta opción cuando solo se asegure con SSL la entrada, pero no la navegación de su wiki.'; $lang['remote'] = 'Activar el sistema API remoto. Esto permite a otras aplicaciones acceder al wiki a traves de XML-RPC u otros mecanismos.'; @@ -202,6 +205,7 @@ $lang['xsendfile_o_2'] = 'Encabezado X-Sendfile estándar'; $lang['xsendfile_o_3'] = 'Encabezado propietario Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Nombre de entrada'; $lang['showuseras_o_username'] = 'Nombre completo del usuario'; +$lang['showuseras_o_username_link'] = 'Nombre completo del usuario como enlace de usuario interwiki'; $lang['showuseras_o_email'] = 'Dirección de correo electrónico del usuario (ofuscada según la configuración de "mailguard")'; $lang['showuseras_o_email_link'] = 'Dirección de correo de usuario como enlace de envÃo de correo'; $lang['useheading_o_0'] = 'Nunca'; diff --git a/lib/plugins/extension/lang/es/intro_plugins.txt b/lib/plugins/extension/lang/es/intro_plugins.txt new file mode 100644 index 000000000..4805021f9 --- /dev/null +++ b/lib/plugins/extension/lang/es/intro_plugins.txt @@ -0,0 +1 @@ +Estos son los plugins actualmente instalados en su DokuWiki. Puede activar, desactivar o incluso desinstalar completamente desde aquÃ. Actualizaciones de los Plugin se muestran también aquÃ, asegúrese de leer la documentación del plugin antes de actualizar. \ No newline at end of file diff --git a/lib/plugins/extension/lang/es/intro_search.txt b/lib/plugins/extension/lang/es/intro_search.txt new file mode 100644 index 000000000..f59bb33df --- /dev/null +++ b/lib/plugins/extension/lang/es/intro_search.txt @@ -0,0 +1 @@ +Esta pestaña te da acceso a todos los plugins de 3as partes disponibles y plantillas para DokuWiki. Tenga en cuenta que la instalación de código de terceras partes puede plantear un **riesgo de seguridad**, es posible que desee leer primero sobre [[doku>security#plugin_security|plugin security]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php index 9e3d24318..28cdf86ca 100644 --- a/lib/plugins/extension/lang/es/lang.php +++ b/lib/plugins/extension/lang/es/lang.php @@ -2,12 +2,13 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> * @author Ãlvaro Iradier <airadier@gmail.com> * @author Mauricio Segura <maose38@yahoo.es> + * @author Domingo Redal <docxml@gmail.com> */ $lang['menu'] = 'Administrador de Extensiones '; $lang['tab_plugins'] = 'Plugins instalados'; @@ -86,9 +87,14 @@ $lang['error_badurl'] = 'URLs deberÃan empezar con http o https'; $lang['error_dircreate'] = 'No es posible de crear un directorio temporero para poder recibir el download'; $lang['error_download'] = 'No es posible descargar el documento: %s'; $lang['error_decompress'] = 'No se pudo descomprimir el fichero descargado. Puede ser a causa de una descarga incorrecta, en cuyo caso puedes intentarlo de nuevo; o puede que el formato de compresión sea desconocido, en cuyo caso necesitarás descargar e instalar manualmente.'; +$lang['error_findfolder'] = 'No se ha podido identificar el directorio de la extensión, es necesario descargar e instalar manualmente'; +$lang['error_copy'] = 'Hubo un error durante la copia de archivos al intentar instalar los archivos del directorio <em>%s</em>: el disco puede estar lleno o los permisos de acceso a los archivos pueden ser incorrectos. Esto puede haber dado lugar a un plugin instalado parcialmente y dejar su instalación wiki inestable'; $lang['noperms'] = 'El directorio de extensiones no tiene permiso de escritura.'; $lang['notplperms'] = 'El directorio de plantillas no tiene permiso de escritura.'; +$lang['nopluginperms'] = 'No se puede escribir en el directorio de plugins'; $lang['git'] = 'Esta extensión fue instalada a través de git, quizás usted no quiera actualizarla aquà mismo.'; +$lang['auth'] = 'Este plugin de autenticación no está habilitada en la configuración, considere la posibilidad de desactivarlo.'; $lang['install_url'] = 'Instalar desde URL:'; $lang['install_upload'] = 'Subir Extensión:'; $lang['repo_error'] = 'El repositorio de plugins no puede ser contactado. Asegúrese que su servidor pueda contactar www.dokuwiki.org y verificar la configuración de su proxy.'; +$lang['nossl'] = 'Tu PHP parece no tener soporte SSL. Las descargas no funcionaran para muchas extensiones de DokuWiki.'; diff --git a/lib/plugins/styling/lang/es/intro.txt b/lib/plugins/styling/lang/es/intro.txt new file mode 100644 index 000000000..8a556002e --- /dev/null +++ b/lib/plugins/styling/lang/es/intro.txt @@ -0,0 +1,2 @@ +Esta herramienta le permite cambiar algunos ajustes de estilo de la plantilla seleccionada. +Todos los cambios se guardan en un archivo de configuración local y son una actualización segura. \ No newline at end of file diff --git a/lib/plugins/styling/lang/es/lang.php b/lib/plugins/styling/lang/es/lang.php new file mode 100644 index 000000000..ad300dc12 --- /dev/null +++ b/lib/plugins/styling/lang/es/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['menu'] = 'Ajustes de plantilla'; +$lang['js']['loader'] = 'La vista previa se está cargando ... <br /> si esto no se ve, sus valores pueden ser defectuosos'; +$lang['js']['popup'] = 'Abrir como una ventana emergente'; +$lang['error'] = 'Lo sentimos, esta plantilla no admite esta funcionalidad.'; +$lang['btn_preview'] = 'Vista previa de los cambios'; +$lang['btn_save'] = 'Guardar cambios'; +$lang['btn_reset'] = 'Reiniciar los cambios actuales'; +$lang['btn_revert'] = 'Revertir estilos volviendo a los valores por defecto de la plantilla'; +$lang['__text__'] = 'Color del texto principal'; +$lang['__background__'] = 'Color de fondo del texto principal'; +$lang['__text_alt__'] = 'Color del texto alternativo'; +$lang['__background_alt__'] = 'Color de fondo del texto alternativo'; +$lang['__text_neu__'] = 'Color del texto neutro'; +$lang['__background_neu__'] = 'Color de fondo del texto neutro'; +$lang['__border__'] = 'Color del borde'; +$lang['__highlight__'] = 'Color resaltado (para los resultados de búsqueda, principalmente)'; diff --git a/lib/plugins/usermanager/lang/es/import.txt b/lib/plugins/usermanager/lang/es/import.txt new file mode 100644 index 000000000..2482096d5 --- /dev/null +++ b/lib/plugins/usermanager/lang/es/import.txt @@ -0,0 +1,9 @@ +===== Importación y carga de usuarios ===== + +Se requiere un archivo CSV de usuarios con al menos cuatro columnas. +Las columnas deben contener, en este orden: Identificador de usuario, nombre completo, dirección de correo electrónico y grupos. +Los campos CSV deben estar separados por comas (,) y las cadenas delimitadas por comillas dobles (%%""%%). Barra inversa (\\) se puede utilizar para escapar caracteres. +Para un ejemplo de un archivo adecuado, probar la función "Exportar usuarios" de arriba. +Valores de identificador de usuario duplicados serán ignorados. + +Una contraseña será generada y enviada por correo electrónico a cada usuario importado correctamente. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/es/lang.php b/lib/plugins/usermanager/lang/es/lang.php index a557eacdd..284d50f34 100644 --- a/lib/plugins/usermanager/lang/es/lang.php +++ b/lib/plugins/usermanager/lang/es/lang.php @@ -27,6 +27,7 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> + * @author Domingo Redal <docxml@gmail.com> */ $lang['menu'] = 'Administración de usuarios'; $lang['noauth'] = '(la autenticación de usuarios no está disponible)'; @@ -75,6 +76,12 @@ $lang['add_fail'] = 'Falló la creación del usuario'; $lang['notify_ok'] = 'Se envió la notificación por correo electrónico'; $lang['notify_fail'] = 'No se pudo enviar la notificación por correo electrónico'; $lang['import_userlistcsv'] = 'Lista de usuarios (CSV): '; +$lang['import_header'] = 'Importaciones Más Recientes - Fallos'; +$lang['import_success_count'] = 'Importación de usuarios: %d usuarios encontrados, %d importados correctamente.'; +$lang['import_failure_count'] = 'Importación de usuarios: %d fallaron. Los fallos se enumeran a continuación.'; +$lang['import_error_fields'] = 'Campos insuficientes, encontrados %d, se requieren 4.'; +$lang['import_error_baduserid'] = 'Identificador de usuario no encontrado'; +$lang['import_error_badname'] = 'Nombre erróneo'; $lang['import_error_badmail'] = 'Dirección de correo electrónico incorrecta'; $lang['import_error_upload'] = 'Error al importar. El archivo csv no se pudo cargar o está vacÃo.'; $lang['import_error_readfail'] = 'Error al importar. No se puede leer el archivo subido.'; diff --git a/lib/tpl/dokuwiki/lang/es/lang.php b/lib/tpl/dokuwiki/lang/es/lang.php new file mode 100644 index 000000000..b63d0dc7d --- /dev/null +++ b/lib/tpl/dokuwiki/lang/es/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['__background_site__'] = 'Color para el fondo (detrás de la caja de contenido)'; +$lang['__link__'] = 'El color de los enlaces en general'; +$lang['__existing__'] = 'El color de los enlaces a páginas existentes'; +$lang['__missing__'] = 'El color de los enlaces a páginas no existentes'; +$lang['__site_width__'] = 'El ancho de la página completa (puede ser cualquier unidad de longitud: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'El ancho de la barra lateral (puede ser cualquier unidad de longitud: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo tableta'; +$lang['__phone_width__'] = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo teléfono'; diff --git a/lib/tpl/dokuwiki/lang/es/style.txt b/lib/tpl/dokuwiki/lang/es/style.txt new file mode 100644 index 000000000..60ce308ff --- /dev/null +++ b/lib/tpl/dokuwiki/lang/es/style.txt @@ -0,0 +1 @@ +Si desea ajustar el logotipo, sólo tiene que utilizar el Administrador de Medios para cargar un ''logo.png'' dentro de "wiki'' o en el espacio de nombres de la raÃz y se utilizará automáticamente. También puede cargar un ''favicon.ico'' allÃ. Si utiliza un wiki cerrado se recomienda hacer el ''wiki'' (o raÃz) espacio de nombres legible por todo el mundo en la configuración de ACL o su logotipo no se mostrará para que los usuarios no registrados. \ No newline at end of file -- GitLab From a060d9973e7c1d5051f2cc426937881826e4972e Mon Sep 17 00:00:00 2001 From: Guy Brand <gb@unistra.fr> Date: Mon, 10 Aug 2015 10:01:56 +0200 Subject: [PATCH 325/440] Release preparation --- data/deleted.files | 246 +++++++++++++++++++++++++++++++++++++++++++++ install.php | 1 + 2 files changed, 247 insertions(+) diff --git a/data/deleted.files b/data/deleted.files index cac352c9d..68fad3cda 100644 --- a/data/deleted.files +++ b/data/deleted.files @@ -2,6 +2,252 @@ # but were removed later. An up to date DokuWiki should not have any of # the files installed +# removed in 2015-08-10 +inc/TarLib.class.php +inc/geshi.php +inc/geshi/4cs.php +inc/geshi/6502acme.php +inc/geshi/6502kickass.php +inc/geshi/6502tasm.php +inc/geshi/68000devpac.php +inc/geshi/abap.php +inc/geshi/actionscript-french.php +inc/geshi/actionscript.php +inc/geshi/actionscript3.php +inc/geshi/ada.php +inc/geshi/algol68.php +inc/geshi/apache.php +inc/geshi/applescript.php +inc/geshi/apt_sources.php +inc/geshi/arm.php +inc/geshi/asm.php +inc/geshi/asp.php +inc/geshi/asymptote.php +inc/geshi/autoconf.php +inc/geshi/autohotkey.php +inc/geshi/autoit.php +inc/geshi/avisynth.php +inc/geshi/awk.php +inc/geshi/bascomavr.php +inc/geshi/bash.php +inc/geshi/basic4gl.php +inc/geshi/bf.php +inc/geshi/bibtex.php +inc/geshi/blitzbasic.php +inc/geshi/bnf.php +inc/geshi/boo.php +inc/geshi/c.php +inc/geshi/c_loadrunner.php +inc/geshi/c_mac.php +inc/geshi/caddcl.php +inc/geshi/cadlisp.php +inc/geshi/cfdg.php +inc/geshi/cfm.php +inc/geshi/chaiscript.php +inc/geshi/cil.php +inc/geshi/clojure.php +inc/geshi/cmake.php +inc/geshi/cobol.php +inc/geshi/coffeescript.php +inc/geshi/cpp-qt.php +inc/geshi/cpp.php +inc/geshi/csharp.php +inc/geshi/css.php +inc/geshi/cuesheet.php +inc/geshi/d.php +inc/geshi/dcl.php +inc/geshi/dcpu16.php +inc/geshi/dcs.php +inc/geshi/delphi.php +inc/geshi/diff.php +inc/geshi/div.php +inc/geshi/dos.php +inc/geshi/dot.php +inc/geshi/e.php +inc/geshi/ecmascript.php +inc/geshi/eiffel.php +inc/geshi/email.php +inc/geshi/epc.php +inc/geshi/erlang.php +inc/geshi/euphoria.php +inc/geshi/f1.php +inc/geshi/falcon.php +inc/geshi/fo.php +inc/geshi/fortran.php +inc/geshi/freebasic.php +inc/geshi/freeswitch.php +inc/geshi/fsharp.php +inc/geshi/gambas.php +inc/geshi/gdb.php +inc/geshi/genero.php +inc/geshi/genie.php +inc/geshi/gettext.php +inc/geshi/glsl.php +inc/geshi/gml.php +inc/geshi/gnuplot.php +inc/geshi/go.php +inc/geshi/groovy.php +inc/geshi/gwbasic.php +inc/geshi/haskell.php +inc/geshi/haxe.php +inc/geshi/hicest.php +inc/geshi/hq9plus.php +inc/geshi/html4strict.php +inc/geshi/html5.php +inc/geshi/icon.php +inc/geshi/idl.php +inc/geshi/ini.php +inc/geshi/inno.php +inc/geshi/intercal.php +inc/geshi/io.php +inc/geshi/j.php +inc/geshi/java.php +inc/geshi/java5.php +inc/geshi/javascript.php +inc/geshi/jquery.php +inc/geshi/kixtart.php +inc/geshi/klonec.php +inc/geshi/klonecpp.php +inc/geshi/latex.php +inc/geshi/lb.php +inc/geshi/ldif.php +inc/geshi/lisp.php +inc/geshi/llvm.php +inc/geshi/locobasic.php +inc/geshi/logtalk.php +inc/geshi/lolcode.php +inc/geshi/lotusformulas.php +inc/geshi/lotusscript.php +inc/geshi/lscript.php +inc/geshi/lsl2.php +inc/geshi/lua.php +inc/geshi/m68k.php +inc/geshi/magiksf.php +inc/geshi/make.php +inc/geshi/mapbasic.php +inc/geshi/matlab.php +inc/geshi/mirc.php +inc/geshi/mmix.php +inc/geshi/modula2.php +inc/geshi/modula3.php +inc/geshi/mpasm.php +inc/geshi/mxml.php +inc/geshi/mysql.php +inc/geshi/nagios.php +inc/geshi/netrexx.php +inc/geshi/newlisp.php +inc/geshi/nsis.php +inc/geshi/oberon2.php +inc/geshi/objc.php +inc/geshi/objeck.php +inc/geshi/ocaml-brief.php +inc/geshi/ocaml.php +inc/geshi/octave.php +inc/geshi/oobas.php +inc/geshi/oorexx.php +inc/geshi/oracle11.php +inc/geshi/oracle8.php +inc/geshi/oxygene.php +inc/geshi/oz.php +inc/geshi/parasail.php +inc/geshi/parigp.php +inc/geshi/pascal.php +inc/geshi/pcre.php +inc/geshi/per.php +inc/geshi/perl.php +inc/geshi/perl6.php +inc/geshi/pf.php +inc/geshi/php-brief.php +inc/geshi/php.php +inc/geshi/pic16.php +inc/geshi/pike.php +inc/geshi/pixelbender.php +inc/geshi/pli.php +inc/geshi/plsql.php +inc/geshi/postgresql.php +inc/geshi/povray.php +inc/geshi/powerbuilder.php +inc/geshi/powershell.php +inc/geshi/proftpd.php +inc/geshi/progress.php +inc/geshi/prolog.php +inc/geshi/properties.php +inc/geshi/providex.php +inc/geshi/purebasic.php +inc/geshi/pycon.php +inc/geshi/pys60.php +inc/geshi/python.php +inc/geshi/q.php +inc/geshi/qbasic.php +inc/geshi/rails.php +inc/geshi/rebol.php +inc/geshi/reg.php +inc/geshi/rexx.php +inc/geshi/robots.php +inc/geshi/rpmspec.php +inc/geshi/rsplus.php +inc/geshi/ruby.php +inc/geshi/sas.php +inc/geshi/scala.php +inc/geshi/scheme.php +inc/geshi/scilab.php +inc/geshi/sdlbasic.php +inc/geshi/smalltalk.php +inc/geshi/smarty.php +inc/geshi/spark.php +inc/geshi/sparql.php +inc/geshi/sql.php +inc/geshi/stonescript.php +inc/geshi/systemverilog.php +inc/geshi/tcl.php +inc/geshi/teraterm.php +inc/geshi/text.php +inc/geshi/thinbasic.php +inc/geshi/tsql.php +inc/geshi/typoscript.php +inc/geshi/unicon.php +inc/geshi/upc.php +inc/geshi/urbi.php +inc/geshi/uscript.php +inc/geshi/vala.php +inc/geshi/vb.php +inc/geshi/vbnet.php +inc/geshi/vedit.php +inc/geshi/verilog.php +inc/geshi/vhdl.php +inc/geshi/vim.php +inc/geshi/visualfoxpro.php +inc/geshi/visualprolog.php +inc/geshi/whitespace.php +inc/geshi/whois.php +inc/geshi/winbatch.php +inc/geshi/xbasic.php +inc/geshi/xml.php +inc/geshi/xorg_conf.php +inc/geshi/xpp.php +inc/geshi/yaml.php +inc/geshi/z80.php +inc/geshi/zxbasic.php +inc/lang/ku/admin.txt +inc/lang/ku/denied.txt +inc/lang/ku/editrev.txt +inc/lang/ku/locked.txt +inc/lang/ku/login.txt +inc/lang/ku/mailtext.txt +inc/lang/ku/norev.txt +inc/lang/ku/password.txt +inc/lang/ku/read.txt +inc/lang/ku/register.txt +inc/lang/ku/revisions.txt +inc/lang/ku/showrev.txt +inc/lang/ku/stopwords.txt +lib/images/interwiki/coral.gif +lib/images/interwiki/dokubug.gif +lib/images/interwiki/sb.gif +lib/scripts/drag.js +lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif +lib/scripts/tw-sack.js + # removed in 2014-05-05 lib/images/fileicons/audio.png lib/plugins/acl/lang/hi/lang.php diff --git a/install.php b/install.php index 4de8093d6..6002ec88c 100644 --- a/install.php +++ b/install.php @@ -58,6 +58,7 @@ $dokuwiki_hash = array( '2013-05-10' => '7b62b75245f57f122d3e0f8ed7989623', '2013-12-08' => '263c76af309fbf083867c18a34ff5214', '2014-05-05' => '263c76af309fbf083867c18a34ff5214', + '2015-08-10' => '263c76af309fbf083867c18a34ff5214' ); -- GitLab From 174004e9f7705c99ac73f4fd56fe609de16730b4 Mon Sep 17 00:00:00 2001 From: Jaroslav Lichtblau <jlichtblau@seznam.cz> Date: Tue, 11 Aug 2015 20:26:17 +0200 Subject: [PATCH 326/440] translation update --- inc/lang/cs/lang.php | 3 +++ lib/plugins/authad/lang/cs/lang.php | 2 ++ lib/plugins/authldap/lang/cs/lang.php | 9 +++++++++ lib/plugins/authldap/lang/cs/settings.php | 1 + lib/plugins/authmysql/lang/cs/lang.php | 11 +++++++++++ lib/plugins/authplain/lang/cs/lang.php | 8 ++++++-- lib/plugins/config/lang/cs/lang.php | 7 +++++-- lib/plugins/extension/lang/cs/lang.php | 6 +++++- lib/plugins/styling/lang/cs/lang.php | 23 +++++++++++++++++++++++ lib/tpl/dokuwiki/lang/cs/lang.php | 10 ++++++++++ 10 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 lib/plugins/authldap/lang/cs/lang.php create mode 100644 lib/plugins/authmysql/lang/cs/lang.php create mode 100644 lib/plugins/styling/lang/cs/lang.php create mode 100644 lib/tpl/dokuwiki/lang/cs/lang.php diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index d6b50fb97..cd161341e 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -84,6 +84,7 @@ $lang['regmissing'] = 'MusÃte vyplnit vÅ¡echny údaje.'; $lang['reguexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; $lang['regsuccess'] = 'Uživatelský úÄet byl vytvoÅ™en a heslo zasláno e-mailem.'; $lang['regsuccess2'] = 'Uživatelský úÄet byl vytvoÅ™en.'; +$lang['regfail'] = 'Uživatelský profil nemohl být vytvoÅ™en.'; $lang['regmailfail'] = 'Zdá se, že nastala chyba pÅ™i posÃlánà mailu s heslem. Zkuste kontaktovat správce.'; $lang['regbadmail'] = 'Zadaná e-mailová adresa nenà platná. Pokud si myslÃte, že to je Å¡patnÄ›, zkuste kontaktovat správce.'; $lang['regbadpass'] = 'Heslo nebylo zadáno dvakrát stejnÄ›, zkuste to prosÃm znovu.'; @@ -98,6 +99,7 @@ $lang['profdeleteuser'] = 'Smazat úÄet'; $lang['profdeleted'] = 'Váš uživatelský úÄet byl z této wiki smazán'; $lang['profconfdelete'] = 'Chci smazat můj úÄet z této wiki. <br/> Tato akce je nevratná.'; $lang['profconfdeletemissing'] = 'Potvrzovacà tlaÄÃtko nezaÅ¡krtnuto'; +$lang['proffail'] = 'Uživatelský profil nebyl aktualizován.'; $lang['pwdforget'] = 'ZapomnÄ›li jste heslo? Nechte si zaslat nové'; $lang['resendna'] = 'Tato wiki neumožňuje zasÃlánà nových hesel.'; $lang['resendpwd'] = 'Nastavit nové heslo pro'; @@ -343,6 +345,7 @@ $lang['media_perm_read'] = 'Bohužel, nemáte práva ÄÃst soubory.'; $lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.'; $lang['media_update'] = 'Nahrát novou verzi'; $lang['media_restore'] = 'Obnovit tuto verzi'; +$lang['media_acl_warning'] = 'Tento seznam nemusà být úplný z důvodu omezenà práv ACL a skrytým stránkám.'; $lang['currentns'] = 'Aktuálnà jmenný prostor'; $lang['searchresult'] = 'Výsledek hledánÃ'; $lang['plainhtml'] = 'ÄŒisté HTML'; diff --git a/lib/plugins/authad/lang/cs/lang.php b/lib/plugins/authad/lang/cs/lang.php index ad141153f..85bc41f2f 100644 --- a/lib/plugins/authad/lang/cs/lang.php +++ b/lib/plugins/authad/lang/cs/lang.php @@ -8,3 +8,5 @@ */ $lang['domain'] = 'PÅ™ihlaÅ¡ovacà doména'; $lang['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vyprÅ¡Ã za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; +$lang['passchangefail'] = 'ZmÄ›na hesla selhala. Možná nebyla dodržena pravidla pro jejich tvorbu?'; +$lang['connectfail'] = 'PÅ™ipojenà k serveru Active Directory selhalo.'; diff --git a/lib/plugins/authldap/lang/cs/lang.php b/lib/plugins/authldap/lang/cs/lang.php new file mode 100644 index 000000000..9b0e8d244 --- /dev/null +++ b/lib/plugins/authldap/lang/cs/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['connectfail'] = 'LDAP pÅ™ipojenà nefunkÄnÃ: %s'; +$lang['domainfail'] = 'LDAP nenalezlo uživatelské dn'; diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php index 08c5c6a16..c7e070ca8 100644 --- a/lib/plugins/authldap/lang/cs/settings.php +++ b/lib/plugins/authldap/lang/cs/settings.php @@ -20,6 +20,7 @@ $lang['binddn'] = 'Doménový název DN volitelnÄ› pÅ™ipojeného $lang['bindpw'] = 'Heslo uživatele výše'; $lang['userscope'] = 'Omezenà rozsahu vyhledávánà uživatele'; $lang['groupscope'] = 'Omezenà rozsahu vyhledávánà skupiny'; +$lang['userkey'] = 'Atribut oznaÄujÃcà uživatelské jméno; musà být konzistetnà s uživatelským filtrem.'; $lang['groupkey'] = 'Atribut Å¡lenstvà uživatele ve skupinách (namÃsto standardnÃch AD skupin), tj. skupina z oddÄ›lenà nebo telefonnà ÄÃslo'; $lang['modPass'] = 'Může být LDAP heslo zmÄ›nÄ›no pÅ™es dokuwiki?'; $lang['debug'] = 'Zobrazit dodateÄné debugovacà informace'; diff --git a/lib/plugins/authmysql/lang/cs/lang.php b/lib/plugins/authmysql/lang/cs/lang.php new file mode 100644 index 000000000..464a031b1 --- /dev/null +++ b/lib/plugins/authmysql/lang/cs/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['connectfail'] = 'Selhalo pÅ™ipojenà k databázi.'; +$lang['userexists'] = 'Omlouváme se, ale uživatel s tÃmto jménem již existuje.'; +$lang['usernotexists'] = 'Omlouváme se, uživatel tohoto jména neexistuje.'; +$lang['writefail'] = 'Nelze zmÄ›nit údaje uživatele. Informujte prosÃm správce wiki'; diff --git a/lib/plugins/authplain/lang/cs/lang.php b/lib/plugins/authplain/lang/cs/lang.php index 8128d45a3..852a30044 100644 --- a/lib/plugins/authplain/lang/cs/lang.php +++ b/lib/plugins/authplain/lang/cs/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> */ -$lang['userexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; +$lang['userexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; +$lang['usernotexists'] = 'Omlouváme se, uživatel tohoto jména neexistuje.'; +$lang['writefail'] = 'Nelze zmÄ›nit údaje uživatele. Informujte prosÃm správce wiki'; diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index 289c458e5..75a0db5a2 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Czech language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz @@ -13,6 +13,7 @@ * @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com> * @author Jakub A. TěšÃnský (j@kub.cz) * @author mkucera66@seznam.cz + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> */ $lang['menu'] = 'Správa nastavenÃ'; $lang['error'] = 'Nastavenà nebyla zmÄ›nÄ›na kvůli alespoň jedné neplatné položce, @@ -95,7 +96,9 @@ $lang['disableactions'] = 'Vypnout DokuWiki akce'; $lang['disableactions_check'] = 'Zkontrolovat'; $lang['disableactions_subscription'] = 'PÅ™ihlásit se/Odhlásit se ze seznamu pro odbÄ›r zmÄ›n'; $lang['disableactions_wikicode'] = 'ProhlÞet zdrojové kódy/Export wiki textu'; +$lang['disableactions_profile_delete'] = 'Smazat vlasnà úÄet'; $lang['disableactions_other'] = 'DalÅ¡Ã akce (oddÄ›lené Äárkou)'; +$lang['disableactions_rss'] = 'XMS syndikace (RSS)'; $lang['auth_security_timeout'] = 'ÄŒasový limit pro autentikaci (v sekundách)'; $lang['securecookie'] = 'Má prohlÞeÄ posÃlat cookies nastavené pÅ™es HTTPS opÄ›t jen pÅ™es HTTPS? VypnÄ›te tuto volbu, pokud chcete, aby bylo pomocà SSL zabezpeÄeno pouze pÅ™ihlaÅ¡ovánà do wiki, ale obsah budete prohlÞet nezabezpeÄenÄ›.'; $lang['remote'] = 'Zapne API systému, umožňujÃcà jiným aplikacÃm vzdálený pÅ™Ãstup k wiki pomoci XML-RPC nebo jiných mechanizmů.'; diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php index d48c517cf..39da12165 100644 --- a/lib/plugins/extension/lang/cs/lang.php +++ b/lib/plugins/extension/lang/cs/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> */ @@ -26,6 +26,10 @@ $lang['btn_disable'] = 'Zakázat'; $lang['btn_install'] = 'Instalovat'; $lang['btn_reinstall'] = 'PÅ™einstalovat'; $lang['js']['reallydel'] = 'Opravdu odinstalovat toto rozÅ¡ÃÅ™enÃ?'; +$lang['js']['display_viewoptions'] = 'Zobrazit možnosti:'; +$lang['js']['display_enabled'] = 'povolit'; +$lang['js']['display_disabled'] = 'zakázat'; +$lang['js']['display_updatable'] = 'aktualizovatelné'; $lang['search_for'] = 'Hledat rozÅ¡ÃÅ™enÃ:'; $lang['search'] = 'Hledat'; $lang['extensionby'] = '<strong>%s</strong> od %s'; diff --git a/lib/plugins/styling/lang/cs/lang.php b/lib/plugins/styling/lang/cs/lang.php new file mode 100644 index 000000000..8148b784f --- /dev/null +++ b/lib/plugins/styling/lang/cs/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['menu'] = 'Nastavenà stylů vzhledu'; +$lang['js']['loader'] = 'Náhled se naÄÃtá...<br />pokud tento text nezmizÃ, pravdÄ›podobnÄ› jsou nastaveny nesprávné hodnoty'; +$lang['js']['popup'] = 'OtevÅ™it ve vlastnÃm oknÄ›'; +$lang['error'] = 'Omlouváme se, tento '; +$lang['btn_preview'] = 'Náhled zmÄ›n'; +$lang['btn_save'] = 'Uložit zmÄ›ny'; +$lang['btn_reset'] = 'ZruÅ¡it aktuálnà zmÄ›ny'; +$lang['btn_revert'] = 'Vrátit styly zpÄ›t na výchozà hodnoty vzhledu'; +$lang['__text__'] = 'Barva hlavnÃho textu'; +$lang['__background__'] = 'Barva hlavnÃho pozadÃ'; +$lang['__text_alt__'] = 'Barva alternativnÃho textu'; +$lang['__background_alt__'] = 'Barva alternativnÃho pozadÃ'; +$lang['__text_neu__'] = 'Barva neutrálnÃho textu'; +$lang['__background_neu__'] = 'Barva neutrálnÃho pozadÃ'; +$lang['__border__'] = 'Barva rámovánÃ'; +$lang['__highlight__'] = 'ZvýraznÄ›ná barva (hlavnÄ› pro výsledky vyhledávánÃ)'; diff --git a/lib/tpl/dokuwiki/lang/cs/lang.php b/lib/tpl/dokuwiki/lang/cs/lang.php new file mode 100644 index 000000000..0f03ba491 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cs/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['__link__'] = 'Hlavnà barva odkazů'; +$lang['__existing__'] = 'Barva odkazů na existujÃcà stránky'; +$lang['__missing__'] = 'Barva odkazů na neexistujÃcà stránky'; -- GitLab From d1e3b6f51641353eed38d7b375bc54f837ea8c76 Mon Sep 17 00:00:00 2001 From: RainbowSpike <1@2.ru> Date: Wed, 12 Aug 2015 08:01:10 +0200 Subject: [PATCH 327/440] translation update --- inc/lang/ru/lang.php | 3 +- lib/plugins/authplain/lang/ru/lang.php | 8 +- lib/plugins/config/lang/ru/lang.php | 9 +- lib/plugins/extension/lang/ru/lang.php | 188 ++++++++++++------------- lib/plugins/styling/lang/ru/intro.txt | 1 + lib/plugins/styling/lang/ru/lang.php | 23 +++ lib/tpl/dokuwiki/lang/ru/lang.php | 14 ++ 7 files changed, 141 insertions(+), 105 deletions(-) create mode 100644 lib/plugins/styling/lang/ru/intro.txt create mode 100644 lib/plugins/styling/lang/ru/lang.php create mode 100644 lib/tpl/dokuwiki/lang/ru/lang.php diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 40d3ffefe..569ea0d9b 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Yuri Pimenov <up@ftpsearch.lv> * @author Igor Tarasov <tigr@mail15.com> * @author Denis Simakov <akinoame1@gmail.com> @@ -32,6 +32,7 @@ * @author Alex P <alexander@lanos.co.uk> * @author Nolf <m.kopachovets@gmail.com> * @author Takumo <9206984@mail.ru> + * @author RainbowSpike <1@2.ru> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php index 8a40852d6..c36d5b444 100644 --- a/lib/plugins/authplain/lang/ru/lang.php +++ b/lib/plugins/authplain/lang/ru/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author RainbowSpike <1@2.ru> */ -$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; +$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; +$lang['usernotexists'] = 'Ðтот пользователь незарегиÑтрирован.'; +$lang['writefail'] = 'Ðевозможно обновить данные пользователÑ. СвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором вики'; diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php index 596ad4ead..57e0602f7 100644 --- a/lib/plugins/config/lang/ru/lang.php +++ b/lib/plugins/config/lang/ru/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Russian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Denis Simakov <akinoame1@gmail.com> * @author Andrew Pleshakov <beotiger@mail.ru> * @author Змей ÐтерийÑкий evil_snake@eternion.ru @@ -18,6 +18,7 @@ * @author Eugene <windy.wanderer@gmail.com> * @author Johnny Utah <pcpa@cyberpunk.su> * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) + * @author RainbowSpike <1@2.ru> */ $lang['menu'] = 'ÐаÑтройки вики'; $lang['error'] = 'ÐаÑтройки не были Ñохранены из-за ошибки в одном из значений. ПожалуйÑта, проверьте Ñвои Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ попробуйте ещё раз.<br />Ðеправильные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ обведены краÑной рамкой.'; @@ -91,7 +92,9 @@ $lang['disableactions'] = 'Заблокировать операции « $lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'ПодпиÑка/Отмена подпиÑки'; $lang['disableactions_wikicode'] = 'Показ/ÑкÑпорт иÑходного текÑта'; +$lang['disableactions_profile_delete'] = 'Удалить Ñвой аккаунт'; $lang['disableactions_other'] = 'Другие операции (через запÑтую)'; +$lang['disableactions_rss'] = 'XML ÑÐ¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ (RSS)'; $lang['auth_security_timeout'] = 'Интервал Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти авторизации (Ñек.)'; $lang['securecookie'] = 'Должны ли куки (cookies), выÑтавленные через HTTPS, отправлÑÑ‚ÑŒÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ только через HTTPS. Отключите Ñту опцию в Ñлучае, когда только логин вашей вики передаётÑÑ Ñ‡ÐµÑ€ÐµÐ· SSL, а обычный проÑмотр оÑущеÑтвлÑетÑÑ Ð² небезопаÑном режиме.'; $lang['remote'] = 'Включить ÑиÑтему API Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹. Ðто позволит другим приложениÑм получить доÑтуп к вики через XML-RPC или другие механизмы.'; @@ -123,6 +126,7 @@ $lang['notify'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¸Ð· $lang['registernotify'] = 'ПоÑылать информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ'; $lang['mailfrom'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð²Ð¸ÐºÐ¸ (От:)'; $lang['mailprefix'] = 'ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¸Ñпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма Ñтанет темой Ñообщений'; +$lang['htmlmail'] = 'ОтправлÑÑ‚ÑŒ краÑивые, но крупные HTML-многочаÑтные пиÑьма. Ð”Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ проÑÑ‚Ñ‹Ñ… текÑтовых пиÑем - отключить'; $lang['sitemap'] = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑÑ‚ÑŒ) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.)'; $lang['rss_type'] = 'Тип RSS'; $lang['rss_linkto'] = 'СÑылки в RSS'; @@ -195,6 +199,7 @@ $lang['xsendfile_o_2'] = 'Стандартный заголовок X-Se $lang['xsendfile_o_3'] = 'Проприетарный заголовок Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Логин'; $lang['showuseras_o_username'] = 'Полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; +$lang['showuseras_o_username_link'] = 'Полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº интервики-ÑÑылка'; $lang['showuseras_o_email'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в шифрованном виде (Ñм. mailguard)'; $lang['showuseras_o_email_link'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в виде ÑÑылки mailto:'; $lang['useheading_o_0'] = 'Ðикогда'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 71d949606..746af3ef1 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> @@ -10,103 +10,91 @@ * @author Alex P <alexander@lanos.co.uk> * @author Takumo <9206984@mail.ru> */ -$lang['menu'] = 'Управление дополнениÑми'; - -$lang['tab_plugins'] = 'УÑтановленные плагины'; -$lang['tab_templates'] = 'УÑтановленные шаблоны'; -$lang['tab_search'] = 'ПоиÑк и уÑтановка'; -$lang['tab_install'] = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка'; - -$lang['notimplemented'] = 'Ðта возможноÑÑ‚ÑŒ ещё не реализована'; -$lang['notinstalled'] = 'Ðто дополнение не уÑтановлено'; -$lang['alreadyenabled'] = 'Ðто дополнение уже включено'; -$lang['alreadydisabled'] = 'Ðто дополнение уже отключено'; -$lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; -$lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; -$lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; - -$lang['btn_info'] = 'Отобразить доп. информацию'; -$lang['btn_update'] = 'Обновить'; -$lang['btn_uninstall'] = 'Удалить'; -$lang['btn_enable'] = 'Включить'; -$lang['btn_disable'] = 'Отключить'; -$lang['btn_install'] = 'УÑтановить'; -$lang['btn_reinstall'] = 'ПереуÑтановить'; - -$lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; -$lang['js']['display_viewoptions'] = 'Показать как:'; -$lang['js']['display_enabled'] = 'включено'; -$lang['js']['display_disabled'] = 'отключено'; -$lang['js']['display_updatable'] = 'обновление'; - -$lang['search_for'] = 'ПоиÑк дополнениÑ:'; -$lang['search'] = 'Ðайти'; - -$lang['extensionby'] = '<strong>%s</strong> — %s'; -$lang['screenshot'] = 'Скриншот: %s'; -$lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; -$lang['homepage_link'] = 'ОпиÑание'; -$lang['bugs_features'] = 'Баг-трекер'; -$lang['tags'] = 'Метки:'; -$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; -$lang['installed'] = 'УÑтановлено:'; -$lang['downloadurl'] = 'Скачать:'; -$lang['repository'] = 'Репозиторий:'; -$lang['unknown'] = '<em>неизвеÑтно</em>'; -$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; -$lang['install_date'] = 'ПоÑл. обновление:'; -$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['compatible'] = 'СовмеÑтим Ñ:'; -$lang['depends'] = 'ЗавиÑит от:'; -$lang['similar'] = 'Похож на:'; -$lang['conflicts'] = 'Конфликтует Ñ:'; -$lang['donate'] = 'ÐравитÑÑ?'; -$lang['donate_action'] = 'Купить автору кофе!'; -$lang['repo_retry'] = 'Повторить'; -$lang['provides'] = 'ПредоÑтавлÑет:'; -$lang['status'] = 'СоÑтоÑние:'; -$lang['status_installed'] = 'уÑтановлено'; -$lang['status_not_installed'] = 'не уÑтановлено'; -$lang['status_protected'] = 'защищено'; -$lang['status_enabled'] = 'включено'; -$lang['status_disabled'] = 'отключено'; -$lang['status_unmodifiable'] = 'неизменÑемо'; -$lang['status_plugin'] = 'плагин'; -$lang['status_template'] = 'шаблон'; -$lang['status_bundled'] = 'в комплекте'; - -$lang['msg_enabled'] = 'Плагин %s включён'; -$lang['msg_disabled'] = 'Плагин %s отключён'; -$lang['msg_delete_success'] = 'Дополнение %s удалено'; -$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить дополнение %s'; +$lang['menu'] = 'Управление дополнениÑми'; +$lang['tab_plugins'] = 'УÑтановленные плагины'; +$lang['tab_templates'] = 'УÑтановленные шаблоны'; +$lang['tab_search'] = 'ПоиÑк и уÑтановка'; +$lang['tab_install'] = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка'; +$lang['notimplemented'] = 'Ðта возможноÑÑ‚ÑŒ ещё не реализована'; +$lang['notinstalled'] = 'Ðто дополнение не уÑтановлено'; +$lang['alreadyenabled'] = 'Ðто дополнение уже включено'; +$lang['alreadydisabled'] = 'Ðто дополнение уже отключено'; +$lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; +$lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; +$lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; +$lang['btn_info'] = 'Отобразить доп. информацию'; +$lang['btn_update'] = 'Обновить'; +$lang['btn_uninstall'] = 'Удалить'; +$lang['btn_enable'] = 'Включить'; +$lang['btn_disable'] = 'Отключить'; +$lang['btn_install'] = 'УÑтановить'; +$lang['btn_reinstall'] = 'ПереуÑтановить'; +$lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; +$lang['js']['display_viewoptions'] = 'Показать как:'; +$lang['js']['display_enabled'] = 'включено'; +$lang['js']['display_disabled'] = 'отключено'; +$lang['js']['display_updatable'] = 'обновление'; +$lang['search_for'] = 'ПоиÑк дополнениÑ:'; +$lang['search'] = 'Ðайти'; +$lang['extensionby'] = '<strong>%s</strong> — %s'; +$lang['screenshot'] = 'Скриншот: %s'; +$lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; +$lang['homepage_link'] = 'ОпиÑание'; +$lang['bugs_features'] = 'Баг-трекер'; +$lang['tags'] = 'Метки:'; +$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; +$lang['installed'] = 'УÑтановлено:'; +$lang['downloadurl'] = 'Скачать:'; +$lang['repository'] = 'Репозиторий:'; +$lang['unknown'] = '<em>неизвеÑтно</em>'; +$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; +$lang['install_date'] = 'ПоÑл. обновление:'; +$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; +$lang['compatible'] = 'СовмеÑтим Ñ:'; +$lang['depends'] = 'ЗавиÑит от:'; +$lang['similar'] = 'Похож на:'; +$lang['conflicts'] = 'Конфликтует Ñ:'; +$lang['donate'] = 'ÐравитÑÑ?'; +$lang['donate_action'] = 'Купить автору кофе!'; +$lang['repo_retry'] = 'Повторить'; +$lang['provides'] = 'ПредоÑтавлÑет:'; +$lang['status'] = 'СоÑтоÑние:'; +$lang['status_installed'] = 'уÑтановлено'; +$lang['status_not_installed'] = 'не уÑтановлено'; +$lang['status_protected'] = 'защищено'; +$lang['status_enabled'] = 'включено'; +$lang['status_disabled'] = 'отключено'; +$lang['status_unmodifiable'] = 'неизменÑемо'; +$lang['status_plugin'] = 'плагин'; +$lang['status_template'] = 'шаблон'; +$lang['status_bundled'] = 'в комплекте'; +$lang['msg_enabled'] = 'Плагин %s включён'; +$lang['msg_disabled'] = 'Плагин %s отключён'; +$lang['msg_delete_success'] = 'Дополнение %s удалено'; +$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить дополнение %s'; $lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен'; -$lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; -$lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен'; -$lang['msg_plugin_update_success'] = 'Плагин %s уÑпешно обновлён'; -$lang['msg_upload_failed'] = 'Ðе удалоÑÑŒ загрузить файл'; - -$lang['missing_dependency'] = '<strong>ОтÑутÑтвует или отключена завиÑимоÑÑ‚ÑŒ:</strong> %s'; -$lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; -$lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; -$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s'; -$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s'; -$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; - -$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; -$lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; -$lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; -$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; -$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; - -$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['git'] = 'Ðто дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; -$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; - -$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа:'; -$lang['install_upload'] = 'Скачать дополнение:'; - -$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org и также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; -$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и дополнений.'; +$lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; +$lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен'; +$lang['msg_plugin_update_success'] = 'Плагин %s уÑпешно обновлён'; +$lang['msg_upload_failed'] = 'Ðе удалоÑÑŒ загрузить файл'; +$lang['missing_dependency'] = '<strong>ОтÑутÑтвует или отключена завиÑимоÑÑ‚ÑŒ:</strong> %s'; +$lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; +$lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; +$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s'; +$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s'; +$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; +$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; +$lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; +$lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; +$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; +$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; +$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['git'] = 'Ðто дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; +$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; +$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа:'; +$lang['install_upload'] = 'Скачать дополнение:'; +$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org и также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; +$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и дополнений.'; diff --git a/lib/plugins/styling/lang/ru/intro.txt b/lib/plugins/styling/lang/ru/intro.txt new file mode 100644 index 000000000..61486a3c9 --- /dev/null +++ b/lib/plugins/styling/lang/ru/intro.txt @@ -0,0 +1 @@ +Ðтот инÑтрумент позволÑет изменÑÑ‚ÑŒ Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð² файле конфигурации и защищены от ÑброÑа при обновлении. \ No newline at end of file diff --git a/lib/plugins/styling/lang/ru/lang.php b/lib/plugins/styling/lang/ru/lang.php new file mode 100644 index 000000000..a0ba539e3 --- /dev/null +++ b/lib/plugins/styling/lang/ru/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author RainbowSpike <1@2.ru> + */ +$lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; +$lang['js']['loader'] = 'ЗагружаетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотр...<br />ЕÑли здеÑÑŒ ÑлучилÑÑ Ñбой, ваши наÑтройки могут быть Ñброшены'; +$lang['js']['popup'] = 'Открыть во вÑплывающем окне'; +$lang['error'] = 'Ðтот шаблонне поддерживает такой функционал.'; +$lang['btn_preview'] = 'ПроÑмотреть изменениÑ'; +$lang['btn_save'] = 'Сохранить изменениÑ'; +$lang['btn_reset'] = 'СброÑить Ñделанные изменениÑ'; +$lang['btn_revert'] = 'Откатить Ñтили к иÑходным Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°'; +$lang['__text__'] = 'Цвет текÑта'; +$lang['__background__'] = 'Цвет фона'; +$lang['__text_alt__'] = 'Второй цвет текÑта'; +$lang['__background_alt__'] = 'Второй цвет фона'; +$lang['__text_neu__'] = 'Ðейтральный цвет текÑта'; +$lang['__background_neu__'] = 'Ðейтральный цвет фона'; +$lang['__border__'] = 'Цвет границ'; +$lang['__highlight__'] = 'Цвет подÑветки (в оÑновном Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² поиÑка)'; diff --git a/lib/tpl/dokuwiki/lang/ru/lang.php b/lib/tpl/dokuwiki/lang/ru/lang.php new file mode 100644 index 000000000..09492cda7 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ru/lang.php @@ -0,0 +1,14 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author RainbowSpike <1@2.ru> + */ +$lang['__background_site__'] = 'Цвет Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ³Ð¾ фона (за окном Ñодержимого)'; +$lang['__link__'] = 'ОÑновной цвет ÑÑылок'; +$lang['__existing__'] = 'Цвет ÑущеÑтвующих ÑÑылок'; +$lang['__missing__'] = 'Цвет неÑущеÑтвующих ÑÑылок'; +$lang['__site_width__'] = 'Ширина вÑего Ñайта (любые CSS-единицы)'; +$lang['__sidebar_width__'] = 'Ширина Ñайдбара, еÑли еÑÑ‚ÑŒ (любые CSS-единицы)'; +$lang['__tablet_width__'] = 'Переключать Ñайт в планшетный вид ниже ширины'; -- GitLab From 31cc75290a003bb8c2bea2c7aa01a11086bff186 Mon Sep 17 00:00:00 2001 From: Rainbow Spike <Dr-Yukon@users.noreply.github.com> Date: Wed, 12 Aug 2015 16:07:49 +1000 Subject: [PATCH 328/440] Create intro.txt --- lib/plugins/styling/lang/ru/intro.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/plugins/styling/lang/ru/intro.txt diff --git a/lib/plugins/styling/lang/ru/intro.txt b/lib/plugins/styling/lang/ru/intro.txt new file mode 100644 index 000000000..39a09c0e1 --- /dev/null +++ b/lib/plugins/styling/lang/ru/intro.txt @@ -0,0 +1 @@ +Ðтот инÑтрумент позволÑет изменÑÑ‚ÑŒ Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð² файле конфигурации и защищены от ÑброÑа при обновлении. -- GitLab From dbfb8cf4518d2346331236ddf15558d409d6712b Mon Sep 17 00:00:00 2001 From: Rainbow Spike <Dr-Yukon@users.noreply.github.com> Date: Wed, 12 Aug 2015 16:13:12 +1000 Subject: [PATCH 329/440] Create lang.php --- lib/plugins/styling/lang/ru/lang.php | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/plugins/styling/lang/ru/lang.php diff --git a/lib/plugins/styling/lang/ru/lang.php b/lib/plugins/styling/lang/ru/lang.php new file mode 100644 index 000000000..20a13f1dc --- /dev/null +++ b/lib/plugins/styling/lang/ru/lang.php @@ -0,0 +1,35 @@ +<?php +/** + * Russian language file for styling plugin + * + * @author Rainbow_Spike + */ + +// Ðаименование плагина Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½ÐºÐ¸ +$lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; + +$lang['js']['loader'] = 'ЗагружаетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотр...<br />ЕÑли здеÑÑŒ ÑлучилÑÑ Ñбой, ваши наÑтройки могут быть Ñброшены'; +$lang['js']['popup'] = 'Открыть во вÑплывающем окне'; + +// Языковые переменные Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð° +$lang['error'] = 'Ðтот шаблон не поддерживает такой функционал.'; + +$lang['btn_preview'] = 'ПроÑмотреть изменениÑ'; +$lang['btn_save'] = 'Сохранить изменениÑ'; +$lang['btn_reset'] = 'СброÑить Ñделанные изменениÑ'; +$lang['btn_revert'] = 'Откатить Ñтили к иÑходным Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°'; + +// default guaranteed placeholders +$lang['__text__'] = 'Цвет текÑта'; +$lang['__background__'] = 'Цвет фона'; +$lang['__text_alt__'] = 'Второй цвет текÑта'; +$lang['__background_alt__'] = 'Второй цвет фона'; +$lang['__text_neu__'] = 'Ðейтральный цвет текÑта'; +$lang['__background_neu__'] = 'Ðейтральный цвет фона'; +$lang['__border__'] = 'Цвет границ'; +$lang['__highlight__'] = 'Цвет подÑветки (в оÑновном Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² поиÑка)'; + + + + +//Setup VIM: ex: et ts=4 : -- GitLab From abbfdfefc9bf5549b7f6a6c6697fa4f4426e7922 Mon Sep 17 00:00:00 2001 From: Turkislav <turkislav@blabla.com> Date: Wed, 12 Aug 2015 10:21:09 +0200 Subject: [PATCH 330/440] translation update --- inc/lang/cs/lang.php | 1 + lib/plugins/config/lang/cs/lang.php | 1 + lib/plugins/extension/lang/cs/lang.php | 3 ++- lib/plugins/revert/lang/cs/lang.php | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index cd161341e..ffc99eccf 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -19,6 +19,7 @@ * @author Radovan Buroň <radovan@buron.cz> * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index 75a0db5a2..d7a7362ae 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -14,6 +14,7 @@ * @author Jakub A. TěšÃnský (j@kub.cz) * @author mkucera66@seznam.cz * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['menu'] = 'Správa nastavenÃ'; $lang['error'] = 'Nastavenà nebyla zmÄ›nÄ›na kvůli alespoň jedné neplatné položce, diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php index 39da12165..1fef75a45 100644 --- a/lib/plugins/extension/lang/cs/lang.php +++ b/lib/plugins/extension/lang/cs/lang.php @@ -5,8 +5,9 @@ * * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ -$lang['menu'] = 'Manager rozÅ¡ÃÅ™enÃ'; +$lang['menu'] = 'Správce rozÅ¡ÃÅ™enÃ'; $lang['tab_plugins'] = 'Instalované moduly'; $lang['tab_templates'] = 'Instalované Å¡ablony'; $lang['tab_search'] = 'Vyhledej a instaluj'; diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php index 619a9d929..494750d5e 100644 --- a/lib/plugins/revert/lang/cs/lang.php +++ b/lib/plugins/revert/lang/cs/lang.php @@ -19,6 +19,7 @@ * @author Radovan Buroň <radovan@buron.cz> * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['menu'] = 'Obnova zaspamovaných stránek'; $lang['filter'] = 'Hledat zaspamované stránky'; -- GitLab From 0ef04790d1ae9d3b27b8d389235f9c5f29b65a95 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Wed, 5 Aug 2015 11:30:43 +0200 Subject: [PATCH 331/440] renamed test file --- .../{general_languagelint.php => general_languagelint.test.php} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _test/tests/general/{general_languagelint.php => general_languagelint.test.php} (100%) diff --git a/_test/tests/general/general_languagelint.php b/_test/tests/general/general_languagelint.test.php similarity index 100% rename from _test/tests/general/general_languagelint.php rename to _test/tests/general/general_languagelint.test.php -- GitLab From 530d672995040c320a9506a0b93258a49c4d0b29 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Thu, 13 Aug 2015 10:40:35 +0200 Subject: [PATCH 332/440] updated php-archive to 1.0.7 fixes #1296 --- .gitignore | 2 + composer.lock | 10 ++-- vendor/composer/ClassLoader.php | 8 +-- vendor/composer/installed.json | 12 ++--- vendor/splitbrain/php-archive/.gitignore | 3 +- vendor/splitbrain/php-archive/README.md | 14 ++++-- vendor/splitbrain/php-archive/src/Archive.php | 4 ++ .../splitbrain/php-archive/src/FileInfo.php | 1 + vendor/splitbrain/php-archive/src/Tar.php | 50 ++++++++++++++----- 9 files changed, 70 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index dd5c9cf18..7410ee1c3 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,5 @@ vendor/*/*/test/* vendor/*/*/doc/* vendor/*/*/docs/* vendor/*/*/contrib/* +vendor/splitbrain/php-archive/apigen.neon +vendor/splitbrain/php-archive/generate-api.sh diff --git a/composer.lock b/composer.lock index 9aa165902..f504ba638 100644 --- a/composer.lock +++ b/composer.lock @@ -54,16 +54,16 @@ }, { "name": "splitbrain/php-archive", - "version": "1.0.4", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/splitbrain/php-archive.git", - "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68" + "reference": "c075304b44c4aadff0718af445e86bf730f331ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68", - "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff", "shasum": "" }, "require": { @@ -97,7 +97,7 @@ "unzip", "zip" ], - "time": "2015-07-24 11:36:49" + "time": "2015-08-12 13:24:34" } ], "packages-dev": [], diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 4e05d3b15..5e1469e83 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -351,7 +351,7 @@ class ClassLoader foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { if (0 === strpos($class, $prefix)) { foreach ($this->prefixDirsPsr4[$prefix] as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { return $file; } } @@ -361,7 +361,7 @@ class ClassLoader // PSR-4 fallback dirs foreach ($this->fallbackDirsPsr4 as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { return $file; } } @@ -380,7 +380,7 @@ class ClassLoader foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { if (0 === strpos($class, $prefix)) { foreach ($dirs as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } @@ -390,7 +390,7 @@ class ClassLoader // PSR-0 fallback dirs foreach ($this->fallbackDirsPsr0 as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9b20b8a09..0510ac994 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -49,17 +49,17 @@ }, { "name": "splitbrain/php-archive", - "version": "1.0.4", - "version_normalized": "1.0.4.0", + "version": "1.0.7", + "version_normalized": "1.0.7.0", "source": { "type": "git", "url": "https://github.com/splitbrain/php-archive.git", - "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68" + "reference": "c075304b44c4aadff0718af445e86bf730f331ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68", - "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff", "shasum": "" }, "require": { @@ -68,7 +68,7 @@ "require-dev": { "phpunit/phpunit": "4.5.*" }, - "time": "2015-07-24 11:36:49", + "time": "2015-08-12 13:24:34", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/splitbrain/php-archive/.gitignore b/vendor/splitbrain/php-archive/.gitignore index 39b851b56..c6277c187 100644 --- a/vendor/splitbrain/php-archive/.gitignore +++ b/vendor/splitbrain/php-archive/.gitignore @@ -3,5 +3,6 @@ composer.phar vendor/ composer.lock - +apigen.phar +docs/ diff --git a/vendor/splitbrain/php-archive/README.md b/vendor/splitbrain/php-archive/README.md index 6c5780a7a..f18764b61 100644 --- a/vendor/splitbrain/php-archive/README.md +++ b/vendor/splitbrain/php-archive/README.md @@ -19,8 +19,11 @@ Usage ----- The usage for the Zip and Tar classes are basically the same. Here are some -examples for working with TARs to get you started. Check the source code -comments for more info +examples for working with TARs to get you started. + +Check the [API docs](https://splitbrain.github.io/php-archive/) for more +info. + ```php require_once 'vendor/autoload.php'; @@ -51,16 +54,17 @@ $tar->close(); // To create a TAR archive directly in memory, create() it, add*() // files and then either save() or getArchive() it: $tar = new Tar(); +$tar->setCompression(9, Archive::COMPRESS_BZIP); $tar->create(); $tar->addFile(...); $tar->addData(...); ... -$tar->save('myfile.tgz'); // compresses and saves it -echo $tar->getArchive(Archive::COMPRESS_GZIP); // compresses and returns it +$tar->save('myfile.tbz'); // compresses and saves it +echo $tar->getArchive(); // compresses and returns it ``` Differences between Tar and Zip: Tars are compressed as a whole, while Zips compress each file individually. Therefore you can call ```setCompression``` before each ```addFile()``` and ```addData()``` function call. The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to -an archive. \ No newline at end of file +an archive. diff --git a/vendor/splitbrain/php-archive/src/Archive.php b/vendor/splitbrain/php-archive/src/Archive.php index c60fea777..d672cc6ec 100644 --- a/vendor/splitbrain/php-archive/src/Archive.php +++ b/vendor/splitbrain/php-archive/src/Archive.php @@ -126,3 +126,7 @@ class ArchiveIOException extends \Exception class ArchiveIllegalCompressionException extends \Exception { } + +class ArchiveCorruptedException extends \Exception +{ +} diff --git a/vendor/splitbrain/php-archive/src/FileInfo.php b/vendor/splitbrain/php-archive/src/FileInfo.php index c443aa977..612f924c3 100644 --- a/vendor/splitbrain/php-archive/src/FileInfo.php +++ b/vendor/splitbrain/php-archive/src/FileInfo.php @@ -61,6 +61,7 @@ class FileInfo $file->setMode(fileperms($path)); $file->setOwner(fileowner($path)); $file->setGroup(filegroup($path)); + $file->setSize(filesize($path)); $file->setUid($stat['uid']); $file->setGid($stat['gid']); $file->setMtime($stat['mtime']); diff --git a/vendor/splitbrain/php-archive/src/Tar.php b/vendor/splitbrain/php-archive/src/Tar.php index bd78136da..e29c7d5a6 100644 --- a/vendor/splitbrain/php-archive/src/Tar.php +++ b/vendor/splitbrain/php-archive/src/Tar.php @@ -36,6 +36,8 @@ class Tar extends Archive $this->compressioncheck($type); $this->comptype = $type; $this->complevel = $level; + if($level == 0) $this->comptype = Archive::COMPRESS_NONE; + if($type == Archive::COMPRESS_NONE) $this->complevel = 0; } /** @@ -366,7 +368,7 @@ class Tar extends Archive public function save($file) { if ($this->comptype === Archive::COMPRESS_AUTO) { - $this->setCompression($this->filetype($this->complevel, $file)); + $this->setCompression($this->complevel, $this->filetype($file)); } if (!file_put_contents($file, $this->getArchive())) { @@ -429,7 +431,12 @@ class Tar extends Archive @gzseek($this->fh, $bytes, SEEK_CUR); } elseif ($this->comptype === Archive::COMPRESS_BZIP) { // there is no seek in bzip2, we simply read on - @bzread($this->fh, $bytes); + // bzread allows to read a max of 8kb at once + while($bytes) { + $toread = min(8192, $bytes); + @bzread($this->fh, $toread); + $bytes -= $toread; + } } else { @fseek($this->fh, $bytes, SEEK_CUR); } @@ -513,15 +520,19 @@ class Tar extends Archive /** * Decode the given tar file header * - * @param string $block a 512 byte block containign the header data - * @return array|bool + * @param string $block a 512 byte block containing the header data + * @return array|false returns false when this was a null block + * @throws ArchiveCorruptedException */ protected function parseHeader($block) { if (!$block || strlen($block) != 512) { - return false; + throw new ArchiveCorruptedException('Unexpected length of header'); } + // null byte blocks are ignored + if(trim($block) === '') return false; + for ($i = 0, $chks = 0; $i < 148; $i++) { $chks += ord($block[$i]); } @@ -535,12 +546,12 @@ class Tar extends Archive $block ); if (!$header) { - return false; + throw new ArchiveCorruptedException('Failed to parse header'); } $return['checksum'] = OctDec(trim($header['checksum'])); if ($return['checksum'] != $chks) { - return false; + throw new ArchiveCorruptedException('Header does not match it\'s checksum'); } $return['filename'] = trim($header['filename']); @@ -613,7 +624,9 @@ class Tar extends Archive } /** - * Guesses the wanted compression from the given filename extension + * Guesses the wanted compression from the given file + * + * Uses magic bytes for existing files, the file extension otherwise * * You don't need to call this yourself. It's used when you pass Archive::COMPRESS_AUTO somewhere * @@ -622,14 +635,25 @@ class Tar extends Archive */ public function filetype($file) { + // for existing files, try to read the magic bytes + if(file_exists($file) && is_readable($file) && filesize($file) > 5) { + $fh = fopen($file, 'rb'); + if(!$fh) return false; + $magic = fread($fh, 5); + fclose($fh); + + if(strpos($magic, "\x42\x5a") === 0) return Archive::COMPRESS_BZIP; + if(strpos($magic, "\x1f\x8b") === 0) return Archive::COMPRESS_GZIP; + } + + // otherwise rely on file name $file = strtolower($file); if (substr($file, -3) == '.gz' || substr($file, -4) == '.tgz') { - $comptype = Archive::COMPRESS_GZIP; + return Archive::COMPRESS_GZIP; } elseif (substr($file, -4) == '.bz2' || substr($file, -4) == '.tbz') { - $comptype = Archive::COMPRESS_BZIP; - } else { - $comptype = Archive::COMPRESS_NONE; + return Archive::COMPRESS_BZIP; } - return $comptype; + + return Archive::COMPRESS_NONE; } } -- GitLab From ed589e1f9b93dbbfc569d8fe816f1cb6e8a486b1 Mon Sep 17 00:00:00 2001 From: Marton Sebok <sebokmarton@gmail.com> Date: Sat, 15 Aug 2015 20:51:51 +0200 Subject: [PATCH 333/440] translation update --- inc/lang/hu/admin.txt | 4 ++-- inc/lang/hu/lang.php | 8 +++++++- lib/plugins/authad/lang/hu/lang.php | 2 ++ lib/plugins/authldap/lang/hu/lang.php | 9 +++++++++ lib/plugins/authldap/lang/hu/settings.php | 5 +++++ lib/plugins/authmysql/lang/hu/lang.php | 11 +++++++++++ lib/plugins/authplain/lang/hu/lang.php | 8 ++++++-- lib/plugins/config/lang/hu/lang.php | 8 ++++++-- lib/plugins/extension/lang/hu/lang.php | 9 ++++++++- lib/plugins/styling/lang/hu/intro.txt | 2 ++ lib/plugins/styling/lang/hu/lang.php | 23 +++++++++++++++++++++++ lib/tpl/dokuwiki/lang/hu/lang.php | 15 +++++++++++++++ lib/tpl/dokuwiki/lang/hu/style.txt | 1 + 13 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 lib/plugins/authldap/lang/hu/lang.php create mode 100644 lib/plugins/authmysql/lang/hu/lang.php create mode 100644 lib/plugins/styling/lang/hu/intro.txt create mode 100644 lib/plugins/styling/lang/hu/lang.php create mode 100644 lib/tpl/dokuwiki/lang/hu/lang.php create mode 100644 lib/tpl/dokuwiki/lang/hu/style.txt diff --git a/inc/lang/hu/admin.txt b/inc/lang/hu/admin.txt index 03d29243c..51b13eb56 100644 --- a/inc/lang/hu/admin.txt +++ b/inc/lang/hu/admin.txt @@ -1,3 +1,3 @@ -===== Adminisztrálás ===== +===== Adminisztráció ===== -Itt találod a DokuWiki adminisztrálási lehetÅ‘ségeit. +Itt találod a DokuWiki adminisztrációs lehetÅ‘ségeit. diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index 37c23e892..83b45b6d2 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -74,11 +74,12 @@ $lang['badpassconfirm'] = 'Hibás jelszó'; $lang['minoredit'] = 'Apróbb változások'; $lang['draftdate'] = 'Piszkozat elmentve:'; $lang['nosecedit'] = 'IdÅ‘közben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!'; -$lang['searchcreatepage'] = "Ha nem találtad meg amit kerestél, akkor létrehozhatsz egy új oldalt a keresésed alapján ''Az oldal szerkesztése'' gombbal."; +$lang['searchcreatepage'] = 'Ha nem találtad meg amit kerestél, akkor létrehozhatsz egy új oldalt a keresésed alapján \'\'Az oldal szerkesztése\'\' gombbal.'; $lang['regmissing'] = 'Sajnáljuk, az összes mezÅ‘t ki kell töltened.'; $lang['reguexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; $lang['regsuccess'] = 'A felhasználói azonosÃtót létrehoztuk. A jelszót postáztuk.'; $lang['regsuccess2'] = 'A felhasználói azonosÃtót létrehoztuk.'; +$lang['regfail'] = 'A felhasználó létrehozása sikertelen.'; $lang['regmailfail'] = 'Úgy tűnik hiba történt a jelszó postázása során. Kérjük lépj kapcsolatba az Adminisztrátorokkal!'; $lang['regbadmail'] = 'A megadott e-mail cÃm érvénytelennek tűnik. Ha úgy gondolod ez hiba, lépj kapcsolatba az Adminisztrátorokkal!'; $lang['regbadpass'] = 'A két megadott jelszó nem egyezik, próbáld újra!'; @@ -93,6 +94,7 @@ $lang['profdeleteuser'] = 'Felhasználói fiók törlése'; $lang['profdeleted'] = 'Felhasználói fiókodat eltávolÃtottuk errÅ‘l a wiki-rÅ‘l.'; $lang['profconfdelete'] = 'Szeretném eltávolÃtani a felhasználói fiókomat errÅ‘l a wikirÅ‘l. <br/> Ez a cselekvés nem visszavonható.'; $lang['profconfdeletemissing'] = 'A megerÅ‘sÃtÅ‘ négyzet nincs bepipálva'; +$lang['proffail'] = 'A profil frissÃtése sikertelen.'; $lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat'; $lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.'; $lang['resendpwd'] = 'Új jelszó beállÃtása a következÅ‘höz:'; @@ -288,6 +290,7 @@ $lang['i_modified'] = 'Biztonsági okokból ez a Varázsló csak új Csomagold ki újra a fájlokat a letöltött csomagból, vagy nézd meg a teljes <a href="http://dokuwiki.org/install">Dokuwiki telepÃtési útmutatót</a>.'; $lang['i_funcna'] = 'A <code>%s</code> PHP funkció nem elérhetÅ‘. Esetleg a tárhelyszolgáltató letiltotta biztonsági okok miatt?'; $lang['i_phpver'] = 'A PHP <code>%s</code> verziója alacsonyabb, mint ami szükséges lenne: <code>%s</code>. FrissÃtsd a PHP-det újabb verzióra!'; +$lang['i_mbfuncoverload'] = 'A DokuWiki futtatásához az mbstring.func_overload opciót ki kell kapcsolni a php.ini-ben.'; $lang['i_permfail'] = 'A DokiWiki nem tudja Ãrni a <code>%s</code> könyvtárat. Be kell állÃtanod ehhez a könyvtárhoz a megfelelÅ‘ jogosultságokat!'; $lang['i_confexists'] = '<code>%s</code> már létezik.'; $lang['i_writeerr'] = 'Nem tudom ezt létrehozni: <code>%s</code>. EllenÅ‘rizd a könyvtár/fájl jogosultságokat, és hozd létre az állományt kézzel.'; @@ -337,7 +340,10 @@ $lang['media_perm_read'] = 'Sajnáljuk, nincs jogod a fájlok olvasásáho $lang['media_perm_upload'] = 'Sajnáljuk, nincs jogod a feltöltéshez.'; $lang['media_update'] = 'Új verzió feltöltése'; $lang['media_restore'] = 'Ezen verzió visszaállÃtása'; +$lang['media_acl_warning'] = 'Ez a lista hiányos lehet a hozzáférési listák (ACL) korlátozásai és a rejtett oldalak miatt.'; $lang['currentns'] = 'Aktuális névtér'; $lang['searchresult'] = 'Keresés eredménye'; $lang['plainhtml'] = 'Sima HTML'; $lang['wikimarkup'] = 'Wiki-jelölÅ‘nyelv'; +$lang['page_nonexist_rev'] = 'A(z) %s oldal nem létezik. KésÅ‘bb lett létrehozva a(z) <a href="%s">%s</a> helyen.'; +$lang['unable_to_parse_date'] = 'A "%s" paraméter feldolgozása sikertelen.'; diff --git a/lib/plugins/authad/lang/hu/lang.php b/lib/plugins/authad/lang/hu/lang.php index f5692de04..023e6b956 100644 --- a/lib/plugins/authad/lang/hu/lang.php +++ b/lib/plugins/authad/lang/hu/lang.php @@ -7,3 +7,5 @@ */ $lang['domain'] = 'Bejelentkezési tartomány'; $lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.'; +$lang['passchangefail'] = 'A jelszó megváltoztatása sikertelen. Lehet, hogy nem felel meg a jelszóházirendnek?'; +$lang['connectfail'] = 'A csatlakozás az Active Directory szerverhez sikertelen.'; diff --git a/lib/plugins/authldap/lang/hu/lang.php b/lib/plugins/authldap/lang/hu/lang.php new file mode 100644 index 000000000..07c16f3f0 --- /dev/null +++ b/lib/plugins/authldap/lang/hu/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['connectfail'] = 'Az LDAP nem tudott csatlakozni: %s'; +$lang['domainfail'] = 'Az LDAP nem találta a felhasználód megkülönböztetÅ‘ nevét (DN)'; diff --git a/lib/plugins/authldap/lang/hu/settings.php b/lib/plugins/authldap/lang/hu/settings.php index 1e6608dab..364a1e987 100644 --- a/lib/plugins/authldap/lang/hu/settings.php +++ b/lib/plugins/authldap/lang/hu/settings.php @@ -20,9 +20,14 @@ $lang['binddn'] = 'Egy hozzáféréshez használt felhasználó D $lang['bindpw'] = 'Ehhez tartozó jelszó.'; $lang['userscope'] = 'A keresési tartomány korlátozása erre a felhasználókra való keresésnél'; $lang['groupscope'] = 'A keresési tartomány korlátozása erre a csoportokra való keresésnél'; +$lang['userkey'] = 'A felhasználónevet leÃró attribútum; konzisztensnek kell lennie a felhasználói szűrÅ‘vel (userfilter).'; $lang['groupkey'] = 'Csoport meghatározása a következÅ‘ attribútumból (az alapértelmezett AD csoporttagság helyett), pl. a szervezeti egység vagy a telefonszám'; +$lang['modPass'] = 'Az LDAP jelszó megváltoztatható a DokuWiki-n keresztül?'; $lang['debug'] = 'Továbi hibakeresési információk megjelenÃtése hiba esetén'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'alapértelmezett érték használata'; +$lang['referrals_o_0'] = 'ne kövesse az átirányÃtásokat (referral)'; +$lang['referrals_o_1'] = 'kövesse az átirányÃtásokat (referral)'; diff --git a/lib/plugins/authmysql/lang/hu/lang.php b/lib/plugins/authmysql/lang/hu/lang.php new file mode 100644 index 000000000..3f48da335 --- /dev/null +++ b/lib/plugins/authmysql/lang/hu/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['connectfail'] = 'Az adatbázishoz való csatlakozás sikertelen.'; +$lang['userexists'] = 'Sajnos már létezik ilyen azonosÃtójú felhasználó.'; +$lang['usernotexists'] = 'Sajnos ez a felhasználó nem létezik.'; +$lang['writefail'] = 'A felhasználói adatok módosÃtása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!'; diff --git a/lib/plugins/authplain/lang/hu/lang.php b/lib/plugins/authplain/lang/hu/lang.php index 6de5db772..5f684d722 100644 --- a/lib/plugins/authplain/lang/hu/lang.php +++ b/lib/plugins/authplain/lang/hu/lang.php @@ -1,6 +1,10 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Marton Sebok <sebokmarton@gmail.com> */ -$lang['userexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; +$lang['userexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; +$lang['usernotexists'] = 'Sajnos ez a felhasználó nem létezik.'; +$lang['writefail'] = 'A felhasználói adatok módosÃtása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!'; diff --git a/lib/plugins/config/lang/hu/lang.php b/lib/plugins/config/lang/hu/lang.php index 6f774bfac..59d7e9f57 100644 --- a/lib/plugins/config/lang/hu/lang.php +++ b/lib/plugins/config/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com @@ -84,7 +85,9 @@ $lang['disableactions'] = 'Bizonyos DokuWiki tevékenységek (action) til $lang['disableactions_check'] = 'EllenÅ‘rzés'; $lang['disableactions_subscription'] = 'Feliratkozás/Leiratkozás'; $lang['disableactions_wikicode'] = 'Forrás megtekintése/Nyers adat exportja'; +$lang['disableactions_profile_delete'] = 'Saját felhasználó törlése'; $lang['disableactions_other'] = 'Egyéb tevékenységek (vesszÅ‘vel elválasztva)'; +$lang['disableactions_rss'] = 'XML hÃrfolyam (RSS)'; $lang['auth_security_timeout'] = 'Authentikációs biztonsági idÅ‘ablak (másodperc)'; $lang['securecookie'] = 'A böngészÅ‘k a HTTPS felett beállÃtott sütijüket csak HTTPS felett küldhetik? Kapcsoljuk ki ezt az opciót, ha csak a bejelentkezést védjük SSL-lel, a wiki tartalmának böngészése nyÃlt forgalommal történik.'; $lang['remote'] = 'Távoli API engedélyezése. Ezzel más alkalmazások XML-RPC-n keresztül hozzáférhetnek a wikihez.'; @@ -189,6 +192,7 @@ $lang['xsendfile_o_2'] = 'Standard X-Sendfile fejléc'; $lang['xsendfile_o_3'] = 'Nginx saját X-Accel-Redirect fejléce'; $lang['showuseras_o_loginname'] = 'AzonosÃtó'; $lang['showuseras_o_username'] = 'Teljes név'; +$lang['showuseras_o_username_link'] = 'A felhasználó teljes neve belsÅ‘ wiki-hivatkozásként'; $lang['showuseras_o_email'] = 'E-mail cÃm (olvashatatlanná téve az e-mailcÃm védelem beállÃtása szerint)'; $lang['showuseras_o_email_link'] = 'E-mail cÃm mailto: linkként'; $lang['useheading_o_0'] = 'Soha'; diff --git a/lib/plugins/extension/lang/hu/lang.php b/lib/plugins/extension/lang/hu/lang.php index 28194ad9d..7d531e15b 100644 --- a/lib/plugins/extension/lang/hu/lang.php +++ b/lib/plugins/extension/lang/hu/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['menu'] = 'BÅ‘vÃtménykezelÅ‘'; @@ -25,6 +25,10 @@ $lang['btn_disable'] = 'Letiltás'; $lang['btn_install'] = 'TelepÃtés'; $lang['btn_reinstall'] = 'ÚjratelepÃtés'; $lang['js']['reallydel'] = 'Biztosan törlöd ezt a bÅ‘vÃtményt?'; +$lang['js']['display_viewoptions'] = 'Nézet beállÃtásai:'; +$lang['js']['display_enabled'] = 'engedélyezve'; +$lang['js']['display_disabled'] = 'letiltva'; +$lang['js']['display_updatable'] = 'frissÃthetÅ‘'; $lang['search_for'] = 'BÅ‘vÃtmények keresése:'; $lang['search'] = 'Keresés'; $lang['extensionby'] = '<strong>%s</strong>, %s szerzÅ‘tÅ‘l'; @@ -62,6 +66,7 @@ $lang['status_bundled'] = 'beépÃtett'; $lang['msg_enabled'] = 'A(z) %s modul engedélyezve'; $lang['msg_disabled'] = 'A(z) %s modul letiltva'; $lang['msg_delete_success'] = 'A bÅ‘vÃtmény %s törölve'; +$lang['msg_delete_failed'] = 'A(z) %s bÅ‘vÃtmény eltávolÃtása sikertelen'; $lang['msg_template_install_success'] = 'A(z) %s sablon sikeresen telepÃtve'; $lang['msg_template_update_success'] = 'A(z) %s sablon sikeresen frissÃtve'; $lang['msg_plugin_install_success'] = 'A(z) %s modul sikeresen telepÃtve'; @@ -83,6 +88,8 @@ $lang['noperms'] = 'A bÅ‘vÃtmény könyvtára nem Ãrható'; $lang['notplperms'] = 'A sablon könyvtára nem Ãrható'; $lang['nopluginperms'] = 'A modul könyvtára nem Ãrható'; $lang['git'] = 'Ezt a bÅ‘vÃtményt git-tel telepÃtették, lehet, hogy nem itt célszerű frissÃteni'; +$lang['auth'] = 'Ez az autentikációs modul nincs engedélyezve a beállÃtásokban, érdemes lehet letiltani.'; $lang['install_url'] = 'TelepÃtés errÅ‘l az URL-rÅ‘l:'; $lang['install_upload'] = 'BÅ‘vÃtmény feltöltése:'; $lang['repo_error'] = 'A modul repository-ja nem érhetÅ‘ el. Bizonyosodj meg róla, hogy a szervereden engedélyezett a www.dokuwiki.org cÃm elérése és ellenÅ‘rizd a proxy beállÃtásaidat!'; +$lang['nossl'] = 'Úgy tűnik, a PHP konfigurációd nem támogatja az SSL-t. Néhány DokuWiki bÅ‘vÃtmény letöltése sikertelen lehet.'; diff --git a/lib/plugins/styling/lang/hu/intro.txt b/lib/plugins/styling/lang/hu/intro.txt new file mode 100644 index 000000000..42f451d9a --- /dev/null +++ b/lib/plugins/styling/lang/hu/intro.txt @@ -0,0 +1,2 @@ +Ezzel az eszközzel módosÃthatod az aktuális sablon kinézetének néhány elemét. +A változtatások egy helyi konfigurációs fájlban kerülnek tárolásra, Ãgy a frissÃtések során megmaradnak. \ No newline at end of file diff --git a/lib/plugins/styling/lang/hu/lang.php b/lib/plugins/styling/lang/hu/lang.php new file mode 100644 index 000000000..c6ef5de93 --- /dev/null +++ b/lib/plugins/styling/lang/hu/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['menu'] = 'Sablon kinézetének beállÃtásai'; +$lang['js']['loader'] = 'Az elÅ‘nézet töltÅ‘dik...<br />ha ez az üzenet nem tűnik el, a beállÃtott értékek hibásak lehetnek'; +$lang['js']['popup'] = 'Megnyitás felugró ablakban'; +$lang['error'] = 'Ez a sablon sajnos nem támogatja ezt a funkciót'; +$lang['btn_preview'] = 'Változtatások elÅ‘nézete'; +$lang['btn_save'] = 'Változtatások mentése'; +$lang['btn_reset'] = 'Jelenlegi változtatások visszaállÃtása'; +$lang['btn_revert'] = 'A sablon alapértelmezett kinézetének visszaállÃtása'; +$lang['__text__'] = 'FÅ‘ szövegszÃn'; +$lang['__background__'] = 'FÅ‘ háttérszÃn'; +$lang['__text_alt__'] = 'AlternatÃv szövegszÃn'; +$lang['__background_alt__'] = 'AlternatÃv háttérszÃn'; +$lang['__text_neu__'] = 'Semleges szövegszÃn'; +$lang['__background_neu__'] = 'Semleges háttérszÃn'; +$lang['__border__'] = 'Keret szÃne'; +$lang['__highlight__'] = 'Kijelölés szÃne (leginkább a keresési eredményeknél)'; diff --git a/lib/tpl/dokuwiki/lang/hu/lang.php b/lib/tpl/dokuwiki/lang/hu/lang.php new file mode 100644 index 000000000..083736623 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/hu/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['__background_site__'] = 'Lap szÃne (a tartalom mögött)'; +$lang['__link__'] = 'Hivatkozás általános szÃne'; +$lang['__existing__'] = 'Hivatkozása szÃne létezÅ‘ lapoknál'; +$lang['__missing__'] = 'Hivatkozása szÃne nem létezÅ‘ lapoknál'; +$lang['__site_width__'] = 'Az oldal teljes szélessége (tetszÅ‘leges mértékegységgel: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Az oldalsáv szélessége (tetszÅ‘leges mértékegységgel: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Váltás tablet-módra ezen szélesség alatt'; +$lang['__phone_width__'] = 'Váltás mobiltelefon-módra ezen szélesség alatt'; diff --git a/lib/tpl/dokuwiki/lang/hu/style.txt b/lib/tpl/dokuwiki/lang/hu/style.txt new file mode 100644 index 000000000..1cdf517b3 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/hu/style.txt @@ -0,0 +1 @@ +A logó megváltoztatásához tölts fel egy képet "logo.png" néven a "wiki" névtérbe vagy a kiindulási névtérbe. UgyanÃgy feltöltheted ide az oldalhoz tartozó ikont is, "favicon.ico" néven. Ha zárt wikit használsz, javasoljuk, hogy állÃtsd be a "wiki" (vagy a kiindulási) névteret mindenki számára olvashatónak, különben a logót csak a bejelentkezett felhasználók fogják látni. \ No newline at end of file -- GitLab From e3f0661c72a27cc38c852432742191c59777708e Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Sun, 16 Aug 2015 05:21:11 +0200 Subject: [PATCH 334/440] translation update --- lib/plugins/config/lang/ja/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index 587b2b4ee..83445e6f1 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -84,7 +84,7 @@ $lang['profileconfirm'] = 'プãƒãƒ•ã‚£ãƒ¼ãƒ«å¤‰æ›´æ™‚ã«ç¾åœ¨ã®ãƒ‘ス $lang['rememberme'] = 'ãƒã‚°ã‚¤ãƒ³ç”¨ã‚¯ãƒƒã‚ーを永久ã«ä¿æŒã™ã‚‹ã“ã¨ã‚’許å¯ï¼ˆãƒã‚°ã‚¤ãƒ³ã‚’ä¿æŒï¼‰'; $lang['disableactions'] = 'DokuWiki ã®å‹•ä½œã‚’無効ã«ã™ã‚‹'; $lang['disableactions_check'] = 'ãƒã‚§ãƒƒã‚¯'; -$lang['disableactions_subscription'] = '登録 / 解除'; +$lang['disableactions_subscription'] = '変更履æ´é…ä¿¡ã®ç™»éŒ²ãƒ»è§£é™¤'; $lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力'; $lang['disableactions_profile_delete'] = '自分ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æŠ¹æ¶ˆ'; $lang['disableactions_other'] = 'ãã®ä»–ã®å‹•ä½œï¼ˆã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šï¼‰'; -- GitLab From 5ece862cc8347b51cbfae6055805410c21a217b5 Mon Sep 17 00:00:00 2001 From: Anika Henke <anika@selfthinker.org> Date: Mon, 17 Aug 2015 19:22:10 +0100 Subject: [PATCH 335/440] Revert "Trim unnecessary / at start of windowssharelink" --- inc/parser/xhtml.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index c92892a35..9d7613f32 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1033,7 +1033,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = $this->_xmlEntities($url); $url = str_replace('\\', '/', $url); - $url = ltrim($url,'/'); $url = 'file:///'.$url; $link['url'] = $url; -- GitLab From 08099e4fe1e56308bc42cc639d187863088494bd Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 18 Aug 2015 19:28:45 +0200 Subject: [PATCH 336/440] Form: correctly set type attribute for inputs #1312 --- _test/tests/inc/form/checkableelement.test.php | 2 ++ _test/tests/inc/form/inputelement.test.php | 17 +++++++++++++++++ inc/Form/InputElement.php | 1 + 3 files changed, 20 insertions(+) diff --git a/_test/tests/inc/form/checkableelement.test.php b/_test/tests/inc/form/checkableelement.test.php index a0e4173e8..e1491f6ec 100644 --- a/_test/tests/inc/form/checkableelement.test.php +++ b/_test/tests/inc/form/checkableelement.test.php @@ -23,6 +23,7 @@ class form_checkableelement_test extends DokuWikiTest { $this->assertEquals('second', pq($inputs->elements[1])->val()); $this->assertEquals('checked', pq($inputs->elements[0])->attr('checked')); $this->assertEquals('', pq($inputs->elements[1])->attr('checked')); + $this->assertEquals('radio', pq($inputs->elements[0])->attr('type')); } /** @@ -45,5 +46,6 @@ class form_checkableelement_test extends DokuWikiTest { $this->assertEquals('second', pq($inputs->elements[1])->val()); $this->assertEquals('', pq($inputs->elements[0])->attr('checked')); $this->assertEquals('checked', pq($inputs->elements[1])->attr('checked')); + $this->assertEquals('radio', pq($inputs->elements[0])->attr('type')); } } diff --git a/_test/tests/inc/form/inputelement.test.php b/_test/tests/inc/form/inputelement.test.php index 7a5e6d2ea..3257d2a89 100644 --- a/_test/tests/inc/form/inputelement.test.php +++ b/_test/tests/inc/form/inputelement.test.php @@ -14,6 +14,7 @@ class form_inputelement_test extends DokuWikiTest { $input = $pq->find('input[name=foo]'); $this->assertTrue($input->length == 1); $this->assertEquals('this is text', $input->val()); + $this->assertEquals('text', $input->attr('type')); $label = $pq->find('label'); $this->assertTrue($label->length == 1); @@ -38,4 +39,20 @@ class form_inputelement_test extends DokuWikiTest { $this->assertEquals('a new text', $input->val()); } + function test_password() { + $form = new Form\Form(); + $form->addPasswordInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('this is text', $input->val()); + $this->assertEquals('password', $input->attr('type')); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 1); + $this->assertEquals('label text', $label->find('span')->text()); + } } diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php index 5908f7d11..693eeffc5 100644 --- a/inc/Form/InputElement.php +++ b/inc/Form/InputElement.php @@ -29,6 +29,7 @@ class InputElement extends Element { public function __construct($type, $name, $label = '') { parent::__construct($type, array('name' => $name)); $this->attr('name', $name); + $this->attr('type', $type); if($label) $this->label = new Label($label); } -- GitLab From 8f0df229ed3e82191f118594ea5145c9d5942d7b Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 18 Aug 2015 20:12:32 +0200 Subject: [PATCH 337/440] Form: added Button element #1312 --- _test/tests/inc/form/buttonelement.test.php | 40 +++++++++++++++++++++ inc/Form/ButtonElement.php | 34 ++++++++++++++++++ inc/Form/Form.php | 24 +++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 _test/tests/inc/form/buttonelement.test.php create mode 100644 inc/Form/ButtonElement.php diff --git a/_test/tests/inc/form/buttonelement.test.php b/_test/tests/inc/form/buttonelement.test.php new file mode 100644 index 000000000..8e1a7e1e2 --- /dev/null +++ b/_test/tests/inc/form/buttonelement.test.php @@ -0,0 +1,40 @@ +<?php + +use dokuwiki\Form; + +class form_buttonelement_test extends DokuWikiTest { + + function test_simple() { + $form = new Form\Form(); + $form->addButton('foo', 'Hello <b>World</b>')->val('bam')->attr('type', 'submit'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('button[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('bam', $input->val()); + $this->assertEquals('submit', $input->attr('type')); + $this->assertEquals('Hello <b>World</b>', $input->text()); // tags were escaped + + $b = $input->find('b'); // no tags found + $this->assertTrue($b->length == 0); + } + + function test_html() { + $form = new Form\Form(); + $form->addButtonHTML('foo', 'Hello <b>World</b>')->val('bam')->attr('type', 'submit'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('button[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('bam', $input->val()); + $this->assertEquals('submit', $input->attr('type')); + $this->assertEquals('Hello World', $input->text()); // tags are stripped here + + $b = $input->find('b'); // tags found + $this->assertTrue($b->length == 1); + } +} diff --git a/inc/Form/ButtonElement.php b/inc/Form/ButtonElement.php new file mode 100644 index 000000000..77c30ed4f --- /dev/null +++ b/inc/Form/ButtonElement.php @@ -0,0 +1,34 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class ButtonElement + * + * Represents a simple button + * + * @package dokuwiki\Form + */ +class ButtonElement extends Element { + + /** @var string HTML content */ + protected $content = ''; + + /** + * @param string $name + * @param string $content HTML content of the button. You have to escape it yourself. + */ + function __construct($name, $content = '') { + parent::__construct('button', array('name' => $name, 'value' => 1)); + $this->content = $content; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<button ' . buildAttributes($this->attrs()) . '>'.$this->content.'</button>'; + } + +} diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 625557fa1..738f2bcf8 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -233,6 +233,30 @@ class Form extends Element { return $this->addElement(new TextareaElement($name, $label), $pos); } + /** + * Adds a simple button, escapes the content for you + * + * @param string $name + * @param string $content + * @param int $pos + * @return Element + */ + public function addButton($name, $content, $pos = -1) { + return $this->addElement(new ButtonElement($name, hsc($content)), $pos); + } + + /** + * Adds a simple button, allows HTML for content + * + * @param string $name + * @param string $html + * @param int $pos + * @return Element + */ + public function addButtonHTML($name, $html, $pos = -1) { + return $this->addElement(new ButtonElement($name, $html), $pos); + } + /** * Add fixed HTML to the form * -- GitLab From a453c16b3290eabdf35778c54498101c737544e1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 18 Aug 2015 20:36:08 +0200 Subject: [PATCH 338/440] Form: more flexible label handling #1312 You now can add labels that don't wrap around inputs, but you have to ensure IDs are properly assigned yourself. The Label class has been renamed to LabelElement to reflect the naming scheme of the other elements. --- inc/Form/Form.php | 35 ++++++++++++++++++++++++ inc/Form/InputElement.php | 8 +++--- inc/Form/{Label.php => LabelElement.php} | 6 ++-- 3 files changed, 42 insertions(+), 7 deletions(-) rename inc/Form/{Label.php => LabelElement.php} (74%) diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 738f2bcf8..73b5b9cb3 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -257,6 +257,41 @@ class Form extends Element { return $this->addElement(new ButtonElement($name, $html), $pos); } + /** + * Adds a label referencing another input element, escapes the label for you + * + * @param $label + * @param string $for + * @param int $pos + * @return Element + */ + public function addLabel($label, $for='', $pos = -1) { + return $this->addLabelHTML(hsc($label), $for, $pos); + } + + /** + * Adds a label referencing another input element, allows HTML for content + * + * @param string $content + * @param string|Element $for + * @param int $pos + * @return Element + */ + public function addLabelHTML($content, $for='', $pos = -1) { + $element = new LabelElement(hsc($content)); + + if(is_a($for, '\dokuwiki\Form\Element')) { + /** @var Element $for */ + $for = $for->id(); + } + $for = (string) $for; + if($for !== '') { + $element->attr('for', $for); + } + + return $this->addElement($element, $pos); + } + /** * Add fixed HTML to the form * diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php index 693eeffc5..694dd0848 100644 --- a/inc/Form/InputElement.php +++ b/inc/Form/InputElement.php @@ -12,7 +12,7 @@ namespace dokuwiki\Form; */ class InputElement extends Element { /** - * @var Label + * @var LabelElement */ protected $label = null; @@ -24,19 +24,19 @@ class InputElement extends Element { /** * @param string $type The type of this element * @param string $name The name of this form element - * @param string $label The label text for this element + * @param string $label The label text for this element (will be autoescaped) */ public function __construct($type, $name, $label = '') { parent::__construct($type, array('name' => $name)); $this->attr('name', $name); $this->attr('type', $type); - if($label) $this->label = new Label($label); + if($label) $this->label = new LabelElement($label); } /** * Returns the label element if there's one set * - * @return Label|null + * @return LabelElement|null */ public function getLabel() { return $this->label; diff --git a/inc/Form/Label.php b/inc/Form/LabelElement.php similarity index 74% rename from inc/Form/Label.php rename to inc/Form/LabelElement.php index 8dcd7cd5f..9c8d54277 100644 --- a/inc/Form/Label.php +++ b/inc/Form/LabelElement.php @@ -5,12 +5,12 @@ namespace dokuwiki\Form; * Class Label * @package dokuwiki\Form */ -class Label extends ValueElement { +class LabelElement extends ValueElement { /** * Creates a new Label * - * @param string $label + * @param string $label This is is raw HTML and will not be escaped */ public function __construct($label) { parent::__construct('label', $label); @@ -22,6 +22,6 @@ class Label extends ValueElement { * @return string */ public function toHTML() { - return '<label ' . buildAttributes($this->attrs()) . '>' . hsc($this->val()) . '</label>'; + return '<label ' . buildAttributes($this->attrs()) . '>' . $this->val() . '</label>'; } } -- GitLab From bb6d40dcf2a7c8fde5be24560ee47fd566d2b201 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 18 Aug 2015 20:42:11 +0200 Subject: [PATCH 339/440] Form: fixed class checks --- inc/Form/Form.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 73b5b9cb3..7eaa53041 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -140,7 +140,7 @@ class Form extends Element { * @return Element */ public function addElement(Element $element, $pos = -1) { - if(is_a($element, '\dokuwiki\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); if($pos < 0) { $this->elements[] = $element; } else { @@ -156,7 +156,7 @@ class Form extends Element { * @param $pos 0-based position of the element to replace */ public function replaceElement(Element $element, $pos) { - if(is_a($element, '\dokuwiki\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); array_splice($this->elements, $pos, 1, array($element)); } -- GitLab From d09fc643d601f95006c6144c72bfde3e399ef811 Mon Sep 17 00:00:00 2001 From: Phil Hopper <phillip_hopper@wycliffeassociates.org> Date: Thu, 20 Aug 2015 14:51:16 -0400 Subject: [PATCH 340/440] Fix Parser Media tests running locally These tests were passing on travis-ci but failing when run locally because the tests were assuming the value of DOKU_BASE would be '/./' but it was actually '/tmp/' instead. --- _test/tests/inc/parser/parser_media.test.php | 69 ++++++++++++++------ 1 file changed, 50 insertions(+), 19 deletions(-) diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php index d9a0626f5..abbcfe213 100644 --- a/_test/tests/inc/parser/parser_media.test.php +++ b/_test/tests/inc/parser/parser_media.test.php @@ -30,12 +30,21 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $source = '<source src="http://some.where.far/away.ogv" type="video/ogg" />'; $this->assertEquals(substr($url,67,64),$source); // work around random token - $a_first_part = '<a href="/./lib/exe/fetch.php?cache=&tok='; + $a_first_part = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?cache=&tok='; $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.ogv" class="media mediafile mf_ogv" title="http://some.where.far/away.ogv">'; - $this->assertEquals(substr($url,132,45),$a_first_part); - $this->assertEquals(substr($url,183,121),$a_second_part); + + $substr_start = 132; + $substr_len = strlen($a_first_part); + $this->assertEquals($a_first_part, substr($url, $substr_start, $substr_len)); + + $substr_start = strpos($url, '&media', $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + $substr_len = strlen($a_second_part); + $this->assertEquals($a_second_part, substr($url, $substr_start, $substr_len)); + $rest = 'away.ogv</a></video>'."\n"; - $this->assertEquals(substr($url,304),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } /** @@ -58,12 +67,21 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file, null, null, null, null, 'cache', 'details', true); // work around random token - $a_first_part = '<a href="/./lib/exe/fetch.php?tok='; + $a_first_part = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?tok='; $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.vid" class="media mediafile mf_vid" title="http://some.where.far/away.vid">'; - $this->assertEquals(substr($url,0,34),$a_first_part); - $this->assertEquals(substr($url,40,121),$a_second_part); + + $substr_start = 0; + $substr_len = strlen($a_first_part); + $this->assertEquals($a_first_part, substr($url, $substr_start, $substr_len)); + + $substr_start = strpos($url, '&media', $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + $substr_len = strlen($a_second_part); + $this->assertEquals($a_second_part, substr($url, $substr_start, $substr_len)); + $rest = 'away.vid</a>'; - $this->assertEquals(substr($url,161),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } @@ -84,20 +102,33 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); - $video = '<video class="media" width="320" height="240" controls="controls" poster="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.png">'; - $this->assertEquals(substr($url,0,125),$video); + $video = '<video class="media" width="320" height="240" controls="controls" poster="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.png">'; + $substr_start = 0; + $substr_len = strlen($video); + $this->assertEquals($video, substr($url, $substr_start, $substr_len)); + + // find $source_webm in $url + $source_webm = '<source src="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.webm" type="video/webm" />'; + $substr_start = strpos($url, $source_webm, $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + + // find $source_ogv in $url + $source_ogv = '<source src="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.ogv" type="video/ogg" />'; + $substr_start = strpos($url, $source_ogv, $substr_start + strlen($source_webm)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); - $source_webm = '<source src="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.webm" type="video/webm" />'; - $this->assertEquals(substr($url,126,85),$source_webm); - $source_ogv = '<source src="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.ogv" type="video/ogg" />'; - $this->assertEquals(substr($url,212,83),$source_ogv); + // find $a_webm in $url + $a_webm = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.webm" class="media mediafile mf_webm" title="wiki:kind_zu_katze.webm (99.1 KB)">kind_zu_katze.webm</a>'; + $substr_start = strpos($url, $a_webm, $substr_start + strlen($source_ogv)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); - $a_webm = '<a href="/./lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.webm" class="media mediafile mf_webm" title="wiki:kind_zu_katze.webm (99.1 KB)">kind_zu_katze.webm</a>'; - $a_ogv = '<a href="/./lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.ogv" class="media mediafile mf_ogv" title="wiki:kind_zu_katze.ogv (44.8 KB)">kind_zu_katze.ogv</a>'; - $this->assertEquals(substr($url,296,176),$a_webm); - $this->assertEquals(substr($url,472,172),$a_ogv); + // find $a_webm in $url + $a_ogv = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.ogv" class="media mediafile mf_ogv" title="wiki:kind_zu_katze.ogv (44.8 KB)">kind_zu_katze.ogv</a>'; + $substr_start = strpos($url, $a_ogv, $substr_start + strlen($a_webm)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); $rest = '</video>'."\n"; - $this->assertEquals(substr($url,644),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } } -- GitLab From 21b07cb4c56c61ee01ca665a65f71ac0d46a6fa4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 21 Aug 2015 13:32:43 +0200 Subject: [PATCH 341/440] scroll to position only when ACT=index. closes #1314 --- inc/html.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 0914a1762..24d108ea4 100644 --- a/inc/html.php +++ b/inc/html.php @@ -959,13 +959,14 @@ function html_list_index($item){ */ function html_li_index($item){ global $INFO; + global $ACT; $class = ''; $id = ''; if($item['type'] == "f"){ // scroll to the current item - if($item['id'] == $INFO['id']) { + if($item['id'] == $INFO['id'] && $ACT == 'index') { $id = ' id="scroll__here"'; $class = ' bounce'; } -- GitLab From f28fdf54fe5b1a3ba7fb4034266963201853a4f6 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sat, 22 Aug 2015 12:16:09 +0200 Subject: [PATCH 342/440] translation update --- inc/lang/it/lang.php | 4 ++++ lib/plugins/authldap/lang/it/settings.php | 5 +++++ lib/plugins/authmysql/lang/it/lang.php | 11 +++++++++++ lib/plugins/authmysql/lang/it/settings.php | 2 ++ lib/plugins/authplain/lang/it/lang.php | 5 +++-- lib/plugins/config/lang/it/lang.php | 5 +++-- lib/tpl/dokuwiki/lang/it/lang.php | 8 ++++++++ 7 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/authmysql/lang/it/lang.php create mode 100644 lib/tpl/dokuwiki/lang/it/lang.php diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index b84c4d7d8..a94bf821f 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -87,6 +87,7 @@ $lang['regmissing'] = 'Devi riempire tutti i campi.'; $lang['reguexists'] = 'Il nome utente inserito esiste già .'; $lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via email.'; $lang['regsuccess2'] = 'L\'utente è stato creato.'; +$lang['regfail'] = 'L\'utente non può essere creato.'; $lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della email. Contatta l\'amministratore!'; $lang['regbadmail'] = 'L\'indirizzo email fornito sembra essere non valido - se pensi che ci sia un errore contatta l\'amministratore'; $lang['regbadpass'] = 'Le due password inserite non coincidono, prova di nuovo.'; @@ -101,6 +102,7 @@ $lang['profdeleteuser'] = 'Elimina account'; $lang['profdeleted'] = 'Il tuo account utente è stato rimosso da questa wiki'; $lang['profconfdelete'] = 'Voglio rimuovere il mio account da questa wiki. <br/> Questa operazione non può essere annullata.'; $lang['profconfdeletemissing'] = 'La check box di conferma non è selezionata'; +$lang['proffail'] = 'Il profilo utente non è stato aggiornato.'; $lang['pwdforget'] = 'Hai dimenticato la password? Richiedine una nuova'; $lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove password.'; $lang['resendpwd'] = 'Imposta nuova password per'; @@ -347,7 +349,9 @@ $lang['media_perm_read'] = 'Spiacente, non hai abbastanza privilegi per le $lang['media_perm_upload'] = 'Spiacente, non hai abbastanza privilegi per caricare files.'; $lang['media_update'] = 'Carica nuova versione'; $lang['media_restore'] = 'Ripristina questa versione'; +$lang['media_acl_warning'] = 'Questa lista potrebbe non essere completa a causa di restrizioni ACL e pagine nascoste.'; $lang['currentns'] = 'Namespace corrente'; $lang['searchresult'] = 'Risultati della ricerca'; $lang['plainhtml'] = 'HTML'; +$lang['wikimarkup'] = 'Marcatura wiki'; $lang['page_nonexist_rev'] = 'Pagina non esistente a %s. E\' stata creata successivamente a <a href="%s">%s</a>.'; diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 858c694b8..2dbcedf26 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -6,6 +6,7 @@ * @author Edmondo Di Tucci <snarchio@gmail.com> * @author Claudio Lanconelli <lancos@libero.it> * @author Francesco <francesco.cavalli@hotmail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['server'] = 'Il tuo server LDAP. Inserire o l\'hostname (<code>localhost</code>) oppure un URL completo (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.'; @@ -16,6 +17,7 @@ $lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. <code>(& $lang['version'] = 'Versione protocollo da usare. Pu<code>3</code>'; $lang['starttls'] = 'Usare la connessione TSL?'; $lang['deref'] = 'Come differenziare un alias?'; +$lang['bindpw'] = 'Password del utente di cui sopra'; $lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; $lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; $lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; @@ -23,3 +25,6 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'usa default'; +$lang['referrals_o_0'] = 'non seguire i reindirizzamenti'; +$lang['referrals_o_1'] = 'segui i reindirizzamenti'; diff --git a/lib/plugins/authmysql/lang/it/lang.php b/lib/plugins/authmysql/lang/it/lang.php new file mode 100644 index 000000000..5b1ae0a00 --- /dev/null +++ b/lib/plugins/authmysql/lang/it/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['connectfail'] = 'Connessione fallita al database.'; +$lang['userexists'] = 'Spiacente, esiste già un utente con queste credenziali.'; +$lang['usernotexists'] = 'Spiacente, quell\'utente non esiste.'; +$lang['writefail'] = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 9dc1a0157..4f05cf655 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -7,9 +7,11 @@ * @author Mirko <malisan.mirko@gmail.com> * @author Francesco <francesco.cavalli@hotmail.com> * @author Maurizio <mcannavo@katamail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['server'] = 'Il tuo server MySQL'; $lang['user'] = 'User name di MySQL'; +$lang['password'] = 'Password per l\'utente di cui sopra'; $lang['database'] = 'Database da usare'; $lang['charset'] = 'Set di caratteri usato nel database'; $lang['debug'] = 'Mostra ulteriori informazioni di debug'; diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php index 716041ffb..610b512a4 100644 --- a/lib/plugins/authplain/lang/it/lang.php +++ b/lib/plugins/authplain/lang/it/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Il nome utente inserito esiste già .'; +$lang['userexists'] = 'Il nome utente inserito esiste già .'; diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php index 7a831c8de..e97ddc42c 100644 --- a/lib/plugins/config/lang/it/lang.php +++ b/lib/plugins/config/lang/it/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Italian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Christopher Smith <chris@jalakai.co.uk> * @author Silvia Sargentoni <polinnia@tin.it> * @author Pietro Battiston toobaz@email.it @@ -15,6 +15,7 @@ * @author Jacopo Corbetta <jacopo.corbetta@gmail.com> * @author Matteo Pasotti <matteo@xquiet.eu> * @author snarchio@gmail.com + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['menu'] = 'Configurazione Wiki'; $lang['error'] = 'Impostazioni non aggiornate a causa di un valore non corretto, controlla le modifiche apportate e salva di nuovo. diff --git a/lib/tpl/dokuwiki/lang/it/lang.php b/lib/tpl/dokuwiki/lang/it/lang.php new file mode 100644 index 000000000..6d66c52fc --- /dev/null +++ b/lib/tpl/dokuwiki/lang/it/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['__link__'] = 'Colore generale per i link'; -- GitLab From 84bef3590b413bc425294446ff61e23a348f6b94 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sat, 22 Aug 2015 12:26:04 +0200 Subject: [PATCH 343/440] translation update --- lib/plugins/authplain/lang/it/lang.php | 5 +++-- lib/plugins/config/lang/it/lang.php | 5 +++-- lib/plugins/styling/lang/it/lang.php | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/styling/lang/it/lang.php diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php index 716041ffb..610b512a4 100644 --- a/lib/plugins/authplain/lang/it/lang.php +++ b/lib/plugins/authplain/lang/it/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'Il nome utente inserito esiste già .'; +$lang['userexists'] = 'Il nome utente inserito esiste già .'; diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php index 7a831c8de..e97ddc42c 100644 --- a/lib/plugins/config/lang/it/lang.php +++ b/lib/plugins/config/lang/it/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Italian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Christopher Smith <chris@jalakai.co.uk> * @author Silvia Sargentoni <polinnia@tin.it> * @author Pietro Battiston toobaz@email.it @@ -15,6 +15,7 @@ * @author Jacopo Corbetta <jacopo.corbetta@gmail.com> * @author Matteo Pasotti <matteo@xquiet.eu> * @author snarchio@gmail.com + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['menu'] = 'Configurazione Wiki'; $lang['error'] = 'Impostazioni non aggiornate a causa di un valore non corretto, controlla le modifiche apportate e salva di nuovo. diff --git a/lib/plugins/styling/lang/it/lang.php b/lib/plugins/styling/lang/it/lang.php new file mode 100644 index 000000000..b986a670c --- /dev/null +++ b/lib/plugins/styling/lang/it/lang.php @@ -0,0 +1,17 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['js']['popup'] = 'Apri in un finestra a parte'; +$lang['error'] = 'Spiacente, questo template non supporta questa funzionalità .'; +$lang['btn_preview'] = 'Cambiamenti precedenti'; +$lang['btn_save'] = 'Salva i cambiamenti'; +$lang['__text__'] = 'Colore principale del testo'; +$lang['__background__'] = 'Colore principale dello sfondo'; +$lang['__text_alt__'] = 'Colore alternativo per il testo'; +$lang['__background_alt__'] = 'Colore alternativo dello sfondo'; +$lang['__border__'] = 'Colore del bordo'; +$lang['__highlight__'] = 'Colore di evidenziazione (principalmente per i risultati di ricerca)'; -- GitLab From 2540fcbb54efbf9966439e4c06c549ad73be026f Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sat, 22 Aug 2015 20:41:05 +0200 Subject: [PATCH 344/440] translation update --- lib/plugins/authmysql/lang/it/settings.php | 2 ++ lib/plugins/authpgsql/lang/it/settings.php | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 4f05cf655..1bc290e20 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -20,6 +20,8 @@ $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; $lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti'; $lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"'; +$lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; +$lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; $lang['FilterGroup'] = 'Clausola SQL per filtrare gli utenti in base all\'appartenenza al gruppo'; $lang['SortOrder'] = 'Istruzione SQL per ordinare gli utenti'; $lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; diff --git a/lib/plugins/authpgsql/lang/it/settings.php b/lib/plugins/authpgsql/lang/it/settings.php index bc326b34f..c3d1fbb44 100644 --- a/lib/plugins/authpgsql/lang/it/settings.php +++ b/lib/plugins/authpgsql/lang/it/settings.php @@ -14,3 +14,8 @@ $lang['password'] = 'Password dell\'utente summenzionato'; $lang['database'] = 'Database da usare'; $lang['debug'] = 'Visualizza informazioni addizionali di debug'; $lang['getUsers'] = 'Dichiarazione SQL per elencare tutti gli utenti'; +$lang['FilterLogin'] = 'Condizione SQL per filtrare gli utenti in base al nome di autenticazione'; +$lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; +$lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; +$lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; +$lang['SortOrder'] = 'Condizione SQL per ordinare gli utenti'; -- GitLab From 22cadb78ac1b7bc07d4bb5a965d5914d428a1e9b Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sun, 23 Aug 2015 12:16:33 +0200 Subject: [PATCH 345/440] translation update --- lib/plugins/authmysql/lang/it/settings.php | 2 ++ lib/plugins/authpgsql/lang/it/settings.php | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 1bc290e20..4339baf37 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -15,9 +15,11 @@ $lang['password'] = 'Password per l\'utente di cui sopra'; $lang['database'] = 'Database da usare'; $lang['charset'] = 'Set di caratteri usato nel database'; $lang['debug'] = 'Mostra ulteriori informazioni di debug'; +$lang['forwardClearPass'] = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt'; $lang['TablesToLock'] = 'Lista, separata da virgola, delle tabelle che devono essere bloccate in scrittura'; $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; +$lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; $lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti'; $lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"'; $lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; diff --git a/lib/plugins/authpgsql/lang/it/settings.php b/lib/plugins/authpgsql/lang/it/settings.php index c3d1fbb44..26e9a8608 100644 --- a/lib/plugins/authpgsql/lang/it/settings.php +++ b/lib/plugins/authpgsql/lang/it/settings.php @@ -13,9 +13,23 @@ $lang['user'] = 'Lo username PostgreSQL'; $lang['password'] = 'Password dell\'utente summenzionato'; $lang['database'] = 'Database da usare'; $lang['debug'] = 'Visualizza informazioni addizionali di debug'; -$lang['getUsers'] = 'Dichiarazione SQL per elencare tutti gli utenti'; +$lang['forwardClearPass'] = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt'; +$lang['checkPass'] = 'Istruzione SQL per il controllo password'; +$lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; +$lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; +$lang['getUsers'] = 'Istruzione SQL per elencare tutti gli utenti'; $lang['FilterLogin'] = 'Condizione SQL per filtrare gli utenti in base al nome di autenticazione'; $lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; $lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; $lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; $lang['SortOrder'] = 'Condizione SQL per ordinare gli utenti'; +$lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; +$lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo'; +$lang['addUserGroup'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente'; +$lang['delGroup'] = 'Istruzione SQL per imuovere un gruppo'; +$lang['getUserID'] = 'Istruzione SQL per recuperare la primary key di un utente'; +$lang['delUser'] = 'Istruzione SQL per cancellare un utente'; +$lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi'; +$lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente'; +$lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo'; +$lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo'; -- GitLab From 8d91581f75f1529592cd1f96e84606dceb48be70 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sun, 23 Aug 2015 15:26:07 +0200 Subject: [PATCH 346/440] translation update --- lib/plugins/extension/lang/it/lang.php | 2 ++ lib/plugins/styling/lang/it/intro.txt | 2 ++ lib/plugins/styling/lang/it/lang.php | 6 ++++++ lib/tpl/dokuwiki/lang/it/lang.php | 7 +++++++ lib/tpl/dokuwiki/lang/it/style.txt | 1 + 5 files changed, 18 insertions(+) create mode 100644 lib/plugins/styling/lang/it/intro.txt create mode 100644 lib/tpl/dokuwiki/lang/it/style.txt diff --git a/lib/plugins/extension/lang/it/lang.php b/lib/plugins/extension/lang/it/lang.php index 80ed0ddcf..66984730b 100644 --- a/lib/plugins/extension/lang/it/lang.php +++ b/lib/plugins/extension/lang/it/lang.php @@ -82,6 +82,7 @@ $lang['error_dircreate'] = 'Impossibile creare una cartella temporanea per $lang['error_download'] = 'Impossibile scaricare il file: %s'; $lang['error_decompress'] = 'Impossibile decomprimere il file scaricato. Ciò può dipendere da errori in fase di download, nel qual caso dovreste ripetere l\'operazione; oppure il formato di compressione è sconosciuto, e in questo caso dovrete scaricare e installare manualmente.'; $lang['error_findfolder'] = 'Impossibile identificare la directory dell\'extension, dovrete scaricare e installare manualmente'; +$lang['error_copy'] = 'C\'è stato un errore di copia dei file mentre si tentava di copiare i file per la directory <em>%s</em>: il disco potrebbe essere pieno o i pemessi di accesso ai file potrebbero essere sbagliati. Questo potrebbe aver causato una parziale installazione dei plugin lasciando il tuo wiki instabile'; $lang['noperms'] = 'La directory Extension non è scrivibile'; $lang['notplperms'] = 'Il modello di cartella non è scrivibile'; $lang['nopluginperms'] = 'La cartella plugin non è scrivibile'; @@ -89,3 +90,4 @@ $lang['git'] = 'Questa extension è stata installata da git, p $lang['install_url'] = 'Installa da URL:'; $lang['install_upload'] = 'Caricamento Extension:'; $lang['repo_error'] = 'Il repository dei plugin non può essere raggiunto. Assicuratevi che il vostro server sia abilitato a contattare l\'indirizzo www.dokuwiki.org e controllate le impostazioni del vostro proxy.'; +$lang['nossl'] = 'La tua installazione PHP sembra mancare del supporto SSL. I download per molte estensioni di DokuWiki non funzioneranno.'; diff --git a/lib/plugins/styling/lang/it/intro.txt b/lib/plugins/styling/lang/it/intro.txt new file mode 100644 index 000000000..6c798e432 --- /dev/null +++ b/lib/plugins/styling/lang/it/intro.txt @@ -0,0 +1,2 @@ +Questo strumento ti permette di cambiare certe configurazioni di stile del tema attualmente in uso. +Tutte le modifiche sono salvate in un file di configurazione locale e sono aggiornate in modo sicuro. \ No newline at end of file diff --git a/lib/plugins/styling/lang/it/lang.php b/lib/plugins/styling/lang/it/lang.php index b986a670c..aea011feb 100644 --- a/lib/plugins/styling/lang/it/lang.php +++ b/lib/plugins/styling/lang/it/lang.php @@ -5,13 +5,19 @@ * * @author Torpedo <dgtorpedo@gmail.com> */ +$lang['menu'] = 'Configurazioni di stile del tema'; +$lang['js']['loader'] = 'Anteprima in corso...<br />se questo non sparisce, potresti aver fornito dei valori sbagliati'; $lang['js']['popup'] = 'Apri in un finestra a parte'; $lang['error'] = 'Spiacente, questo template non supporta questa funzionalità .'; $lang['btn_preview'] = 'Cambiamenti precedenti'; $lang['btn_save'] = 'Salva i cambiamenti'; +$lang['btn_reset'] = 'Azzera le modifiche correnti'; +$lang['btn_revert'] = 'Ripristina gli stili ai valori originari del tema'; $lang['__text__'] = 'Colore principale del testo'; $lang['__background__'] = 'Colore principale dello sfondo'; $lang['__text_alt__'] = 'Colore alternativo per il testo'; $lang['__background_alt__'] = 'Colore alternativo dello sfondo'; +$lang['__text_neu__'] = 'Colore testo neutrale'; +$lang['__background_neu__'] = 'Colore sfondo neutrale'; $lang['__border__'] = 'Colore del bordo'; $lang['__highlight__'] = 'Colore di evidenziazione (principalmente per i risultati di ricerca)'; diff --git a/lib/tpl/dokuwiki/lang/it/lang.php b/lib/tpl/dokuwiki/lang/it/lang.php index 6d66c52fc..954f0f753 100644 --- a/lib/tpl/dokuwiki/lang/it/lang.php +++ b/lib/tpl/dokuwiki/lang/it/lang.php @@ -5,4 +5,11 @@ * * @author Torpedo <dgtorpedo@gmail.com> */ +$lang['__background_site__'] = 'Colore per lo sfondo di livello più basso (dietro il riquadro del contenuto)'; $lang['__link__'] = 'Colore generale per i link'; +$lang['__existing__'] = 'Colore per i collegamenti alle pagine esistenti'; +$lang['__missing__'] = 'Colore per i collegamenti alle pagine non esistenti'; +$lang['__site_width__'] = 'Larghezza dell\'intero sito (può essere una qualunque unità di lunghezza: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Larghezza della barra laterale, se presente (può essere una qualunque unità di lunghezza: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità tablet'; +$lang['__phone_width__'] = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità telefono'; diff --git a/lib/tpl/dokuwiki/lang/it/style.txt b/lib/tpl/dokuwiki/lang/it/style.txt new file mode 100644 index 000000000..1179f086a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/it/style.txt @@ -0,0 +1 @@ +Se vuoi modificare il logo, semplicemente usa Media Manager per caricare un ''logo.png'' in ''wiki'' o nella directory root e questo verrà automaticamente usato. Qui puoi anche caricare una ''favicon.ico''. Se utilizzi un wiki chiuso si raccomanda di rendere la directory ''wiki'' (o root) leggibile a tutti, nelle impostazioni ACL, altrimenti il tuo logo non sarà visibile agli utenti che non hanno effettuato l'accesso. \ No newline at end of file -- GitLab From 0f0d29909c63f9897c9c003e6d3e3b8381a6f36d Mon Sep 17 00:00:00 2001 From: Guy Brand <gb@unistra.fr> Date: Sun, 23 Aug 2015 15:52:48 +0200 Subject: [PATCH 347/440] Release preparation --- doku.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doku.php b/doku.php index 0f4557fd0..b1797fdf2 100644 --- a/doku.php +++ b/doku.php @@ -9,7 +9,7 @@ */ // update message version - always use a string to avoid localized floats! -$updateVersion = "47"; +$updateVersion = "48"; // xdebug_start_profiling(); -- GitLab From f43043c86d7596fafdc279fbe97a4e335a679f56 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sun, 23 Aug 2015 23:21:08 +0200 Subject: [PATCH 348/440] translation update --- inc/lang/it/lang.php | 1 + lib/plugins/authad/lang/it/lang.php | 4 ++++ lib/plugins/authldap/lang/it/lang.php | 9 +++++++++ lib/plugins/authldap/lang/it/settings.php | 2 ++ lib/plugins/authmysql/lang/it/settings.php | 15 ++++++++------- lib/plugins/authpgsql/lang/it/settings.php | 7 ++++++- lib/plugins/authplain/lang/it/lang.php | 3 +++ lib/plugins/config/lang/it/lang.php | 3 +++ lib/plugins/extension/lang/it/lang.php | 4 ++++ 9 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 lib/plugins/authldap/lang/it/lang.php diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index a94bf821f..33a990aa9 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -355,3 +355,4 @@ $lang['searchresult'] = 'Risultati della ricerca'; $lang['plainhtml'] = 'HTML'; $lang['wikimarkup'] = 'Marcatura wiki'; $lang['page_nonexist_rev'] = 'Pagina non esistente a %s. E\' stata creata successivamente a <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Impossibile eseguire l\'analisi al parametro "%s".'; diff --git a/lib/plugins/authad/lang/it/lang.php b/lib/plugins/authad/lang/it/lang.php index 5f1a03cd4..28eb8ff28 100644 --- a/lib/plugins/authad/lang/it/lang.php +++ b/lib/plugins/authad/lang/it/lang.php @@ -4,5 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Matteo Pasotti <matteo@xquiet.eu> + * @author Torpedo <dgtorpedo@gmail.com> */ +$lang['domain'] = 'Dominio di accesso'; $lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; +$lang['passchangefail'] = 'Cambio password fallito. Forse non sono state rispettate le regole adottate per le password'; +$lang['connectfail'] = 'Connessione fallita al server Active Directory'; diff --git a/lib/plugins/authldap/lang/it/lang.php b/lib/plugins/authldap/lang/it/lang.php new file mode 100644 index 000000000..9832e9319 --- /dev/null +++ b/lib/plugins/authldap/lang/it/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['connectfail'] = 'LDAP non è in grado di connettere: %s'; +$lang['domainfail'] = 'LDAP non è in grado di trovare il tuo DN utente'; diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 2dbcedf26..64c4f9d89 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -16,10 +16,12 @@ $lang['userfilter'] = 'Filtro per cercare l\'account utente LDAP. Eg. $lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'Versione protocollo da usare. Pu<code>3</code>'; $lang['starttls'] = 'Usare la connessione TSL?'; +$lang['referrals'] = 'Possono i reindirizzamenti essere seguiti?'; $lang['deref'] = 'Come differenziare un alias?'; $lang['bindpw'] = 'Password del utente di cui sopra'; $lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; $lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; +$lang['modPass'] = 'Può la password LDAP essere cambiata attraverso DokuWiki?'; $lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 4339baf37..1e9307700 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -21,11 +21,11 @@ $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; $lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; $lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti'; -$lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"'; +$lang['FilterLogin'] = 'Condizione SQL per per filtrare gli utenti in funzione del "login name"'; $lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; $lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; -$lang['FilterGroup'] = 'Clausola SQL per filtrare gli utenti in base all\'appartenenza al gruppo'; -$lang['SortOrder'] = 'Istruzione SQL per ordinare gli utenti'; +$lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; +$lang['SortOrder'] = 'Condizione SQL per ordinare gli utenti'; $lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; $lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo'; $lang['addUserGroup'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente'; @@ -34,10 +34,11 @@ $lang['getUserID'] = 'Istruzione SQL per recuperare la primary key d $lang['delUser'] = 'Istruzione SQL per cancellare un utente'; $lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi'; $lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente'; -$lang['UpdateLogin'] = 'Clausola per aggiornare il "login name" dell\'utente'; -$lang['UpdatePass'] = 'Clausola per aggiornare la password utente'; -$lang['UpdateEmail'] = 'Clausola per aggiornare l\'email utente'; -$lang['UpdateName'] = 'Clausola per aggiornare il nome completo'; +$lang['UpdateLogin'] = 'Condizione SQL per aggiornare il nome di accesso dell\'utente'; +$lang['UpdatePass'] = 'Condizione SQL per aggiornare la password utente'; +$lang['UpdateEmail'] = 'Condizione SQL per aggiornare l\'e-mail utente'; +$lang['UpdateName'] = 'Condizione SQL per aggiornare il nome completo dell\'utente'; +$lang['UpdateTarget'] = 'Condizione SQL per identificare l\'utente quando aggiornato'; $lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo'; $lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo'; $lang['debug_o_0'] = 'Nulla'; diff --git a/lib/plugins/authpgsql/lang/it/settings.php b/lib/plugins/authpgsql/lang/it/settings.php index 26e9a8608..e786f2f2d 100644 --- a/lib/plugins/authpgsql/lang/it/settings.php +++ b/lib/plugins/authpgsql/lang/it/settings.php @@ -18,7 +18,7 @@ $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; $lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; $lang['getUsers'] = 'Istruzione SQL per elencare tutti gli utenti'; -$lang['FilterLogin'] = 'Condizione SQL per filtrare gli utenti in base al nome di autenticazione'; +$lang['FilterLogin'] = 'Condizione SQL per filtrare gli utenti in base al nome di accesso'; $lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; $lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; $lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; @@ -31,5 +31,10 @@ $lang['getUserID'] = 'Istruzione SQL per recuperare la primary key d $lang['delUser'] = 'Istruzione SQL per cancellare un utente'; $lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi'; $lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente'; +$lang['UpdateLogin'] = 'Condizione SQL per aggiornare il nome di accesso dell\'utente'; +$lang['UpdatePass'] = 'Condizione SQL per aggiornare la password utente'; +$lang['UpdateEmail'] = 'Condizione SQL per aggiornare l\'e-mail utente'; +$lang['UpdateName'] = 'Condizione SQL per aggiornare il nome completo dell\'utente'; +$lang['UpdateTarget'] = 'Condizione SQL per identificare l\'utente quando aggiornato'; $lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo'; $lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo'; diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php index 610b512a4..59c8c3076 100644 --- a/lib/plugins/authplain/lang/it/lang.php +++ b/lib/plugins/authplain/lang/it/lang.php @@ -3,5 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['userexists'] = 'Il nome utente inserito esiste già .'; +$lang['usernotexists'] = 'Spiacente, quell\'utente non esiste.'; +$lang['writefail'] = 'Impossibile modificare i dati utente. Per favore informa l\'Amministratore del Wiki'; diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php index e97ddc42c..1e371613c 100644 --- a/lib/plugins/config/lang/it/lang.php +++ b/lib/plugins/config/lang/it/lang.php @@ -91,7 +91,9 @@ $lang['disableactions'] = 'Disabilita azioni DokuWiki'; $lang['disableactions_check'] = 'Controlla'; $lang['disableactions_subscription'] = 'Sottoscrivi/Rimuovi sottoscrizione'; $lang['disableactions_wikicode'] = 'Mostra sorgente/Esporta Raw'; +$lang['disableactions_profile_delete'] = 'Elimina il proprio account'; $lang['disableactions_other'] = 'Altre azioni (separate da virgola)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; $lang['auth_security_timeout'] = 'Tempo di sicurezza per l\'autenticazione (secondi)'; $lang['securecookie'] = 'Devono i cookies impostati tramite HTTPS essere inviati al browser solo tramite HTTPS? Disattiva questa opzione solo quando l\'accesso al tuo wiki viene effettuato con il protocollo SSL ma la navigazione del wiki non risulta sicura.'; $lang['remote'] = 'Abilita il sistema di API remoto. Questo permette ad altre applicazioni di accedere al wiki tramite XML-RPC o altri meccanismi.'; @@ -196,6 +198,7 @@ $lang['xsendfile_o_2'] = 'Header standard X-Sendfile'; $lang['xsendfile_o_3'] = 'Header proprietario Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Nome utente'; $lang['showuseras_o_username'] = 'Nome completo dell\'utente'; +$lang['showuseras_o_username_link'] = 'Nome completo dell\'utente come link interwiki'; $lang['showuseras_o_email'] = 'Indirizzo email dell\'utente (offuscato in base alle impostazioni di sicurezza posta)'; $lang['showuseras_o_email_link'] = 'Indirizzo email dell\'utente come collegamento mailto:'; $lang['useheading_o_0'] = 'Mai'; diff --git a/lib/plugins/extension/lang/it/lang.php b/lib/plugins/extension/lang/it/lang.php index 66984730b..11b1d3fd7 100644 --- a/lib/plugins/extension/lang/it/lang.php +++ b/lib/plugins/extension/lang/it/lang.php @@ -34,6 +34,7 @@ $lang['js']['display_disabled'] = 'disabilitato'; $lang['js']['display_updatable'] = 'aggiornabile'; $lang['search_for'] = 'Extension di Ricerca:'; $lang['search'] = 'Cerca'; +$lang['extensionby'] = '<strong>%s</strong> da %s'; $lang['screenshot'] = 'Screenshot di %s'; $lang['popularity'] = 'Popolarità : %s%%'; $lang['homepage_link'] = 'Documenti'; @@ -75,8 +76,11 @@ $lang['msg_plugin_install_success'] = 'Plugin %s installato con successo'; $lang['msg_plugin_update_success'] = 'Plugin %s aggiornato con successo'; $lang['msg_upload_failed'] = 'Caricamento del file fallito'; $lang['missing_dependency'] = '<strong>Dipendenza mancante o disabilitata: </strong> %s'; +$lang['security_issue'] = '<strong>Problema di sicurezza:</strong> %s'; +$lang['security_warning'] = '<strong>Avvertimento di sicurezza:</strong> %s'; $lang['update_available'] = '<strong>Aggiornamento:</strong> Nuova versione %s disponibile.'; $lang['wrong_folder'] = '<strong>Plugin non installato correttamente:</strong> rinomina la directory del plugin "%s" in "%s".'; +$lang['url_change'] = '<strong>URL cambiato:</strong> l\'URL per il download è cambiato dall\'ultima volta che è stato utilizzato. Controlla se il nuovo URL è valido prima di aggiornare l\'estensione.<br />Nuovo: %s<br />Vecchio: %s'; $lang['error_badurl'] = 'URLs deve iniziare con http o https'; $lang['error_dircreate'] = 'Impossibile creare una cartella temporanea per ricevere il download'; $lang['error_download'] = 'Impossibile scaricare il file: %s'; -- GitLab From 5b99afc341c66e4c03243d01c27793895fe370f8 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Mon, 24 Aug 2015 21:41:49 +0200 Subject: [PATCH 349/440] translation update --- lib/plugins/extension/lang/it/intro_search.txt | 1 + lib/plugins/extension/lang/it/intro_templates.txt | 1 + lib/plugins/usermanager/lang/it/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/it/lang.php | 5 +++++ 4 files changed, 16 insertions(+) create mode 100644 lib/plugins/extension/lang/it/intro_search.txt create mode 100644 lib/plugins/extension/lang/it/intro_templates.txt create mode 100644 lib/plugins/usermanager/lang/it/import.txt diff --git a/lib/plugins/extension/lang/it/intro_search.txt b/lib/plugins/extension/lang/it/intro_search.txt new file mode 100644 index 000000000..fb77d3683 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_search.txt @@ -0,0 +1 @@ +Questa sezione ti da accesso a tutti i plugin e temi di terze parti disponibili per DokuWiki. Sappi che l'installazione di codice di terze parti potrebbe rappresentare un **rischio di sicurezza**, quindi, forse, prima vorresti informarti a proposito della [[doku>security#plugin_security|sicurezza dei plugin]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/intro_templates.txt b/lib/plugins/extension/lang/it/intro_templates.txt new file mode 100644 index 000000000..a38d86814 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_templates.txt @@ -0,0 +1 @@ +Questi sono i temi attualmente installati nel tuo DokuWiki. Puoi selezionare il tema da usare in [[?do=admin&page=config|Configurazione Wiki]]. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/it/import.txt b/lib/plugins/usermanager/lang/it/import.txt new file mode 100644 index 000000000..ed7b00011 --- /dev/null +++ b/lib/plugins/usermanager/lang/it/import.txt @@ -0,0 +1,9 @@ +===== Importazione Bulk di utente ===== + +Richiesto un file CSV di utenti con almeno quattro colonne. +Le colonne devono contenere, in ordine: ID utente, nome completo, indirizzo e-mail e gruppi. +I campi CSV devono essere separati da una virgola (,) e le stringhe delimitate con apici (%%""%%). Il backslash (\) può essere usato come carattere di escape, cioè per indicare che il carattere successivo deve essere trattato in maniera speciale. +Per un esempio di file tipo, prova la funzione "Esporta Utenti" che trovi qui sopra. +Verranno ignorati gli ID utenti duplicati. + +Verrà generata una password ed inviata via e-mail ad ogni utente correttamente importato. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index ffded3481..2b6a17499 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -18,6 +18,7 @@ * @author Claudio Lanconelli <lancos@libero.it> * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['menu'] = 'Gestione Utenti'; $lang['noauth'] = '(autenticazione non disponibile)'; @@ -65,6 +66,8 @@ $lang['add_ok'] = 'Utente aggiunto correttamente'; $lang['add_fail'] = 'Aggiunta utente fallita'; $lang['notify_ok'] = 'Email di notifica inviata'; $lang['notify_fail'] = 'L\'email di notifica non può essere inviata'; +$lang['import_userlistcsv'] = 'File lista utente (CSV):'; +$lang['import_header'] = 'Importazioni più recenti - Non riuscite'; $lang['import_success_count'] = 'Importazione utenti: %d utenti trovati, %d utenti importati con successo.'; $lang['import_failure_count'] = 'Importazione utenti: %d falliti. Errori riportati qui sotto.'; $lang['import_error_fields'] = 'Campi insufficienti, trovati %d, richiesti 4.'; @@ -74,3 +77,5 @@ $lang['import_error_badmail'] = 'Indirizzo email errato'; $lang['import_error_upload'] = 'Importazione fallita. Il file CSV non può essere caricato, o è vuoto.'; $lang['import_error_readfail'] = 'Importazione in errore. Impossibile leggere i file caricati.'; $lang['import_error_create'] = 'Impossibile creare l\'utente'; +$lang['import_notify_fail'] = 'Non è stato possibile inviare un messaggio di notifica per l\'utente importato %s con e-mail %s.'; +$lang['import_downloadfailures'] = 'Scarica operazioni non riuscite come CSV per correzione'; -- GitLab From af8be5cf7e54c9c57320141f4d72578351d692e0 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Tue, 25 Aug 2015 14:21:34 +0200 Subject: [PATCH 350/440] translation update --- lib/plugins/authad/lang/it/settings.php | 3 +++ lib/plugins/authldap/lang/it/settings.php | 3 +++ lib/plugins/extension/lang/it/lang.php | 1 + 3 files changed, 7 insertions(+) diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php index 2d68dad68..3a92fcb7b 100644 --- a/lib/plugins/authad/lang/it/settings.php +++ b/lib/plugins/authad/lang/it/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Edmondo Di Tucci <snarchio@gmail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['account_suffix'] = 'Il suffisso del tuo account. Eg. <code>@my.domain.org</code>'; $lang['base_dn'] = 'Il tuo DN. base Eg. <code>DC=my,DC=domain,DC=org</code>'; @@ -11,6 +12,8 @@ $lang['domain_controllers'] = 'Elenco separato da virgole di Domain Controlle $lang['admin_username'] = 'Utente privilegiato di Active Directory con accesso ai dati di tutti gli utenti. Opzionale ma necessario per alcune attività come mandare email di iscrizione.'; $lang['admin_password'] = 'La password dell\'utente soprascritto.'; $lang['sso'] = 'Deve essere usato Single-Sign-On via Kerberos oppure NTLM?'; +$lang['sso_charset'] = 'Il set di caratteri che il tuo web server passera nel nome utente Kerberos o NTLM. Lasciare vuoto per UTF-8 p latin-1. Richiesta estensione iconv. '; +$lang['real_primarygroup'] = 'Se il vero gruppo primario dovesse essere risolo invece di assumere "Domain Users" (lento).'; $lang['use_ssl'] = 'Usare la connessione SSL? Se usata, non abilitare TSL qui sotto.'; $lang['use_tls'] = 'Usare la connessione TSL? Se usata, non abilitare SSL qui sopra.'; $lang['debug'] = 'Visualizzare output addizionale di debug per gli errori?'; diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 64c4f9d89..58bf497ed 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -18,9 +18,12 @@ $lang['version'] = 'Versione protocollo da usare. Pu<code>3</code> $lang['starttls'] = 'Usare la connessione TSL?'; $lang['referrals'] = 'Possono i reindirizzamenti essere seguiti?'; $lang['deref'] = 'Come differenziare un alias?'; +$lang['binddn'] = 'DN di un utente bind opzionale se un bind anonimo non è sufficiente. E.g. <code>cn=admin, dc=casa, dc=mia</code>'; $lang['bindpw'] = 'Password del utente di cui sopra'; $lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; $lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; +$lang['userkey'] = 'Attributo indicante il nome utente; deve essere consistente con il filtro utente.'; +$lang['groupkey'] = 'Gruppo di appartenenza sulla base di qualunque attributo utente (invece di gruppo AD standard) e.g. gruppo in base al dipartimento o al numero di telefono'; $lang['modPass'] = 'Può la password LDAP essere cambiata attraverso DokuWiki?'; $lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; diff --git a/lib/plugins/extension/lang/it/lang.php b/lib/plugins/extension/lang/it/lang.php index 11b1d3fd7..d22cb9d52 100644 --- a/lib/plugins/extension/lang/it/lang.php +++ b/lib/plugins/extension/lang/it/lang.php @@ -91,6 +91,7 @@ $lang['noperms'] = 'La directory Extension non è scrivibile'; $lang['notplperms'] = 'Il modello di cartella non è scrivibile'; $lang['nopluginperms'] = 'La cartella plugin non è scrivibile'; $lang['git'] = 'Questa extension è stata installata da git, potreste non volerla aggiornare qui.'; +$lang['auth'] = 'Questo plugin di autenticazione non è abilitato nella configurazione, considera di disabilitarlo.'; $lang['install_url'] = 'Installa da URL:'; $lang['install_upload'] = 'Caricamento Extension:'; $lang['repo_error'] = 'Il repository dei plugin non può essere raggiunto. Assicuratevi che il vostro server sia abilitato a contattare l\'indirizzo www.dokuwiki.org e controllate le impostazioni del vostro proxy.'; -- GitLab From e066f5325b6b206276779dfc6392a50cfcaf8edf Mon Sep 17 00:00:00 2001 From: "Liou, Jhe-Yu" <lioujheyu@gmail.com> Date: Thu, 27 Aug 2015 08:11:33 +0200 Subject: [PATCH 351/440] translation update --- inc/lang/zh-tw/lang.php | 3 ++- lib/plugins/authldap/lang/zh-tw/settings.php | 2 +- lib/plugins/authplain/lang/zh-tw/lang.php | 5 +++-- lib/plugins/config/lang/zh-tw/lang.php | 6 ++++-- lib/plugins/extension/lang/zh-tw/lang.php | 6 ++++++ lib/plugins/styling/lang/zh-tw/lang.php | 15 +++++++++++++++ 6 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 lib/plugins/styling/lang/zh-tw/lang.php diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index b69456ee7..4cd077381 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author chinsan <chinsan@mail2000.com.tw> * @author Li-Jiun Huang <ljhuang.tw@gmail.com> * @author http://www.chinese-tools.com/tools/converter-simptrad.html @@ -16,6 +16,7 @@ * @author Stan <talktostan@gmail.com> * @author June-Hao Hou <junehao@gmail.com> * @author lioujheyu <lioujheyu@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php index dcbbace8c..cb0bb71a4 100644 --- a/lib/plugins/authldap/lang/zh-tw/settings.php +++ b/lib/plugins/authldap/lang/zh-tw/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author syaoranhinata@gmail.com */ $lang['server'] = '您的 LDAP 伺æœå™¨ã€‚填寫主機å稱 (<code>localhost</code>) 或完整的 URL (<code>ldap://server.tld:389</code>)'; diff --git a/lib/plugins/authplain/lang/zh-tw/lang.php b/lib/plugins/authplain/lang/zh-tw/lang.php index 8a5d290e5..39578f52d 100644 --- a/lib/plugins/authplain/lang/zh-tw/lang.php +++ b/lib/plugins/authplain/lang/zh-tw/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = '很抱æ‰ï¼Œæœ‰äººå·²ä½¿ç”¨äº†é€™å€‹å¸³è™Ÿã€‚'; +$lang['userexists'] = '很抱æ‰ï¼Œæœ‰äººå·²ä½¿ç”¨äº†é€™å€‹å¸³è™Ÿã€‚'; diff --git a/lib/plugins/config/lang/zh-tw/lang.php b/lib/plugins/config/lang/zh-tw/lang.php index c586a0d51..e5b051bfb 100644 --- a/lib/plugins/config/lang/zh-tw/lang.php +++ b/lib/plugins/config/lang/zh-tw/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Chinese Traditional language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Li-Jiun Huang <ljhuang.tw@gmail.com> * @author http://www.chinese-tools.com/tools/converter-simptrad.html * @author Wayne San <waynesan@zerozone.tw> @@ -11,6 +12,7 @@ * @author Shuo-Ting Jian <shoting@gmail.com> * @author syaoranhinata@gmail.com * @author Ichirou Uchiki <syaoranhinata@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['menu'] = '系統è¨å®š'; $lang['error'] = 'å› ç‚ºå«æœ‰ä¸åˆè¦æ ¼çš„è¨å®šå€¼ï¼Œæ•…未能更新è¨å®šã€‚請檢查您的更改並é‡æ–°é€å‡ºã€‚ diff --git a/lib/plugins/extension/lang/zh-tw/lang.php b/lib/plugins/extension/lang/zh-tw/lang.php index 79657ffeb..c5b1e6dc5 100644 --- a/lib/plugins/extension/lang/zh-tw/lang.php +++ b/lib/plugins/extension/lang/zh-tw/lang.php @@ -6,6 +6,7 @@ * @author Stan <talktostan@gmail.com> * @author June-Hao Hou <junehao@gmail.com> * @author lioujheyu <lioujheyu@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['menu'] = '延伸功能管ç†'; $lang['tab_plugins'] = '已安è£å¤–掛'; @@ -27,6 +28,9 @@ $lang['btn_disable'] = 'åœç”¨'; $lang['btn_install'] = '安è£'; $lang['btn_reinstall'] = 'é‡æ–°å®‰è£'; $lang['js']['reallydel'] = '確定è¦ç§»é™¤æ¤å»¶ä¼¸åŠŸèƒ½ï¼Ÿ'; +$lang['js']['display_enabled'] = '啟用'; +$lang['js']['display_disabled'] = 'ç¦ç”¨'; +$lang['js']['display_updatable'] = 'å¯æ›´æ–°'; $lang['search_for'] = 'æœå°‹å»¶ä¼¸åŠŸèƒ½ï¼š'; $lang['search'] = 'æœå°‹'; $lang['homepage_link'] = '文件'; @@ -58,6 +62,7 @@ $lang['status_bundled'] = '已綑ç¶å…§é™„'; $lang['msg_enabled'] = '外掛 %s 已啟用'; $lang['msg_disabled'] = '外掛 %s å·²ç¦ç”¨'; $lang['msg_delete_success'] = 'é™„åŠ å…ƒä»¶å·²ç§»é™¤'; +$lang['msg_delete_failed'] = 'è§£é™¤å®‰è£ %s 失敗'; $lang['msg_template_install_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸå®‰è£'; $lang['msg_template_update_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸæ›´æ–°'; $lang['msg_plugin_install_success'] = '外掛 %s 以æˆåŠŸå®‰è£'; @@ -69,6 +74,7 @@ $lang['security_warning'] = '<strong>安全å•é¡Œè¦å‘Š:</strong> %s'; $lang['update_available'] = '<strong>æ›´æ–°:</strong> å·²å¯å–å¾— %s 的新版本'; $lang['wrong_folder'] = '<strong>外掛安è£ä¸æ£ç¢º:</strong> 將外掛資料夾從 "%s" æ›´å至 "%s"。'; $lang['url_change'] = '<strong>網å€å·²è®Šæ›´:</strong> 自從上次下載後下載網å€å·²è®Šæ›´ã€‚在更新延伸功能å‰è«‹å…ˆæª¢æŸ¥æ–°ç¶²å€æ˜¯å¦å¯ç”¨ã€‚<br />æ–°: %s<br />舊: %s'; +$lang['error_dircreate'] = '無法建立暫å˜ç›®éŒ„以接收下載檔案'; $lang['error_download'] = '無法下載檔案:%s'; $lang['error_decompress'] = '無法解壓縮檔案。這å¯èƒ½æ˜¯ä¸‹è¼‰å“質ä¸ä½³æ‰€è‡´ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ 應該å†è©¦ä¸€æ¬¡ï¼›ä¹Ÿæœ‰å¯èƒ½æ˜¯å› 為無法辨è˜çš„å£“ç¸®æ ¼å¼ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ 應該自行下載並手動安è£'; $lang['error_findfolder'] = '無法辨èªå»¶ä¼¸åŠŸèƒ½è³‡æ–™å¤¾ï¼Œä½ å¿…é ˆè‡ªè¡Œä¸‹è¼‰ä¸¦æ‰‹å‹•å®‰è£'; diff --git a/lib/plugins/styling/lang/zh-tw/lang.php b/lib/plugins/styling/lang/zh-tw/lang.php new file mode 100644 index 000000000..ce4a9a960 --- /dev/null +++ b/lib/plugins/styling/lang/zh-tw/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> + */ +$lang['menu'] = '模æ¿é¢¨æ ¼è¨å®š'; +$lang['error'] = '抱æ‰ï¼Œè©²æ¨¡æ¿ä¸æ”¯æŒé€™å€‹åŠŸèƒ½'; +$lang['btn_preview'] = 'é 覽'; +$lang['btn_save'] = '儲å˜'; +$lang['btn_reset'] = 'é‡è¨'; +$lang['btn_revert'] = 'å°‡é¢¨æ ¼å¾©åŽŸè‡³æ¨¡æ¿é è¨å€¼'; +$lang['__text__'] = '主è¦æ–‡å—é¡è‰²'; +$lang['__background__'] = '主è¦èƒŒæ™¯é¡è‰²'; -- GitLab From a51304ac84109ee076ee446f31674d42c3407f8c Mon Sep 17 00:00:00 2001 From: Kiril <neohidra@gmail.com> Date: Fri, 28 Aug 2015 14:06:07 +0200 Subject: [PATCH 352/440] translation update --- inc/lang/bg/lang.php | 1 + lib/plugins/acl/lang/bg/help.txt | 10 ++++------ lib/plugins/extension/lang/bg/intro_install.txt | 1 + lib/plugins/extension/lang/bg/intro_plugins.txt | 1 + lib/plugins/extension/lang/bg/intro_search.txt | 1 + lib/plugins/extension/lang/bg/intro_templates.txt | 1 + lib/plugins/extension/lang/bg/lang.php | 13 ++++++++++++- lib/plugins/styling/lang/bg/lang.php | 4 ++++ lib/tpl/dokuwiki/lang/bg/lang.php | 13 +++++++++++++ 9 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 lib/plugins/extension/lang/bg/intro_install.txt create mode 100644 lib/plugins/extension/lang/bg/intro_plugins.txt create mode 100644 lib/plugins/extension/lang/bg/intro_search.txt create mode 100644 lib/plugins/extension/lang/bg/intro_templates.txt create mode 100644 lib/tpl/dokuwiki/lang/bg/lang.php diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index f12b66a62..0dc3f8660 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -331,5 +331,6 @@ $lang['media_perm_read'] = 'За Ñъжаление нÑмате доÑÑ‚ $lang['media_perm_upload'] = 'За Ñъжаление нÑмате доÑтатъчно права, за да можете да качите файла.'; $lang['media_update'] = 'Качване на нова верÑиÑ'; $lang['media_restore'] = 'ВъзÑтановÑване на тази верÑиÑ'; +$lang['currentns'] = 'Текущо именно проÑтранÑтво'; $lang['searchresult'] = 'Резултати от Ñ‚ÑŠÑ€Ñенето'; $lang['plainhtml'] = 'Обикновен HTML'; diff --git a/lib/plugins/acl/lang/bg/help.txt b/lib/plugins/acl/lang/bg/help.txt index 2de453420..ffda1ff71 100644 --- a/lib/plugins/acl/lang/bg/help.txt +++ b/lib/plugins/acl/lang/bg/help.txt @@ -1,11 +1,9 @@ === Помощ === От тук можете да добавÑте и премахвате права за именни проÑтранÑтва и Ñтраници във вашето Wiki. - -ЛевиÑÑ‚ панел показва вÑички налични именни проÑтранÑтва и Ñтраници. - -Формата отгоре ви позволÑва да преглеждате и променÑте правата на избран потребител или група. - -Ð’ таблицата отдолу Ñа показани вÑички актуални правила за контрол на доÑтъпа. Можете да Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ за бързо изтриване или промÑна на множеÑтво правила. + * левиÑÑ‚ панел показва вÑички налични именни проÑтранÑтва и Ñтраници. + * формата отгоре ви позволÑва да преглеждате и променÑте правата на избран потребител или група. + * в таблицата долу Ñа показани вÑички актуални правила за контрол на доÑтъпа. +Можете да Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ за бързо изтриване или промÑна на множеÑтво правила. За да разберете как работи контрола на доÑтъпа в DokuWiki Ñ‚Ñ€Ñбва да прочетете [[doku>acl|документациÑта отноÑно ACL]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_install.txt b/lib/plugins/extension/lang/bg/intro_install.txt new file mode 100644 index 000000000..34b92484c --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_install.txt @@ -0,0 +1 @@ +От тук можете да инÑталирате ръчно приÑтавки и шаблони като качите архив или поÑочите URL за ÑвалÑне на архива. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_plugins.txt b/lib/plugins/extension/lang/bg/intro_plugins.txt new file mode 100644 index 000000000..927f617db --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_plugins.txt @@ -0,0 +1 @@ +Това Ñа инÑталираните приÑтавки. От тук можете да ги включвате и изключвате както и да ги деинÑталирате. Тук ще виждате и наличните актуализации, като преди вÑÑка такава прочетете документациÑта на Ñъответната приÑтавка. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_search.txt b/lib/plugins/extension/lang/bg/intro_search.txt new file mode 100644 index 000000000..cec4cd243 --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_search.txt @@ -0,0 +1 @@ +От тук имате доÑтъп до вÑички налични приÑтавки и шаблони за DokuWiki, които Ñа дело на трети лица. Имайте предвид, че кодът им е потенциален **риÑк за ÑигурноÑтта на Ñървъра**! Повече по темата можете да прочетете в [[doku>security#plugin_security|plugin security]] first. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_templates.txt b/lib/plugins/extension/lang/bg/intro_templates.txt new file mode 100644 index 000000000..8824b4d8e --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_templates.txt @@ -0,0 +1 @@ +Това Ñа инÑталираните шаблони. Можете да определите кой шаблон да Ñе ползва от [[?do=admin&page=config|ÐаÑтройки]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/lang.php b/lib/plugins/extension/lang/bg/lang.php index b14442c55..dda69a4b9 100644 --- a/lib/plugins/extension/lang/bg/lang.php +++ b/lib/plugins/extension/lang/bg/lang.php @@ -36,15 +36,19 @@ $lang['popularity'] = 'ПопулÑрноÑÑ‚: %s%%'; $lang['homepage_link'] = 'Документи'; $lang['tags'] = 'Етикети:'; $lang['author_hint'] = 'ТърÑене за други приÑтавки от този автор'; +$lang['installed'] = 'ИнÑталирано:'; $lang['downloadurl'] = 'СвалÑне от URL:'; $lang['repository'] = 'Хранилище:'; +$lang['unknown'] = '<em>неизвеÑтно</em>'; $lang['installed_version'] = 'ИнÑталирана верÑиÑ:'; -$lang['install_date'] = 'ПоÑледна актуализирана на:'; +$lang['install_date'] = 'ПоÑл. актуализиране:'; $lang['available_version'] = 'Ðалична верÑиÑ:'; $lang['compatible'] = 'СъвмеÑтимоÑÑ‚ Ñ:'; $lang['depends'] = 'ИзиÑква:'; $lang['similar'] = 'ÐаподобÑва:'; $lang['conflicts'] = 'Ð’ кофликт Ñ:'; +$lang['donate'] = 'ХареÑва ли ви?'; +$lang['donate_action'] = 'Купете на автора кафе!'; $lang['repo_retry'] = 'Повторен опит'; $lang['provides'] = 'ОÑигурÑва:'; $lang['status'] = 'СъÑтоÑние:'; @@ -65,9 +69,16 @@ $lang['msg_plugin_install_success'] = 'ПриÑтавката "%s" е инÑта $lang['msg_plugin_update_success'] = 'ПриÑтавката "%s" е актуализирана уÑпешно'; $lang['msg_upload_failed'] = 'Качването на файлът Ñе провали'; $lang['missing_dependency'] = '<strong>ИзиÑкван компонент липÑва или е изключен:</strong> %s'; +$lang['security_issue'] = '<strong>Проблем ÑÑŠÑ ÑигурноÑтта:</strong> %s'; +$lang['security_warning'] = '<strong>Предупреждние за ÑигурноÑтта:</strong> %s'; $lang['update_available'] = '<strong>ÐктуализациÑ:</strong> Ðалична е нова верÑÐ¸Ñ - %s'; $lang['wrong_folder'] = '<strong>Ðекоректно инÑталирана приÑтавка:</strong> Преименувайте директориÑта "%s" на "%s".'; $lang['error_badurl'] = 'URL адреÑите Ñ‚Ñ€Ñбва да започват Ñ http или https'; $lang['error_dircreate'] = 'Създаването на временна поапка за получаване на файла не е възможно'; $lang['error_download'] = 'ÐевъзможноÑÑ‚ за ÑвалÑне на файл: %s'; +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° разширението не е доÑтъпна за пиÑане'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° шаблона не е доÑтъпна за пиÑане'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° приÑтавката не е доÑтъпна за пиÑане'; $lang['install_url'] = 'ИнÑталиране от URL:'; +$lang['install_upload'] = 'Качване:'; +$lang['repo_error'] = 'ÐÑма връзка Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ на добавката. Проверете възможна ли е комуникациÑта www.dokuwiki.org и прокÑи наÑтройките.'; diff --git a/lib/plugins/styling/lang/bg/lang.php b/lib/plugins/styling/lang/bg/lang.php index 5e457380c..7d17caffb 100644 --- a/lib/plugins/styling/lang/bg/lang.php +++ b/lib/plugins/styling/lang/bg/lang.php @@ -5,9 +5,12 @@ * * @author Kiril <neohidra@gmail.com> */ +$lang['menu'] = 'ÐаÑтройки на Ñтила на шаблона'; +$lang['error'] = 'За Ñъжаление шаблона не поддържа тази функционалноÑÑ‚.'; $lang['btn_preview'] = 'Преглед на промените'; $lang['btn_save'] = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° промените'; $lang['btn_reset'] = 'Ðнулиране на промените'; +$lang['btn_revert'] = 'Връщане на Ñтила към Ñтандартните ÑтойноÑти'; $lang['__text__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚'; $lang['__background__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ„Ð¾Ð½'; $lang['__text_alt__'] = 'Ðлтернативен цвÑÑ‚ за текÑта'; @@ -15,3 +18,4 @@ $lang['__background_alt__'] = 'Ðлтернативен цвÑÑ‚ за фон $lang['__text_neu__'] = 'Ðеутрален цвÑÑ‚ за текÑта'; $lang['__background_neu__'] = 'Ðеутрален цвÑÑ‚ за фона'; $lang['__border__'] = 'ЦвÑÑ‚ на рамката'; +$lang['__highlight__'] = 'ЦвÑÑ‚ за отличаване (оÑновно на резултата от Ñ‚ÑŠÑ€ÑениÑ)'; diff --git a/lib/tpl/dokuwiki/lang/bg/lang.php b/lib/tpl/dokuwiki/lang/bg/lang.php new file mode 100644 index 000000000..7717607c0 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/bg/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['__background_site__'] = 'ЦвÑÑ‚ за фона, под Ñъдъжанието'; +$lang['__link__'] = 'Стандартен цвÑÑ‚ за препратка'; +$lang['__existing__'] = 'ЦвÑÑ‚ за препратка към ÑъщеÑтвуващи Ñтаници'; +$lang['__missing__'] = 'ЦвÑÑ‚ за препратка към неÑъщеÑтвуващи Ñтаници'; +$lang['__site_width__'] = 'Ширина на Ñ†ÐµÐ»Ð¸Ñ Ñайт (може да бъде вÑÑка мерна единица:%, px, em, ...)'; +$lang['__sidebar_width__'] = 'Ширина на Ñтраничната лента (може да бъде вÑÑка мерна единица:%, px, em, ...)'; -- GitLab From 3c6ca1b739d0476ddfd9987e4404f9f820b49153 Mon Sep 17 00:00:00 2001 From: Mike Wilmes <mwilmes@avc.edu> Date: Tue, 1 Sep 2015 13:37:28 -0700 Subject: [PATCH 353/440] * Changed the flow of the navigation button HTML so the navigation buttons actually flow to the right. --- lib/plugins/usermanager/admin.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 86823ee2f..e1ca4265e 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -243,12 +243,6 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <span class=\"medialeft\">"); ptln(" <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>"); ptln(" "); - ptln(" <span class=\"mediaright\">"); - ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); - ptln(" </span>"); if (!empty($this->_filter)) { ptln(" <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>"); } @@ -257,6 +251,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />"); $this->_htmlFilterSettings(2); + ptln(" </span>"); + ptln(" <span class=\"mediaright\">"); + ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); + ptln(" </span>"); ptln(" </td></tr>"); ptln(" </tbody>"); -- GitLab From 06c9ee33a6fa99795455452d90a155e58f1297d7 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Wed, 2 Sep 2015 17:01:24 +0200 Subject: [PATCH 354/440] Fixed several undefined errors. --- inc/common.php | 2 +- lib/exe/css.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/common.php b/inc/common.php index e14bd7af4..17facd249 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1860,7 +1860,7 @@ function valid_input_set($param, $valid_values, $array, $exc = '') { */ function get_doku_pref($pref, $default) { $enc_pref = urlencode($pref); - if(strpos($_COOKIE['DOKU_PREFS'], $enc_pref) !== false) { + if(isset($_COOKIE['DOKU_PREFS']) && strpos($_COOKIE['DOKU_PREFS'], $enc_pref) !== false) { $parts = explode('#', $_COOKIE['DOKU_PREFS']); $cnt = count($parts); for($i = 0; $i < $cnt; $i += 2) { diff --git a/lib/exe/css.php b/lib/exe/css.php index 925b78a76..507a68737 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -296,12 +296,12 @@ function css_styleini($tpl, $preview=false) { $data = parse_ini_file($ini, true); // stylesheets - if(is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ + if(isset($data['stylesheets']) && is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ $stylesheets[$mode][$incbase.$file] = $webbase; } // replacements - if(is_array($data['replacements'])){ + if(isset($data['replacements']) && is_array($data['replacements'])){ $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); } } -- GitLab From 76c49356bea867f3615a96ad3f0a963ec8501e63 Mon Sep 17 00:00:00 2001 From: Mike Wilmes <mwilmes@avc.edu> Date: Wed, 2 Sep 2015 12:42:41 -0700 Subject: [PATCH 355/440] * Fixed identified issue with button spans by replacing missing closing span tag as identified by selfthinker, removed in ae61441. --- lib/plugins/usermanager/admin.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index e1ca4265e..ca954db68 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -242,7 +242,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <tr><td colspan=\"5\" class=\"centeralign\">"); ptln(" <span class=\"medialeft\">"); ptln(" <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>"); - ptln(" "); + ptln(" </span>"); + ptln(" <span class=\"mediaright\">"); + ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); + ptln(" </span>"); if (!empty($this->_filter)) { ptln(" <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>"); } @@ -251,13 +257,6 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />"); $this->_htmlFilterSettings(2); - ptln(" </span>"); - ptln(" <span class=\"mediaright\">"); - ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); - ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); - ptln(" </span>"); ptln(" </td></tr>"); ptln(" </tbody>"); -- GitLab From f461b96d476f9ab838d4503a50f28a9b82b23a4f Mon Sep 17 00:00:00 2001 From: Martin Michalek <michalek.dev@gmail.com> Date: Fri, 4 Sep 2015 21:21:37 +0200 Subject: [PATCH 356/440] translation update --- inc/lang/sk/lang.php | 8 +++++--- lib/plugins/authmysql/lang/sk/lang.php | 10 ++++++++++ lib/plugins/authplain/lang/sk/lang.php | 7 +++++-- lib/plugins/config/lang/sk/lang.php | 5 +++-- lib/plugins/styling/lang/sk/lang.php | 18 ++++++++++++++++++ lib/tpl/dokuwiki/lang/sk/lang.php | 11 +++++++++++ 6 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 lib/plugins/authmysql/lang/sk/lang.php create mode 100644 lib/plugins/styling/lang/sk/lang.php create mode 100644 lib/tpl/dokuwiki/lang/sk/lang.php diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index a78989ce0..87bdd79b2 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -50,6 +50,8 @@ $lang['btn_register'] = 'RegistrovaÅ¥'; $lang['btn_apply'] = 'PoužiÅ¥'; $lang['btn_media'] = 'Správa médiÃ'; $lang['btn_deleteuser'] = 'ZruÅ¡iÅ¥ môj úÄet'; +$lang['btn_img_backto'] = 'Späť na %s'; +$lang['btn_mediaManager'] = 'PrezrieÅ¥ v správcovi médiÃ'; $lang['loggedinas'] = 'Prihlásený(á) ako:'; $lang['user'] = 'UžÃvateľské meno'; $lang['pass'] = 'Heslo'; @@ -65,11 +67,12 @@ $lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.'; $lang['minoredit'] = 'MenÅ¡ie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; $lang['nosecedit'] = 'Stránka bola medziÄasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; -$lang['searchcreatepage'] = "Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla ''VytvoriÅ¥ stránku''."; +$lang['searchcreatepage'] = 'Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla \'\'VytvoriÅ¥ stránku\'\'.'; $lang['regmissing'] = 'MusÃte vyplniÅ¥ vÅ¡etky údaje.'; $lang['reguexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; $lang['regsuccess'] = 'UžÃvateľský úÄet bol vytvorený a heslo zaslané emailom.'; $lang['regsuccess2'] = 'UžÃvateľský úÄet bol vytvorený.'; +$lang['regfail'] = 'PoužÃvateľ nemôže byÅ¥ vytvorený.'; $lang['regmailfail'] = 'Zdá sa, že nastala chyba pri posielanà mailu s heslom. Skúste kontaktovaÅ¥ správcu.'; $lang['regbadmail'] = 'Zadaná emailová adresa nie je platná. Pokiaľ si myslÃte, že to je zle, skúste kontaktovaÅ¥ správcu.'; $lang['regbadpass'] = 'Zadané heslá nie sú rovnaké, zadajte ich prosÃm znovu.'; @@ -84,6 +87,7 @@ $lang['profdeleteuser'] = 'ZruÅ¡iÅ¥ úÄet'; $lang['profdeleted'] = 'Váš úÄet bol zruÅ¡ený v tejto wiki.'; $lang['profconfdelete'] = 'Chcem odstrániÅ¥ môj úÄet z tejto wiki. <br/> Táto operácia je nevratná.'; $lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie polÃÄko'; +$lang['proffail'] = 'Profil použÃvateľa nebol aktualizovaný.'; $lang['pwdforget'] = 'Zabudli ste heslo? ZÃskajte nové!'; $lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'NastaviÅ¥ nové heslo pre'; @@ -236,7 +240,6 @@ $lang['upperns'] = 'návrat do nadradeného menného priestoru'; $lang['metaedit'] = 'UpraviÅ¥ metainformácie'; $lang['metasaveerr'] = 'Zápis metainformácià zlyhal'; $lang['metasaveok'] = 'Metainformácie uložené'; -$lang['btn_img_backto'] = 'Späť na %s'; $lang['img_title'] = 'Titul:'; $lang['img_caption'] = 'Popis:'; $lang['img_date'] = 'Dátum:'; @@ -249,7 +252,6 @@ $lang['img_camera'] = 'Fotoaparát:'; $lang['img_keywords'] = 'KľúÄové slová:'; $lang['img_width'] = 'Å Ãrka:'; $lang['img_height'] = 'Výška:'; -$lang['btn_mediaManager'] = 'PrezrieÅ¥ v správcovi médiÃ'; $lang['subscr_subscribe_success'] = 'PoužÃvateľ %s bol pridaný do zoznamu hlásenà o zmenách %s'; $lang['subscr_subscribe_error'] = 'Chyba pri pridanà použÃvateľa %s do zoznamu hlásenà o zmenách %s'; $lang['subscr_subscribe_noaddress'] = 'VaÅ¡e prihlasovacie meno nemá priradenú žiadnu email adresu, nemôžete byÅ¥ pridaný do zoznamu hlásenà o zmenách'; diff --git a/lib/plugins/authmysql/lang/sk/lang.php b/lib/plugins/authmysql/lang/sk/lang.php new file mode 100644 index 000000000..d143bbf2c --- /dev/null +++ b/lib/plugins/authmysql/lang/sk/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['connectfail'] = 'Nepodarilo sa pripojiÅ¥ k databáze.'; +$lang['userexists'] = 'Ľutujem, ale použÃvateľ s týmto prihlasovacÃm menom už existuje.'; +$lang['writefail'] = 'Nie je možné zmeniÅ¥ údaje použÃvateľa, informujte prosÃm administrátora Wiki.'; diff --git a/lib/plugins/authplain/lang/sk/lang.php b/lib/plugins/authplain/lang/sk/lang.php index 5153fc1c9..46ce389f3 100644 --- a/lib/plugins/authplain/lang/sk/lang.php +++ b/lib/plugins/authplain/lang/sk/lang.php @@ -1,6 +1,9 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Martin Michalek <michalek.dev@gmail.com> */ -$lang['userexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; +$lang['userexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; +$lang['writefail'] = 'Nie je možné zmeniÅ¥ údaje použÃvateľa, informujte prosÃm administrátora Wiki.'; diff --git a/lib/plugins/config/lang/sk/lang.php b/lib/plugins/config/lang/sk/lang.php index 46e4081a9..65a1e1707 100644 --- a/lib/plugins/config/lang/sk/lang.php +++ b/lib/plugins/config/lang/sk/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Slovaklanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Michal Mesko <michal.mesko@gmail.com> * @author exusik@gmail.com * @author Martin Michalek <michalek.dev@gmail.com> diff --git a/lib/plugins/styling/lang/sk/lang.php b/lib/plugins/styling/lang/sk/lang.php new file mode 100644 index 000000000..f1017e5c1 --- /dev/null +++ b/lib/plugins/styling/lang/sk/lang.php @@ -0,0 +1,18 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['btn_preview'] = 'Náhľad zmien'; +$lang['btn_save'] = 'Uloženie zmien'; +$lang['btn_reset'] = 'ZruÅ¡ prevedené zmeny'; +$lang['__text__'] = 'Primárna farba textu'; +$lang['__background__'] = 'Primárna farba pozadia'; +$lang['__text_alt__'] = 'AlternatÃvna farba textu'; +$lang['__background_alt__'] = 'AlternatÃvna farba pozadia'; +$lang['__text_neu__'] = 'Neutrálna farba textu'; +$lang['__background_neu__'] = 'Neutrálna farba pozadia'; +$lang['__border__'] = 'Farba okraja'; +$lang['__highlight__'] = 'Farba zvýraznenia (zvyÄajne výsledkov vyhľadávania)'; diff --git a/lib/tpl/dokuwiki/lang/sk/lang.php b/lib/tpl/dokuwiki/lang/sk/lang.php new file mode 100644 index 000000000..ca611f838 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/sk/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['__background_site__'] = 'Farba základného pozadia (za oknom s obsahom)'; +$lang['__link__'] = 'VÅ¡eobecná farba odkazu'; +$lang['__existing__'] = 'Farba odkazov na existujúce stránky'; +$lang['__missing__'] = 'Farba odkazov na neexistujúce stránky'; -- GitLab From 388939bafc3265aeaa0ecabf2c0cd66309b835d7 Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov <alexgearbox@yandex.ru> Date: Sat, 5 Sep 2015 22:36:36 +0200 Subject: [PATCH 357/440] translation update --- inc/lang/ru/admin.txt | 2 +- inc/lang/ru/conflict.txt | 4 +- inc/lang/ru/denied.txt | 2 +- inc/lang/ru/diff.txt | 1 - inc/lang/ru/draft.txt | 5 +- inc/lang/ru/edit.txt | 3 +- inc/lang/ru/editrev.txt | 2 +- inc/lang/ru/index.txt | 2 +- inc/lang/ru/lang.php | 75 +++++++-------- inc/lang/ru/recent.txt | 2 +- inc/lang/ru/subscr_list.txt | 1 + lib/plugins/authad/lang/ru/settings.php | 2 +- lib/plugins/authldap/lang/ru/settings.php | 8 +- lib/plugins/authmysql/lang/ru/lang.php | 3 +- lib/plugins/authplain/lang/ru/lang.php | 3 +- lib/plugins/config/lang/ru/intro.txt | 4 +- lib/plugins/config/lang/ru/lang.php | 93 ++++++++++--------- .../extension/lang/ru/intro_install.txt | 2 +- .../extension/lang/ru/intro_plugins.txt | 2 +- .../extension/lang/ru/intro_search.txt | 2 +- .../extension/lang/ru/intro_templates.txt | 2 +- lib/plugins/extension/lang/ru/lang.php | 70 +++++++------- lib/plugins/styling/lang/ru/intro.txt | 2 +- lib/plugins/styling/lang/ru/lang.php | 3 +- lib/tpl/dokuwiki/lang/ru/lang.php | 10 +- lib/tpl/dokuwiki/lang/ru/style.txt | 1 + 26 files changed, 156 insertions(+), 150 deletions(-) create mode 100644 lib/tpl/dokuwiki/lang/ru/style.txt diff --git a/inc/lang/ru/admin.txt b/inc/lang/ru/admin.txt index cd609a347..8a670d5a0 100644 --- a/inc/lang/ru/admin.txt +++ b/inc/lang/ru/admin.txt @@ -1,4 +1,4 @@ ====== Управление ====== -Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». +Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». diff --git a/inc/lang/ru/conflict.txt b/inc/lang/ru/conflict.txt index 6c5e33dce..e813d8c13 100644 --- a/inc/lang/ru/conflict.txt +++ b/inc/lang/ru/conflict.txt @@ -1,5 +1,5 @@ ====== СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ====== -СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. +СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. -Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. +Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt index 6b7c82511..791b30b1a 100644 --- a/inc/lang/ru/denied.txt +++ b/inc/lang/ru/denied.txt @@ -1,4 +1,4 @@ ====== ДоÑтуп запрещён ====== -Извините, у Ð²Ð°Ñ Ð½Ðµ хватает прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. +Извините, ÑƒÂ Ð²Ð°Ñ Ð½ÐµÂ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. diff --git a/inc/lang/ru/diff.txt b/inc/lang/ru/diff.txt index 80252614f..21b8a8eab 100644 --- a/inc/lang/ru/diff.txt +++ b/inc/lang/ru/diff.txt @@ -1,4 +1,3 @@ ====== Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ ====== ЗдеÑÑŒ показаны Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÑ€ÑиÑми данной Ñтраницы. - diff --git a/inc/lang/ru/draft.txt b/inc/lang/ru/draft.txt index cb35f72b6..a92aa34cd 100644 --- a/inc/lang/ru/draft.txt +++ b/inc/lang/ru/draft.txt @@ -1,6 +1,5 @@ ====== Ðайден черновик ====== -ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. - -ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. +ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Ð’Ð¾Â Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. +ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. diff --git a/inc/lang/ru/edit.txt b/inc/lang/ru/edit.txt index aac399d7c..25ded4115 100644 --- a/inc/lang/ru/edit.txt +++ b/inc/lang/ru/edit.txt @@ -1,2 +1 @@ -Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. - +Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. diff --git a/inc/lang/ru/editrev.txt b/inc/lang/ru/editrev.txt index 97b799a70..ac2464db9 100644 --- a/inc/lang/ru/editrev.txt +++ b/inc/lang/ru/editrev.txt @@ -1,2 +1,2 @@ -**Ð’Ñ‹ загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. +**Вы загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. ---- diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt index ab669918a..a059b281f 100644 --- a/inc/lang/ru/index.txt +++ b/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. +Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 569ea0d9b..51f6ffd44 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -45,7 +45,7 @@ $lang['btn_edit'] = 'Править Ñтраницу'; $lang['btn_source'] = 'Показать иÑходный текÑÑ‚'; $lang['btn_show'] = 'Показать Ñтраницу'; $lang['btn_create'] = 'Создать Ñтраницу'; -$lang['btn_search'] = 'ПоиÑк'; +$lang['btn_search'] = 'Ðайти'; $lang['btn_save'] = 'Сохранить'; $lang['btn_preview'] = 'ПроÑмотр'; $lang['btn_top'] = 'Ðаверх'; @@ -92,38 +92,39 @@ $lang['badlogin'] = 'Извините, неверное Ð¸Ð¼Ñ Ð¿Ð¾ $lang['badpassconfirm'] = 'ПроÑтите, пароль неверный'; $lang['minoredit'] = 'Ðебольшие изменениÑ'; $lang['draftdate'] = 'Черновик Ñохранён'; -$lang['nosecedit'] = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена и Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.'; -$lang['searchcreatepage'] = 'ЕÑли вы не нашли то, что иÑкали, вы можете Ñоздать новую Ñтраницу Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, Ñовпадающим Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñом. Чтобы Ñделать Ñто, проÑто нажмите на кнопку «Создать Ñтраницу».'; +$lang['nosecedit'] = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена Ð¸Â Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Â Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.'; +$lang['searchcreatepage'] = 'ЕÑли вы не нашли то, что иÑкали, вы можете Ñоздать новую Ñтраницу Ñ именем, Ñовпадающим Ñ запроÑом. Чтобы Ñделать Ñто, проÑто нажмите на кнопку «Создать Ñтраницу».'; $lang['regmissing'] = 'Извините, вам Ñледует заполнить вÑе полÑ.'; $lang['reguexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; -$lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан на Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; +$lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан Ð½Ð°Â Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; $lang['regsuccess2'] = 'Пользователь Ñоздан.'; -$lang['regfail'] = 'Пользователь не может быть Ñоздан.'; -$lang['regmailfail'] = 'Похоже еÑÑ‚ÑŒ проблема Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¾Ð¹ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾ почте. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору.'; -$lang['regbadmail'] = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.'; -$lang['regbadpass'] = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ идентичны. ПожалуйÑта, попробуйте ещё раз.'; +$lang['regfail'] = 'Пользователь не может быть Ñоздан.'; +$lang['regmailfail'] = 'Похоже еÑÑ‚ÑŒ проблема Ñ отправкой Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Â Ð¿Ð¾Ñ‡Ñ‚Ðµ. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору.'; +$lang['regbadmail'] = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.'; +$lang['regbadpass'] = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÂ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ñ‹. ПожалуйÑта, попробуйте ещё раз.'; $lang['regpwmail'] = 'Ваш пароль Ð´Ð»Ñ ÑиÑтемы «Докувики»'; $lang['reghere'] = 'У Ð²Ð°Ñ ÐµÑ‰Ñ‘ нет аккаунта? ЗарегиÑтрируйтеÑÑŒ'; $lang['profna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает изменение профилÑ'; $lang['profnochange'] = 'Изменений не было внеÑено, профиль не обновлён.'; $lang['profnoempty'] = 'Логин и Ð°Ð´Ñ€ÐµÑ Ñлектронной почты не могут быть пуÑтыми.'; $lang['profchanged'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑпешно обновлён.'; -$lang['profnodelete'] = 'Удалённый пользователь не может работать Ñ Ñтим документом'; +$lang['profnodelete'] = 'Удалённый пользователь не может работать Ñ Ñтим документом'; $lang['profdeleteuser'] = 'Удалить аккаунт'; -$lang['profdeleted'] = 'Ваш аккаунт был удален из Ñтой вики'; -$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> Ðто дейÑтвие необратимо.'; -$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен'; -$lang['proffail'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ был обновлен.'; +$lang['profdeleted'] = 'Ваш аккаунт был удалён из Ñтой вики'; +$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> +Ðто дейÑтвие необратимо.'; +$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½ÐµÂ ÑƒÑтановлен'; +$lang['proffail'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÂ Ð±Ñ‹Ð» обновлен.'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; -$lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; +$lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; $lang['resendpwd'] = 'УÑтановить новый пароль длÑ'; $lang['resendpwdmissing'] = 'Ð’Ñ‹ должны заполнить вÑе Ð¿Ð¾Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹.'; -$lang['resendpwdnouser'] = 'Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином не обнаружен в нашей базе данных.'; -$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. УбедитеÑÑŒ, что вы полноÑтью Ñкопировали ÑÑылку. '; -$lang['resendpwdconfirm'] = 'СÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð° выÑлана по Ñлектронной почте. '; -$lang['resendpwdsuccess'] = 'Ваш новый пароль был выÑлан по Ñлектронной почте.'; -$lang['license'] = 'За иÑключением Ñлучаев, когда указано иное, Ñодержимое Ñтой вики предоÑтавлÑетÑÑ Ð½Ð° уÑловиÑÑ… Ñледующей лицензии:'; -$lang['licenseok'] = 'Примечание: Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÑ Ñту Ñтраницу, вы ÑоглашаетеÑÑŒ на иÑпользование Ñвоего вклада на уÑловиÑÑ… Ñледующей лицензии:'; +$lang['resendpwdnouser'] = 'Пользователь Ñ таким логином не обнаружен в нашей базе данных.'; +$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. УбедитеÑÑŒ, что вы полноÑтью Ñкопировали ÑÑылку.'; +$lang['resendpwdconfirm'] = 'СÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð° выÑлана по Ñлектронной почте.'; +$lang['resendpwdsuccess'] = 'Ваш новый пароль был выÑлан по Ñлектронной почте.'; +$lang['license'] = 'За иÑключением Ñлучаев, когда указано иное, Ñодержимое Ñтой вики предоÑтавлÑетÑÑ Ð½Ð°Â ÑƒÑловиÑÑ… Ñледующей лицензии:'; +$lang['licenseok'] = 'Примечание: Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÑ Ñту Ñтраницу, вы ÑоглашаетеÑÑŒ на иÑпользование Ñвоего вклада на уÑловиÑÑ… Ñледующей лицензии:'; $lang['searchmedia'] = 'ПоиÑк по имени файла:'; $lang['searchmedia_in'] = 'ПоиÑк в %s'; $lang['txt_upload'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸:'; @@ -132,8 +133,8 @@ $lang['txt_overwrt'] = 'ПерезапиÑать ÑущеÑтвующ $lang['maxuploadsize'] = 'МакÑимальный размер загружаемого файла %s'; $lang['lockedby'] = 'Ð’ данный момент заблокирован:'; $lang['lockexpire'] = 'Блокировка иÑтекает в:'; -$lang['js']['willexpire'] = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.'; -$lang['js']['notsavedyet'] = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Ð’Ñ‹ дейÑтвительно хотите продолжить?'; +$lang['js']['willexpire'] = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.'; +$lang['js']['notsavedyet'] = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Вы дейÑтвительно хотите продолжить?'; $lang['js']['searchmedia'] = 'ПоиÑк файлов'; $lang['js']['keepopen'] = 'Ðе закрывать окно поÑле выбора'; $lang['js']['hidedetails'] = 'Скрыть детали'; @@ -151,17 +152,17 @@ $lang['js']['mediamedium'] = 'СреднÑÑ Ð²ÐµÑ€ÑиÑ'; $lang['js']['medialarge'] = 'ÐšÑ€ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['js']['mediaoriginal'] = 'ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['js']['medialnk'] = 'СÑылка на подробноÑти'; -$lang['js']['mediadirect'] = 'ПрÑÐ¼Ð°Ñ ÑÑылка на оригинал'; +$lang['js']['mediadirect'] = 'ПрÑÐ¼Ð°Ñ ÑÑылка на оригинал'; $lang['js']['medianolnk'] = 'Без ÑÑылки'; -$lang['js']['medianolink'] = 'Ðе давать ÑÑылку на изображение'; +$lang['js']['medianolink'] = 'Ðе давать ÑÑылку на изображение'; $lang['js']['medialeft'] = 'ВыровнÑÑ‚ÑŒ изображение по левому краю.'; $lang['js']['mediaright'] = 'ВыровнÑÑ‚ÑŒ изображение по правому краю.'; $lang['js']['mediacenter'] = 'ВыровнÑÑ‚ÑŒ изображение по центру.'; $lang['js']['medianoalign'] = 'Ðе выравнивать.'; -$lang['js']['nosmblinks'] = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.'; +$lang['js']['nosmblinks'] = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.'; $lang['js']['linkwiz'] = 'МаÑтер ÑÑылок'; $lang['js']['linkto'] = 'СÑылка на:'; -$lang['js']['del_confirm'] = 'Ð’Ñ‹ на Ñамом деле желаете удалить выбранное?'; +$lang['js']['del_confirm'] = 'Вы на Ñамом деле желаете удалить выбранное?'; $lang['js']['restore_confirm'] = 'ДейÑтвительно воÑÑтановить Ñту верÑию?'; $lang['js']['media_diff'] = 'ПроÑмотр отличий:'; $lang['js']['media_diff_both'] = 'Ñ€Ñдом'; @@ -184,20 +185,20 @@ $lang['uploadbadcontent'] = 'Содержание файла не Ñоот $lang['uploadspam'] = 'Загрузка заблокирована Ñпам-фильтром.'; $lang['uploadxss'] = 'Загрузка заблокирована по ÑоображениÑм безопаÑноÑти.'; $lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (МакÑ. %s)'; -$lang['deletesucc'] = 'Файл «%s» был удалён.'; -$lang['deletefail'] = 'Ðевозможно удалить файл «%s». Проверьте права доÑтупа к файлу.'; -$lang['mediainuse'] = 'Файл «%s» не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; +$lang['deletesucc'] = 'Файл %s был удалён.'; +$lang['deletefail'] = 'Ðевозможно удалить файл %s. Проверьте права доÑтупа к файлу.'; +$lang['mediainuse'] = 'Файл %s не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; $lang['namespaces'] = 'ПроÑтранÑтва имён'; $lang['mediafiles'] = 'ДоÑтупные файлы'; $lang['accessdenied'] = 'Ð’Ñ‹ не можете проÑмотреть Ñту Ñтраницу.'; $lang['mediausage'] = 'Ð”Ð»Ñ ÑÑылки на Ñтот файл иÑпользуйте Ñледующий ÑинтакÑиÑ:'; $lang['mediaview'] = 'ПоÑмотреть иÑходный файл'; $lang['mediaroot'] = 'корень'; -$lang['mediaupload'] = 'ЗдеÑÑŒ можно загрузить файл в текущий каталог («проÑтранÑтво имён»). Чтобы Ñоздать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми. '; +$lang['mediaupload'] = 'ЗдеÑÑŒ можно загрузить файл в текущий каталог («проÑтранÑтво имён»). Чтобы Ñоздать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми.'; $lang['mediaextchange'] = 'РаÑширение изменилоÑÑŒ Ñ .%s на .%s!'; $lang['reference'] = 'СÑылки длÑ'; -$lang['ref_inuse'] = 'Ðтот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð° Ñледующих Ñтраницах:'; -$lang['ref_hidden'] = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð° Ñтраницах, на чтение которых у Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа'; +$lang['ref_inuse'] = 'Ðтот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð°Â Ñледующих Ñтраницах:'; +$lang['ref_hidden'] = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð°Â Ñтраницах, на чтение которых ÑƒÂ Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа'; $lang['hits'] = 'ÑоответÑтвий'; $lang['quickhits'] = 'СоответÑÑ‚Ð²Ð¸Ñ Ð² названиÑÑ… Ñтраниц'; $lang['toc'] = 'Содержание'; @@ -206,9 +207,9 @@ $lang['yours'] = 'Ваша верÑиÑ'; $lang['diff'] = 'Показать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей верÑии'; $lang['diff2'] = 'Показать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ревизиÑми '; $lang['difflink'] = 'СÑылка на Ñто Ñравнение'; -$lang['diff_type'] = 'ПоÑмотреть отличиÑ'; -$lang['diff_inline'] = 'вÑтроенный'; -$lang['diff_side'] = 'бок о бок'; +$lang['diff_type'] = 'ПоÑмотреть различиÑ'; +$lang['diff_inline'] = 'внутри текÑта'; +$lang['diff_side'] = 'Ð´Ð²ÑƒÐ¼Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°Ð¼Ð¸'; $lang['diffprevrev'] = 'ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['diffnextrev'] = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['difflastrev'] = 'ПоÑледнÑÑ Ð²ÐµÑ€ÑиÑ'; @@ -313,7 +314,7 @@ $lang['i_mbfuncoverload'] = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка «Докувики» н $lang['i_permfail'] = '<code>%s</code> недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи «Докувики». Вам необходимо иÑправить ÑиÑтемные права доÑтупа Ð´Ð»Ñ Ñтой директории!'; $lang['i_confexists'] = '<code>%s</code> уже ÑущеÑтвует'; $lang['i_writeerr'] = 'Ðе удалоÑÑŒ Ñоздать <code>%s</code>. Вам необходимо проверить ÑиÑтемные права доÑтупа к файлу и директориÑм, и Ñоздать файл вручную. '; -$lang['i_badhash'] = 'dokuwiki.php не раÑпознан или изменён (Ñ…Ñш=<code>%s</code>)'; +$lang['i_badhash'] = 'dokuwiki.php не раÑпознан или изменён (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> — недопуÑтимое или пуÑтое значение'; $lang['i_success'] = 'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно. Теперь вы можете удалить файл install.php. Переходите к <a href="doku.php?id=wiki:welcome">Ñвоей новой «Докувики»</a>.'; @@ -361,7 +362,7 @@ $lang['media_perm_read'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтато $lang['media_perm_upload'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов.'; $lang['media_update'] = 'Загрузить новую верÑию'; $lang['media_restore'] = 'ВоÑÑтановить Ñту верÑию'; -$lang['media_acl_warning'] = 'Ðтот ÑпиÑок может быть неполным из-за ACL ограничений и Ñкрытых Ñтраниц.'; +$lang['media_acl_warning'] = 'Ðтот ÑпиÑок может быть неполным из-за ограничений ÑпиÑков ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа (ACL) и Ñкрытых Ñтраниц.'; $lang['currentns'] = 'Текущее проÑтранÑтво имён'; $lang['searchresult'] = 'Результаты поиÑка'; $lang['plainhtml'] = 'ПроÑтой HTML'; diff --git a/inc/lang/ru/recent.txt b/inc/lang/ru/recent.txt index aa088c734..0d4d3285a 100644 --- a/inc/lang/ru/recent.txt +++ b/inc/lang/ru/recent.txt @@ -1,5 +1,5 @@ ====== Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ====== -Ðти Ñтраницы были изменены недавно. +Следующие Ñтраницы были недавно изменены diff --git a/inc/lang/ru/subscr_list.txt b/inc/lang/ru/subscr_list.txt index 984a25eb0..d2bc91a54 100644 --- a/inc/lang/ru/subscr_list.txt +++ b/inc/lang/ru/subscr_list.txt @@ -1,6 +1,7 @@ Привет. Страницы в проÑтранÑтве имён @PAGE@ в вики @TITLE@ были изменены. + СпиÑок изменившихÑÑ Ñтраниц: -------------------------------------------------------- diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index c791bd791..d9cf1fd69 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -14,7 +14,7 @@ */ $lang['account_suffix'] = 'Ð¡ÑƒÑ„Ñ„Ð¸ÐºÑ Ð²Ð°ÑˆÐµÐ³Ð¾ аккаунта. Ðапример, <code>@my.domain.org</code>'; $lang['base_dn'] = 'Ваш базовый DN. Ðапример: <code>DC=my,DC=domain,DC=org</code>'; -$lang['domain_controllers'] = 'СпиÑок DNS-Ñерверов, разделенных запÑтой. Ðапример:<code>srv1.domain.org,srv2.domain.org</code>'; +$lang['domain_controllers'] = 'СпиÑок DNS-Ñерверов, разделённых запÑтой. Ðапример:<code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = 'Привилегированный пользователь Active Directory Ñ Ð´Ð¾Ñтупом ко вÑем оÑтальным пользовательÑким данным. ÐеобÑзательно, однако необходимо Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ñ… дейÑтвий вроде отправки почтовой подпиÑки.'; $lang['admin_password'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.'; $lang['sso'] = 'ИÑпользовать SSO (Single-Sign-On) через Kerberos или NTLM?'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 067ec9de4..0b6ad4abd 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -19,15 +19,15 @@ $lang['userfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка акка $lang['groupfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка групп. Ðапример: <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð°. Возможно, вам нужно указать <code>3</code>'; $lang['starttls'] = 'ИÑпользовать TLS-подключениÑ?'; -$lang['referrals'] = 'Следовать за referrals ?'; +$lang['referrals'] = 'Следовать за referrals?'; $lang['deref'] = 'Как раÑшифровывать пÑевдонимы?'; -$lang['binddn'] = 'DN вторичного bind пользователÑ, еÑли anonymous bind недоÑтаточно. Ðапример: <code>cn=admin, dc=my, dc=home</code>'; +$lang['binddn'] = 'DN вторичного bind-пользователÑ, еÑли anonymous bind недоÑтаточно. Ðапример: <code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['userscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке пользователей'; $lang['groupscope'] = 'Ограничить облаÑÑ‚ÑŒ поиÑка при поиÑке групп'; $lang['userkey'] = 'Ðтрибут означающий Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ; должен быть таким же как в userfilter'; $lang['groupkey'] = 'ИÑпользовать любой атрибут Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² группу (вмеÑто Ñтандартного AD groups) Ðапример из атрибута department или telephone number'; -$lang['modPass'] = 'Может ли LDAP пароль быть поменÑн через dokuwiki?'; +$lang['modPass'] = 'Может ли пароль LDAP быть изменён через «Докувики»?'; $lang['debug'] = 'Показывать дополнительную отладочную информацию при ошибках'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; @@ -35,4 +35,4 @@ $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; $lang['referrals_o_-1'] = 'иÑользовать по умолчанию'; $lang['referrals_o_0'] = 'не Ñледовать за referrals'; -$lang['referrals_o_1'] = 'Следовать за referrals'; +$lang['referrals_o_1'] = 'Ñледовать за referrals'; diff --git a/lib/plugins/authmysql/lang/ru/lang.php b/lib/plugins/authmysql/lang/ru/lang.php index 75b5613f5..e2160c375 100644 --- a/lib/plugins/authmysql/lang/ru/lang.php +++ b/lib/plugins/authmysql/lang/ru/lang.php @@ -4,8 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Takumo <9206984@mail.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.'; $lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; $lang['usernotexists'] = 'Извините, такой пользователь не ÑущеÑтвует.'; -$lang['writefail'] = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору Вики.'; +$lang['writefail'] = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору вики.'; diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php index c36d5b444..a53a57b40 100644 --- a/lib/plugins/authplain/lang/ru/lang.php +++ b/lib/plugins/authplain/lang/ru/lang.php @@ -4,7 +4,8 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; -$lang['usernotexists'] = 'Ðтот пользователь незарегиÑтрирован.'; +$lang['usernotexists'] = 'Ðтот пользователь не зарегиÑтрирован.'; $lang['writefail'] = 'Ðевозможно обновить данные пользователÑ. СвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором вики'; diff --git a/lib/plugins/config/lang/ru/intro.txt b/lib/plugins/config/lang/ru/intro.txt index f30d4c791..01cf19063 100644 --- a/lib/plugins/config/lang/ru/intro.txt +++ b/lib/plugins/config/lang/ru/intro.txt @@ -1,7 +1,7 @@ ====== ÐаÑтройки вики ====== -ЗдеÑÑŒ вы можете изменить наÑтройки Ñвоей «ДокуВики». Ð”Ð»Ñ Ñправки по поводу конкретных опций Ñмотрите [[doku>config]]. Дополнительные детали об Ñтом плагине доÑтупны здеÑÑŒ: [[doku>plugin:config]]. +ЗдеÑÑŒ вы можете изменить наÑтройки Ñвоей «Докувики». Ð”Ð»Ñ Ñправки по поводу конкретных опций Ñмотрите [[doku>config|Конфигурирование «Докувики»]]. Дополнительные детали об Ñтом плагине доÑтупны здеÑÑŒ: [[doku>plugin:config]]. -ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина. Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «ДокуВики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. +ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина. Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «Докувики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. Ðе забудьте нажать кнопку «**Сохранить**» перед тем, как покинуть Ñту Ñтраницу, иначе вÑе ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php index 57e0602f7..0bc6d8f75 100644 --- a/lib/plugins/config/lang/ru/lang.php +++ b/lib/plugins/config/lang/ru/lang.php @@ -19,6 +19,7 @@ * @author Johnny Utah <pcpa@cyberpunk.su> * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['menu'] = 'ÐаÑтройки вики'; $lang['error'] = 'ÐаÑтройки не были Ñохранены из-за ошибки в одном из значений. ПожалуйÑта, проверьте Ñвои Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ попробуйте ещё раз.<br />Ðеправильные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ обведены краÑной рамкой.'; @@ -29,7 +30,7 @@ $lang['danger'] = 'Внимание: изменение Ñтой $lang['warning'] = 'ПредоÑтережение: изменение Ñтой опции может вызвать непредÑказуемое поведение.'; $lang['security'] = 'ПредоÑтережение по безопаÑноÑти: изменение Ñтой опции может вызвать риÑк, ÑвÑзанный Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑтью.'; $lang['_configuration_manager'] = 'ÐаÑтройки вики'; -$lang['_header_dokuwiki'] = 'Параметры «ДокуВики»'; +$lang['_header_dokuwiki'] = 'Параметры «Докувики»'; $lang['_header_plugin'] = 'Параметры плагинов'; $lang['_header_template'] = 'Параметры шаблонов'; $lang['_header_undefined'] = 'Прочие параметры'; @@ -52,7 +53,7 @@ $lang['start'] = 'Ð˜Ð¼Ñ Ñтартовой Ñтраницы'; $lang['lang'] = 'Язык'; $lang['template'] = 'Шаблон'; $lang['tagline'] = 'Слоган (еÑли поддерживаетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼)'; -$lang['sidebar'] = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ, пуÑтое поле отключает боковую панель.'; +$lang['sidebar'] = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ; пуÑтое поле отключает боковую панель.'; $lang['license'] = 'Ðа уÑловиÑÑ… какой лицензии будет предоÑтавлÑÑ‚ÑŒÑÑ Ñодержимое вики?'; $lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…'; $lang['basedir'] = 'ÐšÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (например, <code>/dokuwiki/</code>). ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.'; @@ -60,14 +61,14 @@ $lang['baseurl'] = 'Корневой Ð°Ð´Ñ€ÐµÑ (URL) (напри $lang['cookiedir'] = 'Cookie директориÑ. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.'; $lang['dmode'] = 'Права Ð´Ð»Ñ Ñоздаваемых директорий'; $lang['fmode'] = 'Права Ð´Ð»Ñ Ñоздаваемых файлов'; -$lang['allowdebug'] = 'Включить отладку (отключите!)'; +$lang['allowdebug'] = 'Включить отладку. <b>Отключите, еÑли она вам не нужна!</b>'; $lang['recent'] = 'Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (кол-во)'; $lang['recent_days'] = 'Ðа Ñколько дней назад ÑохранÑÑ‚ÑŒ недавние изменениÑ'; -$lang['breadcrumbs'] = 'Ð’Ñ‹ поÑетили (кол-во)'; +$lang['breadcrumbs'] = 'Ð’Ñ‹ поÑетили (кол-во). ПоÑтавьте 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.'; $lang['youarehere'] = 'Показывать «Вы находитеÑÑŒ здеÑь»'; $lang['fullpath'] = 'Полный путь к документу'; $lang['typography'] = 'ТипографÑкие Ñимволы'; -$lang['dformat'] = 'Формат даты и времени'; +$lang['dformat'] = 'Формат даты и времени (Ñм. функцию PHP <a href="http://www.php.net/strftime">strftime</a>)'; $lang['signature'] = 'Шаблон подпиÑи'; $lang['showuseras'] = 'Что отображать при показе пользователÑ, редактировавшего Ñтраницу поÑледним'; $lang['toptoclevel'] = 'Мин. уровень в Ñодержании'; @@ -76,32 +77,32 @@ $lang['maxtoclevel'] = 'МакÑ. уровень в Ñодержани $lang['maxseclevel'] = 'МакÑ. уровень Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸'; $lang['camelcase'] = 'ИÑпользовать ВикиРегиÑÑ‚Ñ€ Ð´Ð»Ñ ÑÑылок'; $lang['deaccent'] = 'ТранÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð² именах Ñтраниц'; -$lang['useheading'] = 'Первый заголовок вмеÑто имени'; -$lang['sneaky_index'] = 'По умолчанию, «ДокуВики» показывает в индекÑе Ñтраниц вÑе проÑтранÑтва имён. Включение Ñтой опции Ñкроет проÑтранÑтва имён, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… пользователь не имеет прав чтениÑ. Ðто может привеÑти к Ñкрытию доÑтупных вложенных проÑтранÑтв имён и потере функциональноÑти индекÑа Ñтраниц при некоторых конфигурациÑÑ… прав доÑтупа.'; -$lang['hidepages'] = 'Скрыть Ñтраницы (рег. выражение)'; +$lang['useheading'] = 'Первый заголовок вмеÑто имени Ñтраницы'; +$lang['sneaky_index'] = 'По умолчанию, «Докувики» показывает в индекÑе Ñтраниц вÑе проÑтранÑтва имён. Включение Ñтой опции Ñкроет проÑтранÑтва имён, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… пользователь не имеет прав чтениÑ. Ðто может привеÑти к Ñкрытию доÑтупных вложенных проÑтранÑтв имён и потере функциональноÑти индекÑа Ñтраниц при некоторых конфигурациÑÑ… прав доÑтупа.'; +$lang['hidepages'] = 'Скрыть Ñтраницы (регулÑрное выражение)'; $lang['useacl'] = 'ИÑпользовать ÑпиÑки прав доÑтупа'; $lang['autopasswd'] = 'ÐÐ²Ñ‚Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¹'; $lang['authtype'] = 'Механизм аутентификации'; $lang['passcrypt'] = 'Метод ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ'; -$lang['defaultgroup'] = 'Группа по умолчанию'; -$lang['superuser'] = 'Суперпользователь — группа или пользователь Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доÑтупом ко вÑем Ñтраницам и функциÑм админиÑтрированиÑ, незавиÑимо от уÑтановок ACL. Перечень разделÑйте запÑтыми: user1,@group1,user2'; +$lang['defaultgroup'] = 'Группа по умолчанию. Ð’Ñе новые пользователю будут добавлÑÑ‚ÑŒÑÑ Ð²Â Ñту группу.'; +$lang['superuser'] = 'Суперпользователь — группа или пользователь Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доÑтупом ко вÑем Ñтраницам и функциÑм админиÑтрированиÑ, незавиÑимо от уÑтановок ÑпиÑков прав доÑтупа. Перечень разделÑйте запÑтыми: user1,@group1,user2'; $lang['manager'] = 'Менеджер — группа или пользователь Ñ Ð´Ð¾Ñтупом к определённым функциÑм управлениÑ. Перечень разделÑйте запÑтыми: user1,@group1,user2'; $lang['profileconfirm'] = 'Пароль Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ'; $lang['rememberme'] = 'Разрешить перманентные куки (cookies) Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° («запомнить менÑ»)'; -$lang['disableactions'] = 'Заблокировать операции «ДокуВики»'; +$lang['disableactions'] = 'Заблокировать операции «Докувики»'; $lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'ПодпиÑка/Отмена подпиÑки'; $lang['disableactions_wikicode'] = 'Показ/ÑкÑпорт иÑходного текÑта'; $lang['disableactions_profile_delete'] = 'Удалить Ñвой аккаунт'; $lang['disableactions_other'] = 'Другие операции (через запÑтую)'; -$lang['disableactions_rss'] = 'XML ÑÐ¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ (RSS)'; +$lang['disableactions_rss'] = 'XML-ÑÐ¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ (RSS)'; $lang['auth_security_timeout'] = 'Интервал Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти авторизации (Ñек.)'; $lang['securecookie'] = 'Должны ли куки (cookies), выÑтавленные через HTTPS, отправлÑÑ‚ÑŒÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ только через HTTPS. Отключите Ñту опцию в Ñлучае, когда только логин вашей вики передаётÑÑ Ñ‡ÐµÑ€ÐµÐ· SSL, а обычный проÑмотр оÑущеÑтвлÑетÑÑ Ð² небезопаÑном режиме.'; $lang['remote'] = 'Включить ÑиÑтему API Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹. Ðто позволит другим приложениÑм получить доÑтуп к вики через XML-RPC или другие механизмы.'; -$lang['remoteuser'] = 'Дать права Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ API доÑтупа пользователÑм указанным тут (разделÑÑ‚ÑŒ запÑтыми). ОÑтавьте Ñто поле пуÑтым что бы открыть доÑтуп вÑем.'; +$lang['remoteuser'] = 'Дать права Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ API-доÑтупа пользователÑм, указанным здеÑÑŒ (разделÑйте запÑтыми). ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа вÑем.'; $lang['usewordblock'] = 'Блокировать Ñпам по ключевым Ñловам'; -$lang['relnofollow'] = 'rel="nofollow" Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок'; -$lang['indexdelay'] = 'Задержка перед индекÑированием'; +$lang['relnofollow'] = 'ИÑпользовать rel="nofollow" Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок'; +$lang['indexdelay'] = 'Задержка перед индекÑированием (Ñек.)'; $lang['mailguard'] = 'Кодировать адреÑа Ñлектронной почты'; $lang['iexssprotect'] = 'ПроверÑÑ‚ÑŒ закачанные файлы на наличие потенциально опаÑного кода JavaScript или HTML'; $lang['usedraft'] = 'ÐвтоматичеÑки ÑохранÑÑ‚ÑŒ черновик во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸'; @@ -122,36 +123,36 @@ $lang['jpg_quality'] = 'КачеÑтво ÑÐ¶Ð°Ñ‚Ð¸Ñ JPG (0–100). $lang['fetchsize'] = 'МакÑимальный размер файла (в байтах), который fetch.php может Ñкачивать Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ иÑточника'; $lang['subscribers'] = 'Разрешить подпиÑку на изменениÑ'; $lang['subscribe_time'] = 'Интервал раÑÑылки подпиÑок и Ñводок (Ñек.). Должен быть меньше, чем значение, указанное в recent_days.'; -$lang['notify'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¸Ð·Ð²ÐµÑ‰ÐµÐ½Ð¸Ð¹'; -$lang['registernotify'] = 'ПоÑылать информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ'; +$lang['notify'] = 'Ð’Ñегда отправлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð±Â Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÑÑ… на Ñтот Ñлектронный адреÑ'; +$lang['registernotify'] = 'Ð’Ñегода отправлÑÑ‚ÑŒ информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ'; $lang['mailfrom'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð²Ð¸ÐºÐ¸ (От:)'; -$lang['mailprefix'] = 'ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¸Ñпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма Ñтанет темой Ñообщений'; +$lang['mailprefix'] = 'ПрефикÑ, иÑпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма, Ñтанет темой ÑообщениÑ. ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸ÐºÐ¸.'; $lang['htmlmail'] = 'ОтправлÑÑ‚ÑŒ краÑивые, но крупные HTML-многочаÑтные пиÑьма. Ð”Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ проÑÑ‚Ñ‹Ñ… текÑтовых пиÑем - отключить'; -$lang['sitemap'] = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑÑ‚ÑŒ) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.)'; -$lang['rss_type'] = 'Тип RSS'; -$lang['rss_linkto'] = 'СÑылки в RSS'; -$lang['rss_content'] = 'Что отображать в Ñтроках XML-ленты?'; +$lang['sitemap'] = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑÑ‚ÑŒ) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.). Укажите 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.'; +$lang['rss_type'] = 'Тип XML-ленты'; +$lang['rss_linkto'] = 'СÑылки в XML-ленте указывают на'; +$lang['rss_content'] = 'Что показывать в XML-ленте?'; $lang['rss_update'] = 'Интервал Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ XML-ленты (Ñек.)'; $lang['rss_show_summary'] = 'Показывать краткую выдержку в заголовках XML-ленты'; -$lang['rss_media'] = 'Какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть отображены в XML?'; -$lang['updatecheck'] = 'ПроверÑÑ‚ÑŒ наличие обновлений и предупреждений о безопаÑноÑти? Ð”Ð»Ñ Ñтого «ДокуВики» потребуетÑÑ ÑвÑзыватьÑÑ Ñ Ñайтом <a href="http://www.splitbrain.org/">splitbrain.org</a>.'; +$lang['rss_media'] = 'Какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть отображены в XML-ленте?'; +$lang['updatecheck'] = 'ПроверÑÑ‚ÑŒ наличие обновлений и предупреждений о безопаÑноÑти? Ð”Ð»Ñ Ñтого «Докувики» потребуетÑÑ ÑвÑзыватьÑÑ Ñ update.dokuwiki.org.'; $lang['userewrite'] = 'Удобочитаемые адреÑа (URL)'; -$lang['useslash'] = 'ИÑпользовать ÑлÑш'; +$lang['useslash'] = 'ИÑпользовать ÑлÑш в URL'; $lang['sepchar'] = 'Разделитель Ñлов в имени Ñтраницы'; $lang['canonical'] = 'Полные каноничеÑкие адреÑа (URL)'; $lang['fnencode'] = 'Метод ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñ‘Ð½ файлов, запиÑанных не ASCII-Ñимволами.'; -$lang['autoplural'] = 'ÐвтоматичеÑкое мн. чиÑло'; +$lang['autoplural'] = 'ПроверÑÑ‚ÑŒ можеÑтвенную форму имени Ñтраницы в ÑÑылках'; $lang['compression'] = 'Метод ÑÐ¶Ð°Ñ‚Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð½Ñ‹Ñ… файлов'; $lang['gzip_output'] = 'ИÑпользовать gzip-Ñжатие Ð´Ð»Ñ xhtml'; $lang['compress'] = 'Сжимать файлы CSS и javascript'; $lang['cssdatauri'] = 'Размер в байтах до которого изображениÑ, указанные в CSS-файлах, должны быть вÑтроены прÑмо в таблицу Ñтилей, Ð´Ð»Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ Ð¸Ð·Ð±Ñ‹Ñ‡Ñ‚Ð¾Ð½Ñ‹Ñ… HTTP-запроÑов. Ðтот метод не будет работать в IE верÑии 7 и ниже! УÑтановка от <code>400</code> до <code>600</code> байт ÑвлÑетÑÑ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ð¼ показателем. УÑтановите <code>0</code>, чтобы отключить.'; -$lang['send404'] = 'ПоÑылать «HTTP404/Page Not Found»'; +$lang['send404'] = 'ПоÑылать «HTTP 404/Страница не найдена» Ð´Ð»Ñ Ð½ÐµÑущеÑтвующих Ñтраниц'; $lang['broken_iua'] = 'Возможно, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ignore_user_abort не работает в вашей ÑиÑтеме? Ðто может привеÑти к потере функциональноÑти индекÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð¸Ñка. Ðта проблема приÑутÑтвует, например, в IIS+PHP/CGI. Ð”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите <a href="http://bugs.splitbrain.org/?do=details&task_id=852">баг 852</a>.'; $lang['xsendfile'] = 'ИÑпользуете заголовок X-Sendfile Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов на веб-Ñервер? Ваш веб-Ñервер должен поддерживать Ñто.'; $lang['renderer_xhtml'] = 'Обработчик оÑновного (xhtml) вывода вики'; -$lang['renderer__core'] = '%s (Ñдро dokuwiki)'; +$lang['renderer__core'] = '%s (Ñдро «Докувики»)'; $lang['renderer__plugin'] = '%s (плагин)'; -$lang['dnslookups'] = 'DokuWiki ищет DNS имена пользователей редактирующих Ñтраницы. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ DNS Ñервера или он работает медленно, рекомендуем отключить Ñту опцию.'; +$lang['dnslookups'] = '«Докувики» ищет DNS-имена пользователей, редактирующих Ñтраницы. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ DNS-Ñервера или он работает медленно, рекомендуем отключить Ñту опцию.'; $lang['proxy____host'] = 'proxy-адреÑ'; $lang['proxy____port'] = 'proxy-порт'; $lang['proxy____user'] = 'proxy-Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; @@ -166,15 +167,15 @@ $lang['ftp____pass'] = 'ftp-пароль'; $lang['ftp____root'] = 'ftp-ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ'; $lang['license_o_'] = 'Ðе выбрано'; $lang['typography_o_0'] = 'нет'; -$lang['typography_o_1'] = 'Только двойные кавычки'; -$lang['typography_o_2'] = 'Ð’Ñе кавычки (может не вÑегда работать)'; +$lang['typography_o_1'] = 'только двойные кавычки'; +$lang['typography_o_2'] = 'вÑе кавычки (может не вÑегда работать)'; $lang['userewrite_o_0'] = '(нет)'; $lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'ÑредÑтвами «ДокуВики»'; +$lang['userewrite_o_2'] = 'ÑредÑтвами «Докувики»'; $lang['deaccent_o_0'] = 'отключить'; $lang['deaccent_o_1'] = 'убирать только диакр. знаки'; $lang['deaccent_o_2'] = 'Ð¿Ð¾Ð»Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½ÑлитерациÑ'; -$lang['gdlib_o_0'] = 'LibGD недоÑтупна'; +$lang['gdlib_o_0'] = 'GD Lib недоÑтупна'; $lang['gdlib_o_1'] = 'верÑÐ¸Ñ 1.x'; $lang['gdlib_o_2'] = 'автоопределение'; $lang['rss_type_o_rss'] = 'RSS 0.91'; @@ -182,10 +183,10 @@ $lang['rss_type_o_rss1'] = 'RSS 1.0'; $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; -$lang['rss_content_o_abstract'] = 'ÐбÑтрактный'; -$lang['rss_content_o_diff'] = 'Объединённый diff'; +$lang['rss_content_o_abstract'] = 'абÑтрактный'; +$lang['rss_content_o_diff'] = 'объединённый diff'; $lang['rss_content_o_htmldiff'] = 'HTML-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° diff'; -$lang['rss_content_o_html'] = 'Полное Ñодержимое HTML-Ñтраницы'; +$lang['rss_content_o_html'] = 'полное Ñодержимое HTML-Ñтраницы'; $lang['rss_linkto_o_diff'] = 'Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей'; $lang['rss_linkto_o_page'] = 'текÑÑ‚ Ñтраницы'; $lang['rss_linkto_o_rev'] = 'иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº'; @@ -194,16 +195,16 @@ $lang['compression_o_0'] = 'без ÑжатиÑ'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; $lang['xsendfile_o_0'] = 'не иÑпользуетÑÑ'; -$lang['xsendfile_o_1'] = 'Проприетарный lighttpd-заголовок (перед релизом 1.5)'; +$lang['xsendfile_o_1'] = 'Проприетарный lighttpd-заголовок (до релиза 1.5)'; $lang['xsendfile_o_2'] = 'Стандартный заголовок X-Sendfile'; $lang['xsendfile_o_3'] = 'Проприетарный заголовок Nginx X-Accel-Redirect'; -$lang['showuseras_o_loginname'] = 'Логин'; -$lang['showuseras_o_username'] = 'Полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; -$lang['showuseras_o_username_link'] = 'Полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº интервики-ÑÑылка'; -$lang['showuseras_o_email'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в шифрованном виде (Ñм. mailguard)'; -$lang['showuseras_o_email_link'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в виде ÑÑылки mailto:'; -$lang['useheading_o_0'] = 'Ðикогда'; -$lang['useheading_o_navigation'] = 'Только навигациÑ'; -$lang['useheading_o_content'] = 'Только Ñодержимое вики'; -$lang['useheading_o_1'] = 'Ð’Ñегда'; +$lang['showuseras_o_loginname'] = 'логин'; +$lang['showuseras_o_username'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; +$lang['showuseras_o_username_link'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº интервики-ÑÑылка'; +$lang['showuseras_o_email'] = 'Ð°Ð´Ñ€ÐµÑ Ñлектропочты в шифрованном виде (Ñм. mailguard)'; +$lang['showuseras_o_email_link'] = 'Ð°Ð´Ñ€ÐµÑ Ñлектропочты в виде ÑÑылки mailto:'; +$lang['useheading_o_0'] = 'никогда'; +$lang['useheading_o_navigation'] = 'только в навигации'; +$lang['useheading_o_content'] = 'только в Ñодержимом вики'; +$lang['useheading_o_1'] = 'вÑегда'; $lang['readdircache'] = 'МакÑимальное Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ кÑша readdir (Ñек.)'; diff --git a/lib/plugins/extension/lang/ru/intro_install.txt b/lib/plugins/extension/lang/ru/intro_install.txt index 7b8ac661b..0c555aee2 100644 --- a/lib/plugins/extension/lang/ru/intro_install.txt +++ b/lib/plugins/extension/lang/ru/intro_install.txt @@ -1 +1 @@ -ЗдеÑÑŒ вы можете ÑамоÑтоÑтельно уÑтановить плагины и шаблоны, загрузив их или предоÑтавив прÑмой URL Ð´Ð»Ñ ÑкачиваниÑ. \ No newline at end of file +ЗдеÑÑŒ вы можете ÑамоÑтоÑтельно уÑтановить плагины и шаблоны, загрузив их или предоÑтавив прÑмой URL Ð´Ð»Ñ ÑкачиваниÑ. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_plugins.txt b/lib/plugins/extension/lang/ru/intro_plugins.txt index c5ea9e0ec..547ca7184 100644 --- a/lib/plugins/extension/lang/ru/intro_plugins.txt +++ b/lib/plugins/extension/lang/ru/intro_plugins.txt @@ -1 +1 @@ -Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file +Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_search.txt b/lib/plugins/extension/lang/ru/intro_search.txt index 3c16748ba..609985bf4 100644 --- a/lib/plugins/extension/lang/ru/intro_search.txt +++ b/lib/plugins/extension/lang/ru/intro_search.txt @@ -1 +1 @@ -Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте ввиду, что уÑтановка Ñтороннего кода может предÑтавлÑÑ‚ÑŒ **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file +Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте в виду, что уÑтановка Ñтороннего кода может предÑтавлÑÑ‚ÑŒ **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_templates.txt b/lib/plugins/extension/lang/ru/intro_templates.txt index 787b32fa3..a71ad6737 100644 --- a/lib/plugins/extension/lang/ru/intro_templates.txt +++ b/lib/plugins/extension/lang/ru/intro_templates.txt @@ -1 +1 @@ -Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ Ð² [[?do=admin&page=config|наÑтройках вики]] \ No newline at end of file +Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ в [[?do=admin&page=config|наÑтройках вики]] \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 746af3ef1..238d44ebb 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -22,7 +22,7 @@ $lang['alreadydisabled'] = 'Ðто дополнение уже отклю $lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; $lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; $lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; -$lang['btn_info'] = 'Отобразить доп. информацию'; +$lang['btn_info'] = 'Подробнее'; $lang['btn_update'] = 'Обновить'; $lang['btn_uninstall'] = 'Удалить'; $lang['btn_enable'] = 'Включить'; @@ -31,40 +31,40 @@ $lang['btn_install'] = 'УÑтановить'; $lang['btn_reinstall'] = 'ПереуÑтановить'; $lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; $lang['js']['display_viewoptions'] = 'Показать как:'; -$lang['js']['display_enabled'] = 'включено'; -$lang['js']['display_disabled'] = 'отключено'; +$lang['js']['display_enabled'] = 'включён'; +$lang['js']['display_disabled'] = 'отключён'; $lang['js']['display_updatable'] = 'обновление'; $lang['search_for'] = 'ПоиÑк дополнениÑ:'; $lang['search'] = 'Ðайти'; -$lang['extensionby'] = '<strong>%s</strong> — %s'; +$lang['extensionby'] = '<strong>%s</strong> %s'; $lang['screenshot'] = 'Скриншот: %s'; $lang['popularity'] = 'ПопулÑрноÑÑ‚ÑŒ: %s%%'; $lang['homepage_link'] = 'ОпиÑание'; $lang['bugs_features'] = 'Баг-трекер'; $lang['tags'] = 'Метки:'; $lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; -$lang['installed'] = 'УÑтановлено:'; -$lang['downloadurl'] = 'Скачать:'; -$lang['repository'] = 'Репозиторий:'; +$lang['installed'] = 'УÑтановлен'; +$lang['downloadurl'] = 'URL ÑкачиваниÑ'; +$lang['repository'] = 'Репозиторий'; $lang['unknown'] = '<em>неизвеÑтно</em>'; -$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; -$lang['install_date'] = 'ПоÑл. обновление:'; -$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['compatible'] = 'СовмеÑтим Ñ:'; -$lang['depends'] = 'ЗавиÑит от:'; -$lang['similar'] = 'Похож на:'; -$lang['conflicts'] = 'Конфликтует Ñ:'; +$lang['installed_version'] = 'ВерÑиÑ'; +$lang['install_date'] = 'Обновлено'; +$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ'; +$lang['compatible'] = 'СовмеÑтимоÑÑ‚ÑŒ'; +$lang['depends'] = 'ЗавиÑит от'; +$lang['similar'] = 'Похож на'; +$lang['conflicts'] = 'Конфликтует Ñ'; $lang['donate'] = 'ÐравитÑÑ?'; $lang['donate_action'] = 'Купить автору кофе!'; $lang['repo_retry'] = 'Повторить'; -$lang['provides'] = 'ПредоÑтавлÑет:'; -$lang['status'] = 'СоÑтоÑние:'; -$lang['status_installed'] = 'уÑтановлено'; -$lang['status_not_installed'] = 'не уÑтановлено'; -$lang['status_protected'] = 'защищено'; -$lang['status_enabled'] = 'включено'; -$lang['status_disabled'] = 'отключено'; -$lang['status_unmodifiable'] = 'неизменÑемо'; +$lang['provides'] = 'ПредоÑтавлÑет'; +$lang['status'] = 'СтатуÑ'; +$lang['status_installed'] = 'уÑтановлен'; +$lang['status_not_installed'] = 'не уÑтановлен'; +$lang['status_protected'] = 'защищён'; +$lang['status_enabled'] = 'включён'; +$lang['status_disabled'] = 'отключён'; +$lang['status_unmodifiable'] = 'неизменÑем'; $lang['status_plugin'] = 'плагин'; $lang['status_template'] = 'шаблон'; $lang['status_bundled'] = 'в комплекте'; @@ -82,19 +82,19 @@ $lang['security_issue'] = '<strong>Проблема безопаÑÐ½Ð¾Ñ $lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; $lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s'; $lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s'; -$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; -$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; +$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑÑ‚ÑŒ дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; +$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; $lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; $lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; -$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; -$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; -$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² не доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; +$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; +$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; $lang['git'] = 'Ðто дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; -$lang['auth'] = 'Ðтот auth плагин не включен в конфигурации, подумайте о его отключении'; -$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа:'; -$lang['install_upload'] = 'Скачать дополнение:'; -$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org и также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; -$lang['nossl'] = 'Ваша PHP ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL поддержки. Ðто поломает Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… DokuWiki плагинов и дополнений.'; +$lang['auth'] = 'Ðтот auth-плагин не включён в конфигурации, подумайте об его отключении'; +$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа'; +$lang['install_upload'] = 'Загрузить дополнение'; +$lang['repo_error'] = 'Сайт Ñ плагинами недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑÑ‚ÑŒ доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; +$lang['nossl'] = 'Ваша PHP-ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL-поддержки. Ðто нарушит Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… дополнений.'; diff --git a/lib/plugins/styling/lang/ru/intro.txt b/lib/plugins/styling/lang/ru/intro.txt index 39a09c0e1..3a0141149 100644 --- a/lib/plugins/styling/lang/ru/intro.txt +++ b/lib/plugins/styling/lang/ru/intro.txt @@ -1 +1 @@ -Ðтот инÑтрумент позволÑет изменÑÑ‚ÑŒ Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð² файле конфигурации и защищены от ÑброÑа при обновлении. +Ðтот инÑтрумент позволÑет изменÑÑ‚ÑŒ Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð²Â Ñ„Ð°Ð¹Ð»Ðµ конфигурации и защищены от ÑброÑа при обновлении. diff --git a/lib/plugins/styling/lang/ru/lang.php b/lib/plugins/styling/lang/ru/lang.php index 1c2dfa569..beda17619 100644 --- a/lib/plugins/styling/lang/ru/lang.php +++ b/lib/plugins/styling/lang/ru/lang.php @@ -1,7 +1,8 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author RainbowSpike <1@2.ru> */ $lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; diff --git a/lib/tpl/dokuwiki/lang/ru/lang.php b/lib/tpl/dokuwiki/lang/ru/lang.php index 09492cda7..66066b13c 100644 --- a/lib/tpl/dokuwiki/lang/ru/lang.php +++ b/lib/tpl/dokuwiki/lang/ru/lang.php @@ -4,11 +4,13 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['__background_site__'] = 'Цвет Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ³Ð¾ фона (за окном Ñодержимого)'; $lang['__link__'] = 'ОÑновной цвет ÑÑылок'; -$lang['__existing__'] = 'Цвет ÑущеÑтвующих ÑÑылок'; -$lang['__missing__'] = 'Цвет неÑущеÑтвующих ÑÑылок'; +$lang['__existing__'] = 'Цвет ÑÑылок на ÑущеÑтвующие Ñтраницы'; +$lang['__missing__'] = 'Цвет ÑÑылок на неÑущеÑтвующие Ñтраницы'; $lang['__site_width__'] = 'Ширина вÑего Ñайта (любые CSS-единицы)'; -$lang['__sidebar_width__'] = 'Ширина Ñайдбара, еÑли еÑÑ‚ÑŒ (любые CSS-единицы)'; -$lang['__tablet_width__'] = 'Переключать Ñайт в планшетный вид ниже ширины'; +$lang['__sidebar_width__'] = 'Ширина боковой панели, еÑли еÑÑ‚ÑŒ (любые CSS-единицы)'; +$lang['__tablet_width__'] = 'Переключать Ñайт в планшетный вид ниже ширины'; +$lang['__phone_width__'] = 'Переключать Ñайт в мобильный вид ниже ширины'; diff --git a/lib/tpl/dokuwiki/lang/ru/style.txt b/lib/tpl/dokuwiki/lang/ru/style.txt new file mode 100644 index 000000000..94f0a5d0d --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ru/style.txt @@ -0,0 +1 @@ +ЕÑли вы хотите изменить логотип, проÑто иÑпользуйте «Управление медиафайлами» Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файла logo.png в корневое проÑтранÑтво имён или wiki, и тогда он будет иÑпользоватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Туда же вы можете загрузить favicon.ico. ЕÑли ÑƒÂ Ð²Ð°Ñ Â«Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ» вики, рекомендуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ права на «чтение» в ÑпиÑках ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑтранÑтва имён wiki (или корневое), иначе логотип не будет показыватьÑÑ Ð½ÐµÐ·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²ÑˆÐ¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм. \ No newline at end of file -- GitLab From 97c7326722ac7ab152ebbaadbc272bdf863000cc Mon Sep 17 00:00:00 2001 From: polyzen <polycitizen@gmail.com> Date: Mon, 17 Aug 2015 09:46:07 -0400 Subject: [PATCH 358/440] update Creative Commons licenses to 4.0. fixes #1286 https://wiki.creativecommons.org/wiki/License_versions https://wiki.creativecommons.org/wiki/Frequently_Asked_Questions#Why_should_I_use_the_latest_version_of_the_Creative_Commons_licenses.3F --- conf/license.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/conf/license.php b/conf/license.php index 89728ab57..30d409e2e 100644 --- a/conf/license.php +++ b/conf/license.php @@ -14,23 +14,23 @@ $license['publicdomain'] = array( 'url' => 'http://creativecommons.org/licenses/publicdomain/', ); $license['cc-by'] = array( - 'name' => 'CC Attribution 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by/3.0/', + 'name' => 'CC Attribution 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by/4.0/', ); $license['cc-by-sa'] = array( - 'name' => 'CC Attribution-Share Alike 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-sa/3.0/', + 'name' => 'CC Attribution-Share Alike 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-sa/4.0/', ); $license['gnufdl'] = array( 'name' => 'GNU Free Documentation License 1.3', 'url' => 'http://www.gnu.org/licenses/fdl-1.3.html', ); $license['cc-by-nc'] = array( - 'name' => 'CC Attribution-Noncommercial 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-nc/3.0/', + 'name' => 'CC Attribution-Noncommercial 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-nc/4.0/', ); $license['cc-by-nc-sa'] = array( - 'name' => 'CC Attribution-Noncommercial-Share Alike 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-nc-sa/3.0/', + 'name' => 'CC Attribution-Noncommercial-Share Alike 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-nc-sa/4.0/', ); -- GitLab From 67d812e06da123896276e7b9f3e29544cc956602 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Mon, 7 Sep 2015 19:57:56 +0200 Subject: [PATCH 359/440] Fixed undefined offset on $last_ope --- inc/fulltext.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/fulltext.php b/inc/fulltext.php index d6cddc566..a727a8b53 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -701,7 +701,7 @@ function ft_queryParser($Indexer, $query){ if (preg_match($ope_regex, $token)) { // operator $last_ope = end($ope_stack); - while ($ope_precedence[$token] <= $ope_precedence[$last_ope] && $last_ope != '(') { + while ($last_ope !== false && $ope_precedence[$token] <= $ope_precedence[$last_ope] && $last_ope != '(') { $parsed_ary[] = array_pop($ope_stack); $last_ope = end($ope_stack); } -- GitLab From 70bef37a06d0f40fea00af484aeebf1c1a2e5df3 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Tue, 8 Sep 2015 09:29:42 +0200 Subject: [PATCH 360/440] Undefined offset, initialize as null --- lib/plugins/config/settings/config.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 9d0ad2c4e..8f2e19e2a 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -101,7 +101,12 @@ if (!class_exists('configuration')) { } $this->setting[$key] = new $class($key,$param); - $this->setting[$key]->initialize($default[$key],$local[$key],$protected[$key]); + + $d = array_key_exists($key, $default) ? $default[$key] : null; + $l = array_key_exists($key, $local) ? $local[$key] : null; + $p = array_key_exists($key, $protected) ? $protected[$key] : null; + + $this->setting[$key]->initialize($d,$l,$p); } $this->_loaded = true; -- GitLab From 5c97ad3aac41a6dd244317211866ce1f053e0176 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Tue, 8 Sep 2015 09:41:01 +0200 Subject: [PATCH 361/440] Fixed undefined errors --- lib/exe/js.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/exe/js.php b/lib/exe/js.php index 16d22daf2..7a956b7c9 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -173,7 +173,7 @@ function js_load($file){ // is it a include_once? if($match[1]){ $base = utf8_basename($ifile); - if($loaded[$base]){ + if(array_key_exists($base, $loaded) && $loaded[$base] === true){ $data = str_replace($match[0], '' ,$data); continue; } @@ -419,9 +419,9 @@ function js_compress($s){ // Only consider deleting whitespace if the signs before and after // are not equal and are not an operator which may not follow itself. - if ((!$lch || $s[$i+1] == ' ') + if (isset($s[$i+1]) && ((!$lch || $s[$i+1] == ' ') || $lch != $s[$i+1] - || strpos($ops,$s[$i+1]) === false) { + || strpos($ops,$s[$i+1]) === false)) { // leading spaces if($i+1 < $slen && (strpos($chars,$s[$i+1]) !== false)){ $i = $i + 1; -- GitLab From a8cf30effe4814a627768fc14485ebbd4161faa1 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Tue, 8 Sep 2015 11:24:53 +0200 Subject: [PATCH 362/440] Prevent undefined error by checking on slen --- lib/exe/js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/exe/js.php b/lib/exe/js.php index 7a956b7c9..e850218cf 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -419,7 +419,7 @@ function js_compress($s){ // Only consider deleting whitespace if the signs before and after // are not equal and are not an operator which may not follow itself. - if (isset($s[$i+1]) && ((!$lch || $s[$i+1] == ' ') + if ($i+1 < $slen && ((!$lch || $s[$i+1] == ' ') || $lch != $s[$i+1] || strpos($ops,$s[$i+1]) === false)) { // leading spaces -- GitLab From e1e937e53b9265d5199107e855dccde1117b280c Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Thu, 10 Sep 2015 15:47:27 +0200 Subject: [PATCH 363/440] sort admin plugins alphabetically Sorting by the sort number is too confusing since those are assigned independently by different authors --- inc/html.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 24d108ea4..d768022ec 100644 --- a/inc/html.php +++ b/inc/html.php @@ -2116,7 +2116,17 @@ function html_admin(){ // print the rest as sorted list if(count($menu)){ - usort($menu, 'p_sort_modes'); + // sort by name, then sort + usort( + $menu, + function ($a, $b) { + $strcmp = strcasecmp($a['prompt'], $b['prompt']); + if($strcmp != 0) return $strcmp; + if($a['sort'] == $b['sort']) return 0; + return ($a['sort'] < $b['sort']) ? -1 : 1; + } + ); + // output the menu ptln('<div class="clearer"></div>'); print p_locale_xhtml('adminplugins'); -- GitLab From 8e72a512e7101b37d40bef012f1e717131622a91 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Thu, 10 Sep 2015 16:28:30 +0200 Subject: [PATCH 364/440] don't delete valid translations #1384 --- data/deleted.files | 58 ---------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/data/deleted.files b/data/deleted.files index 68fad3cda..14fd785a0 100644 --- a/data/deleted.files +++ b/data/deleted.files @@ -228,19 +228,6 @@ inc/geshi/xpp.php inc/geshi/yaml.php inc/geshi/z80.php inc/geshi/zxbasic.php -inc/lang/ku/admin.txt -inc/lang/ku/denied.txt -inc/lang/ku/editrev.txt -inc/lang/ku/locked.txt -inc/lang/ku/login.txt -inc/lang/ku/mailtext.txt -inc/lang/ku/norev.txt -inc/lang/ku/password.txt -inc/lang/ku/read.txt -inc/lang/ku/register.txt -inc/lang/ku/revisions.txt -inc/lang/ku/showrev.txt -inc/lang/ku/stopwords.txt lib/images/interwiki/coral.gif lib/images/interwiki/dokubug.gif lib/images/interwiki/sb.gif @@ -250,25 +237,6 @@ lib/scripts/tw-sack.js # removed in 2014-05-05 lib/images/fileicons/audio.png -lib/plugins/acl/lang/hi/lang.php -lib/plugins/acl/lang/id-ni/lang.php -lib/plugins/acl/lang/lb/lang.php -lib/plugins/acl/lang/ms/lang.php -lib/plugins/authad/lang/lv/settings.php -lib/plugins/authldap/lang/lv/settings.php -lib/plugins/authmysql/lang/fi/settings.php -lib/plugins/authmysql/lang/lv/settings.php -lib/plugins/authpgsql/lang/fi/settings.php -lib/plugins/authpgsql/lang/it/settings.php -lib/plugins/authpgsql/lang/lv/settings.php -lib/plugins/authpgsql/lang/pl/settings.php -lib/plugins/config/lang/hr/lang.php -lib/plugins/config/lang/id/lang.php -lib/plugins/config/lang/kk/lang.php -lib/plugins/config/lang/lb/lang.php -lib/plugins/config/lang/mk/lang.php -lib/plugins/config/lang/ms/lang.php -lib/plugins/config/lang/vi/lang.php lib/plugins/plugin/admin.php lib/plugins/plugin/classes/ap_delete.class.php lib/plugins/plugin/classes/ap_download.class.php @@ -380,31 +348,6 @@ lib/plugins/plugin/lang/zh/admin_plugin.txt lib/plugins/plugin/lang/zh/lang.php lib/plugins/plugin/plugin.info.txt lib/plugins/plugin/style.css -lib/plugins/popularity/lang/et/lang.php -lib/plugins/popularity/lang/hr/lang.php -lib/plugins/popularity/lang/id/lang.php -lib/plugins/popularity/lang/kk/lang.php -lib/plugins/popularity/lang/lb/lang.php -lib/plugins/popularity/lang/mk/lang.php -lib/plugins/popularity/lang/ms/lang.php -lib/plugins/popularity/lang/vi/lang.php -lib/plugins/revert/lang/af/lang.php -lib/plugins/revert/lang/hi/lang.php -lib/plugins/revert/lang/hr/lang.php -lib/plugins/revert/lang/id-ni/lang.php -lib/plugins/revert/lang/id/lang.php -lib/plugins/revert/lang/kk/lang.php -lib/plugins/revert/lang/lb/lang.php -lib/plugins/revert/lang/lt/lang.php -lib/plugins/revert/lang/mk/lang.php -lib/plugins/revert/lang/ms/lang.php -lib/plugins/revert/lang/vi/lang.php -lib/plugins/usermanager/lang/hi/lang.php -lib/plugins/usermanager/lang/hr/lang.php -lib/plugins/usermanager/lang/id-ni/lang.php -lib/plugins/usermanager/lang/lb/lang.php -lib/plugins/usermanager/lang/ms/lang.php -lib/plugins/usermanager/lang/vi/lang.php # removed in 2013-11-18 lib/images/arrow_down.gif @@ -689,7 +632,6 @@ lib/scripts/domTT.js # removed in 2006-11-06 inc/admin_acl.php -inc/lang/lt/stopwords.txt inc/magpie inc/magpie/rss_cache.inc inc/magpie/rss_fetch.inc -- GitLab From 0ec7373d969df1d36195ad51eb833b5c421c3a58 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Fri, 11 Sep 2015 15:15:28 +0200 Subject: [PATCH 365/440] Fixed undefined error in html_denied() --- inc/html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 24d108ea4..212d9507a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -74,7 +74,7 @@ function html_login(){ function html_denied() { print p_locale_xhtml('denied'); - if(!$_SERVER['REMOTE_USER']){ + if(!isset($_SERVER['REMOTE_USER'])){ html_login(); } } -- GitLab From c2243b78c7d532ea835c62d83b686a4cc2fb01bf Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg <info@mariusvw.com> Date: Wed, 16 Sep 2015 14:35:47 +0200 Subject: [PATCH 366/440] Use empty instead of isset, due REMOTE_USER should not be empty. --- inc/html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/html.php b/inc/html.php index 212d9507a..b61a5654b 100644 --- a/inc/html.php +++ b/inc/html.php @@ -74,7 +74,7 @@ function html_login(){ function html_denied() { print p_locale_xhtml('denied'); - if(!isset($_SERVER['REMOTE_USER'])){ + if(empty($_SERVER['REMOTE_USER'])){ html_login(); } } -- GitLab From 5b5713770737b5a36a7cc55b86dd0e6fc0c61b78 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 25 Sep 2015 14:24:39 +0200 Subject: [PATCH 367/440] add convenience function for empty check without 0 This allows to quickly check if a variable is empty but keeps strings and numbers evaluating to zero. --- _test/tests/inc/common_blank.test.php | 50 +++++++++++++++++++++++++++ inc/common.php | 19 ++++++++++ 2 files changed, 69 insertions(+) create mode 100644 _test/tests/inc/common_blank.test.php diff --git a/_test/tests/inc/common_blank.test.php b/_test/tests/inc/common_blank.test.php new file mode 100644 index 000000000..e6d39a479 --- /dev/null +++ b/_test/tests/inc/common_blank.test.php @@ -0,0 +1,50 @@ +<?php + +class common_blank_test extends DokuWikiTest { + + private $nope; + + function test_blank() { + $tests = array( + // these are not blank + array('string', false), + array(1, false), + array(1.0, false), + array(0xff, false), + array(array('something'), false), + + // these aren't either! + array('0', false), + array(' ', false), + array('0.0', false), + array(0, false), + array(0.0, false), + array(0x00, false), + array(true, false), + + // but these are + array('', true), + array(array(), true), + array(null, true), + array(false, true), + array("\0", true) + ); + + foreach($tests as $test) { + $this->assertEquals($test[1], blank($test[0]), "using " . var_export($test[0], true)); + } + } + + function test_trim() { + $blank = " "; + $this->assertFalse(blank($blank)); + $this->assertTrue(blank($blank, true)); + } + + function test_undefindex() { + $undef = array(); + $this->assertTrue(blank($undef['nope'])); + $this->assertTrue(blank($this->nope)); + } + +} diff --git a/inc/common.php b/inc/common.php index 17facd249..55916dc05 100644 --- a/inc/common.php +++ b/inc/common.php @@ -30,6 +30,25 @@ function hsc($string) { return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } +/** + * Checks if the given input is blank + * + * This is similar to empty() but will return false for "0". + * + * @param $in + * @param bool $trim Consider a string of whitespace to be blank + * @return bool + */ +function blank(&$in, $trim = false) { + if(!isset($in)) return true; + if(is_null($in)) return true; + if(is_array($in)) return empty($in); + if($in === "\0") return true; + if($trim && trim($in) === '') return true; + if(strlen($in) > 0) return false; + return empty($in); +} + /** * print a newline terminated string * -- GitLab From ddd88cdd2debd67560398eb86ea0e43901939c4e Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Fri, 25 Sep 2015 16:58:26 +0100 Subject: [PATCH 368/440] improve blank() unit tests --- _test/tests/inc/common_blank.test.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/_test/tests/inc/common_blank.test.php b/_test/tests/inc/common_blank.test.php index e6d39a479..9df35936a 100644 --- a/_test/tests/inc/common_blank.test.php +++ b/_test/tests/inc/common_blank.test.php @@ -36,15 +36,17 @@ class common_blank_test extends DokuWikiTest { } function test_trim() { - $blank = " "; - $this->assertFalse(blank($blank)); - $this->assertTrue(blank($blank, true)); + $whitespace = " \t\r\n"; + $this->assertFalse(blank($whitespace), "using default \$trim value"); + $this->assertFalse(blank($whitespace, false), "using \$trim = false"); + $this->assertTrue(blank($whitespace, true), "using \$trim = true"); } - function test_undefindex() { + function test_undefined() { $undef = array(); - $this->assertTrue(blank($undef['nope'])); - $this->assertTrue(blank($this->nope)); + $this->assertTrue(blank($var), "using undefined/unitialised variable"); + $this->assertTrue(blank($undef['nope']), "using undefined array index"); + $this->assertTrue(blank($this->nope), "using unset object property"); } } -- GitLab From f0a15b090f12df8667df748cdc0ba2bc8c6fca9d Mon Sep 17 00:00:00 2001 From: Christopher Smith <chris@jalakai.co.uk> Date: Mon, 12 Oct 2015 18:58:00 +0100 Subject: [PATCH 369/440] minor grammar correction in a comment --- lib/plugins/config/settings/config.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 9d0ad2c4e..fd1f1ae70 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -1219,7 +1219,7 @@ if (!class_exists('setting_multicheckbox')) { * Build html for label and input of setting * * @param DokuWiki_Plugin $plugin object of config plugin - * @param bool $echo true: show inputted value, when error occurred, otherwise the stored setting + * @param bool $echo true: show input value, when error occurred, otherwise the stored setting * @return string[] with content array(string $label_html, string $input_html) */ function html(&$plugin, $echo=false) { -- GitLab From 234b5c9ade85b21c5aaf3ce19ea0f157e27fe249 Mon Sep 17 00:00:00 2001 From: Bernhard Liebl <bernhard.liebl@rz.uni-regensburg.de> Date: Fri, 16 Oct 2015 13:23:47 +0200 Subject: [PATCH 370/440] Fix for PHP 7, more debugging output --- lib/plugins/authldap/auth.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index 247a0fec2..90ec770e9 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -463,9 +463,12 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { * @return string */ protected function _filterEscape($string) { - return preg_replace( - '/([\x00-\x1F\*\(\)\\\\])/e', - '"\\\\\".join("",unpack("H2","$1"))', + // see https://github.com/adldap/adLDAP/issues/22 + return preg_replace_callback( + '/([\x00-\x1F\*\(\)\\\\])/', + function ($matches) { + return "\\".join("", unpack("H2", $matches[1])); + }, $string ); } @@ -479,6 +482,10 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { protected function _openLDAP() { if($this->con) return true; // connection already established + if($this->getConf('debug')) { + ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); + } + $this->bound = 0; $port = $this->getConf('port'); @@ -555,6 +562,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { if(!$bound) { msg("LDAP: couldn't connect to LDAP server", -1); + $this->_debug(ldap_error($this->con), 0, __LINE__, __FILE__); return false; } -- GitLab From 8a58013ef5551e106dde1fa7b3d9a7330a36dc11 Mon Sep 17 00:00:00 2001 From: David Stone <dstone@cbs.com> Date: Sat, 17 Oct 2015 20:45:41 -0600 Subject: [PATCH 371/440] Optimizations to autoloader Autoloader should return true if it can handle the class so other registered autoloader don't execute. require is faster than require_once and should be safe to use since the autoloader won't run if the class already exists --- inc/load.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/inc/load.php b/inc/load.php index 42a6a6362..65bbe83c7 100644 --- a/inc/load.php +++ b/inc/load.php @@ -107,14 +107,15 @@ function load_autoload($name){ ); if(isset($classes[$name])){ - require_once($classes[$name]); - return; + require ($classes[$name]); + return true; } // our own namespace $name = str_replace('\\', '/', $name); if(substr($name, 0, 9) == 'dokuwiki/') { - require_once(substr($name, 9) . '.php'); + require substr($name, 9) . '.php'; + return true } // Plugin loading @@ -124,9 +125,9 @@ function load_autoload($name){ $c = ((count($m) === 4) ? "/{$m[3]}" : ''); $plg = DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php"; if(file_exists($plg)){ - include_once DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php"; + include $plg; } - return; + return true; } } -- GitLab From b20eed15a3b75355119fed2d504f667138f92759 Mon Sep 17 00:00:00 2001 From: David Stone <dstone@cbs.com> Date: Sat, 17 Oct 2015 21:52:32 -0600 Subject: [PATCH 372/440] fix error --- inc/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/load.php b/inc/load.php index 65bbe83c7..2ec4c03d2 100644 --- a/inc/load.php +++ b/inc/load.php @@ -115,7 +115,7 @@ function load_autoload($name){ $name = str_replace('\\', '/', $name); if(substr($name, 0, 9) == 'dokuwiki/') { require substr($name, 9) . '.php'; - return true + return true; } // Plugin loading -- GitLab From 09a5dcd6ff9498dd0dc9adfd5a2dfd50771ae97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Tue, 27 Oct 2015 12:18:30 +0100 Subject: [PATCH 373/440] Show specific error messages if user creation fails --- lib/plugins/usermanager/admin.php | 11 +++++++++++ lib/plugins/usermanager/lang/en/lang.php | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index ca954db68..9314e395c 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -518,16 +518,20 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $pass = auth_pwgen($user); } else { msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_missing_pass'], -1); return false; } } else { if (!$this->_verifyPassword($pass,$passconfirm)) { + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_pass_not_identical'], -1); return false; } } } else { if (!empty($pass)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modPass_disabled'], -1); return false; } } @@ -535,10 +539,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_auth->canDo('modName')){ if (empty($name)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_name_missing'], -1); return false; } } else { if (!empty($name)){ + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modName_disabled'], -1); return false; } } @@ -546,10 +553,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_auth->canDo('modMail')){ if (empty($mail)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_mail_missing'], -1); return false; } } else { if (!empty($mail)){ + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modMail_disabled'], -1); return false; } } @@ -563,6 +573,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } else { msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_create_event_failed'], -1); } return $ok; diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php index b55ecc998..73abee37e 100644 --- a/lib/plugins/usermanager/lang/en/lang.php +++ b/lib/plugins/usermanager/lang/en/lang.php @@ -76,3 +76,11 @@ $lang['import_error_create'] = 'Unable to create the user'; $lang['import_notify_fail'] = 'Notification message could not be sent for imported user, %s with email %s.'; $lang['import_downloadfailures'] = 'Download Failures as CSV for correction'; +$lang['addUser_error_missing_pass'] = 'Please either set a password or activate user notification to enable password generation.'; +$lang['addUser_error_pass_not_identical'] = 'The entered passwords were not identical.'; +$lang['addUser_error_modPass_disabled'] = 'Modifing passwords is currently disabled'; +$lang['addUser_error_name_missing'] = 'Please enter a name for the new user.'; +$lang['addUser_error_modName_disabled'] = 'Modifing names is currently disabled.'; +$lang['addUser_error_mail_missing'] = 'Please enter an Email-Adress for the new user.'; +$lang['addUser_error_modMail_disabled'] = 'Modifing Email-Adresses is currently disabled.'; +$lang['addUser_error_create_event_failed'] = 'The create UserMod event failed.'; -- GitLab From 7aaab1092d683bd2160e72ecd872d7c5e628dbd1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 27 Oct 2015 21:30:58 +0100 Subject: [PATCH 374/440] implements a router for the PHP builtin webserver PHP comes with a builtin webserver for development purposes. This adds the needed routing and also enables rewriting compatible to out userewrite=1 setting. It also implements basic access security (denying access to the data directory and similar directories) A PHP based webserver running DokuWiki can now be started with php -S localhost:8000 index.php --- index.php | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index ad0807727..673282b43 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,68 @@ <?php /** - * Forwarder to doku.php + * Forwarder/Router to doku.php + * + * In normal usage, this script simply redirects to doku.php. However it can also be used as a routing + * script with PHP's builtin webserver. It takes care of .htaccess compatible rewriting, directory/file + * access permission checking and passing on static files. + * + * Usage example: + * + * php -S localhost:8000 index.php * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Andreas Gohr <andi@splitbrain.org> */ -header("Location: doku.php"); +if(php_sapi_name() != 'cli-server') { + header("Location: doku.php"); + exit; +} + +# ROUTER starts below + +# avoid path traversal +$_SERVER['SCRIPT_NAME'] = str_replace('/../', '/', $_SERVER['SCRIPT_NAME']); + +# routing aka. rewriting +if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # media dispatcher + $_GET['media'] = $m[1]; + require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/fetch.php'; + +} else if(preg_match('/^\/_detail\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # image detail view + $_GET['media'] = $m[1]; + require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/detail.php'; + +} else if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # exports + $_GET['do'] = 'export_' . $m[1]; + $_GET['id'] = $m[2]; + require $_SERVER['DOCUMENT_ROOT'] . '/doku.php'; + +} elseif($_SERVER['SCRIPT_NAME'] == '/index.php') { + # 404s are automatically mapped to index.php + if(isset($_SERVER['PATH_INFO'])) { + $_GET['id'] = $_SERVER['PATH_INFO']; + } + require $_SERVER['DOCUMENT_ROOT'] . '/doku.php'; + +} else if(file_exists($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME'])) { + # existing files + + # access limitiations + if(preg_match('/\/([\._]ht|README$|VERSION$|COPYING$)/', $_SERVER['SCRIPT_NAME']) or + preg_match('/^\/(data\/|conf\/|bin\/|inc\/|install.php)/', $_SERVER['SCRIPT_NAME']) + ) { + die('Access denied'); + } + + if(substr($_SERVER['SCRIPT_NAME'], -4) == '.php') { + # php scripts + require $_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME']; + } else { + # static files + return false; + } +} +# 404 -- GitLab From 5431e0aa311bc1817216976e1fc7fe87bbc96abc Mon Sep 17 00:00:00 2001 From: Sam Wilson <sam@samwilson.id.au> Date: Wed, 28 Oct 2015 14:55:59 +0800 Subject: [PATCH 375/440] Add an in-progress class to the quicksearch form. This change adds a new class to the quicksearch's <form> element while the quicksearch is running. This is to make it easier to style the form, e.g. with a throbber gif in the search box, to indicate that something is happening. For slow connections, it is sometimes not apparent that waiting for a few seconds will present the user with a list of matching pagenames. The new 'searching' class is added just before the POST request is sent, and cleared both on successful completion and when the search box is cleared. --- lib/scripts/qsearch.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/scripts/qsearch.js b/lib/scripts/qsearch.js index 95c632e45..56cf8df25 100644 --- a/lib/scripts/qsearch.js +++ b/lib/scripts/qsearch.js @@ -45,6 +45,7 @@ jQuery.fn.dw_qsearch = function (overrides) { dw_qsearch.clear_results(); return; } + dw_qsearch.$inObj.parents('form').addClass('searching'); dw_qsearch.curRequest = jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', { @@ -81,6 +82,7 @@ jQuery.fn.dw_qsearch = function (overrides) { * Empty and hide the output div */ clear_results: function () { + dw_qsearch.$inObj.parents('form').removeClass('searching'); dw_qsearch.$outObj.hide(); dw_qsearch.$outObj.text(''); }, @@ -95,6 +97,7 @@ jQuery.fn.dw_qsearch = function (overrides) { */ onCompletion: function (data) { var max, $links, too_big; + dw_qsearch.$inObj.parents('form').removeClass('searching'); dw_qsearch.curRequest = null; -- GitLab From 8821b86a224dd505870317252e32167adec76c65 Mon Sep 17 00:00:00 2001 From: "Dominik D. Geyer" <dominik.geyer@gmail.com> Date: Wed, 28 Oct 2015 11:28:43 +0100 Subject: [PATCH 376/440] fix typo in German translation --- inc/lang/de/subscr_list.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/lang/de/subscr_list.txt b/inc/lang/de/subscr_list.txt index 98ec4c2ab..f4318df70 100644 --- a/inc/lang/de/subscr_list.txt +++ b/inc/lang/de/subscr_list.txt @@ -7,7 +7,7 @@ Das sind die geänderten Seiten: @DIFF@ -------------------------------------------------------- -Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an @DOKUWIKIURL@, besuchen dann @SUBSCRIBE@ und klicken auf die Taste 'Änderungen abbestellen'. -- GitLab From 5e204053a7db602be3f14b6196b51f29de9fcc15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 29 Oct 2015 12:33:43 +0100 Subject: [PATCH 377/440] Be more clear what a failed create event means --- lib/plugins/usermanager/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php index 73abee37e..5f47673f3 100644 --- a/lib/plugins/usermanager/lang/en/lang.php +++ b/lib/plugins/usermanager/lang/en/lang.php @@ -83,4 +83,4 @@ $lang['addUser_error_name_missing'] = 'Please enter a name for the new user.'; $lang['addUser_error_modName_disabled'] = 'Modifing names is currently disabled.'; $lang['addUser_error_mail_missing'] = 'Please enter an Email-Adress for the new user.'; $lang['addUser_error_modMail_disabled'] = 'Modifing Email-Adresses is currently disabled.'; -$lang['addUser_error_create_event_failed'] = 'The create UserMod event failed.'; +$lang['addUser_error_create_event_failed'] = 'A plugin prevented the new user being added. Review possible other messages for more information.'; -- GitLab From 844aec6672b8651245071f63fc153120ef4ab33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Thu, 29 Oct 2015 17:08:44 +0100 Subject: [PATCH 378/440] Deactivate XSS-Protection during preview The motivation is to work around/fix issue #1182. Using a CSP-Header did not work. ToDo: - [ ] Implement a check for Chrome only. --- inc/actions.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/inc/actions.php b/inc/actions.php index b0753b22e..adba2aa32 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -29,6 +29,8 @@ function act_dispatch(){ // give plugins an opportunity to process the action $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); + + $headers = array(); if ($evt->advise_before()) { //sanitize $ACT @@ -144,8 +146,10 @@ function act_dispatch(){ $ACT = act_draftdel($ACT); //draft saving on preview - if($ACT == 'preview') + if($ACT == 'preview') { + $headers[] = "X-XSS-Protection: 0"; $ACT = act_draftsave($ACT); + } //edit if(in_array($ACT, array('edit', 'preview', 'recover'))) { @@ -189,7 +193,6 @@ function act_dispatch(){ global $license; //call template FIXME: all needed vars available? - $headers = array(); $headers[] = 'Content-Type: text/html; charset=utf-8'; trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); -- GitLab From 2df1b3b1b742fc6177dc17065e03c9480d48384f Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov <alexgearbox@yandex.ru> Date: Sun, 1 Nov 2015 23:31:23 +0100 Subject: [PATCH 379/440] translation update --- inc/lang/ru/lang.php | 37 ++++++++++++------------ lib/plugins/extension/lang/ru/lang.php | 2 +- lib/plugins/usermanager/lang/ru/lang.php | 19 +++++++----- lib/tpl/dokuwiki/lang/ru/style.txt | 2 +- 4 files changed, 32 insertions(+), 28 deletions(-) diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 51f6ffd44..01c68e48e 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -64,9 +64,9 @@ $lang['btn_update'] = 'Обновить'; $lang['btn_delete'] = 'Удалить'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'СÑылки Ñюда'; -$lang['btn_subscribe'] = 'ПодпиÑатьÑÑ (вÑе правки)'; +$lang['btn_subscribe'] = 'Управление подпиÑками'; $lang['btn_profile'] = 'Профиль'; -$lang['btn_reset'] = 'СброÑ'; +$lang['btn_reset'] = 'Вернуть'; $lang['btn_resendpwd'] = 'УÑтановить новый пароль'; $lang['btn_draft'] = 'Править черновик'; $lang['btn_recover'] = 'ВоÑÑтановить черновик'; @@ -125,28 +125,29 @@ $lang['resendpwdconfirm'] = 'СÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ $lang['resendpwdsuccess'] = 'Ваш новый пароль был выÑлан по Ñлектронной почте.'; $lang['license'] = 'За иÑключением Ñлучаев, когда указано иное, Ñодержимое Ñтой вики предоÑтавлÑетÑÑ Ð½Ð°Â ÑƒÑловиÑÑ… Ñледующей лицензии:'; $lang['licenseok'] = 'Примечание: Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÑ Ñту Ñтраницу, вы ÑоглашаетеÑÑŒ на иÑпользование Ñвоего вклада на уÑловиÑÑ… Ñледующей лицензии:'; -$lang['searchmedia'] = 'ПоиÑк по имени файла:'; +$lang['searchmedia'] = 'ПоиÑк по имени файла'; $lang['searchmedia_in'] = 'ПоиÑк в %s'; $lang['txt_upload'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸:'; $lang['txt_filename'] = 'Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° в вики (необÑзательно):'; $lang['txt_overwrt'] = 'ПерезапиÑать ÑущеÑтвующий файл'; -$lang['maxuploadsize'] = 'МакÑимальный размер загружаемого файла %s'; -$lang['lockedby'] = 'Ð’ данный момент заблокирован:'; -$lang['lockexpire'] = 'Блокировка иÑтекает в:'; +$lang['maxuploadsize'] = 'МакÑ. размер загружаемого файла %s'; +$lang['lockedby'] = 'Ð’ данный момент заблокировано пользователем'; +$lang['lockexpire'] = 'Блокировка иÑтекает в'; $lang['js']['willexpire'] = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.'; $lang['js']['notsavedyet'] = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Вы дейÑтвительно хотите продолжить?'; $lang['js']['searchmedia'] = 'ПоиÑк файлов'; $lang['js']['keepopen'] = 'Ðе закрывать окно поÑле выбора'; $lang['js']['hidedetails'] = 'Скрыть детали'; -$lang['js']['mediatitle'] = 'ÐаÑтройки ÑÑылок'; +$lang['js']['mediatitle'] = 'ÐаÑтройка ÑÑылки'; $lang['js']['mediadisplay'] = 'Тип ÑÑылки'; -$lang['js']['mediaalign'] = 'Выравнивание'; -$lang['js']['mediasize'] = 'Размер изображениÑ'; -$lang['js']['mediatarget'] = 'Значение target ÑÑылки'; +$lang['js']['mediaalign'] = 'Выравнивание +'; +$lang['js']['mediasize'] = 'Размер'; +$lang['js']['mediatarget'] = 'Ð¦ÐµÐ»ÐµÐ²Ð°Ñ ÑÑылка'; $lang['js']['mediaclose'] = 'Закрыть'; $lang['js']['mediainsert'] = 'Ð’Ñтавить'; -$lang['js']['mediadisplayimg'] = 'Показывать изображение.'; -$lang['js']['mediadisplaylnk'] = 'Показывать только ÑÑылку.'; +$lang['js']['mediadisplayimg'] = 'Показывать изображение'; +$lang['js']['mediadisplaylnk'] = 'Показывать только ÑÑылку'; $lang['js']['mediasmall'] = 'ÐœÐ°Ð»Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['js']['mediamedium'] = 'СреднÑÑ Ð²ÐµÑ€ÑиÑ'; $lang['js']['medialarge'] = 'ÐšÑ€ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ'; @@ -155,10 +156,10 @@ $lang['js']['medialnk'] = 'СÑылка на подробноÑти'; $lang['js']['mediadirect'] = 'ПрÑÐ¼Ð°Ñ ÑÑылка на оригинал'; $lang['js']['medianolnk'] = 'Без ÑÑылки'; $lang['js']['medianolink'] = 'Ðе давать ÑÑылку на изображение'; -$lang['js']['medialeft'] = 'ВыровнÑÑ‚ÑŒ изображение по левому краю.'; -$lang['js']['mediaright'] = 'ВыровнÑÑ‚ÑŒ изображение по правому краю.'; -$lang['js']['mediacenter'] = 'ВыровнÑÑ‚ÑŒ изображение по центру.'; -$lang['js']['medianoalign'] = 'Ðе выравнивать.'; +$lang['js']['medialeft'] = 'ВыровнÑÑ‚ÑŒ изображение по левому краю'; +$lang['js']['mediaright'] = 'ВыровнÑÑ‚ÑŒ изображение по правому краю'; +$lang['js']['mediacenter'] = 'ВыровнÑÑ‚ÑŒ изображение по центру'; +$lang['js']['medianoalign'] = 'Ðе выравнивать'; $lang['js']['nosmblinks'] = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.'; $lang['js']['linkwiz'] = 'МаÑтер ÑÑылок'; $lang['js']['linkto'] = 'СÑылка на:'; @@ -200,7 +201,7 @@ $lang['reference'] = 'СÑылки длÑ'; $lang['ref_inuse'] = 'Ðтот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð°Â Ñледующих Ñтраницах:'; $lang['ref_hidden'] = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð°Â Ñтраницах, на чтение которых ÑƒÂ Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа'; $lang['hits'] = 'ÑоответÑтвий'; -$lang['quickhits'] = 'СоответÑÑ‚Ð²Ð¸Ñ Ð² названиÑÑ… Ñтраниц'; +$lang['quickhits'] = 'ПодходÑщие Ñтраницы'; $lang['toc'] = 'Содержание'; $lang['current'] = 'текущий'; $lang['yours'] = 'Ваша верÑиÑ'; @@ -339,7 +340,7 @@ $lang['minutes'] = '%d минут назад'; $lang['seconds'] = '%d Ñекунд назад'; $lang['wordblock'] = 'Ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены, поÑкольку они Ñодержат блокируемые Ñлова (Ñпам).'; $lang['media_uploadtab'] = 'Загрузка'; -$lang['media_searchtab'] = 'ПоиÑк'; +$lang['media_searchtab'] = 'Ðайти'; $lang['media_file'] = 'Файл'; $lang['media_viewtab'] = 'ПроÑмотр'; $lang['media_edittab'] = 'Правка'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 238d44ebb..6df783cc8 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -34,7 +34,7 @@ $lang['js']['display_viewoptions'] = 'Показать как:'; $lang['js']['display_enabled'] = 'включён'; $lang['js']['display_disabled'] = 'отключён'; $lang['js']['display_updatable'] = 'обновление'; -$lang['search_for'] = 'ПоиÑк дополнениÑ:'; +$lang['search_for'] = 'ПоиÑк дополнениÑ'; $lang['search'] = 'Ðайти'; $lang['extensionby'] = '<strong>%s</strong> %s'; $lang['screenshot'] = 'Скриншот: %s'; diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index de650d681..e6708ddb7 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -45,8 +45,8 @@ $lang['search_prompt'] = 'ИÑкать'; $lang['clear'] = 'Ð¡Ð±Ñ€Ð¾Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° поиÑка'; $lang['filter'] = 'Фильтр'; $lang['export_all'] = 'ÐкÑпорт вÑех пользователей (CSV)'; -$lang['export_filtered'] = 'ÐкÑпорт пользователей Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸ÐµÐ¹ ÑпиÑка (CSV)'; -$lang['import'] = 'Импорт новых пользователей'; +$lang['export_filtered'] = 'ÐкÑпорт отфильтрованного ÑпиÑка пользователей (CSV)'; +$lang['import'] = 'импортировать новых пользователей'; $lang['line'] = 'Строка â„–'; $lang['error'] = 'Ошибка'; $lang['summary'] = 'Показаны пользователи %1$d–%2$d из %3$d найденных. Ð’Ñего пользователей: %4$d.'; @@ -60,11 +60,11 @@ $lang['start'] = 'в начало'; $lang['prev'] = 'назад'; $lang['next'] = 'вперёд'; $lang['last'] = 'в конец'; -$lang['edit_usermissing'] = 'Выбранный пользователь не найден. Возможно, указанный логин был удалён или изменён извне.'; -$lang['user_notify'] = 'Сообщить пользователю'; -$lang['note_notify'] = 'ПиÑьма Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ выÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в Ñлучае Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ паролÑ.'; -$lang['note_group'] = 'ЕÑли группа не указана, новые пользователи будут добавлены в группу по умолчанию (%s).'; -$lang['note_pass'] = 'Пароль будет Ñгенерирован автоматичеÑки, еÑли поле оÑтавлено пуÑтым и включено уведомление пользователÑ.'; +$lang['edit_usermissing'] = 'Выбранный пользователь не найден. Возможно, указанный логин был удалён или изменён извне.'; +$lang['user_notify'] = 'ОповеÑтить пользователÑ'; +$lang['note_notify'] = 'ПиÑьма Ñ уведомлением выÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в Ñлучае Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ паролÑ.'; +$lang['note_group'] = 'ЕÑли группа не указана, новые пользователи будут добавлены в группу по умолчанию (%s).'; +$lang['note_pass'] = 'Пароль будет Ñгенерирован автоматичеÑки, еÑли поле оÑтавлено пуÑтым и включено уведомление пользователÑ.'; $lang['add_ok'] = 'Пользователь уÑпешно добавлен'; $lang['add_fail'] = 'Ðе удалоÑÑŒ добавить пользователÑ'; $lang['notify_ok'] = 'ПиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ отправлено'; @@ -72,7 +72,7 @@ $lang['notify_fail'] = 'Ðе удалоÑÑŒ отправить Ð¿Ð¸Ñ $lang['import_userlistcsv'] = 'Файл Ñо ÑпиÑком пользователей (CSV):'; $lang['import_header'] = 'ПоÑледний импорт — ÑпиÑок ошибок'; $lang['import_success_count'] = 'Импорт пользователей: %d пользователей найдено, %d импортировано уÑпешно.'; -$lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. СпиÑок ошибок прочтите ниже.'; +$lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. Ошибки перечиÑлены ниже.'; $lang['import_error_fields'] = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а нужно: 4.'; $lang['import_error_baduserid'] = 'ОтÑутÑтвует идентификатор пользователÑ'; $lang['import_error_badname'] = 'Ð˜Ð¼Ñ Ð½Ðµ годитÑÑ'; @@ -82,3 +82,6 @@ $lang['import_error_readfail'] = 'Импорт не удалÑÑ. Ðевозмо $lang['import_error_create'] = 'Ðевозможно Ñоздать пользователÑ'; $lang['import_notify_fail'] = 'Оповещение не может быть отправлено импортированному пользователю %s по Ñлектронной почте %s.'; $lang['import_downloadfailures'] = 'Скачать ошибки в формате CSV Ð´Ð»Ñ Ð¸ÑправлениÑ'; +$lang['addUser_error_pass_not_identical'] = 'Введённые ппароли не Ñовпадают.'; +$lang['addUser_error_name_missing'] = 'Укажите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пользователÑ.'; +$lang['addUser_error_mail_missing'] = 'Укажите Ð°Ð´Ñ€ÐµÑ Ñл. почты нового пользователÑ.'; diff --git a/lib/tpl/dokuwiki/lang/ru/style.txt b/lib/tpl/dokuwiki/lang/ru/style.txt index 94f0a5d0d..43bdcd162 100644 --- a/lib/tpl/dokuwiki/lang/ru/style.txt +++ b/lib/tpl/dokuwiki/lang/ru/style.txt @@ -1 +1 @@ -ЕÑли вы хотите изменить логотип, проÑто иÑпользуйте «Управление медиафайлами» Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файла logo.png в корневое проÑтранÑтво имён или wiki, и тогда он будет иÑпользоватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Туда же вы можете загрузить favicon.ico. ЕÑли ÑƒÂ Ð²Ð°Ñ Â«Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ» вики, рекомендуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ права на «чтение» в ÑпиÑках ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑтранÑтва имён wiki (или корневое), иначе логотип не будет показыватьÑÑ Ð½ÐµÐ·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²ÑˆÐ¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм. \ No newline at end of file +ЕÑли вы хотите изменить логотип, проÑто иÑпользуйте «Управление медиафайлами» Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файла ''logo.png'' в корневое проÑтранÑтво имён или ''wiki'', и тогда он будет иÑпользоватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Туда же вы можете загрузить ''favicon.ico''. ЕÑли ÑƒÂ Ð²Ð°Ñ Â«Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ» вики, рекомендуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ права на «чтение» в ÑпиÑках ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑтранÑтва имён ''wiki'' (или корневое), иначе логотип не будет показыватьÑÑ Ð½ÐµÐ·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²ÑˆÐ¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм. \ No newline at end of file -- GitLab From c3ee438f6f2d9d16f7774ddb2c59424ddf7b5ef6 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA <chuno@live.jp> Date: Tue, 3 Nov 2015 19:16:20 +0100 Subject: [PATCH 380/440] translation update --- lib/plugins/usermanager/lang/ja/lang.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index c7952d8f0..ad55a3e8a 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -72,3 +72,11 @@ $lang['import_error_readfail'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚アッ $lang['import_error_create'] = 'ユーザーãŒä½œæˆã§ãã¾ã›ã‚“。'; $lang['import_notify_fail'] = '通知メッセージãŒã‚¤ãƒ³ãƒãƒ¼ãƒˆã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%s)・電åメールアドレス(%s)ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['import_downloadfailures'] = 'ä¿®æ£ç”¨ã«å¤±æ•—ã‚’ CSVファイルã¨ã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚'; +$lang['addUser_error_missing_pass'] = 'パスワードをè¨å®šã™ã‚‹ã‹ãƒ‘スワードã®è‡ªå‹•ç”Ÿæˆã§ãるよã†ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã‚’有効ã«ã—ã¦ä¸‹ã•ã„。'; +$lang['addUser_error_pass_not_identical'] = '入力ã•ã‚ŒãŸãƒ‘スワードã¯åŒä¸€ã§ã¯ã‚ã‚Šã¾ã›ã‚“。'; +$lang['addUser_error_modPass_disabled'] = 'パスワードã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_name_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ãƒ«ãƒãƒ¼ãƒ を入力ã—ã¦ãã ã•ã„。'; +$lang['addUser_error_modName_disabled'] = 'フルãƒãƒ¼ãƒ ã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_mail_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。'; +$lang['addUser_error_modMail_disabled'] = 'メールアドレスã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_create_event_failed'] = 'プラグインãŒæ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿½åŠ を抑æ¢ã—ã¾ã—ãŸã€‚詳細ã«ã¤ã„ã¦ã¯ã€ä»–ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ç¢ºèªã§ãã¾ã™ã€‚'; -- GitLab From 5ab701af93bb55e9a186cc5d360eb5fdbaa71a44 Mon Sep 17 00:00:00 2001 From: solohazlo <solohhazlo@gmail.com> Date: Thu, 5 Nov 2015 18:56:25 +0100 Subject: [PATCH 381/440] translation update --- inc/lang/es/lang.php | 1 + lib/plugins/usermanager/lang/es/lang.php | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 26304902a..025c88ce9 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -41,6 +41,7 @@ * @author Alejandro Nunez <nunez.alejandro@gmail.com> * @author Mauricio Segura <maose38@yahoo.es> * @author Domingo Redal <docxml@gmail.com> + * @author solohazlo <solohhazlo@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/usermanager/lang/es/lang.php b/lib/plugins/usermanager/lang/es/lang.php index 284d50f34..57752de06 100644 --- a/lib/plugins/usermanager/lang/es/lang.php +++ b/lib/plugins/usermanager/lang/es/lang.php @@ -28,6 +28,7 @@ * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> * @author Domingo Redal <docxml@gmail.com> + * @author solohazlo <solohhazlo@gmail.com> */ $lang['menu'] = 'Administración de usuarios'; $lang['noauth'] = '(la autenticación de usuarios no está disponible)'; @@ -88,3 +89,6 @@ $lang['import_error_readfail'] = 'Error al importar. No se puede leer el archivo $lang['import_error_create'] = 'No se puede crear el usuario'; $lang['import_notify_fail'] = 'Mensaje de notificación no se ha podido enviar por el usuario importado,%s con el email %s.'; $lang['import_downloadfailures'] = 'Descarga errores en archivo CSV para la corrección'; +$lang['addUser_error_pass_not_identical'] = 'Las contraseñas no coinciden'; +$lang['addUser_error_modPass_disabled'] = 'Está desactivado por ahora modificar contraseñas.'; +$lang['addUser_error_name_missing'] = 'Por favor teclea el nombre del nuevo usuario.'; -- GitLab From 01dcc1578c0cf62476070f2f2d69fd8a791fe348 Mon Sep 17 00:00:00 2001 From: "Alvaro [Andor]" <andor@pierdelacabeza.com> Date: Sun, 8 Nov 2015 21:34:03 +0100 Subject: [PATCH 382/440] Update help.txt Updated a word wrongly written on spanish --- lib/plugins/acl/lang/es/help.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/acl/lang/es/help.txt b/lib/plugins/acl/lang/es/help.txt index c683477a8..01f7a2e79 100644 --- a/lib/plugins/acl/lang/es/help.txt +++ b/lib/plugins/acl/lang/es/help.txt @@ -2,7 +2,7 @@ En esta página puede agregar o retirar permisos para los espacios de nombres y páginas en su wiki. -El panel de la izquierda muiestra todos los espacios de nombres y páginas +El panel de la izquierda muestra todos los espacios de nombres y páginas El formulario inferior permite ver y modificar los permisos del usuario o grupo elegido. -- GitLab From 7001897863b06ea42c84991b3f02588ae1558a09 Mon Sep 17 00:00:00 2001 From: Michael Wilmes <mwilmes@wilminator.com> Date: Tue, 10 Nov 2015 22:35:23 -0800 Subject: [PATCH 383/440] * Added missing 'userchangefail' in English to authad. --- lib/plugins/authad/lang/en/lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plugins/authad/lang/en/lang.php b/lib/plugins/authad/lang/en/lang.php index 751aa9f47..3e8a9e2a6 100644 --- a/lib/plugins/authad/lang/en/lang.php +++ b/lib/plugins/authad/lang/en/lang.php @@ -9,6 +9,7 @@ $lang['domain'] = 'Logon Domain'; $lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; $lang['passchangefail'] = 'Failed to change the password. Maybe the password policy was not met?'; +$lang['userchangefail'] = 'Failed to change user attributes. Maybe your account does not have permissions to make changes?'; $lang['connectfail'] = 'Failed to connect to Active Directory server.'; //Setup VIM: ex: et ts=4 : -- GitLab From bb30445d410f06c4471201e189e3f05f437701eb Mon Sep 17 00:00:00 2001 From: Michael Wilmes <mwilmes@wilminator.com> Date: Thu, 12 Nov 2015 20:57:27 -0800 Subject: [PATCH 384/440] * Created two new options to enable or disable the editing of the display name or the email address in Active Directory. This will allow for the admin to turn the edit feature off if it is not desired that the user could edit their attributes or to prevent errors in case AD does not permit the user to update these attributes. --- lib/plugins/authad/auth.php | 4 ++-- lib/plugins/authad/conf/default.php | 2 ++ lib/plugins/authad/conf/metadata.php | 2 ++ lib/plugins/authad/lang/en/settings.php | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 60c68efc4..6e4f85f36 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -119,8 +119,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } // other can do's are changed in $this->_loadServerConfig() base on domain setup - $this->cando['modName'] = true; - $this->cando['modMail'] = true; + $this->cando['modName'] = (bool)$this->conf['update_name']; + $this->cando['modMail'] = (bool)$this->conf['update_mail']; $this->cando['getUserCount'] = true; } diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php index 6fb4c9145..f2834c808 100644 --- a/lib/plugins/authad/conf/default.php +++ b/lib/plugins/authad/conf/default.php @@ -13,3 +13,5 @@ $conf['use_tls'] = 0; $conf['debug'] = 0; $conf['expirywarn'] = 0; $conf['additional'] = ''; +$conf['update_name'] = 0; +$conf['update_mail'] = 0; diff --git a/lib/plugins/authad/conf/metadata.php b/lib/plugins/authad/conf/metadata.php index 560d25315..25c4ab413 100644 --- a/lib/plugins/authad/conf/metadata.php +++ b/lib/plugins/authad/conf/metadata.php @@ -13,3 +13,5 @@ $meta['use_tls'] = array('onoff','_caution' => 'danger'); $meta['debug'] = array('onoff','_caution' => 'security'); $meta['expirywarn'] = array('numeric', '_min'=>0,'_caution' => 'danger'); $meta['additional'] = array('string','_caution' => 'danger'); +$meta['update_name'] = array('onoff','_caution' => 'danger'); +$meta['update_mail'] = array('onoff','_caution' => 'danger'); diff --git a/lib/plugins/authad/lang/en/settings.php b/lib/plugins/authad/lang/en/settings.php index 92e9ac4e8..9e7a7c320 100644 --- a/lib/plugins/authad/lang/en/settings.php +++ b/lib/plugins/authad/lang/en/settings.php @@ -13,3 +13,5 @@ $lang['use_tls'] = 'Use TLS connection? If used, do not enable SSL ab $lang['debug'] = 'Display additional debugging output on errors?'; $lang['expirywarn'] = 'Days in advance to warn user about expiring password. 0 to disable.'; $lang['additional'] = 'A comma separated list of additional AD attributes to fetch from user data. Used by some plugins.'; +$lang['update_name'] = 'Allow users to update their AD display name?'; +$lang['update_mail'] = 'Allow users to update their email address?'; -- GitLab From 97115ef3a83f51f98a43c894e96ef1cf8a7dee91 Mon Sep 17 00:00:00 2001 From: Guilherme Cardoso <guicardoso@gmail.com> Date: Fri, 13 Nov 2015 13:21:11 +0100 Subject: [PATCH 385/440] translation update --- inc/lang/pt-br/lang.php | 1 + lib/plugins/authad/lang/pt-br/lang.php | 2 ++ lib/plugins/config/lang/pt-br/lang.php | 1 + lib/plugins/usermanager/lang/pt-br/lang.php | 7 +++++++ 4 files changed, 11 insertions(+) diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 67b4651f2..aa0ce925b 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -25,6 +25,7 @@ * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> * @author Ednei <leuloch@gmail.com> * @author Hudson FAS <hudsonfas@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/pt-br/lang.php b/lib/plugins/authad/lang/pt-br/lang.php index 16fc39638..ddcfaa875 100644 --- a/lib/plugins/authad/lang/pt-br/lang.php +++ b/lib/plugins/authad/lang/pt-br/lang.php @@ -5,8 +5,10 @@ * * @author Felipe Castro <fefcas@gmail.com> * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + * @author Guilherme Cardoso <guicardoso@gmail.com> */ $lang['domain'] = 'DomÃnio de "Logon"'; $lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; $lang['passchangefail'] = 'Não foi possÃvel alterar a senha. Pode ser algum conflito com a polÃtica de senhas.'; +$lang['userchangefail'] = 'Falha ao mudar os atributos do usuário. Talvez a sua conta não tenha permissões para fazer mudanças.'; $lang['connectfail'] = 'Não foi possÃvel conectar ao servidor Active Directory.'; diff --git a/lib/plugins/config/lang/pt-br/lang.php b/lib/plugins/config/lang/pt-br/lang.php index 625dc6a25..abda9640e 100644 --- a/lib/plugins/config/lang/pt-br/lang.php +++ b/lib/plugins/config/lang/pt-br/lang.php @@ -18,6 +18,7 @@ * @author Isaias Masiero Filho <masiero@masiero.org> * @author Balaco Baco <balacobaco@imap.cc> * @author Victor Westmann <victor.westmann@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> */ $lang['menu'] = 'Configurações do DokuWiki'; $lang['error'] = 'As configurações não foram atualizadas devido a um valor inválido. Por favor, reveja suas alterações e reenvie-as.<br />O(s) valor(es) incorreto(s) serão exibidos contornados por uma borda vermelha.'; diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 356d139eb..4c6ada862 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -21,6 +21,7 @@ * @author Leone Lisboa Magevski <leone1983@gmail.com> * @author Dário Estevão <darioems@gmail.com> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponÃvel)'; @@ -81,3 +82,9 @@ $lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o ar $lang['import_error_create'] = 'Habilitar para criar o usuário.'; $lang['import_notify_fail'] = 'Mensagem de notificação não pode ser enviada para o usuário importado, %s com email %s.'; $lang['import_downloadfailures'] = 'Falhas no Download como CSV para correção'; +$lang['addUser_error_missing_pass'] = 'Por favor coloque uma senha ou ative as notificações do usuário para habilitar a geração de senhas.'; +$lang['addUser_error_pass_not_identical'] = 'As senhas fornecidas não são idênticas.'; +$lang['addUser_error_modPass_disabled'] = 'A alteração de senhas está atualmente desabilitada.'; +$lang['addUser_error_name_missing'] = 'Por favor entre com um nome para o novo usuário.'; +$lang['addUser_error_mail_missing'] = 'Por favor entre com um endereço de e-mail para o novo usuário.'; +$lang['addUser_error_create_event_failed'] = 'Uma extensão impediu que um novo usuário seja adicionado. Reveja outras mensagens para mais informações.'; -- GitLab From 1f6acd00be4b3d9544f4d760ce73f938fedbacf6 Mon Sep 17 00:00:00 2001 From: Jaroslav Lichtblau <jlichtblau@seznam.cz> Date: Sun, 15 Nov 2015 12:26:24 +0100 Subject: [PATCH 386/440] translation update --- inc/lang/cs/admin.txt | 2 +- lib/plugins/authad/lang/cs/lang.php | 1 + lib/plugins/config/lang/cs/lang.php | 1 + lib/plugins/styling/lang/cs/intro.txt | 2 ++ lib/plugins/usermanager/lang/cs/lang.php | 8 ++++++++ lib/tpl/dokuwiki/lang/cs/lang.php | 5 +++++ lib/tpl/dokuwiki/lang/cs/style.txt | 2 ++ 7 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/styling/lang/cs/intro.txt create mode 100644 lib/tpl/dokuwiki/lang/cs/style.txt diff --git a/inc/lang/cs/admin.txt b/inc/lang/cs/admin.txt index ccfbc4455..df7c5b61c 100644 --- a/inc/lang/cs/admin.txt +++ b/inc/lang/cs/admin.txt @@ -1,3 +1,3 @@ ====== Správa ====== -NÞe je možno spravovat vaÅ¡i DokuWiki. +NÞe je možno spravovat vaÅ¡Ã DokuWiki. diff --git a/lib/plugins/authad/lang/cs/lang.php b/lib/plugins/authad/lang/cs/lang.php index 85bc41f2f..6223868c6 100644 --- a/lib/plugins/authad/lang/cs/lang.php +++ b/lib/plugins/authad/lang/cs/lang.php @@ -9,4 +9,5 @@ $lang['domain'] = 'PÅ™ihlaÅ¡ovacà doména'; $lang['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vyprÅ¡Ã za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; $lang['passchangefail'] = 'ZmÄ›na hesla selhala. Možná nebyla dodržena pravidla pro jejich tvorbu?'; +$lang['userchangefail'] = 'ZmÄ›na atributů uživatele selhala. Možná nemá váš úÄet dostateÄná oprávnÄ›nà pro provádÄ›nà zmÄ›n. '; $lang['connectfail'] = 'PÅ™ipojenà k serveru Active Directory selhalo.'; diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index d7a7362ae..05d2d52f7 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -204,6 +204,7 @@ $lang['xsendfile_o_2'] = 'Standardnà hlaviÄka X-Sendfile'; $lang['xsendfile_o_3'] = 'Proprietárnà hlaviÄka Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'PÅ™ihlaÅ¡ovacà jméno'; $lang['showuseras_o_username'] = 'Celé jméno uživatele'; +$lang['showuseras_o_username_link'] = 'Celé uživatelské jméno jako odkaz mezi wiki'; $lang['showuseras_o_email'] = 'E-mailová adresa uživatele ("zamaskována" aktuálnÄ› nastavenou metodou)'; $lang['showuseras_o_email_link'] = 'E-mailová adresa uživatele jako mailto: odkaz'; $lang['useheading_o_0'] = 'Nikdy'; diff --git a/lib/plugins/styling/lang/cs/intro.txt b/lib/plugins/styling/lang/cs/intro.txt new file mode 100644 index 000000000..00365a091 --- /dev/null +++ b/lib/plugins/styling/lang/cs/intro.txt @@ -0,0 +1,2 @@ +Tento nástroj umožňuje zmÄ›nu urÄitých nastavenà stylu právÄ› použÃvané Å¡ablony vzhledu. +VÅ¡echny zmÄ›ny jsou uloženy v lokálnÃm konfiguraÄnÃm souboru a tÃm chránÄ›ny pÅ™ed smazánÃm pÅ™i aktualizaci. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index 6130fccd8..3cd42efcb 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -76,3 +76,11 @@ $lang['import_error_readfail'] = 'Import selhal. Nelze ÄÃst nahraný soubor.'; $lang['import_error_create'] = 'Nelze vytvoÅ™it uživatele'; $lang['import_notify_fail'] = 'Importovanému uživateli %s s e-mailem %s nemohlo být zasláno upozornÄ›nÃ.'; $lang['import_downloadfailures'] = 'Stáhnout chyby pro nápravu jako CVS'; +$lang['addUser_error_missing_pass'] = 'BuÄ prosÃm nastavte heslo nebo aktivujte upozorňovánà uživatel aby fungovalo vytvářenà hesel.'; +$lang['addUser_error_pass_not_identical'] = 'Zadaná hesla nebyla shodná.'; +$lang['addUser_error_modPass_disabled'] = 'ZmÄ›na hesel je momentálnÄ› zákázána.'; +$lang['addUser_error_name_missing'] = 'Zadejte prosÃm jméno nového uživatele.'; +$lang['addUser_error_modName_disabled'] = 'ZmÄ›na jmen je momentálnÄ› zákázána.'; +$lang['addUser_error_mail_missing'] = 'Zadejte prosÃm emailovou adresu nového uživatele.'; +$lang['addUser_error_modMail_disabled'] = 'ZmÄ›na emailové adresy je momentálnÄ› zákázána.'; +$lang['addUser_error_create_event_failed'] = 'Zásuvný modul zabránil pÅ™idánà nového uživatele. Pro vÃce informacà si prohlédnÄ›te dalÅ¡Ã možné zprávy.'; diff --git a/lib/tpl/dokuwiki/lang/cs/lang.php b/lib/tpl/dokuwiki/lang/cs/lang.php index 0f03ba491..6599c73cb 100644 --- a/lib/tpl/dokuwiki/lang/cs/lang.php +++ b/lib/tpl/dokuwiki/lang/cs/lang.php @@ -5,6 +5,11 @@ * * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> */ +$lang['__background_site__'] = 'Barva hlavnÃho pozadà (pod kontextovým boxem)'; $lang['__link__'] = 'Hlavnà barva odkazů'; $lang['__existing__'] = 'Barva odkazů na existujÃcà stránky'; $lang['__missing__'] = 'Barva odkazů na neexistujÃcà stránky'; +$lang['__site_width__'] = 'Å ÃÅ™ka plné stránky (jakákoliv jednotka délky: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Å ÃÅ™ka postrannÃho panelu, pokud je použit (jakákoliv jednotka délky: %, px, em, ...)'; +$lang['__tablet_width__'] = 'PÅ™epnout stránku do módu pro tablet pro velikost obrazovky menÅ¡Ã než'; +$lang['__phone_width__'] = 'PÅ™epnout stránku do módu pro telefon pro velikost obrazovky menÅ¡Ã než'; diff --git a/lib/tpl/dokuwiki/lang/cs/style.txt b/lib/tpl/dokuwiki/lang/cs/style.txt new file mode 100644 index 000000000..e2ebe22b3 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cs/style.txt @@ -0,0 +1,2 @@ +Pokud chcete upravit logo, jednoduÅ¡e použijte Media Manager pro nahránà obrázku "logo.png" do koÅ™enového jmenného prostoru "wiki" a ten bude poté použit jako logo. Můžete nahrát také ikonu "favicon.ico". +Pokud použÃváte neveÅ™ejnou wiki, doporuÄujeme udÄ›lit plná práva pro Ätenà prostoru "wiki" (nebo root) v nastavenà ACL, jinak nebude vlastnà logo zobrazeno nepÅ™ihlášeným uživatelům. \ No newline at end of file -- GitLab From 755031bfa2b2e66d2257c83446a2e83f12a85097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= <grosse@cosmocode.de> Date: Tue, 17 Nov 2015 15:31:53 +0100 Subject: [PATCH 387/440] translation update --- lib/plugins/acl/lang/de/lang.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/acl/lang/de/lang.php b/lib/plugins/acl/lang/de/lang.php index f25a2ea71..f4d7cc9e2 100644 --- a/lib/plugins/acl/lang/de/lang.php +++ b/lib/plugins/acl/lang/de/lang.php @@ -21,6 +21,7 @@ * @author Christian Wichmann <nospam@zone0.de> * @author Paul Lachewsky <kaeptn.haddock@gmail.com> * @author Pierre Corell <info@joomla-praxis.de> + * @author Michael Große <grosse@cosmocode.de> */ $lang['admin_acl'] = 'Zugangsverwaltung'; $lang['acl_group'] = 'Gruppe:'; @@ -36,7 +37,7 @@ $lang['p_group_ns'] = 'Mitglieder der Gruppe <b class="aclgroup">%s</ $lang['p_choose_id'] = 'Bitte geben Sie in obigem Formular eine <b>einen Benutzer oder eine Gruppe</b> an, um die Berechtigungen für die Seite <b class="aclpage">%s</b> zu sehen oder zu ändern.'; $lang['p_choose_ns'] = 'Bitte geben Sie in obigem Formular eine <b>einen Benutzer oder eine Gruppe</b> an, um die Berechtigungen für den Namensraum <b class="aclns">%s</b> zu sehen oder zu ändern.'; $lang['p_inherited'] = 'Hinweis: Diese Berechtigungen wurden nicht explizit gesetzt, sondern von anderen Gruppen oder höher liegenden Namensräumen geerbt.'; -$lang['p_isadmin'] = 'Hinweis: Die ausgewählte Gruppe oder Benutzer haben immer alle Berechtigungen das sie als Superuser konfiguriert wurden.'; +$lang['p_isadmin'] = 'Hinweis: Die ausgewählte Gruppe oder Benutzer haben immer alle Berechtigungen, da sie als Superuser konfiguriert wurden.'; $lang['p_include'] = 'Höhere Berechtigungen schließen niedrigere mit ein. Anlegen, Hochladen und Entfernen gilt nur für Namensräume, nicht für einzelne Seiten'; $lang['current'] = 'Momentane Zugriffsregeln'; $lang['where'] = 'Seite/Namensraum'; -- GitLab From 78374fd06e30e053db7479122c635e9b95973e0e Mon Sep 17 00:00:00 2001 From: Uwe Benzelrath <uwebenzelrath@gmail.com> Date: Tue, 17 Nov 2015 21:21:11 +0100 Subject: [PATCH 388/440] translation update --- lib/plugins/authad/lang/de/lang.php | 2 ++ lib/plugins/usermanager/lang/de/lang.php | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php index 93a65667e..ec73ac7d7 100644 --- a/lib/plugins/authad/lang/de/lang.php +++ b/lib/plugins/authad/lang/de/lang.php @@ -5,8 +5,10 @@ * * @author Andreas Gohr <gohr@cosmocode.de> * @author Philip Knack <p.knack@stollfuss.de> + * @author Uwe Benzelrath <uwebenzelrath@gmail.com> */ $lang['domain'] = 'Anmelde-Domäne'; $lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; $lang['passchangefail'] = 'Kennwortänderung fehlgeschlagen. Entspricht das Kennwort der Richtlinie?'; +$lang['userchangefail'] = 'Änderung der Nutzerattribute fehlgeschlagen. Möglicherweise hat ihr Benutzerkonto nicht die nötigen Rechte um diese Änderungen durchzuführen'; $lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.'; diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 4b297b0dc..1ed2bfa52 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -22,6 +22,7 @@ * @author christian studer <cstuder@existenz.ch> * @author Ben Fey <benedikt.fey@beck-heun.de> * @author Jonas Gröger <jonas.groeger@gmail.com> + * @author Uwe Benzelrath <uwebenzelrath@gmail.com> */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -82,3 +83,6 @@ $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei $lang['import_error_create'] = 'User konnte nicht angelegt werden'; $lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; $lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen'; +$lang['addUser_error_pass_not_identical'] = 'Die eingegebenen Passwörter stimmen nicht überein.'; +$lang['addUser_error_name_missing'] = 'Bitte geben sie den Namen des neuen Benutzer ein.'; +$lang['addUser_error_mail_missing'] = 'Bitte geben sie die E-Mail-Adresse des neuen Benutzer ein.'; -- GitLab From 7c54867c92cb004f2cf04d66f6018fe295ef511e Mon Sep 17 00:00:00 2001 From: Garfield <garfield_550@outlook.com> Date: Wed, 25 Nov 2015 08:01:55 +0100 Subject: [PATCH 389/440] translation update --- inc/lang/zh/lang.php | 1 + lib/plugins/config/lang/zh/lang.php | 1 + lib/plugins/usermanager/lang/zh/lang.php | 3 +++ 3 files changed, 5 insertions(+) diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index d179ad634..03b182390 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -25,6 +25,7 @@ * @author qinghao <qingxianhao@gmail.com> * @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de> * @author Errol <errol@hotmail.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php index 5de24692e..4ae3a01fd 100644 --- a/lib/plugins/config/lang/zh/lang.php +++ b/lib/plugins/config/lang/zh/lang.php @@ -15,6 +15,7 @@ * @author caii, patent agent in China <zhoucaiqi@gmail.com> * @author lainme993@gmail.com * @author Shuo-Ting Jian <shoting@gmail.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['menu'] = 'é…置设置'; $lang['error'] = '由于éžæ³•å‚数,设置没有更新。请检查您åšçš„改动并é‡æ–°æ交。 diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index b833c6ce4..ffa430966 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -18,6 +18,7 @@ * @author Rachel <rzhang0802@gmail.com> * @author Yangyu Huang <yangyu.huang@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['menu'] = '用户管ç†å™¨'; $lang['noauth'] = '(用户认è¯ä¸å¯ç”¨ï¼‰'; @@ -78,3 +79,5 @@ $lang['import_error_readfail'] = 'å¯¼å…¥å¤±è´¥ã€‚æ— æ³•è¯»å–ä¸Šä¼ çš„æ–‡ä»¶ã€‚' $lang['import_error_create'] = 'ä¸èƒ½åˆ›å»ºæ–°ç”¨æˆ·'; $lang['import_notify_fail'] = '通知消æ¯æ— 法å‘é€åˆ°å¯¼å…¥çš„用户 %s,电å邮件地å€æ˜¯ %s。'; $lang['import_downloadfailures'] = '下载CSV的错误信æ¯ä»¥ä¿®æ£ã€‚'; +$lang['addUser_error_name_missing'] = '请为新用户输入一个åå—。'; +$lang['addUser_error_mail_missing'] = '请为新用户输入一个电å邮件地å€ã€‚'; -- GitLab From bc0b7525a1e11086c54e192c239fe4958b29bd27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Schplurtz=20le=20D=C3=A9boulonn=C3=A9?= <Schplurtz@laposte.net> Date: Thu, 26 Nov 2015 21:31:38 +0100 Subject: [PATCH 390/440] translation update --- lib/plugins/authad/lang/fr/lang.php | 2 ++ lib/plugins/config/lang/fr/lang.php | 1 + lib/plugins/usermanager/lang/fr/lang.php | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/lib/plugins/authad/lang/fr/lang.php b/lib/plugins/authad/lang/fr/lang.php index 8b3b95b54..1ab523ff1 100644 --- a/lib/plugins/authad/lang/fr/lang.php +++ b/lib/plugins/authad/lang/fr/lang.php @@ -6,8 +6,10 @@ * @author ggallon <gwenael.gallon@mac.com> * @author Yannick Aure <yannick.aure@gmail.com> * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> */ $lang['domain'] = 'Domaine de connexion'; $lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; $lang['passchangefail'] = 'Impossible de changer le mot de passe. Il est possible que les règles de sécurité des mots de passe n\'aient pas été respectées.'; +$lang['userchangefail'] = 'Impossible de modifier les attributs de l\'utilisateur. Votre compte n\'a peut-être pas les permissions d\'effectuer des changements.'; $lang['connectfail'] = 'Impossible de se connecter au serveur Active Directory.'; diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 69e58f731..911460dab 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -24,6 +24,7 @@ * @author Carbain Frédéric <fcarbain@yahoo.fr> * @author Nicolas Friedli <nicolas@theologique.ch> * @author Floriang <antispam@floriang.eu> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index dd0e64fc4..d45179e3e 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -24,6 +24,7 @@ * @author Antoine Turmel <geekshadow@gmail.com> * @author schplurtz <Schplurtz@laposte.net> * @author Jérôme Brandt <jeromebrandt@gmail.com> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -84,3 +85,11 @@ $lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fi $lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; $lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.'; $lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction'; +$lang['addUser_error_missing_pass'] = 'Veuillez saisir un mot de passe ou activer la notification à l\'utilisateur pour permettre la génération d\'un mot de passe.'; +$lang['addUser_error_pass_not_identical'] = 'Les mots de passe saisis diffèrent.'; +$lang['addUser_error_modPass_disabled'] = 'La modification des mot de passe est actuellement désactivée.'; +$lang['addUser_error_name_missing'] = 'Veuillez saisir un nom pour le nouvel utilisateur.'; +$lang['addUser_error_modName_disabled'] = 'La modification des noms est actuellement désactivée.'; +$lang['addUser_error_mail_missing'] = 'Veuillez saisir une adressse de courriel pour le nouvel utilisateur.'; +$lang['addUser_error_modMail_disabled'] = 'La modification des adresses de courriel est actuellement désactivée.'; +$lang['addUser_error_create_event_failed'] = 'Un greffon a empêché l\'ajout du nouvel utilisateur. Examinez les autres messages potentiels pour obtenir de plus amples informations.'; -- GitLab From 4a0b76690b2a0dbfe3365e9bb71886f41ef6a4e6 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 09:00:22 +0100 Subject: [PATCH 391/440] make sure zlib exists when trying to use gzip_output #1410 --- inc/httputils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/httputils.php b/inc/httputils.php index ac79aa176..b2e2afe0f 100644 --- a/inc/httputils.php +++ b/inc/httputils.php @@ -255,7 +255,7 @@ function http_cached_finish($file, $content) { if(function_exists('gzopen')) io_saveFile("$file.gz",$content); // finally send output - if ($conf['gzip_output']) { + if ($conf['gzip_output'] && function_exists('gzencode')) { header('Vary: Accept-Encoding'); header('Content-Encoding: gzip'); print gzencode($content,9,FORCE_GZIP); -- GitLab From 13c3790029ae5e3cfa88666224cecc73c343d9ec Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 09:29:01 +0100 Subject: [PATCH 392/440] streamline zlib checking #1410 Instead of having various function_exists checks all over the place, this introduces the constants DOKU_HAS_GZIP and DOKU_HAS_BZIP. All non-3rdparty parts of the code using gz* functions should now check if zlib is actually available. --- inc/httputils.php | 6 ++++-- inc/init.php | 6 ++++-- inc/io.php | 6 ++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/inc/httputils.php b/inc/httputils.php index b2e2afe0f..c365f4f5c 100644 --- a/inc/httputils.php +++ b/inc/httputils.php @@ -197,6 +197,8 @@ function http_rangeRequest($fh,$size,$mime){ * @return bool */ function http_gzip_valid($uncompressed_file) { + if(!DOKU_HAS_GZIP) return false; + $gzip = $uncompressed_file.'.gz'; if (filemtime($gzip) < filemtime($uncompressed_file)) { // filemtime returns false (0) if file doesn't exist return copy($uncompressed_file, 'compress.zlib://'.$gzip); @@ -252,10 +254,10 @@ function http_cached_finish($file, $content) { // save cache file io_saveFile($file, $content); - if(function_exists('gzopen')) io_saveFile("$file.gz",$content); + if(DOKU_HAS_GZIP) io_saveFile("$file.gz",$content); // finally send output - if ($conf['gzip_output'] && function_exists('gzencode')) { + if ($conf['gzip_output'] && DOKU_HAS_GZIP) { header('Vary: Accept-Encoding'); header('Content-Encoding: gzip'); print gzencode($content,9,FORCE_GZIP); diff --git a/inc/init.php b/inc/init.php index 6d271dfb0..c7a179489 100644 --- a/inc/init.php +++ b/inc/init.php @@ -195,10 +195,12 @@ require_once(DOKU_INC.'vendor/autoload.php'); require_once(DOKU_INC.'inc/load.php'); // disable gzip if not available -if($conf['compression'] == 'bz2' && !function_exists('bzopen')){ +define('DOKU_HAS_BZIP', function_exists('bzopen')); +define('DOKU_HAS_GZIP', function_exists('gzopen')); +if($conf['compression'] == 'bz2' && !DOKU_HAS_BZIP) { $conf['compression'] = 'gz'; } -if($conf['compression'] == 'gz' && !function_exists('gzopen')){ +if($conf['compression'] == 'gz' && !DOKU_HAS_GZIP) { $conf['compression'] = 0; } diff --git a/inc/io.php b/inc/io.php index 704c5b1a6..066030c89 100644 --- a/inc/io.php +++ b/inc/io.php @@ -107,9 +107,11 @@ function io_readFile($file,$clean=true){ $ret = ''; if(file_exists($file)){ if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; $ret = gzfile($file); if(is_array($ret)) $ret = join('', $ret); }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return false; $ret = bzfile($file); }else{ $ret = file_get_contents($file); @@ -222,11 +224,13 @@ function _io_saveFile($file, $content, $append) { $fileexists = file_exists($file); if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; $fh = @gzopen($file,$mode.'9'); if(!$fh) return false; gzwrite($fh, $content); gzclose($fh); }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return false; if($append) { $bzcontent = bzfile($file); if($bzcontent === false) return false; @@ -313,8 +317,10 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) // load into array if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; $lines = gzfile($file); }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return false; $lines = bzfile($file, true); }else{ $lines = file($file); -- GitLab From e6a6ca1440df1147f4ab5e235f7373eed7bd6c9d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 09:39:35 +0100 Subject: [PATCH 393/440] run tests without gzip, too --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 61e47522d..9386d14e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,9 @@ php: - "5.3" - "hhvm" - "nightly" +env: + - DISABLE_FUNCTIONS= + - DISABLE_FUNCTIONS="gzopen" matrix: allow_failures: - php: "hhvm" @@ -17,4 +20,5 @@ notifications: - "chat.freenode.net#dokuwiki" on_success: change on_failure: change +before_script: echo "disable_functions=$DISABLE_FUNCTIONS" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini script: cd _test && phpunit --verbose --stderr -- GitLab From 216e727ce905bb29dca7371eb808d959f6669ee4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 09:46:10 +0100 Subject: [PATCH 394/440] adjust tests to make use of new DOKU_HAS_*ZIP defines --- _test/tests/inc/io_readfile.test.php | 4 ++-- _test/tests/inc/io_replaceinfile.test.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php index 700c1902b..43bb7f80c 100644 --- a/_test/tests/inc/io_readfile.test.php +++ b/_test/tests/inc/io_readfile.test.php @@ -6,7 +6,7 @@ class io_readfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_zlib() { - if (!extension_loaded('zlib')) { + if (!DOKU_HAS_GZIP) { $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); } } @@ -15,7 +15,7 @@ class io_readfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_bz2() { - if (!extension_loaded('bz2')) { + if (!DOKU_HAS_BZIP) { $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); } } diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php index 452ed7401..d517584e1 100644 --- a/_test/tests/inc/io_replaceinfile.test.php +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -8,7 +8,7 @@ class io_replaceinfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_zlib() { - if (!extension_loaded('zlib')) { + if (!DOKU_HAS_GZIP) { $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); } } @@ -17,7 +17,7 @@ class io_replaceinfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_bz2() { - if (!extension_loaded('bz2')) { + if (!DOKU_HAS_BZIP) { $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); } } -- GitLab From a046116d87250871de1c431302f957cf4562105b Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 09:49:00 +0100 Subject: [PATCH 395/440] forgot to fix one test --- _test/tests/inc/io_savefile.test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_test/tests/inc/io_savefile.test.php b/_test/tests/inc/io_savefile.test.php index 4a4d4671d..5f387b8a1 100644 --- a/_test/tests/inc/io_savefile.test.php +++ b/_test/tests/inc/io_savefile.test.php @@ -6,7 +6,7 @@ class io_savefile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_zlib() { - if (!extension_loaded('zlib')) { + if (!DOKU_HAS_GZIP) { $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); } } @@ -15,7 +15,7 @@ class io_savefile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_bz2() { - if (!extension_loaded('bz2')) { + if (!DOKU_HAS_BZIP) { $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); } } -- GitLab From ce9492633d2dfb14418282bbfaf5ae41b382c32a Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 10:02:02 +0100 Subject: [PATCH 396/440] autoloader needs return, plugins should be required not included --- inc/load.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inc/load.php b/inc/load.php index 2ec4c03d2..99e004b23 100644 --- a/inc/load.php +++ b/inc/load.php @@ -125,9 +125,10 @@ function load_autoload($name){ $c = ((count($m) === 4) ? "/{$m[3]}" : ''); $plg = DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php"; if(file_exists($plg)){ - include $plg; + require $plg; } return true; } + return false; } -- GitLab From 1de26ac15c12989571f8a01aa985422f5fcb0021 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 10:08:20 +0100 Subject: [PATCH 397/440] adjust PHP function interwiki shortcut #1402 Skips one (sometimes flaky) redirect --- conf/interwiki.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 4dc3c80ee..a314c0817 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -30,7 +30,7 @@ amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= -phpfn https://www.php.net/{NAME} +phpfn https://secure.php.net/{NAME} skype skype:{NAME} google.de https://www.google.de/search?q= go https://www.google.com/search?q={URL}&btnI=lucky -- GitLab From 9b82d43fe4746f4f251f28fbaf3e2f27126d5ff4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 10:23:48 +0100 Subject: [PATCH 398/440] add required attributes in user manager #1388 --- lib/plugins/usermanager/admin.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 9314e395c..f90a172b3 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -329,12 +329,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" </thead>",$indent); ptln(" <tbody>",$indent); - $this->_htmlInputField($cmd."_userid", "userid", $this->lang["user_id"], $user, $this->_auth->canDo("modLogin"), $indent+6); - $this->_htmlInputField($cmd."_userpass", "userpass", $this->lang["user_pass"], "", $this->_auth->canDo("modPass"), $indent+6); - $this->_htmlInputField($cmd."_userpass2", "userpass2", $lang["passchk"], "", $this->_auth->canDo("modPass"), $indent+6); - $this->_htmlInputField($cmd."_username", "username", $this->lang["user_name"], $name, $this->_auth->canDo("modName"), $indent+6); - $this->_htmlInputField($cmd."_usermail", "usermail", $this->lang["user_mail"], $mail, $this->_auth->canDo("modMail"), $indent+6); - $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"),$indent+6); + $this->_htmlInputField($cmd."_userid", "userid", $this->lang["user_id"], $user, $this->_auth->canDo("modLogin"), true, $indent+6); + $this->_htmlInputField($cmd."_userpass", "userpass", $this->lang["user_pass"], "", $this->_auth->canDo("modPass"), false, $indent+6); + $this->_htmlInputField($cmd."_userpass2", "userpass2", $lang["passchk"], "", $this->_auth->canDo("modPass"), false, $indent+6); + $this->_htmlInputField($cmd."_username", "username", $this->lang["user_name"], $name, $this->_auth->canDo("modName"), true, $indent+6); + $this->_htmlInputField($cmd."_usermail", "usermail", $this->lang["user_mail"], $mail, $this->_auth->canDo("modMail"), true, $indent+6); + $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"), false, $indent+6); if ($this->_auth->canDo("modPass")) { if ($cmd == 'add') { @@ -385,9 +385,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param string $label * @param string $value * @param bool $cando whether auth backend is capable to do this action + * @param bool $required is this field required? * @param int $indent */ - protected function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { + protected function _htmlInputField($id, $name, $label, $value, $cando, $required, $indent=0) { $class = $cando ? '' : ' class="disabled"'; echo str_pad('',$indent); @@ -407,7 +408,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { echo "<td><label for=\"$id\" >$label: </label></td>"; echo "<td>"; if($cando){ - echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp />"; + $req = ''; + if($required) $req = 'required="required"'; + echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp $req />"; }else{ echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />"; echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit disabled\" disabled=\"disabled\" />"; -- GitLab From 8eca974c0673cd9a432a3e4b3f4a6a34cc24943e Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 27 Nov 2015 10:38:44 +0100 Subject: [PATCH 399/440] remove unused token login. closes #1376 The token login was introduced for the flash uploader. Since it has been removed there is no need for this code anymore. --- inc/auth.php | 55 +++------------------------------------------------- 1 file changed, 3 insertions(+), 52 deletions(-) diff --git a/inc/auth.php b/inc/auth.php index e04a6ca1a..8965ee4c0 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -101,10 +101,7 @@ function auth_setup() { $INPUT->set('p', stripctl($INPUT->str('p'))); } - if($INPUT->str('authtok')) { - // when an authentication token is given, trust the session - auth_validateToken($INPUT->str('authtok')); - } elseif(!is_null($auth) && $auth->canDo('external')) { + if(!is_null($auth) && $auth->canDo('external')) { // external trust mechanism in place $auth->trustExternal($INPUT->str('u'), $INPUT->str('p'), $INPUT->bool('r')); } else { @@ -274,52 +271,6 @@ function auth_login($user, $pass, $sticky = false, $silent = false) { return false; } -/** - * Checks if a given authentication token was stored in the session - * - * Will setup authentication data using data from the session if the - * token is correct. Will exit with a 401 Status if not. - * - * @author Andreas Gohr <andi@splitbrain.org> - * - * @param string $token The authentication token - * @return boolean|null true (or will exit on failure) - */ -function auth_validateToken($token) { - if(!$token || $token != $_SESSION[DOKU_COOKIE]['auth']['token']) { - // bad token - http_status(401); - print 'Invalid auth token - maybe the session timed out'; - unset($_SESSION[DOKU_COOKIE]['auth']['token']); // no second chance - exit; - } - // still here? trust the session data - global $USERINFO; - /* @var Input $INPUT */ - global $INPUT; - - $INPUT->server->set('REMOTE_USER',$_SESSION[DOKU_COOKIE]['auth']['user']); - $USERINFO = $_SESSION[DOKU_COOKIE]['auth']['info']; - return true; -} - -/** - * Create an auth token and store it in the session - * - * NOTE: this is completely unrelated to the getSecurityToken() function - * - * @author Andreas Gohr <andi@splitbrain.org> - * - * @return string The auth token - */ -function auth_createToken() { - $token = md5(auth_randombytes(16)); - @session_start(); // reopen the session if needed - $_SESSION[DOKU_COOKIE]['auth']['token'] = $token; - session_write_close(); - return $token; -} - /** * Builds a pseudo UID from browser and IP data * @@ -752,10 +703,10 @@ function auth_aclcheck_cb($data) { //add ALL group $groups[] = '@ALL'; - + //add User if($user) $groups[] = $user; - + //check exact match first $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL); if(count($matches)) { -- GitLab From ec98a822181a2d5942150824e8a7b4a420e71602 Mon Sep 17 00:00:00 2001 From: Amnuay <amnuay@gmail.com> Date: Fri, 27 Nov 2015 12:26:00 +0100 Subject: [PATCH 400/440] translation update --- inc/lang/th/lang.php | 22 +++++++++++- lib/plugins/authplain/lang/th/lang.php | 5 +-- lib/plugins/config/lang/th/lang.php | 49 +++++++++++++------------- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index 59332f70b..ee1f1e078 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -2,12 +2,13 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Komgrit Niyomrath <n.komgrit@gmail.com> * @author Arthit Suriyawongkul <arthit@gmail.com> * @author Kittithat Arnontavilas <mrtomyum@gmail.com> * @author Thanasak Sompaisansin <jombthep@gmail.com> * @author Yuthana Tantirungrotechai <yt203y@gmail.com> + * @author Amnuay <amnuay@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -48,6 +49,7 @@ $lang['btn_recover'] = 'à¸à¸¹à¹‰à¸„ืนเà¸à¸à¸ªà¸²à¸£à¸‰à¸šà¸± $lang['btn_draftdel'] = 'ลบเà¸à¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡'; $lang['btn_revert'] = 'à¸à¸¹à¹‰à¸„ืน'; $lang['btn_register'] = 'สร้างบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; +$lang['btn_apply'] = 'นำไปใช้'; $lang['btn_media'] = 'ส่วนจัดà¸à¸²à¸£à¸ªà¸·à¹ˆà¸à¹à¸¥à¸°à¹„ฟล์'; $lang['btn_deleteuser'] = 'ลบบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸‰à¸±à¸™'; $lang['btn_img_backto'] = 'à¸à¸¥à¸±à¸šà¹„ปยัง %s'; @@ -72,6 +74,7 @@ $lang['regmissing'] = 'ขà¸à¸à¸ ัย คุณต้à¸à¸‡à¸à¸£ $lang['reguexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; $lang['regsuccess'] = 'ผู้ใช้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹„ด้ถูà¸à¸ªà¹ˆà¸‡à¹„ปทางà¸à¸µà¹€à¸¡à¸¥à¹à¸¥à¹‰à¸§'; $lang['regsuccess2'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¹„ด้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้น'; +$lang['regfail'] = 'à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ม่สำเร็จ'; $lang['regmailfail'] = 'ดูเหมืà¸à¸™à¸ˆà¸°à¸¡à¸µà¸‚้à¸à¸œà¸´à¸”พลาดในà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—างเมล์ à¸à¸£à¸¸à¸“าติดต่à¸à¸œà¸¹à¹‰à¸”ูà¹à¸¥à¸£à¸°à¸šà¸š'; $lang['regbadmail'] = 'รูปà¹à¸šà¸šà¸à¸µà¹€à¸¡à¸¥à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡ ให้ใส่à¸à¸µà¹€à¸¡à¸¥à¹ƒà¸«à¹‰à¸–ูà¸à¸•à¹‰à¸à¸‡à¸•à¸²à¸¡à¸£à¸¹à¸›à¹à¸šà¸šà¸à¸µà¹€à¸¡à¸¥ หรืà¸à¹ƒà¸«à¹‰à¸—ำช่à¸à¸‡à¸à¸µà¹€à¸¡à¸¥à¹ƒà¸«à¹‰à¸§à¹ˆà¸²à¸‡à¹à¸—น'; $lang['regbadpass'] = 'รหัสผ่านที่ใส่ไม่ถูà¸à¸•à¹‰à¸à¸‡'; @@ -85,8 +88,11 @@ $lang['profnodelete'] = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รà¸à¸‡à¸£à¸± $lang['profdeleteuser'] = 'ลบบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™'; $lang['profdeleted'] = 'บัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸„ุณได้ถูà¸à¸¥à¸šà¸à¸à¸à¸ˆà¸²à¸à¸§à¸´à¸à¸´à¹à¸¥à¹‰à¸§'; $lang['profconfdelete'] = 'ฉันà¸à¸¢à¸²à¸à¸¥à¸šà¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸‰à¸±à¸™à¸ˆà¸²à¸à¸§à¸´à¸à¸´à¸™à¸µà¹‰ <br/> à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่สามารถà¹à¸à¹‰à¹„ขคืนได้ '; +$lang['profconfdeletemissing'] = 'ท่านไม่ได้ยืนยันในช่à¸à¸‡à¸¢à¸·à¸™à¸¢à¸±à¸™'; +$lang['proffail'] = 'ข้à¸à¸¡à¸¹à¸¥à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ม่เป็นปัจจุบัน'; $lang['pwdforget'] = 'ลืมรหัสผ่านหรืà¸? เà¸à¸²à¸à¸±à¸™à¹ƒà¸«à¸¡à¹ˆà¸ªà¸´'; $lang['resendna'] = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รà¸à¸‡à¸£à¸±à¸šà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸‹à¹‰à¸³'; +$lang['resendpwd'] = 'สร้างรหัสผ่านใหม่สำหรับ'; $lang['resendpwdmissing'] = 'ขà¸à¸à¸ ัย, คุณต้à¸à¸‡à¸à¸£à¸à¸à¸—ุà¸à¸Šà¹ˆà¸à¸‡'; $lang['resendpwdnouser'] = 'ขà¸à¸à¸ ัย, เราไม่พบผู้ใช้คนนี้ในà¸à¸²à¸™à¸‚้à¸à¸¡à¸¹à¸¥à¸‚à¸à¸‡à¹€à¸£à¸²'; $lang['resendpwdbadauth'] = 'ขà¸à¸à¸ ัย, รหัสนี้ยังใช้ไม่ได้ à¸à¸£à¸¸à¸“าตรวจสà¸à¸šà¸§à¹ˆà¸²à¸„ุณà¸à¸”ลิ้งค์ยืนยันà¹à¸¥à¹‰à¸§'; @@ -99,6 +105,7 @@ $lang['searchmedia_in'] = 'สืบค้นใน %s'; $lang['txt_upload'] = 'เลืà¸à¸à¹„ฟล์ที่จะà¸à¸±à¸žà¹‚หลด:'; $lang['txt_filename'] = 'à¸à¸±à¸žà¹‚หลดเป็น(ตัวเลืà¸à¸):'; $lang['txt_overwrt'] = 'เขียนทับไฟล์ที่มีà¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§'; +$lang['maxuploadsize'] = 'à¸à¸±à¸žà¹‚หลด สูงสุด %s ต่à¸à¹„ฟล์'; $lang['lockedby'] = 'ตà¸à¸™à¸™à¸µà¹‰à¸–ูà¸à¸¥à¹Šà¸à¸„โดย:'; $lang['lockexpire'] = 'à¸à¸²à¸£à¸¥à¹Šà¸à¸„จะหมดà¸à¸²à¸¢à¸¸à¹€à¸¡à¸·à¹ˆà¸:'; $lang['js']['willexpire'] = 'à¸à¸²à¸£à¸¥à¹Šà¸à¸„เพื่à¸à¹à¸à¹‰à¹„ขหน้านี้à¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸«à¸¡à¸”เวลาในà¸à¸µà¸ \n นาที เพื่à¸à¸—ี่จะหลีà¸à¹€à¸¥à¸µà¹ˆà¸¢à¸‡à¸‚้à¸à¸‚ัดà¹à¸¢à¹‰à¸‡à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸›à¸¸à¹ˆà¸¡ "Preview" เพื่à¸à¸£à¸µà¹€à¸‹à¹‡à¸—เวลาใหม่'; @@ -106,6 +113,19 @@ $lang['js']['notsavedyet'] = 'à¸à¸²à¸£à¹à¸à¹‰à¹„ขที่ไม่ไ $lang['js']['searchmedia'] = 'ค้นหาไฟล์'; $lang['js']['keepopen'] = 'เปิดหน้าต่างไว้ระหว่างที่เลืà¸à¸'; $lang['js']['hidedetails'] = 'ซ่à¸à¸™à¸£à¸²à¸¢à¸¥à¸°à¹€à¸à¸µà¸¢à¸”'; +$lang['js']['mediatitle'] = 'à¸à¸³à¸«à¸™à¸”ข้à¸à¸¡à¸¹à¸¥à¸¥à¸´à¸‡à¸„์'; +$lang['js']['mediadisplay'] = 'ชนิดขà¸à¸‡à¸¥à¸´à¸‡à¸„์'; +$lang['js']['mediaalign'] = 'à¸à¸²à¸£à¸ˆà¸±à¸”วาง'; +$lang['js']['mediasize'] = 'ขนาดรูปภาพ'; +$lang['js']['mediatarget'] = 'เป้าหมายขà¸à¸‡à¸¥à¸´à¸‡à¸„์'; +$lang['js']['mediaclose'] = 'ปิด'; +$lang['js']['mediainsert'] = 'à¹à¸—รà¸'; +$lang['js']['mediadisplayimg'] = 'à¹à¸ªà¸”งรูปภาพ'; +$lang['js']['mediadisplaylnk'] = 'à¹à¸ªà¸”งลิงค์ เท่านั้น'; +$lang['js']['mediasmall'] = 'รูปà¹à¸šà¸šà¸‚นาดเล็à¸'; +$lang['js']['mediamedium'] = 'รูปà¹à¸šà¸šà¸‚นาดà¸à¸¥à¸²à¸‡'; +$lang['js']['medialarge'] = 'รูปà¹à¸šà¸šà¸‚นาดใหà¸à¹ˆ'; +$lang['js']['mediaoriginal'] = 'รูปà¹à¸šà¸šà¸•à¸±à¹‰à¸‡à¸•à¹‰à¸™'; $lang['js']['nosmblinks'] = 'เชื่à¸à¸¡à¹„ปยังหน้าต่างà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™ ทำงานได้à¸à¸±à¸šà¹€à¸‰à¸žà¸²à¸°à¹„มโครซà¸à¸Ÿà¸—์à¸à¸´à¸™à¹€à¸•à¸à¸£à¹Œà¹€à¸™à¹‡à¸•à¹€à¸à¹‡à¸à¸‹à¹‚ปรเรà¸à¸£à¹Œ(IE) คุณยังคงสามารถคัดลà¸à¸à¹à¸¥à¸°à¹à¸›à¸°à¸¥à¸´à¹‰à¸‡à¸„์ได้'; $lang['js']['linkwiz'] = 'ลิงค์วิเศษ'; $lang['js']['linkto'] = 'ลิงค์ไป:'; diff --git a/lib/plugins/authplain/lang/th/lang.php b/lib/plugins/authplain/lang/th/lang.php index c7aaf68dd..463a27992 100644 --- a/lib/plugins/authplain/lang/th/lang.php +++ b/lib/plugins/authplain/lang/th/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; +$lang['userexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; diff --git a/lib/plugins/config/lang/th/lang.php b/lib/plugins/config/lang/th/lang.php index 68ee8b8a2..ce1d30d62 100644 --- a/lib/plugins/config/lang/th/lang.php +++ b/lib/plugins/config/lang/th/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Thai language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Komgrit Niyomrath <n.komgrit@gmail.com> * @author Kittithat Arnontavilas mrtomyum@gmail.com * @author Arthit Suriyawongkul <arthit@gmail.com> @@ -23,48 +24,48 @@ $lang['_links'] = 'à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าลิงà¸à¹Œ' $lang['_media'] = 'à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าภาพ-เสียง'; $lang['_advanced'] = 'à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าขั้นสูง'; $lang['_network'] = 'à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าเครืà¸à¸‚่าย'; +$lang['start'] = 'ชื่à¸à¸«à¸™à¹‰à¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™'; $lang['lang'] = 'ภาษา'; +$lang['savedir'] = 'ไดเรคทà¸à¸£à¸µà¸—ี่บันทึà¸à¸‚้à¸à¸¡à¸¹à¸¥'; $lang['basedir'] = 'ไดเรคทà¸à¸£à¸µà¸žà¸·à¹‰à¸™à¸à¸²à¸™'; $lang['baseurl'] = 'URL พื้นà¸à¸²à¸™'; -$lang['savedir'] = 'ไดเรคทà¸à¸£à¸µà¸—ี่บันทึà¸à¸‚้à¸à¸¡à¸¹à¸¥'; -$lang['start'] = 'ชื่à¸à¸«à¸™à¹‰à¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™'; $lang['recent'] = 'à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸¥à¹ˆà¸²à¸ªà¸¸à¸”'; -$lang['htmlok'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰ HTML'; -$lang['phpok'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰ PHP'; +$lang['recent_days'] = 'จำนวนวันที่เà¸à¹‡à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขล่าสุด'; $lang['signature'] = 'ลายเซนต์'; -$lang['usewordblock'] = 'คำที่จะถืà¸à¸§à¹ˆà¸²à¹€à¸›à¹‡à¸™à¸ªà¹à¸›à¸¡'; -$lang['relnofollow'] = 'ใช้ rel="nofollow" สำหรับลิงà¸à¹Œà¸ ายนà¸à¸'; +$lang['hidepages'] = 'ซ่à¸à¸™à¸«à¸™à¹‰à¸²à¸—ี่เข้าà¸à¸±à¸™à¹„ด้ (regular expressions)'; $lang['autopasswd'] = 'สร้างรหัสผ่านให้à¸à¸±à¸•à¹‚นมัติ'; $lang['passcrypt'] = 'à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹€à¸‚้ารหัส สำหรับเà¸à¹‡à¸šà¸šà¸±à¸™à¸—ึà¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™'; $lang['defaultgroup'] = 'à¸à¸¥à¸¸à¹ˆà¸¡à¸¡à¸²à¸•à¸£à¸à¸²à¸™'; $lang['profileconfirm'] = 'ใส่รหัสผ่านเพื่à¸à¸¢à¸·à¸™à¸¢à¸±à¸™à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚้à¸à¸¡à¸¹à¸¥'; +$lang['rememberme'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸ˆà¸”จำà¸à¸²à¸£ login à¹à¸šà¸šà¸–าวร'; $lang['disableactions_check'] = 'ตรวจสà¸à¸š'; $lang['auth_security_timeout'] = 'ระยะเวลาที่จะตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•à¹ˆà¸à¹à¸šà¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸”้วยสิทธิ์ผู้ใช้ (วินาที)'; -$lang['userewrite'] = 'à¹à¸ªà¸”งที่à¸à¸¢à¸¹à¹ˆà¹€à¸§à¹‡à¸š (URL) à¹à¸šà¸šà¸à¹ˆà¸²à¸™à¹€à¸‚้าใจง่าย'; -$lang['cachetime'] = 'ระยะเวลาสำหรับà¸à¸²à¸£à¹€à¸à¹‡à¸šà¹à¸„ช (วินาที)'; +$lang['usewordblock'] = 'คำที่จะถืà¸à¸§à¹ˆà¸²à¹€à¸›à¹‡à¸™à¸ªà¹à¸›à¸¡'; +$lang['relnofollow'] = 'ใช้ rel="nofollow" สำหรับลิงà¸à¹Œà¸ ายนà¸à¸'; +$lang['htmlok'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰ HTML'; +$lang['phpok'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰ PHP'; $lang['locktime'] = 'ระยะเวลานานสุด ที่จะล็à¸à¸„ไม่ให้à¹à¸à¹‰à¹„ขไฟล์ (วินาที)'; +$lang['cachetime'] = 'ระยะเวลาสำหรับà¸à¸²à¸£à¹€à¸à¹‡à¸šà¹à¸„ช (วินาที)'; +$lang['target____wiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายใน ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____interwiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œ interwiki ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____extern'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายนà¸à¸ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____media'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸¡à¸µà¹€à¸”ีย ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____windows'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸§à¸´à¸™à¹‚ดวส์ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['gdlib'] = 'เลขรุ่นขà¸à¸‡ GD Library'; $lang['fetchsize'] = 'ขนาดไฟล์ใหà¸à¹ˆà¸ªà¸¸à¸” (bytes) fetch.php ที่จะดาวน์โหลดจาà¸à¸ ายนà¸à¸'; $lang['notify'] = 'ส่งà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•à¸·à¸à¸™à¹„ปยังที่à¸à¸¢à¸¹à¹ˆà¸à¸µà¹€à¸¡à¸¥à¸™à¸µà¹‰'; -$lang['gzip_output'] = 'ใช้ gzip Content-Encoding สำหรับ xhtml'; -$lang['gdlib'] = 'เลขรุ่นขà¸à¸‡ GD Library'; -$lang['compress'] = 'บีบย่ภCSS à¹à¸¥à¸° javascript (เพื่à¸à¹ƒà¸«à¹‰à¹à¸ªà¸”งหน้าเว็บเร็วขึ้น)'; -$lang['hidepages'] = 'ซ่à¸à¸™à¸«à¸™à¹‰à¸²à¸—ี่เข้าà¸à¸±à¸™à¹„ด้ (regular expressions)'; -$lang['send404'] = 'ให้à¹à¸ªà¸”ง "HTTP 404/Page Not Found" เมื่à¸à¹„ม่พบข้à¸à¸¡à¸¹à¸¥à¸«à¸™à¹‰à¸²à¸™à¸±à¹‰à¸™'; $lang['sitemap'] = 'สร้าง à¸à¸¹à¹€à¸à¸´à¹‰à¸¥ ไซต์à¹à¸¡à¸ž (จำนวนวัน)'; -$lang['renderer__core'] = '%s (à¹à¸à¸™à¸«à¸¥à¸±à¸à¸‚à¸à¸‡ dokuwiki)'; -$lang['renderer__plugin'] = '%s (โปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡ - plugin)'; -$lang['rememberme'] = 'à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸ˆà¸”จำà¸à¸²à¸£ login à¹à¸šà¸šà¸–าวร'; $lang['rss_type'] = 'ชนิดขà¸à¸‡ XML feed'; $lang['rss_linkto'] = 'ลิงà¸à¹Œà¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยงไปยัง XML feed'; $lang['rss_content'] = 'ต้à¸à¸‡à¸à¸²à¸£à¹ƒà¸«à¹‰à¸¡à¸µà¸à¸°à¹„รà¹à¸ªà¸”งà¸à¸¢à¸¹à¹ˆà¹ƒà¸™ XML feed บ้าง?'; $lang['rss_update'] = 'ความถี่ในà¸à¸²à¸£à¸à¸±à¸žà¹€à¸”ท XML feed (เป็นวินาที)'; -$lang['recent_days'] = 'จำนวนวันที่เà¸à¹‡à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขล่าสุด'; $lang['rss_show_summary'] = 'ไตเติ้ลขà¸à¸‡à¸šà¸—สรุปย่à¸à¸‚à¸à¸‡ XML feed'; -$lang['target____wiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายใน ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____interwiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œ interwiki ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____extern'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายนà¸à¸ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____media'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸¡à¸µà¹€à¸”ีย ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____windows'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸§à¸´à¸™à¹‚ดวส์ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['userewrite'] = 'à¹à¸ªà¸”งที่à¸à¸¢à¸¹à¹ˆà¹€à¸§à¹‡à¸š (URL) à¹à¸šà¸šà¸à¹ˆà¸²à¸™à¹€à¸‚้าใจง่าย'; +$lang['gzip_output'] = 'ใช้ gzip Content-Encoding สำหรับ xhtml'; +$lang['compress'] = 'บีบย่ภCSS à¹à¸¥à¸° javascript (เพื่à¸à¹ƒà¸«à¹‰à¹à¸ªà¸”งหน้าเว็บเร็วขึ้น)'; +$lang['send404'] = 'ให้à¹à¸ªà¸”ง "HTTP 404/Page Not Found" เมื่à¸à¹„ม่พบข้à¸à¸¡à¸¹à¸¥à¸«à¸™à¹‰à¸²à¸™à¸±à¹‰à¸™'; +$lang['renderer__core'] = '%s (à¹à¸à¸™à¸«à¸¥à¸±à¸à¸‚à¸à¸‡ dokuwiki)'; +$lang['renderer__plugin'] = '%s (โปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡ - plugin)'; $lang['proxy____host'] = 'ชื่ภserver ขà¸à¸‡ proxy'; $lang['proxy____port'] = 'port ขà¸à¸‡ proxy'; $lang['proxy____user'] = 'user name ขà¸à¸‡ proxy'; -- GitLab From 0da48067cf10959c229d59c7441b7455d7b53a02 Mon Sep 17 00:00:00 2001 From: trebmuh <trebmuh@users.noreply.github.com> Date: Fri, 27 Nov 2015 14:56:58 +0100 Subject: [PATCH 401/440] Update lang.php * contributors duplication * adding myself to the contributors' list * typo --- lib/plugins/usermanager/lang/fr/lang.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index d45179e3e..eef81c6c5 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -15,16 +15,15 @@ * @author Florian Gaub <floriang@floriang.net> * @author Samuel Dorsaz samuel.dorsaz@novelion.net * @author Johan Guilbaud <guilbaud.johan@gmail.com> - * @author schplurtz@laposte.net * @author skimpax@gmail.com * @author Yannick Aure <yannick.aure@gmail.com> * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Antoine Turmel <geekshadow@gmail.com> - * @author schplurtz <Schplurtz@laposte.net> * @author Jérôme Brandt <jeromebrandt@gmail.com> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> + * @author Olivier Humbert <trebmuh@tuxfamily.org> */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -87,7 +86,7 @@ $lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\ $lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction'; $lang['addUser_error_missing_pass'] = 'Veuillez saisir un mot de passe ou activer la notification à l\'utilisateur pour permettre la génération d\'un mot de passe.'; $lang['addUser_error_pass_not_identical'] = 'Les mots de passe saisis diffèrent.'; -$lang['addUser_error_modPass_disabled'] = 'La modification des mot de passe est actuellement désactivée.'; +$lang['addUser_error_modPass_disabled'] = 'La modification des mots de passe est actuellement désactivée.'; $lang['addUser_error_name_missing'] = 'Veuillez saisir un nom pour le nouvel utilisateur.'; $lang['addUser_error_modName_disabled'] = 'La modification des noms est actuellement désactivée.'; $lang['addUser_error_mail_missing'] = 'Veuillez saisir une adressse de courriel pour le nouvel utilisateur.'; -- GitLab From 75b69859b6f166e0a819514c15cf6f45175bb0a5 Mon Sep 17 00:00:00 2001 From: Simon DELAGE <simon.geekitude@gmail.com> Date: Sat, 28 Nov 2015 07:41:40 +0100 Subject: [PATCH 402/440] translation update --- lib/plugins/config/lang/fr/lang.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 911460dab..d0047175c 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -25,6 +25,7 @@ * @author Nicolas Friedli <nicolas@theologique.ch> * @author Floriang <antispam@floriang.eu> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> + * @author Simon DELAGE <simon.geekitude@gmail.com> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; @@ -37,7 +38,7 @@ $lang['security'] = 'Avertissement de sécurité : modifier cette o $lang['_configuration_manager'] = 'Gestionnaire de configuration'; $lang['_header_dokuwiki'] = 'Paramètres de DokuWiki'; $lang['_header_plugin'] = 'Paramètres des extensions'; -$lang['_header_template'] = 'Paramètres des modèles'; +$lang['_header_template'] = 'Paramètres du modèle'; $lang['_header_undefined'] = 'Paramètres indéfinis'; $lang['_basic'] = 'Paramètres de base'; $lang['_display'] = 'Paramètres d\'affichage'; -- GitLab From 446125f5ccf1c171061483f9b94915bc600dcc11 Mon Sep 17 00:00:00 2001 From: trebmuh <trebmuh@users.noreply.github.com> Date: Sat, 28 Nov 2015 15:23:40 +0100 Subject: [PATCH 403/440] Update lang.php autor duplicated + < and > fixes. --- lib/plugins/config/lang/fr/lang.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index d0047175c..88f78f425 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -6,17 +6,16 @@ * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> - * @author stephane.gully@gmail.com + * @author <stephane.gully@gmail.com> * @author Guillaume Turri <guillaume.turri@gmail.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> * @author Philippe Bajoit <philippe.bajoit@gmail.com> * @author Florian Gaub <floriang@floriang.net> - * @author Samuel Dorsaz samuel.dorsaz@novelion.net + * @author Samuel Dorsaz <samuel.dorsaz@novelion.net> * @author Johan Guilbaud <guilbaud.johan@gmail.com> - * @author schplurtz@laposte.net - * @author skimpax@gmail.com + * @author <skimpax@gmail.com> * @author Yannick Aure <yannick.aure@gmail.com> * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> -- GitLab From fc3475d1f472d2cadb8fddf90a6b495645fdb159 Mon Sep 17 00:00:00 2001 From: Torpedo <dgtorpedo@gmail.com> Date: Sat, 28 Nov 2015 19:31:37 +0100 Subject: [PATCH 404/440] translation update --- lib/plugins/authad/lang/it/lang.php | 1 + lib/plugins/usermanager/lang/it/lang.php | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/plugins/authad/lang/it/lang.php b/lib/plugins/authad/lang/it/lang.php index 28eb8ff28..a30cd7cea 100644 --- a/lib/plugins/authad/lang/it/lang.php +++ b/lib/plugins/authad/lang/it/lang.php @@ -9,4 +9,5 @@ $lang['domain'] = 'Dominio di accesso'; $lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; $lang['passchangefail'] = 'Cambio password fallito. Forse non sono state rispettate le regole adottate per le password'; +$lang['userchangefail'] = 'Cambio attributi utente fallito. Forse il tuo account non ha i permessi per eseguire delle modifiche?'; $lang['connectfail'] = 'Connessione fallita al server Active Directory'; diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index 2b6a17499..fe52d5e91 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -79,3 +79,11 @@ $lang['import_error_readfail'] = 'Importazione in errore. Impossibile leggere i $lang['import_error_create'] = 'Impossibile creare l\'utente'; $lang['import_notify_fail'] = 'Non è stato possibile inviare un messaggio di notifica per l\'utente importato %s con e-mail %s.'; $lang['import_downloadfailures'] = 'Scarica operazioni non riuscite come CSV per correzione'; +$lang['addUser_error_missing_pass'] = 'Imposta una password oppure attiva la notifica utente per abilitare la generazione password.'; +$lang['addUser_error_pass_not_identical'] = 'Le password inserite non sono identiche.'; +$lang['addUser_error_modPass_disabled'] = 'La modifica delle password è al momento disabilitata.'; +$lang['addUser_error_name_missing'] = 'Inserire un nome per il nuovo utente.'; +$lang['addUser_error_modName_disabled'] = 'La modifica dei nomi è al momento disabilitata.'; +$lang['addUser_error_mail_missing'] = 'Inserire un indirizzo e-mail per il nuovo utente.'; +$lang['addUser_error_modMail_disabled'] = 'La modifica degli indirizzi e-mail è al momento disabilitata.'; +$lang['addUser_error_create_event_failed'] = 'Un plugin ha impedito che il nuovo utente venisse aggiunto. Rivedere gli altri messaggi per maggiori informazioni.'; -- GitLab From cb62a664a0bb4f62ff5061f9d1c53a12f3d3d476 Mon Sep 17 00:00:00 2001 From: JustinTrouble <github.com@justintrouble.co.uk> Date: Mon, 30 Nov 2015 13:55:45 +0000 Subject: [PATCH 405/440] Fixed bug in obtainLock(), where it always fails to verify the lock. This fixes #1019, fixes #1311 --- bin/dwpage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/dwpage.php b/bin/dwpage.php index d7f6e9bb8..1c1a1c10e 100755 --- a/bin/dwpage.php +++ b/bin/dwpage.php @@ -248,7 +248,7 @@ class PageCLI extends DokuCLI { lock($wiki_id); - if(checklock($wiki_id) != $this->username) { + if(checklock($wiki_id)) { $this->error("Unable to obtain lock for $wiki_id "); var_dump(checklock($wiki_id)); exit(1); -- GitLab From da3192ebfaddd301ae7ec663b69ab7796a4ca4fe Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Wed, 2 Dec 2015 16:03:55 +0100 Subject: [PATCH 406/440] PHP 7 is no longer allowed to fail --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 61e47522d..03fba5b4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,15 @@ language: php sudo: false php: + - "7.0" - "5.6" - "5.5" - "5.4" - "5.3" - "hhvm" - - "nightly" matrix: allow_failures: - php: "hhvm" - - php: "nightly" notifications: irc: channels: -- GitLab From e6dc6d2e28b927f4ce92274a939087be80b617ca Mon Sep 17 00:00:00 2001 From: lainme <lainme993@gmail.com> Date: Fri, 4 Dec 2015 09:21:12 +0100 Subject: [PATCH 407/440] translation update --- lib/plugins/authad/lang/zh/lang.php | 1 + lib/plugins/usermanager/lang/zh/lang.php | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php index df1a7a7f7..30d504515 100644 --- a/lib/plugins/authad/lang/zh/lang.php +++ b/lib/plugins/authad/lang/zh/lang.php @@ -9,4 +9,5 @@ $lang['domain'] = '登录域'; $lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; $lang['passchangefail'] = '密ç 更改失败。是ä¸æ˜¯å¯†ç 规则ä¸ç¬¦åˆï¼Ÿ'; +$lang['userchangefail'] = '更改用户属性失败。或许您的å¸å·æ²¡æœ‰åšæ¤æ›´æ”¹çš„æƒé™ï¼Ÿ'; $lang['connectfail'] = 'æ— æ³•è¿žæŽ¥åˆ°Active DirectoryæœåŠ¡å™¨ã€‚'; diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index ffa430966..69d0c8189 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -79,5 +79,11 @@ $lang['import_error_readfail'] = 'å¯¼å…¥å¤±è´¥ã€‚æ— æ³•è¯»å–ä¸Šä¼ çš„æ–‡ä»¶ã€‚' $lang['import_error_create'] = 'ä¸èƒ½åˆ›å»ºæ–°ç”¨æˆ·'; $lang['import_notify_fail'] = '通知消æ¯æ— 法å‘é€åˆ°å¯¼å…¥çš„用户 %s,电å邮件地å€æ˜¯ %s。'; $lang['import_downloadfailures'] = '下载CSV的错误信æ¯ä»¥ä¿®æ£ã€‚'; +$lang['addUser_error_missing_pass'] = '请设置一个密ç 或者激活用户通知æ¥å¯ç”¨å¯†ç 生æˆã€‚'; +$lang['addUser_error_pass_not_identical'] = '输入的密ç ä¸ç›¸åŒã€‚'; +$lang['addUser_error_modPass_disabled'] = '修改密ç å·²ç¦ç”¨'; $lang['addUser_error_name_missing'] = '请为新用户输入一个åå—。'; +$lang['addUser_error_modName_disabled'] = '修改åå—å·²ç¦ç”¨'; $lang['addUser_error_mail_missing'] = '请为新用户输入一个电å邮件地å€ã€‚'; +$lang['addUser_error_modMail_disabled'] = '修改邮件地å€å·²ç¦ç”¨'; +$lang['addUser_error_create_event_failed'] = '一个æ’件阻æ¢äº†æ·»åŠ 新用户。请查看其它å¯èƒ½çš„消æ¯æ¥èŽ·å–更多信æ¯ã€‚'; -- GitLab From 6e2d09ae3bc63e6e601fc181d4db03954fb23d63 Mon Sep 17 00:00:00 2001 From: Werner Flamme/WKDV <werner.flamme@ufz.de> Date: Mon, 7 Dec 2015 15:20:20 +0100 Subject: [PATCH 408/440] Adapt .htaccess files for Apache 2.4 --- .htaccess.dist | 9 +++++++-- bin/.htaccess | 9 +++++++-- conf/.htaccess | 9 +++++++-- data/.htaccess | 9 +++++++-- inc/.htaccess | 9 +++++++-- inc/lang/.htaccess | 9 +++++++-- 6 files changed, 42 insertions(+), 12 deletions(-) diff --git a/.htaccess.dist b/.htaccess.dist index 5724a6e04..ec28dff85 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -6,8 +6,13 @@ ## make sure nobody gets the htaccess, README, COPYING or VERSION files <Files ~ "^([\._]ht|README$|VERSION$|COPYING$)"> - Order allow,deny - Deny from all + <IfModule mod_authz_host> + Require all denied + </IfModule> + <IfModule !mod_authz_host> + Order allow,deny + Deny from all + </IfModule> </Files> ## Uncomment these rules if you want to have nice URLs using diff --git a/bin/.htaccess b/bin/.htaccess index 281d5c33d..5f279f180 100644 --- a/bin/.htaccess +++ b/bin/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/conf/.htaccess b/conf/.htaccess index bcc3ea0bd..b3ffca597 100644 --- a/conf/.htaccess +++ b/conf/.htaccess @@ -1,3 +1,8 @@ ## no access to the conf directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/data/.htaccess b/data/.htaccess index 281d5c33d..5f279f180 100644 --- a/data/.htaccess +++ b/data/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/inc/.htaccess b/inc/.htaccess index 2d9c357ff..2b34c725f 100644 --- a/inc/.htaccess +++ b/inc/.htaccess @@ -1,3 +1,8 @@ ## no access to the inc directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/inc/lang/.htaccess b/inc/lang/.htaccess index 2d69be754..2aaae02fd 100644 --- a/inc/lang/.htaccess +++ b/inc/lang/.htaccess @@ -1,3 +1,8 @@ ## no access to the lang directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> -- GitLab From 925617179ad74eaa7a990a9607ea7a3f2e106d07 Mon Sep 17 00:00:00 2001 From: sagi <sagiyosef@gmail.com> Date: Thu, 10 Dec 2015 20:01:14 +0100 Subject: [PATCH 409/440] translation update --- inc/lang/he/lang.php | 5 +- lib/plugins/authad/lang/he/lang.php | 2 +- lib/plugins/authplain/lang/he/lang.php | 5 +- lib/plugins/config/lang/he/lang.php | 87 +++++++++++++------------- 4 files changed, 52 insertions(+), 47 deletions(-) diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index a24ccace9..7926d87e6 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ×’×™× ×©×¤×¨ <guysoft@ort.org.il> * @author Denis Simakov <akinoame1@gmail.com> * @author Dotan Kamber <kamberd@yahoo.com> @@ -15,6 +15,7 @@ * @author tomer <tomercarolldergicz@gmail.com> * @author itsho <itsho.itsho@gmail.com> * @author Menashe Tomer <menashesite@gmail.com> + * @author sagi <sagiyosef@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -95,6 +96,7 @@ $lang['profdeleteuser'] = 'הסר חשבון'; $lang['profdeleted'] = 'חשבון המשתמש שלך × ×ž×—×§ מויקי ×–×”'; $lang['profconfdelete'] = '×‘×¨×¦×•× ×™ להסיר ×ת החשבון שלי מוויקי ×–×”. <br/> ×œ× × ×™×ª×Ÿ לבטל פעולה זו.'; $lang['profconfdeletemissing'] = 'תיבת ×ישור ××™× ×• מסומן'; +$lang['proffail'] = 'פרופיל המשתמש ×œ× ×¢×•×“×›×Ÿ'; $lang['pwdforget'] = 'שכחת ×ת הססמה שלך? × ×™×ª×Ÿ לקבל חדשה'; $lang['resendna'] = 'הוויקי ×”×–×” ××™× ×• תומך בחידוש ססמה'; $lang['resendpwd'] = 'הגדר ×¡×™×¡×ž× ×—×“×©×” בעבור'; @@ -341,6 +343,7 @@ $lang['media_perm_read'] = 'מצטערי×, ×ין לך הרש×ות לק $lang['media_perm_upload'] = 'מצטערי×, ×ין לך הרש×ות להעלות קבצי×.'; $lang['media_update'] = 'העלה גירסה חדשה'; $lang['media_restore'] = 'שחזר גירסה זו'; +$lang['media_acl_warning'] = 'רשימה זו עלולה להיות חסרה עכב חוסר בהרש×ות ×ו ×“×¤×™× ×ž×•×¡×ª×¨×™×'; $lang['currentns'] = '×©× ×ž×¨×—×‘ × ×•×›×—×™'; $lang['searchresult'] = 'תוצ×ות חיפוש'; $lang['plainhtml'] = 'HTML פשוט'; diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php index ac8fbcb5c..5b193ed5f 100644 --- a/lib/plugins/authad/lang/he/lang.php +++ b/lib/plugins/authad/lang/he/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author tomer <tomercarolldergicz@gmail.com> * @author Menashe Tomer <menashesite@gmail.com> */ diff --git a/lib/plugins/authplain/lang/he/lang.php b/lib/plugins/authplain/lang/he/lang.php index 01d877b62..160968edd 100644 --- a/lib/plugins/authplain/lang/he/lang.php +++ b/lib/plugins/authplain/lang/he/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; +$lang['userexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; diff --git a/lib/plugins/config/lang/he/lang.php b/lib/plugins/config/lang/he/lang.php index bddfd90af..416d775d0 100644 --- a/lib/plugins/config/lang/he/lang.php +++ b/lib/plugins/config/lang/he/lang.php @@ -1,13 +1,14 @@ <?php + /** - * hebrew language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> * @author Yaron Yogev <yaronyogev@gmail.com> * @author Yaron Shahrabani <sh.yaron@gmail.com> + * @author sagi <sagiyosef@gmail.com> */ $lang['menu'] = 'הגדרות תצורה'; $lang['error'] = 'ההגדרות ×œ× ×¢×•×“×›× ×• בגלל ערך ×œ× ×ª×§×£, × × ×œ×¢×™×™×Ÿ ×‘×©×™× ×•×™×™× ×•×œ×©×œ×•×— ×©× ×™×ª. @@ -33,22 +34,22 @@ $lang['_network'] = 'הגדרות רשת'; $lang['_msg_setting_undefined'] = '×ין מידע-על להגדרה.'; $lang['_msg_setting_no_class'] = '×ין קבוצה להגדרה.'; $lang['_msg_setting_no_default'] = '×ין ערך ברירת מחדל.'; -$lang['fmode'] = 'מצב יצירת קובץ'; -$lang['dmode'] = 'מצב יצירת ספריה'; +$lang['title'] = 'כותרת הויקי'; +$lang['start'] = '×©× ×“×£ הפתיחה'; $lang['lang'] = 'שפה'; +$lang['template'] = '×ª×‘× ×™×ª'; +$lang['savedir'] = 'ספריה לשמירת מידע'; $lang['basedir'] = 'ספרית בסיס'; $lang['baseurl'] = 'כתובת URL בסיסית'; -$lang['savedir'] = 'ספריה לשמירת מידע'; -$lang['start'] = '×©× ×“×£ הפתיחה'; -$lang['title'] = 'כותרת הויקי'; -$lang['template'] = '×ª×‘× ×™×ª'; -$lang['fullpath'] = 'הצגת × ×ª×™×‘ ×ž×œ× ×œ×“×¤×™× ×‘×ª×—×ª×™×ª'; +$lang['dmode'] = 'מצב יצירת ספריה'; +$lang['fmode'] = 'מצב יצירת קובץ'; +$lang['allowdebug'] = '×פשר דיבוג <b>יש לבטל ×× ×ין צורך!</b>'; $lang['recent'] = '×©×™× ×•×™×™× ××—×¨×•× ×™×'; +$lang['recent_days'] = 'כמה ×©×™× ×•×™×™× ××—×¨×•× ×™× ×œ×©×ž×•×¨ (ימי×)'; $lang['breadcrumbs'] = 'מספר עקבות להיסטוריה'; $lang['youarehere'] = 'עקבות היררכיות להיסטוריה'; +$lang['fullpath'] = 'הצגת × ×ª×™×‘ ×ž×œ× ×œ×“×¤×™× ×‘×ª×—×ª×™×ª'; $lang['typography'] = 'שימוש בחלופות טיפוגרפיות'; -$lang['htmlok'] = '×ישור שיבוץ HTML'; -$lang['phpok'] = '×ישור שיבוץ PHP'; $lang['dformat'] = 'תסדיר ת×ריך (× × ×œ×¤× ×•×ª ×œ×¤×•× ×§×¦×™×” <a href="http://www.php.net/strftime">strftime</a> של PHP)'; $lang['signature'] = 'חתימה'; $lang['toptoclevel'] = 'רמה ×¢×œ×™×•× ×” בתוכן ×”×¢× ×™× ×™×'; @@ -57,13 +58,8 @@ $lang['maxseclevel'] = 'רמה מירבית בעריכת קטעי×'; $lang['camelcase'] = 'השתמש בר×שיות גדולות לקישורי×'; $lang['deaccent'] = '× ×§×” שמות דפי×'; $lang['useheading'] = 'השתמש בכותרת הר××©×•× ×” ×œ×©× ×”×“×£'; -$lang['refcheck'] = 'בדוק שיוך מדיה'; -$lang['allowdebug'] = '×פשר דיבוג <b>יש לבטל ×× ×ין צורך!</b>'; -$lang['usewordblock'] = 'חסימת דו×ר זבל לפי רשימת מילי×'; -$lang['indexdelay'] = 'השהיה ×‘×˜×¨× ×”×›× ×¡×” ל××™× ×“×§×¡ (×©× ×™×•×ª)'; -$lang['relnofollow'] = 'השתמש ב- rel="nofollow" ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; -$lang['mailguard'] = 'הגן על כתובות דו×"ל'; -$lang['iexssprotect'] = 'בדוק ×ת ×”×“×¤×™× ×”×ž×•×¢×œ×™× ×œ×—×©×“ ל-JavaScript ×ו קוד HTML ×–×“×•× ×™'; +$lang['sneaky_index'] = 'כברירת מחדל, דוקוויקי יציג ×ת כל מרחבי השמות בתצוגת תוכן ×”×¢× ×™× ×™×. בחירה ב×פשרות ×–×ת תסתיר ×ת ×לו ×©×‘×”× ×œ×ž×©×ª×ž×© ×ין הרש×ות קרי××”. התוצ××” עלולה להיות הסתרת תת מרחבי שמות ××œ×™×”× ×™×© למשתמש גישה. ב×ופן ×–×” תוכן ×”×¢× ×™× ×™× ×¢×œ×•×œ להפוך לחסר תועלת ×¢× ×”×’×“×¨×•×ª ACL מסוימות'; +$lang['hidepages'] = 'הסתר ×“×¤×™× ×ª×•××ž×™× (×‘×™×˜×•×™×™× ×¨×’×•×œ×¨×™×™×)'; $lang['useacl'] = 'השתמש ברשימות בקרת גישה'; $lang['autopasswd'] = 'צור סיסמ×ות ב×ופן ×וטומטי'; $lang['authtype'] = '×ž× ×•×¢ הזדהות'; @@ -77,47 +73,52 @@ $lang['disableactions_check'] = 'בדיקה'; $lang['disableactions_subscription'] = 'הרשמה/הסרה מרשימה'; $lang['disableactions_wikicode'] = 'הצגת המקור/×™×¦×•× ×’×•×œ×ž×™'; $lang['disableactions_other'] = 'פעולות ×חרות (מופרדות בפסיק)'; -$lang['sneaky_index'] = 'כברירת מחדל, דוקוויקי יציג ×ת כל מרחבי השמות בתצוגת תוכן ×”×¢× ×™× ×™×. בחירה ב×פשרות ×–×ת תסתיר ×ת ×לו ×©×‘×”× ×œ×ž×©×ª×ž×© ×ין הרש×ות קרי××”. התוצ××” עלולה להיות הסתרת תת מרחבי שמות ××œ×™×”× ×™×© למשתמש גישה. ב×ופן ×–×” תוכן ×”×¢× ×™× ×™× ×¢×œ×•×œ להפוך לחסר תועלת ×¢× ×”×’×“×¨×•×ª ACL מסוימות'; $lang['auth_security_timeout'] = 'מגבלת ×בטח פסק הזמן להזדהות (×©× ×™×•×ª)'; +$lang['usewordblock'] = 'חסימת דו×ר זבל לפי רשימת מילי×'; +$lang['relnofollow'] = 'השתמש ב- rel="nofollow" ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; +$lang['indexdelay'] = 'השהיה ×‘×˜×¨× ×”×›× ×¡×” ל××™× ×“×§×¡ (×©× ×™×•×ª)'; +$lang['mailguard'] = 'הגן על כתובות דו×"ל'; +$lang['iexssprotect'] = 'בדוק ×ת ×”×“×¤×™× ×”×ž×•×¢×œ×™× ×œ×—×©×“ ל-JavaScript ×ו קוד HTML ×–×“×•× ×™'; +$lang['usedraft'] = 'שמור טיוטות ב×ופן ×וטומטי בעת עריכה'; +$lang['htmlok'] = '×ישור שיבוץ HTML'; +$lang['phpok'] = '×ישור שיבוץ PHP'; +$lang['locktime'] = 'גיל מירבי לקבצי × ×¢×™×œ×” (×©× ×™×•×ª)'; +$lang['cachetime'] = 'גיל מירבי לזכרון מטמון (×©× ×™×•×ª)'; +$lang['target____wiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×¤× ×™×ž×™×™×'; +$lang['target____interwiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×‘×™×Ÿ מערכות ויקי'; +$lang['target____extern'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; +$lang['target____media'] = 'חלון יעד לקישור למדיה'; +$lang['target____windows'] = 'חלון יעד לתיקיות משותפות'; +$lang['refcheck'] = 'בדוק שיוך מדיה'; +$lang['gdlib'] = 'גרסת ספרית ×”-GD'; +$lang['im_convert'] = '× ×ª×™×‘ לכלי ×”-convert של ImageMagick'; +$lang['jpg_quality'] = '×יכות הדחיסה של JPG (0-100)'; +$lang['fetchsize'] = 'גודל הקובץ המירבי (bytes) ש-fetch.php יכול להוריד מבחוץ'; +$lang['subscribers'] = 'התר תמיכה ×‘×¨×™×©×•× ×œ×“×¤×™×'; +$lang['notify'] = 'שלח התר×ות על ×©×™× ×•×™×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; +$lang['registernotify'] = 'שלח מידע על ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×—×“×©×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; +$lang['mailfrom'] = 'כתובת הדו×"ל לשימוש בדברי דו×"ל ×וטומטיי×'; +$lang['sitemap'] = 'צור מפת ×תר של Google (ימי×)'; +$lang['rss_type'] = 'סוג פלט XML'; +$lang['rss_linkto'] = 'פלט ×”-XML מקשר ×ל'; +$lang['rss_content'] = 'מה להציג בפרטי פלט ×”-XML'; +$lang['rss_update'] = 'פלט ×”-XML מתעדכן כל (×©× ×™×•×ª)'; +$lang['rss_show_summary'] = 'פלט ×”-XML מציג תקציר בכותרת'; $lang['updatecheck'] = 'בדיקת ×¢×™×“×›×•× ×™ ×בטחה והתר×ות? על DokuWiki להתקשר ×ל update.dokuwiki.org לצורך כך.'; $lang['userewrite'] = 'השתמש בכתובות URL יפות'; $lang['useslash'] = 'השתמש בלוכסן להגדרת מרחבי שמות בכתובות'; -$lang['usedraft'] = 'שמור טיוטות ב×ופן ×וטומטי בעת עריכה'; $lang['sepchar'] = 'מפריד בין מילות ש×-דף'; $lang['canonical'] = 'השתמש בכתובות URL מל×ות'; $lang['autoplural'] = 'בדוק לצורת ×¨×‘×™× ×‘×§×™×©×•×¨×™×'; $lang['compression'] = '×ופן דחיסת ×§×‘×¦×™× ×‘-attic'; -$lang['cachetime'] = 'גיל מירבי לזכרון מטמון (×©× ×™×•×ª)'; -$lang['locktime'] = 'גיל מירבי לקבצי × ×¢×™×œ×” (×©× ×™×•×ª)'; -$lang['fetchsize'] = 'גודל הקובץ המירבי (bytes) ש-fetch.php יכול להוריד מבחוץ'; -$lang['notify'] = 'שלח התר×ות על ×©×™× ×•×™×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; -$lang['registernotify'] = 'שלח מידע על ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×—×“×©×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; -$lang['mailfrom'] = 'כתובת הדו×"ל לשימוש בדברי דו×"ל ×וטומטיי×'; $lang['gzip_output'] = 'השתמש בקידוד תוכן של gzip עבור xhtml'; -$lang['gdlib'] = 'גרסת ספרית ×”-GD'; -$lang['im_convert'] = '× ×ª×™×‘ לכלי ×”-convert של ImageMagick'; -$lang['jpg_quality'] = '×יכות הדחיסה של JPG (0-100)'; -$lang['subscribers'] = 'התר תמיכה ×‘×¨×™×©×•× ×œ×“×¤×™×'; $lang['compress'] = 'פלט קומפקטי של CSS ו-javascript'; -$lang['hidepages'] = 'הסתר ×“×¤×™× ×ª×•××ž×™× (×‘×™×˜×•×™×™× ×¨×’×•×œ×¨×™×™×)'; $lang['send404'] = 'שלח "HTTP 404/Page Not Found" עבור ×“×¤×™× ×©××™× × ×§×™×™×ž×™×'; -$lang['sitemap'] = 'צור מפת ×תר של Google (ימי×)'; $lang['broken_iua'] = '×”×× ×”×¤×¢×•×œ×” ignore_user_abort תקולה במערכת שלך? הדבר עלול ×œ×”×‘×™× ×œ×ª×•×›×Ÿ חיפוש ש××™× ×• תקין. IIS+PHP/CGI ידוע כתקול. ר××” ×ת <a href="http://bugs.splitbrain.org/?do=details&task_id=852">ב××’ 852</a> למידע × ×•×¡×£'; $lang['xsendfile'] = 'להשתמש בכותר X-Sendfile כדי ל×פשר לשרת לספק ×§×‘×¦×™× ×¡×˜×˜×™×™×? על השרת שלך לתמוך ב×פשרות ×–×ת.'; $lang['renderer_xhtml'] = 'מחולל לשימוש עבור פלט הויקי העיקרי (xhtml)'; $lang['renderer__core'] = '%s (ליבת דוקוויקי)'; $lang['renderer__plugin'] = '%s (הרחבות)'; -$lang['rss_type'] = 'סוג פלט XML'; -$lang['rss_linkto'] = 'פלט ×”-XML מקשר ×ל'; -$lang['rss_content'] = 'מה להציג בפרטי פלט ×”-XML'; -$lang['rss_update'] = 'פלט ×”-XML מתעדכן כל (×©× ×™×•×ª)'; -$lang['recent_days'] = 'כמה ×©×™× ×•×™×™× ××—×¨×•× ×™× ×œ×©×ž×•×¨ (ימי×)'; -$lang['rss_show_summary'] = 'פלט ×”-XML מציג תקציר בכותרת'; -$lang['target____wiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×¤× ×™×ž×™×™×'; -$lang['target____interwiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×‘×™×Ÿ מערכות ויקי'; -$lang['target____extern'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; -$lang['target____media'] = 'חלון יעד לקישור למדיה'; -$lang['target____windows'] = 'חלון יעד לתיקיות משותפות'; $lang['proxy____host'] = '×©× ×”×©×¨×ª המתווך'; $lang['proxy____port'] = 'שער השרת המתווך'; $lang['proxy____user'] = '×©× ×”×ž×©×ª×ž×© בשרת המתווך'; -- GitLab From ef9dc9b833b06789b70f618bf9643f724fa3b956 Mon Sep 17 00:00:00 2001 From: Erial <erial2@gmail.com> Date: Mon, 14 Dec 2015 03:01:12 +0100 Subject: [PATCH 410/440] translation update --- inc/lang/ko/admin.txt | 2 +- inc/lang/ko/lang.php | 1 + lib/plugins/authad/lang/ko/lang.php | 2 ++ lib/plugins/config/lang/ko/lang.php | 1 + lib/plugins/revert/lang/ko/lang.php | 1 + lib/plugins/usermanager/lang/ko/lang.php | 9 +++++++++ 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/inc/lang/ko/admin.txt b/inc/lang/ko/admin.txt index 2f81e8961..408da1f8f 100644 --- a/inc/lang/ko/admin.txt +++ b/inc/lang/ko/admin.txt @@ -1,3 +1,3 @@ ====== 관리 ====== -ë„ì¿ ìœ„í‚¤ì—ì„œ ì‚¬ìš©í• ìˆ˜ 있는 관리 ìž‘ì—… 목ë¡ì„ 아래ì—ì„œ ì°¾ì„ ìˆ˜ 있습니다. \ No newline at end of file +ë„ì¿ ìœ„í‚¤ì—ì„œ ì‚¬ìš©í• ìˆ˜ 있는 관리 ìž‘ì—… 목ë¡ì€ 아래와 같습니다. \ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 5ee0df829..9eefdf577 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -14,6 +14,7 @@ * @author Garam <rowain8@gmail.com> * @author Young gon Cha <garmede@gmail.com> * @author hyeonsoft <hyeonsoft@live.co.kr> + * @author Erial <erial2@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/ko/lang.php b/lib/plugins/authad/lang/ko/lang.php index 7e9b22f40..1326f28b4 100644 --- a/lib/plugins/authad/lang/ko/lang.php +++ b/lib/plugins/authad/lang/ko/lang.php @@ -4,8 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['domain'] = '로그온 ë„ë©”ì¸'; $lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 곧 바꿔야 합니다.'; $lang['passchangefail'] = '비밀번호를 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 비밀번호 ì •ì±…ì„ ë”°ë¥´ì§€ 않았나요?'; +$lang['userchangefail'] = '사용ìžì˜ 특성 ë³€ê²½ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 사용하시는 ê³„ì •ì— ë³€ê²½ ê¶Œí•œì´ ìžˆëŠ”ì§€ 확ì¸í•´ì£¼ì‹ì‹œì˜¤.'; $lang['connectfail'] = 'Active Directory ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 420946f84..979359526 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -9,6 +9,7 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = '환경 ì„¤ì •'; $lang['error'] = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다, ë°”ë€œì„ ê²€í† í•˜ê³ ë‹¤ì‹œ ì œì¶œí•˜ì„¸ìš”. diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index f99b0ab23..263537203 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -9,6 +9,7 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = 'ë˜ëŒë¦¬ê¸° 관리ìž'; $lang['filter'] = '스팸 문서 검색'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index ec55d5586..af020a72d 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -11,6 +11,7 @@ * @author Myeongjin <aranet100@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Garam <rowain8@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = 'ì‚¬ìš©ìž ê´€ë¦¬ìž'; $lang['noauth'] = '(ì‚¬ìš©ìž ì¸ì¦ì„ ì‚¬ìš©í• ìˆ˜ 없습니다)'; @@ -71,3 +72,11 @@ $lang['import_error_readfail'] = 'ê°€ì ¸ì˜¤ê¸°ë¥¼ 실패했습니다. 올린 파 $lang['import_error_create'] = '사용ìžë¥¼ 만들 수 없습니다'; $lang['import_notify_fail'] = '알림 메시지를 ê°€ì ¸ì˜¨ %s (ì´ë©”ì¼: %s) 사용ìžì—게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = 'êµì •ì„ 위한 CSVë¡œ 다운로드 실패'; +$lang['addUser_error_missing_pass'] = '암호를 ìž…ë ¥í•˜ì‹œê±°ë‚˜, 암호 ìƒì„± ê¸°ëŠ¥ì´ ì¼œì§„ 경우 ì‚¬ìš©ìž ì•Œë¦¼ì„ í™œì„±í™” 해주ì‹ì‹œì˜¤.'; +$lang['addUser_error_pass_not_identical'] = 'ìž…ë ¥ëœ ì•”í˜¸ê°€ ì¼ì¹˜í•˜ì§€ 않습니다.'; +$lang['addUser_error_modPass_disabled'] = '현재 암호 ë³€ê²½ì´ ê¸ˆì§€ë˜ì–´ìžˆìŠµë‹ˆë‹¤'; +$lang['addUser_error_name_missing'] = '새 사용ìžì˜ ì´ë¦„ì„ ë„£ì–´ì£¼ì„¸ìš”.'; +$lang['addUser_error_modName_disabled'] = '현재 ì´ë¦„ ë³€ê²½ì´ ê¸ˆì§€ë˜ì–´ìžˆìŠµë‹ˆë‹¤.'; +$lang['addUser_error_mail_missing'] = '새 사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ 넣어주세요.'; +$lang['addUser_error_modMail_disabled'] = '현재 ì´ë©”ì¼ ì£¼ì†Œ ë³€ê²½ì´ ê¸ˆì§€ë˜ì–´ìžˆìŠµë‹ˆë‹¤.'; +$lang['addUser_error_create_event_failed'] = '새 ì‚¬ìš©ìž ì¶”ê°€ë¥¼ 플러그ì¸ì´ 막았습니다. ì •í™•í•œ ì •ë³´ë¥¼ 위한 메시지를 ë³´ê³ í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; -- GitLab From edbc76a7be234ddf4089f74fb2bcc05fd4b635a9 Mon Sep 17 00:00:00 2001 From: ms <msocial@posteo.de> Date: Tue, 15 Dec 2015 16:11:22 +0100 Subject: [PATCH 411/440] translation update --- lib/plugins/usermanager/lang/de/lang.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 1ed2bfa52..a388eb531 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -23,6 +23,7 @@ * @author Ben Fey <benedikt.fey@beck-heun.de> * @author Jonas Gröger <jonas.groeger@gmail.com> * @author Uwe Benzelrath <uwebenzelrath@gmail.com> + * @author ms <msocial@posteo.de> */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -84,5 +85,9 @@ $lang['import_error_create'] = 'User konnte nicht angelegt werden'; $lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; $lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen'; $lang['addUser_error_pass_not_identical'] = 'Die eingegebenen Passwörter stimmen nicht überein.'; +$lang['addUser_error_modPass_disabled'] = 'Das bearbeiten von Passwörtern ist momentan deaktiviert'; $lang['addUser_error_name_missing'] = 'Bitte geben sie den Namen des neuen Benutzer ein.'; +$lang['addUser_error_modName_disabled'] = 'Das bearbeiten von Namen ist momentan deaktiviert.'; $lang['addUser_error_mail_missing'] = 'Bitte geben sie die E-Mail-Adresse des neuen Benutzer ein.'; +$lang['addUser_error_modMail_disabled'] = 'Das bearbeiten von E-Mailadressen ist momentan deaktiviert.'; +$lang['addUser_error_create_event_failed'] = 'Ein Plug-in hat das hinzufügen des neuen Benutzers verhindert. Für weitere Informationen, sehen Sie sich mögliche andere Meldungen an.'; -- GitLab From 2a3a2fe63db5de88999963da70cbb1caee094bec Mon Sep 17 00:00:00 2001 From: Alfredo Silva <alfredo.silva@sky.com> Date: Thu, 17 Dec 2015 07:51:19 +0100 Subject: [PATCH 412/440] translation update --- inc/lang/pt/admin.txt | 2 +- inc/lang/pt/adminplugins.txt | 2 +- inc/lang/pt/backlinks.txt | 2 +- inc/lang/pt/conflict.txt | 6 +++--- inc/lang/pt/denied.txt | 2 +- inc/lang/pt/diff.txt | 4 +--- inc/lang/pt/lang.php | 21 +++++++++++---------- lib/plugins/config/lang/pt/lang.php | 4 ++++ lib/plugins/extension/lang/pt/lang.php | 4 ++++ lib/plugins/styling/lang/pt/lang.php | 13 +++++++++++++ lib/plugins/usermanager/lang/pt/lang.php | 1 + 11 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 lib/plugins/styling/lang/pt/lang.php diff --git a/inc/lang/pt/admin.txt b/inc/lang/pt/admin.txt index 366792a9b..5b103b38d 100644 --- a/inc/lang/pt/admin.txt +++ b/inc/lang/pt/admin.txt @@ -1,3 +1,3 @@ ====== Administração ====== -Abaixo pode encontrar uma lista de tarefas de administrativas permitidas pelo DokuWiki. \ No newline at end of file +Abaixo pode encontrar uma lista de tarefas de administrativas disponÃveis na DokuWiki. \ No newline at end of file diff --git a/inc/lang/pt/adminplugins.txt b/inc/lang/pt/adminplugins.txt index 3eac7af53..259f5ce45 100644 --- a/inc/lang/pt/adminplugins.txt +++ b/inc/lang/pt/adminplugins.txt @@ -1 +1 @@ -===== Plugins Adicionais ===== \ No newline at end of file +===== Extras Adicionais ===== \ No newline at end of file diff --git a/inc/lang/pt/backlinks.txt b/inc/lang/pt/backlinks.txt index e78ddf874..4eb82cb26 100644 --- a/inc/lang/pt/backlinks.txt +++ b/inc/lang/pt/backlinks.txt @@ -1,4 +1,4 @@ ====== Backlinks ====== -Esta é uma lista de todos os documentos que apresentam ligações ao documento corrente. +Esta é uma lista de páginas que parece que interliga para a página atual. diff --git a/inc/lang/pt/conflict.txt b/inc/lang/pt/conflict.txt index b6d7319b0..49575fdb8 100644 --- a/inc/lang/pt/conflict.txt +++ b/inc/lang/pt/conflict.txt @@ -1,5 +1,5 @@ -====== Uma versão mais recente existe ====== +====== Existe uma versão mais recente ====== -Existe uma versão mais recente do documento editado. Isso acontece quando um outro usuário alterou o documento enquanto você estava editando. +Existe uma versão mais recente do documento editado. Isto acontece quando um outro utilizador alterou o documento enquanto o estava a editar. -Examine cuidadosamente as diferenças mostradas abaixo, em seguida, decida qual versão manter. Se você escolher ''salvar '', sua versão será salva. Clique ''cancelar '' para manter a versão atual. +Analise cuidadosamente as diferenças mostradas abaixo, depois decida qual a versão a manter. Se escolher 'guardar'', a sua versão será guardada. Clique em ''cancelar '' para manter a versão atual. diff --git a/inc/lang/pt/denied.txt b/inc/lang/pt/denied.txt index 84c3a9406..f4e8e0114 100644 --- a/inc/lang/pt/denied.txt +++ b/inc/lang/pt/denied.txt @@ -1,4 +1,4 @@ ====== Permissão Negada ====== -Desculpe, você não possui direitos e permissões suficientes para continuar. +Desculpe, não tem direitos suficientes para continuar. diff --git a/inc/lang/pt/diff.txt b/inc/lang/pt/diff.txt index e27640aa8..b73326268 100644 --- a/inc/lang/pt/diff.txt +++ b/inc/lang/pt/diff.txt @@ -1,5 +1,3 @@ ====== Diferenças ====== -Esta página mostra as diferenças entre a revisão do documento que escolheu e a versão actual. - ----- +Esta página mostra as diferenças entre as duas revisões da página. \ No newline at end of file diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index c45d52295..4f111ee3f 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -14,6 +14,7 @@ * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -22,24 +23,24 @@ $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; -$lang['btn_edit'] = 'Editar página'; -$lang['btn_source'] = 'Ver fonte'; -$lang['btn_show'] = 'Ver página'; -$lang['btn_create'] = 'Criar página'; +$lang['btn_edit'] = 'Editar esta página'; +$lang['btn_source'] = 'Mostrar página fonte '; +$lang['btn_show'] = 'Mostrar página'; +$lang['btn_create'] = 'Criar esta página'; $lang['btn_search'] = 'Pesquisar'; -$lang['btn_save'] = 'Salvar'; -$lang['btn_preview'] = 'Prever'; +$lang['btn_save'] = 'Guardar'; +$lang['btn_preview'] = 'Pré-visualizar'; $lang['btn_top'] = 'Voltar ao topo'; $lang['btn_newer'] = '<< mais recente'; $lang['btn_older'] = 'menos recente >>'; $lang['btn_revs'] = 'Revisões antigas'; -$lang['btn_recent'] = 'Alt. Recentes'; -$lang['btn_upload'] = 'Carregar'; +$lang['btn_recent'] = 'Alterações Recentes'; +$lang['btn_upload'] = 'Enviar'; $lang['btn_cancel'] = 'Cancelar'; $lang['btn_index'] = 'Ãndice'; $lang['btn_secedit'] = 'Editar'; -$lang['btn_login'] = 'Entrar'; -$lang['btn_logout'] = 'Sair'; +$lang['btn_login'] = 'Iniciar sessão'; +$lang['btn_logout'] = 'Terminar sessão'; $lang['btn_admin'] = 'Administrar'; $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Apagar'; diff --git a/lib/plugins/config/lang/pt/lang.php b/lib/plugins/config/lang/pt/lang.php index c95349265..509ccc6a7 100644 --- a/lib/plugins/config/lang/pt/lang.php +++ b/lib/plugins/config/lang/pt/lang.php @@ -9,6 +9,7 @@ * @author André Neves <drakferion@gmail.com> * @author José Campos zecarlosdecampos@gmail.com * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Configuração'; $lang['error'] = 'Parâmetros de Configuração não actualizados devido a valores inválidos. Por favor, reveja as modificações que pretende efectuar antes de re-submetê-las.<br /> Os valores incorrectos serão mostrados dentro de uma "moldura" vermelha.'; @@ -32,6 +33,7 @@ $lang['_editing'] = 'Configuração de Edição'; $lang['_links'] = 'Configuração de Ligações'; $lang['_media'] = 'Configuração de Media'; $lang['_notifications'] = 'Notificação'; +$lang['_syndication'] = 'Sindicação (RSS)'; $lang['_advanced'] = 'Configurações Avançadas'; $lang['_network'] = 'Configuração de Rede'; $lang['_msg_setting_undefined'] = 'Nenhum metadado configurado.'; @@ -81,6 +83,7 @@ $lang['disableactions_subscription'] = 'Subscrever/Não Subscrver'; $lang['disableactions_wikicode'] = 'Ver fonte/Exportar em bruto'; $lang['disableactions_profile_delete'] = 'Deletar Sua Conta.'; $lang['disableactions_other'] = 'Outras acções (separadas por vÃrgula)'; +$lang['disableactions_rss'] = 'Sindicação XML (RSS)'; $lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)'; $lang['securecookie'] = 'Os cookies definidos via HTTPS deverão ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação de maneira insegura.'; $lang['usewordblock'] = 'Bloquear spam baseado em lista de palavras (wordlist)'; @@ -98,6 +101,7 @@ $lang['target____interwiki'] = 'Parâmetro "target" para links entre wikis'; $lang['target____extern'] = 'Parâmetro "target" para links externos'; $lang['target____media'] = 'Parâmetro "target" para links de media'; $lang['target____windows'] = 'Parâmetro "target" para links do Windows'; +$lang['mediarevisions'] = 'Ativar Mediarevisions?'; $lang['refcheck'] = 'Verificação de referência da media'; $lang['gdlib'] = 'Versão GD Lib'; $lang['im_convert'] = 'Caminho para a ferramenta "convert" do ImageMagick'; diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php index 1a36b4ede..9713f91f3 100644 --- a/lib/plugins/extension/lang/pt/lang.php +++ b/lib/plugins/extension/lang/pt/lang.php @@ -6,6 +6,7 @@ * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Gerenciador de Extensões'; $lang['tab_plugins'] = 'Plugins Instalados'; @@ -28,6 +29,9 @@ $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Reinstalar'; $lang['js']['reallydel'] = 'Confirma a desinstalação desta extensão?'; $lang['js']['display_viewoptions'] = 'Ver Opções:'; +$lang['js']['display_enabled'] = 'ativado'; +$lang['js']['display_disabled'] = 'desativado'; +$lang['js']['display_updatable'] = 'atualizável'; $lang['search_for'] = 'Pesquisar Extensão:'; $lang['search'] = 'Pesquisar'; $lang['extensionby'] = '<strong>%s</strong> by %s'; diff --git a/lib/plugins/styling/lang/pt/lang.php b/lib/plugins/styling/lang/pt/lang.php new file mode 100644 index 000000000..6929a40dc --- /dev/null +++ b/lib/plugins/styling/lang/pt/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Alfredo Silva <alfredo.silva@sky.com> + */ +$lang['js']['popup'] = 'Abrir como uma janela extra'; +$lang['error'] = 'Desculpe, este modelo não suporta esta funcionalidade.'; +$lang['btn_preview'] = 'Pré-visualizar alterações'; +$lang['btn_save'] = 'Guardar alterações'; +$lang['btn_reset'] = 'Reiniciar alterações atuais'; +$lang['__text__'] = 'Cor do texto principal'; diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php index a0b70d2d9..86885e415 100644 --- a/lib/plugins/usermanager/lang/pt/lang.php +++ b/lib/plugins/usermanager/lang/pt/lang.php @@ -11,6 +11,7 @@ * @author Guido Salatino <guidorafael23@gmail.com> * @author Romulo Pereira <romuloccomp@gmail.com> * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Gestor de Perfis'; $lang['noauth'] = '(autenticação indisponÃvel)'; -- GitLab From 54974451e8a65346968716c9ae79a1a5d970d09e Mon Sep 17 00:00:00 2001 From: Martin Michalek <michalek.dev@gmail.com> Date: Sat, 19 Dec 2015 17:26:43 +0100 Subject: [PATCH 413/440] translation update --- inc/lang/sk/lang.php | 28 ++++++++++++------------ inc/lang/sk/locked.txt | 2 +- inc/lang/sk/password.txt | 2 +- inc/lang/sk/register.txt | 2 +- inc/lang/sk/registermail.txt | 4 ++-- inc/lang/sk/updateprofile.txt | 2 +- lib/plugins/config/lang/sk/lang.php | 2 +- lib/plugins/usermanager/lang/sk/lang.php | 2 +- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 87bdd79b2..df711cd1b 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -53,7 +53,7 @@ $lang['btn_deleteuser'] = 'ZruÅ¡iÅ¥ môj úÄet'; $lang['btn_img_backto'] = 'Späť na %s'; $lang['btn_mediaManager'] = 'PrezrieÅ¥ v správcovi médiÃ'; $lang['loggedinas'] = 'Prihlásený(á) ako:'; -$lang['user'] = 'UžÃvateľské meno'; +$lang['user'] = 'PoužÃvateľské meno'; $lang['pass'] = 'Heslo'; $lang['newpass'] = 'Nové heslo'; $lang['oldpass'] = 'PotvrÄ aktuálne heslo'; @@ -61,27 +61,27 @@ $lang['passchk'] = 'EÅ¡te raz znovu'; $lang['remember'] = 'Zapamätaj si ma'; $lang['fullname'] = 'Celé meno'; $lang['email'] = 'E-Mail'; -$lang['profile'] = 'UžÃvateľský profil'; -$lang['badlogin'] = 'Zadané užÃvateľské meno a heslo nie je správne.'; +$lang['profile'] = 'PoužÃvateľský profil'; +$lang['badlogin'] = 'Zadané použÃvateľské meno a heslo nie je správne.'; $lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.'; $lang['minoredit'] = 'MenÅ¡ie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; $lang['nosecedit'] = 'Stránka bola medziÄasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; $lang['searchcreatepage'] = 'Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla \'\'VytvoriÅ¥ stránku\'\'.'; $lang['regmissing'] = 'MusÃte vyplniÅ¥ vÅ¡etky údaje.'; -$lang['reguexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; -$lang['regsuccess'] = 'UžÃvateľský úÄet bol vytvorený a heslo zaslané emailom.'; -$lang['regsuccess2'] = 'UžÃvateľský úÄet bol vytvorený.'; -$lang['regfail'] = 'PoužÃvateľ nemôže byÅ¥ vytvorený.'; +$lang['reguexists'] = 'PoužÃvateľ s rovnakým menom je už zaregistrovaný.'; +$lang['regsuccess'] = 'PoužÃvateľský úÄet bol vytvorený a heslo zaslané emailom.'; +$lang['regsuccess2'] = 'PoužÃvateľský úÄet bol vytvorený.'; +$lang['regfail'] = 'PoužÃvateľský úÄet nemôže byÅ¥ vytvorený.'; $lang['regmailfail'] = 'Zdá sa, že nastala chyba pri posielanà mailu s heslom. Skúste kontaktovaÅ¥ správcu.'; $lang['regbadmail'] = 'Zadaná emailová adresa nie je platná. Pokiaľ si myslÃte, že to je zle, skúste kontaktovaÅ¥ správcu.'; $lang['regbadpass'] = 'Zadané heslá nie sú rovnaké, zadajte ich prosÃm znovu.'; $lang['regpwmail'] = 'VaÅ¡e heslo do systému DokuWiki'; -$lang['reghere'] = 'Nemáte užÃvateľský úÄet? Vytvorte si ho'; +$lang['reghere'] = 'Nemáte použÃvateľský úÄet? Vytvorte si ho'; $lang['profna'] = 'Táto wiki nepodporuje zmenu profilu'; $lang['profnochange'] = 'Žiadne zmeny, nie je Äo robiÅ¥.'; $lang['profnoempty'] = 'Prázdne meno alebo mailová adresa nie sú povolené.'; -$lang['profchanged'] = 'UžÃvateľský úÄet úspeÅ¡ne zmenený.'; +$lang['profchanged'] = 'Profil požÃvateľa bol úspeÅ¡ne zmenený.'; $lang['profnodelete'] = 'Táto wiki neumožňuje zruÅ¡enie použÃvateľov.'; $lang['profdeleteuser'] = 'ZruÅ¡iÅ¥ úÄet'; $lang['profdeleted'] = 'Váš úÄet bol zruÅ¡ený v tejto wiki.'; @@ -92,7 +92,7 @@ $lang['pwdforget'] = 'Zabudli ste heslo? ZÃskajte nové!'; $lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'NastaviÅ¥ nové heslo pre'; $lang['resendpwdmissing'] = 'PrepáÄte, musÃte vyplniÅ¥ vÅ¡etky polia.'; -$lang['resendpwdnouser'] = 'PrepáÄte, nemôžeme nájsÅ¥ zadaného užÃvateľa v databáze.'; +$lang['resendpwdnouser'] = 'PrepáÄte, nemôžeme nájsÅ¥ zadaného použÃvateľa v databáze.'; $lang['resendpwdbadauth'] = 'PrepáÄte, tento autorizaÄný kód nie je platný. Uistite sa, Äi ste použili celý autorizaÄný odkaz.'; $lang['resendpwdconfirm'] = 'AutorizaÄný odkaz bol zaslaný na e-mail.'; $lang['resendpwdsuccess'] = 'VaÅ¡e nové heslo bolo zaslané na e-mail.'; @@ -206,7 +206,7 @@ $lang['sidebar'] = 'BoÄný panel'; $lang['mail_newpage'] = 'stránka pridaná:'; $lang['mail_changed'] = 'stránka zmenená:'; $lang['mail_subscribe_list'] = 'stránky zmenené v mennom priestore:'; -$lang['mail_new_user'] = 'nový užÃvateľ:'; +$lang['mail_new_user'] = 'nový použÃvateľ:'; $lang['mail_upload'] = 'nahraný súbor:'; $lang['changes_type'] = 'Prehľad zmien'; $lang['pages_changes'] = 'Stránok'; @@ -268,7 +268,7 @@ $lang['subscr_m_receive'] = 'DostávaÅ¥'; $lang['subscr_style_every'] = 'email pri každej zmene'; $lang['subscr_style_digest'] = 'email so zhrnutÃm zmien pre každú stránku (perióda %.2f dňa)'; $lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)'; -$lang['authtempfail'] = 'UžÃvateľská autentifikácia je doÄasne nedostupná. Ak táto situácia pretrváva, prosÃm informujte správcu systému.'; +$lang['authtempfail'] = 'PoužÃvateľská autentifikácia je doÄasne nedostupná. Ak táto situácia pretrváva, prosÃm informujte správcu systému.'; $lang['i_chooselang'] = 'Zvoľte váš jazyk'; $lang['i_installer'] = 'DokuWiki inÅ¡talátor'; $lang['i_wikiname'] = 'Názov Wiki'; @@ -287,8 +287,8 @@ $lang['i_success'] = 'Konfigurácia bola úspeÅ¡ne ukonÄená. Teraz $lang['i_failure'] = 'Pri zápise konfiguraÄného súboru nastali nejaké chyby. Potrebujete ich opraviÅ¥ manuálne pred tým, ako budete môcÅ¥ použÃvaÅ¥ <a href="doku.php?id=wiki:welcome">vaÅ¡u novú DokuWiki</a>.'; $lang['i_policy'] = 'PoÄiatoÄná ACL politika'; $lang['i_pol0'] = 'Otvorená Wiki (ÄÃtanie, zápis a nahrávanie pre každého)'; -$lang['i_pol1'] = 'Verejná Wiki (ÄÃtanie pre každého, zápis a nahrávanie pre registrovaných užÃvateľov)'; -$lang['i_pol2'] = 'Uzatvorená Wiki (ÄÃtanie, zápis a nahrávanie len pre registrovaných užÃvateľov)'; +$lang['i_pol1'] = 'Verejná Wiki (ÄÃtanie pre každého, zápis a nahrávanie pre registrovaných použÃvateľov)'; +$lang['i_pol2'] = 'Uzatvorená Wiki (ÄÃtanie, zápis a nahrávanie len pre registrovaných použÃvateľov)'; $lang['i_allowreg'] = 'Povolenie samostanej registrácie použÃvateľov'; $lang['i_retry'] = 'SkúsiÅ¥ znovu'; $lang['i_license'] = 'Vyberte licenciu, pod ktorou chcete uložiÅ¥ váš obsah:'; diff --git a/inc/lang/sk/locked.txt b/inc/lang/sk/locked.txt index 5063c0605..fae400bca 100644 --- a/inc/lang/sk/locked.txt +++ b/inc/lang/sk/locked.txt @@ -1,3 +1,3 @@ ====== Stránka je uzamknutá ====== -Tato stránka je práve uzamknutá pre úpravy iným užÃvateľom. MusÃte poÄkaÅ¥ dovtedy, pokiaľ daný užÃvateľ dokonÄà svoje úpravy alebo pokiaľ tento zámok stratà platnosÅ¥. +Tato stránka je práve uzamknutá pre úpravy iným použÃvateľom. MusÃte poÄkaÅ¥ dovtedy, pokiaľ daný použÃvateľ dokonÄà svoje úpravy alebo pokiaľ tento zámok stratà platnosÅ¥. diff --git a/inc/lang/sk/password.txt b/inc/lang/sk/password.txt index 2b85e9c39..582844f29 100644 --- a/inc/lang/sk/password.txt +++ b/inc/lang/sk/password.txt @@ -3,7 +3,7 @@ Dobrý deň, Tu sú prihlasovacie informácie pre @TITLE@ (@DOKUWIKIURL@) Meno : @FULLNAME@ -UžÃvateľské meno : @LOGIN@ +PoužÃvateľské meno : @LOGIN@ Heslo : @PASSWORD@ -- diff --git a/inc/lang/sk/register.txt b/inc/lang/sk/register.txt index 59c225d7c..b939dccca 100644 --- a/inc/lang/sk/register.txt +++ b/inc/lang/sk/register.txt @@ -1,3 +1,3 @@ ====== Zaregistrujte sa ako nový užÃvateľ ====== -Aby ste zÃskali užÃvateľský úÄet, vyplňte prosÃm vÅ¡etky informácie v nasledujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. UžÃvateľské meno musà byÅ¥ v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). +Aby ste zÃskali použÃvateľský úÄet, vyplňte prosÃm vÅ¡etky informácie v nasledujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. PoužÃvateľské meno musà byÅ¥ v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). diff --git a/inc/lang/sk/registermail.txt b/inc/lang/sk/registermail.txt index a0bf9e314..9cde994a3 100644 --- a/inc/lang/sk/registermail.txt +++ b/inc/lang/sk/registermail.txt @@ -1,6 +1,6 @@ -Nový užÃvateľ bol registrovaný. Tu sú detaily: +Nový použÃvateľ bol registrovaný. Tu sú detaily: -UžÃvateľské meno : @NEWUSER@ +PoužÃvateľské meno : @NEWUSER@ Celé meno : @NEWNAME@ E-Mail : @NEWEMAIL@ diff --git a/inc/lang/sk/updateprofile.txt b/inc/lang/sk/updateprofile.txt index 67b823dc5..33b5e5b78 100644 --- a/inc/lang/sk/updateprofile.txt +++ b/inc/lang/sk/updateprofile.txt @@ -1,4 +1,4 @@ -====== Zmena vášho užÃvateľského profilu ====== +====== Zmena vášho použÃvateľského profilu ====== Potrebujete vyplniÅ¥ len tie polia, ktoré chcete zmeniÅ¥. Nemôžete zmeniÅ¥ prihlasovacie meno. diff --git a/lib/plugins/config/lang/sk/lang.php b/lib/plugins/config/lang/sk/lang.php index 65a1e1707..f56353680 100644 --- a/lib/plugins/config/lang/sk/lang.php +++ b/lib/plugins/config/lang/sk/lang.php @@ -140,7 +140,7 @@ $lang['renderer__plugin'] = '%s (plugin)'; $lang['dnslookups'] = 'DokuWiki hľadá mená vzdialených IP adries použÃvateľov editujúcich stránky. Ak máte pomalý alebo nefunkÄný DNS server alebo nechcete túto možnosÅ¥, deaktivujte túto voľbu'; $lang['proxy____host'] = 'Proxy server - názov'; $lang['proxy____port'] = 'Proxy server - port'; -$lang['proxy____user'] = 'Proxy server - užÃvateľské meno'; +$lang['proxy____user'] = 'Proxy server - použÃvateľské meno'; $lang['proxy____pass'] = 'Proxy server - heslo'; $lang['proxy____ssl'] = 'Proxy server - použiÅ¥ SSL'; $lang['proxy____except'] = 'Regulárny výraz popisujúci URL odkazy, pre ktoré by proxy nemala byÅ¥ použitá.'; diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index 535f77972..a3ae71395 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -40,7 +40,7 @@ $lang['delete_ok'] = '%d užÃvateľov zmazaných'; $lang['delete_fail'] = '%d chýb vymazania.'; $lang['update_ok'] = 'UžÃvateľ úspeÅ¡ne zmenený'; $lang['update_fail'] = 'Chyba zmeny užÃvateľa'; -$lang['update_exists'] = 'Chyba zmeny užÃvateľa, užÃvateľské meno (%s) už existuje (iné zmeny budú zaznamenané).'; +$lang['update_exists'] = 'Chyba zmeny mena použÃvateľa, použÃvateľské meno (%s) už existuje (iné zmeny budú zaznamenané).'; $lang['start'] = 'prvé'; $lang['prev'] = 'predoÅ¡lé'; $lang['next'] = 'ÄalÅ¡ie'; -- GitLab From cf5038dd45e664aedaa343463e9ecdbd34073e8c Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 22 Dec 2015 02:07:48 +0000 Subject: [PATCH 414/440] Translation --- inc/lang/cy/adminplugins.txt | 2 ++ inc/lang/cy/backlinks.txt | 4 ++++ inc/lang/cy/conflict.txt | 6 ++++++ inc/lang/cy/denied.txt | 4 ++++ inc/lang/cy/diff.txt | 4 ++++ 5 files changed, 20 insertions(+) create mode 100644 inc/lang/cy/adminplugins.txt create mode 100644 inc/lang/cy/backlinks.txt create mode 100644 inc/lang/cy/conflict.txt create mode 100644 inc/lang/cy/denied.txt create mode 100644 inc/lang/cy/diff.txt diff --git a/inc/lang/cy/adminplugins.txt b/inc/lang/cy/adminplugins.txt new file mode 100644 index 000000000..ff21264fd --- /dev/null +++ b/inc/lang/cy/adminplugins.txt @@ -0,0 +1,2 @@ +===== Ategion Ychwanegol ===== + diff --git a/inc/lang/cy/backlinks.txt b/inc/lang/cy/backlinks.txt new file mode 100644 index 000000000..2180e5503 --- /dev/null +++ b/inc/lang/cy/backlinks.txt @@ -0,0 +1,4 @@ +====== Olgysylltiadau ====== + +Dyma restr o dudalennau sy'n ymddangos eu bod nhw'n cysylltu'n ôl i'r dudalen gyfredol. + diff --git a/inc/lang/cy/conflict.txt b/inc/lang/cy/conflict.txt new file mode 100644 index 000000000..133e863e5 --- /dev/null +++ b/inc/lang/cy/conflict.txt @@ -0,0 +1,6 @@ +====== Mae fersiwn mwy diweddar yn bodoli ====== + +Mae fersiwn mwy diweddar o'r ddogfen a wnaethoch chi olygu yn bodoli. Bydd hwn yn digwydd pan fydd defnyddiwr arall yn newid y ddogfen wrth i chi'n ei golygu hi. + +Archwiliwch y gwahaniaethau isod yn drylwyr, yna penderfynnwch pa fersiwn i'w gadw. Os ydych chi'n dewis ''cadw'', caiff eich fersiwn chi ei gadw. Pwyswch ''canslo'' i gadw'r fersiwn cyfredol. + diff --git a/inc/lang/cy/denied.txt b/inc/lang/cy/denied.txt new file mode 100644 index 000000000..2c0eb001c --- /dev/null +++ b/inc/lang/cy/denied.txt @@ -0,0 +1,4 @@ +====== Gwrthodwyd Hawl ====== + +Sori, 'sdim hawliau digonol 'da chi i barhau. + diff --git a/inc/lang/cy/diff.txt b/inc/lang/cy/diff.txt new file mode 100644 index 000000000..69a9ff688 --- /dev/null +++ b/inc/lang/cy/diff.txt @@ -0,0 +1,4 @@ +====== Gwahaniaethau ====== + +Mae hwn yn dangos y gwahaniaethau rhwng dau fersiwn y dudalen. + -- GitLab From 6c877cb5833a7d08745fdeee533cebaa1005c554 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 22 Dec 2015 02:11:29 +0000 Subject: [PATCH 415/440] Translation 2 Second translation --- inc/lang/cy/admin.txt | 4 ++++ inc/lang/cy/draft.txt | 8 +++++++ inc/lang/cy/edit.txt | 2 ++ inc/lang/cy/editrev.txt | 2 ++ inc/lang/cy/index.txt | 4 ++++ inc/lang/cy/install.html | 24 +++++++++++++++++++ inc/lang/cy/jquery.ui.datepicker.js | 37 +++++++++++++++++++++++++++++ inc/lang/cy/locked.txt | 3 +++ inc/lang/cy/login.txt | 4 ++++ inc/lang/cy/mailtext.txt | 17 +++++++++++++ inc/lang/cy/mailwrap.html | 13 ++++++++++ inc/lang/cy/newpage.txt | 4 ++++ inc/lang/cy/password.txt | 10 ++++++++ inc/lang/cy/preview.txt | 4 ++++ inc/lang/cy/pwconfirm.txt | 15 ++++++++++++ 15 files changed, 151 insertions(+) create mode 100644 inc/lang/cy/admin.txt create mode 100644 inc/lang/cy/draft.txt create mode 100644 inc/lang/cy/edit.txt create mode 100644 inc/lang/cy/editrev.txt create mode 100644 inc/lang/cy/index.txt create mode 100644 inc/lang/cy/install.html create mode 100644 inc/lang/cy/jquery.ui.datepicker.js create mode 100644 inc/lang/cy/locked.txt create mode 100644 inc/lang/cy/login.txt create mode 100644 inc/lang/cy/mailtext.txt create mode 100644 inc/lang/cy/mailwrap.html create mode 100644 inc/lang/cy/newpage.txt create mode 100644 inc/lang/cy/password.txt create mode 100644 inc/lang/cy/preview.txt create mode 100644 inc/lang/cy/pwconfirm.txt diff --git a/inc/lang/cy/admin.txt b/inc/lang/cy/admin.txt new file mode 100644 index 000000000..75485fcf2 --- /dev/null +++ b/inc/lang/cy/admin.txt @@ -0,0 +1,4 @@ +====== Gweinyddu ====== + +Gallwch chi ddarganfod rhestr o dasgau gweinyddol ar gael mewn DokuWiki, isod. + diff --git a/inc/lang/cy/draft.txt b/inc/lang/cy/draft.txt new file mode 100644 index 000000000..3b10c511e --- /dev/null +++ b/inc/lang/cy/draft.txt @@ -0,0 +1,8 @@ +====== Ffeil ddrafft wedi'i darganfod ====== + +Doedd eich sesiwn golygu ddiwethaf heb gwblhau'n gywir. Gwnaeth DokuWiki gadw copi ddrafft yn awtomatig wrth i chi weithio, sydd nawr ar gael i chi er mwyn parhau gyda'ch golygu. Gallwch chi weld y data a gafodd ei gadw o'ch sesiwn diwethaf isod. + +Penderfynwch os ydych chi am //adennill// eich sesiwn golygu goll, //dileu//'r drafft awtogadw neu //canslo//'r broses olygu. + + + diff --git a/inc/lang/cy/edit.txt b/inc/lang/cy/edit.txt new file mode 100644 index 000000000..7e2d899ef --- /dev/null +++ b/inc/lang/cy/edit.txt @@ -0,0 +1,2 @@ +Golygwch y dudalen a phwyso ''Cadw''. Gweler [[wiki:syntax]] ar gyfer cystrawen Wici. Golygwch y dudalen hon dim ond os ydych chi'n gallu ei **gwella** hi. Os ydych chi am brofi pethau, cymerwch eich camau cyntaf ar y [[playground:playground|maes chwarae]]. + diff --git a/inc/lang/cy/editrev.txt b/inc/lang/cy/editrev.txt new file mode 100644 index 000000000..5d32e9a68 --- /dev/null +++ b/inc/lang/cy/editrev.txt @@ -0,0 +1,2 @@ +**Rydych chi wedi llwytho hen adolygiad y ddogfen!** Os ydych chi'n ei chadw hi, byddwch chi'n creu fersiwn newydd gyda'r data hwn. +---- diff --git a/inc/lang/cy/index.txt b/inc/lang/cy/index.txt new file mode 100644 index 000000000..607a2f695 --- /dev/null +++ b/inc/lang/cy/index.txt @@ -0,0 +1,4 @@ +====== Map safle ====== + +Dyma fap safle o bob tudalen sydd ar gael, wedi'u trefnu gan [[doku>namespaces|namespaces]]. + diff --git a/inc/lang/cy/install.html b/inc/lang/cy/install.html new file mode 100644 index 000000000..406c7b456 --- /dev/null +++ b/inc/lang/cy/install.html @@ -0,0 +1,24 @@ +<p>Mae'r dudalen hon yn eich helpu chi i arsefydlu am y tro cyntaf a gyda ffurfweddu +<a href="http://dokuwiki.org">Dokuwiki</a>. Mae mwy o wybodaeth ar yr arsefydlwr hwn +ar <a href="http://dokuwiki.org/installer">dudalen ddogfennaeth</a> ei hun.</p> + +<p>Mae DokuWiki yn defnyddio ffeiliau arferol ar gyfer storio tudalennau wici a +gwybodaeth gysylltiol gyda'r tudalennau hynny (e.e. delweddau, indecsau chwilio, +hen adolygiadau, ac ati). Er mwyn gweithredu'n llwyddiannus mae'n +<strong>rhaid</strong> i DokuWiki gael yr hawl i ysgrifennu i'r ffolderi sydd yn +dal y ffeiliau hynny. 'Dyw'r arsefydlwr hwn ddim yn gallu gosod hawliau ffolderi. +Bydd hwn, fel rheol, yn gorfod cael ei wneud yn uniongyrchol gydag anogwr gorchymyn, +neu os ydych chi'n defnyddio gwesteiwr, drwy FTP neu eich panel gwesteio (e.e. +cPanel).</p> + +<p>Bydd yr arsefydlwr hwn yn gosod eich ffurfwedd DokuWiki ar gyfer +<abbr title="access control list">ACL</abbr>, sydd yn ei dro yn caniatáu +mewngofnodi gweinyddwr a mynediad i ddewislen gweinyddu DokuWiki ar gyfer arsefydlu +ategion, rheoli defnyddwyr, rheoli mynediad i dudalennau wici a newid gosodiadau +ffurfwedd. 'Sdim angen hwn ar DokuWiki er mwyn gweithio, ond bydd yn gwneud +Dokuwiki yn haws i'w weinyddu.</p> + +<p>Dylai defnyddwyr profiadol neu'r rheiny gydag anghenion gosodiad rrbennig special +ddefnyddio'r dolenni hyn am wybodaeth parthed +<a href="http://dokuwiki.org/install">canllawiau arsefydlu</a> +and <a href="http://dokuwiki.org/config">gosodiadau ffurfwedd</a>.</p> diff --git a/inc/lang/cy/jquery.ui.datepicker.js b/inc/lang/cy/jquery.ui.datepicker.js new file mode 100644 index 000000000..254eedab2 --- /dev/null +++ b/inc/lang/cy/jquery.ui.datepicker.js @@ -0,0 +1,37 @@ +/* Danish initialisation for the jQuery UI date picker plugin. */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['cy'] = { + closeText: 'Cau', + prevText: '<', + nextText: '>', + currentText: 'Heddiw', + monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin', + 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'], + monthNamesShort: ['Ion','Chw','Maw','Ebr','Mai','Meh', + 'Gor','Aws','Med','Hyd','Tac','Rha'], + dayNames: ['Dydd Sul','Dydd Llun','Dydd Mawrth','Dydd Mercher','Dydd Iau','Dydd Gwener','Dydd Sadwrn'], + dayNamesShort: ['Sul','Llu','Maw','Mer','Iau','Gwe','Sad'], + dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'], + weekHeader: 'Wyth', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['cy']); + +return datepicker.regional['cy']; + +})); diff --git a/inc/lang/cy/locked.txt b/inc/lang/cy/locked.txt new file mode 100644 index 000000000..4c7865dd0 --- /dev/null +++ b/inc/lang/cy/locked.txt @@ -0,0 +1,3 @@ +====== Tudalen ar glo ====== + +Mae'r dudalen hon wedi'i chloi ar gyfer golygu gan ddefnyddiwr arall. Bydd yn rhaid i chi aros tan i'r defnyddiwr orffen golygu neu tan fod y cyfnod cloi yn dod i ben. diff --git a/inc/lang/cy/login.txt b/inc/lang/cy/login.txt new file mode 100644 index 000000000..dbdde0e67 --- /dev/null +++ b/inc/lang/cy/login.txt @@ -0,0 +1,4 @@ +====== Mewngofnodi ====== + +'Dych chi heb fewngofnodi! Rhowch eich manylion mewngofnodi isod. Mae angen galluogi cwcis er mwyn mewngofnodi. + diff --git a/inc/lang/cy/mailtext.txt b/inc/lang/cy/mailtext.txt new file mode 100644 index 000000000..27462332e --- /dev/null +++ b/inc/lang/cy/mailtext.txt @@ -0,0 +1,17 @@ +Cafodd tudalen yn eich DokuWiki ei hychwanegu neu newid. Dyma'r manylion: + +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ +Hen Adolygiad : @OLDPAGE@ +Adolygiad Newydd: @NEWPAGE@ +Crynodeb Golygu : @SUMMARY@ +Defnyddiwr : @USER@ + +@DIFF@ + + +-- +Cafodd y neges hon ei generadyu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/mailwrap.html b/inc/lang/cy/mailwrap.html new file mode 100644 index 000000000..254fcca7a --- /dev/null +++ b/inc/lang/cy/mailwrap.html @@ -0,0 +1,13 @@ +<html> +<head> + <title>@TITLE@</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +</head> +<body> + +@HTMLBODY@ + +<br /><hr /> +<small>Cafodd y neges hon ei generadu gan DokuWiki ar @DOKUWIKIURL@.</small> +</body> +</html> diff --git a/inc/lang/cy/newpage.txt b/inc/lang/cy/newpage.txt new file mode 100644 index 000000000..dfe8a79d9 --- /dev/null +++ b/inc/lang/cy/newpage.txt @@ -0,0 +1,4 @@ +====== 'Dyw'r testun hwn ddim yn bodoli eto ====== + +Rydych chi wedi dilyn dolen i destun sy ddim yn bodoli eto. Os oes hawliau 'da chi, gallwch chi ei greu gan bwyso ar "Creu y dudalen hon". + diff --git a/inc/lang/cy/password.txt b/inc/lang/cy/password.txt new file mode 100644 index 000000000..da0678ef3 --- /dev/null +++ b/inc/lang/cy/password.txt @@ -0,0 +1,10 @@ +Shw mae @FULLNAME@! + +Dyma'ch manylion ar gyfer @TITLE@ ar @DOKUWIKIURL@ + +Defnyddair : @LOGIN@ +Cyfrinair : @PASSWORD@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/preview.txt b/inc/lang/cy/preview.txt new file mode 100644 index 000000000..477879d51 --- /dev/null +++ b/inc/lang/cy/preview.txt @@ -0,0 +1,4 @@ +====== Rhagolwg ====== + +Dyma ragolwg o sut fydd eich testun yn edrych. Cofiwch: 'Dyw e **heb ei gadw** 'to! + diff --git a/inc/lang/cy/pwconfirm.txt b/inc/lang/cy/pwconfirm.txt new file mode 100644 index 000000000..529571e14 --- /dev/null +++ b/inc/lang/cy/pwconfirm.txt @@ -0,0 +1,15 @@ +Shw mae @FULLNAME@! + +Mae rhywun wedi gofyn am gyfrinair newydd ar gyfer eich manylion +@TITLE@ ar @DOKUWIKIURL@ + +Os na wnaethoch chi ofyn am gyfrinair newydd, anwybyddwch yr e-bost hwn. + +I gadarnhau daeth y cais oddi wrthoch chi, pwyswch y ddolen isod. + +@CONFIRM@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ + -- GitLab From 88977fa74076d3da9fa16785334a67382b689749 Mon Sep 17 00:00:00 2001 From: Marty Lee <marty@maui-systems.co.uk> Date: Tue, 22 Dec 2015 09:40:50 +0000 Subject: [PATCH 416/440] Pass URL query through SSL proxy --- inc/HTTPClient.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 092216c57..4aefcfe5a 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -597,13 +597,15 @@ class HTTPClient { // setups with this solution before, but we have no usable test for that and TLS should be the more // common crypto by now if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { - $requesturl = $requestinfo['path']; + $requesturl = $requestinfo['path']. + (!empty($requestinfo['query'])?'?'.$requestinfo['query']:''); return true; } // if the above failed, this will most probably not work either, but we can try if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) { - $requesturl = $requestinfo['path']; + $requesturl = $requestinfo['path']. + (!empty($requestinfo['query'])?'?'.$requestinfo['query']:''); return true; } -- GitLab From b5d52cbcd1ca7e1ddf2215d8ec3865e3e12b6996 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 22 Dec 2015 15:37:03 +0000 Subject: [PATCH 417/440] Translation files Third translation session of inc/lang --- inc/lang/cy/norev.txt | 4 ++++ inc/lang/cy/read.txt | 2 ++ inc/lang/cy/recent.txt | 5 +++++ inc/lang/cy/register.txt | 4 ++++ inc/lang/cy/registermail.txt | 14 +++++++++++++ inc/lang/cy/resendpwd.txt | 4 ++++ inc/lang/cy/resetpwd.txt | 4 ++++ inc/lang/cy/revisions.txt | 4 ++++ inc/lang/cy/searchpage.txt | 5 +++++ inc/lang/cy/showrev.txt | 2 ++ inc/lang/cy/stopwords.txt | 39 +++++++++++++++++++++++++++++++++++ inc/lang/cy/subscr_digest.txt | 20 ++++++++++++++++++ inc/lang/cy/subscr_form.txt | 3 +++ inc/lang/cy/subscr_list.txt | 17 +++++++++++++++ inc/lang/cy/subscr_single.txt | 23 +++++++++++++++++++++ inc/lang/cy/updateprofile.txt | 5 +++++ inc/lang/cy/uploadmail.txt | 15 ++++++++++++++ 17 files changed, 170 insertions(+) create mode 100644 inc/lang/cy/norev.txt create mode 100644 inc/lang/cy/read.txt create mode 100644 inc/lang/cy/recent.txt create mode 100644 inc/lang/cy/register.txt create mode 100644 inc/lang/cy/registermail.txt create mode 100644 inc/lang/cy/resendpwd.txt create mode 100644 inc/lang/cy/resetpwd.txt create mode 100644 inc/lang/cy/revisions.txt create mode 100644 inc/lang/cy/searchpage.txt create mode 100644 inc/lang/cy/showrev.txt create mode 100644 inc/lang/cy/stopwords.txt create mode 100644 inc/lang/cy/subscr_digest.txt create mode 100644 inc/lang/cy/subscr_form.txt create mode 100644 inc/lang/cy/subscr_list.txt create mode 100644 inc/lang/cy/subscr_single.txt create mode 100644 inc/lang/cy/updateprofile.txt create mode 100644 inc/lang/cy/uploadmail.txt diff --git a/inc/lang/cy/norev.txt b/inc/lang/cy/norev.txt new file mode 100644 index 000000000..7d978c550 --- /dev/null +++ b/inc/lang/cy/norev.txt @@ -0,0 +1,4 @@ +====== Adolygiad ddim y bodoli ====== + +'Dyw'r adolygiad hwn ddim yn bodoli. Pwyswch ar "Hen adolygiadau" am restr o hen adolygiadau'r ddogfen hon. + diff --git a/inc/lang/cy/read.txt b/inc/lang/cy/read.txt new file mode 100644 index 000000000..8703ef937 --- /dev/null +++ b/inc/lang/cy/read.txt @@ -0,0 +1,2 @@ +Mae'r dudalen hon i'w darllen yn unig. Gallwch chi edrych ar y ffynhonnell, ond nid ei newid hi. Cysylltwch â'ch gweinyddwr chi os ydych chi'n meddwl bod hwn yn anghywir. + diff --git a/inc/lang/cy/recent.txt b/inc/lang/cy/recent.txt new file mode 100644 index 000000000..2affbf905 --- /dev/null +++ b/inc/lang/cy/recent.txt @@ -0,0 +1,5 @@ +====== Newidiadau Diweddar ====== + +Cafodd y tudalennau canlynol eu newid yn ddiweddar. + + diff --git a/inc/lang/cy/register.txt b/inc/lang/cy/register.txt new file mode 100644 index 000000000..6fbc85056 --- /dev/null +++ b/inc/lang/cy/register.txt @@ -0,0 +1,4 @@ +====== Cofrestru fel defnyddiwr newydd ====== + +Llenwch yr holl wybodaeth isod i greu cyfrif newydd ar y wici hwn. Sicrhewch eich bod chi'n cynnwys **cyfeiriad e-bost dilys** - os na chewch chi'ch annog am gyfrinair, caiff un ei anfon i'ch cyfeiriad. Dylai'r enw mewngofnodi fod yn [[doku>pagename|enw tudalen]] dilys. + diff --git a/inc/lang/cy/registermail.txt b/inc/lang/cy/registermail.txt new file mode 100644 index 000000000..0cb2b4fd2 --- /dev/null +++ b/inc/lang/cy/registermail.txt @@ -0,0 +1,14 @@ +Cofrestrodd defnyddiwr newydd. Dyma'r manylion: + +Defnyddair : @NEWUSER@ +Enw llawn : @NEWNAME@ +E-bost : @NEWEMAIL@ + +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/resendpwd.txt b/inc/lang/cy/resendpwd.txt new file mode 100644 index 000000000..ddad8a906 --- /dev/null +++ b/inc/lang/cy/resendpwd.txt @@ -0,0 +1,4 @@ +====== Anfon cyfrinair newydd ====== + +Ailgyflwynwch eich defnyddair yn y ffurflen isod i wneud cais am gyfrinair newydd i'ch cyfrif ar y wici hwn. Caiff ddolen gadarnhau ei hanfon i chi drwy eich e-bost cofrestredig. + diff --git a/inc/lang/cy/resetpwd.txt b/inc/lang/cy/resetpwd.txt new file mode 100644 index 000000000..57f19928e --- /dev/null +++ b/inc/lang/cy/resetpwd.txt @@ -0,0 +1,4 @@ +====== Gosod cyfrinair newydd ====== + +Rhowch gyfrinair newydd i'ch cyfrif ar y wici hwn. + diff --git a/inc/lang/cy/revisions.txt b/inc/lang/cy/revisions.txt new file mode 100644 index 000000000..afbc9fed2 --- /dev/null +++ b/inc/lang/cy/revisions.txt @@ -0,0 +1,4 @@ +====== Hen Adolygiadau ====== + +Dyma adolygiadau hÅ·n y ddogfen gyfredol. I droi'n ôl i hen adolygiad, dewiswch e isod a phwyso ''Golygu'r dudalen hon'' a'i gadw. + diff --git a/inc/lang/cy/searchpage.txt b/inc/lang/cy/searchpage.txt new file mode 100644 index 000000000..fd554e1e7 --- /dev/null +++ b/inc/lang/cy/searchpage.txt @@ -0,0 +1,5 @@ +====== Chwilio ====== + +Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@ + +===== Canlyniadau ===== diff --git a/inc/lang/cy/showrev.txt b/inc/lang/cy/showrev.txt new file mode 100644 index 000000000..6cc9d6c2e --- /dev/null +++ b/inc/lang/cy/showrev.txt @@ -0,0 +1,2 @@ +**Dyma hen adolygiad y ddogfen!** +---- diff --git a/inc/lang/cy/stopwords.txt b/inc/lang/cy/stopwords.txt new file mode 100644 index 000000000..afc301659 --- /dev/null +++ b/inc/lang/cy/stopwords.txt @@ -0,0 +1,39 @@ +# This is a list of words the indexer ignores, one word per line +# When you edit this file be sure to use UNIX line endings (single newline) +# No need to include words shorter than 3 chars - these are ignored anyway +# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +about +are +as +an +and +you +your +them +their +com +for +from +into +if +in +is +it +how +of +on +or +that +the +this +to +was +what +when +where +who +will +with +und +the +www diff --git a/inc/lang/cy/subscr_digest.txt b/inc/lang/cy/subscr_digest.txt new file mode 100644 index 000000000..611e05709 --- /dev/null +++ b/inc/lang/cy/subscr_digest.txt @@ -0,0 +1,20 @@ +Shw mae! + +Gwnaeth y dudalen @PAGE@ mewn wici @TITLE@ newid. +Dyma'r newidiadau: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Hen Adolygiad: @OLDPAGE@ +Adolygiad Newydd: @NEWPAGE@ + +I ganslo hysbysiadau tudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ ac yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a/neu namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/subscr_form.txt b/inc/lang/cy/subscr_form.txt new file mode 100644 index 000000000..47d1a1715 --- /dev/null +++ b/inc/lang/cy/subscr_form.txt @@ -0,0 +1,3 @@ +====== Rheoli Tanysgrifiad ====== + +Mae'r dudalen hon yn eich galluogi i reoli'ch tanysgrifiadau ar gyfer y dudalen gyfredol a'r namespace. diff --git a/inc/lang/cy/subscr_list.txt b/inc/lang/cy/subscr_list.txt new file mode 100644 index 000000000..592f29028 --- /dev/null +++ b/inc/lang/cy/subscr_list.txt @@ -0,0 +1,17 @@ +Shw mae! + +Gwnaeth tudalennau yn y namespace @PAGE@ o'r wici @TITLE@ newid. +Dyma'r tudaalennau sydd wedi newid: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a/neu namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/subscr_single.txt b/inc/lang/cy/subscr_single.txt new file mode 100644 index 000000000..2a774ebd2 --- /dev/null +++ b/inc/lang/cy/subscr_single.txt @@ -0,0 +1,23 @@ +Shw mae! + +Gwnaeth y dudalen @PAGE@ yn y wici @TITLE@ newid. +Dyma'r newidiadau: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dyddiad : @DATE@ +Defnyddiwr : @USER@ +Crynodeb Golygu : @SUMMARY@ +Hen Adolygiad : @OLDPAGE@ +Adolygiad Newwydd: @NEWPAGE@ + +I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/updateprofile.txt b/inc/lang/cy/updateprofile.txt new file mode 100644 index 000000000..ce9ca503f --- /dev/null +++ b/inc/lang/cy/updateprofile.txt @@ -0,0 +1,5 @@ +====== Diweddaru proffil eich cyfrif ====== + +Newidiwch y meysydd rydych chi amm newid yn unig. 'Sdim modd i chi newid eich defnyddair. + + diff --git a/inc/lang/cy/uploadmail.txt b/inc/lang/cy/uploadmail.txt new file mode 100644 index 000000000..8102232a3 --- /dev/null +++ b/inc/lang/cy/uploadmail.txt @@ -0,0 +1,15 @@ +Cafodd ffeil ei lanlwytho i'ch DokuWiki. Dyma'r manylion: + +Ffeil : @MEDIA@ +Hen adolygiad : @OLD@ +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ +Maint : @SIZE@ +Teip MIME : @MIME@ +Defnyddiwr : @USER@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ -- GitLab From f8b631436309b550996b64dc038c2b5bc9d5e955 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 22 Dec 2015 16:12:46 +0000 Subject: [PATCH 418/440] Translation files 4th translations session - stopwords --- inc/lang/cy/stopwords.txt | 62 +++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/inc/lang/cy/stopwords.txt b/inc/lang/cy/stopwords.txt index afc301659..2ac4c3174 100644 --- a/inc/lang/cy/stopwords.txt +++ b/inc/lang/cy/stopwords.txt @@ -2,38 +2,30 @@ # When you edit this file be sure to use UNIX line endings (single newline) # No need to include words shorter than 3 chars - these are ignored anyway # This list is based upon the ones found at http://www.ranks.nl/stopwords/ -about -are -as -an -and -you -your -them -their -com -for -from -into -if -in -is -it -how -of -on -or -that -the -this -to -was -what -when -where -who -will -with -und -the -www +allan +beth +ble +bydd +chi +dyma +dyna +eich +gyda +hefyd +hon +honna +hwn +hwnnw +hwy +hyn +hynny +mewn +nhw +oddi +oedd +pan +pwy +roedd +sut +wrth +www \ No newline at end of file -- GitLab From 9701d3fcc168c8289b0ee8c362eb1085d14b8e44 Mon Sep 17 00:00:00 2001 From: Maksim <nikropol@yandex.ru> Date: Thu, 24 Dec 2015 11:41:35 +0100 Subject: [PATCH 419/440] translation update --- inc/lang/uk/lang.php | 15 ++++++++++++++- inc/lang/uk/resetpwd.txt | 3 +++ lib/plugins/authplain/lang/uk/lang.php | 5 +++-- lib/plugins/config/lang/uk/lang.php | 5 +++-- 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 inc/lang/uk/resetpwd.txt diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 74a717bfe..7c99b6322 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oleksiy Voronin <ovoronin@gmail.com> * @author serg_stetsuk@ukr.net * @author Oleksandr Kunytsia <okunia@gmail.com> @@ -12,6 +12,7 @@ * @author Egor Smkv <egorsmkv@gmail.com> * @author Max Lyashuk <m_lyashuk@ukr.net> * @author Pavel <pavelholovko@yandex.ru> + * @author Maksim <nikropol@yandex.ru> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -88,6 +89,8 @@ $lang['profnochange'] = 'Ðемає змін, немає що роби $lang['profnoempty'] = 'Ð†Ð¼â€™Ñ Ð°Ð±Ð¾ e-mail не можуть бути пуÑтими.'; $lang['profchanged'] = 'Профіль уÑпішно змінено.'; $lang['profdeleteuser'] = 'Видалити аккаунт'; +$lang['profdeleted'] = 'Ваш профіль кориÑтувача буде видалено з цієї wiki.'; +$lang['proffail'] = 'Профіль кориÑтувача не вдалоÑÑ Ð¿Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸.'; $lang['pwdforget'] = 'Забули пароль? Отримайте новий'; $lang['resendna'] = 'Ð¦Ñ Ð’Ñ–ÐºÑ– не підтримує повторне Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ.'; $lang['resendpwd'] = 'Ð’Ñтановити новий пароль длÑ'; @@ -140,6 +143,7 @@ $lang['js']['linkto'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð°:'; $lang['js']['del_confirm'] = 'ДійÑно знищити обрані елементи?'; $lang['js']['restore_confirm'] = 'ДійÑно відновити цю верÑÑ–ÑŽ?'; $lang['js']['media_diff'] = 'ПереглÑнути різницю:'; +$lang['js']['media_diff_portions'] = 'Прогорнути'; $lang['js']['media_select'] = 'Оберіть файли'; $lang['js']['media_upload_btn'] = 'Завантажити'; $lang['js']['media_done_btn'] = 'УÑпішно'; @@ -291,6 +295,7 @@ $lang['i_pol1'] = 'Публічна Вікі (Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð» $lang['i_pol2'] = 'Закрита Вікі (читаннÑ, Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÑ”Ñтрованих кориÑтувачів)'; $lang['i_retry'] = 'Повторити'; $lang['i_license'] = 'Будь лаÑка, виберіть тип ліцензії, під Ñкою Ð’Ñ– бажаєте опублікувати матеріал:'; +$lang['i_license_none'] = 'Ðе показувати жодної інформації про ліцензії.'; $lang['recent_global'] = 'Ви переглÑдаєте зміни в межах проÑтору імен <b>%s</b>. Також можна <a href="%s">переглÑнути зміни в межах уÑієї Вікі</a>.'; $lang['years'] = '%d років тому'; $lang['months'] = '%d міÑÑців тому'; @@ -307,3 +312,11 @@ $lang['media_edittab'] = 'Редагувати'; $lang['media_historytab'] = 'ІÑторіÑ'; $lang['media_sort_name'] = 'Ім’Ñ'; $lang['media_sort_date'] = 'Дата'; +$lang['media_meta_edited'] = 'метаданні відредаговано'; +$lang['media_perm_read'] = 'Вибачте, у Ð²Ð°Ñ Ð½Ðµ доÑтатньо прав Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу.'; +$lang['media_update'] = 'Завантажити нову верÑÑ–ÑŽ'; +$lang['media_restore'] = 'Відновити цю верÑÑ–ÑŽ'; +$lang['currentns'] = 'Поточний діапазон імен'; +$lang['searchresult'] = 'Результати пошуку'; +$lang['plainhtml'] = 'ПроÑтий HTML'; +$lang['wikimarkup'] = 'Wiki розмітка'; diff --git a/inc/lang/uk/resetpwd.txt b/inc/lang/uk/resetpwd.txt new file mode 100644 index 000000000..b24e88473 --- /dev/null +++ b/inc/lang/uk/resetpwd.txt @@ -0,0 +1,3 @@ +====== Ð’Ñтановити новий пароль ====== + +Будь-лаÑка, введіть новий пароль Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— wiki. \ No newline at end of file diff --git a/lib/plugins/authplain/lang/uk/lang.php b/lib/plugins/authplain/lang/uk/lang.php index d8f0a32b2..8a796870f 100644 --- a/lib/plugins/authplain/lang/uk/lang.php +++ b/lib/plugins/authplain/lang/uk/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; +$lang['userexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; diff --git a/lib/plugins/config/lang/uk/lang.php b/lib/plugins/config/lang/uk/lang.php index dea9203e8..02c327367 100644 --- a/lib/plugins/config/lang/uk/lang.php +++ b/lib/plugins/config/lang/uk/lang.php @@ -1,8 +1,8 @@ <?php + /** - * ukrainian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Oleksiy Voronin <ovoronin@gmail.com> * @author serg_stetsuk@ukr.net * @author okunia@gmail.com @@ -10,6 +10,7 @@ * @author Uko uko@uar.net * @author Ulrikhe Lukoie <lukoie@gmail>.com * @author Kate Arzamastseva pshns@ukr.net + * @author Maksim <nikropol@yandex.ru> */ $lang['menu'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ñ–ÐºÑ–'; $lang['error'] = 'Параметри не збережено через помилкові значеннÑ. Будь лаÑка, переглÑньте ваші зміни та Ñпробуйте ще раз -- GitLab From e8cc54c4fa996e600d5f60b5de543806b413b899 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Thu, 24 Dec 2015 20:47:01 +0000 Subject: [PATCH 420/440] Translation of main php lang file: CY Just translation of lang array items in inc/lang main php file --- inc/lang/cy/lang.php | 373 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 inc/lang/cy/lang.php diff --git a/inc/lang/cy/lang.php b/inc/lang/cy/lang.php new file mode 100644 index 000000000..7018e0071 --- /dev/null +++ b/inc/lang/cy/lang.php @@ -0,0 +1,373 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + * @author Anika Henke <anika@selfthinker.org> + * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * @author Matthias Schulte <mailinglist@lupo49.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; //“ +$lang['doublequoteclosing'] = 'â€'; //” +$lang['singlequoteopening'] = '‘'; //‘ +$lang['singlequoteclosing'] = '’'; //’ +$lang['apostrophe'] = '’'; //’ + +$lang['btn_edit'] = 'Golygu\'r dudaen hon'; +$lang['btn_source'] = 'Dangos y ffynhonnell'; +$lang['btn_show'] = 'Dangos y dudalen'; +$lang['btn_create'] = 'Creu\'r dudalen'; +$lang['btn_search'] = 'Chwilio'; +$lang['btn_save'] = 'Cadw'; +$lang['btn_preview'] = 'Rhagolwg'; +$lang['btn_top'] = 'Nôl i\'r brig'; +$lang['btn_newer'] = '<< mwy diweddar'; +$lang['btn_older'] = 'llai diweddar >>'; +$lang['btn_revs'] = 'Hen adolygiadau'; +$lang['btn_recent'] = 'Newidiadau Diweddar'; +$lang['btn_upload'] = 'Lanlwytho'; +$lang['btn_cancel'] = 'Canslo'; +$lang['btn_index'] = 'Safle map'; +$lang['btn_secedit'] = 'Golygu'; +$lang['btn_login'] = 'Mewngofnodi'; +$lang['btn_logout'] = 'Allgofnodi'; +$lang['btn_admin'] = 'Gweinyddu'; +$lang['btn_update'] = 'Diweddaru'; +$lang['btn_delete'] = 'Dileu'; +$lang['btn_back'] = 'Nôl'; +$lang['btn_backlink'] = 'Olgysylltiadau'; +$lang['btn_subscribe'] = 'Rheoli Tanysgrifiadau'; +$lang['btn_profile'] = 'Diweddaru Proffil'; +$lang['btn_reset'] = 'Ailosod'; +$lang['btn_resendpwd'] = 'Gosod cyfrinair newydd'; +$lang['btn_draft'] = 'Golygu drafft'; +$lang['btn_recover'] = 'Adennill drafft'; +$lang['btn_draftdel'] = 'Dileu drafft'; +$lang['btn_revert'] = 'Adfer'; +$lang['btn_register'] = 'Cofrestru'; +$lang['btn_apply'] = 'Gosod'; +$lang['btn_media'] = 'Rheolwr Cyfrwng'; +$lang['btn_deleteuser'] = 'Tynnu Fy Nghyfrif'; +$lang['btn_img_backto'] = 'Nôl i %s'; +$lang['btn_mediaManager'] = 'Dangos mewn rheolwr cyfrwng'; + +$lang['loggedinas'] = 'Mewngofnodwyd fel:'; +$lang['user'] = 'Defnyddair'; +$lang['pass'] = 'Cyfrinair'; +$lang['newpass'] = 'Cyfrinair newydd'; +$lang['oldpass'] = 'Cadarnhau cyfrinair cyfredol'; +$lang['passchk'] = 'unwaith eto'; +$lang['remember'] = 'Cofio fi'; +$lang['fullname'] = 'Enw go iawn'; +$lang['email'] = 'E-Bost'; +$lang['profile'] = 'Proffil Defnyddiwr'; +$lang['badlogin'] = 'Sori, roedd y defnyddair neu\'r gyfriair yn anghywir.'; +$lang['badpassconfirm'] = 'Sori, roedd y cyfrinair yn anghywir'; +$lang['minoredit'] = 'Newidiadau Bach'; +$lang['draftdate'] = 'Awtogadwyd drafft ar'; // full dformat date will be added +$lang['nosecedit'] = 'Newidiwyd y dudaen yn y cyfamser, roedd gwybodaeth yr adran wedi dyddio, felly llwythwyd y dudalen gyfan.'; +$lang['searchcreatepage'] = 'Os na wnaethoch chi ddod o hyd i\'r hyn roeddech chi am ddarganfod, gallwch chi greu neu golygu\'r dudalen wedi\'i henwi ar ôl eich ymholiad gyda\'r teclyn priodol.'; + +$lang['regmissing'] = 'Sori, llenwch bob maes.'; +$lang['reguexists'] = 'Sori, mae defnyddiwr â\'r enw hwn yn bodoli eisoes.'; +$lang['regsuccess'] = 'Cafodd y defnyddiwr ei greu a chafodd y cyfrinair ei anfon gan ebost.'; +$lang['regsuccess2'] = 'Cafodd y defnyddiwr ei greu.'; +$lang['regfail'] = 'Doedd dim modd creu\'r defnyddiwr.'; +$lang['regmailfail'] = 'Mae\'n debyg roedd gwall wrth anfon y post cyfrinair. Cysylltwch â\'r gweinyddwr!'; +$lang['regbadmail'] = 'Mae\'r cyfeiriad ebost a gyflwynoch chi\'n edrych yn annilys - os ydych chi\'n credu ei fod yn gywir, cysylltwch â\'r gweinyddwr'; +$lang['regbadpass'] = '\'Dyw\'r ddau gyfrinair ddim yn unfath, ceisiwch eto.'; +$lang['regpwmail'] = 'Eich cyfrinair DokuWiki'; +$lang['reghere'] = '\'Sdim cyfrif \'da chi eto? Cewch afael yn un nawr'; + +$lang['profna'] = '\'Dyw\'r wici hwn ddim yn caniatáu newid eich proffil'; +$lang['profnochange'] = 'Dim newidiadau, dim i\'w wneud.'; +$lang['profnoempty'] = '\'Sdim modd gadael eich enw neu\'ch cyfeiriad ebost chi\'n wag.'; +$lang['profchanged'] = 'Diweddarwyd eich proffil defnyddiwr yn llwyddiannus.'; +$lang['profnodelete'] = '\'Dyw\'r wici hwn ddim yn caniatáu dileu defnyddwyr'; +$lang['profdeleteuser'] = 'Dileu Cyfrif'; +$lang['profdeleted'] = 'Cafodd eich cyfrif defnyddiwr chi ei ddileu o\'r wiki hwn'; +$lang['profconfdelete'] = '\'Dwi eisiau tynnu fy nghyfrif oddi ar y wici hwn. <br/> \'Sdim modd dadwneud hyn.'; +$lang['profconfdeletemissing'] = 'Blwch gwirio heb ei dicio'; +$lang['proffail'] = 'Proffil defnyddiwr heb ei ddiweddaru.'; + +$lang['pwdforget'] = 'Anghofio\'ch cyfrinair? Cael gafael ar un newydd'; +$lang['resendna'] = '\'Dyw\'r wici hwn ddim yn caniatáu ailanfon cyfrineiriau.'; +$lang['resendpwd'] = 'Gosod cyfrinair newydd ar gyfer'; +$lang['resendpwdmissing'] = 'Sori, mae\'n rhaid llenwi pob maes.'; +$lang['resendpwdnouser'] = 'Sori, \'dyn ni ddim yn gallu darganfod y defnyddiwr hwn yn ein databas ni.'; +$lang['resendpwdbadauth'] = 'Sori, \'dyw\'r cod dilysu hwn ddim yn ddilys. Sicrhewch eich bod chi wedi defnyddio\'r ddolen gadarnhau gyfan.'; +$lang['resendpwdconfirm'] = 'Cafodd ddolen gadarnhau ei hanfon gan ebost.'; +$lang['resendpwdsuccess'] = 'Cafodd eich cyfrinair newydd chi ei anfon gan ebost.'; + +$lang['license'] = 'Heb law bod datganiad i\'r gwrthwyneb, mae cynnwys y wici hwn o dan y drwydded ganlynol:'; +$lang['licenseok'] = 'Sylwir: Gan olygu\'r dudalen hon rydych chi\'n cytuno i drwyddedu\'ch cynnwys chi o dan y drwydded ganlynol:'; + +$lang['searchmedia'] = 'Chwilio enw ffeil:'; +$lang['searchmedia_in'] = 'Chwilio mewn %s'; +$lang['txt_upload'] = 'Dewis ffeil i\'w lanlwytho:'; +$lang['txt_filename'] = 'Upload as (optional):'; +$lang['txt_overwrt'] = 'Trosysgrifo ffeil sy\'n bodoli'; +$lang['maxuploadsize'] = 'Lanlwytho uchanfswm %s y ffeil.'; +$lang['lockedby'] = 'Clowyd yn bresennol gan:'; +$lang['lockexpire'] = 'Clo\'n dod i ben ar:'; + +$lang['js']['willexpire'] = 'Mae\'ch clo ar gyfer golygu\'r dudalen hon yn mynd i ddod i ben mewn munud.\nEr mwyn osgoi gwrthdrawiadau defnyddiwch y botwm rhagolwg i ailosod amserydd y clo.'; +$lang['js']['notsavedyet'] = 'Caiff newidiadau heb gadw eu colli.'; +$lang['js']['searchmedia'] = 'Chwilio am ffeiliau'; +$lang['js']['keepopen'] = 'Cadw ffesnestr y dewisiad ar agor'; +$lang['js']['hidedetails'] = 'Cuddio Manylion'; +$lang['js']['mediatitle'] = 'Gosodiadau dolenni'; +$lang['js']['mediadisplay'] = 'Math y ddolen'; +$lang['js']['mediaalign'] = 'Aliniad'; +$lang['js']['mediasize'] = 'Maint y ddelwedd'; +$lang['js']['mediatarget'] = 'Targed y ddolen'; +$lang['js']['mediaclose'] = 'Cau'; +$lang['js']['mediainsert'] = 'Mewnosod'; +$lang['js']['mediadisplayimg'] = 'Dangos y ddelwedd.'; +$lang['js']['mediadisplaylnk'] = 'Dangos y ddolen yn unig.'; +$lang['js']['mediasmall'] = 'Fersiwn bach'; +$lang['js']['mediamedium'] = 'Fersiwn canolig'; +$lang['js']['medialarge'] = 'Fersiwn mawr'; +$lang['js']['mediaoriginal'] = 'Fersiwn gwreiddiol'; +$lang['js']['medialnk'] = 'Cysylltu i dudalen fanylion'; +$lang['js']['mediadirect'] = 'Cysylltiad uniongyrchol i\'r gwreiddiol'; +$lang['js']['medianolnk'] = 'Dim dolen'; +$lang['js']['medianolink'] = 'Peidio cysylltu i\'r dudalen'; +$lang['js']['medialeft'] = 'Alinio\'r ddelwedd i\'r chwith.'; +$lang['js']['mediaright'] = 'Alinio\'r ddelwedd i\'r dde.'; +$lang['js']['mediacenter'] = 'Alinio\'r ddelwedd i\'r canol.'; +$lang['js']['medianoalign'] = 'Peidio alinio.'; +$lang['js']['nosmblinks'] = 'Mae cysylltu gyda Windows shares dim ond yn gweithio gyda Microsoft Internet Explorer.\nGallwch chi gopïo a gludo\'r ddolen hefyd.'; +$lang['js']['linkwiz'] = 'Dewin Dolenni'; +$lang['js']['linkto'] = 'Cysylltu i:'; +$lang['js']['del_confirm'] = 'Gwir ddileu\'r eitem(au) a ddewiswyd?'; +$lang['js']['restore_confirm'] = 'Gwir adfer y fersiwn hwn?'; +$lang['js']['media_diff'] = 'Gweld gwahaniaethau:'; +$lang['js']['media_diff_both'] = 'Ochr wrth Ochr'; +$lang['js']['media_diff_opacity'] = 'Tywynnu-drwodd'; +$lang['js']['media_diff_portions'] = 'Taro'; //Swipe - rhaid bod gwell ateb i hwn +$lang['js']['media_select'] = 'Dewis ffeiliau…'; +$lang['js']['media_upload_btn'] = 'Lanlwytho'; +$lang['js']['media_done_btn'] = 'Gorffen'; +$lang['js']['media_drop'] = 'Gollwng ffeiliau yma i\'w lanlwytho'; +$lang['js']['media_cancel'] = 'tynnu'; +$lang['js']['media_overwrt'] = 'Trosysgrifo ffeiliau sy\'n bodoli'; + +$lang['rssfailed'] = 'Roedd gwall wrth hôl y ffrwd hwn: '; +$lang['nothingfound'] = 'Dim wedi\'i ddarganfod.'; + +$lang['mediaselect'] = 'Ffeiliau Cyfrwng'; +$lang['uploadsucc'] = 'Lanlwythiad llwyddiannus'; +$lang['uploadfail'] = 'Methodd y lanlwythiad. Hawliau anghywir efallai?'; +$lang['uploadwrong'] = 'Gwrthodwyd y lanlwythiad. Gwaherddir yr estyniad ffeil hwn!'; +$lang['uploadexist'] = 'Mae\'r ffeil eisoes yn bodoli. Dim wedi\'i wneud.'; +$lang['uploadbadcontent'] = 'Doedd y cynnwys a lanlwythwyd ddim yn cydweddu ag estyniad ffeil %s.'; +$lang['uploadspam'] = 'Cafodd y lanlwythiad ei flocio gan rhestr wahardd sbam.'; +$lang['uploadxss'] = 'Cafodd y lanlwythiad ei flocio efallai oherwydd cynnwys maleisus.'; +$lang['uploadsize'] = 'Roedd y ffeil a lanlwythwyd yn rhy fawr. (uchaf. %s)'; +$lang['deletesucc'] = 'Cafodd ffeil "%s" ei dileu.'; +$lang['deletefail'] = 'Doedd dim modd dileu "%s" - gwiriwch hawliau.'; +$lang['mediainuse'] = 'Doedd "%s" heb ei dileu - mae\'n cael ei defnyddio ar hyn o bryd.'; +$lang['namespaces'] = 'Namespaces'; //namespace +$lang['mediafiles'] = 'Ffeiliau ar gael mewn'; +$lang['accessdenied'] = '\'Sdim hawl \'da chi weld y dudalen hon.'; +$lang['mediausage'] = 'Defnyddiwch y gystrawen ganlynol i gyfeirio at y ffeil hon:'; +$lang['mediaview'] = 'Dangos y ffeil wreiddiol'; +$lang['mediaroot'] = 'gwraidd'; +$lang['mediaupload'] = 'lanlwythwch ffeil i\'r namespace cyfredol yma. Er mwy creu is-namespace, ychwanegwch nhw o flaen enw\'r ffeil gan eu gwahanu nhw gyda cholonau, ar ôl i chi ddewis y ffeiliau. Gall ffeiliau hefyd eu dewis gan lusgo a gollwng.'; //namespace +$lang['mediaextchange'] = 'Newidiwyd yr estyniad o .%s i .%s!'; +$lang['reference'] = 'Cyfeirnodau ar gyfer'; +$lang['ref_inuse'] = '\'Sdim modd dileu\'r ffeil hon, oherwydd ei bod hi\'n dal yn cael ei defnyddio gan y tudalennau canlynol:'; +$lang['ref_hidden'] = 'Mae rhai cyfeirnodau ar dudalennau \'sdim hawl \'da chi weld'; + +$lang['hits'] = 'Trawiadau'; +$lang['quickhits'] = 'Enw tudalennau\'n cydweddu'; +$lang['toc'] = 'Tabl Cynnwys'; +$lang['current'] = 'cyfredol'; +$lang['yours'] = 'Eich Fersiwn'; +$lang['diff'] = 'Dangos gwahaniaethau i\'r adolygiadau cyfredol'; +$lang['diff2'] = 'Dangos gwahaniaethau rhwng adolygiadau a ddewiswyd'; +$lang['difflink'] = 'Cysylltu i\'r olwg gymharu hon'; +$lang['diff_type'] = 'Dangos gwahaniaethau:'; +$lang['diff_inline'] = 'Mewnlin'; +$lang['diff_side'] = 'Ochr wrth Ochr'; +$lang['diffprevrev'] = 'Adolygiad blaenorol'; +$lang['diffnextrev'] = 'Adolygiad nesaf'; +$lang['difflastrev'] = 'Adolygiad diwethaf'; +$lang['diffbothprevrev'] = 'Dwy ochr yr adolygiad blaenorol'; +$lang['diffbothnextrev'] = 'Dwy ochr yr adolygiad nesaf'; +$lang['line'] = 'Llinell'; +$lang['breadcrumb'] = 'Olrhain:'; +$lang['youarehere'] = 'Rydych chi yma:'; +$lang['lastmod'] = 'Newidiwyd ddiwethaf:'; +$lang['by'] = 'gan'; +$lang['deleted'] = 'tynnwyd'; +$lang['created'] = 'crewyd'; +$lang['restored'] = 'adferwyd hen adolygiad (%s)'; +$lang['external_edit'] = 'golygiad allanol'; +$lang['summary'] = 'Crynodeb golygiad'; +$lang['noflash'] = 'Mae angen <a href="http://www.adobe.com/products/flashplayer/">Ategyn Adobe Flash</a> i ddangos y cynnwys hwn.'; +$lang['download'] = 'Lawrlwytho Darn'; +$lang['tools'] = 'Teclynnau'; +$lang['user_tools'] = 'Teclynnau Defnyddiwr'; +$lang['site_tools'] = 'Teclynnau Safle'; +$lang['page_tools'] = 'Teclynnau Tudalennau'; +$lang['skip_to_content'] = 'nedio i\'r cynnwys'; +$lang['sidebar'] = 'Bar ochr'; + +$lang['mail_newpage'] = 'ychwanegwyd tudalen:'; +$lang['mail_changed'] = 'newidiwyd tudalen:'; +$lang['mail_subscribe_list'] = 'newidiwyd tudalennau mewn namespace:'; //namespace +$lang['mail_new_user'] = 'defnyddiwr newydd:'; +$lang['mail_upload'] = 'lanlwythwyd ffeil:'; + +$lang['changes_type'] = 'Dangos newidiadau mewn'; +$lang['pages_changes'] = 'Tudalennau'; +$lang['media_changes'] = 'Ffeiliau cyfrwng'; +$lang['both_changes'] = 'Tudalennau a ffeiliau cyfrwng'; + +$lang['qb_bold'] = 'Testun Bras'; +$lang['qb_italic'] = 'Testun Italig'; +$lang['qb_underl'] = 'Testun wedi\'i Danlinellu'; +$lang['qb_code'] = 'Testun Unbylchog'; +$lang['qb_strike'] = 'Testun Llinell Drwodd'; +$lang['qb_h1'] = 'Pennawd Lefel 1'; +$lang['qb_h2'] = 'Pennawd Lefel 2'; +$lang['qb_h3'] = 'Pennawd Lefel 3'; +$lang['qb_h4'] = 'Pennawd Lefel 4'; +$lang['qb_h5'] = 'Pennawd Lefel 5'; +$lang['qb_h'] = 'Pennawd'; +$lang['qb_hs'] = 'Dewis Pennawd'; +$lang['qb_hplus'] = 'Pennawd Uwch'; +$lang['qb_hminus'] = 'Pennawd Is'; +$lang['qb_hequal'] = 'Pennawd yr un Lefel'; +$lang['qb_link'] = 'Dolen fewnol'; +$lang['qb_extlink'] = 'Dolen allanol'; +$lang['qb_hr'] = 'Llinell Lorweddol'; +$lang['qb_ol'] = 'Eitem Rhestr Drefnedig'; +$lang['qb_ul'] = 'Eitem Rhestr Rifol'; +$lang['qb_media'] = 'Ychwanegu Delweddau a ffeiliau eraill (agor mewn ffenestr newydd)'; +$lang['qb_sig'] = 'Mewnosod Llofnod'; +$lang['qb_smileys'] = 'Gwenogluniau'; +$lang['qb_chars'] = 'Nodau Arbennig'; + +$lang['upperns'] = 'neidio i namespace uwch'; //namespace + +$lang['metaedit'] = 'Golygu Metadata'; +$lang['metasaveerr'] = 'Methwyd ysgrifennu metadata'; +$lang['metasaveok'] = 'Cadwyd y metadata'; +$lang['img_title'] = 'Teitl:'; +$lang['img_caption'] = 'Egluryn:'; +$lang['img_date'] = 'Dyddiad:'; +$lang['img_fname'] = 'Enw ffeil:'; +$lang['img_fsize'] = 'Maint:'; +$lang['img_artist'] = 'Ffotograffydd:'; +$lang['img_copyr'] = 'Hawlfraint:'; +$lang['img_format'] = 'Fformat:'; +$lang['img_camera'] = 'Camera:'; +$lang['img_keywords'] = 'Allweddeiriau:'; +$lang['img_width'] = 'Lled:'; +$lang['img_height'] = 'Uchder:'; + +$lang['subscr_subscribe_success'] = 'Ychwanegwyd %s i\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_subscribe_error'] = 'Gwall wrth ychwanegu %s i\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_subscribe_noaddress'] = '\'Sdim cyfeiriad wedi\'i gysylltu gyda\'ch defnyddair, felly \'sdim modd eich ychwanegu chi i\'r rhestr danysgrifio'; +$lang['subscr_unsubscribe_success'] = 'Tynnwyd %s o\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_unsubscribe_error'] = 'Roedd gwall wrth dynnu %s o\'r rhestr danysgrfio ar gyfer %s'; +$lang['subscr_already_subscribed'] = 'Mae %s eisoes wedi tanysgrifio i %s'; +$lang['subscr_not_subscribed'] = '\'Dyw %s heb danysgrifio i %s'; +// Manage page for subscriptions +$lang['subscr_m_not_subscribed'] = '\'Dych chi heb danysgrifio i\'r dudalen gyfredol neu\'r namespace, yn bresennol.'; //namespace +$lang['subscr_m_new_header'] = 'Ychwanegu tanysgrifiad'; +$lang['subscr_m_current_header'] = 'Tanysgrifiadau cyfredol'; +$lang['subscr_m_unsubscribe'] = 'Tynnu tanysgrifiad'; +$lang['subscr_m_subscribe'] = 'Tanysgrifio'; +$lang['subscr_m_receive'] = 'Derbyn'; +$lang['subscr_style_every'] = 'ebost ar bob newid'; +$lang['subscr_style_digest'] = 'ebost cryno o\'r newidiadau ar bob tudalen (pob %.2f diwrnod)'; +$lang['subscr_style_list'] = 'rhestr o dudalennau a newidiwyd ers yr ebost diwethaf (pob %.2f diwrnod)'; + +/* auth.class language support */ +$lang['authtempfail'] = '\'Dyw dilysiad defnyddiwr ddim ar gael yn bresennol (dros dro). Os ydy\'r sefyllfa\'n parhau, cysylltwch â gweinyddwr y wici.'; + +/* installer strings */ +$lang['i_chooselang'] = 'Dewiswch eich iaith'; +$lang['i_installer'] = 'Arsefydlwr DokuWiki'; +$lang['i_wikiname'] = 'Enw Wici'; +$lang['i_enableacl'] = 'Galluogi ACL (awgrymwyd)'; +$lang['i_superuser'] = 'Uwchddefnyddiwr'; +$lang['i_problems'] = 'Gwnaeth yr arsefydlwr ddod o hyd i broblemau, isod. \'Sdim modd parhau nes i chi eu datrys nhw.'; +$lang['i_modified'] = 'Oherwydd rhesymau diogelwch, bydd y sgript hwn dim ond yn gweithio gydag arsefydliad DokuWiki newydd sydd heb ei newid. + Dylech chi naill ai ail-echdynnu\'r ffeiliau o\'r pecyn a lawrlwythwyd neu porwch dros y + <a href="http://dokuwiki.org/install">canllawiau arsefydylu Dokuwiki</a> cyfan'; +$lang['i_funcna'] = 'Swyddogaeth PHP <code>%s</code> ddim ar gael. Posib bod eich gwesteiwr wedi\'i hanalluogi am ryw reswm?'; +$lang['i_phpver'] = 'Mae\'ch fersiwn PHP <code>%s</code> yn is na\'r hyn sydd ei angen <code>%s</code>. Mae angen i chi ddiweddaru eich arsefydliad PHP.'; +$lang['i_mbfuncoverload'] = 'Mae\'n rhaid analluogi mbstring.func_overload mewn php.ini er mwyn rhedeg DokuWiki.'; +$lang['i_permfail'] = '\'Dyw DokuWiki ddim yn gallu ysgrifennu i <code>%s</code>. Mae angen newid gosodiadau hawliau ar gyfer y ffolder hwn!'; +$lang['i_confexists'] = 'Mae <code>%s</code> eisoes yn bodoli'; +$lang['i_writeerr'] = 'Methu creu <code>%s</code>. Bydd angen i chi wirio hawliau ffolder/ffeil a chreu\'r ffeil gan law.'; +$lang['i_badhash'] = 'dokuwiki.php heb ei adnabod neu wedi\'i newid (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - gwerth anghyfreithlon neu wag'; +$lang['i_success'] = 'Gorffennodd y ffurfwedd yn llwyddiannus. Gallwch chi ddileu\'r ffeil install.php nawr. Ewch + <a href="doku.php?id=wiki:welcome">i\'ch DokuWiki newydd</a>.'; +$lang['i_failure'] = 'Ymddangosodd gwallau wrth ysgrifennu\'r ffeiliau ffurfwedd. Bydd angen i chi eu cywiro + nhw gan law cyn gallwch chi ddefnyddio\'ch <a href="doku.php?id=wiki:welcome">DokuWiki newydd</a>.'; +$lang['i_policy'] = 'Polisi ACL cychwynnol'; +$lang['i_pol0'] = 'Wici Agored (darllen, ysgrifennu, lanlwytho i bawb)'; +$lang['i_pol1'] = 'Wici Cyhoeddus (darllen i bawb, ysgrifennu a lanlwytho i ddefnyddwyr cofrestredig)'; +$lang['i_pol2'] = 'Wici Caeedig (darllen, ysgrifennu, lanlwytho i ddefnyddwyr cofrestredig yn unig)'; +$lang['i_allowreg'] = 'Caniatáu defnyddwyr i gofrestru eu hunain'; +$lang['i_retry'] = 'Ailgeisio'; +$lang['i_license'] = 'Dewiswch y drwydded rydych chi am osod ar eich cynnwys:'; +$lang['i_license_none'] = 'Peidio â dangos unrhyw wybodaeth drwyddedu'; +$lang['i_pop_field'] = 'Plis, helpwch ni i wella\'r profiad o ddefnyddio DokuWiki:'; +$lang['i_pop_label'] = 'Anfon data defnydd anhysbys i ddatblygwyr DokuWiki unwaith y mis'; + +$lang['recent_global'] = 'Yn bresennol, rydych chi\'n gwylio newidiadau tu fewn namespace <b>%s</b>. Gallwch chi hefyd <a href="%s">weld y newidiadau diweddar ar gyfer y wici cyfan</a>.'; //namespace + +$lang['years'] = '%d blynedd yn ôl'; +$lang['months'] = '%d mis yn ôl'; +$lang['weeks'] = '%d wythnos yn ôl'; +$lang['days'] = '%d diwrnod yn ôl'; +$lang['hours'] = '%d awr yn ôl'; +$lang['minutes'] = '%d munud yn ôl'; +$lang['seconds'] = '%d eiliad yn ôl'; + +$lang['wordblock'] = 'Doedd eich newid heb gadw gan ei fod yn cynnwys testun wedi\'i flocio (sbam).'; + +$lang['media_uploadtab'] = 'Lanlwytho'; +$lang['media_searchtab'] = 'Chwilio'; +$lang['media_file'] = 'Ffeil'; +$lang['media_viewtab'] = 'Golwg'; +$lang['media_edittab'] = 'Golygu'; +$lang['media_historytab'] = 'Hanes'; +$lang['media_list_thumbs'] = 'Bawdlun'; +$lang['media_list_rows'] = 'Rhesi'; +$lang['media_sort_name'] = 'Enw'; +$lang['media_sort_date'] = 'Dyddiad'; +$lang['media_namespaces'] = 'Dewis namespace'; //namespace +$lang['media_files'] = 'Ffeiliau mewn %s'; +$lang['media_upload'] = 'Lanlwytho i %s'; +$lang['media_search'] = 'Chwilio mewn %s'; +$lang['media_view'] = '%s'; +$lang['media_viewold'] = '%s ar %s'; +$lang['media_edit'] = 'Golygu %s'; +$lang['media_history'] = 'Hanes %s'; +$lang['media_meta_edited'] = 'golygwyd metadata'; +$lang['media_perm_read'] = 'Sori, ond \'sdim digon o hawliau \'da chi i ddarllen ffeiliau.'; +$lang['media_perm_upload'] = 'Sori, ond \'sdim digon o hawliau \'da chi i lanlwytho ffeiliau.'; +$lang['media_update'] = 'Lanlwytho fersiwn newydd'; +$lang['media_restore'] = 'Adfer y fersiwn hwn'; +$lang['media_acl_warning'] = 'Gall y rhestr hon fod yn anghyflawn oherwydd cyfyngiadau ACL a thudalennau coll.'; + +$lang['currentns'] = 'Namespace cyfredol'; //namespace +$lang['searchresult'] = 'Canlyniad Chwilio'; +$lang['plainhtml'] = 'HTML Plaen'; +$lang['wikimarkup'] = 'Iaith Wici'; +$lang['page_nonexist_rev'] = 'Doedd y dudalen ddim yn bodoli ar %s. Cafodd ei chreu wedyn ar <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Methu dosbarthu ar baramedr "%s".'; +//Setup VIM: ex: et ts=2 : -- GitLab From dd61e06f8c51d4d3153dd89c66adc9bc4d9bc06a Mon Sep 17 00:00:00 2001 From: Mohmmad Razavi <sepent@gmail.com> Date: Sun, 27 Dec 2015 10:11:15 +0100 Subject: [PATCH 421/440] translation update --- inc/lang/fa/lang.php | 6 ++++ lib/plugins/authad/lang/fa/lang.php | 4 +++ lib/plugins/authad/lang/fa/settings.php | 6 ++++ lib/plugins/authldap/lang/fa/settings.php | 2 ++ lib/plugins/authmysql/lang/fa/lang.php | 10 +++++++ lib/plugins/authmysql/lang/fa/settings.php | 33 ++++++++++++++++++++++ lib/plugins/authpgsql/lang/fa/settings.php | 5 ++++ lib/plugins/authplain/lang/fa/lang.php | 5 ++-- lib/plugins/config/lang/fa/lang.php | 6 ++-- 9 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/authmysql/lang/fa/lang.php diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 7b45b3137..058f4fe3b 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -15,6 +15,7 @@ * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -80,6 +81,7 @@ $lang['regmissing'] = 'متاسÙÙ…ØŒ شما باید همه قسمت $lang['reguexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; $lang['regsuccess'] = 'کاربر ساخته شد Ùˆ گذرواژه به صورت ایمیل ارسال گردید.'; $lang['regsuccess2'] = 'Øساب ایجاد شد.'; +$lang['regfail'] = 'ایجاد کاربر ممکن نیست.'; $lang['regmailfail'] = 'مشکلی در ارسال ایمیل پیش آمده است، با مدیر تماس بگیرید!'; $lang['regbadmail'] = 'نشانی واردشده‌ی ایمیل قابل‌قبول نیست، چرا Ú©Ù‡ دارای ساختار نامعتبری است. خواهشمندیم نشانی‌ای با ساختار صØÛŒØ ÙˆØ§Ø±Ø¯ کنید Ùˆ یا بخش مربوط را خالی بگذارید.'; $lang['regbadpass'] = 'گذرواژه‌هایی Ú©Ù‡ وارد کردید یکسان نیستند.'; @@ -94,6 +96,7 @@ $lang['profdeleteuser'] = 'ØØ°Ù Øساب کاربری'; $lang['profdeleted'] = 'Øساب کاربری شما Øذ٠گردیده است.'; $lang['profconfdelete'] = 'می‌خواهم Øساب کاربری من از این ویکی Øذ٠شود. <br/> این عمل قابل برگشت نیست.'; $lang['profconfdeletemissing'] = 'جعبه‌ی تأیید تیک نخورده است'; +$lang['proffail'] = 'بروزرسانی پروÙایل کاربری انجام نشد.'; $lang['pwdforget'] = 'گذرواژه‌ی خود را Ùراموش کرده‌اید؟ جدید دریاÙت کنید'; $lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند'; $lang['resendpwd'] = 'تعیین کلمه عبور جدید برای '; @@ -339,7 +342,10 @@ $lang['media_perm_read'] = 'متاسÙانه شما ØÙ‚ خواندن ای $lang['media_perm_upload'] = 'متاسÙانه شما ØÙ‚ آپلود این Ùایل‌ها را ندارید.'; $lang['media_update'] = 'آپلود نسخه‌ی جدید'; $lang['media_restore'] = 'بازیابی این نسخه'; +$lang['media_acl_warning'] = 'این لیست ممکن است به خاطر Ù…Øدودیتهای دسترسیهای ACL Ùˆ صÙØات پنهان کامل نباشد.'; $lang['currentns'] = 'Ùضای نام جاری'; $lang['searchresult'] = 'نتیجه‌ی جستجو'; $lang['plainhtml'] = 'HTML ساده'; $lang['wikimarkup'] = 'نشانه‌گذاری ویکی'; +$lang['page_nonexist_rev'] = 'صÙØÙ‡ %s وجود نداشت. این صÙØÙ‡ معاقباً در<a href="%s">%s</a> ایجاد شد.'; +$lang['unable_to_parse_date'] = 'امکان تجزیه Ùˆ تØلیل پارامتر «%s» وجود ندارد.'; diff --git a/lib/plugins/authad/lang/fa/lang.php b/lib/plugins/authad/lang/fa/lang.php index 646142331..ca1c8e807 100644 --- a/lib/plugins/authad/lang/fa/lang.php +++ b/lib/plugins/authad/lang/fa/lang.php @@ -5,6 +5,10 @@ * * @author Hamid <zarrabi@sharif.edu> * @author Milad DZand <M.DastanZand@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['domain'] = 'دامنه‌ی ورود'; $lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; +$lang['passchangefail'] = 'تغیر رمزعبور با خطا مواجه شد. شاید سیاستهای مربوط به گذاشتن نام کاربری درست رعایت نشده است.'; +$lang['userchangefail'] = 'تغییر ویژگی‌های کابر با خطا مواجه شد. شاید Øساب کاربری شما مجاز به انجام این تغییرات نیست.'; +$lang['connectfail'] = 'ارتباط با سرور Active Directory با خطا مواجه شد.'; diff --git a/lib/plugins/authad/lang/fa/settings.php b/lib/plugins/authad/lang/fa/settings.php index 161479afb..e29460521 100644 --- a/lib/plugins/authad/lang/fa/settings.php +++ b/lib/plugins/authad/lang/fa/settings.php @@ -4,7 +4,13 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ +$lang['account_suffix'] = 'پسوند Øساب کاربری شما. به عنوان مثال <code>@my.domain.org</code>'; +$lang['base_dn'] = 'DN پایه شما. به عنوان مثال <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'لیست کنترل کننده‌های دامنه Ú©Ù‡ با کاما ازهم جدا شده اند. به عنوان مثال <code>srv1.domain.org,srv2.domain.org</code'; $lang['admin_password'] = 'رمز کاربر بالایی '; $lang['use_ssl'] = 'از اس‌اس‌ال استÙاده می‌کنید؟ در این صورت تی‌ال‌اس را در پایین Ùعال نکنید. '; $lang['use_tls'] = 'از تی‌ال‌اس استÙاده می‌کنید؟ در این صورت اس‌اس‌ال را در بالا Ùعال نکنید. '; +$lang['debug'] = 'داده‌های اضاÙÛŒ خروجی دیباگ در هنگام بروز خطا نمایش داده شود؟'; +$lang['expirywarn'] = 'تعداد روزهایی Ú©Ù‡ پس گذشتن آن برای تغییر رمزعبور به شما هشدار داده شود. باری غیرÙعال سازی از مقدار 0 استÙاده کنید.'; diff --git a/lib/plugins/authldap/lang/fa/settings.php b/lib/plugins/authldap/lang/fa/settings.php index 49d485afd..b801cd12a 100644 --- a/lib/plugins/authldap/lang/fa/settings.php +++ b/lib/plugins/authldap/lang/fa/settings.php @@ -5,6 +5,8 @@ * * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['starttls'] = 'از تی‌ال‌اس (TLS) استÙاده می‌کنید؟'; +$lang['deref'] = 'نام‌های مستعار چطور ارجاع یابی شوند؟'; $lang['bindpw'] = 'رمزعبور کاربر بالا'; diff --git a/lib/plugins/authmysql/lang/fa/lang.php b/lib/plugins/authmysql/lang/fa/lang.php new file mode 100644 index 000000000..e2b397879 --- /dev/null +++ b/lib/plugins/authmysql/lang/fa/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mohmmad Razavi <sepent@gmail.com> + */ +$lang['userexists'] = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.'; +$lang['usernotexists'] = 'با عرض پوزش، آن کاربر وجود نداشت.'; +$lang['writefail'] = 'امکان تغییر داده کاربر وجود نداشت. لطÙا مسئول Wiki را آگاه کنید.'; diff --git a/lib/plugins/authmysql/lang/fa/settings.php b/lib/plugins/authmysql/lang/fa/settings.php index 68ad5ce83..bca4bbf07 100644 --- a/lib/plugins/authmysql/lang/fa/settings.php +++ b/lib/plugins/authmysql/lang/fa/settings.php @@ -4,7 +4,40 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['server'] = 'سرور MySQL'; $lang['user'] = 'نام کاربری MySQL'; +$lang['password'] = 'رمزعبور کاربر بالا'; $lang['database'] = 'پایگاه داده مورد استÙاده'; +$lang['charset'] = 'مجموعه کاراکترهایی (Character set) Ú©Ù‡ در پایگاه داده بکار رÙته'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای دیباگ'; +$lang['forwardClearPass'] = 'بجای استÙاده از گزینه passcryptØŒ رمزعبورهای کاربر را بصورت آشکار به دستور SQL زیر پاس دهید.'; +$lang['TablesToLock'] = 'لیست جدولهایی Ú©Ù‡ هنگام عملیات نوشتن باید Ù‚ÙÙ„ شود Ú©Ù‡ با کاما از هم جدا شده اند'; +$lang['checkPass'] = 'دستور SQL برای بررسی رمزعبورها'; +$lang['getUserInfo'] = 'دستور SQL برای دریاÙت اطلاعات نام کاربری'; +$lang['getGroups'] = 'دستور SQL برای دریاÙت گروه‌های عضویت یک کاربر'; +$lang['getUsers'] = 'دستور SQL برای گرÙتن لیست تمامی کاربران'; +$lang['FilterLogin'] = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کاربری (login name)'; +$lang['FilterName'] = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کامل'; +$lang['FilterEmail'] = 'عبارت SQL برای Ùیلتر کردن کابران با آدرس ایمیل'; +$lang['FilterGroup'] = 'عبارت SQL برای Ùیلتر کاربران با گروه عضویتشان'; +$lang['SortOrder'] = 'عبارت SQL برای مرتب کردن کاربران'; +$lang['addUser'] = 'دستور SQL برای اضاÙÙ‡ کردن کاربر جدید'; +$lang['addGroup'] = 'دستور SQL برای اضاÙÙ‡ کردن گروه جدید'; +$lang['addUserGroup'] = 'دستور SQL برای اضاÙÙ‡ کردن یک کاربر به یک گروه موجود از قبل'; +$lang['delGroup'] = 'دستور SQL برای Øذ٠یک گروه'; +$lang['getUserID'] = 'دستور SQL برای گرÙتن کلید اصلی (primary key) یک کاربر'; +$lang['delUser'] = 'دستور SQL برای Øذ٠یک کاربر'; +$lang['delUserRefs'] = 'دستور SQL برای Øذ٠یک کابر از تمامی گروه‌ها'; +$lang['updateUser'] = 'دستور SQL برای بروزرسانی پروÙایل یک کاربر'; +$lang['UpdateLogin'] = 'عبارت Update برای بروزرسانی نام کاربری (login name)'; +$lang['UpdatePass'] = 'عبارت Update برای بروزرسانی رمزعبور کاربر'; +$lang['UpdateEmail'] = 'عبارت Update برای بروزرسانی ادرسی ایمیل کاربر'; +$lang['UpdateName'] = 'عبارت Update برای بروزرسانی نام کامل کاربر'; +$lang['UpdateTarget'] = 'عبارت Limit برای شناسایی کابر هنگام بروزرسانی'; +$lang['delUserGroup'] = 'دستور SQL برای Øذ٠یک کاربر '; +$lang['getGroupID'] = 'دستور SQL برای گرÙتن کلید اصلی (primary key) گروه داده شده'; +$lang['debug_o_0'] = 'هیچ'; +$lang['debug_o_1'] = 'Ùقط هنگام خطا'; +$lang['debug_o_2'] = 'تمام پرس‌وجوهای SQL'; diff --git a/lib/plugins/authpgsql/lang/fa/settings.php b/lib/plugins/authpgsql/lang/fa/settings.php index 813493967..f120fb536 100644 --- a/lib/plugins/authpgsql/lang/fa/settings.php +++ b/lib/plugins/authpgsql/lang/fa/settings.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ +$lang['server'] = 'سرور PostgreSQL شما'; +$lang['port'] = 'پورت سرور PostgreSQL شما'; +$lang['user'] = 'نام کاربری PostgreSQL'; +$lang['password'] = 'رمزعبور کابر بالا'; $lang['database'] = 'پایگاه داده مورد استÙاده'; diff --git a/lib/plugins/authplain/lang/fa/lang.php b/lib/plugins/authplain/lang/fa/lang.php index 49083ad60..acb316988 100644 --- a/lib/plugins/authplain/lang/fa/lang.php +++ b/lib/plugins/authplain/lang/fa/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ -$lang['userexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; +$lang['userexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; diff --git a/lib/plugins/config/lang/fa/lang.php b/lib/plugins/config/lang/fa/lang.php index dd97f716e..e6f02813b 100644 --- a/lib/plugins/config/lang/fa/lang.php +++ b/lib/plugins/config/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com @@ -9,6 +10,7 @@ * @author Mohammad Reza Shoaei <shoaei@gmail.com> * @author Milad DZand <M.DastanZand@gmail.com> * @author AmirH Hassaneini <mytechmix@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['menu'] = 'تنظیمات پیکر‌بندی'; $lang['error'] = 'به دلیل ایراد در مقادیر وارد شده، تنظیمات اعمال نشد، خواهشمندیم تغییرات را مجددن کنترل نمایید Ùˆ دوباره ارسال کنید.<br/> مقادیر مشکل‌دار با کادر قرمز مشخص شده‌اند.'; -- GitLab From 5cacbdb78d61121ab85ee9f8be21f9c0bb556196 Mon Sep 17 00:00:00 2001 From: Wesley de Weerd <wesleytiel@gmail.com> Date: Tue, 29 Dec 2015 12:56:42 +0100 Subject: [PATCH 422/440] translation update --- inc/lang/nl/lang.php | 1 + lib/plugins/authad/lang/nl/lang.php | 2 ++ lib/plugins/usermanager/lang/nl/lang.php | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index a2f2a64ce..c085521f2 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -29,6 +29,7 @@ * @author Hugo Smet <hugo.smet@scarlet.be> * @author Mark C. Prins <mprins@users.sf.net> * @author hugo smet <hugo.smet@scarlet.be> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/nl/lang.php b/lib/plugins/authad/lang/nl/lang.php index 341a4036e..4e873201f 100644 --- a/lib/plugins/authad/lang/nl/lang.php +++ b/lib/plugins/authad/lang/nl/lang.php @@ -6,8 +6,10 @@ * @author Rene <wllywlnt@yahoo.com> * @author Dion Nicolaas <dion@nicolaas.net> * @author Hugo Smet <hugo.smet@scarlet.be> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['domain'] = 'Inlog Domein'; $lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; $lang['passchangefail'] = 'Wijziging van het paswoord is mislukt. Wellicht beantwoord het paswoord niet aan de voorwaarden. '; +$lang['userchangefail'] = 'Kan gebruiker attributen veranderen . Misschien heeft uw account geen rechten om wijzigingen aan te brengen?'; $lang['connectfail'] = 'Connectie met Active Directory server mislukt.'; diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index 3f9902e14..ea85d0f7b 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -16,6 +16,7 @@ * @author Ricardo Guijt <ricardoguijt@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Rene <wllywlnt@yahoo.com> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['menu'] = 'Gebruikersbeheer'; $lang['noauth'] = '(gebruikersauthenticatie niet beschikbaar)'; @@ -76,3 +77,11 @@ $lang['import_error_readfail'] = 'Importeren mislukt. Lezen van het geüploade b $lang['import_error_create'] = 'Aanmaken van de gebruiker was niet mogelijk.'; $lang['import_notify_fail'] = 'Notificatiebericht kon niet naar de geïmporteerde gebruiker worden verstuurd, %s met e-mail %s.'; $lang['import_downloadfailures'] = 'Download de gevonden fouten als CSV voor correctie'; +$lang['addUser_error_missing_pass'] = 'Vul een wachtwoord in of activeer de gebruikers notificatie om een wachtwoord te genereren.'; +$lang['addUser_error_pass_not_identical'] = 'De ingevulde wachtwoorden komen niet overeen'; +$lang['addUser_error_modPass_disabled'] = 'Het aanpassen van wachtwoorden is momenteel uitgeschakeld'; +$lang['addUser_error_name_missing'] = 'Vul een naam in voor de nieuwe gebruiker'; +$lang['addUser_error_modName_disabled'] = 'Het aanpassen van namen is momenteel uitgeschakeld'; +$lang['addUser_error_mail_missing'] = 'Vul een email adres in voor de nieuwe gebruiker'; +$lang['addUser_error_modMail_disabled'] = 'Het aanpassen van uw email adres is momenteel uitgeschakeld'; +$lang['addUser_error_create_event_failed'] = 'Een plugin heeft voorkomen dat de nieuwe gebruiker wordt toegevoegd . Bekijk mogelijke andere berichten voor meer informatie.'; -- GitLab From 6f6d10bd56ad7efdac907a8b53e404ed51324b32 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 29 Dec 2015 16:54:21 +0000 Subject: [PATCH 423/440] Partial Plugin Translation for Welsh Plugin translation #1 --- lib/plugins/acl/lang/cy/help.txt | 10 +++++ lib/plugins/acl/lang/cy/lang.php | 47 ++++++++++++++++++++ lib/plugins/authad/lang/cy/lang.php | 16 +++++++ lib/plugins/authad/lang/cy/settings.php | 15 +++++++ lib/plugins/authldap/lang/cy/lang.php | 11 +++++ lib/plugins/authldap/lang/cy/settings.php | 29 ++++++++++++ lib/plugins/authmysql/lang/cy/lang.php | 13 ++++++ lib/plugins/authmysql/lang/cy/settings.php | 39 ++++++++++++++++ lib/plugins/popularity/lang/cy/intro.txt | 11 +++++ lib/plugins/popularity/lang/cy/lang.php | 9 ++++ lib/plugins/popularity/lang/cy/submitted.txt | 3 ++ lib/plugins/revert/lang/cy/intro.txt | 3 ++ lib/plugins/revert/lang/cy/lang.php | 22 +++++++++ lib/plugins/styling/lang/cy/intro.txt | 2 + lib/plugins/styling/lang/cy/lang.php | 36 +++++++++++++++ lib/tpl/dokuwiki/lang/cy/lang.php | 12 +++++ lib/tpl/dokuwiki/lang/cy/style.txt | 4 ++ 17 files changed, 282 insertions(+) create mode 100644 lib/plugins/acl/lang/cy/help.txt create mode 100644 lib/plugins/acl/lang/cy/lang.php create mode 100644 lib/plugins/authad/lang/cy/lang.php create mode 100644 lib/plugins/authad/lang/cy/settings.php create mode 100644 lib/plugins/authldap/lang/cy/lang.php create mode 100644 lib/plugins/authldap/lang/cy/settings.php create mode 100644 lib/plugins/authmysql/lang/cy/lang.php create mode 100644 lib/plugins/authmysql/lang/cy/settings.php create mode 100644 lib/plugins/popularity/lang/cy/intro.txt create mode 100644 lib/plugins/popularity/lang/cy/lang.php create mode 100644 lib/plugins/popularity/lang/cy/submitted.txt create mode 100644 lib/plugins/revert/lang/cy/intro.txt create mode 100644 lib/plugins/revert/lang/cy/lang.php create mode 100644 lib/plugins/styling/lang/cy/intro.txt create mode 100644 lib/plugins/styling/lang/cy/lang.php create mode 100644 lib/tpl/dokuwiki/lang/cy/lang.php create mode 100644 lib/tpl/dokuwiki/lang/cy/style.txt diff --git a/lib/plugins/acl/lang/cy/help.txt b/lib/plugins/acl/lang/cy/help.txt new file mode 100644 index 000000000..f3d6474f8 --- /dev/null +++ b/lib/plugins/acl/lang/cy/help.txt @@ -0,0 +1,10 @@ +=== Cymorth Byw: === + +Ar y dudalen hon, gallwch chi ychwanegu a dileu hawliau ar gyfer namespaces a thudalennau yn eich wici. + * Mae'r panel ar y chwith yn dangos pob namespace a thudalen. + * Mae'r ffurflen uchod yn eich galluogi chi i weld a newid hawliau defnyddiwr neu grŵp a ddewiswyd. + * Yn y tabl isod, dengys pob rheol rheoli mynediad sydd wedi'u gosod yn bresennol. Gallwch chi ei ddefnyddio i ddileu neu newid sawl rheol ar y tro. + +Gall darllen [[doku>acl|dogfennaeth swyddogol ar ACL]] fod o fudd er mwyn eich helpu chi ddeall yn llawn sut mae rheolaeth mynediad yn gweithio mewn DokuWiki. + + diff --git a/lib/plugins/acl/lang/cy/lang.php b/lib/plugins/acl/lang/cy/lang.php new file mode 100644 index 000000000..add3ca404 --- /dev/null +++ b/lib/plugins/acl/lang/cy/lang.php @@ -0,0 +1,47 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + * @author Anika Henke <anika@selfthinker.org> + * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['admin_acl'] = 'Rheolaeth Rhestr Rheoli Mynediad'; +$lang['acl_group'] = 'Grŵp:'; +$lang['acl_user'] = 'Defnyddiwr:'; +$lang['acl_perms'] = 'Hawliau'; +$lang['page'] = 'Tudalen'; +$lang['namespace'] = 'Namespace'; //namespace + +$lang['btn_select'] = 'Dewis'; + +$lang['p_user_id'] = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace +$lang['p_group_id'] = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace + +$lang['p_choose_id'] = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y dudalen <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y namespace <b class="aclns">%s</b>.';//namespace + + +$lang['p_inherited'] = 'Sylw: Doedd yr hawliau hynny heb eu gosod yn uniongyrchol ond cawsant eu hetifeddu o grwpiau eraill neu namespaces uwch.';//namespace +$lang['p_isadmin'] = 'Sylw: Mae gan y grŵp neu\'r defnyddiwr hawliau llawn oherwydd mae wedi\'i ffurfweddu fel uwchddefnyddiwr.'; +$lang['p_include'] = 'Mae hawliau uwch yn cynnwys rhai is. Mae Creu, Lanlwytho a Dileu yn berthnasol i namespaces yn unig, nid tudalennau.';//namespace + +$lang['current'] = 'Rheolau ACL Cyfredol'; +$lang['where'] = 'Tudalen/Namespace';//namespace +$lang['who'] = 'Defnyddiwr/Grŵp'; +$lang['perm'] = 'Hawliau'; + +$lang['acl_perm0'] = 'Dim'; +$lang['acl_perm1'] = 'Darllen'; +$lang['acl_perm2'] = 'Golygu'; +$lang['acl_perm4'] = 'Creu'; +$lang['acl_perm8'] = 'Lanlwytho'; +$lang['acl_perm16'] = 'Dileu'; +$lang['acl_new'] = 'Ychwanegu Cofnod Newydd'; +$lang['acl_mod'] = 'Newid Cofnod'; +//Setup VIM: ex: et ts=2 : diff --git a/lib/plugins/authad/lang/cy/lang.php b/lib/plugins/authad/lang/cy/lang.php new file mode 100644 index 000000000..8cc3746f2 --- /dev/null +++ b/lib/plugins/authad/lang/cy/lang.php @@ -0,0 +1,16 @@ +<?php +/** + * Welsh language file for addomain plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Andreas Gohr <gohr@cosmocode.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['domain'] = 'Parth Mewngofnodi'; +$lang['authpwdexpire'] = 'Bydd eich cyfrinair yn dod i ben mewn %d diwrnod, dylech chi ei newid e\'n fuan.'; +$lang['passchangefail'] = 'Methodd newid y cyfrinair. Posib roedd y cyfrinair yn annilys?'; +$lang['userchangefail'] = 'Methodd newid priodoleddau defnyddiwr. Posib \'sdim hawliau \'da chi i wneud newidiadau?'; +$lang['connectfail'] = 'Methodd y cysylltiad i weinydd yr Active Directory.'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authad/lang/cy/settings.php b/lib/plugins/authad/lang/cy/settings.php new file mode 100644 index 000000000..e343485ec --- /dev/null +++ b/lib/plugins/authad/lang/cy/settings.php @@ -0,0 +1,15 @@ +<?php + +$lang['account_suffix'] = 'Olddodiad eich cyfrif. Ee. <code>@my.domain.org</code>'; +$lang['base_dn'] = 'Sail eich DN. Eg. <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'Rhestr gwahanwyd gan goma o reolwyr Parth. Ee. <code>srv1.domain.org,srv2.domain.org</code>'; +$lang['admin_username'] = 'Defnyddiwr Active Directory breintiedig gyda mynediad i ddata pob defnyddiwr arall. Yn opsiynol, ond yn hanfodol ar gyfer gweithredoedd penodol fel anfon ebyst tanysgrifio.'; +$lang['admin_password'] = 'Cyfrinair y defnyddiwr uchod.'; +$lang['sso'] = 'A ddylai Mewngofnodi-Unigol gan Kerberos neu NTLM gael ei ddefnyddio?'; +$lang['sso_charset'] = 'Y set nod mae\'ch gweinydd gwe yn pasio defnyddair Kerberos neu NTLM ynddi. Gwag ar gyfer UTF-8 neu latin-1. Bydd angen estyniad iconv.'; +$lang['real_primarygroup'] = 'Os ydy\'r prif grŵp real yn cael ei hadfer yn hytrach na thybio "Defnyddwyr Parth" (arafach).'; +$lang['use_ssl'] = 'Defnyddio cysylltiad SSL? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi TLS isod.'; +$lang['use_tls'] = 'Defnyddio cysylltiad TLS? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi SSL uchod.'; +$lang['debug'] = 'Dangos allbwn dadfygio ychwanegol ar wallau?'; +$lang['expirywarn'] = 'Diwrnodau o flaen llaw i rybuddio defnyddwyr o ran cyfrinair yn dod i ben. 0 i analluogi.'; +$lang['additional'] = 'Rhestr a wahanwyd gan goma o briodoleddau AD ychwanegol i nôl o ddata defnyddiwr. Defnyddiwyd gan rai ategion.'; diff --git a/lib/plugins/authldap/lang/cy/lang.php b/lib/plugins/authldap/lang/cy/lang.php new file mode 100644 index 000000000..f6c5cf6bd --- /dev/null +++ b/lib/plugins/authldap/lang/cy/lang.php @@ -0,0 +1,11 @@ +<?php +/** + * Welsh language file for authldap plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'LDAP yn methu cysylltu: %s'; +$lang['domainfail'] = 'LDAP yn methu darganfod eich defnyddiwr dn'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authldap/lang/cy/settings.php b/lib/plugins/authldap/lang/cy/settings.php new file mode 100644 index 000000000..91c9bfdee --- /dev/null +++ b/lib/plugins/authldap/lang/cy/settings.php @@ -0,0 +1,29 @@ +<?php +$lang['server'] = 'Eich gweinydd LDAP. Naill ai enw\'r gweinydd (<code>localhost</code>) neu\'r URL llawn (<code>ldap://server.tld:389</code>)'; +$lang['port'] = 'Porth gweinydd LDAP os nac oes URL llawn wedi\'i gyflwyno uchod'; +$lang['usertree'] = 'Ble i ddarganfod cyfrifon defnyddwyr. Ee. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Ble i ddarganfod y grwpiau defnyddiwr. Eg. <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'Hidlydd LDAP i ddarganfod cyfrifon defnyddwyr. Eg. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'Hidlydd LDAP i chwilio am grwpiau. Eg. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'Y fersiwn protocol i\'w ddefnyddio. Efallai bydd angen gosod hwn i <code>3</code>'; +$lang['starttls'] = 'Defnyddio cysylltiadau TLS?'; +$lang['referrals'] = 'Dilyn cyfeiriadau (referrals)?'; +$lang['deref'] = 'Sut i ddadgyfeirio alias?'; //alias - enw arall? +$lang['binddn'] = 'DN rhwymiad defnyddiwr opsiynol os ydy rhwymiad anhysbys yn annigonol. Ee. <code>cn=admin, dc=my, dc=home</code>'; +$lang['bindpw'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['userscope'] = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad defnyddwyr'; +$lang['groupscope'] = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad grwpiau'; +$lang['userkey'] = 'Priodoledd yn denodi\'r defnyddair; rhaid iddo fod yn gyson i \'r hidlydd defnyddwyr.'; +$lang['groupkey'] = 'Aelodaeth grŵp o unrhyw briodoledd defnyddiwr (yn hytrach na grwpiau AD safonol) e.e. grŵp o adran neu rif ffôn'; +$lang['modPass'] = 'Gall cyfrinair LDAP gael ei newid gan DokuWiki?'; +$lang['debug'] = 'Dangos gwybodaeth dadfygio ychwanegol gyda gwallau'; + + +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; + +$lang['referrals_o_-1'] = 'defnyddio\'r diofyn'; +$lang['referrals_o_0'] = 'peidio dilyn cyfeiriadau'; +$lang['referrals_o_1'] = 'dilyn cyfeiriadau'; \ No newline at end of file diff --git a/lib/plugins/authmysql/lang/cy/lang.php b/lib/plugins/authmysql/lang/cy/lang.php new file mode 100644 index 000000000..a96715c12 --- /dev/null +++ b/lib/plugins/authmysql/lang/cy/lang.php @@ -0,0 +1,13 @@ +<?php +/** + * Welsh language file for authmysql plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'Method y cysylltiad i\'r databas.'; +$lang['userexists'] = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.'; +$lang['usernotexists'] = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.'; +$lang['writefail'] = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authmysql/lang/cy/settings.php b/lib/plugins/authmysql/lang/cy/settings.php new file mode 100644 index 000000000..526cffa61 --- /dev/null +++ b/lib/plugins/authmysql/lang/cy/settings.php @@ -0,0 +1,39 @@ +<?php + +$lang['server'] = 'Eich gweinydd MySQL'; +$lang['user'] = 'Defnyddair MySQL'; +$lang['password'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['database'] = 'Databas i\'w ddefnyddio'; +$lang['charset'] = 'Set nodau i\'w defnyddio gyda\'r databas'; +$lang['debug'] = 'Dangos gwybodaeth dadfygio ychwanegol'; +$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\''; +$lang['TablesToLock'] = 'Rhestr a wahanwyd gan goma o dablau sydd angen eu cloi yn ystod gweithredoedd ysgrifennu'; +$lang['checkPass'] = 'Datganiad SQL i wirio cyfrineiriau'; +$lang['getUserInfo'] = 'Datganiad SQL i nôl gwybodaeth defnyddiwr'; +$lang['getGroups'] = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr'; +$lang['getUsers'] = 'Datganiad SQL i restru pob defnyddiwr'; +$lang['FilterLogin'] = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi'; +$lang['FilterName'] = 'Cymal SQL i hidlo defnyddwyr gan enw llawn'; +$lang['FilterEmail'] = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost'; +$lang['FilterGroup'] = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp'; +$lang['SortOrder'] = 'Cymal SQL i drefnu defnyddwyr'; +$lang['addUser'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd'; +$lang['addGroup'] = 'Datganiad SQL i ychwanegu grŵp newydd'; +$lang['addUserGroup'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes'; +$lang['delGroup'] = 'Datganiad SQL i dynnu grŵp'; +$lang['getUserID'] = 'Datganiad SQL i nôl prif allwedd y defnyddiwr'; +$lang['delUser'] = 'Datganiad SQL i ddileu defnyddiwr'; +$lang['delUserRefs'] = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp'; +$lang['updateUser'] = 'Datganiad SQL i ddiweddaru proffil defnyddiwr'; +$lang['UpdateLogin'] = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr'; +$lang['UpdatePass'] = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr'; +$lang['UpdateEmail'] = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr'; +$lang['UpdateName'] = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr'; +$lang['UpdateTarget'] = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru'; +$lang['delUserGroup'] = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp'; +$lang['getGroupID'] = 'Datganiad SQL i nôl prif allwedd grŵp penodol'; + + +$lang['debug_o_0'] = 'dim'; +$lang['debug_o_1'] = 'gyda gwallau yn unig'; +$lang['debug_o_2'] = 'pob ymholiad SQL'; diff --git a/lib/plugins/popularity/lang/cy/intro.txt b/lib/plugins/popularity/lang/cy/intro.txt new file mode 100644 index 000000000..187dfe0b7 --- /dev/null +++ b/lib/plugins/popularity/lang/cy/intro.txt @@ -0,0 +1,11 @@ +====== Adborth Poblogrwydd ====== + +Mae'r [[doku>popularity|teclyn]] hwn yn casglu data anhysbys am eich wici ac yn eich galluogi chi i'w anfon yn ôl i ddatblygwyr DokuWiki. Mae hwn yn eu helpu nhw i ddeall sut mae DokuWiki yn cael ei ddefnyddio gan ei ddefnyddwyr ac mae\'n sicrhau bod penderfyniadau datblygu yn y dyfodol yn cael eu cefnogi gan ystadegau defnydd go iawn. + +Cewch eich annog i ailadrodd y cam hwn o dro i dro er mwyn hysbysu datblygwyr wrth i'ch wici dyfu. Caiff eich setiau data eilfydd eu hadnabod gan ID anhysbys. + +Mae'r data sy'n cael ei gasglu yn cynnwys pethau fel fersiwn eich DokuWiki, nifer a maint eich tudalennau a'ch ffeiliau chi, ategion sydd wedi'u harsefydlu a gwybodaeth parthed eich arsefydliad PHP. + +Caiff y data crai i'w anfon ei ddangos isod. Pwyswch fotwm "Anfon Data" i drosglwyddo'r wybodaeth. + + diff --git a/lib/plugins/popularity/lang/cy/lang.php b/lib/plugins/popularity/lang/cy/lang.php new file mode 100644 index 000000000..7bee7bdf2 --- /dev/null +++ b/lib/plugins/popularity/lang/cy/lang.php @@ -0,0 +1,9 @@ +<?php + +$lang['name'] = 'Adborth Poblogrwydd (gall gymryd ychydig o amser i lwytho)'; +$lang['submit'] = 'Anfon Data'; +$lang['autosubmit'] = 'Anfon data yn awtomatig unwaith y mis'; +$lang['submissionFailed'] = 'Doedd dim modd anfon y data oherwydd y gwall canlynol:'; +$lang['submitDirectly'] = 'Gallwch chi anfon y data gan law gan gyflwyno\'r ffurflen ganlynol.'; +$lang['autosubmitError'] = 'Methodd yr awtogyflwyniad diwethaf oherwydd y gwall canlynol: '; +$lang['lastSent'] = 'Anfonwyd y data'; diff --git a/lib/plugins/popularity/lang/cy/submitted.txt b/lib/plugins/popularity/lang/cy/submitted.txt new file mode 100644 index 000000000..eb6fd815a --- /dev/null +++ b/lib/plugins/popularity/lang/cy/submitted.txt @@ -0,0 +1,3 @@ +====== Adborth Poblogrwydd ====== + +Cafodd y data ei anfon yn llwyddiannus. diff --git a/lib/plugins/revert/lang/cy/intro.txt b/lib/plugins/revert/lang/cy/intro.txt new file mode 100644 index 000000000..0e09bab09 --- /dev/null +++ b/lib/plugins/revert/lang/cy/intro.txt @@ -0,0 +1,3 @@ +====== Rheolwr Troi'n Ôl ====== + +Mae'r dudalen hon yn eich helpu chi i droi'n ôl yn awtomatig yn dilyn ymosodiad sbam. Er mwyn darganfod rhestr o dudalennau sbamllyd, rhowch linyn chwilio (ee. URL sbamllyd), yna cadarnhewch fod y tudalennau a ddarganfuwyd wir yn sbamllyd a throwch y golygiadau'n ôl. diff --git a/lib/plugins/revert/lang/cy/lang.php b/lib/plugins/revert/lang/cy/lang.php new file mode 100644 index 000000000..ce4f005c1 --- /dev/null +++ b/lib/plugins/revert/lang/cy/lang.php @@ -0,0 +1,22 @@ +<?php +/** + * welsh language file + */ + +// for admin plugins, the menu prompt to be displayed in the admin menu +// if set here, the plugin doesn't need to override the getMenuText() method +$lang['menu'] = 'Rheolwr Troi\'n Ôl'; + +// custom language strings for the plugin + +$lang['filter'] = 'Chwilio tudalennau sbamllyd'; +$lang['revert'] = 'Troi tudalennau a ddewiswyd yn ôl'; +$lang['reverted'] = 'Trowyd %s yn ôl i adolygiad %s'; +$lang['removed'] = '%s wedi\'i dynnu'; +$lang['revstart'] = 'Mae\'r broses troi\'n ôl wedi dechrau. Gall hwn gymryd amser hir. Os yw\'r + sgript yn bwrw\'r terfyn amser cyn gorffen, bydd angen troi\n ôl mewn dognau llai.'; +$lang['revstop'] = 'Gwnaeth y broses troi\'n ôl gwblhau\'n llwyddiannus.'; +$lang['note1'] = 'Sylw: mae\'r chwiliad yn sensitif i nodau uwch/is'; +$lang['note2'] = 'Sylw: caiff y dudalen ei throi\'n ôl i\'r fersiwn diwethaf sy ddim yn cynnwys y term sbamllyd <i>%s</i>.'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/styling/lang/cy/intro.txt b/lib/plugins/styling/lang/cy/intro.txt new file mode 100644 index 000000000..7c825967b --- /dev/null +++ b/lib/plugins/styling/lang/cy/intro.txt @@ -0,0 +1,2 @@ +Mae'r teclyn hwn yn eich galluogi chi newid gosodiadau arddull penodol y templed rydych chi'n defnyddio'n bresennol. +Caiff pob newid ei storio mewn ffeil ffurfwedd leol sy'n uwchradd-ddiogel. \ No newline at end of file diff --git a/lib/plugins/styling/lang/cy/lang.php b/lib/plugins/styling/lang/cy/lang.php new file mode 100644 index 000000000..4d22a59f0 --- /dev/null +++ b/lib/plugins/styling/lang/cy/lang.php @@ -0,0 +1,36 @@ +<?php +/** + * Welsh language file for styling plugin + * + * @author Andreas Gohr <andi@splitbrain.org> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +// menu entry for admin plugins +$lang['menu'] = 'Gosodiadau Arddull Templed'; + +$lang['js']['loader'] = 'Rhagolwg yn llwytho...<br />os \'dyw hwn ddim yn diflannu, efallai bod eich gwerthoedd yn annilys'; +$lang['js']['popup'] = 'Agor fel ffurflen naid'; + +// custom language strings for the plugin +$lang['error'] = 'Sori, \'dyw\'r templed hwn ddim yn cynnal y swyddogaethedd hwn.'; + +$lang['btn_preview'] = 'Rhagolwg newidiadau'; +$lang['btn_save'] = 'Cadw newidiadau'; +$lang['btn_reset'] = 'Ailosod newidiadau cyfredol'; +$lang['btn_revert'] = 'Troi arddulliau\'n ôl i ddiofyn y templed'; + +// default guaranteed placeholders +$lang['__text__'] = 'Lliw\'r prif destun'; +$lang['__background__'] = 'Lliw\'r prif gefndir'; +$lang['__text_alt__'] = 'Lliw testun amgen'; +$lang['__background_alt__'] = 'Lliw cefndir amgen'; +$lang['__text_neu__'] = 'lliw testun niwtral'; +$lang['__background_neu__'] = 'Lliw cefndir niwtral'; +$lang['__border__'] = 'Lliw border'; +$lang['__highlight__'] = 'Lliw uwcholeuad (am ganlyniadau chwiliad yn bennaf)'; + + + + +//Setup VIM: ex: et ts=4 : diff --git a/lib/tpl/dokuwiki/lang/cy/lang.php b/lib/tpl/dokuwiki/lang/cy/lang.php new file mode 100644 index 000000000..860ce8f15 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cy/lang.php @@ -0,0 +1,12 @@ +<?php + +// style.ini values + +$lang['__background_site__'] = 'Lliw am y cefndir (tu ôl y blwch cynnwys)'; +$lang['__link__'] = 'Lliw dolenni cyffredinol'; +$lang['__existing__'] = 'Lliw dolenni i dudalennau sy\'n bodoli'; +$lang['__missing__'] = 'Lliw dolenni i dudalennau sy ddim yn bodoli'; +$lang['__site_width__'] = 'Lled y safle cyfan (unrhyw uned: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Lled y bar ochr, os oes un (unrhyw uned: %, px, em, ...)'; +$lang['__tablet_width__'] = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd tabled'; +$lang['__phone_width__'] = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd ffôn'; diff --git a/lib/tpl/dokuwiki/lang/cy/style.txt b/lib/tpl/dokuwiki/lang/cy/style.txt new file mode 100644 index 000000000..ce87798a0 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cy/style.txt @@ -0,0 +1,4 @@ +Os ydych chi am newid y logo, defnyddiwch y Rheolwr Cyfrwng i lanlwytho ''logo.png'' i ''wici'' neu wraidd y namespace +a chaiff ei ddefnyddio'n awtomatig. Gallwch chi hefyd lanlwytho ''favicon.ico'' yna. Os ydych chi'n defnyddio +wici caeedig, awgrymwyd eich bod chi'n gwneud y ''wici'' (new wraidd) y namespace yn ddarllenadwy i bawb yn y +gosodiadau ACL neu na chaiff eich logo chi ei weld gan ddefnyddwyr sydd heb fewngofnodi. -- GitLab From c5cec702c5deebbeddeb00147d906a0cd0fc7ac0 Mon Sep 17 00:00:00 2001 From: diafol666 <ben.brynsadler@gmail.com> Date: Tue, 29 Dec 2015 23:59:20 +0000 Subject: [PATCH 424/440] Remaining plugin translations for Welsh (cy) --- lib/plugins/authpgsql/lang/cy/settings.php | 33 +++ lib/plugins/authplain/lang/cy/lang.php | 8 + lib/plugins/config/lang/cy/intro.txt | 7 + lib/plugins/config/lang/cy/lang.php | 262 ++++++++++++++++++ .../extension/lang/cy/intro_install.txt | 1 + .../extension/lang/cy/intro_plugins.txt | 1 + .../extension/lang/cy/intro_search.txt | 1 + .../extension/lang/cy/intro_templates.txt | 1 + lib/plugins/extension/lang/cy/lang.php | 111 ++++++++ lib/plugins/usermanager/lang/cy/add.txt | 1 + lib/plugins/usermanager/lang/cy/delete.txt | 1 + lib/plugins/usermanager/lang/cy/edit.txt | 1 + lib/plugins/usermanager/lang/cy/import.txt | 9 + lib/plugins/usermanager/lang/cy/intro.txt | 1 + lib/plugins/usermanager/lang/cy/lang.php | 87 ++++++ lib/plugins/usermanager/lang/cy/list.txt | 1 + 16 files changed, 526 insertions(+) create mode 100644 lib/plugins/authpgsql/lang/cy/settings.php create mode 100644 lib/plugins/authplain/lang/cy/lang.php create mode 100644 lib/plugins/config/lang/cy/intro.txt create mode 100644 lib/plugins/config/lang/cy/lang.php create mode 100644 lib/plugins/extension/lang/cy/intro_install.txt create mode 100644 lib/plugins/extension/lang/cy/intro_plugins.txt create mode 100644 lib/plugins/extension/lang/cy/intro_search.txt create mode 100644 lib/plugins/extension/lang/cy/intro_templates.txt create mode 100644 lib/plugins/extension/lang/cy/lang.php create mode 100644 lib/plugins/usermanager/lang/cy/add.txt create mode 100644 lib/plugins/usermanager/lang/cy/delete.txt create mode 100644 lib/plugins/usermanager/lang/cy/edit.txt create mode 100644 lib/plugins/usermanager/lang/cy/import.txt create mode 100644 lib/plugins/usermanager/lang/cy/intro.txt create mode 100644 lib/plugins/usermanager/lang/cy/lang.php create mode 100644 lib/plugins/usermanager/lang/cy/list.txt diff --git a/lib/plugins/authpgsql/lang/cy/settings.php b/lib/plugins/authpgsql/lang/cy/settings.php new file mode 100644 index 000000000..0c32ad7b2 --- /dev/null +++ b/lib/plugins/authpgsql/lang/cy/settings.php @@ -0,0 +1,33 @@ +<?php + +$lang['server'] = 'Eich gweinydd PostgreSQL'; +$lang['port'] = 'Porth eich gweinydd PostgreSQL'; +$lang['user'] = 'Defnyddair PostgreSQL'; +$lang['password'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['database'] = 'Databas i\'w ddefnyddio'; +$lang['debug'] = 'angos gwybodaeth dadfygio ychwanegol'; +$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\''; +$lang['checkPass'] = 'Datganiad SQL i wirio cyfrineiriau'; +$lang['getUserInfo'] = 'Datganiad SQL i nôl gwybodaeth defnyddiwr'; +$lang['getGroups'] = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr'; +$lang['getUsers'] = 'Datganiad SQL i restru pob defnyddiwr'; +$lang['FilterLogin'] = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi'; +$lang['FilterName'] = 'Cymal SQL i hidlo defnyddwyr gan enw llawn'; +$lang['FilterEmail'] = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost'; +$lang['FilterGroup'] = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp'; +$lang['SortOrder'] = 'Cymal SQL i drefnu defnyddwyr'; +$lang['addUser'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd'; +$lang['addGroup'] = 'Datganiad SQL i ychwanegu grŵp newydd'; +$lang['addUserGroup'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes'; +$lang['delGroup'] = 'Datganiad SQL i dynnu grŵp'; +$lang['getUserID'] = 'Datganiad SQL i nôl prif allwedd y defnyddiwr'; +$lang['delUser'] = 'Datganiad SQL i ddileu defnyddiwr'; +$lang['delUserRefs'] = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp'; +$lang['updateUser'] = 'Datganiad SQL i ddiweddaru proffil defnyddiwr'; +$lang['UpdateLogin'] = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr'; +$lang['UpdatePass'] = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr'; +$lang['UpdateEmail'] = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr'; +$lang['UpdateName'] = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr'; +$lang['UpdateTarget'] = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru'; +$lang['delUserGroup'] = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp'; +$lang['getGroupID'] = 'Datganiad SQL i nôl prif allwedd grŵp penodol'; diff --git a/lib/plugins/authplain/lang/cy/lang.php b/lib/plugins/authplain/lang/cy/lang.php new file mode 100644 index 000000000..7f789e529 --- /dev/null +++ b/lib/plugins/authplain/lang/cy/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sori, mae defnyddiwr gyda\'r enw hwnnw eisoes yn bodoli.'; +$lang['usernotexists'] = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.'; +$lang['writefail'] = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinydd y Wici'; diff --git a/lib/plugins/config/lang/cy/intro.txt b/lib/plugins/config/lang/cy/intro.txt new file mode 100644 index 000000000..02ccec586 --- /dev/null +++ b/lib/plugins/config/lang/cy/intro.txt @@ -0,0 +1,7 @@ +====== Rheolwr Ffurfwedd ====== + +Defnyddiwch y dudalen hon i reoli gosodiadau eich arsefydliad DokuWiki. Am gymorth ar osodiadau unigol ewch i [[doku>config]]. Am wybodaeth bellach ar yr ategyn hwn ewch i [[doku>plugin:config]]. + +Mae gosodiadau gyda chefndir coch golau wedi\'u hamddiffyn a \'sdim modd eu newid gyda\'r ategyn hwn. Mae gosodiaadau gyda chefndir glas yn dynodi gwerthoedd diofyn ac mae gosodiadau gyda chefndir gwyn wedi\'u gosod yn lleol ar gyfer yr arsefydliad penodol hwn. Mae modd newid gosodiadau gwyn a glas. + +Cofiwch bwyso y botwm **Cadw** cyn gadael y dudalen neu caiff eich newidiadau eu colli. diff --git a/lib/plugins/config/lang/cy/lang.php b/lib/plugins/config/lang/cy/lang.php new file mode 100644 index 000000000..54f3b4ceb --- /dev/null +++ b/lib/plugins/config/lang/cy/lang.php @@ -0,0 +1,262 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Matthias Schulte <dokuwiki@lupo49.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +// for admin plugins, the menu prompt to be displayed in the admin menu +// if set here, the plugin doesn't need to override the getMenuText() method +$lang['menu'] = 'Gosodiadau Ffurwedd'; + +$lang['error'] = 'Gosodiadau heb eu diweddaru oherwydd gwerth annilys, gwiriwch eich newidiadau ac ailgyflwyno. + <br />Caiff y gwerth(oedd) anghywir ei/eu dangos gydag ymyl coch.'; +$lang['updated'] = 'Diweddarwyd gosodiadau\'n llwyddiannus.'; +$lang['nochoice'] = '(dim dewisiadau eraill ar gael)'; +$lang['locked'] = '\'Sdim modd diweddaru\'r ffeil osodiadau, os ydy hyn yn anfwriadol, <br /> + sicrhewch fod enw\'r ffeil osodiadau a\'r hawliau lleol yn gywir.'; + +$lang['danger'] = 'Perygl: Gall newid yr opsiwn hwn wneud eich wici a\'r ddewislen ffurfwedd yn anghyraeddadwy.'; +$lang['warning'] = 'Rhybudd: Gall newid yr opsiwn hwn achosi ymddygiad anfwriadol.'; +$lang['security'] = 'Rhybudd Diogelwch: Gall newid yr opsiwn hwn achosi risg diogelwch.'; + +/* --- Config Setting Headers --- */ +$lang['_configuration_manager'] = 'Rheolwr Ffurfwedd'; //same as heading in intro.txt +$lang['_header_dokuwiki'] = 'DokuWiki'; +$lang['_header_plugin'] = 'Ategyn'; +$lang['_header_template'] = 'Templed'; +$lang['_header_undefined'] = 'Gosodiadau Amhenodol'; + +/* --- Config Setting Groups --- */ +$lang['_basic'] = 'Sylfaenol'; +$lang['_display'] = 'Dangos'; +$lang['_authentication'] = 'Dilysiad'; +$lang['_anti_spam'] = 'Gwrth-Sbam'; +$lang['_editing'] = 'Yn Golygu'; +$lang['_links'] = 'Dolenni'; +$lang['_media'] = 'Cyfrwng'; +$lang['_notifications'] = 'Hysbysiad'; +$lang['_syndication'] = 'Syndication (RSS)'; //angen newid +$lang['_advanced'] = 'Uwch'; +$lang['_network'] = 'Rhwydwaith'; + +/* --- Undefined Setting Messages --- */ +$lang['_msg_setting_undefined'] = 'Dim gosodiad metadata.'; +$lang['_msg_setting_no_class'] = 'Dim gosodiad dosbarth.'; +$lang['_msg_setting_no_default'] = 'Dim gwerth diofyn.'; + +/* -------------------- Config Options --------------------------- */ + +/* Basic Settings */ +$lang['title'] = 'Teitl y wici h.y. enw\'ch wici'; +$lang['start'] = 'Enw\'r dudalen i\'w defnyddio fel man cychwyn ar gyfer pob namespace'; //namespace +$lang['lang'] = 'Iaith y rhyngwyneb'; +$lang['template'] = 'Templed h.y. dyluniad y wici.'; +$lang['tagline'] = 'Taglinell (os yw\'r templed yn ei gynnal)'; +$lang['sidebar'] = 'Enw tudalen y bar ochr (os yw\'r templed yn ei gynnal), Mae maes gwag yn analluogi\'r bar ochr'; +$lang['license'] = 'O dan ba drwydded dylai\'ch cynnwys gael ei ryddhau?'; +$lang['savedir'] = 'Ffolder ar gyfer cadw data'; +$lang['basedir'] = 'Llwybr y gweinydd (ee. <code>/dokuwiki/</code>). Gadewch yn wag ar gyfer awtoddatgeliad.'; +$lang['baseurl'] = 'URL y gweinydd (ee. <code>http://www.yourserver.com</code>). Gadewch yn wag ar gyfer awtoddatgeliad.'; +$lang['cookiedir'] = 'Llwybr cwcis. Gadewch yn wag i ddefnyddio \'baseurl\'.'; +$lang['dmode'] = 'Modd creu ffolderi'; +$lang['fmode'] = 'Modd creu ffeiliau'; +$lang['allowdebug'] = 'Caniatáu dadfygio. <b>Analluogwch os nac oes angen hwn!</b>'; + +/* Display Settings */ +$lang['recent'] = 'Nifer y cofnodion y dudalen yn y newidiadau diweddar'; +$lang['recent_days'] = 'Sawl newid diweddar i\'w cadw (diwrnodau)'; +$lang['breadcrumbs'] = 'Nifer y briwsion "trywydd". Gosodwch i 0 i analluogi.'; +$lang['youarehere'] = 'Defnyddiwch briwsion hierarchaidd (byddwch chi yn debygol o angen analluogi\'r opsiwn uchod wedyn)'; +$lang['fullpath'] = 'Datgelu llwybr llawn y tudalennau yn y troedyn'; +$lang['typography'] = 'Gwnewch amnewidiadau argraffyddol'; +$lang['dformat'] = 'Fformat dyddiad (gweler swyddogaeth <a href="http://www.php.net/strftime">strftime</a> PHP)'; +$lang['signature'] = 'Yr hyn i\'w mewnosod gyda\'r botwm llofnod yn y golygydd'; +$lang['showuseras'] = 'Yr hyn i\'w harddangos wrth ddangos y defnyddiwr a wnaeth olygu\'r dudalen yn olaf'; +$lang['toptoclevel'] = 'Lefel uchaf ar gyfer tabl cynnwys'; +$lang['tocminheads'] = 'Isafswm y penawdau sy\'n penderfynu os ydy\'r tabl cynnwys yn cael ei adeiladu'; +$lang['maxtoclevel'] = 'Lefel uchaf ar gyfer y tabl cynnwys'; +$lang['maxseclevel'] = 'Lefel uchaf adran olygu'; +$lang['camelcase'] = 'Defnyddio CamelCase ar gyfer dolenni'; +$lang['deaccent'] = 'Sut i lanhau enwau tudalennau'; +$lang['useheading'] = 'Defnyddio\'r pennawd cyntaf ar gyfer enwau tudalennau'; +$lang['sneaky_index'] = 'Yn ddiofyn, bydd DokuWiki yn dangos pob namespace yn y map safle. Bydd galluogi yr opsiwn hwn yn cuddio\'r rheiny lle \'sdim hawliau darllen gan y defnyddiwr. Gall hwn achosi cuddio subnamespaces cyraeddadwy a fydd yn gallu peri\'r indecs i beidio â gweithio gyda gosodiadau ACL penodol.'; //namespace +$lang['hidepages'] = 'Cuddio tudalennau sy\'n cydweddu gyda\'r mynegiad rheolaidd o\'r chwiliad, y map safle ac indecsau awtomatig eraill'; + +/* Authentication Settings */ +$lang['useacl'] = 'Defnyddio rhestrau rheoli mynediad'; +$lang['autopasswd'] = 'Awtogeneradu cyfrineiriau'; +$lang['authtype'] = 'Ôl-brosesydd dilysu'; +$lang['passcrypt'] = 'Dull amgryptio cyfrineiriau'; +$lang['defaultgroup']= 'Grŵp diofyn, caiff pob defnyddiwr newydd ei osod yn y grŵp hwn'; +$lang['superuser'] = 'Uwchddefnyddiwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad llawn i bob tudalen beth bynnag y gosodiadau ACL'; +$lang['manager'] = 'Rheolwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad i swyddogaethau rheoli penodol'; +$lang['profileconfirm'] = 'Cadrnhau newidiadau proffil gyda chyfrinair'; +$lang['rememberme'] = 'Caniatáu cwcis mewngofnodi parhaol (cofio fi)'; +$lang['disableactions'] = 'Analluogi gweithredoedd DokuWiki'; +$lang['disableactions_check'] = 'Gwirio'; +$lang['disableactions_subscription'] = 'Tanysgrifio/Dad-tanysgrifio'; +$lang['disableactions_wikicode'] = 'Dangos ffynhonnell/Allforio Crai'; +$lang['disableactions_profile_delete'] = 'Dileu Cyfrif Eu Hunain'; +$lang['disableactions_other'] = 'Gweithredoedd eraill (gwahanu gan goma)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; //angen newid hwn +$lang['auth_security_timeout'] = 'Terfyn Amser Diogelwch Dilysiad (eiliadau)'; +$lang['securecookie'] = 'A ddylai cwcis sydd wedi cael eu gosod gan HTTPS gael eu hanfon trwy HTTPS yn unig gan y porwr? Analluogwch yr opsiwn hwn dim ond pan fydd yr unig mewngofnodiad i\'ch wici wedi\'i ddiogelu gydag SSL ond mae pori\'r wici yn cael ei wneud heb ddiogelu.'; +$lang['remote'] = 'Galluogi\'r system API pell. Mae hwn yn galluogi apps eraill i gael mynediad i\'r wici trwy XML-RPC neu fecanweithiau eraill.'; +$lang['remoteuser'] = 'Cyfyngu mynediad API pell i grwpiau neu ddefnydwyr wedi\'u gwahanu gan goma yma. Gadewch yn wag i roi mynediad i bawb.'; + +/* Anti-Spam Settings */ +$lang['usewordblock']= 'Blocio sbam wedi selio ar restr eiriau'; +$lang['relnofollow'] = 'Defnyddio rel="nofollow" ar ddolenni allanol'; +$lang['indexdelay'] = 'Oediad cyn indecsio (eil)'; +$lang['mailguard'] = 'Tywyllu cyfeiriadau ebost'; +$lang['iexssprotect']= 'Gwirio ffeiliau a lanlwythwyd am JavaScript neu god HTML sydd efallai\'n faleisis'; + +/* Editing Settings */ +$lang['usedraft'] = 'Cadw drafft yn awtomatig wrth olygu'; +$lang['htmlok'] = 'Caniatáu HTML wedi\'i fewnosod'; +$lang['phpok'] = 'Caniatáu PHP wedi\'i fewnosod'; +$lang['locktime'] = 'Oed mwyaf ar gyfer cloi ffeiliau (eil)'; +$lang['cachetime'] = 'Oed mwyaf ar gyfer y storfa (eil)'; + +/* Link settings */ +$lang['target____wiki'] = 'Ffenestr darged ar gyfer dolenni mewnol'; +$lang['target____interwiki'] = 'Ffenestr darged ar gyfer dolenni interwiki'; +$lang['target____extern'] = 'Ffenestr darged ar gyfer dolenni allanol'; +$lang['target____media'] = 'Ffenestr darged ar gyfer dolenni cyfrwng'; +$lang['target____windows'] = 'Ffenestr darged ar gyfer dolenni ffenestri'; + +/* Media Settings */ +$lang['mediarevisions'] = 'Galluogi Mediarevisions?'; +$lang['refcheck'] = 'Gwirio os ydy ffeil gyfrwng yn dal yn cael ei defnydio cyn ei dileu hi'; +$lang['gdlib'] = 'Fersiwn GD Lib'; +$lang['im_convert'] = 'Llwybr i declyn trosi ImageMagick'; +$lang['jpg_quality'] = 'Ansawdd cywasgu JPG (0-100)'; +$lang['fetchsize'] = 'Uchafswm maint (beit) gall fetch.php lawlwytho o URL allanol, ee. i storio ac ailfeintio delweddau allanol.'; + +/* Notification Settings */ +$lang['subscribers'] = 'Caniatáu defnyddwyr i danysgrifio i newidiadau tudalen gan ebost'; +$lang['subscribe_time'] = 'Yr amser cyn caiff rhestrau tanysgrifio a chrynoadau eu hanfon (eil); Dylai hwn fod yn llai na\'r amser wedi\'i gosod mewn recent_days.'; +$lang['notify'] = 'Wastad anfon hysbysiadau newidiadau i\'r cyfeiriad ebost hwn'; +$lang['registernotify'] = 'Wastad anfon gwybodaeth ar ddefnyddwyr newydd gofrestru i\'r cyfeiriad ebost hwn'; +$lang['mailfrom'] = 'Cyfeiriad anfon ebyst i\'w ddefnyddio ar gyfer pyst awtomatig'; +$lang['mailprefix'] = 'Rhagddodiad testun ebyst i\'w ddefnyddio ar gyfer pyst awtomatig. Gadewch yn wag i ddefnyddio teitl y wici'; +$lang['htmlmail'] = 'Anfonwch ebyst aml-ddarn HTML sydd yn edrych yn well, ond sy\'n fwy mewn maint. Analluogwch ar gyfer pyst testun plaen yn unig.'; + +/* Syndication Settings */ +$lang['sitemap'] = 'Generadu map safle Google mor aml â hyn (mewn diwrnodau). 0 i anallogi'; +$lang['rss_type'] = 'Math y ffrwd XML'; +$lang['rss_linkto'] = 'Ffrwd XML yn cysylltu â'; +$lang['rss_content'] = 'Beth i\'w ddangos mewn eitemau\'r ffrwd XML?'; +$lang['rss_update'] = 'Cyfnod diwedaru ffrwd XML (eil)'; +$lang['rss_show_summary'] = 'Dangos crynodeb mewn teitl y ffrwd XML'; +$lang['rss_media'] = 'Pa fath newidiadau a ddylai cael eu rhestru yn y ffrwd XML??'; + +/* Advanced Options */ +$lang['updatecheck'] = 'Gwirio am ddiweddariadau a rhybuddion diogelwch? Mae\'n rhaid i DokuWiki gysylltu ag update.dokuwiki.org ar gyfer y nodwedd hon.'; +$lang['userewrite'] = 'Defnyddio URLs pert'; +$lang['useslash'] = 'Defnyddio slaes fel gwahanydd namespace mewn URL'; +$lang['sepchar'] = 'Gwanahydd geiriau mewn enw tudalennau'; +$lang['canonical'] = 'Defnyddio URLs canonaidd llawn'; +$lang['fnencode'] = 'Dull amgodio enw ffeiliau \'non-ASCII\'.'; +$lang['autoplural'] = 'Gwirio am ffurfiau lluosog mewn dolenni'; +$lang['compression'] = 'Dull cywasgu ar gyfer ffeiliau llofft (hen adolygiadau)'; +$lang['gzip_output'] = 'Defnyddio gzip Content-Encoding ar gyfer xhtml'; //pwy a wyr +$lang['compress'] = 'Cywasgu allbwn CSS a javascript'; +$lang['cssdatauri'] = 'Uchafswm maint mewn beitiau ar gyfer delweddau i\'w cyfeirio atynt mewn ffeiliau CSS a ddylai cael eu mewnosod i\'r ddalen arddull i leihau gorbenion pennyn cais HTTP. \'Dyw\'r dechneg hon ddim yn gweithio mewn IE 7 ac is! Mae <code>400</code> i <code>600</code> beit yn werth da. Gosodwch i <code>0</code> i\'w analluogi.'; +$lang['send404'] = 'Anfon "HTTP 404/Page Not Found" ar gyfer tudalennau sy ddim yn bodoli'; +$lang['broken_iua'] = 'Ydy\'r swyddogaeth ignore_user_abort wedi torri ar eich system? Gall hwn achosi\'r indecs chwilio i beidio â gweithio. Rydym yn gwybod bod IIS+PHP/CGI wedi torri. Gweler <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">Bug 852</a> am wybodaeth bellach.'; +$lang['xsendfile'] = 'Defnyddio\'r pennyn X-Sendfile i ganiatáu\'r gweinydd gwe i ddanfon ffeiliau statig? Mae\'n rhaid bod eich gweinydd gwe yn caniatáu hyn.'; +$lang['renderer_xhtml'] = 'Cyflwynydd i ddefnyddio ar gyfer prif allbwn (xhtml) y wici'; +$lang['renderer__core'] = '%s (craidd dokuwiki)'; +$lang['renderer__plugin'] = '%s (ategyn)'; + +/* Network Options */ +$lang['dnslookups'] = 'Bydd DokuWiki yn edrych i fyny enwau gwesteiwyr ar gyfer cyfeiriadau IP pell y defnyddwyr hynny sy\'n golygu tudalennau. Os oes gweinydd DNS sy\'n araf neu sy ddim yn gweithio \'da chi neu \'dych chi ddim am ddefnyddio\'r nodwedd hon, analluogwch yr opsiwn hwn.'; + +/* Proxy Options */ +$lang['proxy____host'] = 'Enw\'r gweinydd procsi'; +$lang['proxy____port'] = 'Porth procsi'; +$lang['proxy____user'] = 'Defnyddair procsi'; +$lang['proxy____pass'] = 'Cyfrinair procsi'; +$lang['proxy____ssl'] = 'Defnyddio SSL i gysylltu â\'r procsi'; +$lang['proxy____except'] = 'Mynegiad rheolaidd i gydweddu URL ar gyfer y procsi a ddylai cael eu hanwybyddu.'; + +/* Safemode Hack */ +$lang['safemodehack'] = 'Galluogi safemode hack'; +$lang['ftp____host'] = 'Gweinydd FTP safemode hack'; +$lang['ftp____port'] = 'Porth FTP safemode hack'; +$lang['ftp____user'] = 'Defnyddair FTP safemode hack'; +$lang['ftp____pass'] = 'Cyfrinair FTP safemode hack'; +$lang['ftp____root'] = 'Gwraiddffolder FTP safemode hack'; + +/* License Options */ +$lang['license_o_'] = 'Dim wedi\'i ddewis'; + +/* typography options */ +$lang['typography_o_0'] = 'dim'; +$lang['typography_o_1'] = 'eithrio dyfynodau sengl'; +$lang['typography_o_2'] = 'cynnwys dyfynodau sengl (efallai ddim yn gweithio pob tro)'; + +/* userewrite options */ +$lang['userewrite_o_0'] = 'dim'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = 'DokuWiki mewnol'; + +/* deaccent options */ +$lang['deaccent_o_0'] = 'bant'; +$lang['deaccent_o_1'] = 'tynnu acenion'; +$lang['deaccent_o_2'] = 'rhufeinio'; + +/* gdlib options */ +$lang['gdlib_o_0'] = 'GD Lib ddim ar gael'; +$lang['gdlib_o_1'] = 'Fersiwn 1.x'; +$lang['gdlib_o_2'] = 'Awtoddatgeliad'; + +/* rss_type options */ +$lang['rss_type_o_rss'] = 'RSS 0.91'; +$lang['rss_type_o_rss1'] = 'RSS 1.0'; +$lang['rss_type_o_rss2'] = 'RSS 2.0'; +$lang['rss_type_o_atom'] = 'Atom 0.3'; +$lang['rss_type_o_atom1'] = 'Atom 1.0'; + +/* rss_content options */ +$lang['rss_content_o_abstract'] = 'Crynodeb'; +$lang['rss_content_o_diff'] = 'Gwahan. Unedig'; +$lang['rss_content_o_htmldiff'] = 'Gwahaniaethau ar ffurf tabl HTML'; +$lang['rss_content_o_html'] = 'Cynnwys tudalen HTML llawn'; + +/* rss_linkto options */ +$lang['rss_linkto_o_diff'] = 'golwg gwahaniaethau'; +$lang['rss_linkto_o_page'] = 'y dudalen a adolygwyd'; +$lang['rss_linkto_o_rev'] = 'rhestr adolygiadau'; +$lang['rss_linkto_o_current'] = 'y dudalen gyfredol'; + +/* compression options */ +$lang['compression_o_0'] = 'dim'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; + +/* xsendfile header */ +$lang['xsendfile_o_0'] = "peidio â defnyddio"; +$lang['xsendfile_o_1'] = 'Pennyn perchnogol lighttpd (cyn rhyddhad 1.5)'; +$lang['xsendfile_o_2'] = 'Pennyn safonol X-Sendfile'; +$lang['xsendfile_o_3'] = 'Pennyn perchnogol Nginx X-Accel-Redirect'; + +/* Display user info */ +$lang['showuseras_o_loginname'] = 'Enw mewngofnodi'; +$lang['showuseras_o_username'] = "Enw llawn y defnyddiwr"; +$lang['showuseras_o_username_link'] = "Enw llawn y defnyddiwr fel dolen defnyddiwr interwiki"; +$lang['showuseras_o_email'] = "Cyfeiriad e-bost y defnyddiwr (tywyllu yn ôl gosodiad mailguard)"; +$lang['showuseras_o_email_link'] = "Cyfeiriad e-bost y defnyddiwr fel dolen mailto:"; + +/* useheading options */ +$lang['useheading_o_0'] = 'Byth'; +$lang['useheading_o_navigation'] = 'Llywio yn Unig'; +$lang['useheading_o_content'] = 'Cynnwys Wici yn Unig'; +$lang['useheading_o_1'] = 'Wastad'; + +$lang['readdircache'] = 'Uchafswm amser ar gyfer storfa readdir (eil)'; diff --git a/lib/plugins/extension/lang/cy/intro_install.txt b/lib/plugins/extension/lang/cy/intro_install.txt new file mode 100644 index 000000000..2bc933ec7 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_install.txt @@ -0,0 +1 @@ +Gallwch chi arsefydlu ategion a thempledau gan law yma, naill ai gan eu lanlwytho neu gan gyflwyno URL lawrlwytho uniongyrchol. diff --git a/lib/plugins/extension/lang/cy/intro_plugins.txt b/lib/plugins/extension/lang/cy/intro_plugins.txt new file mode 100644 index 000000000..dd49a7a6b --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_plugins.txt @@ -0,0 +1 @@ +Dyma'r ategion sydd wedi\'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi eu galluogi neu eu hanalluogi nhw neu hyd yn oed eu dad-arsefydlu yn llwyr yma. Caiff diweddariadau'r ategion eu dangos yma hefyd, sicrhewch eich bod chi'n darllen dogfennaeth yr ategyn cyn diweddaru. diff --git a/lib/plugins/extension/lang/cy/intro_search.txt b/lib/plugins/extension/lang/cy/intro_search.txt new file mode 100644 index 000000000..8aef96039 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_search.txt @@ -0,0 +1 @@ +Mae'r tab hwn yn rhoi mynediad i bob ategyn a thempled 3ydd parti ar gael ar gyfer DokuWiki. Sylwch fod arsefydlu cod 3ydd parti yn achosi **risg diogelwch**. Efallai hoffech chi ddarllen mwy ar [[doku>security#plugin_security|ddiogelwch ategion]] yn gyntaf. \ No newline at end of file diff --git a/lib/plugins/extension/lang/cy/intro_templates.txt b/lib/plugins/extension/lang/cy/intro_templates.txt new file mode 100644 index 000000000..49471451f --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_templates.txt @@ -0,0 +1 @@ +Dyma'r templedau sydd wedi'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi ddewis y templed i'w ddefnyddio yn y [[?do=admin&page=config|Rheolwr Ffurfwedd]]. diff --git a/lib/plugins/extension/lang/cy/lang.php b/lib/plugins/extension/lang/cy/lang.php new file mode 100644 index 000000000..2a2a8c8fa --- /dev/null +++ b/lib/plugins/extension/lang/cy/lang.php @@ -0,0 +1,111 @@ +<?php +/** + * Welsh language file for extension plugin + * + * @author Michael Hamann <michael@content-space.de> + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['menu'] = 'Rheolwr Estyniadau'; + +$lang['tab_plugins'] = 'Ategion a Arsefydlwyd'; +$lang['tab_templates'] = 'Templedau a Arsefydlwyd'; +$lang['tab_search'] = 'Chwilio ac Arsefydlu'; +$lang['tab_install'] = 'Arsefydlu gan Law'; + +$lang['notimplemented'] = '\'Dyw\'r nodwedd hon heb ei rhoi ar waith eto'; +$lang['notinstalled'] = '\'Dyw\'r estyniad hwn heb ei arsefydlu'; +$lang['alreadyenabled'] = 'Cafodd yr estyniad hwn ei alluogi'; +$lang['alreadydisabled'] = 'Cafodd yr estyniad hwn ei analluogi'; +$lang['pluginlistsaveerror'] = 'Roedd gwall wrth gadw\'r rhestr ategion'; +$lang['unknownauthor'] = 'Awdur anhysbys'; +$lang['unknownversion'] = 'Fersiwn anhysbys'; + +$lang['btn_info'] = 'Dangos wybodaeth bellach'; +$lang['btn_update'] = 'Diweddaru'; +$lang['btn_uninstall'] = 'Dad-arsefydlu'; +$lang['btn_enable'] = 'Galluogi'; +$lang['btn_disable'] = 'Analluogi'; +$lang['btn_install'] = 'Arsyfydlu'; +$lang['btn_reinstall'] = 'Ail-arsefydlu'; + +$lang['js']['reallydel'] = 'Ydych chi wir am ddad-arsefydlu\'r estyniad hwn?'; + +$lang['search_for'] = 'Chwilio Estyniadau:'; +$lang['search'] = 'Chwilio'; + +$lang['extensionby'] = '<strong>%s</strong> gan %s'; +$lang['screenshot'] = 'Sgrinlun %s'; +$lang['popularity'] = 'Poblogrwydd: %s%%'; +$lang['homepage_link'] = 'Dogfennau'; +$lang['bugs_features'] = 'Bygiau'; +$lang['tags'] = 'Tagiau:'; +$lang['author_hint'] = 'Chwilio estyniadau gan awdur'; +$lang['installed'] = 'Arsefydlwyd:'; +$lang['downloadurl'] = 'URL Lawlwytho:'; +$lang['repository'] = 'Ystorfa:'; +$lang['unknown'] = '<em>anhysbys</em>'; +$lang['installed_version'] = 'Fersiwn a arsefydlwyd:'; +$lang['install_date'] = 'Eich diweddariad diwethaf:'; +$lang['available_version'] = 'Fersiwn ar gael:'; +$lang['compatible'] = 'Yn gydnaws â:'; +$lang['depends'] = 'Yn dibynnu ar:'; +$lang['similar'] = 'Yn debyg i:'; +$lang['conflicts'] = 'Y gwrthdaro â:'; +$lang['donate'] = 'Fel hwn?'; +$lang['donate_action'] = 'Prynwch goffi i\'r awdur!'; +$lang['repo_retry'] = 'Ailgeisio'; +$lang['provides'] = 'Darparu:'; +$lang['status'] = 'Statws:'; +$lang['status_installed'] = 'arsefydlwyd'; +$lang['status_not_installed'] = 'heb ei arsefydlu'; +$lang['status_protected'] = 'amddiffynwyd'; +$lang['status_enabled'] = 'galluogwyd'; +$lang['status_disabled'] = 'analluogwyd'; +$lang['status_unmodifiable'] = 'methu addasu'; +$lang['status_plugin'] = 'ategyn'; +$lang['status_template'] = 'templed'; +$lang['status_bundled'] = 'bwndlwyd'; + +$lang['msg_enabled'] = 'Galluogwyd ategyn %s'; +$lang['msg_disabled'] = 'Analluogwyd ategyn %s'; +$lang['msg_delete_success'] = 'Dad-arsefydlwyd estyniad %s'; +$lang['msg_delete_failed'] = 'Methodd dad-arsefydlu estyniad %s'; +$lang['msg_template_install_success'] = 'Arsefydlwyd templed %s yn llwyddiannus'; +$lang['msg_template_update_success'] = 'Diweddarwyd templed %s yn llwyddiannus'; +$lang['msg_plugin_install_success'] = 'Arsefydlwyd ategyn %s yn llwyddiannus'; +$lang['msg_plugin_update_success'] = 'Diweddarwyd ategyn %s yn llwyddiannus'; +$lang['msg_upload_failed'] = 'Methodd lanlwytho\'r ffeil'; + +$lang['missing_dependency'] = '<strong>Missing or disabled dependency:</strong> %s'; +$lang['security_issue'] = '<strong>Mater Diogelwch:</strong> %s'; +$lang['security_warning'] = '<strong>Rhybudd Diogelwch:</strong> %s'; +$lang['update_available'] = '<strong>Diweddariad:</strong> Mae fersiwn newydd %s ar gael.'; +$lang['wrong_folder'] = '<strong>Ategyn wedi\'i arsefydlu\'n anghywir:</strong> Ailenwch ffolder yr ategyn o "%s" i "%s".'; +$lang['url_change'] = '<strong>Newid i\'r URL:</strong> Newidiodd yr URL lawlwytho ers y diweddariad diwethaf. Gwiriwch i weld os yw\'r URL newydd yn ddilys cyn diweddaru\'r estyniad.<br />Newydd: %s<br />Hen: %s'; + +$lang['error_badurl'] = 'Dylai URL ddechrau gyda http neu https'; +$lang['error_dircreate'] = 'Methu â chreu ffolder dros dro er mwyn derbyn y lawrlwythiad'; +$lang['error_download'] = 'Methu lawrlwytho\'r ffeil: %s'; +$lang['error_decompress'] = 'Methu datgywasgu\'r ffeil a lawrlwythwyd. Gall hwn fod o ganlyniad i lawrlwythiad gwael, felly ceisiwch eto; neu gall fod fformat y cywasgiad fod yn anhysbys, felly bydd yn rhaid i chi lawlwytho ac arsefydlu gan law.'; +$lang['error_findfolder'] = 'Methu ag adnabod ffolder yr estyniad, bydd angen lawrlwytho ac arsefydlu gan law'; +$lang['error_copy'] = 'Roedd gwall copïo ffeil wrth geisio arsefydlu ffeiliau i\'r ffolder <em>%s</em>: gall fod y ddisgen yn llawn neu gall hawliau mynediad i ffeiliau fod yn anghywir. Gall hwn fod wedi achosi ategyn sydd wedi arsefydlu\'n rhannol ac sydd wedi ansefydlogi\'ch arsefydliad wici'; + +$lang['noperms'] = '\'Sdim modd ysgrifennu i\'r ffolder estyniadau'; +$lang['notplperms'] = '\'Sdim modd ysgrifennu i\'r ffolder templedau'; + +$lang['nopluginperms'] = '\'Sdim modd ysgrifennu i\'r ffolder ategion'; +$lang['git'] = 'Cafodd yr estyniad hwn ei arsefydlu gan git, mae\'n bosib na fyddwch chi am ei ddiweddaru yma.'; +$lang['auth'] = '\'Dyw\'r ategyn dilysu hwn heb ei alluogi yn y ffurfwedd, ystyriwch ei analluogi.'; + +$lang['install_url'] = 'Arsefydlu o URL:'; +$lang['install_upload'] = 'Lanlwytho Estyniad:'; + +$lang['repo_error'] = 'Doedd dim modd cysylltu â\'r ystorfa ategion. Sicrhewch fod hawl gan eich gweinydd i gysylltu â www.dokuwiki.org a gwiriwch eich gosodiadau procsi.'; +$lang['nossl'] = 'Mae\'n debyg \'dyw eich PHP ddim yn cynnal SSL. Na fydd lawrlwytho yn gweithio ar gyfer nifer o estyniadau DokuWiki.'; + +$lang['js']['display_viewoptions'] = 'Opsiynau Golwg:'; +$lang['js']['display_enabled'] = 'galluogwyd'; +$lang['js']['display_disabled'] = 'analluogwyd'; +$lang['js']['display_updatable'] = 'gallu diweddaru'; diff --git a/lib/plugins/usermanager/lang/cy/add.txt b/lib/plugins/usermanager/lang/cy/add.txt new file mode 100644 index 000000000..c804e531d --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/add.txt @@ -0,0 +1 @@ +===== Ychwanegu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/delete.txt b/lib/plugins/usermanager/lang/cy/delete.txt new file mode 100644 index 000000000..a81f3a989 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/delete.txt @@ -0,0 +1 @@ +===== Dileu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/edit.txt b/lib/plugins/usermanager/lang/cy/edit.txt new file mode 100644 index 000000000..3fcb6d1d2 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/edit.txt @@ -0,0 +1 @@ +===== Golygu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/import.txt b/lib/plugins/usermanager/lang/cy/import.txt new file mode 100644 index 000000000..211e8cf24 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/import.txt @@ -0,0 +1,9 @@ +===== Swmp Mewnforio Defnyddwyr ===== + +Mae hwn angen ffeil CSV o ddefnyddwyr gydag o leiaf pedair colofn. +Mae'n rhaid i'r colofnau gynnwys, mewn trefn: id-defnyddiwr, enw llawn, cyfeiriad ebost a grwpiau. +Dylai'r meysydd CSV gael eu gwahanu gan goma (,) a llinynnau eu hamffinio gan ddyfynodau (%%""%%). Gall ôl-slaes (\) ei ddefnyddio ar gyfer glanhau (escaping). +Am enghraifft o ffeil addas, ceisiwch y swyddogaeth "Allforio Defnyddwyr" uchod. +Caiff id-defnyddiwr dyblygiedig eu hanwybyddu. + +Generadwyd cyfrinair a'i ebostio i bob defnyddiwr sydd wedi'i fewnforio'n llwyddiannus. diff --git a/lib/plugins/usermanager/lang/cy/intro.txt b/lib/plugins/usermanager/lang/cy/intro.txt new file mode 100644 index 000000000..a381a3076 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/intro.txt @@ -0,0 +1 @@ +====== Rheolwr Defnyddwyr ====== diff --git a/lib/plugins/usermanager/lang/cy/lang.php b/lib/plugins/usermanager/lang/cy/lang.php new file mode 100644 index 000000000..5120d39e2 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/lang.php @@ -0,0 +1,87 @@ +<?php +/** + * Welsh language file + * + * @author Chris Smith <chris@jalakai.co.uk> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['menu'] = 'Rheolwr Defnyddwyr'; + +// custom language strings for the plugin +$lang['noauth'] = '(dilysiad defnddwyr ddim ar gael)'; +$lang['nosupport'] = '(rheolaeth defnyddwyr heb ei chynnal)'; + +$lang['badauth'] = 'mecanwaith dilysu annilys'; // should never be displayed! + +$lang['user_id'] = 'Defnyddiwr'; +$lang['user_pass'] = 'Cyfrinair'; +$lang['user_name'] = 'Enw Cywir'; +$lang['user_mail'] = 'Ebost'; +$lang['user_groups'] = 'Grwpiau'; + +$lang['field'] = 'Maes'; +$lang['value'] = 'Gwerth'; +$lang['add'] = 'Ychwanegu'; +$lang['delete'] = 'Dileu'; +$lang['delete_selected'] = 'Dileu\'r Dewisiadau'; +$lang['edit'] = 'Golygu'; +$lang['edit_prompt'] = 'Golygu\'r defnyddiwr hwn'; +$lang['modify'] = 'Cadw Newidiadau'; +$lang['search'] = 'Chwilio'; +$lang['search_prompt'] = 'Perfformio chwiliad'; +$lang['clear'] = 'Ailosod Hidlydd Chwilio'; +$lang['filter'] = 'Hidlo'; +$lang['export_all'] = 'Allforio Pob Defnyddiwr (CSV)'; +$lang['export_filtered'] = 'Allforio Rhestr Defnyddwyr wedi\'u Hidlo (CSV)'; +$lang['import'] = 'Mewnforio Defnyddwyr Newydd'; +$lang['line'] = 'Llinell rhif'; +$lang['error'] = 'Gwallneges'; + +$lang['summary'] = 'Yn dangos %1$d-%2$d defnyddiwr allan o %3$d wedi\'u darganfod. %4$d defnyddiwr yn gyfan gwbl.'; +$lang['nonefound'] = 'Dim defnyddwyr wedi\'u darganfod. %d defnyddiwr yn gyfan gwbl.'; +$lang['delete_ok'] = 'Dilëwyd %d defnyddiwr'; +$lang['delete_fail'] = 'Dileu %d wedi methu.'; +$lang['update_ok'] = 'Diweddarwyd y defnyddiwr yn llwyddiannus'; +$lang['update_fail'] = 'Methodd diweddariad y defnyddiwr'; +$lang['update_exists'] = 'Methodd newid y defnyddair, mae\'r defnyddair hwnnw (%s) yn bodoli eisoes (caiff pob newid arall ei gyflwyno).'; + +$lang['start'] = 'dechrau'; +$lang['prev'] = 'blaenorol'; +$lang['next'] = 'nesaf'; +$lang['last'] = 'diwethaf'; + +// added after 2006-03-09 release +$lang['edit_usermissing'] = 'Methu darganfod y defnyddiwr hwn. Efallai bod y defnyddair hwn wedi\'i ddileu neu wedi\'i newid mewn man arall.'; +$lang['user_notify'] = 'Hysbysu defnyddiwr'; +$lang['note_notify'] = 'Bydd ebyst hysbysu eu hanfon dim ond os ydy defnyddiwr yn derbyn cyfrinair newydd.'; +$lang['note_group'] = 'Bydd defnyddwyr newydd yn cael eu hychwanegu i\'r grŵp diofyn (%s) os na chaiff grŵp ei enwi.'; +$lang['note_pass'] = 'Caiff y cyfrinair ei generadu\'n awtomatig os caiff y maes ei adael yn wag a bod hysbysu\'r defnyddiwr wedi\'i alluogi.'; +$lang['add_ok'] = 'Ychwanegwyd y defnyddiwr yn llwyddiannus'; +$lang['add_fail'] = 'Methodd ychwanegu defnyddiwr'; +$lang['notify_ok'] = 'Anfonwyd yr ebost hysbysu'; +$lang['notify_fail'] = 'Doedd dim modd anfon yr ebost hysbysu'; + +// import & errors +$lang['import_userlistcsv'] = 'Ffeil rhestr defnyddwyr (CSV): '; +$lang['import_header'] = 'Mewnforiad Diweddaraf - Methiannau'; +$lang['import_success_count'] = 'Mewnforio Defnyddwyr: darganfuwyd %d defnyddiwr, mewnforiwyd %d yn llwyddiannus.'; +$lang['import_failure_count'] = 'Mewnforio Defnyddwyr: methodd %d. Rhestrwyd y methiannau isod.'; +$lang['import_error_fields'] = "Meysydd annigonol, darganfuwyd %d, angen 4."; +$lang['import_error_baduserid'] = "Id-defnyddiwr ar goll"; +$lang['import_error_badname'] = 'Enw gwael'; +$lang['import_error_badmail'] = 'Cyfeiriad ebost gwael'; +$lang['import_error_upload'] = 'Methodd y Mewnforiad. Doedd dim modd lanlwytho\'r ffeil neu roedd yn wag.'; +$lang['import_error_readfail'] = 'Methodd y Mewnforiad. Methu â darllen y ffeil a lanlwythwyd.'; +$lang['import_error_create'] = 'Methu â chreu\'r defnyddiwr'; +$lang['import_notify_fail'] = 'Doedd dim modd anfon neges hysbysu i\'r defyddiwr a fewnforiwyd, %s gydag ebost %s.'; +$lang['import_downloadfailures'] = 'Lawlwytho Methiannau fel CSV er mwyn cywiro'; + +$lang['addUser_error_missing_pass'] = 'Gosodwch gyfrinair neu trowch hysbysu defnyddwyr ymlaen i alluogi generadu cyfrineiriau.'; +$lang['addUser_error_pass_not_identical'] = '\'Dyw\'r cyfrineiriau hyn ddim yn cydweddu.'; +$lang['addUser_error_modPass_disabled'] = 'Mae newid cyfrineiriau wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_name_missing'] = 'Rhowch enw ar gyfer y defnyddiwr newydd.'; +$lang['addUser_error_modName_disabled'] = 'Mae newid enwau wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_mail_missing'] = 'Rhowch gyfeiriad ebost ar gyfer y defnyddiwr newydd.'; +$lang['addUser_error_modMail_disabled'] = 'Mae newid cyfeiriadau ebost wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_create_event_failed'] = 'Mae ategyn wedi atal ychwanegu\'r defnyddiwr newydd. Adolygwch negeseuon ychwanegol bosib am wybodaeth bellach.'; diff --git a/lib/plugins/usermanager/lang/cy/list.txt b/lib/plugins/usermanager/lang/cy/list.txt new file mode 100644 index 000000000..653177491 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/list.txt @@ -0,0 +1 @@ +===== Rhestr Defnyddwyr ===== -- GitLab From a79821019709498cc47a77847ee51388f7f66b66 Mon Sep 17 00:00:00 2001 From: dimsharav <dimsharav@gmail.com> Date: Thu, 7 Jan 2016 22:51:24 +0100 Subject: [PATCH 425/440] translation update --- inc/lang/ru/lang.php | 1 + lib/plugins/authad/lang/ru/lang.php | 2 ++ lib/plugins/usermanager/lang/ru/lang.php | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 01c68e48e..304233a48 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -33,6 +33,7 @@ * @author Nolf <m.kopachovets@gmail.com> * @author Takumo <9206984@mail.ru> * @author RainbowSpike <1@2.ru> + * @author dimsharav <dimsharav@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php index fe56be2bf..ebce005c0 100644 --- a/lib/plugins/authad/lang/ru/lang.php +++ b/lib/plugins/authad/lang/ru/lang.php @@ -5,8 +5,10 @@ * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Takumo <9206984@mail.ru> + * @author dimsharav <dimsharav@gmail.com> */ $lang['domain'] = 'Домен'; $lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; $lang['passchangefail'] = 'Ðе удалоÑÑŒ изменить пароль. Возможно, он не ÑоответÑтвует требованиÑм к паролю.'; +$lang['userchangefail'] = 'Ошибка при изменении атрибутов пользователÑ. Возможно, у Вашей учетной запиÑи недоÑтаточно прав?'; $lang['connectfail'] = 'Ðевозможно ÑоединитьÑÑ Ñ Ñервером AD.'; diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index e6708ddb7..ca39b8795 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -22,6 +22,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Igor Degraf <igordegraf@gmail.com> * @author Vitaly Filatenko <kot@hacktest.net> + * @author dimsharav <dimsharav@gmail.com> */ $lang['menu'] = 'Управление пользователÑми'; $lang['noauth'] = '(Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ недоÑтупна)'; @@ -82,6 +83,10 @@ $lang['import_error_readfail'] = 'Импорт не удалÑÑ. Ðевозмо $lang['import_error_create'] = 'Ðевозможно Ñоздать пользователÑ'; $lang['import_notify_fail'] = 'Оповещение не может быть отправлено импортированному пользователю %s по Ñлектронной почте %s.'; $lang['import_downloadfailures'] = 'Скачать ошибки в формате CSV Ð´Ð»Ñ Ð¸ÑправлениÑ'; +$lang['addUser_error_missing_pass'] = 'Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти генерации паролÑ, пожалуйÑта, уÑтановите пароль или активируйте оповещениÑ.'; $lang['addUser_error_pass_not_identical'] = 'Введённые ппароли не Ñовпадают.'; +$lang['addUser_error_modPass_disabled'] = 'Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð² наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; $lang['addUser_error_name_missing'] = 'Укажите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пользователÑ.'; +$lang['addUser_error_modName_disabled'] = 'Изменение имени в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; $lang['addUser_error_mail_missing'] = 'Укажите Ð°Ð´Ñ€ÐµÑ Ñл. почты нового пользователÑ.'; +$lang['addUser_error_modMail_disabled'] = 'Изменение e-mail в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; -- GitLab From 73cc470bab1b51a46d48065a19e09e5bd756fbf9 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Tue, 19 Jan 2016 19:55:20 +0100 Subject: [PATCH 426/440] don't exclude install.php from httpd router --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 673282b43..689ce1779 100644 --- a/index.php +++ b/index.php @@ -52,7 +52,7 @@ if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { # access limitiations if(preg_match('/\/([\._]ht|README$|VERSION$|COPYING$)/', $_SERVER['SCRIPT_NAME']) or - preg_match('/^\/(data\/|conf\/|bin\/|inc\/|install.php)/', $_SERVER['SCRIPT_NAME']) + preg_match('/^\/(data|conf|bin|inc)\//', $_SERVER['SCRIPT_NAME']) ) { die('Access denied'); } -- GitLab From 9c65e2a95c67cbb2adba8a7c30dd04c7f88a423b Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 22 Jan 2016 21:16:54 +0100 Subject: [PATCH 427/440] fixed wrongly closed section edit button The opening tag of the button was self closing, creating invalid HTML. See https://forum.dokuwiki.org/thread/13346 for initial report --- inc/html.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/inc/html.php b/inc/html.php index 21dfb44ee..913e28a7d 100644 --- a/inc/html.php +++ b/inc/html.php @@ -226,8 +226,7 @@ function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label $tip .= ' ['.strtoupper($akey).']'; $ret .= 'accesskey="'.$akey.'" '; } - $ret .= 'title="'.$tip.'" '; - $ret .= '/>'; + $ret .= 'title="'.$tip.'">'; $ret .= hsc($label); $ret .= '</button>'; $ret .= '</div></form>'; -- GitLab From e0b6aade22fd35d4c2d514a1f30342983b1fb352 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 29 Jan 2016 12:50:24 +0100 Subject: [PATCH 428/440] do not accept empty or root $base in search. fixes #1452 You really never want to search the whole filesystem, so something must have gone wrong. Better abort than go on. --- inc/search.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/inc/search.php b/inc/search.php index 935969d3f..cc3579c3c 100644 --- a/inc/search.php +++ b/inc/search.php @@ -28,6 +28,11 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){ $files = array(); $filepaths = array(); + // safeguard against runaways #1452 + if($base == '' || $base == '/') { + throw new RuntimeException('No valid $base passed to search() - possible misconfiguration or bug'); + } + //read in directories and files $dh = @opendir($base.'/'.$dir); if(!$dh) return; -- GitLab From f606129280a1ed26ab175127c4219c18bad230f7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 29 Jan 2016 13:00:17 +0100 Subject: [PATCH 429/440] avoid undefined offset. replaces #1359 --- lib/exe/ajax.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index a200a3ded..1c1b5f03f 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -428,7 +428,7 @@ function ajax_linkwiz(){ echo '<a href="'.$link.'" title="'.htmlspecialchars($item['id']).'" class="wikilink1">'.$name.'</a>'; - if($item['title']){ + if(!blank($item['title'])){ echo '<span>'.htmlspecialchars($item['title']).'</span>'; } echo '</div>'; -- GitLab From a38bc7e6c4a8b1362de2bae7c3f9b01bf79df38f Mon Sep 17 00:00:00 2001 From: Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> Date: Wed, 3 Feb 2016 08:36:31 +0100 Subject: [PATCH 430/440] translation update --- inc/lang/fa/editrev.txt | 3 +- inc/lang/fa/lang.php | 1 + lib/plugins/authad/lang/fa/settings.php | 4 ++ lib/plugins/authldap/lang/fa/lang.php | 9 +++ lib/plugins/authldap/lang/fa/settings.php | 20 +++++++ lib/plugins/authmysql/lang/fa/lang.php | 2 + lib/plugins/authpgsql/lang/fa/settings.php | 26 +++++++++ lib/plugins/authplain/lang/fa/lang.php | 3 + lib/plugins/config/lang/fa/lang.php | 4 ++ .../extension/lang/fa/intro_install.txt | 1 + .../extension/lang/fa/intro_plugins.txt | 1 + .../extension/lang/fa/intro_search.txt | 1 + .../extension/lang/fa/intro_templates.txt | 1 + lib/plugins/extension/lang/fa/lang.php | 56 +++++++++++++++++++ lib/plugins/styling/lang/fa/intro.txt | 2 + lib/plugins/styling/lang/fa/lang.php | 23 ++++++++ lib/plugins/usermanager/lang/fa/lang.php | 25 +++++++++ lib/tpl/dokuwiki/lang/fa/lang.php | 14 +++++ lib/tpl/dokuwiki/lang/fa/style.txt | 1 + 19 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/authldap/lang/fa/lang.php create mode 100644 lib/plugins/extension/lang/fa/intro_install.txt create mode 100644 lib/plugins/extension/lang/fa/intro_plugins.txt create mode 100644 lib/plugins/extension/lang/fa/intro_search.txt create mode 100644 lib/plugins/extension/lang/fa/intro_templates.txt create mode 100644 lib/plugins/styling/lang/fa/intro.txt create mode 100644 lib/plugins/styling/lang/fa/lang.php create mode 100644 lib/tpl/dokuwiki/lang/fa/lang.php create mode 100644 lib/tpl/dokuwiki/lang/fa/style.txt diff --git a/inc/lang/fa/editrev.txt b/inc/lang/fa/editrev.txt index ca896feeb..eae539414 100644 --- a/inc/lang/fa/editrev.txt +++ b/inc/lang/fa/editrev.txt @@ -1 +1,2 @@ -**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! \ No newline at end of file +**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! +---- \ No newline at end of file diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 058f4fe3b..bb7441d90 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -16,6 +16,7 @@ * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; diff --git a/lib/plugins/authad/lang/fa/settings.php b/lib/plugins/authad/lang/fa/settings.php index e29460521..39a1654ad 100644 --- a/lib/plugins/authad/lang/fa/settings.php +++ b/lib/plugins/authad/lang/fa/settings.php @@ -5,12 +5,16 @@ * * @author Omid Hezaveh <hezpublic@gmail.com> * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['account_suffix'] = 'پسوند Øساب کاربری شما. به عنوان مثال <code>@my.domain.org</code>'; $lang['base_dn'] = 'DN پایه شما. به عنوان مثال <code>DC=my,DC=domain,DC=org</code>'; $lang['domain_controllers'] = 'لیست کنترل کننده‌های دامنه Ú©Ù‡ با کاما ازهم جدا شده اند. به عنوان مثال <code>srv1.domain.org,srv2.domain.org</code'; +$lang['admin_username'] = 'کاربر دارای دسترسی Active Directory Ú©Ù‡ دارای دسترسی به تمام اطلاعات کاربران است. اختیاریست ولی برای برخی Ùعالیت‌ها مثل ایمیل‌های عضویت لازم است.'; $lang['admin_password'] = 'رمز کاربر بالایی '; +$lang['sso'] = 'آیا Single-Sign-On از طریق Kerberos یا NTLM استÙاده شود؟'; $lang['use_ssl'] = 'از اس‌اس‌ال استÙاده می‌کنید؟ در این صورت تی‌ال‌اس را در پایین Ùعال نکنید. '; $lang['use_tls'] = 'از تی‌ال‌اس استÙاده می‌کنید؟ در این صورت اس‌اس‌ال را در بالا Ùعال نکنید. '; $lang['debug'] = 'داده‌های اضاÙÛŒ خروجی دیباگ در هنگام بروز خطا نمایش داده شود؟'; $lang['expirywarn'] = 'تعداد روزهایی Ú©Ù‡ پس گذشتن آن برای تغییر رمزعبور به شما هشدار داده شود. باری غیرÙعال سازی از مقدار 0 استÙاده کنید.'; +$lang['additional'] = 'لیست صÙات اضاÙÛŒ AD برای گرÙتن از اطلاعات کاربر Ú©Ù‡ توسط برخی از اÙزونه‌ها استÙاده می‌شود. با کاما جدا شود.'; diff --git a/lib/plugins/authldap/lang/fa/lang.php b/lib/plugins/authldap/lang/fa/lang.php new file mode 100644 index 000000000..fdf4f6da9 --- /dev/null +++ b/lib/plugins/authldap/lang/fa/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['connectfail'] = 'LDAP نمیتواند وصل شود: %s'; +$lang['domainfail'] = 'LDAP نمیتواند کاربر شما را پیدا کند'; diff --git a/lib/plugins/authldap/lang/fa/settings.php b/lib/plugins/authldap/lang/fa/settings.php index b801cd12a..f8de08437 100644 --- a/lib/plugins/authldap/lang/fa/settings.php +++ b/lib/plugins/authldap/lang/fa/settings.php @@ -6,7 +6,27 @@ * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['server'] = 'سرور LDAP شما. Ú†Ù‡ به صورت '; +$lang['port'] = 'درگاه سرور LDAP اگر Ú©Ù‡ URL کامل در بالا نوشته نشده'; +$lang['usertree'] = 'Ù…ØÙ„ Øساب‌های کاربری. برای مثال <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Ù…ØÙ„ گروه‌های کاربری. برای مثال <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'Ùیتلرهای LDAP برای جستجوی Øساب‌های کاربری. برای مثال <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'Ùیلتر LDAP برای جستجوی گروه‌ها. برای مثال <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'نسخهٔ پروتوکل برای استÙاده. اØتمالا این را باید <code>3</code> وارد کنید.'; $lang['starttls'] = 'از تی‌ال‌اس (TLS) استÙاده می‌کنید؟'; +$lang['referrals'] = 'آیا ارجاعات باید دنبال شوند؟'; $lang['deref'] = 'نام‌های مستعار چطور ارجاع یابی شوند؟'; $lang['bindpw'] = 'رمزعبور کاربر بالا'; +$lang['userscope'] = 'Ù…Øدود کردن Ù…Øدودهٔ جستجو به جستجوی کاربر'; +$lang['groupscope'] = 'Ù…Øدود کردن Ù…Øدودهٔ جستجو به جستجوی گروه'; +$lang['modPass'] = 'آیا پسورد LDAP می‌تواند توسط داکو ویکی تغییر کند؟'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی در ارورها'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'استÙاده از پیشÙرض'; +$lang['referrals_o_0'] = 'ارجاعات را دنبال Ù†Ú©Ù†'; +$lang['referrals_o_1'] = 'ارجاعات را دنبال Ú©Ù†'; diff --git a/lib/plugins/authmysql/lang/fa/lang.php b/lib/plugins/authmysql/lang/fa/lang.php index e2b397879..c73c053b1 100644 --- a/lib/plugins/authmysql/lang/fa/lang.php +++ b/lib/plugins/authmysql/lang/fa/lang.php @@ -4,7 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['connectfail'] = 'خطا در اتصال به دیتابیس'; $lang['userexists'] = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.'; $lang['usernotexists'] = 'با عرض پوزش، آن کاربر وجود نداشت.'; $lang['writefail'] = 'امکان تغییر داده کاربر وجود نداشت. لطÙا مسئول Wiki را آگاه کنید.'; diff --git a/lib/plugins/authpgsql/lang/fa/settings.php b/lib/plugins/authpgsql/lang/fa/settings.php index f120fb536..f2d31d058 100644 --- a/lib/plugins/authpgsql/lang/fa/settings.php +++ b/lib/plugins/authpgsql/lang/fa/settings.php @@ -5,9 +5,35 @@ * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['server'] = 'سرور PostgreSQL شما'; $lang['port'] = 'پورت سرور PostgreSQL شما'; $lang['user'] = 'نام کاربری PostgreSQL'; $lang['password'] = 'رمزعبور کابر بالا'; $lang['database'] = 'پایگاه داده مورد استÙاده'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی'; +$lang['checkPass'] = 'دستور SQL برای Ú†Ú© کردن پسورد'; +$lang['getUserInfo'] = 'دستور SQL برای دریاÙت اطلاعات کاربران'; +$lang['getGroups'] = 'دستور SQL برای دریاÙت گروه‌های یک کاربر'; +$lang['getUsers'] = 'دستور SQL برای Ùهرست کردن تمام کاربران'; +$lang['FilterLogin'] = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کاربری'; +$lang['FilterName'] = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کامل'; +$lang['FilterEmail'] = 'کلاز SQL برای Ùیلتر کردن کاربران با آدرس ایمیل'; +$lang['FilterGroup'] = 'کلاز SQL برای Ùیلتر کردن کاربران با عضویت در گروه'; +$lang['SortOrder'] = 'کلاز SQL برای مرتب کردن کاربران'; +$lang['addUser'] = 'دستور SQL برای اÙزودن کاربر جدید'; +$lang['addGroup'] = 'دستور SQL برای اÙزودن گروه جدید'; +$lang['addUserGroup'] = 'دستور SQL برای اÙزودن یک کاربر به یک گروه موجود'; +$lang['delGroup'] = 'دستور SQL برای پاک کردن یک گروه'; +$lang['getUserID'] = 'دستور SQL برای گرÙتن کلید اصلی یک کاربر'; +$lang['delUser'] = 'دستور SQL برای Øذ٠یک کاربر'; +$lang['delUserRefs'] = 'دستور SQL برای پاک کردن یک کاربر از تمام گروه‌ها'; +$lang['updateUser'] = 'دستور SQL برای به‌روزرسانی پروÙایل کاربر'; +$lang['UpdateLogin'] = 'کلاز Update برای به روز کردن نام کاربری'; +$lang['UpdatePass'] = 'کلاز Update برای به روز کردن پسورد کاربر'; +$lang['UpdateEmail'] = 'کلاز Update برای به روز کردن ایمیل کاربر'; +$lang['UpdateName'] = 'کلاز Update برای به روز کردن نام کامل کاربر'; +$lang['UpdateTarget'] = 'کلاز Limit برای شناسایی کاربر هنگام به روز رسانی'; +$lang['delUserGroup'] = 'دستور SQL برای Øذ٠یک کاربر از یک گروه'; +$lang['getGroupID'] = 'دستور SQL برای گرÙتن کلید اصلی یک گروه'; diff --git a/lib/plugins/authplain/lang/fa/lang.php b/lib/plugins/authplain/lang/fa/lang.php index acb316988..c222927db 100644 --- a/lib/plugins/authplain/lang/fa/lang.php +++ b/lib/plugins/authplain/lang/fa/lang.php @@ -3,5 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['userexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; +$lang['usernotexists'] = 'متاسÙانه این کاربر وجود ندارد.'; +$lang['writefail'] = 'امکان ویرایش اطلاعات کاربر وجود ندارد. لطÙا ادمین ویکی را مطلع نمایید.'; diff --git a/lib/plugins/config/lang/fa/lang.php b/lib/plugins/config/lang/fa/lang.php index e6f02813b..00b60f062 100644 --- a/lib/plugins/config/lang/fa/lang.php +++ b/lib/plugins/config/lang/fa/lang.php @@ -11,6 +11,7 @@ * @author Milad DZand <M.DastanZand@gmail.com> * @author AmirH Hassaneini <mytechmix@gmail.com> * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'تنظیمات پیکر‌بندی'; $lang['error'] = 'به دلیل ایراد در مقادیر وارد شده، تنظیمات اعمال نشد، خواهشمندیم تغییرات را مجددن کنترل نمایید Ùˆ دوباره ارسال کنید.<br/> مقادیر مشکل‌دار با کادر قرمز مشخص شده‌اند.'; @@ -84,7 +85,9 @@ $lang['disableactions'] = 'غیرÙعال کردن Ùعالیت‌های $lang['disableactions_check'] = 'بررسی'; $lang['disableactions_subscription'] = 'عضویت/عدم عضویت'; $lang['disableactions_wikicode'] = 'نمایش سورس/برون‌بری خام'; +$lang['disableactions_profile_delete'] = 'ØØ°Ù Øساب کاربری خود.'; $lang['disableactions_other'] = 'Ùعالیت‌های دیگر (با ویرگول انگلیسی «,» از هم جدا کنید)'; +$lang['disableactions_rss'] = 'خبرخوان (RSS)'; $lang['auth_security_timeout'] = 'زمان انقضای معتبرسازی به ثانیه'; $lang['securecookie'] = 'آیا کوکی‌ها باید با قرارداد HTTPS ارسال شوند؟ این گزینه را زمانی Ú©Ù‡ Ùقط صÙØه‌ی ورود ویکی‌تان با SSL امن شده است، اما ویکی را ناامن مرور می‌کنید، غیرÙعال نمایید.'; $lang['remote'] = 'سیستم API راه دور را Ùعال کنید . این به سایر کاربردها اجازه Ù…ÛŒ دهد Ú©Ù‡ به ویکی از طریق XML-RPC یا سایر مکانیزم ها دسترسی داشته باشند.'; @@ -190,6 +193,7 @@ $lang['xsendfile_o_2'] = 'هدر استاندارد X-Sendfile'; $lang['xsendfile_o_3'] = 'هدر اختصاصی X-Accel-Redirect در وب سرور Nginx'; $lang['showuseras_o_loginname'] = 'نام کاربری'; $lang['showuseras_o_username'] = 'نام کامل کاربران'; +$lang['showuseras_o_username_link'] = 'نام کامل کاربر به عنوان لینک داخلی ویکی'; $lang['showuseras_o_email'] = 'آدرس ایمیل کاربران (با تنظیمات «نگهبان ایمیل» مبهم می‌شود)'; $lang['showuseras_o_email_link'] = 'نمایش ایمیل کاربران با اÙزودن mailto'; $lang['useheading_o_0'] = 'هرگز'; diff --git a/lib/plugins/extension/lang/fa/intro_install.txt b/lib/plugins/extension/lang/fa/intro_install.txt new file mode 100644 index 000000000..93c2b9734 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_install.txt @@ -0,0 +1 @@ +در اینجا می‌توانید اÙزونه‌ها Ùˆ قالب‌ها را به صورت دستی از طریق آپلودشان یا با ارائهٔ لینک مستقیم دانلود نصب کنید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_plugins.txt b/lib/plugins/extension/lang/fa/intro_plugins.txt new file mode 100644 index 000000000..7d7d331b3 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_plugins.txt @@ -0,0 +1 @@ +این‌ها اÙزونه‌هایی است Ú©Ù‡ اکنون روی داکو ویکی شما نصب می‌باشند. از اینجا می‌توانید آن‌ها را غیرÙعال، Ùعال یا به طور کامل Øذ٠نمایید. به‌روزرسانی اÙزونه‌ها نیز در اینجا نمایش داده می‌شود. پیش از به‌روزرسانی مطمئن شوید Ú©Ù‡ مستندات اÙزونه را مطالعه نموده‌اید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_search.txt b/lib/plugins/extension/lang/fa/intro_search.txt new file mode 100644 index 000000000..07fde76c1 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_search.txt @@ -0,0 +1 @@ +این شاخه به تمام اÙزونه‌ها Ùˆ قالب‌های نسل سوم داکو ویکی دسترسی می‌دهد. لطÙا دقت کنید Ú©Ù‡ نصب کد نسل سوم یک **ریسک امنیتی** است برای همین بهتر است Ú©Ù‡ ابتدا [[doku>security#plugin_security|امنیت اÙزونه]] را مطالعه نمایید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_templates.txt b/lib/plugins/extension/lang/fa/intro_templates.txt new file mode 100644 index 000000000..1a127c0ce --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_templates.txt @@ -0,0 +1 @@ +این‌ها قالب‌هاییست Ú©Ù‡ اکنون در داکو ویکی شما نصب می‌باشد. شما می‌توانید قالبی Ú©Ù‡ می‌خواهید استÙاده شود را در [[?do=admin&page=config|تنظیمات پیکربندی]] انتخاب نمایید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/lang.php b/lib/plugins/extension/lang/fa/lang.php index 95c3e9652..aa0613f91 100644 --- a/lib/plugins/extension/lang/fa/lang.php +++ b/lib/plugins/extension/lang/fa/lang.php @@ -4,37 +4,93 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'مدیریت اÙزونه ها'; $lang['tab_plugins'] = 'پلاگین های نصب شده'; $lang['tab_templates'] = 'قالب های نصب شده'; $lang['tab_search'] = 'جستجو Ùˆ نصب'; $lang['tab_install'] = 'نصب دستی'; +$lang['notimplemented'] = 'این قابلیت هنوز پیاده‌سازی نشده'; $lang['notinstalled'] = 'این اÙزونه نصب نشده است'; $lang['alreadyenabled'] = 'این اÙزونه Ùعال شده است'; $lang['alreadydisabled'] = 'این اÙزونه غیرÙعال شده است'; +$lang['pluginlistsaveerror'] = 'یک خطا هنگام ذخیره‌سازی این اÙزونه رخ داده'; +$lang['unknownauthor'] = 'نویسنده نامشخص'; $lang['unknownversion'] = 'نسخه ناشناخته'; $lang['btn_info'] = 'نمایش اطلاعات بیشتر'; $lang['btn_update'] = 'به روز رسانی'; +$lang['btn_uninstall'] = 'ØØ°Ù'; $lang['btn_enable'] = 'Ùعال'; $lang['btn_disable'] = 'غیرÙعال'; $lang['btn_install'] = 'نصب'; $lang['btn_reinstall'] = 'نصب مجدد'; +$lang['js']['reallydel'] = 'واقعا می‌خواهید این اÙزونه را Øذ٠کنید؟'; +$lang['js']['display_viewoptions'] = 'نمایش گزینه‌ها:'; +$lang['js']['display_enabled'] = 'Ùعال'; +$lang['js']['display_disabled'] = 'غیرÙعال'; +$lang['js']['display_updatable'] = 'قابل به‌روزرسانی'; $lang['search_for'] = 'جستجوی اÙزونه:'; $lang['search'] = 'جستجو'; +$lang['extensionby'] = '<strong>%s</strong> به وسیلهٔ %s'; +$lang['screenshot'] = 'اسکرینشات %s'; +$lang['popularity'] = 'Ù…Øبوبیت: %s%%'; +$lang['homepage_link'] = 'مستندات'; +$lang['bugs_features'] = 'اشکالات'; $lang['tags'] = 'برچسب ها:'; +$lang['author_hint'] = 'جستجوی اÙزونه‌های این نویسنده'; +$lang['installed'] = 'نصب شده:'; +$lang['downloadurl'] = 'لینک دانلود:'; +$lang['repository'] = 'مخزن:'; +$lang['unknown'] = '<em>ناشناخته</em>'; $lang['installed_version'] = 'نسخه نصب شده:'; +$lang['install_date'] = 'آخرین به‌روزرسانی شما:'; $lang['available_version'] = 'نسخه در دسترس:'; +$lang['compatible'] = 'سازگار با:'; +$lang['depends'] = 'وابسته به:'; +$lang['similar'] = 'شبیه به:'; +$lang['conflicts'] = 'تداخل دارد با:'; +$lang['donate'] = 'به این علاقه‌مندید؟'; +$lang['donate_action'] = 'برای نویسنده یک Ùنجان قهوه بخرید!'; $lang['repo_retry'] = 'دوباره'; +$lang['provides'] = 'شامل می‌شود:'; $lang['status'] = 'وضعیت'; $lang['status_installed'] = 'نصب شده'; $lang['status_not_installed'] = 'نصب نشده'; +$lang['status_protected'] = 'Ù…ØاÙظت شده'; $lang['status_enabled'] = 'Ùعال'; $lang['status_disabled'] = 'غیرÙعال'; +$lang['status_unmodifiable'] = 'غیرقابل تغییر'; $lang['status_plugin'] = 'پلاگین'; $lang['status_template'] = 'قالب'; +$lang['status_bundled'] = 'باندل شده'; +$lang['msg_enabled'] = 'اÙزونه %s Ùعال شده'; +$lang['msg_disabled'] = 'اÙزونه %s غیرÙعال شده'; +$lang['msg_delete_success'] = 'اÙزونه %s Øذ٠شده'; +$lang['msg_delete_failed'] = 'Øذ٠اÙزونه %s ناموÙÙ‚ بود'; +$lang['msg_template_install_success'] = 'قالب %s با موÙقیت نصب شد'; +$lang['msg_template_update_success'] = 'قالب %s با موÙقیت به‌روزرسانی شد'; +$lang['msg_plugin_install_success'] = 'اÙزونهٔ %s با موÙقیت نصب شد'; +$lang['msg_plugin_update_success'] = 'اÙزونهٔ %s با موÙقیت نصب شد'; +$lang['msg_upload_failed'] = 'بارگذاری Ùایل ناموÙÙ‚ بود'; +$lang['missing_dependency'] = '<strong>نیازمندی وجود ندارد یا غیرÙعال است:</strong> %s'; +$lang['security_issue'] = '<strong>اشکال امنیتی:</strong> %s'; +$lang['security_warning'] = '<strong>اخطار امنیتی:</strong> %s'; +$lang['update_available'] = '<strong>به‌روزرسانی</strong> نسخهٔ جدید %s موجود است.'; +$lang['wrong_folder'] = '<strong>اÙزونه اشتباه نصب شده:</strong> نام پوشهٔ اÙزونه را از "%s" به "%s" تغییر دهید.'; +$lang['url_change'] = '<strong>لینک تغییر کرد:</strong> لینک دانلود از آخرین دانلود تغییر کرد. پیش از به‌روزرسانی اÙزونه، Ú†Ú© کنید Ú©Ù‡ لینک جدید درست باشد.<br />جدید: %s<br />قدیمی: %s'; +$lang['error_badurl'] = 'لینک‌ها باید با http یا https شروع شوند'; +$lang['error_dircreate'] = 'امکان ایجاد پوشهٔ موقت برای دریاÙت دانلود وجود ندارد'; +$lang['error_download'] = 'امکان دانلود Ùایل وجود ندارد: %s'; +$lang['error_decompress'] = 'امکان خارج کردن Ùایل دانلود شده از Øالت Ùشرده وجود ندارد. این می‌توانید در اثر دانلود ناقص باشد Ú©Ù‡ در اینصورت باید دوباره تلاش کنید؛ یا اینکه Ùرمت Ùشرده‌سازی نامعلوم است Ú©Ù‡ در اینصورت باید به صورت دستی دانلود Ùˆ نصب نمایید.'; +$lang['error_findfolder'] = 'امکان تشخیص پوشهٔ اÙزونه وجود ندارد. باید به صورت دستی دانلود Ùˆ نصب کنید.'; +$lang['error_copy'] = 'هنگام تلاش برای نصب Ùایل‌ها برای پوشهٔ <em>%s</em> خطای Ú©Ù¾ÛŒ Ùایل وجود دارد: رسانه ذخیره‌سازی می‌تواند پر باشد یا پرمیشن‌های Ùایل نادرست است. این می‌تواند باعث نصب بخشی از اÙزونه شده باشد Ùˆ ویکی را ناپایدار نماید.'; $lang['noperms'] = 'پوشه اÙزونه ها قابل نوشتن نیست'; $lang['notplperms'] = 'پوشه قالب ها قابل نوشتن نیست'; $lang['nopluginperms'] = 'پوشه پلاگین ها قابل نوشتن نیست'; +$lang['git'] = 'این اÙزونه از طریق گیت نصب شده، شما نباید آن را از اینجا به‌روزرسانی کنید.'; +$lang['auth'] = 'این اÙزونهٔ auth در بخش تنظیمات Ùعال نشده، غیرÙعالش کنید.'; $lang['install_url'] = 'نصب از آدرس:'; $lang['install_upload'] = 'بارگذاری اÙزونه:'; +$lang['repo_error'] = 'امکان ارتباط با مخزن اÙزونه‌ها وجود ندارد. مطمئن شوید Ú©Ù‡ سرور شما اجازهٔ ارتباط با www.dokuwiki.org را دارد Ùˆ تنظیمات پراکسی را Ú†Ú© کنید.'; +$lang['nossl'] = 'به نظر می‌آید Ú©Ù‡ PHP شما از SSL پشتیبانی نمی‌کند. دانلود کردن برای بسیاری از اÙزونه‌های داکو ویکی کار نمی‌کند.'; diff --git a/lib/plugins/styling/lang/fa/intro.txt b/lib/plugins/styling/lang/fa/intro.txt new file mode 100644 index 000000000..428a25130 --- /dev/null +++ b/lib/plugins/styling/lang/fa/intro.txt @@ -0,0 +1,2 @@ +این ابزار این امکان را Ùراهم می‌سازد Ú©Ù‡ برخی تنظیمات مشخص از قالبی Ú©Ù‡ انتخاب کردید را تغییر دهید. +تمام تغییرات در Ùایل داخلی تنظیمات ذخیره می‌شود Ùˆ به‌روزرسانی هم ایمن است. \ No newline at end of file diff --git a/lib/plugins/styling/lang/fa/lang.php b/lib/plugins/styling/lang/fa/lang.php new file mode 100644 index 000000000..c8d1bd60e --- /dev/null +++ b/lib/plugins/styling/lang/fa/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['menu'] = 'تنظیمات ظاهری تمپلیت'; +$lang['js']['loader'] = 'پیش‌نمایش در Øال باز شدن است... <br />اگر این پیش نرÙت یعنی مقادیرتان اشکال دارد'; +$lang['js']['popup'] = 'باز کردن به صورت popup'; +$lang['error'] = 'ببخشید، این قالب از این قابلیت پشتیبانی نمی‌کند'; +$lang['btn_preview'] = 'نمایش تغییرات'; +$lang['btn_save'] = 'ذخیره تغییرات'; +$lang['btn_reset'] = 'بازگردانی تغییر Ùعلی'; +$lang['btn_revert'] = 'بازگردانی ظاهر به پیشÙرض قالب'; +$lang['__text__'] = 'رنگ اصلی متن'; +$lang['__background__'] = 'رنگ اصلی زمینه'; +$lang['__text_alt__'] = 'رنگ ثانویه متن'; +$lang['__background_alt__'] = 'رنگ ثانویه زمینه'; +$lang['__text_neu__'] = 'رنگ خنثی متن'; +$lang['__background_neu__'] = 'رنگ خنثی زمینه'; +$lang['__border__'] = 'رنگ Øاشیه'; +$lang['__highlight__'] = 'رنگ برجسته‌سازی (برای نتیجه جستجو)'; diff --git a/lib/plugins/usermanager/lang/fa/lang.php b/lib/plugins/usermanager/lang/fa/lang.php index bb2505a27..cfa14f23b 100644 --- a/lib/plugins/usermanager/lang/fa/lang.php +++ b/lib/plugins/usermanager/lang/fa/lang.php @@ -12,6 +12,7 @@ * @author AmirH Hassaneini <mytechmix@gmail.com> * @author Hamid <zarrabi@sharif.edu> * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'مدیریت کاربر'; $lang['noauth'] = '(معتبرسازی کاربر ممکن نیست)'; @@ -34,7 +35,10 @@ $lang['search'] = 'جستجو'; $lang['search_prompt'] = 'انجام جستجو'; $lang['clear'] = 'بازنویسی Ùیلترهای جستجو'; $lang['filter'] = 'Ùیلتر'; +$lang['export_all'] = 'خروجی گرÙتن از تمام کاربران (CSV):'; +$lang['export_filtered'] = 'خروجی لیست Ùیلتر شده کاربران (CSV):'; $lang['import'] = 'ورود کاربران جدید'; +$lang['line'] = 'شماره خط.'; $lang['error'] = 'متن خطا'; $lang['summary'] = 'نمایش کاربر %1$d-%2$d از %3$d. در Ú©Ù„ %4$d کاربر.'; $lang['nonefound'] = 'هیچ کاربری یاÙت نشد. در Ú©Ù„ %d کاربر.'; @@ -56,3 +60,24 @@ $lang['add_ok'] = 'کاربر با موÙقیت اÙزوده شد $lang['add_fail'] = 'اÙزودن کاربر با مشکل مواجه شد'; $lang['notify_ok'] = 'ایمیل آگاهی‌دهنده ارسال شد'; $lang['notify_fail'] = 'ارسال ایمیل آگاهی‌دهنده با مشکل مواجه شد'; +$lang['import_userlistcsv'] = 'Ùایل لیست کاربران (CSV):'; +$lang['import_header'] = 'آخرین ایمپورت - خطا'; +$lang['import_success_count'] = 'ایمپورت کاربران: %d کاربر پیدا شد، %d با موÙقیت وارد شد.'; +$lang['import_failure_count'] = 'ایمپورت کاربران: %d ناموÙÙ‚. موارد ناموÙÙ‚ در پایین Ùهرست شده.'; +$lang['import_error_fields'] = 'Ùیلدهای ناکاÙÛŒ. %d تا پیدا شد ولی Û´ تا لازم است.'; +$lang['import_error_baduserid'] = 'id کاربر وارد نشده'; +$lang['import_error_badname'] = 'نام نامناسب'; +$lang['import_error_badmail'] = 'ایمیل نامناسب'; +$lang['import_error_upload'] = 'ایمپورت ناموÙÙ‚. امکان ایمپورت Ùایل csv وجود ندارد یا خالی است.'; +$lang['import_error_readfail'] = 'ایمپورت ناموÙÙ‚. امکان خواندن Ùایل آپلود شده وجود ندارد.'; +$lang['import_error_create'] = 'امکان ساخت کاربر وجود ندارد.'; +$lang['import_notify_fail'] = 'امکان ارسال پیغام آگاهی‌رسان برای کاربر ایمپورت شده وجود ندارد، %s با ایمیل %s.'; +$lang['import_downloadfailures'] = 'دانلود خطاها به صورت CSV برای اصلاØ'; +$lang['addUser_error_missing_pass'] = 'لطÙا یک پسورد وارد کنید یا آگاهی‌رسان کاربر را Ùعال کنید تا امکان تولید پسورد ایجاد شود'; +$lang['addUser_error_pass_not_identical'] = 'پسورد وارد شده معتبر نیست.'; +$lang['addUser_error_modPass_disabled'] = 'پسوردهای تغییریاÙتنی غیرÙعال است.'; +$lang['addUser_error_name_missing'] = 'لطÙا یک نام برای کاربر جدید وارد کنید.'; +$lang['addUser_error_modName_disabled'] = 'نام‌های تغییریاÙتنی غیر Ùعال است.'; +$lang['addUser_error_mail_missing'] = 'لطÙا یک نشانی ایمیل برای کاربر جدید وارد نمایید.'; +$lang['addUser_error_modMail_disabled'] = 'ایمیل‌های تغییریاÙتنی غیر Ùعال است.'; +$lang['addUser_error_create_event_failed'] = 'اÙزونه از اضاÙÙ‡ شدن کاربر جدید جلوگیری کرد. برای اطلاعات بیشتر پیغام‌های اØتمالی دیگر را مطالعه کنید.'; diff --git a/lib/tpl/dokuwiki/lang/fa/lang.php b/lib/tpl/dokuwiki/lang/fa/lang.php new file mode 100644 index 000000000..17bc4ce68 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fa/lang.php @@ -0,0 +1,14 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['__link__'] = 'رنگ لینک معمول'; +$lang['__existing__'] = 'رنگ برای لینک به صÙØات موجود'; +$lang['__missing__'] = 'رنگ برای لینک به صÙØات ناموجود'; +$lang['__site_width__'] = 'عرض Ú©Ù„ سایت (از واØدهای طول شامل % یا px یا em Ùˆ ... می‌شود استÙاده کرد)'; +$lang['__sidebar_width__'] = 'عرض نوار کناری درصورت وجود (از واØدهای طول شامل % یا px یا em Ùˆ ... می‌شود استÙاده کرد)'; +$lang['__tablet_width__'] = 'در پایین اندازه‌های صÙØÙ‡ با این عرض وقتی Ú©Ù‡ در تبلت باز می‌شود'; +$lang['__phone_width__'] = 'در پایین اندازه‌های صÙØÙ‡ با این عرض وقتی Ú©Ù‡ در تلÙÙ† موبایل باز می‌شود'; diff --git a/lib/tpl/dokuwiki/lang/fa/style.txt b/lib/tpl/dokuwiki/lang/fa/style.txt new file mode 100644 index 000000000..f9009fd08 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fa/style.txt @@ -0,0 +1 @@ +اگر می‌خواهید یک لوگو تنظیم کنید، به راØتی مدیریت رسانه‌ها را باز کنید Ùˆ یک تصویر با نام ''logo.png'' در Ùضای نام اصلی یا ''wiki'' آپلود کنید. سپس لوگو به صورت اتوماتیک مورد استÙاده قرار می‌گیرد. همچنین می‌توانید یک ''favicon.ico'' در آن‌جا آپلود کنید. اگر از ویکی بسته استÙاده می‌کنید پیشنهاد می‌شود Ú©Ù‡ Ùضای نام ویکی (یا اصلی) در تنظیمات خواندنی به همه باشد یا درغیر اینصورت لوگو به کاربرانی Ú©Ù‡ وارد نشده باشند نمایش داده نمی‌شود. \ No newline at end of file -- GitLab From e70ecfc904573a16e6cd9cf5498bbe4d05fafc6e Mon Sep 17 00:00:00 2001 From: Romano <romanocl@outlook.com> Date: Thu, 11 Feb 2016 21:26:53 +0100 Subject: [PATCH 431/440] translation update --- inc/lang/es/lang.php | 1 + lib/plugins/authad/lang/es/lang.php | 2 ++ 2 files changed, 3 insertions(+) diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 025c88ce9..97559bd98 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -42,6 +42,7 @@ * @author Mauricio Segura <maose38@yahoo.es> * @author Domingo Redal <docxml@gmail.com> * @author solohazlo <solohhazlo@gmail.com> + * @author Romano <romanocl@outlook.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/lib/plugins/authad/lang/es/lang.php b/lib/plugins/authad/lang/es/lang.php index 0ad262c21..d3d540b35 100644 --- a/lib/plugins/authad/lang/es/lang.php +++ b/lib/plugins/authad/lang/es/lang.php @@ -6,8 +6,10 @@ * @author Juan De La Cruz <juann.dlc@gmail.com> * @author Gerardo Zamudio <gerardo@gerardozamudio.net> * @author Mauricio Segura <maose38@yahoo.es> + * @author Romano <romanocl@outlook.com> */ $lang['domain'] = 'Dominio de inicio'; $lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; $lang['passchangefail'] = 'Error al cambiar la contraseña. ¿Tal vez no se cumplió la directiva de contraseñas?'; +$lang['userchangefail'] = 'Falló al intentar modificar los atributos del usuario. Puede ser que su cuenta no tiene permisos para realizar cambios?'; $lang['connectfail'] = 'Error al conectar con el servidor de Active Directory.'; -- GitLab From 014eefaac7c97f29d8a4797464161f440c1aad81 Mon Sep 17 00:00:00 2001 From: Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> Date: Sun, 14 Feb 2016 07:41:53 +0100 Subject: [PATCH 432/440] translation update --- inc/lang/fa/admin.txt | 2 +- inc/lang/fa/adminplugins.txt | 2 +- inc/lang/fa/backlinks.txt | 2 +- inc/lang/fa/denied.txt | 2 +- inc/lang/fa/diff.txt | 2 +- inc/lang/fa/lang.php | 69 +++++++++++----------- lib/plugins/authad/lang/fa/settings.php | 4 ++ lib/plugins/authldap/lang/fa/settings.php | 4 ++ lib/plugins/authpgsql/lang/fa/settings.php | 1 + lib/plugins/usermanager/lang/fa/import.txt | 6 ++ lib/tpl/dokuwiki/lang/fa/lang.php | 1 + 11 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 lib/plugins/usermanager/lang/fa/import.txt diff --git a/inc/lang/fa/admin.txt b/inc/lang/fa/admin.txt index ce7550977..f8e36ba49 100644 --- a/inc/lang/fa/admin.txt +++ b/inc/lang/fa/admin.txt @@ -1,3 +1,3 @@ ====== مدیریت ====== -در اینجا لیستی از وظیÙه‌های مدیریتی را مشاهده می‌کنید. \ No newline at end of file +در اینجا Ùهرستی از وظیÙه‌های مدیریتی را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/adminplugins.txt b/inc/lang/fa/adminplugins.txt index 3d2bb4a5b..dab0251be 100644 --- a/inc/lang/fa/adminplugins.txt +++ b/inc/lang/fa/adminplugins.txt @@ -1 +1 @@ -===== برنامه های جانبی دیگر ===== \ No newline at end of file +===== برنامه‌های جانبی دیگر ===== \ No newline at end of file diff --git a/inc/lang/fa/backlinks.txt b/inc/lang/fa/backlinks.txt index 6864e22d6..774d3d6cc 100644 --- a/inc/lang/fa/backlinks.txt +++ b/inc/lang/fa/backlinks.txt @@ -1,3 +1,3 @@ ====== پیوندهای بازگشتی ====== -در این‌جا لیستی از صÙØاتی Ú©Ù‡ به این صÙØÙ‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file +در این‌جا Ùهرستی از صÙØاتی Ú©Ù‡ به این صÙØÙ‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/denied.txt b/inc/lang/fa/denied.txt index 4bffa0f3c..190b710ca 100644 --- a/inc/lang/fa/denied.txt +++ b/inc/lang/fa/denied.txt @@ -1,4 +1,4 @@ ====== دسترسی ممکن نیست ====== -شرمنده، شما اجازه‌ی دسترسی ب این صÙØÙ‡ را ندارید. +شرمنده، شما اجازهٔ دسترسی به این صÙØÙ‡ را ندارید. diff --git a/inc/lang/fa/diff.txt b/inc/lang/fa/diff.txt index d5354f727..80e1ce7a1 100644 --- a/inc/lang/fa/diff.txt +++ b/inc/lang/fa/diff.txt @@ -1,3 +1,3 @@ ====== تÙاوت‌ها ====== -تÙاوت دو نسخه‌ی متÙاوت از صÙØÙ‡ را مشاهده می‌کنید. \ No newline at end of file +تÙاوت دو نسخهٔ متÙاوت از صÙØÙ‡ را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index bb7441d90..c05b8b501 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -26,9 +26,9 @@ $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'ویرایش این صÙØÙ‡'; -$lang['btn_source'] = 'نمایش مبدا'; +$lang['btn_source'] = 'نمایش متن صÙØÙ‡'; $lang['btn_show'] = 'نمایش صÙØÙ‡'; -$lang['btn_create'] = 'ساخت این صÙØÙ‡'; +$lang['btn_create'] = 'ایجاد این صÙØÙ‡'; $lang['btn_search'] = 'جستجو'; $lang['btn_save'] = 'ذخیره'; $lang['btn_preview'] = 'پیش‌نمایش'; @@ -65,17 +65,17 @@ $lang['btn_mediaManager'] = 'مشاهده در مدیریت رسانه‌ه $lang['loggedinas'] = 'به این عنوان وارد شده‌اید:'; $lang['user'] = 'نام کاربری'; $lang['pass'] = 'گذرواژه‌'; -$lang['newpass'] = 'گذروازه‌ی جدید'; +$lang['newpass'] = 'گذرواژه‌ی جدید'; $lang['oldpass'] = 'گذرواژه‌ی Ùعلی را تایید کنید'; $lang['passchk'] = 'یک بار دیگر'; $lang['remember'] = 'مرا به خاطر بسپار.'; -$lang['fullname'] = '*نام واقعی شما'; -$lang['email'] = 'ایمیل شما*'; +$lang['fullname'] = 'نام واقعی شما'; +$lang['email'] = 'ایمیل شما'; $lang['profile'] = 'پروÙایل کاربر'; -$lang['badlogin'] = 'خطا در ورود به سیستم'; -$lang['badpassconfirm'] = 'متاسÙÙ… ØŒ رمز عبور اشتباه است'; +$lang['badlogin'] = 'متاسÙÙ…ØŒ نام کاربری یا رمز عبور اشتباه است.'; +$lang['badpassconfirm'] = 'متاسÙÙ…ØŒ رمز عبور اشتباه است'; $lang['minoredit'] = 'این ویرایش Ø®Ùرد است'; -$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس'; +$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس در'; $lang['nosecedit'] = 'این صÙØÙ‡ در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض Ù…Øتوای Ú©Ù„ نمایش داده می‌شود.'; $lang['searchcreatepage'] = 'اگر به نتیجه‌ی مطلوبی نرسیده‌اید، می‌توانید صÙØه‌ی مورد نظر را ایجاد کنید.'; $lang['regmissing'] = 'متاسÙÙ…ØŒ شما باید همه قسمت‌ها را پر کنید.'; @@ -98,30 +98,29 @@ $lang['profdeleted'] = 'Øساب کاربری شما Øذ٠گردید $lang['profconfdelete'] = 'می‌خواهم Øساب کاربری من از این ویکی Øذ٠شود. <br/> این عمل قابل برگشت نیست.'; $lang['profconfdeletemissing'] = 'جعبه‌ی تأیید تیک نخورده است'; $lang['proffail'] = 'بروزرسانی پروÙایل کاربری انجام نشد.'; -$lang['pwdforget'] = 'گذرواژه‌ی خود را Ùراموش کرده‌اید؟ جدید دریاÙت کنید'; +$lang['pwdforget'] = 'گذرواژه‌ی خود را Ùراموش کرده‌اید؟ گذرواژه‌ی جدید دریاÙت کنید'; $lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند'; $lang['resendpwd'] = 'تعیین کلمه عبور جدید برای '; -$lang['resendpwdmissing'] = 'متاسÙÙ…ØŒ شما باید تمام قسمت‌ها را پر کنید'; -$lang['resendpwdnouser'] = 'متاسÙÙ…ØŒ ما نتوانستیم این نام کاربری را در بانک خود پیدا کنیم'; +$lang['resendpwdmissing'] = 'متاسÙÙ…ØŒ شما باید تمام قسمت‌ها را پر کنید.'; +$lang['resendpwdnouser'] = 'متاسÙÙ…ØŒ ما نتوانستیم این نام کاربری را در پایگاه دادهٔ خود پیدا کنیم.'; $lang['resendpwdbadauth'] = 'متاسÙÙ…ØŒ کد شناسایی معتبر نیست. از صØت لینک تاییدیه اطمینان Øاصل کنید.'; -$lang['resendpwdconfirm'] = 'یک ایمیل تاییدیه‌ی آدرس به آدرس مورنظر ارسال شد. قبل از اینکه نامه‌ی دیگری قابل ارسال به این آدرس باشد، باید دستوراتی Ú©Ù‡ در آن نامه آمده است را جهت تایید این مساله Ú©Ù‡ این آدرس متعلق به شماست، اجرا کنید.'; -$lang['resendpwdsuccess'] = 'گذرواژه‌ی جدید شما توسط ایمیل ارسال شد'; +$lang['resendpwdconfirm'] = 'یک لینک تاییدیه آدرس از طریق ایمیل ارسال شد.'; +$lang['resendpwdsuccess'] = 'گذرواژه‌ی جدید شما توسط ایمیل ارسال شد.'; $lang['license'] = 'به جز مواردی Ú©Ù‡ ذکر می‌شود، مابقی Ù…Øتویات ویکی تØت مجوز زیر می‌باشند:'; $lang['licenseok'] = 'توجه: با ویرایش این صÙØه، شما مجوز زیر را تایید می‌کنید:'; $lang['searchmedia'] = 'نام Ùایل برای جستجو:'; $lang['searchmedia_in'] = 'جستجو در %s'; -$lang['txt_upload'] = 'Ùایل را برای ارسال انتخاب کنید:'; +$lang['txt_upload'] = 'Ùایل را برای آپلود انتخاب کنید:'; $lang['txt_filename'] = 'ارسال به صورت (اختیاری):'; $lang['txt_overwrt'] = 'بر روی Ùایل موجود بنویس'; $lang['maxuploadsize'] = 'Øداکثر %s برای هر Ùایل مجاز است.'; $lang['lockedby'] = 'در Øال Øاضر Ù‚ÙÙ„ شده است:'; -$lang['lockexpire'] = 'Ù‚ÙÙ„ منقضی شده است:'; +$lang['lockexpire'] = 'Ù‚ÙÙ„ منقضی می‌شود در:'; $lang['js']['willexpire'] = 'Øالت Ù‚ÙÙ„ شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمه‌ی پیش‌نمایش را برای صÙر شدن ساعت Ù‚ÙÙ„ بزنید.'; -$lang['js']['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد رÙت. - می‌خواهید ادامه دهید؟'; -$lang['js']['searchmedia'] = 'جستجو برای Ùایل'; -$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگه‌دار'; -$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; +$lang['js']['notsavedyet'] = 'تغییرات ذخیره نشده از بین خواهد رÙت.'; +$lang['js']['searchmedia'] = 'جستجو برای Ùایل‌ها'; +$lang['js']['keepopen'] = 'پنجره را در زمان انتخاب باز نگه‌دار'; +$lang['js']['hidedetails'] = 'پنهان کردن جزئیات'; $lang['js']['mediatitle'] = 'تنظیمات پیوند'; $lang['js']['mediadisplay'] = 'نوع پیوند'; $lang['js']['mediaalign'] = 'هم‌ترازی'; @@ -129,13 +128,13 @@ $lang['js']['mediasize'] = 'اندازه تصویر'; $lang['js']['mediatarget'] = 'هد٠پیوند'; $lang['js']['mediaclose'] = 'بستن'; $lang['js']['mediainsert'] = 'درج کردن'; -$lang['js']['mediadisplayimg'] = 'نمایش تصویر'; +$lang['js']['mediadisplayimg'] = 'نمایش تصویر.'; $lang['js']['mediadisplaylnk'] = 'Ùقط پیوند را نمایش بده.'; $lang['js']['mediasmall'] = 'نگارش Ú©ÙˆÚ†Ú©'; $lang['js']['mediamedium'] = 'نگارش متوسط'; $lang['js']['medialarge'] = 'نگارش بزرگ'; $lang['js']['mediaoriginal'] = 'نگارش اصلی'; -$lang['js']['medialnk'] = 'پیوند به صÙØه‌ی جزییات'; +$lang['js']['medialnk'] = 'پیوند به صÙØه‌ی جزئیات'; $lang['js']['mediadirect'] = 'پیوند مستقیم به اصلی'; $lang['js']['medianolnk'] = 'بدون پیوند'; $lang['js']['medianolink'] = 'تصویر را پیوند Ù†Ú©Ù†'; @@ -153,38 +152,38 @@ $lang['js']['media_diff'] = 'تÙاوت ها را ببینید: '; $lang['js']['media_diff_both'] = 'پهلو به پهلو'; $lang['js']['media_diff_opacity'] = 'درخشش از'; $lang['js']['media_diff_portions'] = 'Ú©Ø´ رÙتن'; -$lang['js']['media_select'] = 'انتخاب Ùایل -یا Ùایلها- ...'; +$lang['js']['media_select'] = 'انتخاب Ùایل‌ها...'; $lang['js']['media_upload_btn'] = 'آپلود'; $lang['js']['media_done_btn'] = 'انجام شد'; -$lang['js']['media_drop'] = 'Ùایل ها را در اینجا قرار دهید تا آپلود شود'; +$lang['js']['media_drop'] = 'Ùایل‌ها را در اینجا قرار دهید تا آپلود شود'; $lang['js']['media_cancel'] = 'ØØ°Ù'; -$lang['js']['media_overwrt'] = 'جاینوشت Ùایل های موجود'; -$lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; -$lang['nothingfound'] = 'چیزی پیدا نشد'; +$lang['js']['media_overwrt'] = 'جاینوشت Ùایل‌های موجود'; +$lang['rssfailed'] = 'بروز خطا در هنگام واکشی این Ùید:'; +$lang['nothingfound'] = 'چیزی پیدا نشد.'; $lang['mediaselect'] = 'Ùایل‌ها'; $lang['uploadsucc'] = 'ارسال با موÙقیت انجام شد'; -$lang['uploadfail'] = 'خطا در ارسال'; -$lang['uploadwrong'] = 'ارسال متوق٠شد. این توسعه‌ی Ùایل ممنوع می‌باشد.'; -$lang['uploadexist'] = 'این Ùابل وجود دارد. عملی انجام نشد.'; -$lang['uploadbadcontent'] = 'Ù…Øتوای Ùایل ارسال شده با توسعه‌ی %s متناقض است.'; +$lang['uploadfail'] = 'خطا در ارسال. شاید دسترسی‌ها نادرست است؟'; +$lang['uploadwrong'] = 'ارسال متوق٠شد. این Ùرمت Ùایل ممنوع می‌باشد.'; +$lang['uploadexist'] = 'این Ùایل وجود دارد. عملی انجام نشد.'; +$lang['uploadbadcontent'] = 'Ù…Øتوای Ùایل آپلود شده با Ùرمت %s یکسان نیست.'; $lang['uploadspam'] = 'Ùایل ارسال شده توسط لیست سیاه اسپم‌ها مسدود شده است.'; $lang['uploadxss'] = 'این صÙØÙ‡ Øاوی اسکریپت یا کد اچ‌تی‌ام‌ال است Ú©Ù‡ ممکن است به نادرست توسط مرورگر وب تÙسیر شود.'; $lang['uploadsize'] = 'Ùایل ارسال شده سنگین است. (بیشینه، %s)'; $lang['deletesucc'] = 'Ùایل «%s» Øذ٠شد.'; $lang['deletefail'] = '«%s» Øذ٠نمی‌شود، دسترسی‌ها را بررسی کنید.'; $lang['mediainuse'] = 'Ùایل «%s» Øذ٠نمی‌شود، چون هنوز در Øال استÙاده است.'; -$lang['namespaces'] = 'Ùضای‌نام'; +$lang['namespaces'] = 'Ùضای‌نام‌ها'; $lang['mediafiles'] = 'Ùایل‌های موجود در'; $lang['accessdenied'] = 'شما اجازه‌ی مشاهده‌ی این صÙØÙ‡ را ندارید.'; $lang['mediausage'] = 'برای ارجاع دادن به Ùایل از نگارش زیر استÙاده کنید.'; $lang['mediaview'] = 'مشاهده‌ی Ùایل اصلی'; $lang['mediaroot'] = 'ریشه'; -$lang['mediaupload'] = 'ارسال Ùایل به Ùضای‌نام کنونی. برای ایجاد زیرÙضای‌نام‌ها، نام‌های آن‌ها را به عنوان پیشوندهایی Ú©Ù‡ با دونقطه «:» جدا شده‌اند به نام Ùایل، در قسمت «ارسال به صورت» اضاÙÙ‡ کنید.'; -$lang['mediaextchange'] = 'توسعه‌ی Ùایل از %s به %s تغییر داده شد.'; +$lang['mediaupload'] = 'ارسال Ùایل به Ùضای‌نام کنونی. برای ایجاد زیرÙضای‌نام‌ها، پس از انتخاب Ùایل‌ها در قسمت «ارسال به صورت» به نام Ùایل نام‌های Ùضای‌نام‌ها را به عنوان پیشوندهایی Ú©Ù‡ با دونقطه «:» جدا شده‌اند، اضاÙÙ‡ کنید. همچنین Ùایل‌ها می‌توانند با کشیدن Ùˆ ول کردن انتخاب شوند.'; +$lang['mediaextchange'] = 'Ùرمت Ùایل از %s به %s تغییر داده شد.'; $lang['reference'] = 'ارجاع‌های'; $lang['ref_inuse'] = 'این Ùایل نمی‌تواند Øذ٠شود، زیرا هم‌چنان در این صÙØÙ‡ استÙاده شده است:'; $lang['ref_hidden'] = 'تعدادی مرجع در صÙØاتی Ú©Ù‡ شما دسترسی خواندن ندارید وجود دارد.'; -$lang['hits'] = 'بازدید'; +$lang['hits'] = 'بازدیدها'; $lang['quickhits'] = 'جور کردن نام صÙØات'; $lang['toc'] = 'Ùهرست مندرجات'; $lang['current'] = 'Ùعلی'; diff --git a/lib/plugins/authad/lang/fa/settings.php b/lib/plugins/authad/lang/fa/settings.php index 39a1654ad..fdf9479bd 100644 --- a/lib/plugins/authad/lang/fa/settings.php +++ b/lib/plugins/authad/lang/fa/settings.php @@ -13,8 +13,12 @@ $lang['domain_controllers'] = 'لیست کنترل کننده‌های دام $lang['admin_username'] = 'کاربر دارای دسترسی Active Directory Ú©Ù‡ دارای دسترسی به تمام اطلاعات کاربران است. اختیاریست ولی برای برخی Ùعالیت‌ها مثل ایمیل‌های عضویت لازم است.'; $lang['admin_password'] = 'رمز کاربر بالایی '; $lang['sso'] = 'آیا Single-Sign-On از طریق Kerberos یا NTLM استÙاده شود؟'; +$lang['sso_charset'] = 'کدبندی نویسه‌ای Ú©Ù‡ وب‌سرورتان نام کاربری NTLM یا Kerberos را به آن منتقل می‌کند. برای انتخاب UTF-8 یا latin-1 خالی بگذارید. لازم است Ú©Ù‡ اÙزونهٔ iconv نصب باشد.'; +$lang['real_primarygroup'] = 'باید گروه اصلی به جای "دامنهٔ کاربران" برگردد. (کندتر)'; $lang['use_ssl'] = 'از اس‌اس‌ال استÙاده می‌کنید؟ در این صورت تی‌ال‌اس را در پایین Ùعال نکنید. '; $lang['use_tls'] = 'از تی‌ال‌اس استÙاده می‌کنید؟ در این صورت اس‌اس‌ال را در بالا Ùعال نکنید. '; $lang['debug'] = 'داده‌های اضاÙÛŒ خروجی دیباگ در هنگام بروز خطا نمایش داده شود؟'; $lang['expirywarn'] = 'تعداد روزهایی Ú©Ù‡ پس گذشتن آن برای تغییر رمزعبور به شما هشدار داده شود. باری غیرÙعال سازی از مقدار 0 استÙاده کنید.'; $lang['additional'] = 'لیست صÙات اضاÙÛŒ AD برای گرÙتن از اطلاعات کاربر Ú©Ù‡ توسط برخی از اÙزونه‌ها استÙاده می‌شود. با کاما جدا شود.'; +$lang['update_name'] = 'به کاربران اجازهٔ به روزرسانی نام AD داده شود؟'; +$lang['update_mail'] = 'به کاربران اجازهٔ به روزرسانی ایمیلشان داده شود؟'; diff --git a/lib/plugins/authldap/lang/fa/settings.php b/lib/plugins/authldap/lang/fa/settings.php index f8de08437..72eccb0ef 100644 --- a/lib/plugins/authldap/lang/fa/settings.php +++ b/lib/plugins/authldap/lang/fa/settings.php @@ -18,9 +18,13 @@ $lang['version'] = 'نسخهٔ پروتوکل برای استÙا $lang['starttls'] = 'از تی‌ال‌اس (TLS) استÙاده می‌کنید؟'; $lang['referrals'] = 'آیا ارجاعات باید دنبال شوند؟'; $lang['deref'] = 'نام‌های مستعار چطور ارجاع یابی شوند؟'; +$lang['binddn'] = ' DN برای کاربر اتصال اگر اتصال ناشناخته کاÙÛŒ نیست. مثال +<code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'رمزعبور کاربر بالا'; $lang['userscope'] = 'Ù…Øدود کردن Ù…Øدودهٔ جستجو به جستجوی کاربر'; $lang['groupscope'] = 'Ù…Øدود کردن Ù…Øدودهٔ جستجو به جستجوی گروه'; +$lang['userkey'] = 'صÙتی Ú©Ù‡ نشان‌دهندهٔ نام کاربر است؛ باید با userfilter نامتناقض باشد.'; +$lang['groupkey'] = 'عضویت در گروه برمبنای هر کدام از صÙات کاربر (به جای گروه‌های استاندارد AD) برای مثال گروه برمبنای دپارتمان یا شماره تلÙÙ†'; $lang['modPass'] = 'آیا پسورد LDAP می‌تواند توسط داکو ویکی تغییر کند؟'; $lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی در ارورها'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; diff --git a/lib/plugins/authpgsql/lang/fa/settings.php b/lib/plugins/authpgsql/lang/fa/settings.php index f2d31d058..5afe81182 100644 --- a/lib/plugins/authpgsql/lang/fa/settings.php +++ b/lib/plugins/authpgsql/lang/fa/settings.php @@ -13,6 +13,7 @@ $lang['user'] = 'نام کاربری PostgreSQL'; $lang['password'] = 'رمزعبور کابر بالا'; $lang['database'] = 'پایگاه داده مورد استÙاده'; $lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی'; +$lang['forwardClearPass'] = 'به جای استÙاده از امکان رمزنگاری، پسورد کاربران به صورت متنی به دستورات SQL ارسال شود'; $lang['checkPass'] = 'دستور SQL برای Ú†Ú© کردن پسورد'; $lang['getUserInfo'] = 'دستور SQL برای دریاÙت اطلاعات کاربران'; $lang['getGroups'] = 'دستور SQL برای دریاÙت گروه‌های یک کاربر'; diff --git a/lib/plugins/usermanager/lang/fa/import.txt b/lib/plugins/usermanager/lang/fa/import.txt new file mode 100644 index 000000000..562a28aa5 --- /dev/null +++ b/lib/plugins/usermanager/lang/fa/import.txt @@ -0,0 +1,6 @@ + ===== اضاÙÙ‡ کردن کاربر ===== + +برای اینکار یک Ùایل CSV با Øداقل چهار ستون لازم است. ستون‌ها به ترتیب باید شامل id کاربر، نام کامل کاربر، آدرس ایمیل Ùˆ گروه‌های کاربری او باشند. +خانه‌های جدول CSV باید به وسیلهٔ کاما (,) Ùˆ رشته‌ها با علامت نقل قول (%%""%%) از هم جدا شوند. علامت واکج‌خط (\) می‌تواند برای غیرÙعال کردن معنای کاراکترها استÙاده شود. برای دیدن یک نمونه از Ùایل مناسب، از گزینهٔ "خروجی کاربران" در بالا استÙاده کنید. id های تکراری در جدول در نظر گرÙته نمی‌شوند. + +به ازای هر کاربری Ú©Ù‡ با موÙقیت اضاÙÙ‡ شود یک رمز تولید Ùˆ ایمیل می‌شود. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/fa/lang.php b/lib/tpl/dokuwiki/lang/fa/lang.php index 17bc4ce68..cb2e95ee4 100644 --- a/lib/tpl/dokuwiki/lang/fa/lang.php +++ b/lib/tpl/dokuwiki/lang/fa/lang.php @@ -5,6 +5,7 @@ * * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['__background_site__'] = 'رنگ پس‌زمینه (پشت جعبهٔ متن)'; $lang['__link__'] = 'رنگ لینک معمول'; $lang['__existing__'] = 'رنگ برای لینک به صÙØات موجود'; $lang['__missing__'] = 'رنگ برای لینک به صÙØات ناموجود'; -- GitLab From 023953f040c1f54e1ec2a8c92362d4bf4afc0812 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Wed, 17 Feb 2016 16:27:56 +0100 Subject: [PATCH 433/440] added test for saveWikiTest() for possible upcoming refactoring --- _test/tests/inc/common_saveWikiText.test.php | 145 +++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 _test/tests/inc/common_saveWikiText.test.php diff --git a/_test/tests/inc/common_saveWikiText.test.php b/_test/tests/inc/common_saveWikiText.test.php new file mode 100644 index 000000000..800e20952 --- /dev/null +++ b/_test/tests/inc/common_saveWikiText.test.php @@ -0,0 +1,145 @@ +<?php + +class common_saveWikiText_test extends DokuWikiTest { + + /** + * Execute a whole bunch of saves on the same page and check the results + */ + function test_savesequence() { + global $REV; + + $page = 'page'; + $file = wikiFN($page); + + // create the page + $this->assertFileNotExists($file); + saveWikiText($page, 'teststring', 'first save', false); + $this->assertFileExists($file); + $lastmod = filemtime($file); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(1, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('first save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // save with same content should be ignored + saveWikiText($page, 'teststring', 'second save', false); + clearstatcache(false, $file); + $this->assertEquals($lastmod, filemtime($file)); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(1, count($revisions)); + + // update the page with new text + saveWikiText($page, 'teststring2', 'third save', false); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(2, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('third save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // add a minor edit (unauthenticated) + saveWikiText($page, 'teststring3', 'fourth save', true); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(3, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('fourth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // add a minor edit (authenticated) + $_SERVER['REMOTE_USER'] = 'user'; + saveWikiText($page, 'teststring4', 'fifth save', true); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(4, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('fifth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_MINOR_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // delete + saveWikiText($page, '', 'sixth save', false); + clearstatcache(false, $file); + $this->assertFileNotExists($file); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(5, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('sixth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_DELETE, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // restore + $REV = $lastmod; + saveWikiText($page, 'teststring4', 'seventh save', true); + clearstatcache(false, $file); + $this->assertFileExists($file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(6, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('seventh save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_REVERT, $revinfo['type']); + $this->assertEquals($REV, $revinfo['extra']); + $REV = ''; + + sleep(1); // wait for new revision ID + + // create external edit + file_put_contents($file, 'teststring5'); + + sleep(1); // wait for new revision ID + + // save on top of external edit + saveWikiText($page, 'teststring6', 'eigth save', false); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(8, count($revisions)); // two more revisions now! + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('eigth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + $revinfo = $pagelog->getRevisionInfo($revisions[1]); + $this->assertEquals('external edit', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + } +} -- GitLab From b24d91954b3e643fa93997b290b41c48da574647 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Thu, 18 Feb 2016 12:19:07 +0100 Subject: [PATCH 434/440] refactor page saving and introduce COMMON_WIKIPAGE_SAVE This makes the saveWikiText() function a little easier to read and moves external edit handling to its own function. Behavior stays the same (tests are unchanged). In addition a new event COMMON_WIKIPAGE_SAVE is introduced that makes intercepting and acting on page saves much easier than possible before. Developers can: * prevent saves by either preventing the default action or overwriting the contentChanged field in a BEFORE hook * enforce saves even when no content changed by overwriting the contentChanged field in a BEFORE hook * Adjust the saved content by modifying the newContent field in a BEFORE hook * Adjust the stored change log information (summary, type, extras) in an AFTER hook * Easily know if a page was deleted, created or edited by inspecting the changeType field * what ever they want before or after a wiki page is saved --- inc/common.php | 127 ++++++++++++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 50 deletions(-) diff --git a/inc/common.php b/inc/common.php index 55916dc05..a1c5cfd15 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1183,6 +1183,38 @@ function con($pre, $text, $suf, $pretty = false) { return $pre.$text.$suf; } +/** + * Checks if the current page version is newer than the last entry in the page's + * changelog. If so, we assume it has been an external edit and we create an + * attic copy and add a proper changelog line. + * + * This check is only executed when the page is about to be saved again from the + * wiki, triggered in @see saveWikiText() + * + * @param string $id the page ID + */ +function detectExternalEdit($id) { + global $lang; + + $file = wikiFN($id); + $old = @filemtime($file); // from page + $pagelog = new PageChangeLog($id, 1024); + $oldRev = $pagelog->getRevisions(-1, 1); // from changelog + $oldRev = (int) (empty($oldRev) ? 0 : $oldRev[0]); + + if(!file_exists(wikiFN($id, $old)) && file_exists($file) && $old >= $oldRev) { + // add old revision to the attic if missing + saveOldRevision($id); + // add a changelog entry if this edit came from outside dokuwiki + if($old > $oldRev) { + addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=> true)); + // remove soon to be stale instructions + $cache = new cache_instructions($id, $file); + $cache->removeCache(); + } + } +} + /** * Saves a wikitext by calling io_writeWikiPage. * Also directs changelog and attic updates. @@ -1208,77 +1240,72 @@ function saveWikiText($id, $text, $summary, $minor = false) { /* @var Input $INPUT */ global $INPUT; - // ignore if no changes were made - if($text == rawWiki($id, '')) { - return; - } + // prepare data for event + $svdta = array(); + $svdta['id'] = $id; + $svdta['file'] = wikiFN($id); + $svdta['revertFrom'] = $REV; + $svdta['oldRevision'] = @filemtime($svdta['file']); + $svdta['newRevision'] = 0; + $svdta['newContent'] = $text; + $svdta['oldContent'] = rawWiki($id); + $svdta['summary'] = $summary; + $svdta['contentChanged'] = ($svdta['newContent'] != $svdta['oldContent']); + $svdta['changeInfo'] = ''; + $svdta['changeType'] = DOKU_CHANGE_TYPE_EDIT; - $file = wikiFN($id); - $old = @filemtime($file); // from page - $wasRemoved = (trim($text) == ''); // check for empty or whitespace only - $wasCreated = !file_exists($file); - $wasReverted = ($REV == true); - $pagelog = new PageChangeLog($id, 1024); - $newRev = false; - $oldRev = $pagelog->getRevisions(-1, 1); // from changelog - $oldRev = (int) (empty($oldRev) ? 0 : $oldRev[0]); - if(!file_exists(wikiFN($id, $old)) && file_exists($file) && $old >= $oldRev) { - // add old revision to the attic if missing - saveOldRevision($id); - // add a changelog entry if this edit came from outside dokuwiki - if($old > $oldRev) { - addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=> true)); - // remove soon to be stale instructions - $cache = new cache_instructions($id, $file); - $cache->removeCache(); - } + // select changelog line type + if($REV) { + $svdta['changeType'] = DOKU_CHANGE_TYPE_REVERT; + $svdta['changeInfo'] = $REV; + } else if(!file_exists($svdta['file'])) { + $svdta['changeType'] = DOKU_CHANGE_TYPE_CREATE; + } else if(trim($text) == '') { + // empty or whitespace only content deletes + $svdta['changeType'] = DOKU_CHANGE_TYPE_DELETE; + // autoset summary on deletion + if(blank($svdta['summary'])) $svdta['summary'] = $lang['deleted']; + } else if($minor && $conf['useacl'] && $INPUT->server->str('REMOTE_USER')) { + //minor edits only for logged in users + $svdta['changeType'] = DOKU_CHANGE_TYPE_MINOR_EDIT; } - if($wasRemoved) { + $event = new Doku_Event('COMMON_WIKIPAGE_SAVE', $svdta); + if(!$event->advise_before()) return; + + // if the content has not been changed, no save happens (plugins may override this) + if(!$svdta['contentChanged']) return; + + detectExternalEdit($id); + if($svdta['changeType'] == DOKU_CHANGE_TYPE_DELETE) { // Send "update" event with empty data, so plugins can react to page deletion - $data = array(array($file, '', false), getNS($id), noNS($id), false); + $data = array(array($svdta['file'], '', false), getNS($id), noNS($id), false); trigger_event('IO_WIKIPAGE_WRITE', $data); // pre-save deleted revision - @touch($file); + @touch($svdta['file']); clearstatcache(); - $newRev = saveOldRevision($id); + $data['newRevision'] = saveOldRevision($id); // remove empty file - @unlink($file); + @unlink($svdta['file']); // don't remove old meta info as it should be saved, plugins can use IO_WIKIPAGE_WRITE for removing their metadata... // purge non-persistant meta data p_purge_metadata($id); - $del = true; - // autoset summary on deletion - if(empty($summary)) $summary = $lang['deleted']; // remove empty namespaces io_sweepNS($id, 'datadir'); io_sweepNS($id, 'mediadir'); } else { // save file (namespace dir is created in io_writeWikiPage) - io_writeWikiPage($file, $text, $id); + io_writeWikiPage($svdta['file'], $text, $id); // pre-save the revision, to keep the attic in sync - $newRev = saveOldRevision($id); - $del = false; + $svdta['newRevision'] = saveOldRevision($id); } - // select changelog line type - $extra = ''; - $type = DOKU_CHANGE_TYPE_EDIT; - if($wasReverted) { - $type = DOKU_CHANGE_TYPE_REVERT; - $extra = $REV; - } else if($wasCreated) { - $type = DOKU_CHANGE_TYPE_CREATE; - } else if($wasRemoved) { - $type = DOKU_CHANGE_TYPE_DELETE; - } else if($minor && $conf['useacl'] && $INPUT->server->str('REMOTE_USER')) { - $type = DOKU_CHANGE_TYPE_MINOR_EDIT; - } //minor edits only for logged in users + $event->advise_after(); - addLogEntry($newRev, $id, $type, $summary, $extra); + addLogEntry($svdta['newRevision'], $svdta['id'], $svdta['changeType'], $svdta['summary'], $svdta['changeInfo']); // send notify mails - notify($id, 'admin', $old, $summary, $minor); - notify($id, 'subscribers', $old, $summary, $minor); + notify($svdta['id'], 'admin', $svdta['oldRevision'], $svdta['summary'], $minor); + notify($svdta['id'], 'subscribers', $svdta['oldRevision'], $svdta['summary'], $minor); // update the purgefile (timestamp of the last time anything within the wiki was changed) io_saveFile($conf['cachedir'].'/purgefile', time()); -- GitLab From 6fc7ffc920bc70a4e714162c831642ed581e9575 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 19 Feb 2016 12:13:17 +0100 Subject: [PATCH 435/440] use proper JSON in mediaupload response. fixes #1474 --- lib/exe/ajax.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index 1c1b5f03f..b3e9a618f 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -303,7 +303,8 @@ function ajax_mediaupload(){ ); } $json = new JSON; - echo htmlspecialchars($json->encode($result), ENT_NOQUOTES); + header('Content-Type: application/json'); + echo $json->encode($result); } /** -- GitLab From 3258ecf1cbadeac9c17000639bc0d4f1fb2e2097 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 19 Feb 2016 13:23:17 +0100 Subject: [PATCH 436/440] deny access to .git directories in .htaccess --- .htaccess.dist | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.htaccess.dist b/.htaccess.dist index ec28dff85..1d2bd418e 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -15,6 +15,11 @@ </IfModule> </Files> +## Don't allow access to git directories +<IfModule alias_module> + RedirectMatch 404 /\.git +</IfModule> + ## Uncomment these rules if you want to have nice URLs using ## $conf['userewrite'] = 1 - not needed for rewrite mode 2 #RewriteEngine on -- GitLab From 6723420421f809bba2008fec5f15bf8190216130 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 19 Feb 2016 13:27:58 +0100 Subject: [PATCH 437/440] removed isset() from blank() function As discussed in #1471, an uninitialized variable will always be implicitly created when passed to the blank() function. Calling isset() is thus a no-op. A warning about this behavior has been added to the function comment. --- inc/common.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/inc/common.php b/inc/common.php index 55916dc05..44bc1d19a 100644 --- a/inc/common.php +++ b/inc/common.php @@ -35,12 +35,19 @@ function hsc($string) { * * This is similar to empty() but will return false for "0". * + * Please note: when you pass uninitialized variables, they will implicitly be created + * with a NULL value without warning. + * + * To avoid this it's recommended to guard the call with isset like this: + * + * (isset($foo) && !blank($foo)) + * (!isset($foo) || blank($foo)) + * * @param $in * @param bool $trim Consider a string of whitespace to be blank * @return bool */ function blank(&$in, $trim = false) { - if(!isset($in)) return true; if(is_null($in)) return true; if(is_array($in)) return empty($in); if($in === "\0") return true; -- GitLab From f7f7fb6c2b301fc145bf78687261f89e446e89ae Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 22 Feb 2016 17:01:24 +0100 Subject: [PATCH 438/440] make reuse of mediamanager popup easier This introduces a mechanism to override what happens when a media item is selected in the media manager popup by providing a callback name in the URL. The default implementation just does what dw_mediamanager.insert did before and calls insertTags() --- lib/scripts/media.js | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 2995addfd..c52226eaa 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -214,14 +214,12 @@ var dw_mediamanager = { * @author Pierre Spring <pierre.spring@caillou.ch> */ insert: function (id) { - var opts, alignleft, alignright, edid, s; + var opts, cb, edid, s; // set syntax options dw_mediamanager.$popup.dialog('close'); opts = ''; - alignleft = ''; - alignright = ''; if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) { @@ -254,16 +252,14 @@ var dw_mediamanager = { } } } - if (dw_mediamanager.align !== '1') { - alignleft = dw_mediamanager.align === '2' ? '' : ' '; - alignright = dw_mediamanager.align === '4' ? '' : ' '; - } } } edid = String.prototype.match.call(document.location, /&edid=([^&]+)/); - opener.insertTags(edid ? edid[1] : 'wiki__text', - '{{'+alignleft+id+opts+alignright+'|','}}',''); + edid = edid ? edid[1] : 'wiki__text'; + cb = String.prototype.match.call(document.location, /&onselect=([^&]+)/); + cb = cb ? cb[1] : 'dw_mediamanager_item_select'; + opener[cb](edid, id, opts, dw_mediamanager.align); if(!dw_mediamanager.keepopen) { window.close(); } @@ -271,6 +267,8 @@ var dw_mediamanager = { return false; }, + + /** * Prefills the wikiname. * @@ -921,4 +919,25 @@ var dw_mediamanager = { } }; +/** + * Default implementation for the media manager's select action + * + * Can be overriden with the onselect URL parameter. Is called on the opener context + * + * @param {string} edid + * @param {string} mediaid + * @param {string} opts + * @param {string} align [none, left, center, right] + */ +function dw_mediamanager_item_select(edid, mediaid, opts, align) { + var alignleft = ''; + var alignright = ''; + if (align !== '1') { + alignleft = align === '2' ? '' : ' '; + alignright = align === '4' ? '' : ' '; + } + + insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); +} + jQuery(dw_mediamanager.init); -- GitLab From 38a2174b1dd098290d4b853df853c1072369377d Mon Sep 17 00:00:00 2001 From: Andreas Gohr <gohr@cosmocode.de> Date: Mon, 22 Feb 2016 17:06:24 +0100 Subject: [PATCH 439/440] Revert "make reuse of mediamanager popup easier" this was an accidental commit to master This reverts commit f7f7fb6c2b301fc145bf78687261f89e446e89ae. --- lib/scripts/media.js | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/lib/scripts/media.js b/lib/scripts/media.js index c52226eaa..2995addfd 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -214,12 +214,14 @@ var dw_mediamanager = { * @author Pierre Spring <pierre.spring@caillou.ch> */ insert: function (id) { - var opts, cb, edid, s; + var opts, alignleft, alignright, edid, s; // set syntax options dw_mediamanager.$popup.dialog('close'); opts = ''; + alignleft = ''; + alignright = ''; if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) { @@ -252,14 +254,16 @@ var dw_mediamanager = { } } } + if (dw_mediamanager.align !== '1') { + alignleft = dw_mediamanager.align === '2' ? '' : ' '; + alignright = dw_mediamanager.align === '4' ? '' : ' '; + } } } edid = String.prototype.match.call(document.location, /&edid=([^&]+)/); - edid = edid ? edid[1] : 'wiki__text'; - cb = String.prototype.match.call(document.location, /&onselect=([^&]+)/); - cb = cb ? cb[1] : 'dw_mediamanager_item_select'; + opener.insertTags(edid ? edid[1] : 'wiki__text', + '{{'+alignleft+id+opts+alignright+'|','}}',''); - opener[cb](edid, id, opts, dw_mediamanager.align); if(!dw_mediamanager.keepopen) { window.close(); } @@ -267,8 +271,6 @@ var dw_mediamanager = { return false; }, - - /** * Prefills the wikiname. * @@ -919,25 +921,4 @@ var dw_mediamanager = { } }; -/** - * Default implementation for the media manager's select action - * - * Can be overriden with the onselect URL parameter. Is called on the opener context - * - * @param {string} edid - * @param {string} mediaid - * @param {string} opts - * @param {string} align [none, left, center, right] - */ -function dw_mediamanager_item_select(edid, mediaid, opts, align) { - var alignleft = ''; - var alignright = ''; - if (align !== '1') { - alignleft = align === '2' ? '' : ' '; - alignright = align === '4' ? '' : ' '; - } - - insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); -} - jQuery(dw_mediamanager.init); -- GitLab From 6ebabe2fed9be3b3212883ada3486917af450c30 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag <klapinklapin@gmail.com> Date: Wed, 2 Mar 2016 21:48:37 +0100 Subject: [PATCH 440/440] Fix PHP7 evaluation order incompatibility Fixes #1480 --- feed.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feed.php b/feed.php index 7ea2e235e..7b3b5e940 100644 --- a/feed.php +++ b/feed.php @@ -135,7 +135,7 @@ function rss_parseOptions() { 'content_type' => array('str', 'view', $conf['rss_media']) ) as $name => $val) { - $opt[$name] = $INPUT->$val[0]($val[1], $val[2], true); + $opt[$name] = $INPUT->{$val[0]}($val[1], $val[2], true); } $opt['items'] = max(0, (int) $opt['items']); -- GitLab